Hallo marabu,
Zitat von
marabu:
... ist der Rückgabewert nicht von der Anzahl der bereitgestellten Menuitems abhängig, sondern entspricht einfach der Zahl der verbrauchten Command Identifier, gerechnet ab dem ersten möglichen in idCmdFirst übermittelten Wert. Dabei zählen eventuelle Lücken mit, ...
Verstehe ich das richtig, dass HRESULT gebildet wird aus der Gesamtanzahl der vergebenen MenuItem-IDs (MenuItemInfo-wID) minus 1 dafür, dass man mit idCmdFirst beginnt? Oder wird idCmdFirst mitgerechnet?
Beispiel:
1. MenuItem = idCmdFirst,
2. MenuItem = idCmdFirst + 1,
3. MenuItem = idCmdFirst + 3,
<- ist das mit Lücke gemeint?
Ist Result dann = 2 oder = 3?
Ist das mit den Lücken so gemeint, dass ich die jeweilige wID frei vergeben kann? Oder ist damit gemeint, dass Lücken entstehen, wenn ich ein Untermenü erstelle und das MenuItem, mit dem das Untermenü aufgeklappt wird, einen Index erhält, der nicht ausgewertet werden kann (kein Click-Event)? Oder ganz was anderes?
Zitat von
marabu:
Der als HRESULT zurückgegebene Wert (32 bit) ist gepackt. Das gesetzte höchste Bit signalisiert einen Fehler, die untersten 16 bit übermitteln im vorliegenden Fall das eigentliche Ergebnis. Da die oberen 16 bit bei dir 0 sind, kannst du auf MakeResult() verzichten.
Verstehe ich das richtig, dass ich dann also (wie im Posting #1 beschrieben) einfach
Result := 2; zuweisen kann? MAKE_HRESULT() habe ich in Delphi auch nicht verwenden können. (Also diese oder eine entsprechende Funktion habe ich in Delphi nicht gefunden.
)
Viele Grüße,
Guido.
Edit: MAKE_HRESULT()-Frage hinzugefügt.