Nasıl Ihtmldocument2 bir HWND alın

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 249232
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Özet
Bu makalede nasıl Ihtmldocument2 arabirimi bir HWND alın gösterir. Microsoft Etkin Erişilebilirlik (MSAA) yüklüyse, belge penceresine (pencere sınıfı "Internet Explorer_Server" ile) WM_HTML_GETOBJECT ileti göndermek ve sonucu bir MSAA işlevi tam olarak sıralanmış bir Ihtmldocument2 işaretçisi almak için ObjectFromLresult, SendMessage ' sonra geçti.
Daha fazla bilgi
Active Accessibility bileşenlerini çalışmak için bu bölümde açıklanan kodu sistemde yüklü olması gerekir. İstemci geliştiricilerin SDK geliştirmek ve etkin erişilebilirlik yardımları güncelleştirmek için kullanabilirsiniz. Etkin Erişilebilirlik'ın en son sürümünü eklemek ve yeni sürümleri, erişilebilirlik yardımlarını dağıtmak, Microsoft Windows 95, Windows 98 veya Windows NT 4.0 Service Pack 4 veya 5 ile geliştirilen istemciler için (RDK) çalışma zamanı bileşenleri dağıtmalısınız. İstemciler yalnızca Windows 2000 veya Windows NT 4.0 Service Pack 6 ile geliştirilen RDK eklemek gerekli değildir. Yeni bileşenler zaten bu işletim sistemlerinde bulunur.

Active Accessibility ve Etkin Erişilebilirlik SDK karşıdan yükleme konumu hakkında bilgi için bu makalenin "Başvurular" bölümüne bakın.
#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 accessvoid 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();}				
Not: Internet Explorer 5.5 önce çerçeve Shdocvw.dll yeni bir örneğini barındıran tarafından uygulanan ve ilişkili olan ayrı bir pencerede her kare kaldı. Internet Explorer 5.5 daha iyi performans için yerel çerçeveler uygular ve tüm çerçeveleri Shdocvw.dll aynı örneği tarafından işlenir. Internet Explorer 5.5 ve sonraki her çerçeve için bir HWND olmaz çünkü bu bölümde açıklanan örnek kodu yalnızca ana pencerede belgeye almak için çalışır. Ana belge çerçeve koleksiyonunu kullanarak, her çerçevenin belgeye yine de alabilirsiniz.
Referanslar
Geliştiriciler için SDK ve işletim sistemi üzerine Active Accessibility çalışma zamanı bileşenleri yükler, RDK, aşağıdaki Microsoft Web sitesinden yüklenebilir:Microsoft Internet Explorer MSHTML bileşeni tarafından sağlanan Microsoft Active Accessibility desteği hakkında daha fazla bilgi için aşağıdaki Web sitesini ziyaret edin:Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
176792Internet Explorer'ın çalışan bir örneğine bağlanmak nasıl
Etkin Erişilebilirlik belge nesne modeli hwnd

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 249232 - Son İnceleme: 12/05/2015 18:00:53 - Düzeltme: 4.0

Microsoft Internet Explorer 4.01 Service Pack 1

  • kbnosurvey kbarchive kbhowto kbmshtml kbwebbrowser kbmt KB249232 KbMttr
Geri bildirim