[DUG] Returning a WideString in an Invoke Param

Todd Martin toddm at kol.co.nz
Tue Jul 18 12:06:36 NZST 2006


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" <phil at tumonz.co.nz>
To: "NZ Borland Developers Group - Delphi List" <delphi at ns3.123.co.nz>
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
> Delphi at ns3.123.co.nz
> 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



More information about the Delphi mailing list