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