1

一部の PIA 型を対応するアンマネージ型に変換するのに役立つ C++/CLI ラッパーを作成したいと考えています。これはコードサンプルです:

void DoSomething(SomeInteropLibrary::InteropObject obj)
{
    IComInterface* pComInterface = NULL;
    IntPtr comInterfacePointer = Marshal::GetIUnknownForObject(obj);
    IUnknown* punkComInterface = static_cast<IUnknown*>(comInterfacePointer.ToPointer());
    punkComInterface->QueryInterface(__uuidof(IComInterface), (void**)&pComInterface);

    //Do something with pComInterface...

    pComInterface->Release();
    Marshal::Release(comInterfacePointer);
}

IComInterface は私の COM インターフェイスです。obj は、タイプ ライブラリから生成した PIA の相互運用型です。

リソースを適切に解放する方法に興味があります。Marshal::Release メソッドのドキュメントに書かれているように、もう一度呼び出す必要がありますかMarshal::GetIUnknownForObject、それとも単に繰り返すことができpComInterface->Release()ますか?

4

0 に答える 0