再问:怎样使用DELPHI开发的ACTIVEX控件得到通过URL中传递过来的参数? 请DragonPC_???帮忙!(100分)

  • 主题发起人 主题发起人 lu_ning
  • 开始时间 开始时间
L

lu_ning

Unregistered / Unconfirmed
GUEST, unregistred user!
DragonPC_???:
按你提供的方法,通过按钮点击事件可以得到URL,但我想在FORM CREATE 的时候得到
URL,系统编译通过,可执行时报错,请帮忙!谢谢!
 
比较麻烦
 
通过兄弟的实践,发现在FormCreate的阶段,根本无法获得ActiveForm的IOleClientSite接
口,... 考虑及寻找资料中 ... ...

procedure TActiveTest.Button1Click(Sender: TObject);
var
Site: IOleClientSite;
browser: IWebBrowser2;
isp: IServiceProvider;

function ClientSite( obj: IUnknown ): IOleClientSite;
var
Site: IOleClientSite;
OleObj: IOleObject;
begin
if (obj.QueryInterface( IOleObject, OleObj ) = S_OK) and
(OleObj.GetClientSite( Site ) = S_OK) then
Result := Site
else
Result := nil;
end;

begin
// ShowMessage('Dragon P.C. Test ActiveX Form');
Site := ClientSite(Self);
// ~~~~~~~~~~~~~~~~~~~~~在FormCreate调用的时候这个接口Site为nil

if (Site.QueryInterface(IServiceProvider, isp) = S_OK) then
if (isp.QueryService(IWebbrowserApp, IWebbrowser2, browser) = S_OK) then
ShowMessage('Browser URL is := ' + browser.LocationURL);
end;
 
后退
顶部