|
const GUID GUID_MyStruct= {0x44ABAE82,0xA173,0x11d4,{0x98,0xDB,0x00,0x80,0xC8,0xF5,0xB2,0xE4}}; const GUID LIBID_TEST6Lib = {0x67061661,0xa2cb,0x11d4,{0x98,0xdb,0x00,0x80,0xc8,0xf5,0xb2,0xe4}};
ITypeLib* pTypeLib=NULL; ITypeInfo* pTypeInfo=NULL; IRecordInfo* pRecordInfo=NULL;
LoadRegTypeLib(LIBID_TEST6Lib, 1, 0, LANG_NEUTRAL, &pTypeLib); pTypeLib->GetTypeInfoOfGuid(GUID_MyStruct, &pTypeInfo); GetRecordInfoFromTypeInfo(pTypeInfo, &pRecordInfo);
MyStruct *pMyStruct = new MyStruct; pMyStruct->x = pMyStruct->y = 100;
VARIANT vr; VariantInit(&vr); vr.vt = VT_RECORD; //表明自定义类型 vr.pvRecord = (PVOID)pMyStruct; //指向实际数据 vr.pRecInfo = pRecordInfo; //包含了数据的一些信息 test6.Test2(vr); //调用接口方法
pTypeLib->Release(); pTypeInfo->Release(); pRecordInfo->Release(); |