IHTMLDocument2 ophalen uit een HWND

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 249232 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Samenvatting

Dit artikel wordt beschreven hoe u de IHTMLDocument2-interface van een HWND. Als Microsoft Active Accessibility (MSAA) is geïnstalleerd, kunt u het WM_HTML_GETOBJECT-bericht verzenden naar het documentvenster (met de vensterklasse "Internet-Explorer_Server") en geeft u het resultaat van SendMessage een MSAA-functie ObjectFromLresultom een volledig gemarshald IHTMLDocument2-aanwijzer.

Meer informatie

U moet Active Accessibility-onderdelen geïnstalleerd op het systeem voor de code die wordt beschreven in deze sectie om te werken. Client-ontwikkelaars kunnen de SDK te ontwikkelen en bijwerken van Active Accessibility hulpmiddelen gebruiken. Als u de meest recente versie van Active Accessibility opnemen en distribueren van nieuwe versies van de hulpmiddelen voor toegankelijkheid, moet u de runtime-onderdelen (RDK) distribueren voor clients die zijn ontwikkeld voor Microsoft Windows 95, Windows 98 of Windows NT 4.0 met Service Pack 4 of 5. Het is niet nodig om op te nemen de RDK voor clients ontwikkeld uitsluitend voor Windows 2000 of Windows NT 4.0 met Service Pack 6. De nieuwe onderdelen zijn al opgenomen in deze besturingssystemen.

Zie de sectie 'Verwijzingen' van dit artikel voor informatie over Active Accessibility en waar de actieve toegankelijkheid SDK downloaden.
#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();
}
				
Opmerking: Frames zijn geïmplementeerd door het hosten van een nieuw exemplaar van het bestand Shdocvw.dll voor Internet Explorer 5.5 en elk frame heeft een apart venster dat is gekoppeld. Internet Explorer 5.5 implementeert native frames voor betere prestaties en alle frames worden weergegeven door hetzelfde exemplaar van het bestand Shdocvw.dll. Omdat er niet een HWND voor elk frame in Internet Explorer 5.5 en hoger, werkt de voorbeeldcode in deze sectie beschreven om het document van het hoofdvenster. Nog steeds krijgt u aan elk frame in het document met behulp van de frames-collectie van het hoofddocument.

Referenties

De SDK voor ontwikkelaars en de RDK die het Active Accessibility runtime-onderdelen op het besturingssysteem is geïnstalleerd, kunnen de volgende Microsoft-website worden gedownload:
http://www.Microsoft.com/downloads/details.aspx?FamilyId=9b14f6e1-888a-4f1d-b1a1-da08ee4077df&displaylang=en
Ga naar de volgende website voor informatie over de ondersteuning voor Microsoft Active Accessibility door het MSHTML-onderdeel van Microsoft Internet Explorer:
Over de ondersteuning van Active Accessibility
Voor meer informatie klikt u op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base te bekijken:
176792Verbinding maken met een actief exemplaar van Internet Explorer

Eigenschappen

Artikel ID: 249232 - Laatste beoordeling: donderdag 30 mei 2013 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Internet Explorer 4.01 Service Pack 1
Trefwoorden: 
kbhowto kbmshtml kbwebbrowser kbmt KB249232 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 249232
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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