웹, HTML

ActiveX 컨트롤로부터 URL 알아내기

디버그정 2008. 8. 30. 07:34

ActiveX 컨트롤로부터 URL 알아내기


1.요약

ActiveX 컨트롤로부터 URL 을 알아내는 뱡법에 대해서 알아봅니다.


2.본문

일반적으로 ActiveX 컨트롤이 자신이 삽입된 URL 의 정보를 알기 위해서는 스크립트 코드를 사용해서 URL 을 알려주는 코드를 사용한다던지, 혹은 PARAM 과 같은 코드를 사용해서 property 에 URL 값을 알려줄 수 있습니다. 하지만, 이러한 방법이 아닌 ActiveX 컨트롤이 URL 을 직접 알 수 있다면, 훨씬 더 편리하겠죠. 이러한 방법은 IOleClientSite 인터페이스를 사용하여 IMoniker 를 얻고 IMoniker 의 GetDisplayName 함수를 사용하면 가능합니다. 아래의 예제를 참고하세요.


3.예제

HRESULT hrResult    = S_FALSE; 

IOleClientSite *pClientSite = NULL; 

IMoniker* pMoniker    = NULL; 

LPOLESTR sDisplayName; 



// 만약 ATL 을 사용했다면, m_spClientSite 를 사용하세요. 

// CComControl 클래스의 멤버입니다. 



// 만약 MFC를 사용한다면, 아래의 코드를 이용하세요. 

// pClientSite = GetClientSite(); 

// * 나중에 릴리즈 하는거 잊지 마세요.. 



hrResult = m_spClientSite->GetMoniker(OLEGETMONIKER_TEMPFORUSER, 

                                      OLEWHICHMK_CONTAINER, 

                                      &pMoniker); 

if(SUCCEEDED(hrResult)) 

{ 

    hrResult = pMoniker->GetDisplayName(NULL, 

        NULL, 

        &sDisplayName); 

    pMoniker->Release(); 

} 



//sDisplayName 을 사용한 후에는 

//반드시 SysFreeString() 을 사용하여 , 메모리에서 제거해야합니다. 


4.참고

http://codeguru.earthweb.com/internet/WebUrlActiveX.html


- 2001.08.19 Smile Seo -