DESKBAND.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- /**************************************************************************
- THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- PARTICULAR PURPOSE.
- Copyright 1997 - 1998 Microsoft Corporation. All Rights Reserved.
- **************************************************************************/
- /**************************************************************************
- File: DeskBand.h
- Description: CDeskBand definitions.
- **************************************************************************/
- #include <windows.h>
- #include <shlobj.h>
- #include "Globals.h"
- #ifndef DESKBAND_H
- #define DESKBAND_H
- #define DB_CLASS_NAME (TEXT("DeskBandSampleClass"))
- #define MIN_SIZE_X 10
- #define MIN_SIZE_Y 10
- #define IDM_COMMAND 0
- /**************************************************************************
- CDeskBand class definition
- **************************************************************************/
- class CDeskBand : public IDeskBand,
- public IInputObject,
- public IObjectWithSite,
- public IPersistStream,
- public IContextMenu
- {
- protected:
- DWORD m_ObjRefCount;
- public:
- CDeskBand();
- ~CDeskBand();
- //IUnknown methods
- STDMETHODIMP QueryInterface(REFIID, LPVOID*);
- STDMETHODIMP_(DWORD) AddRef();
- STDMETHODIMP_(DWORD) Release();
- //IOleWindow methods
- STDMETHOD (GetWindow) (HWND*);
- STDMETHOD (ContextSensitiveHelp) (BOOL);
- //IDockingWindow methods
- STDMETHOD (ShowDW) (BOOL fShow);
- STDMETHOD (CloseDW) (DWORD dwReserved);
- STDMETHOD (ResizeBorderDW) (LPCRECT prcBorder, IUnknown* punkToolbarSite, BOOL fReserved);
- //IDeskBand methods
- STDMETHOD (GetBandInfo) (DWORD, DWORD, DESKBANDINFO*);
- //IInputObject methods
- STDMETHOD (UIActivateIO) (BOOL, LPMSG);
- STDMETHOD (HasFocusIO) (void);
- STDMETHOD (TranslateAcceleratorIO) (LPMSG);
- //IObjectWithSite methods
- STDMETHOD (SetSite) (IUnknown*);
- STDMETHOD (GetSite) (REFIID, LPVOID*);
- //IPersistStream methods
- STDMETHOD (GetClassID) (LPCLSID);
- STDMETHOD (IsDirty) (void);
- STDMETHOD (Load) (LPSTREAM);
- STDMETHOD (Save) (LPSTREAM, BOOL);
- STDMETHOD (GetSizeMax) (ULARGE_INTEGER*);
- //IContextMenu methods
- STDMETHOD (QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
- STDMETHOD (InvokeCommand)(LPCMINVOKECOMMANDINFO);
- STDMETHOD (GetCommandString)(UINT, UINT, LPUINT, LPSTR, UINT);
- private:
- BOOL m_bFocus;
- HWND m_hwndParent;
- HWND m_hWnd;
- DWORD m_dwViewMode;
- DWORD m_dwBandID;
- IInputObjectSite *m_pSite;
- private:
- void FocusChange(BOOL);
- LRESULT OnKillFocus(void);
- LRESULT OnSetFocus(void);
- static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam);
- LRESULT OnPaint(void);
- LRESULT OnCommand(WPARAM wParam, LPARAM lParam);
- BOOL RegisterAndCreateWindow(void);
- };
- #endif //DESKBAND_H