描述:
请教哪位大虾知道在com接口的方法中传递组件icon的办法?强调用com接口的方法传递而不是象普通dll的icon的提取。
....................
我想到接口中这样写:
interface IIcon : IDispatch{
[id(1), HRESULT GetIcon([out] [out] LONGLONG* hIcon);}
....................
在com组件中实现:
public:
STDMETHOD(GetIcon)( LONGLONG * hIcon)
{
*hIcon = (LONGLONG)LoadIcon(_。。.GetModuleInstance(), MAKEINTRESOURCE(IDR_DLG));
return S_OK;
}// com--dll编译成功
.........................
调用:
LONGLONG hIcon;
pIIcon->GetIcon(&hIcon);
.......................
编译调试时却指向com组件实现中的“*hIcon = (LONGLONG)LoadIcon(...)”,说“意外中断”。此句有问题吗???还是调用时用GetIcon(&hIcon)不正确???请高手赐教!!!
解决方案1:
GetModuleInstance();
不能用这个吧,调用该函数的是exe模块,
得到的是exe模块的句柄,该模块显然没有相应的icon可载入.
应该在 DllMain中保存dll模块句柄于全局变量,
然后用全局变量作为LoadIcon方法的第一个参数.
也想知道.帮顶1!