#pragma once #define TRUE true #define FALSE false #define INVALID_HANDLE_VALUE ((HANDLE)-1) #define INVALID_HANDLE ((HANDLE)-1) #define HFILE_ERROR DVL_HFILE_ERROR // // 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 DVL_INFINITE; #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('R', 'I', 'F', 'F') #define ERROR_ALREADY_EXISTS 183 #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 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 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 #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 DVL_VER_PLATFORM_WIN32_NT #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 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 OF_EXIST 1 #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_QUERYNEWPALETTE DVL_WM_QUERYNEWPALETTE #define WM_PALETTECHANGED DVL_WM_PALETTECHANGED #define SC_CLOSE DVL_SC_CLOSE #define VK_RETURN DVL_VK_RETURN #define VK_BACK DVL_VK_BACK #define VK_SHIFT DVL_VK_SHIFT #define VK_ESCAPE DVL_VK_ESCAPE #define VK_SPACE DVL_VK_SPACE #define VK_LEFT DVL_VK_LEFT #define VK_UP DVL_VK_UP #define VK_RIGHT DVL_VK_RIGHT #define VK_DOWN DVL_VK_DOWN #define VK_F1 DVL_VK_F1 #define VK_F2 DVL_VK_F2 #define VK_F3 DVL_VK_F3 #define VK_F4 DVL_VK_F4 #define VK_F5 DVL_VK_F5 #define VK_F6 DVL_VK_F6 #define VK_F7 DVL_VK_F7 #define VK_F8 DVL_VK_F8 #define VK_F9 DVL_VK_F9 #define VK_F10 DVL_VK_F10 #define VK_F11 DVL_VK_F11 #define VK_F12 DVL_VK_F12 #define VK_TAB DVL_VK_TAB #define VK_PAUSE DVL_VK_PAUSE #define VK_PRIOR DVL_VK_PRIOR #define VK_NEXT DVL_VK_NEXT #define VK_SNAPSHOT DVL_VK_SNAPSHOT #define VK_OEM_1 DVL_VK_OEM_1 #define VK_OEM_PLUS DVL_VK_OEM_PLUS #define VK_OEM_COMMA DVL_VK_OEM_COMMA #define VK_OEM_MINUS DVL_VK_OEM_MINUS #define VK_OEM_PERIOD DVL_VK_OEM_PERIOD #define VK_OEM_2 DVL_VK_OEM_2 #define VK_OEM_3 DVL_VK_OEM_3 #define VK_OEM_4 DVL_VK_OEM_4 #define VK_OEM_5 DVL_VK_OEM_5 #define VK_OEM_6 DVL_VK_OEM_6 #define VK_OEM_7 DVL_VK_OEM_7 //#define VK_OEM_8 DVL_VK_OEM_8 //#define VK_OEM_102 DVL_VK_OEM_102 #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