CAxWindow 클래스
이 클래스는 ActiveX 컨트롤을 호스팅하는 창을 조작하는 메서드를 제공합니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
class CAxWindow : public CWindow
멤버
메서드
함수 | 설명 |
---|---|
AttachControl | 개체에 기존 ActiveX 컨트롤을 CAxWindow 연결합니다. |
CAxWindow | CAxWindow 개체를 생성합니다. |
CreateControl | ActiveX 컨트롤을 만들고, 초기화하고, 창에서 CAxWindow 호스트합니다. |
CreateControlEx | ActiveX 컨트롤을 만들고 컨트롤에서 인터페이스 포인터(또는 포인터)를 검색합니다. |
GetWndClassName | (정적) 개체의 미리 정의된 클래스 이름을 검색합니다 CAxWindow . |
QueryControl | 호스트된 IUnknown ActiveX 컨트롤을 검색합니다. |
QueryHost | 개체의 IUnknown 포인터를 검색합니다 CAxWindow . |
SetExternalDispatch | 개체에서 사용하는 외부 디스패치 인터페이스를 CAxWindow 설정합니다. |
SetExternalUIHandler | 개체에서 사용하는 외부 IDocHostUIHandler 인터페이스를 CAxWindow 설정합니다. |
연산자
연산자 | 설명 |
---|---|
연산자 = | 기존 CAxWindow 개체에 HWND를 할당합니다. |
설명
이 클래스는 ActiveX 컨트롤을 호스트하는 창을 조작하는 메서드를 제공합니다. 호스팅은 " AtlAxWin80"에서 제공하며, 이 호스트는 로 래핑됩니다 CAxWindow
.
클래스는 클래스 CAxWindow
의 특수화로 구현됩니다 CAxWindowT
. 이 특수화는 다음과 같이 선언됩니다.
typedef CAxWindowT<CWindow> CAxWindow;
기본 클래스를 변경해야 하는 경우 새 기본 클래스를 템플릿 인수로 사용하고 CAxWindowT
지정할 수 있습니다.
요구 사항
헤더: atlwin.h
CAxWindow::AttachControl
새 호스트 개체가 없는 경우 새 호스트 개체를 만들고 지정된 컨트롤을 호스트에 연결합니다.
HRESULT AttachControl(
IUnknown* pControl,
IUnknown** ppUnkContainer);
매개 변수
pControl
[in] 컨트롤의 IUnknown
포인터입니다.
ppUnkContainer
[out] 호스트(개체)에 대한 AxWin
포인터 IUnknown
입니다.
Return Value
표준 HRESULT 값입니다.
설명
연결 중인 컨트롤 개체를 호출 AttachControl
하기 전에 올바르게 초기화해야 합니다.
CAxWindow::CAxWindow
CAxWindow
기존 창 개체 핸들을 사용하여 개체를 생성합니다.
CAxWindow(HWND hWnd = NULL);
매개 변수
hWnd
기존 창 개체에 대한 핸들입니다.
CAxWindow::CreateControl
ActiveX 컨트롤을 만들고 초기화하며 지정한 창에 호스팅합니다.
HRESULT CreateControl(
LPCOLESTR lpszName,
IStream* pStream = NULL,
IUnknown** ppUnkContainer = NULL);
HRESULT CreateControl(
DWORD dwResID,
IStream* pStream = NULL,
IUnknown** ppUnkContainer = NULL);
매개 변수
lpszName
컨트롤을 만들 문자열에 대한 포인터입니다. 다음 방법 중 하나로 서식을 지정해야 합니다.
ProgID
"MSCAL.Calendar.7"
다음과 같은 CLSID
"{8E27C92B-1264-101C-8A2F-040224009C02}"
URL(예: )<
"<https://www.microsoft.com>"
활성 문서에 대한 참조(예: )
"file://\\\Documents\MyDoc.doc"
와 같은 HTML의 조각
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"
참고 항목
"MSHTML:"
는 MSHTML 스트림으로 지정되도록 HTML 조각 앞에 와야 합니다. Windows Mobile 플랫폼에서는 ProgID 및 CLSID만 지원됩니다. CE IE를 지원하는 Windows Mobile 이외의 Windows CE 포함 플랫폼은 ProgID, CLSID, URL, 활성 문서에 대한 참조 및 HTML 조각을 비롯한 모든 형식을 지원합니다.
pStream
[in] 컨트롤의 속성을 초기화하는 데 사용되는 스트림에 대한 포인터입니다. NULL일 수 있습니다.
ppUnkContainer
[out] 컨테이너를 받을 IUnknown
포인터의 주소입니다. NULL일 수 있습니다.
dwResID
HTML 리소스의 리소스 ID입니다. WebBrowser 컨트롤이 만들어지고 지정된 리소스와 함께 로드됩니다.
Return Value
표준 HRESULT 값입니다.
설명
이 메서드의 두 번째 버전을 사용하는 경우 HTML 컨트롤이 만들어지고 dwResID로 식별되는 리소스에 바인딩됩니다.
이 메서드는 호출과 동일한 결과를 제공합니다.
AtlAxCreateControlEx(lpszName, hWnd, pStream, NULL, NULL, GUID_NULL, NULL);
라이선스가 부여된 ActiveX 컨트롤을 만들고, 초기화하고, 호스트하려면 CAxWindow2T::CreateControlLic을 참조하세요.
예시
사용하는 CreateControl
샘플은 ATL AXHost를 사용하여 ActiveX 컨트롤 호스팅을 참조하세요.
CAxWindow::CreateControlEx
ActiveX 컨트롤을 만들고 초기화하며 지정한 창에 호스팅합니다.
HRESULT CreateControlEx(
LPCOLESTR lpszName,
IStream* pStream = NULL,
IUnknown** ppUnkContainer = NULL,
IUnknown** ppUnkControl = NULL,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL);
HRESULT CreateControlEx(
DWORD dwResID,
IStream* pStream = NULL,
IUnknown** ppUnkContainer = NULL,
IUnknown** ppUnkControl = NULL,
REFIID iidSink = IID_NULL,
IUnknown* punkSink = NULL);
매개 변수
lpszName
컨트롤을 만들 문자열에 대한 포인터입니다. 다음 방법 중 하나로 서식을 지정해야 합니다.
ProgID
"MSCAL.Calendar.7"
다음과 같은 CLSID
"{8E27C92B-1264-101C-8A2F-040224009C02}"
URL(예: )<
"<https://www.microsoft.com>"
활성 문서에 대한 참조(예: )
"file://\\\Documents\MyDoc.doc"
와 같은 HTML의 조각
"MSHTML:\<HTML>\<BODY>This is a line of text\</BODY>\</HTML>"
참고 항목
"MSHTML:"
는 MSHTML 스트림으로 지정되도록 HTML 조각 앞에 와야 합니다. Windows Mobile 플랫폼에서는 ProgID 및 CLSID만 지원됩니다. CE IE를 지원하는 Windows Mobile 이외의 Windows CE 포함 플랫폼은 ProgID, CLSID, URL, 활성 문서에 대한 참조 및 HTML 조각을 비롯한 모든 형식을 지원합니다.
pStream
[in] 컨트롤의 속성을 초기화하는 데 사용되는 스트림에 대한 포인터입니다. NULL일 수 있습니다.
ppUnkContainer
[out] 컨테이너를 받을 IUnknown
포인터의 주소입니다. NULL일 수 있습니다.
ppUnkControl
[out] 컨트롤을 받을 포인터의 IUnknown
주소입니다. NULL일 수 있습니다.
iidSink
[in] 포함된 개체에서 나가는 인터페이스의 인터페이스 식별자입니다. IID_NULL 수 있습니다.
punkSink
[in] iidSink에서 IUnknown
지정한 포함된 개체의 연결점에 연결할 싱크 개체의 인터페이스에 대한 포인터입니다.
dwResID
[in] HTML 리소스의 리소스 ID입니다. WebBrowser 컨트롤이 만들어지고 지정된 리소스와 함께 로드됩니다.
Return Value
표준 HRESULT 값입니다.
설명
이 메서드는 CAxWindow::CreateControl과 유사하지만 이 메서드 CreateControlEx
와 달리 새로 만든 컨트롤에 대한 인터페이스 포인터를 수신하고 컨트롤에서 발생한 이벤트를 수신하도록 이벤트 싱크를 설정할 수도 있습니다.
라이선스가 있는 ActiveX 컨트롤을 만들고, 초기화하고, 호스트하려면 CAxWindow2T::CreateControlLicEx를 참조하세요.
예시
사용하는 CreateControlEx
샘플은 ATL AXHost를 사용하여 ActiveX 컨트롤 호스팅을 참조하세요.
CAxWindow::GetWndClassName
창 클래스의 이름을 검색합니다.
static LPCTSTR GetWndClassName();
Return Value
허가되지 않은 ActiveX 컨트롤을 호스트할 수 있는 창 클래스의 이름을 포함하는 문자열에 대한 포인터입니다.
CAxWindow::operator =
기존 CAxWindow
개체에 HWND를 할당합니다.
CAxWindow<TBase>& operator=(HWND hWnd);
매개 변수
hWnd
기존 창에 대한 핸들입니다.
Return Value
현재 CAxWindow
개체에 대한 참조를 반환합니다.
CAxWindow::QueryControl
호스트된 컨트롤의 지정된 인터페이스를 검색합니다.
HRESULT QueryControl(REFIID iid, void** ppUnk);
template <class Q>
HRESULT QueryControl(Q** ppUnk);
매개 변수
iid
[in] 컨트롤 인터페이스의 IID를 지정합니다.
ppUnk
[out] 컨트롤의 인터페이스에 대한 포인터입니다. 이 메서드의 템플릿 버전에서는 연결된 UUID가 있는 형식화된 인터페이스가 전달되는 한 참조 ID가 필요하지 않습니다.
Q
[in] 쿼리할 인터페이스입니다.
Return Value
표준 HRESULT 값입니다.
CAxWindow::QueryHost
호스트의 지정된 인터페이스를 반환합니다.
HRESULT QueryHost(REFIID iid, void** ppUnk);
template <class Q>
HRESULT QueryHost(Q** ppUnk);
매개 변수
iid
[in] 컨트롤 인터페이스의 IID를 지정합니다.
ppUnk
[out] 호스트의 인터페이스에 대한 포인터입니다. 이 메서드의 템플릿 버전에서는 연결된 UUID가 있는 형식화된 인터페이스가 전달되는 한 참조 ID가 필요하지 않습니다.
Q
[in] 쿼리할 인터페이스입니다.
Return Value
표준 HRESULT 값입니다.
설명
호스트의 인터페이스를 사용하면 창 호스팅 코드 AxWin
의 기본 기능에 액세스할 수 있습니다.
CAxWindow::SetExternalDispatch
개체에 대한 외부 디스패치 인터페이스를 CAxWindow
설정합니다.
HRESULT SetExternalDispatch(IDispatch* pDisp);
매개 변수
pDisp
[in] 인터페이스에 대한 포인터입니다 IDispatch
.
Return Value
표준 HRESULT 값입니다.
CAxWindow::SetExternalUIHandler
개체에 대한 외부 IDocHostUIHandlerDispatch 인터페이스를 CAxWindow
설정합니다.
HRESULT SetExternalUIHandler(IDocHostUIHandlerDispatch* pUIHandler);
매개 변수
pUIHandler
[in] 인터페이스에 대한 포인터입니다 IDocHostUIHandlerDispatch
.
Return Value
표준 HRESULT 값입니다.
설명
외부 IDocHostUIHandlerDispatch
인터페이스는 호스트의 사이트에서 인터페이스를 쿼리하는 컨트롤에서 IDocHostUIHandlerDispatch
사용됩니다. WebBrowser 컨트롤은 이 작업을 수행하는 하나의 컨트롤입니다.