|
|
/*******************************************************************************
* * (C) COPYRIGHT MICROSOFT CORP., 1993-1994 * * TITLE: SYSTRAY.H * * VERSION: 2.1 * * AUTHOR: Tracy Sharpe / RAL * * DATE: 20 Feb 1994 * * Public definitions of the system tray applet (battery meter, PCMCIA, etc). * ******************************************************************************** * * CHANGE LOG: * * DATE REV DESCRIPTION * ----------- --- ------------------------------------------------------------- * 20 Feb 1994 TCS Original implementation. * 11/8/94 RAL Converted to systray * *******************************************************************************/
#ifndef _INC_SYSTRAY
#define _INC_SYSTRAY
#define SYSTRAY_CLASSNAME TEXT("SystemTray_Main")
// Private tray icon notification message sent to the BatteryMeter window.
#define STWM_NOTIFYPOWER (WM_USER + 201)
#define STWM_NOTIFYPCMCIA (WM_USER + 202)
#define STWM_NOTIFYVOLUME (WM_USER + 203)
// Private tray icon notification messages sent to the BatteryMeter window.
#define STWM_ENABLESERVICE (WM_USER + 220)
#define STWM_GETSTATE (WM_USER + 221)
_inline BOOL SysTray_EnableService(int idSTService, BOOL fEnable) { if (fEnable) { STARTUPINFO si; PROCESS_INFORMATION pi; static const TCHAR szSTExecFmt[] = TEXT("SYSTRAY.EXE %i"); TCHAR szEnableCmd[sizeof(szSTExecFmt)+10]; memset(&si, 0, sizeof(si)); si.cb = sizeof(si); si.wShowWindow = SW_SHOWNOACTIVATE; si.dwFlags = STARTF_USESHOWWINDOW; wsprintf(szEnableCmd, szSTExecFmt, idSTService); if (CreateProcess(NULL,szEnableCmd,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi)) { CloseHandle(pi.hProcess); CloseHandle(pi.hThread); return TRUE; } else { return FALSE; } } else { HWND hwndST = FindWindow(SYSTRAY_CLASSNAME, NULL); if (hwndST) { SendMessage(hwndST, STWM_ENABLESERVICE, idSTService, FALSE); } } return TRUE; }
_inline BOOL SysTray_IsServiceEnabled(WPARAM idSTService) { HWND hwndST = FindWindow(SYSTRAY_CLASSNAME, NULL); if (hwndST) { return((BOOL)SendMessage(hwndST, STWM_GETSTATE, idSTService, 0)); } else { return(FALSE); } }
#define STSERVICE_POWER 1
#define STSERVICE_PCMCIA 2
#define STSERVICE_VOLUME 4
#define STSERVICE_ALL 7 // Internal
//
// Flags for the PCMCIA registry entry
//
#define PCMCIA_REGFLAG_NOWARN 1
#endif // _INC_SYSTRAY
|