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.
 
 
 
 
 
 

166 lines
4.8 KiB

/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1993-1996 Microsoft Corporation. All Rights Reserved.
//
// MODULE: statbar.h
//
// PURPOSE: Defines the CStatusBar class
//
#ifndef __STATBAR_H__
#define __STATBAR_H__
#include "spoolapi.h"
/////////////////////////////////////////////////////////////////////////////
// STATUS_BAR_PART
//
// Defines the different parts that are available in the status bar
//
typedef enum {
SBP_FILTERED = 0,
SBP_GENERAL,
SBP_PROGRESS,
SBP_CONNECTED,
SBP_SPOOLER,
SBP_MAX
} STATUS_BAR_PART;
/////////////////////////////////////////////////////////////////////////////
// Initialization Flags
//
#define SBI_HIDE_SPOOLER 0x00000001
#define SBI_HIDE_CONNECTED 0x00000002
#define SBI_HIDE_FILTERED 0x00000004
/////////////////////////////////////////////////////////////////////////////
// CONN_STATUS
//
// Parameter to SetConnectedStatus().
//
typedef enum {
CONN_STATUS_WORKOFFLINE = 0,
CONN_STATUS_CONNECTED,
CONN_STATUS_DISCONNECTED,
CONN_STATUS_MAX
} CONN_STATUS;
enum {
STATUS_IMAGE_CONNECTED = 0,
STATUS_IMAGE_AUTHORIZING,
STATUS_IMAGE_CHECKING,
STATUS_IMAGE_CHECKING_NEWS,
STATUS_IMAGE_SENDING,
STATUS_IMAGE_RECEIVING,
STATUS_IMAGE_NOMSGS,
STATUS_IMAGE_NEWMSGS,
STATUS_IMAGE_ERROR,
STATUS_IMAGE_DISCONNECTED,
STATUS_IMAGE_OFFLINE,
STATUS_IMAGE_ONLINE,
STATUS_IMAGE_MAX
};
/////////////////////////////////////////////////////////////////////////////
// IStatusBar
//
interface IStatusBar : public IUnknown
{
STDMETHOD(Initialize)(THIS_ HWND hwndParent, DWORD dwFlags) PURE;
STDMETHOD(ShowStatus)(THIS_ BOOL fShow) PURE;
STDMETHOD(OnSize)(THIS_ int cx, int cy) PURE;
STDMETHOD(GetHeight)(THIS_ int *cy) PURE;
STDMETHOD(ShowSimpleText)(THIS_ LPTSTR pszText) PURE;
STDMETHOD(HideSimpleText)(THIS) PURE;
STDMETHOD(SetStatusText)(THIS_ LPTSTR pszText) PURE;
STDMETHOD(ShowProgress)(THIS_ DWORD dwRange) PURE;
STDMETHOD(SetProgress)(THIS_ DWORD dwPos) PURE;
STDMETHOD(HideProgress)(THIS) PURE;
STDMETHOD(SetConnectedStatus)(THIS_ CONN_STATUS status) PURE;
STDMETHOD(SetSpoolerStatus)(THIS_ DELIVERYNOTIFYTYPE type, DWORD cMsgs) PURE;
STDMETHOD(OnNotify)(THIS_ NMHDR *pnmhdr) PURE;
STDMETHOD(SetFilter)(THIS_ RULEID ridFilter) PURE;
};
#define IDC_STATUS_BAR 4000
#define IDC_STATUS_PROGRESS 4001
/////////////////////////////////////////////////////////////////////////////
// CStatusBar
//
class CStatusBar : public IStatusBar
{
public:
/////////////////////////////////////////////////////////////////////////
// Constructors, Destructors, and Initialization
//
CStatusBar();
~CStatusBar();
/////////////////////////////////////////////////////////////////////////
// IUnknown
//
STDMETHODIMP QueryInterface(REFIID riid, void **ppvObj);
ULONG STDMETHODCALLTYPE AddRef(void);
ULONG STDMETHODCALLTYPE Release(void);
/////////////////////////////////////////////////////////////////////////
// IStatusBar
//
STDMETHODIMP Initialize(HWND hwndParent, DWORD dwFlags);
STDMETHODIMP ShowStatus(BOOL fShow);
STDMETHODIMP OnSize(int cx, int cy);
STDMETHODIMP GetHeight(int *pcy);
STDMETHODIMP ShowSimpleText(LPTSTR pszText);
STDMETHODIMP HideSimpleText(void);
STDMETHODIMP SetStatusText(LPTSTR pszText);
STDMETHODIMP ShowProgress(DWORD dwRange);
STDMETHODIMP SetProgress(DWORD dwPos);
STDMETHODIMP HideProgress(void);
STDMETHODIMP SetConnectedStatus(CONN_STATUS status);
STDMETHODIMP SetSpoolerStatus(DELIVERYNOTIFYTYPE type, DWORD cMsgs);
STDMETHODIMP OnNotify(NMHDR *pnmhdr);
STDMETHODIMP SetFilter(RULEID ridFilter);
private:
/////////////////////////////////////////////////////////////////////////
// Utility Functions
//
void _UpdateWidths(void);
HICON _GetIcon(DWORD iIndex);
private:
/////////////////////////////////////////////////////////////////////////
// Class Data
//
ULONG m_cRef;
HWND m_hwnd;
HWND m_hwndProg;
DWORD m_tidOwner;
DWORD m_dwFlags;
HIMAGELIST m_himl;
HICON m_rgIcons[STATUS_IMAGE_MAX];
// Cached width information
int m_cxFiltered;
int m_cxSpooler;
int m_cxConnected;
int m_cxProgress;
// State
BOOL m_fInSimple;
// Cached filter info
RULEID m_ridFilter;
CONN_STATUS m_statusConn;
DELIVERYNOTIFYTYPE m_typeDelivery;
DWORD m_cMsgsDelivery;
};
#endif