Ich schreibe eine Art von IPC-Funktionalität und muss bestimmte Ressourcen von einem Prozess zum anderen übergeben. Dies funktioniert gut für Pipe-Griffe usw., die mit DuplicateHandle dupliziert werden können. Jetzt muss ich eine HDC von einem Prozess zum anderen weitergeben. Ist das überhaupt möglich? Wenn ja: Wie?Sharing HDC zwischen verschiedenen Prozessen
Sub-Frage: Ich gehe davon aus, Fenstergriffe (HWND) von einem Prozess zum anderen zu übergeben ist sicher. Ist diese Annahme richtig?
Ich denke, Sie und nobugz haben beide Recht mit der Betonung, dass mein Problem als GDI-Ressourcen im Allgemeinen geteilt angesehen werden kann. Ich habe einen verwandten Beitrag hier gefunden: http://stackoverflow.com/questions/133948/sharing-gdi-handles-between-processes-in-windows-ce-6-0 Dort möchte jemand HFONTs teilen. Vielleicht ist das die gleiche Liga wie HDCs. Aber wenn diese Tabelle in jedem Prozess abgebildet ist, dann wünschte ich, es gäbe eine einfache Funktion DuplicateGDIHandleFromThisTableForTheCurrentProcess ... –
Die Tatsache, dass die Tabelle in allen Prozessen vorhanden ist, ist ein Artefakt der aktuellen Implementierung von GDI, kein Designmerkmal. Es kann weggehen. Und es gibt viele Fälle, in denen die GDI-Objekte Zeiger auf usermode-Datenstrukturen haben, so dass, obwohl das Handle systemweit gültig ist, das tatsächliche GDI-Objekt nur in einem einzigen Prozess erfolgreich zugegriffen werden kann. –
Ok, was definitiv nicht funktioniert, ist, den gleichen Griff zu verwenden, ohne weiter in den anderen Prozess einzuordnen. Dies lässt die Frage offen, ob es eine öffentlich verfügbare Funktion dafür gibt ... –