Eine Automatisierungsserver kann keinen Zeiger auf das Bildobjekt IPictureDisp Implementierung über Prozessgrenzen hinweg übergeben werden

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 150034
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Problembeschreibung
Eine Automatisierungsserver, die ein Grafik-Objekt eingebundenes die CPictureHolder-Klasse in MFC implementiert schlägt fehl, wenn er versucht, einen Zeiger auf das Bildobjekt IPictureDisp Implementierung über Prozessgrenzen hinweg übergeben.
Ursache
IPictureDisp erhält Zugriff auf Methoden des Objekts Grafik, die über Prozessgrenzen hinweg gemarshallt werden kann. IPictureDisp unterstützt z. B. DISPID_PICT_RENDER für den Zugriff auf die Render-Methode der Picture-Objekt. Die Render-Methode verwendet einen Handle für einen Gerätekontext als ersten Parameter. Kontexthandles Gerät können nicht gemarshallt werden.

Dispatch-Schnittstellen können normalerweise mithilfe der Marshallingcode IDispatch gemarshallt werden, aber das Picture-Objekt implementiert IMarshal speziell für die verursachen, dessen Marshalling fehlschlagen.
Status
Es handelt sich hierbei um ein beabsichtigtes Verhalten.
Weitere Informationen
Die Klassen-Assistenten in Visual C++ können Sie den Rückgabetyp LPPICTUREDISP für eine Methode auswählen. Diese Methode möglicherweise zurück, die IPictureDisp-Schnittstelle durch Aufrufen von CPictureHolder::GetPictureDispatch abgerufen. Jedoch, wenn diese Methode durch einen Domänencontroller unter einem anderen Prozess aufgerufen wird, die Methode schlägt fehl und gibt einen Fehlercode E_FAIL zurück.

Da Picture-Objekt das Marshallen des IPictureDisp wird fehlschlägt, können Probleme auch auftreten, wenn beim Versuch, ein IPictureDisp über Grenzen hinweg Thread in einem Objekt mehrere Threadapartment Modell abzurufen.
Informationsquellen
Weitere Informationen zu marshallen finden Sie in der "In OLE," zweite Edition Kraig Brockschmidt, Kapitel 6, "Local-Remote-Transparenz," von Microsoft Press veröffentlicht.

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 150034 – Letzte Überarbeitung: 03/01/2014 02:58:07 – Revision: 3.1

Microsoft Foundation Class Library 4.2

  • kbnosurvey kbarchive kbmt kbtshoot kbautomation kbbitmap kbctrl kbprb KB150034 KbMtde
Feedback