http://www.delmadang.com에서 “마린”님이 올린 글입니다. 추후에 유용하게 사용될 듯 해서 Keep해 둡니다. 참고로 Delphi로 된 코드입니다.
uses SHDocVw; function Get_IE_URL:string; var ClientSite: IOleClientSite; WebBrowserApp: IWebBrowserApp; ServiceProvider: IServiceProvider; WebBrowser2: IWebBrowser2; begin Result := ''; if (ComObject as IOleObject).GetClientSite(ClientSite) = S_OK then begin if (ClientSite <> nil) then begin ClientSite.QueryInterface(IServiceProvider, ServiceProvider); if (ServiceProvider <> nil) then begin ServiceProvider.QueryService( IWebBrowserApp, IWebBrowserApp, WebBrowserApp); if (WebBrowserApp <> nil) then begin WebBrowser2 := IWebBrowser2(WebBrowserApp); Result := WebBrowser2.Get_LocationURL; end; end; end; end; end;
Windows Vista에서 ActiveX의 행보는 어떻게 되는걸까요? 혹자는 ActiveX는 없어질 것이다라고 말하지만.. Vista에 기본으로 탑재되는 IE의 시험버전이 기존의 Windows에서 잘.. 돌아가며, 당연이 여기에 ActiveX를 삽입하여 잘 작동하고 있고.. 아직까지 .NET의 하부단에서 ActiveX가 사용되고 있습니다. 물론 .NET에서 사용하는 ActiveX는 조금씩 제거 되겠지만요. 또한 Flash와 같은 컨트롤 역시 여전이 ActiveX이구요. 또…. 물론 추후에는 .NET용 Flash가 나오겠지요. 곰곰이.. 곰곰이 생각을 해보면… ActiveX는 Windows Vista에서도 여전이 잘사용되리라 의심치 않습니다. 아마도… Vista 이후의 Windows에서나 ActiveX가 Disable되지 않을까 짐작됩니다..