You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
12 KiB
314 lines
12 KiB
#pragma once |
|
|
|
#define TRUE true |
|
#define FALSE false |
|
|
|
#define INVALID_HANDLE_VALUE ((HANDLE)-1) |
|
#define INVALID_HANDLE ((HANDLE)-1) |
|
|
|
// |
|
// Intrinsics |
|
// |
|
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff)) |
|
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff)) |
|
|
|
#define CreateEvent CreateEventA |
|
|
|
#define PM_NOREMOVE DVL_PM_NOREMOVE |
|
#define PM_REMOVE DVL_PM_REMOVE |
|
#define WM_QUIT DVL_WM_QUIT |
|
|
|
#define PeekMessage PeekMessageA |
|
#define DispatchMessage DispatchMessageA |
|
#define PostMessage PostMessageA |
|
#define CreateWindowEx CreateWindowExA |
|
#define RegisterClassEx RegisterClassExA |
|
#define LoadImage LoadImageA |
|
|
|
#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 DVL_HORZRES |
|
#define VERTRES DVL_VERTRES |
|
#define NUMRESERVED 106 |
|
|
|
#define _snprintf snprintf |
|
#define _vsnprintf vsnprintf |
|
#define wsprintf wsprintfA |
|
#define wvsprintf wvsprintfA |
|
|
|
// |
|
// File I/O |
|
// |
|
|
|
#define FILE_BEGIN DVL_FILE_BEGIN |
|
#define FILE_CURRENT DVL_FILE_CURRENT |
|
#define FILE_END 2 |
|
#define FILE_FLAG_WRITE_THROUGH 0x80000000 |
|
#define CREATE_ALWAYS DVL_CREATE_ALWAYS |
|
#define GENERIC_READ DVL_GENERIC_READ |
|
#define GENERIC_WRITE DVL_GENERIC_WRITE |
|
#define OPEN_EXISTING DVL_OPEN_EXISTING |
|
#define OPEN_ALWAYS 4 |
|
#define ERROR_FILE_NOT_FOUND DVL_ERROR_FILE_NOT_FOUND |
|
#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 |
|
|
|
// |
|
// 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 DVL_VER_PLATFORM_WIN32_NT |
|
|
|
#define GetVersionEx GetVersionExA |
|
|
|
#define lstrcpyn lstrcpynA |
|
|
|
#define MEM_COMMIT 0x1000 |
|
#define MEM_RELEASE 0x8000 |
|
|
|
#define SEC_COMMIT 0x8000000 |
|
#define PAGE_READWRITE 0x04 |
|
|
|
#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 MessageBox MessageBoxA |
|
|
|
#define HKEY_CURRENT_USER 1 |
|
#define KEY_READ 0x20019 |
|
#define KEY_WRITE 0x20006 |
|
#define REG_SZ 1 |
|
|
|
#define DefWindowProc DefWindowProcA |
|
|
|
#define GetFileAttributes GetFileAttributesA |
|
#define SetFileAttributes SetFileAttributesA |
|
#define FindFirstFile FindFirstFileA |
|
#define CreateFile CreateFileA |
|
#define GetDriveType GetDriveTypeA |
|
#define GetComputerName GetComputerNameA |
|
#define DeleteFile DeleteFileA |
|
|
|
#define GWL_STYLE (-16) |
|
|
|
#define WS_POPUP 0x80000000L |
|
#define WS_SYSMENU 0x00080000L |
|
|
|
#define DRIVE_CDROM DVL_DRIVE_CDROM |
|
|
|
// |
|
// Events |
|
// |
|
|
|
// were here |
|
|
|
#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 MAKEINTRESOURCE DVL_MAKEINTRESOURCE |
|
|
|
#define _finddata_t DVL_finddata_t |
|
#define _beginthreadex DVL_beginthreadex |
|
|
|
// |
|
// Events |
|
// |
|
#define WM_MOUSEFIRST DVL_WM_MOUSEFIRST |
|
#define WM_MOUSEMOVE DVL_WM_MOUSEMOVE |
|
#define WM_LBUTTONDOWN DVL_WM_LBUTTONDOWN |
|
#define WM_LBUTTONUP DVL_WM_LBUTTONUP |
|
#define WM_RBUTTONDOWN DVL_WM_RBUTTONDOWN |
|
#define WM_RBUTTONUP DVL_WM_RBUTTONUP |
|
|
|
#define WM_KEYFIRST DVL_WM_KEYFIRST |
|
#define WM_KEYDOWN DVL_WM_KEYDOWN |
|
#define WM_KEYUP DVL_WM_KEYUP |
|
#define WM_SYSKEYDOWN DVL_WM_SYSKEYDOWN |
|
|
|
#define WM_INITDIALOG DVL_WM_INITDIALOG |
|
#define WM_COMMAND DVL_WM_COMMAND |
|
#define WM_SYSCOMMAND DVL_WM_SYSCOMMAND |
|
|
|
#define WM_CHAR DVL_WM_CHAR |
|
#define WM_CAPTURECHANGED DVL_WM_CAPTURECHANGED |
|
|
|
#define WM_CREATE DVL_WM_CREATE |
|
#define WM_DESTROY DVL_WM_DESTROY |
|
#define WM_PAINT DVL_WM_PAINT |
|
#define WM_CLOSE DVL_WM_CLOSE |
|
#define WM_QUERYENDSESSION DVL_WM_QUERYENDSESSION |
|
#define WM_ERASEBKGND DVL_WM_ERASEBKGND |
|
#define WM_ACTIVATEAPP DVL_WM_ACTIVATEAPP |
|
#define WM_SYSKEYUP DVL_WM_SYSKEYUP |
|
#define WM_QUERYNEWPALETTE DVL_WM_QUERYNEWPALETTE |
|
#define WM_PALETTECHANGED DVL_WM_PALETTECHANGED |
|
|
|
#define SC_CLOSE DVL_SC_CLOSE |
|
|
|
// Virtual key codes. |
|
// |
|
// ref: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes |
|
#define VK_BACK DVL_VK_BACK // BACKSPACE key |
|
#define VK_TAB DVL_VK_TAB // TAB key |
|
#define VK_RETURN DVL_VK_RETURN // ENTER key |
|
#define VK_SHIFT DVL_VK_SHIFT // SHIFT key |
|
#define VK_CONTROL DVL_VK_CONTROL // CONTROL key |
|
#define VK_MENU DVL_VK_MENU // ALT key |
|
#define VK_PAUSE DVL_VK_PAUSE // PAUSE key |
|
#define VK_CAPITAL DVL_VK_CAPITAL // CAPS LOCK key |
|
#define VK_ESCAPE DVL_VK_ESCAPE // ESC key |
|
#define VK_SPACE DVL_VK_SPACE // SPACEBAR |
|
#define VK_PRIOR DVL_VK_PRIOR // PAGE UP key |
|
#define VK_NEXT DVL_VK_NEXT // PAGE DOWN key |
|
#define VK_END DVL_VK_END // END key |
|
#define VK_HOME DVL_VK_HOME // HOME key |
|
#define VK_LEFT DVL_VK_LEFT // LEFT ARROW key |
|
#define VK_UP DVL_VK_UP // UP ARROW key |
|
#define VK_RIGHT DVL_VK_RIGHT // RIGHT ARROW key |
|
#define VK_DOWN DVL_VK_DOWN // DOWN ARROW key |
|
#define VK_SNAPSHOT DVL_VK_SNAPSHOT // PRINT SCREEN key |
|
#define VK_INSERT DVL_VK_INSERT // INS key |
|
#define VK_DELETE DVL_VK_DELETE // DEL key |
|
// VK_0 through VK_9 correspond to '0' - '9' |
|
// VK_A through VK_Z correspond to 'A' - 'Z' |
|
#define VK_LWIN DVL_VK_LWIN // Left Windows key (Natural keyboard) |
|
#define VK_RWIN DVL_VK_RWIN // Right Windows key (Natural keyboard) |
|
#define VK_NUMPAD0 DVL_VK_NUMPAD0 // Numeric keypad 0 key |
|
#define VK_NUMPAD1 DVL_VK_NUMPAD1 // Numeric keypad 1 key |
|
#define VK_NUMPAD2 DVL_VK_NUMPAD2 // Numeric keypad 2 key |
|
#define VK_NUMPAD3 DVL_VK_NUMPAD3 // Numeric keypad 3 key |
|
#define VK_NUMPAD4 DVL_VK_NUMPAD4 // Numeric keypad 4 key |
|
#define VK_NUMPAD5 DVL_VK_NUMPAD5 // Numeric keypad 5 key |
|
#define VK_NUMPAD6 DVL_VK_NUMPAD6 // Numeric keypad 6 key |
|
#define VK_NUMPAD7 DVL_VK_NUMPAD7 // Numeric keypad 7 key |
|
#define VK_NUMPAD8 DVL_VK_NUMPAD8 // Numeric keypad 8 key |
|
#define VK_NUMPAD9 DVL_VK_NUMPAD9 // Numeric keypad 9 key |
|
#define VK_MULTIPLY DVL_VK_MULTIPLY // Multiply key |
|
#define VK_ADD DVL_VK_ADD // Add key |
|
#define VK_SUBTRACT DVL_VK_SUBTRACT // Subtract key |
|
#define VK_DECIMAL DVL_VK_DECIMAL // Decimal key |
|
#define VK_DIVIDE DVL_VK_DIVIDE // Divide key |
|
#define VK_F1 DVL_VK_F1 // F1 key |
|
#define VK_F2 DVL_VK_F2 // F2 key |
|
#define VK_F3 DVL_VK_F3 // F3 key |
|
#define VK_F4 DVL_VK_F4 // F4 key |
|
#define VK_F5 DVL_VK_F5 // F5 key |
|
#define VK_F6 DVL_VK_F6 // F6 key |
|
#define VK_F7 DVL_VK_F7 // F7 key |
|
#define VK_F8 DVL_VK_F8 // F8 key |
|
#define VK_F9 DVL_VK_F9 // F9 key |
|
#define VK_F10 DVL_VK_F10 // F10 key |
|
#define VK_F11 DVL_VK_F11 // F11 key |
|
#define VK_F12 DVL_VK_F12 // F12 key |
|
#define VK_NUMLOCK DVL_VK_NUMLOCK // NUM LOCK key |
|
#define VK_SCROLL DVL_VK_SCROLL // SCROLL LOCK key |
|
#define VK_LSHIFT DVL_VK_LSHIFT // Left SHIFT key |
|
#define VK_RSHIFT DVL_VK_RSHIFT // Right SHIFT key |
|
#define VK_LCONTROL DVL_VK_LCONTROL // Left CONTROL key |
|
#define VK_RCONTROL DVL_VK_RCONTROL // Right CONTROL key |
|
#define VK_LMENU DVL_VK_LMENU // Left MENU key |
|
#define VK_RMENU DVL_VK_RMENU // Right MENU key |
|
#define VK_OEM_1 DVL_VK_OEM_1 // For the US standard keyboard, the ';:' key |
|
#define VK_OEM_PLUS DVL_VK_OEM_PLUS // For any country/region, the '+' key |
|
#define VK_OEM_COMMA DVL_VK_OEM_COMMA // For any country/region, the ',' key |
|
#define VK_OEM_MINUS DVL_VK_OEM_MINUS // For any country/region, the '-' key |
|
#define VK_OEM_PERIOD DVL_VK_OEM_PERIOD // For any country/region, the '.' key |
|
#define VK_OEM_2 DVL_VK_OEM_2 // For the US standard keyboard, the '/?' key |
|
#define VK_OEM_3 DVL_VK_OEM_3 // For the US standard keyboard, the '`~' key |
|
#define VK_OEM_4 DVL_VK_OEM_4 // For the US standard keyboard, the '[{' key |
|
#define VK_OEM_5 DVL_VK_OEM_5 // For the US standard keyboard, the '\|' key |
|
#define VK_OEM_6 DVL_VK_OEM_6 // For the US standard keyboard, the ']}' key |
|
#define VK_OEM_7 DVL_VK_OEM_7 // For the US standard keyboard, the 'single-quote/double-quote' key |
|
|
|
#define MK_SHIFT DVL_MK_SHIFT |
|
#define MK_LBUTTON DVL_MK_LBUTTON |
|
#define MK_RBUTTON DVL_MK_RBUTTON |
|
|
|
#define MB_TASKMODAL DVL_MB_TASKMODAL |
|
#define MB_ICONHAND DVL_MB_ICONHAND |
|
#define MB_ICONEXCLAMATION DVL_MB_ICONEXCLAMATION
|
|
|