Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
3.7 KiB

  1. #ifndef _STARTMNU_H
  2. #define _STARTMNU_H
  3. //--------------------------------------------------------------------------
  4. //
  5. //---------------------------------------------------------------------------
  6. //---------------------------------------------------------------------------
  7. #define SBM_CANCELMENU (WM_USER + 12)
  8. #define SBM_REBUILDMENU (WM_USER + 13)
  9. HRESULT StartMenuHost_Create(IMenuPopup** ppmp, IMenuBand** ppmb);
  10. HRESULT IMenuPopup_SetIconSize(IMenuPopup* punk,DWORD iIcon);
  11. STDAPI CHotKey_Create(IShellHotKey ** ppshk);
  12. #ifdef __cplusplus
  13. BOOL _ShowStartMenuLogoff();
  14. BOOL _ShowStartMenuRun();
  15. BOOL _ShowStartMenuEject();
  16. BOOL _ShowStartMenuHelp();
  17. BOOL _ShowStartMenuShutdown();
  18. BOOL _ShowStartMenuDisconnect();
  19. BOOL _ShowStartMenuSearch();
  20. class CStartMenuHost : public ITrayPriv,
  21. public IServiceProvider,
  22. public IShellService,
  23. public IMenuPopup,
  24. public IOleCommandTarget,
  25. public IWinEventHandler
  26. {
  27. public:
  28. // *** IUnknown methods ***
  29. STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj);
  30. STDMETHODIMP_(ULONG) AddRef () ;
  31. STDMETHODIMP_(ULONG) Release ();
  32. // *** ITrayPriv methods ***
  33. STDMETHODIMP ExecItem (IShellFolder* psf, LPCITEMIDLIST pidl);
  34. STDMETHODIMP GetFindCM(HMENU hmenu, UINT idFirst, UINT idLast, IContextMenu** ppcmFind);
  35. STDMETHODIMP GetStaticStartMenu(HMENU* phmenu);
  36. // *** IServiceProvider ***
  37. STDMETHODIMP QueryService (REFGUID guidService, REFIID riid, void ** ppvObject);
  38. // *** IShellService ***
  39. STDMETHODIMP SetOwner (struct IUnknown* punkOwner);
  40. // *** IOleWindow methods ***
  41. STDMETHODIMP GetWindow (HWND * lphwnd);
  42. STDMETHODIMP ContextSensitiveHelp (THIS_ BOOL fEnterMode) { return E_NOTIMPL; }
  43. // *** IDeskBarClient methods ***
  44. STDMETHODIMP SetClient (IUnknown* punkClient) { return E_NOTIMPL; }
  45. STDMETHODIMP GetClient (IUnknown** ppunkClient) { return E_NOTIMPL; }
  46. STDMETHODIMP OnPosRectChangeDB (LPRECT prc) { return E_NOTIMPL; }
  47. // *** IMenuPopup methods ***
  48. STDMETHODIMP Popup (POINTL *ppt, RECTL *prcExclude, DWORD dwFlags);
  49. STDMETHODIMP OnSelect (DWORD dwSelectType);
  50. STDMETHODIMP SetSubMenu (IMenuPopup* pmp, BOOL fSet);
  51. // *** IOleCommandTarget ***
  52. STDMETHODIMP QueryStatus(const GUID * pguidCmdGroup,
  53. ULONG cCmds, OLECMD rgCmds[], OLECMDTEXT *pcmdtext);
  54. STDMETHODIMP Exec(const GUID * pguidCmdGroup,
  55. DWORD nCmdID, DWORD nCmdexecopt,
  56. VARIANTARG *pvarargIn, VARIANTARG *pvarargOut);
  57. // *** IWinEventHandler ***
  58. STDMETHODIMP OnWinEvent(HWND h, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plres);
  59. STDMETHODIMP IsWindowOwner (HWND hwnd);
  60. // *** IBanneredBar ***
  61. protected:
  62. CStartMenuHost();
  63. friend HRESULT StartMenuHost_Create(IMenuPopup** ppmp, IMenuBand** ppmb);
  64. int _cRef;
  65. };
  66. class CHotKey : public IShellHotKey
  67. {
  68. public:
  69. // *** IUnknown methods ***
  70. STDMETHODIMP QueryInterface (REFIID riid, LPVOID * ppvObj);
  71. STDMETHODIMP_(ULONG) AddRef () ;
  72. STDMETHODIMP_(ULONG) Release ();
  73. // *** IShellHotKey methods ***
  74. STDMETHODIMP RegisterHotKey(IShellFolder * psf, LPCITEMIDLIST pidlParent, LPCITEMIDLIST pidl);
  75. protected:
  76. CHotKey();
  77. friend HRESULT CHotKey_Create(IShellHotKey ** ppshk);
  78. int _cRef;
  79. };
  80. #endif //C++
  81. #ifdef WINNT // hydra specific functions
  82. STDAPI_(void) MuSecurity(void);
  83. #endif
  84. #endif //_START_H