[英]How to generate deprecated warning for a method in a COM interface (c++)
[英]Access a COM Interface method C++
都:
指定了以上内容,并使用:
返回上面的CLSID指定的类的单个未初始化对象。
然后如何从C ++访问接口的方法? 没有:
之后,我使用CreateInstance()
我在使用CreateInstance()-最后一个参数-ppv时遇到麻烦
使用oleview,我可以看到上面IID上方具有指定IID的方法,例如:
interface IS8Simulation : IDispatch {
HRESULT Open([in] BSTR FileName);
};
然后如何访问以上内容? 范例/指南-请
问候
通过执行CoCreateInstance,您可以获得接口指针。 通过QueryInterface(...)方法,您可以轻松获取其他接口的接口指针。 例如,
IUnknown* pUnk = NULL; HRESULT hr = ::CoCreateInstance(clsid,NULL,CLSCTX_ALL,__uuidof(IUnknown),(void**)&pUnk);
IS8Simulation* pSim = NULL; hr = pUnk->QueryInterface(__uuidof(IS8Simulation), (void**)&pSim);
完成此操作后,您将在pSim中获得指向IS8Simulation的指针,并可以通过该指针调用该接口的方法。 请记住,您需要在CoCreateInstance调用中提供有效的clsid。
实际的问题有点模糊。 一些代码会有所帮助。 但是要猜测一下,您是否需要QueryInterface?
IS8Simulation* pSim = NULL;
hr = pUnk->QueryInterface(__uuidof(IS8Simulation), (void)&pSim);
我将尝试上述操作,但已声明IS8Simulation-请原谅我对COM缺乏理解
此外,下面如何使用纯C ++调用该方法:
HRESULT Open([in] BSTR FileName)
您可能需要#import“ something.dll”。 这将为您提供像IS8Simulation这样的类型的C ++声明,类似于#include“ something.h”会执行的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.