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

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
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
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.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 150034 - Última Revisão: 03/01/2014 07:19:54 - Revisão: 3.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbtshoot kbautomation kbbitmap kbctrl kbprb KB150034 KbMtpt
Comentários