Have you checked the TVarType of parameter 1? Is it actually a bStrVal and not pbstrVal?

For pbstrVal just dereference the pointer to an ordinary string variable. The conversion is automatic.

var
 myValue : string;
begin
  myValue := Params.rgvarg[1].pbstrVal^;
end;


----- Original Message ----- From: "Phil Middlemiss" <[EMAIL PROTECTED]>
To: "NZ Borland Developers Group - Delphi List" <[email protected]>
Sent: Tuesday, July 18, 2006 11:13 AM
Subject: [DUG] Returning a WideString in an Invoke Param


Hi all,

I have an automation object with events. One of the events has a couple
of VAR parameters which I'm not quite sure how to handle. Here is the
code that is NOT working:

procedure TT3SDKEvents.DoInvoke(Sender : TObject; DispID: Integer; const
IID: TGUID;
 LocaleID: Integer; Flags: Word; var Params: TDispParams; VarResult,
ExcepInfo,
 ArgErr: Pointer);
   case DispID of

   ...

   4: { OnIdentify }
     if assigned(FOnIdentify) then
       begin
       //initialise the values
       layermanagerid :=  WideCharToString(Params.rgvarg[1].bStrVal);
       appname := WideCharToString(Params.rgvarg[0].bstrVal);
       if assigned(FOnIdentify) then
         FOnIdentify(layermanagerid, appname);
       Params.rgvarg[1].bstrVal := PWideChar(layermanagerid);
       Params.rgvarg[0].bstrVal := PWideChar(appname);
       end;
   end;
end;

The above code just ends up returning an empty string - I've checked to
make sure that the call to FOnIdentify is indeed returning values.
So the question is: how should I be returning a widestring in the
TDispParams?

Cheers,
Phil.



--------------------------------------------------------------------------------


_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi



--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.1/389 - Release Date: 14/07/2006



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.394 / Virus Database: 268.10.1/389 - Release Date: 14/07/2006

_______________________________________________
Delphi mailing list
[email protected]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to