Wenn dich das in dem Link oben verwirrt, so geht es auch. Ist zwar viel simpler aber sollte für deine Zwecke reichen. Das 'IsIntResource' habe ich da drin, weil ich meinen Resourcen nur Namen und keine Nummern gebe.
Delphi-Quellcode:
var
Resources: TStringList;
function EnumResNameProc(hModule: HINST; lpszType: PChar; lpszName: PChar; lParam: LPARAM): BOOL; stdcall;
function IsIntResource(lpszType: PChar): Boolean;
begin
Result := ((DWORD(lpszType) shr 16) = 0);
end;
begin
if not IsIntResource(lpszName) then
begin
if lpszType = RT_RCDATA then
Resources.Add(lpszName);
end;
Result := True;
end;
So aufrufen:
Delphi-Quellcode:
Resources := TStringList.Create;
try
EnumResourceNames(HInstance, RT_RCDATA, @EnumResNameProc, 0);
{ ... }
finally
Resources.Free;
end;