78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
#ifndef __ncshellex_h__
|
|
#define __ncshellex_h__
|
|
|
|
class CShellExFactory;
|
|
|
|
class CShellEx : public IShellExtInit, IDropTarget, IContextMenu
|
|
{
|
|
public:
|
|
// IUnknown methods
|
|
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
|
|
ULONG _stdcall AddRef();
|
|
ULONG _stdcall Release();
|
|
|
|
// IShellExtInit methods
|
|
HRESULT _stdcall Initialize(LPCITEMIDLIST pidlFolder,LPDATAOBJECT lpdobj, HKEY hkeyProgID);
|
|
|
|
HRESULT __stdcall DragEnter(
|
|
/* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ DWORD __RPC_FAR *pdwEffect);
|
|
|
|
HRESULT __stdcall DragOver(
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ DWORD __RPC_FAR *pdwEffect);
|
|
|
|
HRESULT __stdcall DragLeave( void);
|
|
|
|
HRESULT __stdcall Drop(
|
|
/* [unique][in] */ IDataObject __RPC_FAR *pDataObj,
|
|
/* [in] */ DWORD grfKeyState,
|
|
/* [in] */ POINTL pt,
|
|
/* [out][in] */ DWORD __RPC_FAR *pdwEffect);
|
|
|
|
// *** IExtractIcon methods ***
|
|
HRESULT __stdcall GetIconLocation(
|
|
UINT uFlags,
|
|
LPSTR szIconFile,
|
|
UINT cchMax,
|
|
int * piIndex,
|
|
UINT * pwFlags);
|
|
|
|
// IContextMenu methods
|
|
HRESULT _stdcall QueryContextMenu(HMENU hMenu,UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
|
|
HRESULT _stdcall InvokeCommand(LPCMINVOKECOMMANDINFO lpici);
|
|
HRESULT _stdcall GetCommandString(UINT idCmd, UINT uFlags,UINT *pwReserved, LPSTR pszName, UINT cchMax);
|
|
|
|
friend CShellExFactory;
|
|
|
|
private:
|
|
|
|
CShellEx();
|
|
HRESULT Initialize(IUnknown* punkOuter);
|
|
~CShellEx();
|
|
|
|
class CInnerUnk : public IUnknown
|
|
{
|
|
public:
|
|
// IUnknown methods
|
|
HRESULT _stdcall QueryInterface(REFIID riid, void** ppObject);
|
|
ULONG _stdcall AddRef();
|
|
ULONG _stdcall Release();
|
|
|
|
CInnerUnk(CShellEx* pObj);
|
|
|
|
CShellEx* m_pObj;
|
|
} *m_punkInner;
|
|
friend CInnerUnk;
|
|
|
|
IUnknown* m_punkOuter;
|
|
ULONG m_dwRefCount;
|
|
};
|
|
|
|
extern ULONG g_dwRefCount;
|
|
|
|
#endif
|