|
|
#ifndef _STARTMNU_H
#define _STARTMNU_H
//--------------------------------------------------------------------------
//
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
#define SBM_CANCELMENU (WM_USER + 12)
#define SBM_REBUILDMENU (WM_USER + 13)
HRESULT StartMenuHost_Create(IMenuPopup** ppmp, IMenuBand** ppmb); HRESULT IMenuPopup_SetIconSize(IMenuPopup* punk,DWORD iIcon);
STDAPI CHotKey_Create(IShellHotKey ** ppshk);
#ifdef __cplusplus
BOOL _ShowStartMenuLogoff(); BOOL _ShowStartMenuRun(); BOOL _ShowStartMenuEject(); BOOL _ShowStartMenuHelp(); BOOL _ShowStartMenuShutdown(); BOOL _ShowStartMenuDisconnect(); BOOL _ShowStartMenuSearch();
class CStartMenuHost : public ITrayPriv, public IServiceProvider, public IShellService, public IMenuPopup, public IOleCommandTarget, public IWinEventHandler
{ public: // *** IUnknown methods ***
STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj); STDMETHODIMP_(ULONG) AddRef () ; STDMETHODIMP_(ULONG) Release ();
// *** ITrayPriv methods ***
STDMETHODIMP ExecItem (IShellFolder* psf, LPCITEMIDLIST pidl); STDMETHODIMP GetFindCM(HMENU hmenu, UINT idFirst, UINT idLast, IContextMenu** ppcmFind); STDMETHODIMP GetStaticStartMenu(HMENU* phmenu);
// *** IServiceProvider ***
STDMETHODIMP QueryService (REFGUID guidService, REFIID riid, void ** ppvObject);
// *** IShellService ***
STDMETHODIMP SetOwner (struct IUnknown* punkOwner);
// *** IOleWindow methods ***
STDMETHODIMP GetWindow (HWND * lphwnd); STDMETHODIMP ContextSensitiveHelp (THIS_ BOOL fEnterMode) { return E_NOTIMPL; }
// *** IDeskBarClient methods ***
STDMETHODIMP SetClient (IUnknown* punkClient) { return E_NOTIMPL; } STDMETHODIMP GetClient (IUnknown** ppunkClient) { return E_NOTIMPL; } STDMETHODIMP OnPosRectChangeDB (LPRECT prc) { return E_NOTIMPL; }
// *** IMenuPopup methods ***
STDMETHODIMP Popup (POINTL *ppt, RECTL *prcExclude, DWORD dwFlags); STDMETHODIMP OnSelect (DWORD dwSelectType); STDMETHODIMP SetSubMenu (IMenuPopup* pmp, BOOL fSet);
// *** IOleCommandTarget ***
STDMETHODIMP QueryStatus(const GUID * pguidCmdGroup, ULONG cCmds, OLECMD rgCmds[], OLECMDTEXT *pcmdtext); STDMETHODIMP Exec(const GUID * pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvarargIn, VARIANTARG *pvarargOut);
// *** IWinEventHandler ***
STDMETHODIMP OnWinEvent(HWND h, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plres); STDMETHODIMP IsWindowOwner (HWND hwnd);
// *** IBanneredBar ***
protected: CStartMenuHost();
friend HRESULT StartMenuHost_Create(IMenuPopup** ppmp, IMenuBand** ppmb);
int _cRef; };
class CHotKey : public IShellHotKey { public: // *** IUnknown methods ***
STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj); STDMETHODIMP_(ULONG) AddRef () ; STDMETHODIMP_(ULONG) Release ();
// *** IShellHotKey methods ***
STDMETHODIMP RegisterHotKey(IShellFolder * psf, LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidl);
protected: CHotKey(); friend HRESULT CHotKey_Create(IShellHotKey ** ppshk);
int _cRef; };
#endif //C++
#ifdef WINNT // hydra specific functions
STDAPI_(void) MuSecurity(void); #endif
#endif //_START_H
|