현재 오프라인 상태입니다. 인터넷에 다시 연결하기를 기다리고 있습니다.

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

이 문서는 이전에 다음 ID로 출판되었음: KR181678
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.
요약
본 문서에서는 ActiveX 컨트롤이 포함된 웹 페이지(문서)에서 ActiveX 컨트롤이 웹 페이지의 URL(Uniform Resource Locator)를 검색하는 방법을 설명합니다.

본 문서의 내용은 ActiveX 컨트롤 사용을 특정 도메인/사이트로 제한하거나 상대 경로가 제공된 경우에만 파일을 액세스하도록 제한하려는 경우에 유용할 수 있습니다.
추가 정보
포함된 ActiveX 컨트롤을 초기화하는 동안 Internet Explorer(IE)는 IOleObject::SetClientSite()를 호출하여 클라이언트 사이트에 포인터를 전달합니다. 이 프로세스는 컨테이너를 위한 모니커를 검색하거나 문서 개체 모델을 액세스하여 호스팅 웹 페이지의 URL을 검색하는 데 사용될 수 있습니다.

본 문서에서는 컨테이너 모니커에서 현재 URL을 검색하는 방법을 보여줍니다. 문서 개체 모델에서 URL을 얻는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
172763INFO: 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 - 마지막 검토: 08/19/2003 18:13:58 - 수정: 2.1

Microsoft Internet Explorer 3.0, Microsoft Internet Explorer 3.01, Microsoft Internet Explorer 3.02, Microsoft Internet Explorer 4.0 128-Bit Edition, Microsoft Internet Explorer 4.01 서비스 팩 2, Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.5

  • axsdkcontrols kbdsi kbgrpinet kbie300 kbie400 kbie401 kbie500 kbie550 KB181678
피드백
>://c.microsoft.com/ms.js"> 050&did=1&t=">I=4050&did=1&t="> var varClickTracking = 1; var varCustomerTracking = 1; var Route = "76500"; var Ctrl = ""; document.write("