对于oleautomation类型,有VT_xxx类型:
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_cPoints;
psa = SafeArrayCreate(VT_VARIANT, 1, rgsabound);
对于自定义类型,有IRecordInfo:
SafeArrayCreateEx(VT_RECORD, 1, &rgbounds, pRecInfo);
但是对于Windows系统类型的正确类型是什么,例如POINT?
答案 0 :(得分:2)
POINT
不是OLE兼容类型。 VT_RECORD
仅适用于在TypeLibrary中定义的自定义类型。你必须要么:
创建一个复制POINT
的TypeLibrary,然后从TypeLibrary中检索IRecordInfo
创建一个字节的safearray(VT_UI1),然后将原始的POINT
字节复制到其中。然后接收器必须按照读取字节。