![]() |
AW: Direct2D Anwendung
@Kas Ob.
Also nur eine Pascal declaration order (VTable) kann korrekt funktionieren, aber welche? Für IDWriteFontSet1 gibt es nun noch eine weitere Variante ![]()
Delphi-Quellcode:
function GetFilteredFonts(const {count: indexCount} indices: PUInt32; indexCount: UInt32; out {COM out pointer} filteredFontSet: IDWriteFontSet1): HRESULT; stdcall; overload;
function GetFilteredFonts(const {count: fontAxisRangeCount} fontAxisRanges: PDWRITE_FONT_AXIS_RANGE; fontAxisRangeCount: UInt32; selectAnyRange: BOOL; out {COM out pointer} filteredFontSet: IDWriteFontSet1): HRESULT; stdcall; overload; function GetFilteredFonts(const {count: propertyCount} properties: PDWRITE_FONT_PROPERTY; propertyCount: UInt32; selectAnyProperty: BOOL; out {COM out pointer} filteredFontSet: IDWriteFontSet1): HRESULT; stdcall; overload; |
AW: Direct2D Anwendung
Zitat:
Eigentlich sollte ja hier die Reihenfolge stimmen. Warum weicht das trotzdem ab von der hier im Thread als korrekt angegebenen Variante? |
AW: Direct2D Anwendung
Offenbar gibt es hier im Forum keinen offiziellen Delphi Support. Etwas überraschend,
wenn man bedenkt daß die Verwendung von COM interfaces eine sehr grundlegende Sache ist. Und WindowsAPIfromWinMD (via GetIt) ist nicht vorhanden in Delphi CE12.1. |
AW: Direct2D Anwendung
Zitat:
Ok, wenn es das Paket nicht bei GetIt für die Community-Edition gibt (warum auch immer), hast Du ja eine Alternative gefunden. |
AW: Direct2D Anwendung
Ich erwarte korrekte Interface-Deklarationen für Alle Delphi Nutzer. Punkt!
|
AW: Direct2D Anwendung
Zitat:
I am not sure what exactly is your question, so sorry, but if you asking about the correctness of the implementation and VTable layout, then using the header file lets say from ![]() And the correct order for Pascal/Delphi and Rust and any other compiler or language (as long it will not act like VS compiler and switch order) should be as posted before this one :
Delphi-Quellcode:
Simply order-reverse overloaded methods at first occurrence, of course if they are scattered between other methods then group them at first occurrence.
function GetFilteredFonts(indices: UINT32;
indexCount: UINT32; out filteredFontSet: IDWriteFontSet1): HResult; overload; stdcall; function GetFilteredFonts(properties: PDWRITE_FONT_PROPERTY; propertyCount: UINT32; selectAnyProperty: BOOL; out filteredFontSet: IDWriteFontSet1): HResult; overload; stdcall; function GetFilteredFonts(fontAxisRanges: DWRITE_FONT_AXIS_RANGE; fontAxisRangeCount: UINT32; selectAnyRange: BOOL; out filteredFontSet: IDWriteFontSet1): HResult; overload; stdcall; The header mentioned at ![]()
Delphi-Quellcode:
procedure GetFilteredFonts(const {count: indexCount} indices: PUInt32; indexCount: UInt32; out {COM out pointer} filteredFontSet: IDWriteFontSet1); safecall; overload;
procedure GetFilteredFonts(const {count: fontAxisRangeCount} fontAxisRanges: PDWRITE_FONT_AXIS_RANGE; fontAxisRangeCount: UInt32; selectAnyRange: BOOL; out {COM out pointer} filteredFontSet: IDWriteFontSet1); safecall; overload; procedure GetFilteredFonts(const {count: propertyCount} properties: PDWRITE_FONT_PROPERTY; propertyCount: UInt32; selectAnyProperty: BOOL; out {COM out pointer} filteredFontSet: IDWriteFontSet1); safecall; overload; |
AW: Direct2D Anwendung
I think the problem with the MfPack translations is that at some point they took the order from the MSDN website (or auto-generated documentation) instead of using the real header files from the Windows SDK one-to-one.
|
AW: Direct2D Anwendung
Zitat:
|
AW: Direct2D Anwendung
Zitat:
|
AW: Direct2D Anwendung
Ach du Scheiße, es stimmt. :shock:
Dann ist ja auch gar nichts Verlass und der Aufruf von COM-Interfaces vom Windows Betriebssystem Komponenten mit überladenen Methoden ist mehr oder weniger zufällig: ![]() ![]() ![]() ![]() ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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