以下是 IDragDropManagerInterop 接口的声明:
#undef INTERFACE
#define INTERFACE IDragDropManagerInterop
DECLARE_INTERFACE_IID_(IDragDropManagerInterop, IUnknown, "2C941FC5-A0DA-4CAF-9093-5169FF9BAC67")
{
STDMETHOD(GetForWindow)(
HWND hwnd,
REFIID riid,
void **ppv) PURE;
};
主要的方法是 GetForWindow,该方法用于获取与指定窗口相关联的 IDragDropManager 接口。
如果您需要在 Win32 应用程序中使用这个接口,可以使用 RoGetActivationFactory 函数来获取 IDragDropManagerInterop 接口的实例。以下是示例代码:
#include <DragDropInterop.h>
IDragDropManagerInterop* pDragDropManagerInterop = nullptr;
HRESULT hr = RoGetActivationFactory(
HStringReference(L"Windows.UI.Input.Core.CoreDragDropManager").Get(),
__uuidof(IDragDropManagerInterop),
(void**)&pDragDropManagerInterop
);
if (SUCCEEDED(hr))
{
// 使用 pDragDropManagerInterop 调用接口方法
// ...
pDragDropManagerInterop->Release();
}
请注意,上述代码使用了 Windows 运行时的 API,因此需要链接 runtimeobject.lib 库,并且代码需要在支持 WinRT 的编译环境中运行。
转载请注明出处:http://www.pingtaimeng.com/article/detail/27276/Win32 API/Dragdropinterop.h/IDragDropManagerInterop