Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC? (https://www.delphipraxis.net/68058-wie-erhalte-ich-aus-einem-hdc-_remotablehandle-ein-hdc.html)

Mavarik 24. Apr 2006 08:42


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:

Mavarik 24. Apr 2006 15:39

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Habe folgende Antwort gefunden:

Zitat:

Change the declaration to

function Draw(rcBounds: tagRECT; rcUpdate: tagRECT; lDrawFlags:
Integer; hdc: hdc; pvDrawObject: Pointer):
HResult; stdcall;

Notice I removed "var" from the hdc and pvDrawObject parameters.

Also, _RemoteableHandle could be declared as THandle.

For more information check out my blog post where I specifically talk
about this problem.

http://blogs.borland.com/stevet/arch...1/01/1725.aspx

-Steve
Delphi R&D
Borland Software Corp.
http://blogs.borland.com/stevet
:wiejetzt: Habe ich irgentwo nicht aufgepasst??? Wie soll das den gehen?

Frank :coder:

Kedariodakon 24. Apr 2006 16:24

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

marabu 24. Apr 2006 19:18

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:
// *********************************************************************//
// 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;
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.

Grüße vom marabu

Mavarik 25. Apr 2006 07:01

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Zitat:

Zitat von Kedariodakon
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

Neues Thema neuer Thread!

Siehe : meinen anderen Thread

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)

marabu 25. Apr 2006 07:21

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Ich weiß - es ging mir nur um das fehlerbehaftete TLIBIMP...

marabu

Mavarik 25. Apr 2006 10:43

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Zitat:

Zitat von marabu
Ich weiß - es ging mir nur um das fehlerbehaftete TLIBIMP...

marabu

OK, hast Du eine Idee, warum man einfach die Definition ändern kann/soll???

Besonders eine THandle zu nehmen, dass ist doch nach meinem Wissen "nur" ein Integer?

Frank :coder:

Daniel G 25. Apr 2006 10:58

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Zitat:

Zitat von Mavarik
Besonders eine THandle zu nehmen, dass ist doch nach meinem Wissen "nur" ein Integer?

Die in Delphi gekapselten WinAPI - Funktionen, bei denen ein Handle übergeben wird, verwenden generell THandle.

Mavarik 25. Apr 2006 11:59

Re: Wie erhalte ich aus einem hdc: _RemotableHandle ein HDC?
 
Zitat:

Zitat von Daniel G
Die in Delphi gekapselten WinAPI - Funktionen, bei denen ein Handle übergeben wird, verwenden generell THandle.

Na eben...

marabu 25. Apr 2006 12:05

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz