gpt4 book ai didi

delphi - 如何在 Delphi COM 服务器应用程序中从 Getref 获取的指针调用 VBscript 函数

转载 作者:行者123 更新时间:2023-12-03 15:55:41 24 4
gpt4 key购买 nike

我有一个 COM 服务器应用程序,需要将回调链接到后期绑定(bind)的特定事件。

我的测试VB脚本如下

Sub Main
dim Frm
Set Frm=NewForm("Form1")
Frm.OnActivate = getRef("Frm_OnActivate")
a= Frm.Showmodal
end Sub

sub Frm_OnActivate
MsgBox("Activate")
end Sub

我的 com 服务器具有 OleVariant 类型的 onActivate 属性。

function TALform.Get_OnActivate: OleVariant;
begin
result:=FonActivate;
end;

procedure TALform.Set_OnActivate(Value: OleVariant);
begin
FonActivate:=Value;
Fform.OnActivate:=OnactivateEx
end;

我的问题是,获得该值后,如何从 Olevariant 中存储的值(调试器显示其类型为 VarDispatch)调用 VBscript 函数?

最佳答案

尝试这样的事情:

var
Param: TDispParams;
MethodResult: OleVariant;
Result: HRESULT;
begin
Param.rgvarg := nil;
Param.rgdispidNamedArgs := nil;
Param.cArgs := 0;
Param.cNamedArgs := 0;
Result := IDispatch(FonActivate).Invoke(0, GUID_NULL, SysLocale.DefaultLCID, DISPATCH_METHOD, Param, @MethodResult, nil, nil);
end;

关于delphi - 如何在 Delphi COM 服务器应用程序中从 Getref 获取的指针调用 VBscript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61656664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com