HOWTO: ActiveX 컨트롤에서 웹 페이지의 URL 검색

만료된 KB 콘텐츠 고지 사항

이 문서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 작성되었습니다. 따라서 이 문서는 “있는 그대로" 제공되며 더 이상 업데이트되지 않습니다.

요약

본 문서에서는 ActiveX 컨트롤이 포함된 웹 페이지(문서)에서 ActiveX 컨트롤이 웹 페이지의 URL(Uniform Resource Locator)를 검색하는 방법을 설명합니다.



본 문서의 내용은 ActiveX 컨트롤 사용을 특정 도메인/사이트로 제한하거나 상대 경로가 제공된 경우에만 파일을 액세스하도록 제한하려는 경우에 유용할 수 있습니다.

추가 정보

포함된 ActiveX 컨트롤을 초기화하는 동안 Internet Explorer(IE)는 IOleObject::SetClientSite()를 호출하여 클라이언트 사이트에 포인터를 전달합니다. 이 프로세스는 컨테이너를 위한 모니커를 검색하거나 문서 개체 모델을 액세스하여 호스팅 웹 페이지의 URL을 검색하는 데 사용될 수 있습니다.



본 문서에서는 컨테이너 모니커에서 현재 URL을 검색하는 방법을 보여줍니다. 문서 개체 모델에서 URL을 얻는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.

172763 INFO: Accessing the Object Model from Within an ActiveX Control

컨테이너 모니커에서 현재 URL을 검색하려면 아래 단계를 수행합니다.

  1. 클라이언트 사이트(IOleClientSite) 인터페이스 포인터를 얻습니다. 컨테이너는 IOleObject::SetClientSite()를 호출하여 포인터를 클라이언트 사이트에 전달합니다. 이 포인터를 캐시하도록 이 메서드를 override합니다.

  2. IOleClientSite::GetMoniker()를 호출하여 클라이언트 사이트의 모니커를 얻습니다.

  3. IMoniker::GetDisplayName()을 호출하여 현재 문서의 URL을 얻습니다.

아래의 예제 코드에서는 ATL(Active Template Library) ActiveX 컨트롤에서 IOleObject::SetClientSite() 메서드를 override함으로써 위에서 설명한 단계를 수행하는 방법을 보여줍니다.


예제 코드

STDMETHOD(SetClientSite)(IOleClientSite *pClientSite)
{
if (pClientSite != NULL)
{
// Obtain URL from container moniker.
CComPtr<IMoniker> spmk;
LPOLESTR pszDisplayName;

if (SUCCEEDED(pClientSite->GetMoniker(
OLEGETMONIKER_TEMPFORUSER,
OLEWHICHMK_CONTAINER,
&spmk)))
{
if (SUCCEEDED(spmk->GetDisplayName(
NULL, NULL, &pszDisplayName)))
{
USES_CONVERSION;

CComBSTR bstrURL;
bstrURL = pszDisplayName;

ATLTRACE("The current URL is %s\n", OLE2T(bstrURL));
CoTaskMemFree((LPVOID)pszDisplayName);
}
}
}

return IOleObject_SetClientSite(pClientSite);
}



CComBSTR bstrURL; bstrURL = pszDisplayName;

ATLTRACE("The current URL is %s\n", OLE2T(bstrURL)); CoTaskMemFree((LPVOID)pszDisplayName); } } }

return IOleObject_SetClientSite(pClientSite); }

참조

IOleObject, IOleClientSite 및 IOleContainer 인터페이스에 대한 자세한 내용은 Microsoft Visual C++ 온라인 도움말을 참조하십시오.



(c) Microsoft Corporation 1998, All Rights Reserved. Microsoft Corporation의 Mark Davis 제공

속성

문서 ID: 181678 - 마지막 검토: 2003. 8. 19. - 수정: 1

피드백