I'm using Delphi6 which allows the ^ to be optional if the pointer is a typed pointer.

Todd Martin wrote:
Actually I've spotted an error in your code....and my example.

rgvarg is of type PVariantArgList, so you need to dereference the pointer to the variant list and then index the array.

Like so

funtion getParameter(Params : TDispParams; AIndex : Integer) : OleVariant;
begin
 Result:= Params.rgvarg^[AIndex ];
end;

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


No, it's not in a DLL. It's the automatically generated events object
that the Automation wizard produces when creating an automation server
with events. It's for use in the client app that will connect to the
automation server in order to respond to the events that the automation
server fires.

Perhaps I need to use OleVariants. Infact, the actual parameters may be
OleVariants instead of bstrVal types.

Phil.

Rohit Gupta wrote:
Is this code in a DLL ? If so then you can not transfer ansistrings unless you
use a sharememory kludge.

Last time I chose to use shortstrings to get around this. That worked fine
except in some instances on some PCs, the exceptions would not work...
When I thought about it, the exception object itself uses ansistring. So Borlands staement is not true.... if the DLL can possible raise an exception,
it uses ansistring and you need to use sharemem.

Date sent: Tue, 18 Jul 2006 11:13:50 +1200
From: Phil Middlemiss <[EMAIL PROTECTED]>
Organization: MTS Ltd
To: NZ Borland Developers Group - Delphi List <[email protected]>
Subject: [DUG] Returning a WideString in an Invoke Param
Send reply to: NZ Borland Developers Group - Delphi List <[email protected]>
<mailto:[EMAIL PROTECTED]>
<mailto:[EMAIL PROTECTED]>

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.
Regards

Rohit

======================================================================
CFL - Computer Fanatics Ltd.  21 Barry's Point Road, AKL, New Zealand
PH    (649) 489-2280
FX    (649) 489-2290
email [EMAIL PROTECTED]  or  [EMAIL PROTECTED]
======================================================================


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







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


_______________________________________________
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



begin:vcard
fn:Phil Middlemiss
n:Middlemiss;Phil
org:Vision Software, MTS Ltd
email;internet:[EMAIL PROTECTED]
title:Project Leader
tel;work:+64 7 3480001
tel;cell:+64 27 4592648
x-mozilla-html:TRUE
url:http://www.tumonz.co.nz
version:2.1
end:vcard

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

Reply via email to