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 回答