Un servidor de automatización no puede pasar un puntero a la imagen implementación del objeto IPictureDisp límites de proceso

Seleccione idioma Seleccione idioma
Id. de artículo: 150034 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

Síntomas

Un servidor de automatización que implementa un objeto Picture englobado por la clase CPictureHolder en MFC falla cuando intenta pasar un puntero a la imagen implementación del objeto IPictureDisp límites de proceso.

Causa

IPictureDisp obtiene acceso a los métodos del objeto de imagen que no se pueden calcular referencias a través de límites de proceso. Por ejemplo, IPictureDisp admite DISPID_PICT_RENDER para acceder al método Render de la imagen objeto. El método de representación toma un identificador de un contexto de dispositivo como primer parámetro. Identificadores de contexto de dispositivo no pueden calcularse.

Envío interfaces normalmente pueden calcularse utilizando el código de referencias de IDispatch, pero el objeto Picture implementa IMarshal específicamente para hacer que su calcular referencias de un error.

Estado

Este comportamiento es por diseño.

Más información

Pero en Visual C++ le permite seleccionar un tipo de LPPICTUREDISP devuelto para un método. Este método podría devolver la IPictureDisp interfaz obtenido llamando CPictureHolder::GetPictureDispatch. Sin embargo, si este método es invocado por un controlador que se ejecuta en otro proceso, el método se produce un error y devuelve un código de error de E_FAIL.

Debido a que el objeto de imagen hace que el cálculo de referencias de IPictureDisp producirá un error, también pueden producirse problemas al intentar obtener una interfaz IPictureDisp límites de subproceso en un objeto de modelo de apartamento de subproceso múltiple.

Referencias

Para obtener más información sobre el cálculo de referencias, vea la "Inside OLE," Segunda edición, por Kraig Brockshmidt, capítulo 6, "Transparencia local y remota", publicado por Microsoft Press.

Propiedades

Id. de artículo: 150034 - Última revisión: sábado, 01 de marzo de 2014 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Foundation Class Library 4.2 sobre las siguientes 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
    • Microsoft Visual C++ 6.0 Enterprise
    • Microsoft Visual C++ 6.0 Professional
    • Microsoft Visual C++, 32-bit Learning Edition 6.0
    • Microsoft OLE Control Developer's Kit (CDK)
Palabras clave: 
kbnosurvey kbarchive kbmt kbtshoot kbautomation kbbitmap kbctrl kbprb KB150034 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 150034

Enviar comentarios

 

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