diff kdiff3/src-QT4/kreplacements/ShellContextMenu.h @ 75:08ea9b86c12c

KDiff3-0.9.91
author joachim99
date Sat, 04 Nov 2006 00:05:00 +0000
parents kdiff3/src/kreplacements/ShellContextMenu.h@5bbfe4784324
children 1184fc843210
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/kdiff3/src-QT4/kreplacements/ShellContextMenu.h	Sat Nov 04 00:05:00 2006 +0000
@@ -0,0 +1,44 @@
+// ShellContextMenu.h: Schnittstelle für die Klasse CShellContextMenu.
+//
+//////////////////////////////////////////////////////////////////////
+
+#ifndef SHELLCONTEXTMENU_H
+#define SHELLCONTEXTMENU_H
+
+/////////////////////////////////////////////////////////////////////
+// class to show shell contextmenu of files/folders/shell objects
+// developed by R. Engels 2003
+/////////////////////////////////////////////////////////////////////
+
+class CShellContextMenu  
+{
+public:
+	HMENU GetMenu ();
+	void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST pidlItem);
+	void SetObjects (IShellFolder * psfFolder, LPITEMIDLIST * pidlArray, int nItemCount);
+	void SetObjects (LPITEMIDLIST pidl);
+	void SetObjects (const QString& strObject);
+	void SetObjects (const QStringList& strList);
+	UINT ShowContextMenu (QWidget* pParent, QPoint pt, QMenu* pMenu);
+	CShellContextMenu();
+	virtual ~CShellContextMenu();
+
+private:
+	int nItems;
+	BOOL bDelete;
+	HMENU m_hMenu;
+	IShellFolder * m_psfFolder;
+	LPITEMIDLIST * m_pidlArray;	
+	
+	void InvokeCommand (LPCONTEXTMENU pContextMenu, UINT idCommand);
+	BOOL GetContextMenu (void ** ppContextMenu, int & iMenuType);
+	HRESULT SHBindToParentEx (LPCITEMIDLIST pidl, REFIID riid, VOID **ppv, LPCITEMIDLIST *ppidlLast);
+	static LRESULT CALLBACK HookWndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+	void FreePIDLArray (LPITEMIDLIST * pidlArray);
+	LPITEMIDLIST CopyPIDL (LPCITEMIDLIST pidl, int cb = -1);
+	UINT GetPIDLSize (LPCITEMIDLIST pidl);
+	LPBYTE GetPIDLPos (LPCITEMIDLIST pidl, int nPos);
+	int GetPIDLCount (LPCITEMIDLIST pidl);
+};
+
+#endif