Um servidor de automatização não é possível transmitir um ponteiro para IPictureDisp implementação o objecto de imagem entre limites de processos

Traduções de Artigos Traduções de Artigos
Artigo: 150034 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Sintomas

Um servidor de automatização que implementa um objecto de imagem moldado pela classe CPictureHolder no MFC da falha quando tenta transmitir um ponteiro para IPictureDisp implementação o objecto de imagem entre limites de processos.

Causa

IPictureDisp obtém acesso aos métodos do objecto de imagem que não é possível empacotar as referências em limites de processos. Por exemplo, IPictureDisp suporta DISPID_PICT_RENDER para aceder ao método de representação da imagem objecto. O método de representação leva um identificador para um contexto de dispositivo como o primeiro parâmetro. Não não possível empacotar as referências identificadores de contexto do dispositivo.

Distribuição interfaces podem normalmente ser organizadas utilizando IDispatch empacotamento de referências de código, mas o objecto de imagem implementa IMarshal especificamente para fazer com que a autenticação falha.

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

ClassWizard no Visual C++ permite-lhe seleccionar um tipo devolução de LPPICTUREDISP para um método. Este método pode devolver o IPictureDisp interface obtido invocando CPictureHolder::GetPictureDispatch. No entanto, se este método é chamado por um controlador com outro processo, o método falha e devolve um código de erro de E_FAIL.

Uma vez que o objecto de imagem faz com que o empacotamento de referências IPictureDisp falhar, também podem ocorrer problemas ao tentar obter uma interface IPictureDisp limites de thread num objecto de modelo de apartamento vários threads.

Referências

Para mais informações sobre autenticação, consulte "Inside OLE," Segunda Edição, Kraig Brockschmidt, capítulo 6, "Local/remoto transparência", publicado pela Microsoft Press.

Propriedades

Artigo: 150034 - Última revisão: 1 de março de 2014 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
    • Microsoft Visual C++ 4.2 Enterprise Edition
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 5.0 Professional Edition
    • Microsoft Visual C++ 6.0 Enterprise Edition
    • Microsoft Visual C++ 6.0 Professional Edition
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft OLE Control Developer's Kit (CDK)
Palavras-chave: 
kbnosurvey kbarchive kbmt kbtshoot kbautomation kbbitmap kbctrl kbprb KB150034 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 150034

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