Nasıl Ihtmldocument2 bir HWND alın

Makale çevirileri Makale çevirileri
Makale numarası: 249232 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Ö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 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();
}
				
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:
http://www.microsoft.com/downloads/details.aspx?FamilyId=9b14f6e1-888A-4f1d-b1a1-da08ee4077df&displaylang=en
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:
Active Accessibility desteği hakkında
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

Özellikler

Makale numarası: 249232 - Last Review: 30 Mayıs 2013 Perşembe - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Explorer 4.01 Service Pack 1
Anahtar Kelimeler: 
kbhowto kbmshtml kbwebbrowser kbmt KB249232 KbMttr
Machine-translated Article
Ö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
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

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