⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gxmenu.h

📁 Windows资源浏览器外壳扩展右键菜单功能的实例程序
💻 H
字号:
// gxMenu.h : Declaration of the CgxMenu

#ifndef __GXMENU_H_
#define __GXMENU_H_
#include "PidlMgr.h"
#include "resource.h"       // main symbols
/////////////////////////////////////////////////////////////////////////////





// CgxMenu
class ATL_NO_VTABLE CgxMenu : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CgxMenu, &CLSID_gxMenu>,
	public IDispatchImpl<IgxMenu, &IID_IgxMenu, &LIBID_MENUDEMOLib>,
	public IShellExtInit,
	public IDropTarget,
	public IContextMenu,
	public IPersistFolder,
	public IShellFolder
{
public:
	CgxMenu();

DECLARE_REGISTRY_RESOURCEID(IDR_GXMENU)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CgxMenu)
	COM_INTERFACE_ENTRY(IgxMenu)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(IShellExtInit)
	COM_INTERFACE_ENTRY(IDropTarget)
	COM_INTERFACE_ENTRY(IContextMenu)
	COM_INTERFACE_ENTRY(IShellFolder)
	COM_INTERFACE_ENTRY(IPersistFolder)
END_COM_MAP()

	// IContextMenu
	STDMETHOD(GetCommandString)(UINT idCmd, UINT uFlags, UINT *pwReserved, 
								LPSTR pszName, UINT cchMax);
	STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO pici);
	STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, 
								UINT idCmdFirst, UINT idCmdLast, 
								UINT uFlags);

	// IShellExtInit
	STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT lpdobj, 
							HKEY hkeyProgID);
	// IDropTarget
	STDMETHOD(DragEnter)(IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
	STDMETHOD(DragOver)(DWORD grfKeyState,POINTL pt,DWORD* pdwEffect); 
	STDMETHOD(DragLeave)(); 
	STDMETHOD(Drop)(IDataObject* pDataObj,DWORD grfKeyState,POINTL pt,DWORD* pdwEffect);
	//
	//IShellFolder methods
	STDMETHOD (ParseDisplayName) (HWND, LPBC, LPOLESTR, LPDWORD, LPITEMIDLIST*, LPDWORD);
	STDMETHOD (EnumObjects) (HWND, DWORD, LPENUMIDLIST*);
	STDMETHOD (BindToObject) (LPCITEMIDLIST, LPBC, REFIID, LPVOID*);
	STDMETHOD (BindToStorage) (LPCITEMIDLIST, LPBC, REFIID, LPVOID*);
	STDMETHOD (CompareIDs) (LPARAM, LPCITEMIDLIST, LPCITEMIDLIST);
	STDMETHOD (CreateViewObject) (HWND, REFIID, LPVOID* );
	STDMETHOD (GetAttributesOf) (UINT, LPCITEMIDLIST*, LPDWORD);
	STDMETHOD (GetUIObjectOf) (HWND, UINT, LPCITEMIDLIST*, REFIID, LPUINT, LPVOID*);
	STDMETHOD (GetDisplayNameOf) (LPCITEMIDLIST, DWORD, LPSTRRET);
	STDMETHOD (SetNameOf) (HWND, LPCITEMIDLIST, LPCOLESTR, DWORD, LPITEMIDLIST*);

   //IPersist methods
   STDMETHODIMP GetClassID(LPCLSID);

   //IPersistFolder methods
   STDMETHODIMP Initialize(LPCITEMIDLIST);
// IgxMenu
public:
	int FileCheckIn();
	virtual  ~CgxMenu();
	TCHAR	m_szFile[MAX_PATH];
	TCHAR   *m_FileList;
	int m_FileCount ;


	LPITEMIDLIST m_pidl;
	LPITEMIDLIST m_pidlNSRoot;
	HKEY m_hKeyRoot;
	LPTSTR m_lpszSubKey;
//	CgxMenu *m_pSFParent;
	LPMALLOC m_pMalloc;
	LPPIDLMGR m_pPidlMgr;


};

#endif //__GXMENU_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -