mirror of
https://github.com/WinDurango/WinDurango.git
synced 2026-02-06 02:28:46 -06:00
This commit introduces logging statements to `QueryInterface` methods for better debugging of requested IIDs. New classes `MMDeviceCollectionWrapper` and `MMDeviceWrapper` are added to wrap existing COM interfaces, enhancing reference counting and interface querying. Additional logging is implemented in `dllmain.cpp` for specific game packages, particularly "Happy Dungeons." The `hooks.h` file is updated with detailed logging for various hooked functions to trace execution flow. New methods in the `Windows.Xbox.Multiplayer` namespace, including `Party`, `PartyChat`, and `PartyConfig`, provide multiplayer functionalities with logging for method invocations. Project files are updated to include these new classes, ensuring they are part of the build process. Overall, these changes improve debugging capabilities and introduce new device management and multiplayer features.
275 lines
8.3 KiB
C++
275 lines
8.3 KiB
C++
#include "pch.h"
|
|
#include "CoreWindowWrapperX.h"
|
|
|
|
HRESULT CoreWindowWrapperX::GetIids(ULONG* iidCount, IID** iids)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> GetIids\n");
|
|
return m_realWindow->GetIids(iidCount, iids);
|
|
}
|
|
|
|
HRESULT CoreWindowWrapperX::GetRuntimeClassName(HSTRING* className)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> GetRuntimeClassName\n");
|
|
return m_realWindow->GetRuntimeClassName(className);
|
|
}
|
|
|
|
HRESULT CoreWindowWrapperX::GetTrustLevel(TrustLevel* trustLevel)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> GetTrustLevel\n");
|
|
return m_realWindow->GetTrustLevel(trustLevel);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_Bounds(Rect* rect)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_get_Bounds\n");
|
|
return m_realWindow->get_Bounds(rect);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_Dispatcher(ICoreDispatcher** dispatcher)
|
|
{
|
|
//printf("[CoreWindowWrapperX] --> _abi_get_Dispatcher\n");
|
|
return m_realWindow->get_Dispatcher(dispatcher);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_IsInputEnabled(boolean* value)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_get_IsInputEnabled\n");
|
|
return m_realWindow->get_IsInputEnabled(value);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_set_IsInputEnabled(boolean value)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_set_IsInputEnabled\n");
|
|
return m_realWindow->put_IsInputEnabled(value);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_Visible(boolean* value)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_get_Visible\n");
|
|
return m_realWindow->get_Visible(value);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_Activate()
|
|
{
|
|
auto view = winrt::Windows::UI::ViewManagement::ApplicationView::GetForCurrentView();
|
|
//view.TryEnterFullScreenMode();
|
|
view.PreferredLaunchWindowingMode(winrt::Windows::UI::ViewManagement::ApplicationViewWindowingMode::PreferredLaunchViewSize);
|
|
|
|
printf("[CoreWindowWrapperX] --> _abi_Activate\n");
|
|
return m_realWindow->Activate();
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_Close()
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_Close\n");
|
|
return m_realWindow->Close();
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_AsyncKeyState(VirtualKey key, CoreVirtualKeyStates* value)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_get_AsyncKeyState\n");
|
|
return m_realWindow->GetAsyncKeyState(key, value);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_get_KeyState(VirtualKey key, CoreVirtualKeyStates* value)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_get_KeyState\n");
|
|
return m_realWindow->GetKeyState(key, value);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_Activated(ITypedEventHandler<CoreWindow*, WindowActivatedEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_Activated\n");
|
|
return m_realWindow->add_Activated(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_Activated(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_Activated\n");
|
|
return m_realWindow->remove_Activated(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_CharacterReceived(ITypedEventHandler<CoreWindow*, CharacterReceivedEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_CharacterReceived\n");
|
|
|
|
// STUB
|
|
*token = EventRegistrationToken();
|
|
return S_OK;
|
|
|
|
//return m_realWindow->add_CharacterReceived(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_CharacterReceived(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_CharacterReceived\n");
|
|
return m_realWindow->remove_CharacterReceived(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_Closed(ITypedEventHandler<CoreWindow*, CoreWindowEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_Closed\n");
|
|
|
|
// STUB
|
|
*token = EventRegistrationToken();
|
|
return S_OK;
|
|
|
|
//return m_realWindow->add_Closed(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_Closed(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_Closed\n");
|
|
return m_realWindow->remove_Closed(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_InputEnabled(ITypedEventHandler<CoreWindow*, InputEnabledEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_InputEnabled\n");
|
|
return m_realWindow->add_InputEnabled(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_InputEnabled(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_InputEnabled\n");
|
|
return m_realWindow->remove_InputEnabled(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_KeyDown(ITypedEventHandler<CoreWindow*, KeyEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_KeyDown\n");
|
|
|
|
// STUB
|
|
*token = EventRegistrationToken();
|
|
return S_OK;
|
|
|
|
//return m_realWindow->add_KeyDown(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_KeyDown(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_KeyDown\n");
|
|
return m_realWindow->remove_KeyDown(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_KeyUp(ITypedEventHandler<CoreWindow*, KeyEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_KeyUp\n");
|
|
|
|
// STUB
|
|
*token = EventRegistrationToken();
|
|
return S_OK;
|
|
|
|
//return m_realWindow->add_KeyUp(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_KeyUp(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_KeyUp\n");
|
|
return m_realWindow->remove_KeyUp(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_PointerMoved(ITypedEventHandler<CoreWindow*, PointerEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_PointerMoved\n");
|
|
return m_realWindow->add_PointerMoved(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_PointerMoved(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_PointerMoved\n");
|
|
return m_realWindow->remove_PointerMoved(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_PointerEntered(ITypedEventHandler<CoreWindow*, PointerEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_PointerEntered\n");
|
|
return m_realWindow->add_PointerEntered(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_PointerEntered(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_PointerEntered\n");
|
|
return m_realWindow->remove_PointerEntered(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_PointerExited(ITypedEventHandler<CoreWindow*, PointerEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_PointerExited\n");
|
|
return m_realWindow->add_PointerExited(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_PointerExited(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_PointerExited\n");
|
|
return m_realWindow->remove_PointerExited(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_SizeChanged(ITypedEventHandler<CoreWindow*, WindowSizeChangedEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_SizeChanged\n");
|
|
return m_realWindow->add_SizeChanged(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_SizeChanged(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_SizeChanged\n");
|
|
return m_realWindow->remove_SizeChanged(token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_add_VisibilityChanged(ITypedEventHandler<CoreWindow*, VisibilityChangedEventArgs*>* handler,
|
|
EventRegistrationToken* token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_add_VisibilityChanged\n");
|
|
return m_realWindow->add_VisibilityChanged(handler, token);
|
|
}
|
|
|
|
INT32 CoreWindowWrapperX::_abi_remove_VisibilityChanged(EventRegistrationToken token)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> _abi_remove_VisibilityChanged\n");
|
|
return m_realWindow->remove_VisibilityChanged(token);
|
|
}
|
|
|
|
HRESULT CoreWindowWrapperX::QueryInterface(const IID& riid, void** ppvObject)
|
|
{
|
|
printf("[CoreWindowWrapperX] --> QueryInterface\n");
|
|
if (riid == __uuidof(IUnknown) ||
|
|
riid == __uuidof(IInspectable) ||
|
|
riid == __uuidof(ICoreWindow) ||
|
|
riid == __uuidof(IAgileObject))
|
|
{
|
|
*ppvObject = this;
|
|
AddRef();
|
|
return S_OK;
|
|
}
|
|
|
|
*ppvObject = nullptr;
|
|
|
|
//return E_NOINTERFACE;
|
|
return m_realWindow->QueryInterface(riid, ppvObject);
|
|
}
|
|
|
|
ULONG CoreWindowWrapperX::AddRef()
|
|
{
|
|
//printf("[CoreWindowWrapperX] --> AddRef\n");
|
|
return InterlockedIncrement(&m_RefCount);
|
|
}
|
|
|
|
ULONG CoreWindowWrapperX::Release()
|
|
{
|
|
//printf("[CoreWindowWrapperX] --> Release\n");
|
|
ULONG refCount = InterlockedDecrement(&m_RefCount);
|
|
if (refCount == 0) delete this;
|
|
return refCount;
|
|
}
|