我有一个 C++/WinRT/UWP 项目。我需要 HWND 和 HINSTANCE 才能正确初始化直接输入,否则 DirectInput 只能枚举键盘和鼠标,而不是操纵杆。不要问我为什么,我什至尝试从 HInstance 中获取 TopMostWindow GetModule,从我的 C++/WinRT/UWP 应用程序运行时它仅返回 NULL,但从控制台应用程序运行时有效。
文档https://learn.microsoft.com/en-us/windows/win32/api/corewindow/nn-corewindow-icorewindowinterop 我不知道如何将我的 CoreWindow 转换为 ICoreWindowInterop。CComPtr 不可用,并且在 C++/WinRT 中不可用,与 IUnkwnown 冲突。
在方法 App::OnLaunched(LaunchActivatedEventArgs const& e) 中,我得到这样的当前窗口
CoreWindow w = Window::Current().CoreWindow().GetForCurrentThread();
然后我不知道如何从中获取ICoreWindowInterop。CoreWindow 是一个 ICoreWindow ,但我在 Microsoft 文档中没有看到任何解释:/
我尝试强制转换并重新解释强制转换,但没有成功(编译错误)。我不是 COM/Windows 专家,所以我现在很迷茫。
感谢您的帮助干杯,Seb