windows - 我可以在 COM 方法中传递 HWND 吗?

标签 windows com hwnd

COM 方法是否可以传递 HWND?在我的对象 CoCreateInstance 中使用以下方法返回 DISP_E_BADVARTYPE (0x80020008):

STDMETHODIMP ShowDialog(HWND hWndParent);

到目前为止,我通过传递一个 OLE_HANDLE 然后转换它来解决这个问题,但它感觉像是一个障碍:

STDMETHODIMP ShowDialog(OLE_HANDLE hWndParent);

最佳答案

我认为 HWND 是一个指向结构的指针,这就是为什么不能在 IDL 中使用它的原因。 如果您查看 Microsoft Typelibs,您会看到关于如何传递句柄的各种变体(从 int 到 long 到 HANDLE)。

关于windows - 我可以在 COM 方法中传递 HWND 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/808706/

相关文章:

c# - 如何避免 RCW 清理上的竞争

c++ - 如果 HWND 窗口仍然存在,我该如何确定

c - 在 C 中使用 ShellExecute() 打开 .txt 的正确方法是什么

c++ - 从 UUID 中提取 MAC 地址

windows - 使用WINAPI找出特殊文件上的进程事件句柄(锁定)

excel - 如何判断 Windows 10 上是否禁用了 VBA ActiveX?

css - float CSS 问题 - 类似于 Windows 8 的磁贴

python - 如何从 Python 中的 C# DLL 调用 Windows COM 方法?

visual-c++ - 静态 CComPtr 变量

c++ - 单个进程内其他非Qt窗口使Qt顶层窗口 "owned"