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.

117 lines
3.3 KiB

  1. /**************************************************************************
  2. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
  3. ANY KIND, EITHER EXPRESSED OR TFPLIED, INCLUDING BUT NOT LIMITED TO
  4. THE TFPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  5. PARTICULAR PURPOSE.
  6. Copyright 1997 Microsoft Corporation. All Rights Reserved.
  7. **************************************************************************/
  8. /**************************************************************************
  9. File: DeskBand.h
  10. Description: CDeskBand definitions.
  11. **************************************************************************/
  12. #include <windows.h>
  13. #include <shlobj.h>
  14. #include <shpriv.h>
  15. #include "Globals.h"
  16. #include "tipbar.h"
  17. #ifndef _DESKBAND_H_
  18. #define _DESKBAND_H_
  19. #define DB_CLASS_NAME (TEXT("DeskBandSampleClass"))
  20. #define MIN_SIZE_X 32
  21. #define MIN_SIZE_Y 30
  22. #define IDM_COMMAND 0
  23. /**************************************************************************
  24. CDeskBand class definition
  25. **************************************************************************/
  26. class CDeskBand : public IDeskBand,
  27. public IDeskBandEx,
  28. public IInputObject,
  29. public IObjectWithSite,
  30. public IPersistStream,
  31. public IContextMenu
  32. {
  33. protected:
  34. DWORD m_ObjRefCount;
  35. public:
  36. CDeskBand();
  37. ~CDeskBand();
  38. //IUnknown methods
  39. STDMETHODIMP QueryInterface(REFIID, LPVOID*);
  40. STDMETHODIMP_(DWORD) AddRef();
  41. STDMETHODIMP_(DWORD) Release();
  42. //IOleWindow methods
  43. STDMETHOD (GetWindow) (HWND*);
  44. STDMETHOD (ContextSensitiveHelp) (BOOL);
  45. //IDockingWindow methods
  46. STDMETHOD (ShowDW) (BOOL fShow);
  47. STDMETHOD (CloseDW) (DWORD dwReserved);
  48. STDMETHOD (ResizeBorderDW) (LPCRECT prcBorder, IUnknown* punkToolbarSite, BOOL fReserved);
  49. //IDeskBand methods
  50. STDMETHOD (GetBandInfo) (DWORD, DWORD, DESKBANDINFO*);
  51. //IDeskBandEx methods
  52. STDMETHOD (MoveBand) (void);
  53. //IInputObject methods
  54. STDMETHOD (UIActivateIO) (BOOL, LPMSG);
  55. STDMETHOD (HasFocusIO) (void);
  56. STDMETHOD (TranslateAcceleratorIO) (LPMSG);
  57. //IObjectWithSite methods
  58. STDMETHOD (SetSite) (IUnknown*);
  59. STDMETHOD (GetSite) (REFIID, LPVOID*);
  60. //IPersistStream methods
  61. STDMETHOD (GetClassID) (LPCLSID);
  62. STDMETHOD (IsDirty) (void);
  63. STDMETHOD (Load) (LPSTREAM);
  64. STDMETHOD (Save) (LPSTREAM, BOOL);
  65. STDMETHOD (GetSizeMax) (ULARGE_INTEGER*);
  66. //IContextMenu methods
  67. STDMETHOD (QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
  68. STDMETHOD (InvokeCommand)(LPCMINVOKECOMMANDINFO);
  69. STDMETHOD (GetCommandString)(UINT_PTR, UINT, LPUINT, LPSTR, UINT);
  70. BOOL ResizeRebar(HWND hwnd, int nSize, BOOL fFit);
  71. void DeleteBand();
  72. BOOL IsInTipbarCreating() {return m_fTipbarCreating;}
  73. private:
  74. BOOL m_bFocus;
  75. HWND m_hwndParent;
  76. DWORD m_dwViewMode;
  77. DWORD m_dwBandID;
  78. IInputObjectSite *m_pSite;
  79. BOOL m_fTipbarCreating;
  80. BOOL m_fInCloseDW;
  81. private:
  82. void FocusChange(BOOL);
  83. void OnKillFocus(HWND hWnd);
  84. void OnSetFocus(HWND hWnd);
  85. BOOL RegisterAndCreateWindow(void);
  86. };
  87. #endif // _DESKBAND_H_