0

我正在使用 VC++。

IPicture提供多种功能,如get_HandleRenderSaveAsFile。它很容易使用。

IPictureDisp继承自IDispatch,所以它只提供invoke方法。这不友好。

现在我得到一个ocx只返回IPictureDisp对象的。那么有没有直接转换成的方法IPictureDispIPicture?我没有太多的经验ATL/COM

4

1 回答 1

3

正如 MSDN 所说:

OLE 实现

[...] 系统提供了图片对象的标准实现。它的主要接口是 IPicture 和 IPictureDisp。图片对象是使用 OleCreatePictureIndirect 创建的,并且支持 IPicture 和 IPictureDisp 接口。

支持两个接口,让您可以通过常规IPictureDisp查询:IPictureQueryInterface

IPictureDisp* pPictureDisp = ...
CComQIPtr<IPicture> pPicture = pPictureDisp;

请注意,如果它不起作用并且IPicture不能直接使用,您可以使用IPictureDisp::InvokewithDISPID_PICT_HANDLEDISPID_PICT_RENDER访问属性/方法。

于 2013-03-03T15:22:17.510 回答