Moin Harry,
was schon einmal falsch ist:
Du deklarierst einen Typen
TServicesDescription und anschliessend PServicesDesciption = ^
PServicesDesciption;
Die Problemzeile müsste lauten:
Result := ServiceDesciption.lpDescription // was stimmt hier noch nicht??
Ich für meinen Teil halte mich bei der Deklaration von
API-Strukturen lieber an die Namen im
PSDK, damit ich bei Dokumenationen / Beispielen, nicht lange suchen muss wie ich denn nun die Struktur genannt habe.
In Deinem Falle:
Delphi-Quellcode:
type
SERVICE_DESCRIPTION = packed record
lpDescription : PChar;
end;
PSERVICE_DESCRIPTION = ^SERVICE_DESCRIPTION;
Ausserdem deklariere ich lieber alle Parameter eine
API-Funktion als const um sicherzugehen, dass ich die Parameter auch so verwende wie gedacht. Vor allem bei out-Parametern finde ich das besser als die Borland-typischen var-Parameter, da man manche Funktionalität mit var-Parametern gar nicht nutzen kann, und die Funktion dann erneut importieren muss.
Zudem finde ich es so einfacher Beispiele zu übersetzen.