| /**************************************************************************** |
| * |
| * SciTech OS Portability Manager Library |
| * |
| * ======================================================================== |
| * |
| * The contents of this file are subject to the SciTech MGL Public |
| * License Version 1.0 (the "License"); you may not use this file |
| * except in compliance with the License. You may obtain a copy of |
| * the License at http://www.scitechsoft.com/mgl-license.txt |
| * |
| * Software distributed under the License is distributed on an |
| * "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or |
| * implied. See the License for the specific language governing |
| * rights and limitations under the License. |
| * |
| * The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc. |
| * |
| * The Initial Developer of the Original Code is SciTech Software, Inc. |
| * All Rights Reserved. |
| * |
| * ======================================================================== |
| * |
| * Language: ANSI C |
| * Environment: Win32 |
| * |
| * Description: Include file to include all OS specific header files. |
| * |
| ****************************************************************************/ |
| |
| #define WIN32_LEAN_AND_MEAN |
| #define STRICT |
| #include <windows.h> |
| #include <mmsystem.h> |
| #include <float.h> |
| #define NONAMELESSUNION |
| #include "pm/ddraw.h" |
| |
| /* Macros to save and restore the default control word. Windows 9x has |
| * some bugs in it such that calls to load any DLL's which load 16-bit |
| * DLL's cause the floating point control word to get trashed. We fix |
| * this by saving and restoring the control word across problematic |
| * calls. |
| */ |
| |
| #if defined(__INTEL__) |
| #define GET_DEFAULT_CW() \ |
| { \ |
| if (_PM_cw_default == 0) \ |
| _PM_cw_default = _control87(0,0); \ |
| } |
| #define RESET_DEFAULT_CW() \ |
| _control87(_PM_cw_default,0xFFFFFFFF) |
| #else |
| #define GET_DEFAULT_CW() |
| #define RESET_DEFAULT_CW() |
| #endif |
| |
| /* Custom window messages */ |
| |
| #define WM_DO_SUSPEND_APP WM_USER |
| #define WM_PM_LEAVE_FULLSCREEN 0 |
| #define WM_PM_RESTORE_FULLSCREEN 1 |
| |
| /* Macro for disabling AutoPlay on a use system */ |
| |
| #define AUTOPLAY_DRIVE_CDROM 0x20 |
| |
| /*--------------------------- Global Variables ----------------------------*/ |
| |
| #ifdef __INTEL__ |
| extern uint _PM_cw_default; /* Default FPU control word */ |
| #endif |
| extern int _PM_deskX,_PM_deskY; /* Desktop dimensions */ |
| extern HWND _PM_hwndConsole; /* Window handle for console */ |
| |
| /*-------------------------- Internal Functions ---------------------------*/ |
| |
| void _EVT_pumpMessages(void); |
| |