Контекстное меню корзины
Добавлено: Сб ноя 28, 2009 12:05 am
Разыскивается код на Delphi/C++Builder, вызывающий контекстное меню корзины:
Буду очень признателен за конкретную помощь в этом вопросе.
Виртуальный форум по нереальному файловому менеджеру
https://forum.unrealcommander.net/
Код: Выделить всё
код удалил. глядите постами ниже
Код: Выделить всё
uses
ActiveX, ShlObj;
procedure ShowRecycleBinContextMenu(hWindow: THandle; pt: TPoint);
const
MIN_ID = 1;
MAX_ID = $7fff;
var
desktopFolder: IShellFolder;
recycleBinIDL: PItemIDList;
contextMenu: IContextMenu;
emptyMenu: HMENU;
idCommand: Integer;
commandInfo: TCMInvokeCommandInfo;
begin
//CoInitialize(nil);
SHGetDesktopFolder(desktopFolder);
SHGetSpecialFolderLocation(0, CSIDL_BITBUCKET, recycleBinIDL);
desktopFolder.GetUIObjectOf(0, 1, recycleBinIDL, IID_IContextMenu, nil, contextMenu);
emptyMenu := CreatePopupMenu();
contextMenu.QueryContextMenu(emptyMenu, 0, MIN_ID, MAX_ID, CMF_EXPLORE);
idCommand := Integer(TrackPopupMenu(
emptyMenu, TPM_RETURNCMD or TPM_LEFTALIGN, pt.X, pt.Y, 0, hWindow, nil));
if (idCommand >= MIN_ID) and (idCommand <= MAX_ID) then
begin
FillChar(commandInfo, SizeOf(commandInfo), 0);
with commandInfo do
begin
cbSize := SizeOf(commandInfo);
hwnd := hWindow;
nShow := SW_SHOWNORMAL;
lpVerb := PChar(idCommand - MIN_ID);
end;
contextMenu.InvokeCommand(commandInfo);
end;
CoTaskMemFree(recycleBinIDL);
DestroyMenu(emptyMenu);
//CoUninitialize();
end;
...
ShowRecycleBinContextMenu(Handle, Point(Left + 100, Top + 100));
...