122 changed files with 1520 additions and 1049 deletions
@ -0,0 +1,13 @@
|
||||
SET(CROSS_PREFIX "/usr" CACHE STRING "crosstool-NG prefix") |
||||
|
||||
SET(CMAKE_SYSTEM_NAME Windows) |
||||
|
||||
SET(CMAKE_C_COMPILER "${CROSS_PREFIX}/i686-w64-mingw32/bin/i686-w64-mingw32-gcc") |
||||
SET(CMAKE_CXX_COMPILER "${CROSS_PREFIX}/i686-w64-mingw32/bin/i686-w64-mingw32-g++") |
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/i686-w64-mingw32" "${CROSS_PREFIX}/i686-w64-mingw32/i686-w64-mingw32") |
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) |
||||
|
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
||||
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
||||
@ -0,0 +1,51 @@
|
||||
#pragma once |
||||
|
||||
namespace dvl { |
||||
|
||||
//
|
||||
// COM
|
||||
//
|
||||
#define DECLARE_INTERFACE_(name, base) struct name : public base |
||||
#define THIS_ |
||||
#define THIS |
||||
#define PURE = 0 |
||||
|
||||
#define CS_HREDRAW 0x0001 |
||||
#define CS_VREDRAW 0x0002 |
||||
|
||||
#define IDC_ARROW (LPCSTR)0x1 // Dummy value
|
||||
|
||||
#define CSIDL_STARTMENU 0x000b |
||||
|
||||
#define SW_HIDE 0 |
||||
#define SW_SHOWNORMAL 1 |
||||
|
||||
#define BLACK_BRUSH 4 |
||||
|
||||
#define LR_DEFAULTCOLOR 0x0000 |
||||
|
||||
#define IMAGE_ICON 1 |
||||
|
||||
#define SM_CXSCREEN 0 |
||||
#define SM_CYSCREEN 1 |
||||
|
||||
#define GW_HWNDNEXT 2 |
||||
|
||||
#define STDMETHOD(name) STDMETHOD_(HRESULT, name) |
||||
#define STDMETHOD_(type, name) virtual WINAPI type name |
||||
|
||||
typedef void *REFIID; |
||||
|
||||
struct IUnknown { |
||||
// clang-format off
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID, LPVOID *) PURE; |
||||
STDMETHOD_(ULONG, AddRef)(THIS) PURE; |
||||
STDMETHOD_(ULONG, Release)(THIS) PURE; |
||||
// clang-format on
|
||||
}; |
||||
|
||||
#define MAKE_HRESULT(sev, fac, code) ((HRESULT)(((uint32_t)(sev) << 31) | ((uint32_t)(fac) << 16) | ((uint32_t)(code)))) |
||||
#define E_FAIL ((HRESULT)0x80004005L) |
||||
#define S_OK ((HRESULT)0) |
||||
|
||||
} |
||||
@ -0,0 +1,321 @@
|
||||
#pragma once |
||||
|
||||
// Basic types
|
||||
#define __int8 char |
||||
#define __int16 short |
||||
#define __int32 int |
||||
#define __int64 long long |
||||
|
||||
#define INVALID_HANDLE_VALUE ((HANDLE)-1) |
||||
#define INVALID_HANDLE ((HANDLE)-1) |
||||
#define HFILE_ERROR ((HFILE)-1) |
||||
|
||||
//
|
||||
// Intrinsics
|
||||
//
|
||||
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff)) |
||||
#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff)) |
||||
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff)) |
||||
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff)) |
||||
|
||||
#define InterlockedIncrement(x) __sync_add_and_fetch(x, 1) |
||||
|
||||
#define INFINITE 0xFFFFFFFF |
||||
|
||||
#define MAKEFOURCC(x, y, z, w) \ |
||||
(((uint32_t)((uint8_t)x)) \
|
||||
| (((uint32_t)((uint8_t)y)) << 8) \
|
||||
| (((uint32_t)((uint8_t)z)) << 16) \
|
||||
| (((uint32_t)((uint8_t)w)) << 24)) |
||||
|
||||
#define WINUSERAPI |
||||
|
||||
#define FOURCC_RIFF MAKEFOURCC('W', 'A', 'V', 'E') |
||||
|
||||
#define ERROR_ALREADY_EXISTS 183 |
||||
|
||||
#define CreateEvent CreateEventA |
||||
|
||||
#define PM_NOREMOVE 0x0000 |
||||
#define PM_REMOVE 0x0001 |
||||
|
||||
#define WM_QUIT 0x0012 |
||||
|
||||
#define PeekMessage PeekMessageA |
||||
#define DispatchMessage DispatchMessageA |
||||
#define PostMessage PostMessageA |
||||
#define CreateWindowEx CreateWindowExA |
||||
#define FindWindow FindWindowA |
||||
#define RegisterClassEx RegisterClassExA |
||||
#define LoadCursor LoadCursorA |
||||
#define GetUserName GetUserNameA |
||||
#define LoadIcon LoadIconA |
||||
#define LoadImage LoadImageA |
||||
#define SHGetPathFromIDList SHGetPathFromIDListA |
||||
#define ShellExecute ShellExecuteA |
||||
#define GetModuleHandle GetModuleHandleA |
||||
|
||||
#define THREAD_BASE_PRIORITY_MAX 2 |
||||
#define THREAD_PRIORITY_NORMAL 0 |
||||
#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX |
||||
#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST - 1) |
||||
|
||||
#define TextOut TextOutA |
||||
|
||||
#define HORZRES 8 |
||||
#define VERTRES 10 |
||||
#define NUMRESERVED 106 |
||||
|
||||
#define _snprintf snprintf |
||||
#define _vsnprintf vsnprintf |
||||
#define wsprintf wsprintfA |
||||
#define wvsprintf wvsprintfA |
||||
|
||||
//
|
||||
// File I/O
|
||||
//
|
||||
|
||||
#define FILE_BEGIN 0 |
||||
#define FILE_CURRENT 1 |
||||
#define FILE_END 2 |
||||
#define FILE_FLAG_WRITE_THROUGH 0x80000000 |
||||
#define CREATE_ALWAYS 2 |
||||
#define GENERIC_READ 0x80000000L |
||||
#define GENERIC_WRITE 0x40000000L |
||||
#define OPEN_EXISTING 3 |
||||
#define OPEN_ALWAYS 4 |
||||
#define ERROR_FILE_NOT_FOUND 2 |
||||
#define FILE_ATTRIBUTE_NORMAL 128 |
||||
#define FILE_ATTRIBUTE_HIDDEN 0x00000002 |
||||
#define FILE_ATTRIBUTE_SYSTEM 0x00000004 |
||||
#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 |
||||
#define FILE_SHARE_READ 1 |
||||
|
||||
#define OFS_MAXPATHNAME DVL_OFS_MAXPATHNAME |
||||
#define MAX_PATH DVL_MAX_PATH |
||||
|
||||
//
|
||||
// Calculate the byte offset of a field in a structure of type type.
|
||||
//
|
||||
|
||||
#define FIELD_OFFSET(type, field) ((LONG)(INT_PTR) & (((type *)0)->field)) |
||||
#define IMAGE_FIRST_SECTION(ntheader) ((PIMAGE_SECTION_HEADER)((UINT_PTR)ntheader + FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader)) |
||||
|
||||
#define IMAGE_NT_SIGNATURE 0x00004550 // PE00
|
||||
#define IMAGE_DOS_SIGNATURE 0x5A4D |
||||
#define VER_PLATFORM_WIN32_NT 2 |
||||
|
||||
#define GetVersionEx GetVersionExA |
||||
|
||||
#define lstrcpyn lstrcpynA |
||||
|
||||
#define SEC_COMMIT 0x8000000 |
||||
#define PAGE_READWRITE 0x04 |
||||
|
||||
#define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS |
||||
#define SECTION_QUERY 0x0001 |
||||
#define SECTION_MAP_WRITE 0x0002 |
||||
#define SECTION_MAP_READ 0x0004 |
||||
#define SECTION_MAP_EXECUTE 0x0008 |
||||
#define SECTION_EXTEND_SIZE 0x0010 |
||||
#define SECTION_MAP_EXECUTE_EXPLICIT 0x0020 |
||||
#define STANDARD_RIGHTS_REQUIRED 0x000F0000 |
||||
|
||||
#define SECTION_ALL_ACCESS \ |
||||
(STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE) |
||||
|
||||
#define CREATE_NEW_PROCESS_GROUP 0x200 |
||||
|
||||
#define CreateProcess CreateProcessA |
||||
#define CreateFileMapping CreateFileMappingA |
||||
#define GetPrivateProfileString GetPrivateProfileStringA |
||||
#define MessageBox MessageBoxA |
||||
|
||||
#define HKEY_CURRENT_USER 1 |
||||
#define KEY_READ 0x20019 |
||||
#define KEY_WRITE 0x20006 |
||||
#define REG_SZ 1 |
||||
|
||||
#define RegOpenKeyEx RegOpenKeyExA |
||||
#define RegQueryValueEx RegQueryValueExA |
||||
#define RegSetValueEx RegSetValueExA |
||||
#define RegCloseKey RegCloseKeyA |
||||
#define DefWindowProc DefWindowProcA |
||||
#define GetWindowLong GetWindowLongA |
||||
#define SetWindowLong SetWindowLongA |
||||
|
||||
#define GetFileAttributes GetFileAttributesA |
||||
#define SetFileAttributes SetFileAttributesA |
||||
#define FindFirstFile FindFirstFileA |
||||
#define FindNextFile FindNextFileA |
||||
#define CreateFile CreateFileA |
||||
#define GetWindowsDirectory GetWindowsDirectoryA |
||||
#define GetLogicalDriveStrings GetLogicalDriveStringsA |
||||
#define GetDriveType GetDriveTypeA |
||||
#define GetDiskFreeSpace GetDiskFreeSpaceA |
||||
#define GetModuleFileName GetModuleFileNameA |
||||
#define GetComputerName GetComputerNameA |
||||
#define GetFileVersionInfoSize GetFileVersionInfoSizeA |
||||
#define GetFileVersionInfo GetFileVersionInfoA |
||||
#define VerQueryValue VerQueryValueA |
||||
#define DeleteFile DeleteFileA |
||||
#define CopyFile CopyFileA |
||||
|
||||
#define GWL_STYLE (-16) |
||||
|
||||
#define WS_POPUP 0x80000000L |
||||
#define WS_SYSMENU 0x00080000L |
||||
|
||||
#define DRIVE_CDROM 5 |
||||
|
||||
//
|
||||
// Events
|
||||
//
|
||||
#define WM_MOUSEFIRST 0x0200 |
||||
#define WM_MOUSEMOVE 0x0200 |
||||
#define WM_LBUTTONDOWN 0x0201 |
||||
#define WM_LBUTTONUP 0x0202 |
||||
#define WM_RBUTTONDOWN 0x0204 |
||||
#define WM_RBUTTONUP 0x0205 |
||||
|
||||
#define WM_KEYFIRST 0x0100 |
||||
#define WM_KEYDOWN 0x0100 |
||||
#define WM_KEYUP 0x0101 |
||||
#define WM_SYSKEYDOWN 0x0104 |
||||
|
||||
#define WM_INITDIALOG 0x0110 |
||||
#define WM_COMMAND 0x0111 |
||||
#define WM_SYSCOMMAND 0x0112 |
||||
|
||||
#define WM_CHAR 0x0102 |
||||
#define WM_CAPTURECHANGED 0x0215 |
||||
|
||||
#define WM_CREATE 0x0001 |
||||
#define WM_DESTROY 0x0002 |
||||
#define WM_PAINT 0x000F |
||||
#define WM_CLOSE 0x0010 |
||||
#define WM_QUERYENDSESSION 0x0011 |
||||
#define WM_ERASEBKGND 0x0014 |
||||
#define WM_ACTIVATEAPP 0x001C |
||||
#define WM_QUERYNEWPALETTE 0x030F |
||||
#define WM_PALETTECHANGED 0x0311 |
||||
|
||||
#define SC_CLOSE 0xF060 |
||||
|
||||
#define VK_RETURN 0x0D |
||||
#define VK_BACK 0x08 |
||||
#define VK_SHIFT 0x10 |
||||
#define VK_ESCAPE 0x1B |
||||
#define VK_SPACE 0x20 |
||||
#define VK_LEFT 0x25 |
||||
#define VK_UP 0x26 |
||||
#define VK_RIGHT 0x27 |
||||
#define VK_DOWN 0x28 |
||||
|
||||
#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_TAB 0x09 |
||||
#define VK_PAUSE 0x13 |
||||
#define VK_PRIOR 0x21 |
||||
#define VK_NEXT 0x22 |
||||
#define VK_SNAPSHOT 0x2C |
||||
|
||||
#define VK_OEM_1 0xBA |
||||
#define VK_OEM_PLUS 0xBB |
||||
#define VK_OEM_COMMA 0xBC |
||||
#define VK_OEM_MINUS 0xBD |
||||
#define VK_OEM_PERIOD 0xBE |
||||
#define VK_OEM_2 0xBF |
||||
#define VK_OEM_3 0xC0 |
||||
#define VK_OEM_4 0xDB |
||||
#define VK_OEM_5 0xDC |
||||
#define VK_OEM_6 0xDD |
||||
#define VK_OEM_7 0xDE |
||||
//#define VK_OEM_8 0xDF
|
||||
//#define VK_OEM_102 0xE2
|
||||
|
||||
#define MK_SHIFT 0x0004 |
||||
#define MK_LBUTTON 0x0001 |
||||
#define MK_RBUTTON 0x0002 |
||||
|
||||
#define MB_TASKMODAL 0x00002000L |
||||
#define MB_ICONHAND 0x00000010L |
||||
#define MB_ICONEXCLAMATION 0x00000030L |
||||
|
||||
#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200 |
||||
#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800 |
||||
#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000 |
||||
|
||||
#define STATUS_BREAKPOINT ((DWORD)0x80000003L) |
||||
#define STATUS_GUARD_PAGE_VIOLATION ((DWORD)0x80000001L) |
||||
#define STATUS_FLOAT_DIVIDE_BY_ZERO ((DWORD)0xC000008EL) |
||||
#define STATUS_SINGLE_STEP ((DWORD)0x80000004L) |
||||
#define STATUS_ARRAY_BOUNDS_EXCEEDED ((DWORD)0xC000008CL) |
||||
#define STATUS_ACCESS_VIOLATION ((DWORD)0xC0000005L) |
||||
#define STATUS_IN_PAGE_ERROR ((DWORD)0xC0000006L) |
||||
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL) |
||||
#define STATUS_DATATYPE_MISALIGNMENT ((DWORD)0x80000002L) |
||||
#define STATUS_FLOAT_DENORMAL_OPERAND ((DWORD)0xC000008DL) |
||||
#define STATUS_NONCONTINUABLE_EXCEPTION ((DWORD)0xC0000025L) |
||||
#define STATUS_INTEGER_DIVIDE_BY_ZERO ((DWORD)0xC0000094L) |
||||
#define STATUS_INVALID_HANDLE ((DWORD)0xC0000008L) |
||||
#define STATUS_FLOAT_OVERFLOW ((DWORD)0xC0000091L) |
||||
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL) |
||||
#define STATUS_GUARD_PAGE_VIOLATION ((DWORD)0x80000001L) |
||||
#define STATUS_ILLEGAL_INSTRUCTION ((DWORD)0xC000001DL) |
||||
#define STATUS_INTEGER_OVERFLOW ((DWORD)0xC0000095L) |
||||
#define STATUS_PRIVILEGED_INSTRUCTION ((DWORD)0xC0000096L) |
||||
#define STATUS_FLOAT_UNDERFLOW ((DWORD)0xC0000093L) |
||||
#define STATUS_FLOAT_INEXACT_RESULT ((DWORD)0xC000008FL) |
||||
#define STATUS_FLOAT_INVALID_OPERATION ((DWORD)0xC0000090L) |
||||
#define STATUS_FLOAT_STACK_CHECK ((DWORD)0xC0000092L) |
||||
#define STATUS_INVALID_DISPOSITION ((DWORD)0xC0000026L) |
||||
#define STATUS_STACK_OVERFLOW ((DWORD)0xC00000FDL) |
||||
|
||||
#define EXCEPTION_CONTINUE_SEARCH 0x0 |
||||
#define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION |
||||
#define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT |
||||
#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION |
||||
#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO |
||||
#define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP |
||||
#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED |
||||
#define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR |
||||
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION |
||||
#define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT |
||||
#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND |
||||
#define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION |
||||
#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO |
||||
#define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE |
||||
#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW |
||||
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION |
||||
#define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION |
||||
#define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION |
||||
#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW |
||||
#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION |
||||
#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW |
||||
#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT |
||||
#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION |
||||
#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK |
||||
#define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION |
||||
#define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW |
||||
|
||||
#define HWND_NOTOPMOST (HWND) - 2 |
||||
#define HWND_TOP (HWND)0 |
||||
|
||||
#define SWP_NOACTIVATE 0x0010 |
||||
#define SWP_NOMOVE 0x0002 |
||||
#define SWP_NOSIZE 0x0004 |
||||
#define SWP_NOZORDER 0x0001 |
||||
|
||||
#define OF_EXIST 1 |
||||
@ -0,0 +1,671 @@
|
||||
#pragma once |
||||
|
||||
namespace dvl { |
||||
|
||||
static constexpr auto DVL_OFS_MAXPATHNAME = 128; |
||||
static constexpr auto DVL_MAX_PATH = 260; |
||||
|
||||
typedef char CHAR; |
||||
typedef uint16_t SHORT; |
||||
typedef int32_t LONG; |
||||
typedef uint8_t BOOLEAN; |
||||
|
||||
typedef LONG *PLONG; |
||||
typedef uint32_t ULONG; |
||||
typedef ULONG *PULONG; |
||||
typedef unsigned short USHORT; |
||||
typedef USHORT *PUSHORT; |
||||
typedef unsigned char UCHAR; |
||||
typedef UCHAR *PUCHAR; |
||||
typedef char *PSZ; |
||||
|
||||
typedef uint32_t DWORD; |
||||
typedef int BOOL, WINBOOL; |
||||
typedef unsigned char BYTE; |
||||
typedef unsigned short WORD; |
||||
typedef float FLOAT; |
||||
typedef FLOAT *PFLOAT; |
||||
typedef BOOL *LPBOOL; |
||||
typedef BYTE *LPBYTE; |
||||
typedef int *LPINT; |
||||
typedef WORD *LPWORD; |
||||
typedef long *LPLONG; |
||||
typedef DWORD *LPDWORD; |
||||
typedef void *LPVOID; |
||||
typedef void *PVOID; |
||||
typedef const void *LPCVOID; |
||||
typedef void *HBRUSH; |
||||
typedef void *HMENU; |
||||
typedef void *HICON; |
||||
typedef void *LPITEMIDLIST; |
||||
typedef LPITEMIDLIST PIDLIST_ABSOLUTE; |
||||
typedef LPITEMIDLIST PCIDLIST_ABSOLUTE; |
||||
|
||||
typedef int INT; |
||||
typedef unsigned int UINT; |
||||
typedef unsigned int *PUINT; |
||||
|
||||
// GCC qword alignment is 4, MSVC is 8, work around by introducing a more aligned type
|
||||
typedef long long INT64; |
||||
typedef unsigned long long UINT64; |
||||
|
||||
typedef intptr_t INT_PTR, *PINT_PTR; |
||||
typedef uintptr_t UINT_PTR, *PUINT_PTR; |
||||
|
||||
typedef intptr_t LONG_PTR, *PLONG_PTR; |
||||
typedef uintptr_t ULONG_PTR, *PULONG_PTR; |
||||
typedef ULONG_PTR SIZE_T; |
||||
|
||||
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; |
||||
|
||||
typedef CHAR *LPSTR; |
||||
typedef CHAR *LPTSTR; |
||||
typedef const CHAR *LPCSTR; |
||||
|
||||
typedef UINT_PTR WPARAM; |
||||
typedef LONG_PTR LPARAM; |
||||
typedef LONG_PTR LRESULT; |
||||
|
||||
//
|
||||
// Handles
|
||||
//
|
||||
typedef void *HANDLE; |
||||
|
||||
typedef HANDLE HWND, HGDIOBJ, HMODULE, HDC, HRGN, HINSTANCE, HPALETTE, HFILE, HCURSOR; |
||||
|
||||
typedef LONG LCID; |
||||
|
||||
typedef DWORD COLORREF; |
||||
|
||||
typedef LONG HRESULT; |
||||
|
||||
typedef LRESULT(CALLBACK *WNDPROC)(HWND, UINT, WPARAM, LPARAM); |
||||
|
||||
typedef struct waveformat_tag { |
||||
WORD wFormatTag; |
||||
WORD nChannels; |
||||
DWORD nSamplesPerSec; |
||||
DWORD nAvgBytesPerSec; |
||||
WORD nBlockAlign; |
||||
} WAVEFORMAT, *PWAVEFORMAT, *LPWAVEFORMAT; |
||||
|
||||
typedef struct pcmwaveformat_tag { |
||||
WAVEFORMAT wf; |
||||
WORD wBitsPerSample; |
||||
} PCMWAVEFORMAT, *PPCMWAVEFORMAT, *LPPCMWAVEFORMAT; |
||||
|
||||
typedef struct tWAVEFORMATEX { |
||||
WORD wFormatTag; |
||||
WORD nChannels; |
||||
DWORD nSamplesPerSec; |
||||
DWORD nAvgBytesPerSec; |
||||
WORD nBlockAlign; |
||||
WORD wBitsPerSample; |
||||
WORD cbSize; |
||||
} WAVEFORMATEX, *LPWAVEFORMATEX, *LPCWAVEFORMATEX; |
||||
|
||||
typedef struct _FILETIME { |
||||
DWORD dwLowDateTime; |
||||
DWORD dwHighDateTime; |
||||
} FILETIME, *LPFILETIME; |
||||
|
||||
typedef struct tagRECT { |
||||
LONG left; |
||||
LONG top; |
||||
LONG right; |
||||
LONG bottom; |
||||
} RECT; |
||||
|
||||
typedef RECT *LPRECT; |
||||
|
||||
typedef struct tagPOINT { |
||||
LONG x; |
||||
LONG y; |
||||
} POINT; |
||||
|
||||
typedef struct tagSIZE { |
||||
LONG cx; |
||||
LONG cy; |
||||
} SIZE; |
||||
|
||||
typedef struct tagVS_FIXEDFILEINFO { |
||||
DWORD dwSignature; |
||||
DWORD dwStrucVersion; |
||||
DWORD dwFileVersionMS; |
||||
DWORD dwFileVersionLS; |
||||
DWORD dwProductVersionMS; |
||||
DWORD dwProductVersionLS; |
||||
DWORD dwFileFlagsMask; |
||||
DWORD dwFileFlags; |
||||
DWORD dwFileOS; |
||||
DWORD dwFileType; |
||||
DWORD dwFileSubtype; |
||||
DWORD dwFileDateMS; |
||||
DWORD dwFileDateLS; |
||||
} VS_FIXEDFILEINFO; |
||||
|
||||
typedef struct tagMSG { |
||||
HWND hwnd; |
||||
UINT message; |
||||
WPARAM wParam; |
||||
LPARAM lParam; |
||||
DWORD time; |
||||
POINT pt; |
||||
} MSG, *LPMSG; |
||||
|
||||
typedef uint32_t FOURCC; |
||||
|
||||
typedef struct { |
||||
FOURCC ckid; |
||||
DWORD cksize; |
||||
FOURCC fccType; |
||||
DWORD dwDataOffset; |
||||
DWORD dwFlags; |
||||
} MMCKINFO; |
||||
|
||||
//
|
||||
// System time is represented with the following structure:
|
||||
//
|
||||
|
||||
typedef struct _SYSTEMTIME { |
||||
WORD wYear; |
||||
WORD wMonth; |
||||
WORD wDayOfWeek; |
||||
WORD wDay; |
||||
WORD wHour; |
||||
WORD wMinute; |
||||
WORD wSecond; |
||||
WORD wMilliseconds; |
||||
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME; |
||||
|
||||
typedef struct tagWNDCLASSEXA { |
||||
UINT cbSize; |
||||
UINT style; |
||||
WNDPROC lpfnWndProc; |
||||
int cbClsExtra; |
||||
int cbWndExtra; |
||||
HINSTANCE hInstance; |
||||
HICON hIcon; |
||||
HCURSOR hCursor; |
||||
HBRUSH hbrBackground; |
||||
LPCSTR lpszMenuName; |
||||
LPCSTR lpszClassName; |
||||
HICON hIconSm; |
||||
} WNDCLASSEXA; |
||||
|
||||
typedef unsigned long _fsize_t; /* Could be 64 bits for Win32 */ |
||||
|
||||
struct _finddata_t { |
||||
unsigned attrib; |
||||
time_t time_create; /* -1 for FAT file systems */ |
||||
time_t time_access; /* -1 for FAT file systems */ |
||||
time_t time_write; |
||||
_fsize_t size; |
||||
char name[260]; |
||||
}; |
||||
|
||||
typedef WORD ATOM; |
||||
|
||||
//
|
||||
// Everything else
|
||||
//
|
||||
typedef struct tagPALETTEENTRY { |
||||
BYTE peRed; |
||||
BYTE peGreen; |
||||
BYTE peBlue; |
||||
BYTE peFlags; |
||||
} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY; |
||||
|
||||
typedef struct _SYSTEM_INFO { |
||||
union { |
||||
DWORD dwOemId; |
||||
struct { |
||||
WORD wProcessorArchitecture; |
||||
WORD wReserved; |
||||
}; |
||||
}; |
||||
DWORD dwPageSize; |
||||
LPVOID lpMinimumApplicationAddress; |
||||
LPVOID lpMaximumApplicationAddress; |
||||
DWORD_PTR dwActiveProcessorMask; |
||||
DWORD dwNumberOfProcessors; |
||||
DWORD dwProcessorType; |
||||
DWORD dwAllocationGranularity; |
||||
WORD wProcessorLevel; |
||||
WORD wProcessorRevision; |
||||
} SYSTEM_INFO, *LPSYSTEM_INFO; |
||||
|
||||
typedef void *LPSECURITY_ATTRIBUTES; |
||||
|
||||
typedef struct _LIST_ENTRY { |
||||
struct _LIST_ENTRY *Flink; |
||||
struct _LIST_ENTRY *Blink; |
||||
} LIST_ENTRY, *PLIST_ENTRY; |
||||
|
||||
DWORD WINAPI GetTickCount(VOID); |
||||
|
||||
DWORD WINAPI GetLastError(VOID); |
||||
VOID WINAPI SetLastError(DWORD dwErrCode); |
||||
|
||||
WINBOOL WINAPI CloseHandle(HANDLE hObject); |
||||
|
||||
HANDLE WINAPI CreateEventA(LPSECURITY_ATTRIBUTES lpEventAttributes, WINBOOL bManualReset, WINBOOL bInitialState, |
||||
LPCSTR lpName); |
||||
BOOL WINAPI SetEvent(HANDLE hEvent); |
||||
BOOL WINAPI ResetEvent(HANDLE hEvent); |
||||
DWORD WINAPI WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds); |
||||
|
||||
WINBOOL WINAPI SetCursorPos(int X, int Y); |
||||
int WINAPI ShowCursor(WINBOOL bShow); |
||||
HWND WINAPI SetCapture(HWND hWnd); |
||||
WINBOOL WINAPI ReleaseCapture(VOID); |
||||
|
||||
SHORT WINAPI GetAsyncKeyState(int vKey); |
||||
|
||||
WINBOOL WINAPI PeekMessageA(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg); |
||||
|
||||
WINBOOL WINAPI TranslateMessage(CONST MSG *lpMsg); |
||||
LRESULT WINAPI DispatchMessageA(CONST MSG *lpMsg); |
||||
WINBOOL WINAPI PostMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); |
||||
|
||||
WINBOOL WINAPI DestroyWindow(HWND hWnd); |
||||
HWND WINAPI GetLastActivePopup(HWND hWnd); |
||||
HWND WINAPI GetTopWindow(HWND hWnd); |
||||
WINBOOL WINAPI SetForegroundWindow(HWND hWnd); |
||||
HWND WINAPI SetFocus(HWND hWnd); |
||||
HWND GetDesktopWindow(); |
||||
HRESULT SHGetSpecialFolderLocation(HWND hwnd, int csidl, PIDLIST_ABSOLUTE *ppidl); |
||||
HWND CreateWindowExA( |
||||
DWORD dwExStyle, |
||||
LPCSTR lpClassName, |
||||
LPCSTR lpWindowName, |
||||
DWORD dwStyle, |
||||
int X, |
||||
int Y, |
||||
int nWidth, |
||||
int nHeight, |
||||
HWND hWndParent, |
||||
HMENU hMenu, |
||||
HINSTANCE hInstance, |
||||
LPVOID lpParam); |
||||
HWND WINAPI FindWindowA(LPCSTR lpClassName, LPCSTR lpWindowName); |
||||
BOOL InvalidateRect(HWND hWnd, const RECT *lpRect, BOOL bErase); |
||||
BOOL UpdateWindow(HWND hWnd); |
||||
BOOL ShowWindow(HWND hWnd, int nCmdShow); |
||||
WINUSERAPI ATOM WINAPI RegisterClassExA(const WNDCLASSEXA *lpwcx); |
||||
int GetSystemMetrics(int nIndex); |
||||
HGDIOBJ GetStockObject(int i); |
||||
HCURSOR LoadCursorA(HINSTANCE hInstance, LPCSTR lpCursorName); |
||||
BOOL GetUserNameA(LPSTR lpBuffer, LPDWORD pcbBuffer); |
||||
void GetLocalTime(LPSYSTEMTIME lpSystemTime); |
||||
long __cdecl _findfirst(const char *, struct _finddata_t *); |
||||
int __cdecl _findnext(long, struct _finddata_t *); |
||||
|
||||
HICON LoadIconA(HINSTANCE hInstance, LPCSTR lpIconName); |
||||
HANDLE LoadImageA(HINSTANCE hInst, LPCSTR name, UINT type, int cx, int cy, UINT fuLoad); |
||||
BOOL SHGetPathFromIDListA(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath); |
||||
HINSTANCE ShellExecuteA(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd); |
||||
int GetClassName(HWND hWnd, LPTSTR lpClassName, int nMaxCount); |
||||
|
||||
typedef LONG(WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)( |
||||
struct _EXCEPTION_POINTERS *ExceptionInfo); |
||||
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER; |
||||
LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER lpTopLevelExceptionFilter); |
||||
|
||||
HMODULE GetModuleHandleA(LPCSTR lpModuleName); |
||||
|
||||
uintptr_t __cdecl _beginthreadex(void *_Security, unsigned _StackSize, unsigned(__stdcall *_StartAddress)(void *), |
||||
void *_ArgList, unsigned _InitFlag, unsigned *_ThrdAddr); |
||||
HANDLE WINAPI GetCurrentThread(VOID); |
||||
DWORD WINAPI GetCurrentThreadId(VOID); |
||||
WINBOOL WINAPI SetThreadPriority(HANDLE hThread, int nPriority); |
||||
VOID WINAPI Sleep(DWORD dwMilliseconds); |
||||
|
||||
VOID WINAPI GetSystemInfo(LPSYSTEM_INFO lpSystemInfo); |
||||
|
||||
HDC WINAPI GetDC(HWND hWnd); |
||||
int WINAPI ReleaseDC(HWND hWnd, HDC hDC); |
||||
WINBOOL WINAPI TextOutA(HDC hdc, int x, int y, LPCSTR lpString, int c); |
||||
|
||||
int WINAPI GetDeviceCaps(HDC hdc, int index); |
||||
BOOL GetWindowRect(HWND hDlg, tagRECT *Rect); |
||||
UINT WINAPI GetSystemPaletteEntries(HDC hdc, UINT iStart, UINT cEntries, LPPALETTEENTRY pPalEntries); |
||||
|
||||
int WINAPIV wsprintfA(LPSTR, LPCSTR, ...); |
||||
int WINAPIV wvsprintfA(LPSTR dest, LPCSTR format, va_list arglist); |
||||
int __cdecl _strcmpi(const char *_Str1, const char *_Str2); |
||||
char *__cdecl _itoa(int _Value, char *_Dest, int _Radix); |
||||
|
||||
char *__cdecl _strlwr(char *str); |
||||
|
||||
//
|
||||
// File I/O
|
||||
//
|
||||
|
||||
typedef struct _WIN32_FIND_DATAA { |
||||
DWORD dwFileAttributes; |
||||
FILETIME ftCreationTime; |
||||
FILETIME ftLastAccessTime; |
||||
FILETIME ftLastWriteTime; |
||||
DWORD nFileSizeHigh; |
||||
DWORD nFileSizeLow; |
||||
DWORD dwReserved0; |
||||
DWORD dwReserved1; |
||||
CHAR cFileName[DVL_MAX_PATH]; |
||||
CHAR cAlternateFileName[14]; |
||||
DWORD dwFileType; |
||||
DWORD dwCreatorType; |
||||
WORD wFinderFlags; |
||||
} WIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; |
||||
|
||||
typedef void *LPOVERLAPPED; |
||||
|
||||
typedef struct _IMAGE_FILE_HEADER { |
||||
WORD Machine; |
||||
WORD NumberOfSections; |
||||
DWORD TimeDateStamp; |
||||
DWORD PointerToSymbolTable; |
||||
DWORD NumberOfSymbols; |
||||
WORD SizeOfOptionalHeader; |
||||
WORD Characteristics; |
||||
} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; |
||||
|
||||
typedef BOOL(CALLBACK *DLGPROC)(HWND, UINT, WPARAM, LPARAM); |
||||
|
||||
typedef struct _IMAGE_OPTIONAL_HEADER { |
||||
WORD Magic; |
||||
BYTE MajorLinkerVersion; |
||||
BYTE MinorLinkerVersion; |
||||
DWORD SizeOfCode; |
||||
DWORD SizeOfInitializedData; |
||||
DWORD SizeOfUninitializedData; |
||||
DWORD AddressOfEntryPoint; |
||||
DWORD BaseOfCode; |
||||
DWORD BaseOfData; |
||||
DWORD ImageBase; |
||||
DWORD SectionAlignment; |
||||
DWORD FileAlignment; |
||||
WORD MajorOperatingSystemVersion; |
||||
WORD MinorOperatingSystemVersion; |
||||
WORD MajorImageVersion; |
||||
WORD MinorImageVersion; |
||||
WORD MajorSubsystemVersion; |
||||
WORD MinorSubsystemVersion; |
||||
DWORD Win32VersionValue; |
||||
DWORD SizeOfImage; |
||||
DWORD SizeOfHeaders; |
||||
DWORD CheckSum; |
||||
WORD Subsystem; |
||||
WORD DllCharacteristics; |
||||
DWORD SizeOfStackReserve; |
||||
DWORD SizeOfStackCommit; |
||||
DWORD SizeOfHeapReserve; |
||||
DWORD SizeOfHeapCommit; |
||||
DWORD LoaderFlags; |
||||
DWORD NumberOfRvaAndSizes; |
||||
} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; |
||||
|
||||
typedef struct _IMAGE_NT_HEADERS { |
||||
DWORD Signature; |
||||
IMAGE_FILE_HEADER FileHeader; |
||||
IMAGE_OPTIONAL_HEADER32 OptionalHeader; |
||||
} IMAGE_NT_HEADERS, *PIMAGE_NT_HEADERS; |
||||
|
||||
typedef struct _IMAGE_DOS_HEADER { |
||||
WORD e_magic; |
||||
WORD e_cblp; |
||||
WORD e_cp; |
||||
WORD e_crlc; |
||||
WORD e_cparhdr; |
||||
WORD e_minalloc; |
||||
WORD e_maxalloc; |
||||
WORD e_ss; |
||||
WORD e_sp; |
||||
WORD e_csum; |
||||
WORD e_ip; |
||||
WORD e_cs; |
||||
WORD e_lfarlc; |
||||
WORD e_ovno; |
||||
WORD e_res[4]; |
||||
WORD e_oemid; |
||||
WORD e_oeminfo; |
||||
WORD e_res2[10]; |
||||
LONG e_lfanew; |
||||
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; |
||||
|
||||
typedef struct _OFSTRUCT { |
||||
BYTE cBytes; |
||||
BYTE fFixedDisk; |
||||
WORD nErrCode; |
||||
WORD Reserved1; |
||||
WORD Reserved2; |
||||
CHAR szPathName[DVL_OFS_MAXPATHNAME]; |
||||
} OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; |
||||
|
||||
typedef struct _OSVERSIONINFOA { |
||||
DWORD dwOSVersionInfoSize; |
||||
DWORD dwMajorVersion; |
||||
DWORD dwMinorVersion; |
||||
DWORD dwBuildNumber; |
||||
DWORD dwPlatformId; |
||||
CHAR szCSDVersion[128]; |
||||
} OSVERSIONINFO, *LPOSVERSIONINFOA; |
||||
|
||||
typedef struct _IMAGE_SECTION_HEADER { |
||||
union { |
||||
DWORD PhysicalAddress; |
||||
DWORD VirtualSize; |
||||
} Misc; |
||||
DWORD VirtualAddress; |
||||
DWORD SizeOfRawData; |
||||
DWORD PointerToRawData; |
||||
DWORD PointerToRelocations; |
||||
DWORD PointerToLinenumbers; |
||||
WORD NumberOfRelocations; |
||||
WORD NumberOfLinenumbers; |
||||
DWORD Characteristics; |
||||
} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; |
||||
|
||||
BOOL GetVersionExA(LPOSVERSIONINFOA lpVersionInformation); |
||||
|
||||
void lstrcpynA(LPSTR lpString1, LPCSTR lpString2, int iMaxLength); |
||||
|
||||
typedef struct _PROCESS_INFORMATION { |
||||
HANDLE hProcess; |
||||
HANDLE hThread; |
||||
DWORD dwProcessId; |
||||
DWORD dwThreadId; |
||||
} PROCESS_INFORMATION, *PPROCESS_INFORMATION, *LPPROCESS_INFORMATION; |
||||
|
||||
typedef void *LPSTARTUPINFOA; |
||||
WINBOOL WINAPI CreateProcessA(LPCSTR lpApplicationName, LPSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, |
||||
LPSECURITY_ATTRIBUTES lpThreadAttributes, WINBOOL bInheritHandles, DWORD dwCreationFlags, |
||||
LPVOID lpEnvironment, LPCSTR lpCurrentDirectory, LPSTARTUPINFOA lpStartupInfo, |
||||
LPPROCESS_INFORMATION lpProcessInformation); |
||||
|
||||
VOID WINAPI ExitProcess(UINT uExitCode); |
||||
DWORD WINAPI GetCurrentProcessId(VOID); |
||||
|
||||
HANDLE WINAPI CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, DWORD flProtect, |
||||
DWORD dwMaximumSizeHigh, DWORD dwMaximumSizeLow, LPCSTR lpName); |
||||
LPVOID WINAPI MapViewOfFile(HANDLE hFileMappingObject, DWORD dwDesiredAccess, DWORD dwFileOffsetHigh, |
||||
DWORD dwFileOffsetLow, SIZE_T dwNumberOfBytesToMap); |
||||
WINBOOL WINAPI UnmapViewOfFile(LPCVOID lpBaseAddress); |
||||
|
||||
LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect); |
||||
BOOL VirtualFree(LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType); |
||||
|
||||
DWORD WINAPI WaitForInputIdle(HANDLE hProcess, DWORD dwMilliseconds); |
||||
HWND WINAPI GetForegroundWindow(VOID); |
||||
HWND WINAPI GetWindow(HWND hWnd, UINT uCmd); |
||||
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, LPDWORD lpdwProcessId); |
||||
|
||||
DWORD WINAPI GetPrivateProfileStringA(LPCSTR lpAppName, LPCSTR lpKeyName, LPCSTR lpDefault, LPSTR lpReturnedString, |
||||
DWORD nSize, LPCSTR lpFileName); |
||||
int MessageBoxA(HWND hWnd, const char *Text, const char *Title, UINT Flags); |
||||
typedef LONG LSTATUS, HKEY, REGSAM, PHKEY; |
||||
|
||||
LSTATUS RegOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); |
||||
LSTATUS RegQueryValueExA(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, BYTE *lpData, LPDWORD lpcbData); |
||||
LSTATUS RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, const BYTE *lpData, DWORD cbData); |
||||
LSTATUS RegCloseKeyA(HKEY hKey); |
||||
void PostQuitMessage(int nExitCode); |
||||
LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam); |
||||
LONG GetWindowLongA(HWND hWnd, int nIndex); |
||||
LONG SetWindowLongA(HWND hWnd, int nIndex, LONG dwNewLong); |
||||
|
||||
WINBOOL WINAPI WriteFile(HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, |
||||
LPOVERLAPPED lpOverlapped); |
||||
DWORD WINAPI SetFilePointer(HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod); |
||||
WINBOOL WINAPI SetEndOfFile(HANDLE hFile); |
||||
DWORD WINAPI GetFileAttributesA(LPCSTR lpFileName); |
||||
WINBOOL WINAPI SetFileAttributesA(LPCSTR lpFileName, DWORD dwFileAttributes); |
||||
HANDLE WINAPI FindFirstFileA(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData); |
||||
BOOL FindNextFileA(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData); |
||||
WINBOOL WINAPI FindClose(HANDLE hFindFile); |
||||
HANDLE WINAPI CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, |
||||
LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, |
||||
DWORD dwFlagsAndAttributes, HANDLE hTemplateFile); |
||||
WINBOOL WINAPI ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, |
||||
LPOVERLAPPED lpOverlapped); |
||||
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh); |
||||
UINT WINAPI GetWindowsDirectoryA(LPSTR lpBuffer, UINT uSize); |
||||
DWORD GetCurrentDirectory(DWORD nBufferLength, LPTSTR lpBuffer); |
||||
DWORD GetLogicalDriveStringsA(DWORD nBufferLength, LPSTR lpBuffer); |
||||
UINT GetDriveTypeA(LPCSTR lpRootPathName); |
||||
WINBOOL WINAPI GetDiskFreeSpaceA(LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, |
||||
LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters); |
||||
DWORD WINAPI GetModuleFileNameA(HMODULE hModule, LPSTR lpFilename, DWORD nSize); |
||||
WINBOOL WINAPI GetComputerNameA(LPSTR lpBuffer, LPDWORD nSize); |
||||
DWORD GetFileVersionInfoSizeA(LPCSTR lptstrFilename, LPDWORD lpdwHandle); |
||||
BOOL GetFileVersionInfoA(LPCSTR lptstrFilename, DWORD dwHandle, DWORD dwLen, LPVOID lpData); |
||||
BOOL VerQueryValueA(LPCVOID pBlock, LPCSTR lpSubBlock, LPVOID *lplpBuffer, PUINT puLen); |
||||
WINBOOL WINAPI DeleteFileA(LPCSTR lpFileName); |
||||
WINBOOL WINAPI CopyFileA(LPCSTR lpExistingFileName, LPCSTR lpNewFileName, WINBOOL bFailIfExists); |
||||
HFILE WINAPI OpenFile(LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, UINT uStyle); |
||||
|
||||
typedef struct _CONTEXT { |
||||
|
||||
//
|
||||
// The flags values within this flag control the contents of
|
||||
// a CONTEXT record.
|
||||
//
|
||||
// If the context record is used as an input parameter, then
|
||||
// for each portion of the context record controlled by a flag
|
||||
// whose value is set, it is assumed that that portion of the
|
||||
// context record contains valid context. If the context record
|
||||
// is being used to modify a threads context, then only that
|
||||
// portion of the threads context will be modified.
|
||||
//
|
||||
// If the context record is used as an IN OUT parameter to capture
|
||||
// the context of a thread, then only those portions of the thread's
|
||||
// context corresponding to set flags will be returned.
|
||||
//
|
||||
// The context record is never used as an OUT only parameter.
|
||||
//
|
||||
|
||||
DWORD ContextFlags; |
||||
|
||||
//
|
||||
// This section is specified/returned if CONTEXT_DEBUG_REGISTERS is
|
||||
// set in ContextFlags. Note that CONTEXT_DEBUG_REGISTERS is NOT
|
||||
// included in CONTEXT_FULL.
|
||||
//
|
||||
|
||||
DWORD Dr0; |
||||
DWORD Dr1; |
||||
DWORD Dr2; |
||||
DWORD Dr3; |
||||
DWORD Dr6; |
||||
DWORD Dr7; |
||||
|
||||
//
|
||||
// This section is specified/returned if the
|
||||
// ContextFlags word contians the flag CONTEXT_SEGMENTS.
|
||||
//
|
||||
|
||||
DWORD SegGs; |
||||
DWORD SegFs; |
||||
DWORD SegEs; |
||||
DWORD SegDs; |
||||
|
||||
//
|
||||
// This section is specified/returned if the
|
||||
// ContextFlags word contians the flag CONTEXT_INTEGER.
|
||||
//
|
||||
|
||||
DWORD Edi; |
||||
DWORD Esi; |
||||
DWORD Ebx; |
||||
DWORD Edx; |
||||
DWORD Ecx; |
||||
DWORD Eax; |
||||
|
||||
//
|
||||
// This section is specified/returned if the
|
||||
// ContextFlags word contians the flag CONTEXT_CONTROL.
|
||||
//
|
||||
|
||||
DWORD Ebp; |
||||
DWORD Eip; |
||||
DWORD SegCs; // MUST BE SANITIZED
|
||||
DWORD EFlags; // MUST BE SANITIZED
|
||||
DWORD Esp; |
||||
DWORD SegSs; |
||||
} CONTEXT; |
||||
|
||||
typedef CONTEXT *PCONTEXT; |
||||
|
||||
//
|
||||
// Exception record definition.
|
||||
//
|
||||
|
||||
typedef struct _EXCEPTION_RECORD { |
||||
DWORD ExceptionCode; |
||||
DWORD ExceptionFlags; |
||||
struct _EXCEPTION_RECORD *ExceptionRecord; |
||||
PVOID ExceptionAddress; |
||||
DWORD NumberParameters; |
||||
} EXCEPTION_RECORD; |
||||
|
||||
typedef EXCEPTION_RECORD *PEXCEPTION_RECORD; |
||||
|
||||
typedef struct _EXCEPTION_POINTERS { |
||||
PEXCEPTION_RECORD ExceptionRecord; |
||||
PCONTEXT ContextRecord; |
||||
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS; |
||||
|
||||
typedef struct _MEMORY_BASIC_INFORMATION { |
||||
PVOID BaseAddress; |
||||
PVOID AllocationBase; |
||||
DWORD AllocationProtect; |
||||
SIZE_T RegionSize; |
||||
DWORD State; |
||||
DWORD Protect; |
||||
DWORD Type; |
||||
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; |
||||
|
||||
//
|
||||
// Total fakes
|
||||
//
|
||||
typedef struct { |
||||
} SOCKADDR, GUID, *LPGUID; |
||||
|
||||
typedef struct { |
||||
DWORD cb; |
||||
} STARTUPINFOA; |
||||
|
||||
BOOL IsBadReadPtr(const VOID *lp, UINT_PTR ucb); |
||||
BOOL IsBadWritePtr(LPVOID lp, UINT_PTR ucb); |
||||
SIZE_T VirtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength); |
||||
|
||||
//
|
||||
// MSCVRT emulation
|
||||
//
|
||||
|
||||
extern void LoadCharNames(); |
||||
extern void LoadAndPlaySound(char *FilePath, int lVolume, int lPan); |
||||
extern void DrawArtWithMask(int SX, int SY, int SW, int SH, int nFrame, BYTE bMask, void *pBuffer); |
||||
extern BOOL __cdecl LoadArtWithPal(char *pszFile, void **pBuffer, int frames, DWORD *data); |
||||
|
||||
} |
||||
@ -1,4 +1,8 @@
|
||||
#pragma once |
||||
|
||||
namespace dvl { |
||||
|
||||
int rand(void); |
||||
void srand(unsigned int seed); |
||||
|
||||
} |
||||
|
||||
@ -1,7 +1,11 @@
|
||||
#pragma once |
||||
|
||||
namespace dvl { |
||||
|
||||
typedef void *CRITICAL_SECTION, **LPCRITICAL_SECTION; |
||||
VOID WINAPI InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection); |
||||
VOID WINAPI EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection); |
||||
VOID WINAPI LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection); |
||||
VOID WINAPI DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection); |
||||
|
||||
} |
||||
|
||||
@ -1,8 +1,12 @@
|
||||
#pragma once |
||||
|
||||
namespace dvl { |
||||
|
||||
BOOL EndDialog(HWND hDlg, INT_PTR nResult); |
||||
BOOL SetDlgItemText(HWND hDlg, int nIDDlgItem, LPCSTR lpString); |
||||
BOOL SetWindowPos(HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags); |
||||
DWORD FormatMessage(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, char *lpBuffer, DWORD nSize, va_list *Arguments); |
||||
int DialogBoxParam(HINSTANCE hInstance, LPCSTR msgId, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); |
||||
LPCSTR MAKEINTRESOURCE(int i); |
||||
|
||||
} |
||||
|
||||
@ -1,3 +1,7 @@
|
||||
namespace dvl { |
||||
|
||||
void selconn_Esc(); |
||||
void selconn_Focus(int value); |
||||
void selconn_Select(int value); |
||||
|
||||
} |
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue