saif
Programmer
- Mar 28, 2001
- 47
Hi
I have problem in calling my COM object. I made a COM object in which i define a record
REC = packed record
wsGtc: WideString;
wsSender: WideString;
wsMsgType: WideString;
wsMsgRef: WideString;
wsHotelCode: WideString;
wsHotelVedor: WideString;
wsPayingPPL: WideString;
wsXAdult: WideString;
wsXChild: WideString;
wsBEDAdult: WideString;
wsBedChild: WideString;
wsXCribs: WideString;
wsCheckInDate: WideString;
wsCheckOutDate: WideString;
wsNoOfRooms: WideString;
end;
In COM Method (function Encode(var HACRec: REC; out ErrorRec: ErrorRecord): PChar; safecall
, I passed this parameter as HAC*.
The problem arises when i am trying to call this method from my delphi application. I am calling this metod as
procedure TForm1.EncodeClick(Sender: TObject);
var
crs: REC;
encode: variant;
a: PChar;
ErrorRec: ErrorRecord;
begin
crs.sGtc := 'H';
crs.sSender := 'H';
crs.sMsgType := 'mtHotelAvailability_Req';
crs.sMsgRef := 'HA';
crs.sHotelCode := 'ABCDEF';
crs.sHotelVedor := 'ZE';
crs.sPayingPPL := '1';
crs.sNoOfRooms := '3';
crs.sXAdult := '0';
crs.sXChild := '0';
crs.sBEDAdult := '0';
crs.sBedChild := '0';
crs.sXCribs := '0';
crs.sCheckInDate := '02AUG0000';
crs.sCheckOutDate := '25AUG0000';
encode := CreateOleObject('Mycom.EncodeRequest');
//Error Line
a := encode.Encode(crs, ErrorRec);
Memo1.Text := String(a);
end;
So this function gives me error "Type Not Allowed in Variant Dispatch Call" on this line
a := encode.Encode(crs, ErrorRec);
Hope I will get solution soon
Thanks
Saif
I have problem in calling my COM object. I made a COM object in which i define a record
REC = packed record
wsGtc: WideString;
wsSender: WideString;
wsMsgType: WideString;
wsMsgRef: WideString;
wsHotelCode: WideString;
wsHotelVedor: WideString;
wsPayingPPL: WideString;
wsXAdult: WideString;
wsXChild: WideString;
wsBEDAdult: WideString;
wsBedChild: WideString;
wsXCribs: WideString;
wsCheckInDate: WideString;
wsCheckOutDate: WideString;
wsNoOfRooms: WideString;
end;
In COM Method (function Encode(var HACRec: REC; out ErrorRec: ErrorRecord): PChar; safecall
The problem arises when i am trying to call this method from my delphi application. I am calling this metod as
procedure TForm1.EncodeClick(Sender: TObject);
var
crs: REC;
encode: variant;
a: PChar;
ErrorRec: ErrorRecord;
begin
crs.sGtc := 'H';
crs.sSender := 'H';
crs.sMsgType := 'mtHotelAvailability_Req';
crs.sMsgRef := 'HA';
crs.sHotelCode := 'ABCDEF';
crs.sHotelVedor := 'ZE';
crs.sPayingPPL := '1';
crs.sNoOfRooms := '3';
crs.sXAdult := '0';
crs.sXChild := '0';
crs.sBEDAdult := '0';
crs.sBedChild := '0';
crs.sXCribs := '0';
crs.sCheckInDate := '02AUG0000';
crs.sCheckOutDate := '25AUG0000';
encode := CreateOleObject('Mycom.EncodeRequest');
//Error Line
a := encode.Encode(crs, ErrorRec);
Memo1.Text := String(a);
end;
So this function gives me error "Type Not Allowed in Variant Dispatch Call" on this line
a := encode.Encode(crs, ErrorRec);
Hope I will get solution soon
Thanks
Saif