IHTMLDocument2 HWND를 얻는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 249232 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

이 문서는 HWND에서 IHTMLDocument2 인터페이스를 가져오는 방법을 보여 줍니다. Microsoft 활성 내게 필요한 옵션 (MSAA) 설치 되어 있으면 WM_HTML_GETOBJECT 메시지를 보낼 문서 창 (window 클래스 "인터넷 Explorer_Server")를 하 고 결과에서 SendMessage 완전히 마샬링된 IHTMLDocument2 포인터를 가져오려면 ObjectFromLresult, MSAA 함수에 전달 합니다.

추가 정보

Active Accessibility 구성 요소를 설치 하려면이 절에서 설명 하는 코드에 대 한 시스템에 있어야 합니다. 클라이언트 개발자 SDK을 개발 Active 내게 필요한 보조 도구를 업데이트 하는 있습니다. 최신 버전의 Active Accessibility를 통합 하 고 새 버전의 내게 필요한 옵션 도구를 배포할 경우에 Microsoft Windows 95, Windows 98 또는 Windows NT 4.0 서비스 팩 4 또는 5로 개발 된 클라이언트에 대 한 런타임 구성 요소 (RDK)를 배포 해야 합니다. RDK는 클라이언트가 Windows 2000 또는 Windows NT 4.0 서비스 팩 6을 단독으로 개발을 포함 하는 것이 필요 하지 않습니다. 새 구성 요소는 이들 운영 체제에 이미 포함 되어 있습니다.

Active Accessibility 및 Active 내게 필요한 SDK를 다운로드할 수 있는 위치에 대 한 내용은이 문서의 "참조" 절을 참조 하십시오.
#include <mshtml.h>
#include <atlbase.h>
#include <oleacc.h>

BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)
{
	TCHAR	buf[100];

	::GetClassName( hwnd, (LPTSTR)&buf, 100 );
	if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 )
	{
		*(HWND*)lParam = hwnd;
		return FALSE;
	}
	else
		return TRUE;
};

//You can store the interface pointer in a member variable 
//for easier access
void CDlg::OnGetDocInterface(HWND hWnd) 
{
	CoInitialize( NULL );

	// Explicitly load MSAA so we know if it's installed
	HINSTANCE hInst = ::LoadLibrary( _T("OLEACC.DLL") );
	if ( hInst != NULL )
	{
		if ( hWnd != NULL )
		{
			HWND hWndChild=NULL;
			// Get 1st document window
			::EnumChildWindows( hWnd, EnumChildProc, (LPARAM)&hWndChild );
			if ( hWndChild )
			{
				CComPtr<IHTMLDocument2> spDoc;
				LRESULT lRes;
			
				UINT nMsg = ::RegisterWindowMessage( _T("WM_HTML_GETOBJECT") );
				::SendMessageTimeout( hWndChild, nMsg, 0L, 0L, SMTO_ABORTIFHUNG, 1000, (DWORD*)&lRes );

				LPFNOBJECTFROMLRESULT pfObjectFromLresult = (LPFNOBJECTFROMLRESULT)::GetProcAddress( hInst, _T("ObjectFromLresult") );
				if ( pfObjectFromLresult != NULL )
				{
					HRESULT hr;
					hr = (*pfObjectFromLresult)( lRes, IID_IHTMLDocument, 0, (void**)&spDoc );
					if ( SUCCEEDED(hr) )
					{
						// Change background color to red
						spDoc->put_bgColor( CComVariant("red") );
					}
				}
			} // else document not ready
		} // else Internet Explorer is not running
		::FreeLibrary( hInst );
	} // else Active Accessibility is not installed
	CoUninitialize();
}
				
참고: Internet Explorer 5.5를 하기 전에 프레임 Shdocvw.dll의 새 인스턴스를 호스트 하 여 구현 하는 별도 창에 연결 된 각 프레임을 했습니다. Internet Explorer 5.5 기본 프레임 성능 향상을 구현 하 고 Shdocvw.dll의 동일한 인스턴스에서 모든 프레임을 렌더링 합니다. Internet Explorer 5.5 이상과 각 프레임에 대 한 HWND 제공 되지 않습니다 있으므로 주 창의 문서를 가져오려면이 절에서 설명 하는 샘플 코드 작동 합니다. 주 문서의 프레임 컬렉션을 사용 하 여 각 프레임 문서에 계속 가져올 수 있습니다.

참조

개발자를 위한 SDK 및 Active Accessibility 런타임 구성 요소는 운영 체제에 설치 된 RDK, 다음 Microsoft 웹 사이트에서 다운로드할 수 있습니다.
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b14f6e1-888a-4f1d-b1a1-da08ee4077df&DisplayLang=en
Microsoft Internet Explorer MSHTML 구성 요소에서 제공 하는 Microsoft 활성 내게 필요한 옵션 지원에 대 한 자세한 내용은 다음 웹 사이트를 방문 하십시오.
현재 내게 필요한 옵션 지원에 대 한
자세한 내용을 보시려면, Microsoft 기술 자료의 다음 문서 번호를 클릭해 주십시오.
176792Internet Explorer 실행 중인 인스턴스에 연결 하는 방법

속성

기술 자료: 249232 - 마지막 검토: 2013년 5월 30일 목요일 - 수정: 4.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Internet Explorer 4.01 서비스 팩 1
키워드:?
kbhowto kbmshtml kbwebbrowser kbmt KB249232 KbMtko
기계 번역된 문서
이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.
이 문서의 영문 버전 보기:249232
더 이상 지원되지 않는 제품의 KB 내용에 대한 고지 사항
이 문서에서는 Microsoft에서 더 이상 지원하지 않는 제품에 대해 설명합니다. 따라서 이 문서는 "있는 그대로" 제공되며 업데이트되지 않습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com