Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Interface zu WinRT (GUIDs) (https://www.delphipraxis.net/217419-interface-zu-winrt-guids.html)

Hobbycoder 26. Jun 2025 11:47

Interface zu WinRT (GUIDs)
 
Hi,
ich hab mal eine Verständnisfrage.

Wenn ich ein Interface von WinRT nutzen möchte, dann brauch die dazugehörige GUID.
z.B.
Delphi-Quellcode:
  WinRT_IAsyncOperationStorageFile = interface(WinRT_IInspectable)
    ['{F0B913CF-BE48-5410-A5A0-804AFAB06A2C}']
    function put_Completed(handler: IUnknown): HRESULT; stdcall;
    function get_Completed(out handler: IUnknown): HRESULT; stdcall;
    function GetResults(out results: WinRT_IStorageFile): HRESULT; stdcall;
  end;
Wo kriege ich die her? Ist die Windows-Versions oder sogar Installationsabhängig? Wenn ja, wie kann ich die auslesen?
Es gibt doch hier ein paar Interface-Spezialisten, die mir das vielleicht erläutern möchten :-)

Viele Dank

Edelfix 26. Jun 2025 16:00

AW: Interface zu WinRT (GUIDs)
 
Wenn ich die Frage richtig verstanden habe dann würde ich es so machen:

In Delphi 12.3 IDE über Menü "Ansicht" -> "Registrierte Typbibliotheken".
Es wird eine Liste angezeigt.

himitsu 26. Jun 2025 16:53

AW: Interface zu WinRT (GUIDs)
 
Der Interface-DeklarationDefinition hat eine IID (GUID),
dabei ist/sollte es egal sein, wo sie Deklariert/Implementiert ist,
also überall die selbe ID.

Es gäbe hier auch keinen Grund, für jede Platformen eigenen IDs zu definieren. :freak:

Hobbycoder 26. Jun 2025 17:40

AW: Interface zu WinRT (GUIDs)
 
Zitat:

Zitat von Edelfix (Beitrag 1549793)
Wenn ich die Frage richtig verstanden habe dann würde ich es so machen:

In Delphi 12.3 IDE über Menü "Ansicht" -> "Registrierte Typbibliotheken".
Es wird eine Liste angezeigt.

Okay, aber ich suche unter anderem die für WinRT_ILanguage und WinRT_ILanguageFactory, die ich dort nicht finde.

Hobbycoder 26. Jun 2025 17:42

AW: Interface zu WinRT (GUIDs)
 
Zitat:

Zitat von himitsu (Beitrag 1549798)
Der Interface-DeklarationDefinition hat eine IID (GUID),
dabei ist/sollte es egal sein, wo sie Deklariert/Implementiert ist,
also überall die selbe ID.

Es gäbe hier auch keinen Grund, für jede Platformen eigenen IDs zu definieren. :freak:

Dachte ich mir zwar auch, aber fragen kann man ja mal.
Außerdem hätte es ja sein können, dass bei Funktionserweiterung bzw. geänderten Funktionsparametern MS evtl. man neue vergibt um abwärtskompatibel zu bleiben.

himitsu 26. Jun 2025 18:36

AW: Interface zu WinRT (GUIDs)
 
Man ändert keine Interfaces, niemalsnienicht! :duck:

Neues Interface erstellen oder vom alten Interface ableiten+erweitern, aber eben dadurch auch mit neuer IID/GUID, für das Neue.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:06 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