Asynchronous Inno安装程序中的异步WMI查询

Asynchronous Inno安装程序中的异步WMI查询,asynchronous,inno-setup,wmi-query,Asynchronous,Inno Setup,Wmi Query,我正在尝试在Inno安装项目中实现异步WMI查询。但我正在为事件定义而挣扎。我收到一个类型不匹配错误 objSink.OnCompleted:=@WMI\u OnCompleted 我假设我的事件定义是错误的。如何为事件找到正确的对象类型 procedure QueryWMIAsync(Qry: string; var objSink: Variant); var WbemLocator, WbemServices, WbemObjects: Variant; begin log('WM

我正在尝试在Inno安装项目中实现异步WMI查询。但我正在为事件定义而挣扎。我收到一个
类型不匹配
错误

objSink.OnCompleted:=@WMI\u OnCompleted

我假设我的事件定义是错误的。如何为事件找到正确的对象类型

procedure QueryWMIAsync(Qry: string; var objSink: Variant);
var
  WbemLocator, WbemServices, WbemObjects: Variant;
begin
  log('WMI AsyncQuery: '+Qry);
  try
    WbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
    objSink.OnCompleted := @WMI_OnCompleted; //<----- Error: Type mismatch
    objSink.OnObjectReady := @WMI_OnObjectReady;    

    WbemServices := WbemLocator.ConnectServer('localhost', 'root\CIMV2');
    WbemServices.ExecQueryAsync(objSink, Qry);    
  except
    MsgBox('ERROR on WMI Query <'+Qry+'>: '+GetExceptionMessage,mbError,MB_OK);
  end;
end;

procedure WMI_OnCompleted(hResult: HRESULT; error: Variant; asyncContext: Variant);
begin

end;
procedure querywmiaasync(Qry:string;var-objSink:Variant);
变量
WbemLocator、WbemServices、WBEMObject:变量;
开始
日志('WMI异步查询:'+Qry);
尝试
WbemLocator:=CreateOleObject('WbemScripting.SWbemLocator');

objSink.OnCompleted:=@WMI\u OnCompleted// 根据Inno Setup新闻组的说法,这实际上似乎是不可能的。至少我的方法是:


我甚至不确定这是否可能。你到底想做什么?在等待结果时,您会怎么做?我希望在查询运行时显示一个图像,当用户单击该图像时,一个网页将以如下方式打开。这是非常先进的东西,我喜欢+1。但我认为这在Inno设置中是不可能的。