본문 바로가기
■ 프로그래밍, 개발

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

by 토크맨 2014. 1. 31.
반응형

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

 

일반적으로 ActiveX 컨트롤이 자신이 삽입된 URL 의 정보를 알기 위해서는 스크립트 코드를 

사용해서 URL 을 알려주는 코드를 사용한다던지,

혹은 PARAM 과 같은 코드를 사용해서 property 에 URL 값을 알려줄 수 있습니다. 하지만, 

이러한 방법이 아닌 ActiveX 컨트롤이 URL 을 직접 알 수 있다면, 

훨씬 더 편리하겠죠. 이러한 방법은 IOleClientSite 인터페이스를 사용하여 IMoniker 를 

얻고 IMoniker 의 GetDisplayName 함수를 사용하면 가능합니다. 

 

<예제>

 

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() 을 사용하여 , 메모리에서 제거해야합니다. 

 

 

 

반응형

댓글