00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef CMSWINDOWSSERVERTASKBARRECEIVER_H
00020 #define CMSWINDOWSSERVERTASKBARRECEIVER_H
00021
00022 #define WIN32_LEAN_AND_MEAN
00023
00024 #include "CServerTaskBarReceiver.h"
00025 #include <windows.h>
00026
00027 class CBufferedLogOutputter;
00028
00030 class CMSWindowsServerTaskBarReceiver : public CServerTaskBarReceiver {
00031 public:
00032 CMSWindowsServerTaskBarReceiver(HINSTANCE, const CBufferedLogOutputter*);
00033 virtual ~CMSWindowsServerTaskBarReceiver();
00034
00035
00036 virtual void showStatus();
00037 virtual void runMenu(int x, int y);
00038 virtual void primaryAction();
00039 virtual const Icon getIcon() const;
00040 void cleanup();
00041
00042 protected:
00043 void copyLog() const;
00044
00045
00046 virtual void onStatusChanged();
00047
00048 private:
00049 HICON loadIcon(UINT);
00050 void deleteIcon(HICON);
00051 void createWindow();
00052 void destroyWindow();
00053
00054 BOOL dlgProc(HWND hwnd,
00055 UINT msg, WPARAM wParam, LPARAM lParam);
00056 static BOOL CALLBACK
00057 staticDlgProc(HWND hwnd,
00058 UINT msg, WPARAM wParam, LPARAM lParam);
00059
00060 private:
00061 HINSTANCE m_appInstance;
00062 HWND m_window;
00063 HMENU m_menu;
00064 HICON m_icon[kMaxState];
00065 const CBufferedLogOutputter* m_logBuffer;
00066 static const UINT s_stateToIconID[];
00067 };
00068
00069 #endif