题
我对此并不熟悉,可以使用启动。
我正在使用ATL(非托管C ++)用户控件,并希望使用ShockWave ActiveX对象。我需要知道如何声明它以便我可以设置属性或调用方法。
例如,如果我可以为其分配变量,那么我想调用'variable - <!> gt; LoadMovie()'
我知道这太荒谬了......几乎不好意思在这里问一下。 ;)(差不多)
解决方案
如果你#import dll(我建议使用COM时因为它让你的生活变得更容易),你可以使用与对象的CLSID配对的智能指针。请记住,智能指针类在接口名称后面有修复后的“Ptr”。
例如:
ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();
希望有所帮助。
编辑:如果要查看分配的HRESULT,可以执行以下操作:
ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );
其他提示
我剪切了<!>放大器;粘贴了必要的代码很多次我记不起确切的语法,但你必须:
获取CComPtr <!> lt; <!> gt;正确的界面, CreateInstance对象 QueryInterface获取您想要的接口(假设您没有使用CComPtr)
然后调用方法。
或者你可以#import dll,然后编译器将为你生成一个包含所有方法和属性的c ++类。
不隶属于 StackOverflow