Nja, die Wahl ist nicht so groß, wie es aussieht.
Man nimmt nur den End-Typen. Dieser Typ wurde für ein spezielles Verhalten erfunden, einmal als Doumentation und um ihn eventuell auch mal ändern zu können.
Wenn Windows sich nun überlegt da was umzubauen, oder z.B. sich bei
Win32/Win64/WinRT/Android/Linux/... etwas ändert, dann kann durch den
OS-Hersteller und anschließend auch durch Delphi der "interne" Typ angepasst werden, ohne dass du am Code etwas ändern mußt.
HINST ist aktuell als
HANDLE definiert (das wird sich vermutlich nicht ändern)
und ein
HANDLE ist aktuell in
Win32 32 Bit und in Win64 eben 64 Bit. (also das ändert sich gerade)
Die Wahl die du hier hast, ist HInstance oder HINST bzw. HINSTANCE, also Name des Delphi-Typ oder die Namen des Windows-Typen.
https://docs.microsoft.com/en-us/win...ows-data-types
Evetuell hat Delphi hier dann nur noch eine Ebene mehr eingefügt, um auch andere
OS zu unterstützen, neben Windows, wo der jeweilige Typ dann eventuell von was Anderem erbt.
Es gibt hier leider nur ein Problem, nämlich dass das Code-Insight leider dein "Ursprungstypen" anzeigt, anstatt des "Alias", da dieser keine eigene
RTTI besitzt.
So dass man in den Hints nicht den "richtigen" Typen sieht ... daher besser immer direkt die Implementation ansehen (Strg+Linksklick).
Delphi-Quellcode:
type
A = Integer; // Alias
B = type Integer; // neuer Typ
X = TObject;
Y = type TObject;
Z = class(TObject); // Ableitung