0

ComTypes.STGMEDIUMオブジェクトを取得し、そのIStorageを取得したいと思います。STGMEDIUM構造体から、pstgメンバーの助けを借りてそれを取得できます。ComTypes.STGMEDIUMクラスには、そのようなメンバーがありませ ん。

4

1 に答える 1

1

そこにあり、ユニオンはIntPtrタイプの単純な単一フィールドにフラット化されました。あなたはそれをキャストすることができます:

#include <windows.h>

using namespace System::Runtime::InteropServices;

    //...
    ComTypes::STGMEDIUM foo;
    IStorage* pStore = (IStorage*)foo.unionmember.ToPointer();

または、必要に応じて構造全体をマーシャリングすることもできます。

::STGMEDIUM native;
Marshal::StructureToPtr(foo, IntPtr(&native), false);
IStorage* pStore = native.pstg;
于 2012-10-30T10:21:15.540 に答える