Einzelnen Beitrag anzeigen

Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.130 Beiträge
 
Delphi 10.3 Rio
 
#1

Unterschiedliche Versionen der MSHTML was hat der User inst.

  Alt 24. Apr 2006, 08:15
Hallo Zusammen...

Ich nutze eine MSHTML die - woher auch immer gekommen ist. Die Definition des IHTMLPainter's sieht so aus...

Delphi-Quellcode:
// The installed version of IE for this import was IE 6.0.2600.0000

// PASTLWTR : 1.2
// File generated on 8/9/2002 3:26:08 PM from Type Library described below.

// ************************************************************************ //
// Type Lib: \WINNT\SYSTEM32\mshtml.tlb (1)
// LIBID: {3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}
// LCID: 0
// Helpfile:
// HelpString: Microsoft HTML Object Library
// DepndLst:
// (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb)


  IHTMLPainter = interface(IUnknown)
    ['{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}']
    // !! API fix decl
    function Draw(rcBounds: tagRECT; rcUpdate: tagRECT; lDrawFlags: Integer;
                  hdc: hdc; pvDrawObject: Pointer): HResult; stdcall;
    function onresize(size: tagSIZE): HResult; stdcall;
    function GetPainterInfo(out pInfo: _HTML_PAINTER_INFO): HResult; stdcall;
    function HitTestPoint(pt: tagPOINT; out pbHit: Integer; out plPartID: Integer): HResult; stdcall;
  end;
Auf meinem Rechner ist jedoch eine andere Version. Ich habe also folgende Definition:

Delphi-Quellcode:
// PASTLWTR : 1.2
// Datei generiert am 20.04.2006 20:09:52 aus der unten beschriebenen Typbibliothek.

// ************************************************************************ //
// Typbib: C:\WINDOWS\system32\MSHTML.TLB (1)
// LIBID: {3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}
  IHTMLPainter = interface(IUnknown)
    ['{3050F6A6-98B5-11CF-BB82-00AA00BDCE0B}']
    function Draw(rcBounds: tagRECT; rcUpdate: tagRECT; lDrawFlags: Integer;
                  var hdc: _RemotableHandle; var pvDrawObject: Pointer): HResult; stdcall; // Unterschied in HDC
    function onresize(size: tagSIZE): HResult; stdcall;
    function GetPainterInfo(out pInfo: _HTML_PAINTER_INFO): HResult; stdcall;
    function HitTestPoint(pt: tagPOINT; out pbHit: Integer; out plPartID: Integer): HResult; stdcall;
  end;
Es hat sich in der Draw Routinen also der hdc Parameter geändert.

Mal abgesehen davon, dass ich noch nicht so ganz weis, was ein _RemotableHandel ist, ist meine eigentliche Frage:

Welche Version hat den jetzt der User, der meine Software nutzen möchte? Wie kann ich eine Software erstellen, die
diese Versionunterschiede berücksichtig? (Ist nur eine Frage lol)


Frank
  Mit Zitat antworten Zitat