home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / oleaut / spoly2 / statbar.h < prev    next >
C/C++ Source or Header  |  1997-10-05  |  3KB  |  148 lines

  1. /*** 
  2. *statbar.h
  3. *
  4. *  This is a part of the Microsoft Source Code Samples.
  5. *
  6. *  Copyright (C) 1992-1997 Microsoft Corporation. All rights reserved.
  7. *
  8. *  This source code is only intended as a supplement to Microsoft Development
  9. *  Tools and/or WinHelp documentation.  See these sources for detailed
  10. *  information regarding the Microsoft samples programs.
  11. *
  12. *Purpose:
  13. *
  14. *Implementation Notes:
  15. *  This file requires windows.h and ole2.h
  16. *
  17. *****************************************************************************/
  18.  
  19. class CStatBar : public IUnknown {
  20. public:
  21.     static CStatBar FAR* Create(HINSTANCE hinst, HWND hwndFrame);
  22.  
  23.     // IUnknown methods
  24.     //
  25.     STDMETHOD(QueryInterface)(REFIID riid, void FAR* FAR* ppv);
  26.     STDMETHOD_(unsigned long, AddRef)(void);
  27.     STDMETHOD_(unsigned long, Release)(void);
  28.  
  29.     // Introduced methods
  30.     //
  31.     void Show(void);
  32.     inline void Move(void);
  33.     inline void Update(void);
  34.  
  35.     inline int GetX(void);
  36.     inline void SetX(int x);
  37.  
  38.     inline int GetY(void);
  39.     inline void SetY(int y);
  40.  
  41.     inline int GetHeight(void);
  42.     inline void SetHeight(int height);
  43.  
  44.     inline int GetWidth(void);
  45.     inline void SetWidth(int width);
  46.  
  47.     //inline HFONT GetFont(void);
  48.     void SetFont(HFONT hfont);
  49.  
  50.     //char FAR* GetText(void);
  51.     inline void SetText(OLECHAR FAR* sz);
  52.  
  53.     void WMPaint(void);
  54.     BOOL Register(HINSTANCE);
  55.  
  56. private:
  57.     CStatBar();
  58.     ~CStatBar();
  59.  
  60.     unsigned long    m_refs;
  61.  
  62.     HWND    m_hwnd;            // the status bar window handle
  63.  
  64.     int        m_x;            // x coordinate of upper left corner
  65.     int        m_y;            // y coordinate of upper left corner
  66.     int        m_height;
  67.     int        m_width;
  68.  
  69.     HFONT    m_hfont;
  70.     int        m_dyFont;        // font height
  71.     int        m_dxFont;        // font width
  72.  
  73.     BSTR    m_bstrMsg;        // the status bar text
  74.  
  75.     static TCHAR FAR* m_szWndClass;
  76. };
  77.  
  78. inline void
  79. CStatBar::Move()
  80. {
  81.     MoveWindow(m_hwnd, m_x, m_y, m_width, m_height, TRUE);
  82. }
  83.  
  84. inline void
  85. CStatBar::Update()
  86. {
  87.     InvalidateRect(m_hwnd, NULL, TRUE);
  88.     UpdateWindow(m_hwnd);
  89. }
  90.  
  91. inline int
  92. CStatBar::GetX()
  93. {
  94.     return m_x;
  95. }
  96.  
  97. inline void
  98. CStatBar::SetX(int x)
  99. {
  100.     m_x = x;
  101. }
  102.  
  103. inline int
  104. CStatBar::GetY(void)
  105. {
  106.     return m_y;
  107. }
  108.  
  109. inline void
  110. CStatBar::SetY(int y)
  111. {
  112.     m_y = y;
  113. }
  114.  
  115. inline int
  116. CStatBar::GetHeight(void)
  117. {
  118.     return m_height;
  119. }
  120.  
  121. inline void
  122. CStatBar::SetHeight(int height)
  123. {
  124.     m_height = height;
  125. }
  126.  
  127. inline int
  128. CStatBar::GetWidth(void)
  129. {
  130.     return m_width;
  131. }
  132.  
  133. inline void
  134. CStatBar::SetWidth(int width)
  135. {
  136.     m_width = width;
  137. }
  138.  
  139. inline void
  140. CStatBar::SetText(OLECHAR FAR* sz)
  141. {
  142.     SysFreeString(m_bstrMsg);
  143.     m_bstrMsg = SysAllocString(sz);
  144. }
  145.  
  146. extern "C" void
  147. SBprintf(CStatBar FAR* psb, TCHAR FAR* szFmt, ...);
  148.