C ++ ATLメンバー変数アクセスヘルプ
質問
私はこれに詳しくないので、キックスタートを使用できます。
ATL(アンマネージC ++)ユーザーコントロールを使用していますが、ShockWave ActiveXオブジェクトを使用したいです。プロパティを設定したり、メソッドを呼び出したりできるように、宣言する方法を知る必要があります。
たとえば、変数を割り当てることができる場合、「variable-<!> gt; LoadMovie()」を呼び出したい
これは非常にばかげていることを知っています...ここで質問するのはほとんど恥ずかしいです。 ;)(ほぼ)
解決
dllを#importする場合(COMを使用すると作業がずっと楽になるため、これをお勧めします)、オブジェクトのCLSIDとペアになったスマートポインターを使用できます。スマートポインタークラスには、インターフェイス名の後に後修正「Ptr」があることに注意してください。
たとえば:
ISomeInterfacePtr pSomeInterface( CLSID_SomeComponent );
HRESULT hr = pSomeInterface->SomeMethod();
役立つこと。
編集:割り当てのHRESULTを確認する場合は、次の操作を実行できます。
ISomeInterfacePtr pSomeInterface = 0;
HRESULT hr = pSomeInterface.CreateInstance( CLSID_SomeComponent );
他のヒント
必要なコードを何度も貼り付けて<!>アンペア;正確な構文を思い出せないが、次のことをしなければならない:
CComPtr <!> lt; <!> gt;を取得正しいインターフェースの オブジェクトを作成する 必要なインターフェイスを取得するQueryInterface(CComPtrを使用していない場合)
その上でメソッドを呼び出します。
別の方法として、dllを#importすると、コンパイラはすべてのメソッドとプロパティを含むc ++クラスを生成します。
所属していません StackOverflow