描述:
大家好!,我是一名ATL初学者,有个小问题向您请教,请赐教,谢谢!
我用自定义结构类型
typedef [ uuid(44ABAE82-A173-11d4-98DB-0080C8F5B2E4)]
struct MyStruct
{
int x;
int y;
}MyStruct;
写了一个服务端,想在客户端调用,不知如何实现,编了如下代码,也不正确
#include "stdafx.h"
#include "..\showmypoint.h"
//#include "..\pisvr_i.c"
typedef /* [uuid] */ struct MyPoint
{
long x;
long y;
} MyPoint;
Cshowmypoint PiSvr;
HRESULT TestMyvalue() {
const GUID GUID_MyPoint=
{0x7b443199, 0x87f, 0x4787,{0x8d, 0x9d, 0x73, 0xe4, 0xf9, 0x23, 0x53, 0xb2}};
const GUID LIBID_PISVRLib =
{0xdec22f2a,0xdd78,0x11d1,{0x97,0xdf,0x00,0x60,0x08,0x24,0x3c,0x8c}};
ITypeLib* pTypeLib=NULL;
ITypeInfo* pTypeInfo=NULL;
IRecordInfo* pRecordInfo=NULL;
LoadRegTypeLib(LIBID_PISVRLib, 1, 0, LANG_NEUTRAL, &pTypeLib);
pTypeLib->GetTypeInfoOfGuid(GUID_MyPoint, &pTypeInfo);
GetRecordInfoFromTypeInfo(pTypeInfo, &pRecordInfo);
MyPoint *pMyPoint = new MyPoint;
pMyPoint->x=100;
pMyPoint->y=50;
VARIANT vr;
VariantInit(&vr);
vr.vt=VT_RECORD;
vr.pvRecord=(PVOID)pMyPoint;
vr.pRecInfo=pRecordInfo;
PiSvr.showpoint(vr);//
pTypeLib->Release();
pTypeInfo->Release();
pRecordInfo->Release();
return S_OK;
}
int main(int argc, char* argv[])
{
CoInitialize(0);
TestMyvalue();
CoUninitialize();
return 0;
}