joachim99@69
|
1 // ShellContextMenu.h: Schnittstelle für die Klasse CShellContextMenu.
|
joachim99@69
|
2 //
|
joachim99@69
|
3 //////////////////////////////////////////////////////////////////////
|
joachim99@69
|
4
|
joachim99@69
|
5 #ifndef SHELLCONTEXTMENU_H
|
joachim99@69
|
6 #define SHELLCONTEXTMENU_H
|
joachim99@69
|
7
|
joachim99@69
|
8 /////////////////////////////////////////////////////////////////////
|
joachim99@69
|
9 // class to show shell contextmenu of files/folders/shell objects
|
joachim99@69
|
10 // developed by R. Engels 2003
|
joachim99@69
|
11 /////////////////////////////////////////////////////////////////////
|
joachim99@69
|
12
|
joachim99@69
|
13 class CShellContextMenu
|
joachim99@69
|
14 {
|
joachim99@69
|
15 public:
|
joachim99@69
|
16 HMENU GetMenu ();
|
joachim99@69
|
17 void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST pidlItem);
|
joachim99@69
|
18 void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST * pidlArray, int nItemCount);
|
joachim99@69
|
19 void SetObjects (LPITEMIDLIST pidl);
|
joachim99@69
|
20 void SetObjects (const QString& strObject);
|
joachim99@69
|
21 void SetObjects (const QStringList& strList);
|
joachim99@69
|
22 UINT ShowContextMenu (QWidget* pParent, QPoint pt, QPopupMenu* pMenu);
|
joachim99@69
|
23 CShellContextMenu();
|
joachim99@69
|
24 virtual ~CShellContextMenu();
|
joachim99@69
|
25
|
joachim99@69
|
26 private:
|
joachim99@69
|
27 int nItems;
|
joachim99@69
|
28 BOOL bDelete;
|
joachim99@69
|
29 HMENU m_hMenu;
|
joachim99@69
|
30 IShellFolder * m_psfFolder;
|
joachim99@69
|
31 LPITEMIDLIST * m_pidlArray;
|
joachim99@69
|
32
|
joachim99@69
|
33 void InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand);
|
joachim99@69
|
34 BOOL GetContextMenu (void ** ppContextMenu, int & iMenuType);
|
joachim99@69
|
35 HRESULT SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast);
|
joachim99@69
|
36 static LRESULT CALLBACK HookWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
joachim99@69
|
37 void FreePIDLArray (LPITEMIDLIST * pidlArray);
|
joachim99@69
|
38 LPITEMIDLIST CopyPIDL (LPCITEMIDLIST pidl, int cb = -1);
|
joachim99@69
|
39 UINT GetPIDLSize (LPCITEMIDLIST pidl);
|
joachim99@69
|
40 LPBYTE GetPIDLPos (LPCITEMIDLIST pidl, int nPos);
|
joachim99@69
|
41 int GetPIDLCount (LPCITEMIDLIST pidl);
|
joachim99@69
|
42 };
|
joachim99@69
|
43
|
joachim99@69
|
44 #endif
|