Zitat von
Apollonius:
Momentan ist THandle ein Cardinal, ich weiß aber nicht, wie das in 64-Bit-Windows-Versionen ist, da ist Cardinal schließlich auch größer.
Ok, dann ist die Deklaration der EnumCallback Funktionen warscheinlich so korrekt.
Zitat von
Apollonius:
Name und Typ von Resourcen können sowohl PChars als auch IDs sein (siehe auch MakeIntAtom).
Daran liegt das also... Ich weiß leider nicht, wie das mit den Atoms funktioniert.
Zitat von
Apollonius:
Du kannst auf jeden Fall bei beiden Enum*-Callback-Funktionen mit IS_INTRESOURCE prüfen, ob eine ID oder ein Namensstring vorliegt und dann entsprechend nach Cardinal casten und IntToStr verwenden oder den PChar verwenden.
Ich bekomme es irgendwie nicht hin
Die Funktion habe ich jetzt so implementiert:
Delphi-Quellcode:
function IS_INTRESOURCE(wInteger: WORD): BOOL;
begin
Result := (LongWord(wInteger) shr 16) = 0;
end;
Wie ist eigentlich die Reihenfolge von LongWords, also LoWord - HiWord oder HiWord - LoWord? Was passiert dementsprechend bei einem TypeCast LongWord(Word)? Wird das Word dann zum HiWord oder LoWord?
Wie muss ich IS_INTRESOURCE verwenden und wie muss ich die einzelnen Variablen Typecasten, damit die Resourcen richtig aufgelistet werden? So wie ich es versucht habe, liefert mir IS_INTRESOURCE immer True...