我有一个ComTypes.STGMEDIUM对象,我想得到它的 IStorage。从STGMEDIUM 结构中,您可以在 pstg 成员的帮助下获得它。ComTypes.STGMEDIUM类缺少这样的成员。
问问题
154 次
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 回答