The information in this article applies to:
SYMPTOMSAn automation server that implements a Picture object wrapped by the CPictureHolder class in MFC fails when it attempts to pass a pointer to the picture object's IPictureDisp implementation across process boundaries. CAUSE
IPictureDisp gains access to methods of the Picture object that cannot
be marshaled across process boundaries. For example, IPictureDisp
supports DISPID_PICT_RENDER to gain access to the Render method of the
Picture object. The Render method takes a handle to a device context as the
first parameter. Device context handles cannot be marshaled. STATUSThis behavior is by design. MORE INFORMATION
The ClassWizard in Visual C++ allows you to select a return type of
LPPICTUREDISP for a method. This method might return the IPictureDisp
interface obtained by calling CPictureHolder::GetPictureDispatch. However,
if this method is called by a controller running in another process, the
method fails and returns an error code of E_FAIL. REFERENCESFor more information on marshaling, please see "Inside OLE," second edition, by Kraig Brockschmidt, Chapter 6, "Local/Remote Transparency," published by Microsoft Press. Additional query words:
Keywords : kbole kbAutomation kbCtrl kbMFC kbVC500 kbVC600 |
Last Reviewed: July 28, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |