DESKBAND.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

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