Hallo zammen,
ich benutze den InvokeCommand zum Ausführen von diversen Ereignissen aus dem Explorer-Kontextmenü in einem Listview.
Das klappt soweit sehr gut, auch für custom Programme wie WinZip, TextPad, etc, aber eben nur zu 90 %.
Denn auf die Standard-"Verbs" 'cut' und 'copy' erfolgt KEINERLEI Aktion für die gewählten Dateien. Die Rückgabe von InvokeCommand ist jedoch trotzdem S_OK.
Ist einem das Phänomen bekannt oder kann mir jemand Tips geben, ich hab langsam keine Ideen mehr...
Viele Grüße
Rob
PS: Kleiner code snip, vllt bringt es ja was
Delphi-Quellcode:
FillChar(ICM,SizeOf(ICM),#0);
ICM.cbSize := Sizeof(ICM);
ICM.hwnd :=
Handle;
ICM.lpVerb := MakeIntResource(Cardinal(cmd - 1));
//OPTIONAL probiert: ICM.lpVerb := MakeIntResource('copy' {bzw 'cut'});
ICM.nShow := SW_SHOWNORMAL;
//ICM.fMask := CMIC_MASK_ASYNCOK;
Try
If Assigned(ContextMenu2)
Then
begin
ContextMenu2.InvokeCommand(ICM);
end
else If Assigned(ContextMenu)
Then
if ContextMenu.InvokeCommand(ICM) <> S_OK
then
raise Exception.create('
NOT OK 1');