Como recuperar a interface IWebBrowser2 superior de um controle ActiveX

Traduções deste artigo Traduções deste artigo
ID do artigo: 257717 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sumário

O artigo
172763INFO: Acessar o modelo de objeto de dentro de um controle ActiveX
Explica como obter a referência de IWebBrowser2 para a janela de host de um controle ActiveX. No entanto, muitas vezes que os desenvolvedores realmente desejam é uma referência para a superior IWebBrowser2, aquele que contém o conjunto de quadros. Isso pode ser útil se você deseja chamar o comando statusText(), por exemplo definir o valor da caixa de status de janela antes da página foi carregada. Porque essa propriedade não funciona no controle WebBrowser, discando IWebBrowser2 do quadro incorporado resulta em erro.

Mais Informações

Para recuperar a referência de IWebBrowser2 de nível superior, obter IServiceProvider do site do cliente e executar um QueryService para IID_IServiceProvider sob o serviço SID_STopLevelBrowser (definido no shlguid.h). De IServiceProvider essa segunda, execute um QueryService para IID_IWebBrowser2 no serviço de SID_SWebBrowserApp.

O melhor lugar para executar esse trabalho é no método SetClientSite() de IOleObject:
#include <SHLGUID.h>

#define COMRELEASE(ptr)\ 
	if (ptr != NULL) {\ 
		ptr->Release();\ 
		ptr = NULL;\	
	}

IWebBrowser2 *browser = NULL;

STDMETHODIMP SetClientSite(IOleClientSite *pClientSite) 
{
	HRESULT hr = S_OK;
	IServiceProvider *isp, *isp2 = NULL;
	if (!pClientSite)
	{
		COMRELEASE(browser);
	}  
	else
	{
		hr = pClientSite->QueryInterface(IID_IServiceProvider, reinterpret_cast<void **>(&isp));
		if (FAILED(hr)) 
		{
			hr = S_OK;
			goto cleanup;
		}
		hr = isp->QueryService(SID_STopLevelBrowser, IID_IServiceProvider, reinterpret_cast<void **>(&isp2));
		if (FAILED(hr))
		{
			hr = S_OK;
			goto cleanup;
		}
		hr = isp2->QueryService(SID_SWebBrowserApp, IID_IWebBrowser2, reinterpret_cast<void **>(&browser));
		if (FAILED(hr)) 
		{
			hr = S_OK;
			goto cleanup;
		}
	cleanup:
		// Free resources.
		COMRELEASE(isp);
		COMRELEASE(isp2);
		return hr;
	}
}
				

Referências

Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
172763INFO: Acessar o modelo de objeto de dentro de um controle ActiveX
Para obter mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes sites:
http://msdn.microsoft.com/ie/

http://support.microsoft.com/iep

Propriedades

ID do artigo: 257717 - Última revisão: quinta-feira, 11 de maio de 2006 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft Internet Explorer 4.0 Edição de 128 Bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer 5.5
Palavras-chave: 
kbmt kbctrl kbhowto KB257717 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 257717
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

Submeter comentários

 

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