【发布时间】:2009-04-30 19:46:54
【问题描述】:
是否可以有一个传递HWND 的 COM 方法?在我的对象CoCreateInstance 中使用以下方法返回DISP_E_BADVARTYPE (0x80020008):
STDMETHODIMP ShowDialog(HWND hWndParent);
到目前为止,我通过传递 OLE_HANDLE 然后进行转换来解决这个问题,但感觉就像是一团糟:
STDMETHODIMP ShowDialog(OLE_HANDLE hWndParent);
【问题讨论】:
-
请注意,如果您在具有 HWND 类型的接口上有一个属性,即使它从未在 .NET 代码中引用,也会发生这种情况!我花了很长时间追着我的尾巴试图解决类似的问题,然后我才注意到界面上还有其他东西(我没有使用)带有
[out, retval] HWND *参数。接口是oleautomation,但不是dual。