![]() |
Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Hallo!
:dp: Neue Frage neuer Thred... Wie erhalte ich aus einem hdc: _RemotableHandle ein "normales" HDC handle? Frank :coder: |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Habe folgende Antwort gefunden:
Zitat:
Frank :coder: |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Hmm ich kann zur Thematik nicht wirklich viel sagen, aber deine Informationen finde ich ein wenig zu dünn...
Vielleicht solltest du alles ein wenig näher erläutern, z.b. Wo hast du das '_RemotableHandle' her und was ist ein normales HDC für dich und was wills du genau damit machen... Bye |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Hallo Frank,
Borland liefert eine MSHTML.PAS mit Delphi aus. Ich habe die Schnittstellen IHTMLPainter etc. nie benutzt. Wenn ich in die Original-Unit von D5 schaue, dann stelle ich auch dort Fehler fest:
Delphi-Quellcode:
TLIBIMP ist genauso wenig fehlerfrei wie jede andere Software auch. Es ist wohl so, wie Steve in seinem BLOG schreibt - wir können die von TLIBIMP erzeugte Unit als Ausgangsbasis verwenden, aber sie muss manuell anhand des Platform SDK überarbeitet werden, wenn man keine unliebsamen Überraschungen erleben will. Mit .NET hat das alles wohl nichts zu tun, wenn die Fehler bereits in D5 enthalten sind.
// *********************************************************************//
// Interface: IElementBehaviorRender // Flags: (0) // GUID: {3050F4AA-98B5-11CF-BB82-00AA00BDCE0B} // *********************************************************************// IElementBehaviorRender = interface(IUnknown) ['{3050F4AA-98B5-11CF-BB82-00AA00BDCE0B}'] function Draw(var hdc: TGUID; lLayer: Integer; var pRect: TGUID; const pReserved: IUnknown): HResult; stdcall; function GetRenderInfo(out plRenderInfo: Integer): HResult; stdcall; function HitTestPoint(var pPoint: TGUID; const pReserved: IUnknown; out pbHit: Integer): HResult; stdcall; end; Grüße vom marabu |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Zitat:
Siehe : ![]() Frank :coder: PS: @marabu D5,D6 & D7 haben im source die IHTMLPainter überhaupt nicht dabei, weil die MSHTML in IE Version 4.0 vorliegt! (Denke ich) |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Ich weiß - es ging mir nur um das fehlerbehaftete TLIBIMP...
marabu |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Zitat:
Besonders eine THandle zu nehmen, dass ist doch nach meinem Wissen "nur" ein Integer? Frank :coder: |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Zitat:
|
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Zitat:
|
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Hallo Frank,
du fragst dich, warum du einfach _RemotableHandle gegen THandle (HDC) tauschen sollst bzw. kannst? Weil der von TLIBIMP erzeugte Code an dieser Stelle falsch ist. Du musst dir den Platform SDK nehmen, dort die Beschreibung der Schnittstellen ansehen und den nach Delphi portierten Code in deine Unit eintragen. Es reicht für deine Zwecke wahrscheinlich, wenn du nur die benötigten Interfaces anpasst. Oder habe ich dich falsch verstanden? Grüße vom marabu |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Ahh ok Groschen / Euro gefallen...
Dir Frage ist nur wie überlagere ich die Interface definition? Wenn ich in meinem Programm schreibe TMyForm =class(TForm,IHTMLPainter); Frank :wiejetzt: |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Da sind zwei Ansätze denkbar: Du könntest die Unit MSHTML selbst abändern - aber du könntest auch eine eigene Unit MSHTML2 erstellen, in der du die überschriebenen Schnittstellen sammelst. Ich denke da eher an den ersten Ansatz.
Grüße vom marabu |
Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
Zitat:
Werde es mal testen - und berichten ! Frank :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz