我想在 Win32 控制台应用程序中使用来自 Windows 10 SDK 的 WiFi Direct 的 WinRT API。我了解 C++/CX(甚至在这方面取得了一些进展),但仍然希望在没有此扩展的情况下使其工作。
我的问题是我无法激活 IWifiDirectDevice 接口(来自 ABI::Windows::Devices::WiFiDirect)来访问提供 GetDeviceSelector 方法的 IWifiDirectDeviceStatics。
HStringReference strDevice(RuntimeClass_Windows_Devices_WiFiDirect_WiFiDirectDevice);
ComPtr<IInspectable> insp;
hr = RoActivateInstance(strDevice.Get(), insp.GetAddressOf());
结果,此代码以 E_NOTIMPL 结尾。在 Microsoft 的示例中,他们使用工厂进行激活,但 ABI::Windows::Devices::WiFiDirect 命名空间没有工厂。
值得一提的是,当按照我之前编写的方式激活时,IWifiDirectAdvertisementPublisher 工作得很好。
那么如何从 WRL 激活 IWifiDirectDevice 呢?