home *** CD-ROM | disk | FTP | other *** search
- /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
- *
- * The contents of this file are subject to the Netscape Public License
- * Version 1.0 (the "NPL"); you may not use this file except in
- * compliance with the NPL. You may obtain a copy of the NPL at
- * http://www.mozilla.org/NPL/
- *
- * Software distributed under the NPL is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
- * for the specific language governing rights and limitations under the
- * NPL.
- *
- * The Initial Developer of this code under the NPL is Netscape
- * Communications Corporation. Portions created by Netscape are
- * Copyright (C) 1998 Netscape Communications Corporation. All Rights
- * Reserved.
- */
-
- #ifndef __CSysInfo_H
- #define __CSysInfo_H
-
- class CSysInfo {
- // Classification of the operating system.
- public:
- BOOL m_bWin16; // 3.1, WFW
- BOOL m_bWin32; // Win32s, WinNT, Win95
- BOOL m_bWin32s;
- BOOL m_bWinNT;
- BOOL m_bWin4;
- BOOL m_bDBCS; // double byte enable
-
- // Need an easy way to determine if under 4.0 and
- // if a 32 bit app.
- public:
- BOOL IsWin4_32() const {
- return(m_bWin32 == TRUE && m_bWin4 == TRUE);
- }
- BOOL IsWin4_16() const {
- return(m_bWin16 == TRUE && m_bWin4 == TRUE);
- }
- BOOL IsWin4() const {
- TRACE("Consider using IsWin4_32.\n");
- return(m_bWin4 == TRUE);
- }
-
- // Versioning information.
- // These are (DWORD)-1 if not initalized.
- public:
- DWORD m_dwMajor;
- DWORD m_dwMinor;
- DWORD m_dwBuild;
-
- // Cached colors, brushes, whatever.
- // Usually defined by the OS.
- public:
- HBRUSH m_hbrBtnFace;
- HBRUSH m_hbrMenu;
- HBRUSH m_hbrHighlight;
-
- COLORREF m_clrBtnFace;
- COLORREF m_clrBtnShadow;
- COLORREF m_clrBtnHilite;
- COLORREF m_clrBtnText;
- COLORREF m_clrMenu;
- COLORREF m_clrHighlight;
-
- // Bits per pixel
- int m_iBitsPerPixel;
-
- // Winsock information.
- public:
- WSADATA m_wsaData;
- int m_iMaxSockets;
-
- // Various window attributes.
- // Such as the border size (WS_BORDER).
- public:
- int m_iBorderWidth;
- int m_iBorderHeight;
- int m_iScrollWidth;
- int m_iScrollHeight;
-
- // Screen size information.
- public:
- int m_iScreenWidth;
- int m_iScreenHeight;
-
- // Is a printer installed?
- public:
- BOOL m_bPrinter;
-
- // Do we need to override size for Win95 tooltips?
- public:
- BOOL m_bOverrideWin95Tooltips;
-
- // Init/Reinit/Destroy...
- public:
- CSysInfo();
- ~CSysInfo();
- void UpdateInfo();
-
- // Watchers.
- private:
- void *m_pWatchSettingChanges;
- void *m_pWatchDeviceModeChanges;
- void *m_pWatchDeviceChanges;
-
- protected:
- BOOL OverrideWin95ToolTips(void);
- };
-
- extern CSysInfo sysInfo;
-
- #endif // __CSysInfo_H
-