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