我正在使用 VC++。
IPicture
提供多种功能,如get_Handle
、Render
和SaveAsFile
。它很容易使用。
IPictureDisp
继承自IDispatch
,所以它只提供invoke
方法。这不友好。
现在我得到一个ocx
只返回IPictureDisp
对象的。那么有没有直接转换成的方法IPictureDisp
呢IPicture
?我没有太多的经验ATL/COM
。
我正在使用 VC++。
IPicture
提供多种功能,如get_Handle
、Render
和SaveAsFile
。它很容易使用。
IPictureDisp
继承自IDispatch
,所以它只提供invoke
方法。这不友好。
现在我得到一个ocx
只返回IPictureDisp
对象的。那么有没有直接转换成的方法IPictureDisp
呢IPicture
?我没有太多的经验ATL/COM
。
正如 MSDN 所说:
OLE 实现
[...] 系统提供了图片对象的标准实现。它的主要接口是 IPicture 和 IPictureDisp。图片对象是使用 OleCreatePictureIndirect 创建的,并且支持 IPicture 和 IPictureDisp 接口。
支持两个接口,让您可以通过常规IPictureDisp
查询:IPicture
QueryInterface
IPictureDisp* pPictureDisp = ...
CComQIPtr<IPicture> pPicture = pPictureDisp;
请注意,如果它不起作用并且IPicture
不能直接使用,您可以使用IPictureDisp::Invoke
withDISPID_PICT_HANDLE
来DISPID_PICT_RENDER
访问属性/方法。