//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: XBox win32 replacements - Mocks trivial windows flow // //============================================================================= #pragma once typedef unsigned long REGSAM; #define DSBCAPS_LOCSOFTWARE 0 #define DSERR_BUFFERLOST 0 #define DSBSTATUS_BUFFERLOST 0x02 #define DSSPEAKER_GEOMETRY(x) (((x)>>16) & 0xFFFF) #define DSSPEAKER_CONFIG(x) ((x) & 0xFFFF) #define DSSPEAKER_HEADPHONE -1 #define DSSPEAKER_QUAD -2 #define DSSPEAKER_5POINT1 -3 #define DSSPEAKER_7POINT1 -4 #define DISP_CHANGE_SUCCESSFUL 0 #define HKEY_CURRENT_USER NULL #define HKEY_LOCAL_MACHINE NULL #define KEY_QUERY_VALUE 0 #define KEY_READ 0 #define KEY_WRITE 1 #define KEY_ALL_ACCESS ((ULONG)-1) #define SMTO_ABORTIFHUNG 0 #define JOY_RETURNX 0x01 #define JOY_RETURNY 0x02 #define JOY_RETURNZ 0x04 #define JOY_RETURNR 0x08 #define JOY_RETURNU 0x10 #define JOY_RETURNV 0x20 #define JOYCAPS_HASPOV 0x01 #define JOYCAPS_HASU 0x01 #define JOYCAPS_HASV 0x01 #define JOYCAPS_HASR 0x01 #define JOYCAPS_HASZ 0x01 #define MMSYSERR_NODRIVER 1 #define JOYERR_NOERROR 0 #define JOY_RETURNCENTERED 0 #define JOY_RETURNBUTTONS 0 #define JOY_RETURNPOV 0 #define JOY_POVCENTERED 0 #define JOY_POVFORWARD 0 #define JOY_POVRIGHT 0 #define JOY_POVBACKWARD 0 #define JOY_POVLEFT 0 #define CCHDEVICENAME 32 #define CCHFORMNAME 32 typedef WCHAR BCHAR; typedef UINT MMRESULT; #define IDLE_PRIORITY_CLASS 1 #define HIGH_PRIORITY_CLASS 2 typedef struct _devicemode { BCHAR dmDeviceName[CCHDEVICENAME]; WORD dmSpecVersion; WORD dmDriverVersion; WORD dmSize; WORD dmDriverExtra; DWORD dmFields; union u1 { struct s { short dmOrientation; short dmPaperSize; short dmPaperLength; short dmPaperWidth; short dmScale; short dmCopies; short dmDefaultSource; short dmPrintQuality; }; POINTL dmPosition; DWORD dmDisplayOrientation; DWORD dmDisplayFixedOutput; }; short dmColor; short dmDuplex; short dmYResolution; short dmTTOption; short dmCollate; BYTE dmFormName[CCHFORMNAME]; WORD dmLogPixels; DWORD dmBitsPerPel; DWORD dmPelsWidth; DWORD dmPelsHeight; union u2 { DWORD dmDisplayFlags; DWORD dmNup; }; DWORD dmDisplayFrequency; DWORD dmICMMethod; DWORD dmICMIntent; DWORD dmMediaType; DWORD dmDitherType; DWORD dmReserved1; DWORD dmReserved2; DWORD dmPanningWidth; DWORD dmPanningHeight; } DEVMODE, *LPDEVMODE; typedef DWORD MCIERROR; typedef UINT MCIDEVICEID; typedef struct { DWORD_PTR dwCallback; } MCI_GENERIC_PARMS; typedef struct { DWORD_PTR dwCallback; DWORD dwReturn; DWORD dwItem; DWORD dwTrack; } MCI_STATUS_PARMS; typedef struct { DWORD_PTR dwCallback; DWORD dwFrom; DWORD dwTo; } MCI_PLAY_PARMS; typedef struct { DWORD_PTR dwCallback; MCIDEVICEID wDeviceID; LPCSTR lpstrDeviceType; LPCSTR lpstrElementName; LPCSTR lpstrAlias; } MCI_OPEN_PARMS; typedef struct { DWORD_PTR dwCallback; DWORD dwTimeFormat; DWORD dwAudio; } MCI_SET_PARMS; #define MCI_MAKE_TMSF(t, m, s, f) ((DWORD)(((BYTE)(t) | ((WORD)(m) << 8)) | ((DWORD)(BYTE)(s) | ((WORD)(f)<<8)) << 16)) #define MCI_MSF_MINUTE(msf) ((BYTE)(msf)) #define MCI_MSF_SECOND(msf) ((BYTE)(((WORD)(msf)) >> 8)) #define MCI_OPEN 0 #define MCI_OPEN_TYPE 0 #define MCI_OPEN_SHAREABLE 0 #define MCI_FORMAT_TMSF 0 #define MCI_SET_TIME_FORMAT 0 #define MCI_CLOSE 0 #define MCI_STOP 0 #define MCI_PAUSE 0 #define MCI_PLAY 0 #define MCI_SET 0 #define MCI_SET_DOOR_OPEN 0 #define MCI_SET_DOOR_CLOSED 0 #define MCI_STATUS_READY 0 #define MCI_STATUS 0 #define MCI_STATUS_ITEM 0 #define MCI_STATUS_WAIT 0 #define MCI_STATUS_NUMBER_OF_TRACKS 0 #define MCI_CDA_STATUS_TYPE_TRACK 0 #define MCI_TRACK 0 #define MCI_WAIT 0 #define MCI_CDA_TRACK_AUDIO 0 #define MCI_STATUS_LENGTH 0 #define MCI_NOTIFY 0 #define MCI_FROM 0 #define MCI_TO 0 #define MCIERR_DRIVER -1 #define DSERR_ALLOCATED 0 typedef struct _STARTUPINFOW { DWORD cb; LPWSTR lpReserved; LPWSTR lpDesktop; LPWSTR lpTitle; DWORD dwX; DWORD dwY; DWORD dwXSize; DWORD dwYSize; DWORD dwXCountChars; DWORD dwYCountChars; DWORD dwFillAttribute; DWORD dwFlags; WORD wShowWindow; WORD cbReserved2; LPBYTE lpReserved2; HANDLE hStdInput; HANDLE hStdOutput; HANDLE hStdError; } STARTUPINFOW, *LPSTARTUPINFOW; typedef STARTUPINFOW STARTUPINFO; typedef LPSTARTUPINFOW LPSTARTUPINFO; typedef struct _PROCESS_INFORMATION { HANDLE hProcess; HANDLE hThread; DWORD dwProcessId; DWORD dwThreadId; } PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; typedef DWORD HWAVEOUT, *LPHWAVEOUT; typedef struct { LPSTR lpData; DWORD dwBufferLength; DWORD dwBytesRecorded; DWORD_PTR dwUser; DWORD dwFlags; DWORD dwLoops; struct wavehdr_tag * lpNext; DWORD_PTR reserved; } WAVEHDR, *LPWAVEHDR; typedef struct { DWORD dwSize; DWORD dwFlags; DWORD dwBufferBytes; DWORD dwUnlockTransferRate; DWORD dwPlayCpuOverhead; } DSBCAPS, *LPDSBCAPS; typedef struct _DSCEFFECTDESC { DWORD dwSize; DWORD dwFlags; GUID guidDSCFXClass; GUID guidDSCFXInstance; DWORD dwReserved1; DWORD dwReserved2; } DSCEFFECTDESC, *LPDSCEFFECTDESC; typedef struct _DSCBUFFERDESC { DWORD dwSize; DWORD dwFlags; DWORD dwBufferBytes; DWORD dwReserved; LPWAVEFORMATEX lpwfxFormat; DWORD dwFXCount; LPDSCEFFECTDESC lpDSCFXDesc; } DSCBUFFERDESC, *LPDSCBUFFERDESC; #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DWORD)(BYTE)(b))<<16))) typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM); typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM); typedef char* HPSTR; typedef struct tagPAINTSTRUCT { HDC hdc; BOOL fErase; RECT rcPaint; BOOL fRestore; BOOL fIncUpdate; BYTE rgbReserved[16]; } PAINTSTRUCT, *LPPAINTSTRUCT; typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt; } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG; typedef struct { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; } WNDCLASS, *PWNDCLASS; typedef struct { UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCWSTR lpszMenuName; LPCWSTR lpszClassName; } WNDCLASSW, *PWNDCLASSW; typedef struct { UINT cbSize; UINT style; WNDPROC lpfnWndProc; int cbClsExtra; int cbWndExtra; HINSTANCE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; HICON hIconSm; } WNDCLASSEX, *PWNDCLASSEX; typedef struct tagTEXTMETRIC { LONG tmHeight; LONG tmAscent; LONG tmDescent; LONG tmInternalLeading; LONG tmExternalLeading; LONG tmAveCharWidth; LONG tmMaxCharWidth; LONG tmWeight; LONG tmOverhang; LONG tmDigitizedAspectX; LONG tmDigitizedAspectY; TCHAR tmFirstChar; TCHAR tmLastChar; TCHAR tmDefaultChar; TCHAR tmBreakChar; BYTE tmItalic; BYTE tmUnderlined; BYTE tmStruckOut; BYTE tmPitchAndFamily; BYTE tmCharSet; } TEXTMETRIC, *PTEXTMETRIC; typedef struct _ABC { int abcA; UINT abcB; int abcC; } ABC, *PABC; typedef struct tagRGBQUAD { BYTE rgbBlue; BYTE rgbGreen; BYTE rgbRed; BYTE rgbReserved; } RGBQUAD; typedef struct tagBITMAP { LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; typedef struct tagBITMAPINFOHEADER{ DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER; typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO; typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER, *PBITMAPFILEHEADER; typedef struct tagRGBTRIPLE { BYTE rgbtBlue; BYTE rgbtGreen; BYTE rgbtRed; } RGBTRIPLE; typedef struct tagBITMAPCOREHEADER { DWORD bcSize; WORD bcWidth; WORD bcHeight; WORD bcPlanes; WORD bcBitCount; } BITMAPCOREHEADER, *PBITMAPCOREHEADER; typedef struct _BITMAPCOREINFO { BITMAPCOREHEADER bmciHeader; RGBTRIPLE bmciColors[1]; } BITMAPCOREINFO, *PBITMAPCOREINFO, *LPBITMAPCOREINFO; typedef struct _OSVERSIONINFO { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; TCHAR szCSDVersion[128]; } OSVERSIONINFO, *LPOSVERSIONINFO; typedef struct _OSVERSIONINFOEX { DWORD dwOSVersionInfoSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformId; TCHAR szCSDVersion[128]; WORD wServicePackMajor; WORD wServicePackMinor; WORD wSuiteMask; BYTE wProductType; BYTE wReserved; } OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX; typedef enum { INTERNET_SCHEME_PARTIAL = -2, INTERNET_SCHEME_UNKNOWN = -1, INTERNET_SCHEME_DEFAULT = 0, INTERNET_SCHEME_FTP, INTERNET_SCHEME_GOPHER, INTERNET_SCHEME_HTTP, INTERNET_SCHEME_HTTPS, INTERNET_SCHEME_FILE, INTERNET_SCHEME_NEWS, INTERNET_SCHEME_MAILTO, INTERNET_SCHEME_SOCKS, INTERNET_SCHEME_JAVASCRIPT, INTERNET_SCHEME_VBSCRIPT, INTERNET_SCHEME_ABOUT, INTERNET_SCHEME_RES, INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP, INTERNET_SCHEME_LAST = INTERNET_SCHEME_VBSCRIPT } INTERNET_SCHEME, * LPINTERNET_SCHEME; typedef struct { DWORD dwStructSize; LPTSTR lpszScheme; DWORD dwSchemeLength; INTERNET_SCHEME nScheme; LPTSTR lpszHostName; DWORD dwHostNameLength; UINT nPort; LPTSTR lpszUserName; DWORD dwUserNameLength; LPTSTR lpszPassword; DWORD dwPasswordLength; LPTSTR lpszUrlPath; DWORD dwUrlPathLength; LPTSTR lpszExtraInfo; DWORD dwExtraInfoLength; } URL_COMPONENTS, *LPURL_COMPONENTS; typedef struct _COORD { SHORT X; SHORT Y; } COORD, *PCOORD; typedef struct _SMALL_RECT { SHORT Left; SHORT Top; SHORT Right; SHORT Bottom; } SMALL_RECT; typedef struct _CONSOLE_SCREEN_BUFFER_INFO { COORD dwSize; COORD dwCursorPosition; WORD wAttributes; SMALL_RECT srWindow; COORD dwMaximumWindowSize; } CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO; typedef struct _WINDOW_BUFFER_SIZE_RECORD { COORD dwSize; } WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD; typedef struct _MENU_EVENT_RECORD { UINT dwCommandId; } MENU_EVENT_RECORD, *PMENU_EVENT_RECORD; typedef struct _FOCUS_EVENT_RECORD { BOOL bSetFocus; } FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD; typedef struct _KEY_EVENT_RECORD { BOOL bKeyDown; WORD wRepeatCount; WORD wVirtualKeyCode; WORD wVirtualScanCode; union { WCHAR UnicodeChar; CHAR AsciiChar; } uChar; DWORD dwControlKeyState; } KEY_EVENT_RECORD, *PKEY_EVENT_RECORD; typedef struct _MOUSE_EVENT_RECORD { COORD dwMousePosition; DWORD dwButtonState; DWORD dwControlKeyState; DWORD dwEventFlags; } MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD; typedef struct _INPUT_RECORD { WORD EventType; union { KEY_EVENT_RECORD KeyEvent; MOUSE_EVENT_RECORD MouseEvent; WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent; MENU_EVENT_RECORD MenuEvent; FOCUS_EVENT_RECORD FocusEvent; } Event; } INPUT_RECORD, *PINPUT_RECORD; typedef GUID UUID; #define MAXPNAMELEN 32 #define MAX_JOYSTICKOEMVXDNAME 260 typedef struct { WORD wMid; WORD wPid; CHAR szPname[MAXPNAMELEN]; UINT wXmin; UINT wXmax; UINT wYmin; UINT wYmax; UINT wZmin; UINT wZmax; UINT wNumButtons; UINT wPeriodMin; UINT wPeriodMax; UINT wRmin; UINT wRmax; UINT wUmin; UINT wUmax; UINT wVmin; UINT wVmax; UINT wCaps; UINT wMaxAxes; UINT wNumAxes; UINT wMaxButtons; CHAR szRegKey[MAXPNAMELEN]; CHAR szOEMVxD[MAX_JOYSTICKOEMVXDNAME]; } JOYCAPS, *LPJOYCAPS; typedef struct joyinfoex_tag { DWORD dwSize; DWORD dwFlags; DWORD dwXpos; DWORD dwYpos; DWORD dwZpos; DWORD dwRpos; DWORD dwUpos; DWORD dwVpos; DWORD dwButtons; DWORD dwButtonNumber; DWORD dwPOV; DWORD dwReserved1; DWORD dwReserved2; } JOYINFOEX, *LPJOYINFOEX; typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad; DWORDLONG ullTotalPhys; DWORDLONG ullAvailPhys; DWORDLONG ullTotalPageFile; DWORDLONG ullAvailPageFile; DWORDLONG ullTotalVirtual; DWORDLONG ullAvailVirtual; DWORDLONG ullAvailExtendedVirtual; } MEMORYSTATUSEX, *LPMEMORYSTATUSEX; typedef struct tagCOPYDATASTRUCT { ULONG_PTR dwData; DWORD cbData; PVOID lpData; } COPYDATASTRUCT, *PCOPYDATASTRUCT; typedef LPVOID HINTERNET; typedef VOID (CALLBACK * INTERNET_STATUS_CALLBACK)( IN HINTERNET hInternet, IN DWORD_PTR dwContext, IN DWORD dwInternetStatus, IN LPVOID lpvStatusInformation OPTIONAL, IN DWORD dwStatusInformationLength ); typedef struct { DWORD dwStructSize; // size of this structure. Used in version check LPSTR lpszScheme; // pointer to scheme name DWORD dwSchemeLength; // length of scheme name INTERNET_SCHEME nScheme; // enumerated scheme type (if known) LPSTR lpszHostName; // pointer to host name DWORD dwHostNameLength; // length of host name UINT nPort; // converted port number LPSTR lpszUserName; // pointer to user name DWORD dwUserNameLength; // length of user name LPSTR lpszPassword; // pointer to password DWORD dwPasswordLength; // length of password LPSTR lpszUrlPath; // pointer to URL-path DWORD dwUrlPathLength; // length of URL-path LPSTR lpszExtraInfo; // pointer to extra information (e.g. ?foo or #foo) DWORD dwExtraInfoLength; // length of extra information } URL_COMPONENTSA, * LPURL_COMPONENTSA; struct hostent { char FAR * h_name; /* official name of host */ char FAR * FAR * h_aliases; /* alias list */ short h_addrtype; /* host address type */ short h_length; /* length of address */ char FAR * FAR * h_addr_list; /* list of addresses */ #define h_addr h_addr_list[0] /* address, for backward compat */ }; #define WHEEL_DELTA 120 #define ANSI_CHARSET 0 #define SYMBOL_CHARSET 1 #define NONANTIALIASED_QUALITY 0 #define ANTIALIASED_QUALITY 4 #define SPI_SETMOUSE 1 #define SPI_GETMOUSE 2 #define SC_SCREENSAVE 0 #define SC_CLOSE 1 #define SC_KEYMENU 2 #define SC_MONITORPOWER 3 #define SIZE_MINIMIZED 0 #define DM_PELSWIDTH 0 #define DM_PELSHEIGHT 0 #define DM_BITSPERPEL 0 #define DM_DISPLAYFREQUENCY 0 #define CDS_FULLSCREEN 0 #define FILE_TYPE_UNKNOWN 0 #define FILE_TYPE_DISK 1 #define HORZRES 1 #define VERTRES 2 #define VREFRESH 3 #define FILE_MAP_ALL_ACCESS 0 #define FILE_MAP_COPY 1 #define FILE_MAP_WRITE 2 #define FILE_MAP_READ 3 #define PBT_APMQUERYSUSPEND 0 #define BROADCAST_QUERY_DENY 0x424D5144 #define IDOK 0 #define IDCANCEL 1 #define IMAGE_ICON 0 #define MB_ICONEXCLAMATION 1 #define MB_OKCANCEL 2 #define MB_SYSTEMMODAL 3 #define MB_ICONERROR 4 #define LR_DEFAULTCOLOR 0x0000 #define LR_MONOCHROME 0x0001 #define LR_COLOR 0x0002 #define LR_COPYRETURNORG 0x0004 #define LR_COPYDELETEORG 0x0008 #define LR_LOADFROMFILE 0x0010 #define LR_LOADTRANSPARENT 0x0020 #define LR_DEFAULTSIZE 0x0040 #define LR_VGACOLOR 0x0080 #define LR_LOADMAP3DCOLORS 0x1000 #define LR_CREATEDIBSECTION 0x2000 #define LR_COPYFROMRESOURCE 0x4000 #define LR_SHARED 0x8000 #define MAKEINTRESOURCE( res ) ((ULONG_PTR) (USHORT) res) #define CREATE_NEW_CONSOLE 0x00000010 // registry #define REG_OPTION_NON_VOLATILE 0ul #define REG_CREATED_NEW_KEY 1 #define HKEY_CLASSES_ROOT (HKEY)0 // winsock #define MSG_NOSIGNAL 0 #define MSG_PEEK 2 // show styles #define SW_SHOWNORMAL 0 #define SW_SHOWDEFAULT 1 #define SW_SHOW 2 #define SW_MINIMIZE 3 #define SWP_NOZORDER 0x00000001 #define SWP_NOREDRAW 0x00000002 #define SWP_NOSIZE 0x00000004 #define SWP_NOMOVE 0x00000008 #define SWP_SHOWWINDOW 0x00000010 #define SWP_DRAWFRAME 0x00000020 // platform versions #define VER_PLATFORM_WIN32s 0 #define VER_PLATFORM_WIN32_WINDOWS 1 #define VER_PLATFORM_WIN32_NT 2 // windows messages #define WM_CHAR 1 #define WM_CLOSE 2 #define WM_DESTROY 3 #define WM_MOUSEMOVE 4 #define WM_LBUTTONUP 5 #define WM_LBUTTONDOWN 6 #define WM_RBUTTONUP 7 #define WM_RBUTTONDOWN 8 #define WM_SETFOCUS 9 #define WM_SETCURSOR 10 #define WM_MBUTTONDOWN 11 #define WM_MBUTTONUP 12 #define WM_LBUTTONDBLCLK 13 #define WM_RBUTTONDBLCLK 14 #define WM_MBUTTONDBLCLK 15 #define WM_MOUSEWHEEL 16 #define WM_KEYDOWN 17 #define WM_SYSKEYDOWN 18 #define WM_SYSCHAR 19 #define WM_KEYUP 20 #define WM_SYSKEYUP 21 #define WM_PAINT 23 #define WM_COPYDATA 24 #define WM_MOVE 25 #define WM_ACTIVATEAPP 26 #define WM_QUIT 27 #define WM_CREATE 28 #define WM_SYSCOMMAND 29 #define WM_SIZE 30 #define WM_SETTINGCHANGE 31 #define WM_USER 32 #define WM_POWERBROADCAST 33 #define WM_IME_CHAR 34 #define WM_IME_NOTIFY 35 #define WM_IME_STARTCOMPOSITION 36 #define WM_IME_COMPOSITION 37 #define WM_IME_ENDCOMPOSITION 38 #define WM_IME_SETCONTEXT 39 #define WM_INPUTLANGCHANGE 40 #define IMN_OPENCANDIDATE 0 #define IMN_SETOPENSTATUS 1 #define IMN_CHANGECANDIDATE 2 #define IMN_CLOSECANDIDATE 3 #define IMN_SETCONVERSIONMODE 4 #define IMN_SETSENTENCEMODE 5 #define IMN_CLOSESTATUSWINDOW 6 #define IMN_GUIDELINE 7 #define IMN_OPENSTATUSWINDOW 8 #define IMN_SETCANDIDATEPOS 9 #define IMN_SETCOMPOSITIONFONT 10 #define IMN_SETCOMPOSITIONWINDOW 11 #define IMN_SETSTATUSWINDOWPOS 12 #define ISC_SHOWUICOMPOSITIONWINDOW 0 #define ISC_SHOWUIGUIDELINE 0 #define ISC_SHOWUIALLCANDIDATEWINDOW 0 // message box #define MB_OK 0 #define MB_ICONINFORMATION 0 #define MB_TOPMOST 0 #define SEM_NOGPFAULTERRORBOX 2 // class styles #define CS_OWNDC 0 #define CS_DBLCLKS 0 #define CS_CLASSDC 0 #define CS_HREDRAW 0 #define CS_VREDRAW 0 #define IDC_ARROW 0 #define STD_INPUT_HANDLE ((DWORD)-10) #define STD_OUTPUT_HANDLE ((DWORD)-11) #define COLOR_GRAYTEXT 0 #define WHITE_BRUSH 0 #define SRCCOPY 0 /* Font Weights */ #define FW_DONTCARE 0 #define FW_THIN 100 #define FW_EXTRALIGHT 200 #define FW_LIGHT 300 #define FW_NORMAL 400 #define FW_MEDIUM 500 #define FW_SEMIBOLD 600 #define FW_BOLD 700 #define FW_EXTRABOLD 800 #define FW_HEAVY 900 #define CLIP_DEFAULT_PRECIS 0 #define DEFAULT_PITCH 0 #define TRANSPARENT 1 #define OUT_TT_PRECIS 4 #define BI_RGB 0L #define IMAGE_BITMAP 0 #define DT_NOPREFIX 0x00000000 #define DT_VCENTER 0x00000000 #define DT_CENTER 0x00000000 #define DT_LEFT 0x00000000 #define DT_RIGHT 0x00000000 #define DT_SINGLELINE 0x00000000 #define DIB_RGB_COLORS 0 // window styles #define WS_OVERLAPPEDWINDOW 0 #define WS_POPUP 0 #define WS_CLIPSIBLINGS 0 #define WS_THICKFRAME 0 #define WS_MAXIMIZEBOX 0 #define WS_VISIBLE 0 #define WS_EX_TOOLWINDOW 0 #define WS_EX_TOPMOST 0 #define WS_CAPTION 0 #define WS_SYSMENU 0 #define WS_CLIPCHILDREN 0 // cursors #define OCR_NORMAL 1 #define OCR_IBEAM 2 #define OCR_WAIT 3 #define OCR_CROSS 4 #define OCR_UP 5 #define OCR_SIZENWSE 6 #define OCR_SIZENESW 7 #define OCR_SIZEWE 8 #define OCR_SIZENS 9 #define OCR_SIZEALL 10 #define OCR_NO 11 #define OCR_HAND 12 // system metrics #define SM_CXFIXEDFRAME 1 #define SM_CYFIXEDFRAME 2 #define SM_CYSIZE 3 #define SM_CXSCREEN 4 #define SM_CYSCREEN 5 // window longs #define GWLP_WNDPROC (-4) #define GWLP_HINSTANCE (-6) #define GWLP_HWNDPARENT (-8) #define GWLP_USERDATA (-21) #define GWLP_ID (-12) #define GWL_WNDPROC 0 #define GWL_USERDATA 1 #define GWL_STYLE 2 #define GWL_EXSTYLE 3 #define GWL_MAX 4 #define HWND_TOP ((HWND)0) #define HWND_BOTTOM ((HWND)1) #define HWND_TOPMOST ((HWND)-1) #define HWND_NOTOPMOST ((HWND)-2) #define HWND_BROADCAST 0 // PeekMessage #define PM_NOREMOVE 0x0000 #define PM_REMOVE 0x0001 #define PM_NOYIELD 0x0002 #define MK_LBUTTON 0x0001 #define MK_RBUTTON 0x0002 #define MK_MBUTTON 0x0004 // File attributes #define FILE_ATTRIBUTE_COMPRESSED 0x00000800 #define QS_INPUT 0 #define QS_ALLEVENTS 5 #define KEY_EVENT 0 // sockets #define SO_KEEPALIVE 8 // Download status cases #define INTERNET_STATUS_RESOLVING_NAME 0 #define INTERNET_STATUS_NAME_RESOLVED 1 #define INTERNET_STATUS_CONNECTING_TO_SERVER 2 #define INTERNET_STATUS_CONNECTED_TO_SERVER 3 #define INTERNET_STATUS_SENDING_REQUEST 4 #define INTERNET_STATUS_REQUEST_SENT 5 #define INTERNET_STATUS_REQUEST_COMPLETE 6 #define INTERNET_STATUS_CLOSING_CONNECTION 7 #define INTERNET_STATUS_CONNECTION_CLOSED 8 #define INTERNET_STATUS_RECEIVING_RESPONSE 9 #define INTERNET_STATUS_RESPONSE_RECEIVED 10 #define INTERNET_STATUS_HANDLE_CLOSING 11 #define INTERNET_STATUS_HANDLE_CREATED 12 #define INTERNET_STATUS_INTERMEDIATE_RESPONSE 13 #define INTERNET_STATUS_REDIRECT 14 #define INTERNET_STATUS_STATE_CHANGE 15 #define INTERNET_FLAG_RELOAD 0x80000000 // retrieve the original item #define INTERNET_FLAG_RAW_DATA 0x40000000 // FTP/gopher find: receive the item as raw (structured) data #define INTERNET_FLAG_EXISTING_CONNECT 0x20000000 // FTP: use existing InternetConnect handle for server if possible #define INTERNET_FLAG_ASYNC 0x10000000 // this request is asynchronous (where supported) #define INTERNET_FLAG_PASSIVE 0x08000000 // used for FTP connections #define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000 // don't write this item to the cache #define INTERNET_FLAG_DONT_CACHE INTERNET_FLAG_NO_CACHE_WRITE #define INTERNET_FLAG_MAKE_PERSISTENT 0x02000000 // make this item persistent in cache #define INTERNET_FLAG_FROM_CACHE 0x01000000 // use offline semantics #define INTERNET_FLAG_OFFLINE INTERNET_FLAG_FROM_CACHE #define INTERNET_FLAG_SECURE 0x00800000 // use PCT/SSL if applicable (HTTP) #define INTERNET_FLAG_KEEP_CONNECTION 0x00400000 // use keep-alive semantics #define INTERNET_FLAG_NO_AUTO_REDIRECT 0x00200000 // don't handle redirections automatically #define INTERNET_FLAG_READ_PREFETCH 0x00100000 // do background read prefetch #define INTERNET_FLAG_NO_COOKIES 0x00080000 // no automatic cookie handling #define INTERNET_FLAG_NO_AUTH 0x00040000 // no automatic authentication handling #define INTERNET_FLAG_RESTRICTED_ZONE 0x00020000 // apply restricted zone policies for cookies, auth #define INTERNET_FLAG_CACHE_IF_NET_FAIL 0x00010000 // return cache file if net request fails #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 0x00008000 // ex: https:// to http:// #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 0x00004000 // ex: http:// to https:// #define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 0x00002000 // expired X509 Cert. #define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 0x00001000 // bad common name in X509 Cert. #define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration #define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net #define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy #define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS #define HTTP_QUERY_CONTENT_LENGTH 5 #define HTTP_QUERY_LAST_MODIFIED 11 #define HTTP_QUERY_STATUS_CODE 19 // special: part of status line #define HTTP_QUERY_RAW_HEADERS_CRLF 22 // special: all headers #define HTTP_QUERY_FLAG_NUMBER 0x20000000 #define HTTP_STATUS_OK 200 // request completed #define HTTP_STATUS_PARTIAL_CONTENT 206 // partial GET furfilled // Virtual Keys, Standard Set #define VK_LBUTTON 0x01 #define VK_RBUTTON 0x02 #define VK_CANCEL 0x03 #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */ #define VK_XBUTTON1 0x05 /* NOT contiguous with L & RBUTTON */ #define VK_XBUTTON2 0x06 /* NOT contiguous with L & RBUTTON */ #define VK_BACK 0x08 #define VK_TAB 0x09 #define VK_CLEAR 0x0C #define VK_RETURN 0x0D #define VK_SHIFT 0x10 #define VK_CONTROL 0x11 #define VK_MENU 0x12 #define VK_PAUSE 0x13 #define VK_CAPITAL 0x14 #define VK_KANA 0x15 #define VK_HANGEUL 0x15 /* old name - should be here for compatibility */ #define VK_HANGUL 0x15 #define VK_JUNJA 0x17 #define VK_FINAL 0x18 #define VK_HANJA 0x19 #define VK_KANJI 0x19 #define VK_ESCAPE 0x1B #define VK_CONVERT 0x1C #define VK_NONCONVERT 0x1D #define VK_ACCEPT 0x1E #define VK_MODECHANGE 0x1F #define VK_SPACE 0x20 #define VK_PRIOR 0x21 #define VK_NEXT 0x22 #define VK_END 0x23 #define VK_HOME 0x24 #define VK_LEFT 0x25 #define VK_UP 0x26 #define VK_RIGHT 0x27 #define VK_DOWN 0x28 #define VK_SELECT 0x29 #define VK_PRINT 0x2A #define VK_EXECUTE 0x2B #define VK_SNAPSHOT 0x2C #define VK_INSERT 0x2D #define VK_DELETE 0x2E #define VK_HELP 0x2F #define VK_LWIN 0x5B #define VK_RWIN 0x5C #define VK_APPS 0x5D #define VK_SLEEP 0x5F #define VK_NUMPAD0 0x60 #define VK_NUMPAD1 0x61 #define VK_NUMPAD2 0x62 #define VK_NUMPAD3 0x63 #define VK_NUMPAD4 0x64 #define VK_NUMPAD5 0x65 #define VK_NUMPAD6 0x66 #define VK_NUMPAD7 0x67 #define VK_NUMPAD8 0x68 #define VK_NUMPAD9 0x69 #define VK_MULTIPLY 0x6A #define VK_ADD 0x6B #define VK_SEPARATOR 0x6C #define VK_SUBTRACT 0x6D #define VK_DECIMAL 0x6E #define VK_DIVIDE 0x6F #define VK_F1 0x70 #define VK_F2 0x71 #define VK_F3 0x72 #define VK_F4 0x73 #define VK_F5 0x74 #define VK_F6 0x75 #define VK_F7 0x76 #define VK_F8 0x77 #define VK_F9 0x78 #define VK_F10 0x79 #define VK_F11 0x7A #define VK_F12 0x7B #define VK_F13 0x7C #define VK_F14 0x7D #define VK_F15 0x7E #define VK_F16 0x7F #define VK_F17 0x80 #define VK_F18 0x81 #define VK_F19 0x82 #define VK_F20 0x83 #define VK_F21 0x84 #define VK_F22 0x85 #define VK_F23 0x86 #define VK_F24 0x87 #define VK_NUMLOCK 0x90 #define VK_SCROLL 0x91 #define VK_OEM_NEC_EQUAL 0x92 // '=' key on numpad #define VK_OEM_FJ_JISHO 0x92 // 'Dictionary' key #define VK_OEM_FJ_MASSHOU 0x93 // 'Unregister word' key #define VK_OEM_FJ_TOUROKU 0x94 // 'Register word' key #define VK_OEM_FJ_LOYA 0x95 // 'Left OYAYUBI' key #define VK_OEM_FJ_ROYA 0x96 // 'Right OYAYUBI' key #define VK_LSHIFT 0xA0 #define VK_RSHIFT 0xA1 #define VK_LCONTROL 0xA2 #define VK_RCONTROL 0xA3 #define VK_LMENU 0xA4 #define VK_RMENU 0xA5 #define VK_BROWSER_BACK 0xA6 #define VK_BROWSER_FORWARD 0xA7 #define VK_BROWSER_REFRESH 0xA8 #define VK_BROWSER_STOP 0xA9 #define VK_BROWSER_SEARCH 0xAA #define VK_BROWSER_FAVORITES 0xAB #define VK_BROWSER_HOME 0xAC #define VK_VOLUME_MUTE 0xAD #define VK_VOLUME_DOWN 0xAE #define VK_VOLUME_UP 0xAF #define VK_MEDIA_NEXT_TRACK 0xB0 #define VK_MEDIA_PREV_TRACK 0xB1 #define VK_MEDIA_STOP 0xB2 #define VK_MEDIA_PLAY_PAUSE 0xB3 #define VK_LAUNCH_MAIL 0xB4 #define VK_LAUNCH_MEDIA_SELECT 0xB5 #define VK_LAUNCH_APP1 0xB6 #define VK_LAUNCH_APP2 0xB7 #define VK_OEM_1 0xBA // ';:' for US #define VK_OEM_PLUS 0xBB // '+' any country #define VK_OEM_COMMA 0xBC // ',' any country #define VK_OEM_MINUS 0xBD // '-' any country #define VK_OEM_PERIOD 0xBE // '.' any country #define VK_OEM_2 0xBF // '/?' for US #define VK_OEM_3 0xC0 // '`~' for US #define VK_OEM_4 0xDB // '[{' for US #define VK_OEM_5 0xDC // '\|' for US #define VK_OEM_6 0xDD // ']}' for US #define VK_OEM_7 0xDE // ''"' for US #define VK_OEM_8 0xDF #define VK_OEM_AX 0xE1 // 'AX' key on Japanese AX kbd #define VK_OEM_102 0xE2 // "<>" or "\|" on RT 102-key kbd. #define VK_ICO_HELP 0xE3 // Help key on ICO #define VK_ICO_00 0xE4 // 00 key on ICO #define VK_PROCESSKEY 0xE5 #define VK_ICO_CLEAR 0xE6 #define VK_PACKET 0xE7 #define VK_OEM_RESET 0xE9 #define VK_OEM_JUMP 0xEA #define VK_OEM_PA1 0xEB #define VK_OEM_PA2 0xEC #define VK_OEM_PA3 0xED #define VK_OEM_WSCTRL 0xEE #define VK_OEM_CUSEL 0xEF #define VK_OEM_ATTN 0xF0 #define VK_OEM_FINISH 0xF1 #define VK_OEM_COPY 0xF2 #define VK_OEM_AUTO 0xF3 #define VK_OEM_ENLW 0xF4 #define VK_OEM_BACKTAB 0xF5 #define VK_ATTN 0xF6 #define VK_CRSEL 0xF7 #define VK_EXSEL 0xF8 #define VK_EREOF 0xF9 #define VK_PLAY 0xFA #define VK_ZOOM 0xFB #define VK_NONAME 0xFC #define VK_PA1 0xFD #define VK_OEM_CLEAR 0xFE // Error codes used in the Secure CRT functions #define EINVAL 22 #ifdef getenv #undef getenv #endif #ifdef _getenv #undef _getenv #endif #define getenv XBX_getenv #define _getenv XBX_getenv FORCEINLINE char *XBX_getenv(const char *name) { return NULL; } #ifdef _putenv #undef _putenv #endif #define _putenv XBX_putenv FORCEINLINE int XBX_putenv(const char *name) { return -1; } #ifdef GetEnvironmentVariable #undef GetEnvironmentVariable #endif #define GetEnvironmentVariable XBX_GetEnvironmentVariable FORCEINLINE DWORD XBX_GetEnvironmentVariable( LPCTSTR lpName, LPTSTR lpBuffer, DWORD nSize ) { return 0; } #ifdef unlink #undef unlink #endif #define unlink XBX_unlink PLATFORM_INTERFACE int XBX_unlink( const char* filename ); #ifdef mkdir #undef mkdir #endif #ifdef _mkdir #undef _mkdir #endif #define mkdir XBX_mkdir #define _mkdir XBX_mkdir PLATFORM_INTERFACE int XBX_mkdir( const char *pszDir ); #ifdef getcwd #undef getcwd #endif #ifdef _getcwd #undef _getcwd #endif #define getcwd XBX_getcwd #define _getcwd XBX_getcwd PLATFORM_INTERFACE char *XBX_getcwd( char *buf, size_t size ); #ifdef GetCurrentDirectory #undef GetCurrentDirectory #endif #define GetCurrentDirectory XBX_GetCurrentDirectory PLATFORM_INTERFACE DWORD XBX_GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer ); #ifdef _access #undef _access #endif #define _access XBX_access PLATFORM_INTERFACE int XBX_access( const char *path, int mode ); #ifdef _chdir #undef _chdir #endif #define _chdir XBX_chdir FORCEINLINE int XBX_chdir( const char *dirname ) { return -1; } FORCEINLINE BOOL SetPriorityClass( HANDLE hProcess, DWORD dwPriorityClass ) { return FALSE; } PLATFORM_INTERFACE int MessageBox( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); #ifdef GetModuleFileName #undef GetModuleFileName #endif #define GetModuleFileName XBX_GetModuleFileName PLATFORM_INTERFACE DWORD XBX_GetModuleFileName( HMODULE hModule, LPTSTR lpFilename, DWORD nSize ); //FORCEINLINE int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ) { return WSASYSNOTREADY; } //FORCEINLINE int WSACleanup(void) { return WSANOTINITIALISED; } FORCEINLINE HRESULT CoInitialize( LPVOID pvReserved ) { return S_OK; } FORCEINLINE void CoUninitialize( void ) { } FORCEINLINE LRESULT DefWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { return 0L; } FORCEINLINE void PostQuitMessage(int nExitCode) { } FORCEINLINE HANDLE GetStdHandle( DWORD ) { return 0; } FORCEINLINE BOOL GetConsoleScreenBufferInfo( HANDLE, PCONSOLE_SCREEN_BUFFER_INFO ) { return false; } FORCEINLINE COORD GetLargestConsoleWindowSize( HANDLE ) { COORD c = { 0, 0 }; return c; } FORCEINLINE BOOL SetConsoleWindowInfo( HANDLE, BOOL, SMALL_RECT* ) { return false; } FORCEINLINE BOOL SetConsoleScreenBufferSize( HANDLE, COORD ) { return false; } FORCEINLINE BOOL ReadConsoleOutputCharacter( HANDLE, LPTSTR, DWORD, COORD, LPDWORD ) { return false; } FORCEINLINE BOOL WriteConsoleInput( HANDLE, CONST INPUT_RECORD*, DWORD, LPDWORD ) { return false; } FORCEINLINE HWND GetDesktopWindow(VOID) { return (HWND)0; } FORCEINLINE int GetWindowText( HWND, LPTSTR, int ) { return 0; } FORCEINLINE UINT RegisterWindowMessage(LPCTSTR lpString) { return 0xC000; } FORCEINLINE HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName) { return NULL; } FORCEINLINE BOOL EnumWindows(WNDENUMPROC lpEnumFunc, LPARAM lParam) { return FALSE; } FORCEINLINE BOOL PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { return FALSE; } FORCEINLINE BOOL SystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni) { return FALSE; } FORCEINLINE BOOL SetForegroundWindow(HWND hWnd) { return TRUE; } FORCEINLINE HDC BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint) { return NULL; } FORCEINLINE BOOL EndPaint(HWND hWnd, CONST PAINTSTRUCT *lpPaint) { return TRUE; } FORCEINLINE BOOL AdjustWindowRectEx(LPRECT lpRect, DWORD dwStyle, BOOL bMenu, DWORD dwExStyle) { return TRUE; } FORCEINLINE LONG ChangeDisplaySettings(LPDEVMODE lpDevMode, DWORD dwflags) { return DISP_CHANGE_SUCCESSFUL; } FORCEINLINE DWORD GetFileType(HANDLE hFile) { return FILE_TYPE_DISK; } FORCEINLINE BOOL FileTimeToDosDateTime(const FILETIME* lpFileTime, LPWORD lpFatDate, LPWORD lpFatTime) { *lpFatDate = 0; *lpFatTime = 0; return TRUE; } FORCEINLINE BOOL DosDateTimeToFileTime(const WORD wFatDate, const WORD wFatTime, LPFILETIME lpFileTime ) { lpFileTime->dwHighDateTime = 0; lpFileTime->dwLowDateTime = 0; return TRUE; } FORCEINLINE BOOL SetViewportOrgEx( HDC, int, int, LPPOINT ) { return false; } FORCEINLINE BOOL MoveWindow( HWND, int, int, int, int, BOOL ) { return false; } FORCEINLINE int ShowCursor( BOOL ) { return 0; } FORCEINLINE HFONT CreateFontA( int, int, int, int, int, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPCSTR) { return 0; } FORCEINLINE int DrawText( HDC, LPCTSTR, int, LPRECT, UINT ) { return 0; } FORCEINLINE int SetBkMode( HDC, int ) { return 0; } FORCEINLINE COLORREF SetTextColor( HDC, COLORREF col ) { return col; } FORCEINLINE HBRUSH CreateSolidBrush( COLORREF ) { return 0; } FORCEINLINE BOOL Rectangle( HDC, int, int, int, int ) { return false; } FORCEINLINE HANDLE LoadImage( HINSTANCE, LPCSTR, UINT, int, int, UINT) { return 0; } FORCEINLINE HANDLE LoadImageA( HINSTANCE, LPCSTR, UINT, int, int, UINT) { return 0; } FORCEINLINE HICON LoadIcon( HINSTANCE hInstance, ULONG_PTR lpIconName) { return 0; } FORCEINLINE COLORREF SetPixel( HDC, int, int, COLORREF col ) { return col; } FORCEINLINE BOOL BitBlt( HDC, int, int, int, int, HDC, int, int, DWORD ) { return false; } FORCEINLINE HGDIOBJ GetStockObject( int ) { return 0; } FORCEINLINE int GetObject( HGDIOBJ, int, LPVOID ) { return 0; } FORCEINLINE int GetDIBits( HDC, HBITMAP, UINT, UINT, LPVOID, LPBITMAPINFO, UINT ) { return 0; } FORCEINLINE HDC GetDC(HWND hWnd) { return (HDC)0x12345678; } FORCEINLINE void ReleaseDC(HWND hWnd, HDC hDC) { } FORCEINLINE HDC CreateCompatibleDC( HDC ) { return 0; } FORCEINLINE HBITMAP CreateCompatibleBitmap( HDC, int, int ) { return 0; } FORCEINLINE HBITMAP CreateDIBSection( HDC, CONST BITMAPINFO *, UINT, VOID **ppBits, HANDLE, DWORD) { ppBits = NULL; return 0; } FORCEINLINE BOOL InvalidateRect( HWND, const RECT*, bool ) { return false; } FORCEINLINE UINT joyGetDevCaps( UINT uJoyID, JOYCAPS* pjc, UINT cbjc) { return 0; } FORCEINLINE UINT joyGetPosEx( UINT uJoyID, LPJOYINFOEX pji) { return 0; } FORCEINLINE UINT joyGetNumDevs(void) { return 0; } FORCEINLINE HKL GetKeyboardLayout( DWORD ) { return NULL; } FORCEINLINE HKL LoadKeyboardLayout( LPCTSTR, UINT ) { return NULL; } FORCEINLINE UINT MapVirtualKeyEx( UINT, UINT, HKL ) { return 0; } FORCEINLINE SHORT GetKeyState( int nVirtKey ) { return 0; } FORCEINLINE BOOL PeekMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) { return FALSE; } FORCEINLINE BOOL TranslateMessage(CONST MSG *lpMsg) { return FALSE; } FORCEINLINE BOOL DispatchMessage(CONST MSG *lpMsg) { return FALSE; } FORCEINLINE BOOL UpdateWindow(HWND hWnd) { return FALSE; } FORCEINLINE LONG RegOpenKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult ) { return -1; } FORCEINLINE LONG RegQueryValueEx( HKEY hKey, LPCTSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData ) { return -1; } FORCEINLINE LONG RegCreateKeyEx( HKEY hKey, LPCTSTR lpSubKey, DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition ) { return -1; } FORCEINLINE LONG RegSetValueEx( HKEY hKey, LPCTSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE* lpData, DWORD cbData ) { return -1; } FORCEINLINE LONG RegDeleteValue( HKEY hKey, LPCTSTR lpValueName ) { return -1; } FORCEINLINE LONG RegCloseKey( HKEY hKey ) { return -1; } FORCEINLINE BOOL ClientToScreen( HWND hwnd, LPPOINT lpPoint ) { lpPoint->x = 0; lpPoint->y = 0; return TRUE; } FORCEINLINE BOOL SetCursorPos( int x, int y ) { return FALSE; } FORCEINLINE BOOL UnregisterClass( LPCTSTR lpClassNAme, HINSTANCE hInstance ) { return TRUE; } FORCEINLINE BOOL UnregisterClassW( LPCWSTR lpClassNAme, HINSTANCE hInstance ) { return TRUE; } FORCEINLINE HCURSOR LoadCursor( HINSTANCE, LPCTSTR lpCursorName ) { return NULL; } FORCEINLINE HWND GetParent( HWND hWnd ) { return NULL; } FORCEINLINE BOOL EnumChildWindows( HWND hWndParent, WNDENUMPROC lpEnumFunc, LPARAM lParam ) { return FALSE; } FORCEINLINE BOOL IsIconic( HWND hWnd ) { return FALSE; } FORCEINLINE BOOL DestroyCursor( HCURSOR hCursor ) { return TRUE; } FORCEINLINE HCURSOR LoadCursorFromFile( LPCTSTR lpFileName ) { return NULL; } FORCEINLINE HCURSOR SetCursor( HCURSOR hCursor ) { return NULL; } FORCEINLINE BOOL GetCursorPos( LPPOINT lpPoint ) { return TRUE; } FORCEINLINE BOOL ScreenToClient( HWND hWnd, LPPOINT lpPoint ) { return TRUE; } FORCEINLINE HWND SetCapture( HWND hWnd ) { return NULL; } FORCEINLINE BOOL ReleaseCapture() { return TRUE; } FORCEINLINE BOOL DeleteObject( HGDIOBJ hObject ) { return TRUE; } FORCEINLINE BOOL DeleteDC( HDC hdc ) { return TRUE; } FORCEINLINE HGDIOBJ SelectObject( HDC hdc, HGDIOBJ hgdiobj ) { return NULL; } FORCEINLINE BOOL GetComputerName( LPTSTR lpBuffer, LPDWORD nSize ) { return FALSE; } FORCEINLINE BOOL GetUserName( LPTSTR lpBuffer, LPDWORD nSize ) { return FALSE; } FORCEINLINE UINT SetErrorMode( UINT mode ) { return 0; } FORCEINLINE MCIERROR mciGetDeviceID( LPCTSTR ) { return 0; } FORCEINLINE MCIERROR mciSendString( LPCTSTR lpszCommand, LPTSTR lpszReturnString, UINT cchReturn, HANDLE hwndCallback ) { return 0; } FORCEINLINE MCIERROR mciSendCommand( MCIDEVICEID, UINT, DWORD, DWORD ) { return (UINT)MCIERR_DRIVER; } FORCEINLINE BOOL mciGetErrorString( MCIERROR, LPTSTR, UINT ) { return false; }; FORCEINLINE int UuidCreate( UUID *newId ) { return 0; }; FORCEINLINE HANDLE CreateFileMapping( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCTSTR ) { return NULL; } FORCEINLINE LPVOID MapViewOfFile( HANDLE, DWORD, DWORD, DWORD, SIZE_T ) { return NULL; } FORCEINLINE BOOL UnmapViewOfFile( LPCVOID ) { return false; } FORCEINLINE BOOL GetVersionEx( LPOSVERSIONINFO lpVersionInfo ) { lpVersionInfo->dwPlatformId = VER_PLATFORM_WIN32_NT; return true; } FORCEINLINE BOOL GlobalMemoryStatusEx( LPMEMORYSTATUSEX lpBuffer ) { return false; } FORCEINLINE BOOL TerminateThread( HANDLE hThread, DWORD dwExitCode ) { return false; } FORCEINLINE BOOL HttpQueryInfo( HINTERNET hRequest, DWORD dwInfoLevel, LPVOID lpBuffer, LPDWORD lpdwBufferLength, LPDWORD lpdwIndex ) { return false; } FORCEINLINE struct hostent FAR * _stdcall FAR gethostbyname( const char FAR * name ) { return NULL; } FORCEINLINE BOOL InternetReadFile(HINTERNET hFile, LPVOID lpBuffer, DWORD dwNumberOfBytesToRead, LPDWORD lpdwNumberOfBytesRead ) { return false; } FORCEINLINE BOOL InternetCloseHandle( HINTERNET hInternet ) { return false; } FORCEINLINE BOOL InternetCrackUrl( LPCSTR lpszUrl, DWORD dwUrlLength, DWORD dwFlags, LPURL_COMPONENTS lpUrlComponents ) { return false; } FORCEINLINE HINTERNET InternetOpen( LPCSTR lpszAgent, DWORD dwAccessType, LPCSTR lpszProxy OPTIONAL, LPCSTR lpszProxyBypass OPTIONAL, DWORD dwFlags ) { return 0; } FORCEINLINE INTERNET_STATUS_CALLBACK InternetSetStatusCallback( HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnInternetCallback ) { return NULL; } FORCEINLINE HINTERNET InternetOpenUrl( HINTERNET hInternet, LPCSTR lpszUrl,LPCSTR lpszHeaders OPTIONAL, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext ) { return 0; } FORCEINLINE BOOL TerminateProcess( HANDLE, UINT ) { return false; } FORCEINLINE DWORD MsgWaitForMultipleObjects( DWORD, CONST HANDLE*, BOOL, DWORD, DWORD ) { return 0; } FORCEINLINE int gethostname( char *dest, int len ) { strncpy( dest, "localhost", len ); return 0; } FORCEINLINE BOOL GetProcessTimes( HANDLE, LPFILETIME ft1, LPFILETIME ft2, LPFILETIME ft3, LPFILETIME ft4 ) { return false; } //FORCEINLINE time_t Time(time_t *today) { ULARGE_INTEGER ul; GetSystemTimeAsFileTime( (FILETIME*)&ul ); if(today) *today=ul.QuadPart; return ul.QuadPart; } FORCEINLINE long Time(long *today) { ULARGE_INTEGER ul; GetSystemTimeAsFileTime( (FILETIME*)&ul ); if(today) *today=ul.QuadPart; return ul.QuadPart; } FORCEINLINE BOOL CreateProcess( LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ) { return false; } PLATFORM_INTERFACE DWORD g_dwProcessAffinityMask; FORCEINLINE bool GetProcessAffinityMask( HANDLE hProcess, DWORD *lpProcessAffinityMask, DWORD *lpSystemAffinityMask ) { *lpProcessAffinityMask = g_dwProcessAffinityMask; *lpSystemAffinityMask = 0x01; return true; } FORCEINLINE bool SetProcessAffinityMask( HANDLE hProcess, DWORD dwProcessAffinityMask ) { if ( dwProcessAffinityMask == 0 ) { // invalid return false; } g_dwProcessAffinityMask = dwProcessAffinityMask; return true; } FORCEINLINE DWORD_PTR SetThreadAffinityMask( HANDLE hThread, DWORD_PTR dwThreadAffinityMask ) { if ( dwThreadAffinityMask == 0 ) { // invalid return 0; } // must select a specific processor, even if affinity mask specifies multiple. // bit mask to enum will choose last valid processor DWORD dwProcessor = 0; while ( dwThreadAffinityMask >>= 1 ) dwProcessor++; dwProcessor = XSetThreadProcessor( hThread, dwProcessor ); if ( dwProcessor == (DWORD)-1 ) { // failed return 0; } // back to bit mask return ( 1<