У меня есть код, основанный на this, что позволяет мне добавить дополнительную функциональность в контекстное меню проводника Windows. Я смог успешно получить эту работу.Добавление контекстного меню подменю в проводник
Однако теперь я хочу добавить несколько элементов в контекстное меню и добавить их в подменю. Однако я не могу понять, во-первых, как добавить в него подменю, а затем как связать лишние элементы внутри этого меню.
// Use either InsertMenu or InsertMenuItem to add menu items.
MENUITEMINFO mii = new MENUITEMINFO();
mii.cbSize = (uint)Marshal.SizeOf(mii);
mii.fMask = MIIM.MIIM_BITMAP | MIIM.MIIM_STRING | MIIM.MIIM_FTYPE |
MIIM.MIIM_ID | MIIM.MIIM_STATE;
mii.wID = idCmdFirst + IDM_DISPLAY;
mii.fType = MFT.MFT_STRING;
mii.dwTypeData = this.menuText;
mii.fState = MFS.MFS_ENABLED;
mii.hbmpItem = this.menuBmp;
if (!NativeMethods.InsertMenuItem(hMenu, iMenu, true, ref mii))
{
return Marshal.GetHRForLastWin32Error();
}
Это код, который я должен добавить в настоящее время. Непонятно, как мне нужно изменить это для подменю, а также как связать действие click для нескольких элементов.
Существует shellExtLib, который содержит большинство из этого материала, и выглядит так, как будто он импортирует материал из user32.dll. Существует также определенный InvokeCommand(), который является моим фактическим «действием».