我正在使用 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查询:IPictureQueryInterface
IPictureDisp* pPictureDisp = ...
CComQIPtr<IPicture> pPicture = pPictureDisp;
请注意,如果它不起作用并且IPicture不能直接使用,您可以使用IPictureDisp::InvokewithDISPID_PICT_HANDLE来DISPID_PICT_RENDER访问属性/方法。