我对此并不熟悉,可以使用踢起步。

我正在使用ATL(非托管C++)用户控件,并且想使用ShockWave ActiveX对象。我需要知道如何声明它,以便可以设置属性或调用方法。

例如,如果我可以为其分配变量,那么我想调用“variable-> LoadMovie()”

我知道这太荒谬了...在这里问这个问题几乎很尴尬。 ;)(几乎)

最佳答案

如果您#import dll(我建议在使用COM时建议这样做,因为它会使您的生活变得更加轻松),则可以使用与对象的CLSID配对的智能指针。请记住,智能指针类在接口(interface)名称后带有后缀“Ptr”。

例如:

ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();

希望能有所帮助。

编辑:如果要检查分配的HRESULT,可以执行以下操作:
ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );

07-24 09:45