여러 항목에 대한 Windows 컨텍스트 메뉴 표시
-
18-09-2019 - |
문제
파일을 나열하는 응용 프로그램이 있으며 사용자가 파일을 마우스 오른쪽 버튼으로 클릭 할 수 있으며 응용 프로그램에 선택한 파일의 Windows Context 메뉴가 표시됩니다.
나는 사용한다 SHParseDisplayName
파일 이름에 대한 PIDL을 얻습니다. 그런 다음 부모 객체에 바인딩합니다.
IntPtr pidlLast = IntPtr.Zero;
SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, out pidlLast);
부모가 있으면 상황에 맞는 메뉴를 구축 할 수 있습니다.
IntPtr result = IntPtr.Zero;
IShellFolder shellFolder = (IShellFolder)oShellFolder;
shellFolder.GetUIObjectOf(windowHandle, (uint)pidls.Count,
pidls.ToArray(), typeof(IContextMenu).GUID, 0, out result);
이것은 1 개의 항목이나 동일한 부모가있는 항목에 완벽하게 작동하지만 부모가있는 항목에 대한 컨텍스트 메뉴를 어떻게 표시합니까?
해결책
향후 참조를 위해 분명히 사용할 수 있습니다 CDefFolderMenu_Create2
여러 쉘 항목에 대한 컨텍스트 메뉴를 만듭니다. 여기에서 몇 가지 훌륭한 정보를 찾을 수 있습니다.
- xplorer²] - 고급 쉘 컨텍스트 메뉴 🕗
제휴하지 않습니다 StackOverflow