我对此不熟悉,可以使用kick start。
我正在使用 ATL(非托管 C++)用户控件并希望使用 ShockWave ActiveX 对象。我需要知道如何声明它,以便我可以设置属性或调用方法。
例如,如果我可以为其分配一个变量,那么我想调用'variable->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<>,CreateInstance 对象 QueryInterface 以获取您想要的接口(假设您没有使用 CComPtr)
然后调用它的方法。
或者,您可以#import dll,然后编译器将为您生成一个包含所有方法和属性的 c++ 类。