📄 win32.inc
字号:
;*************************************************************************
;
; WIN32.INC - Win32 assembly language structures & constants
;
;
;*************************************************************************
;
; Modified , enhanced by G-RoM.
;
;*************************************************************************
UNICODE=0
UCHAR EQU <db>
USHORT EQU <dw> ; used only if we really need 16 bits
UINT EQU <dd> ; 32 bits for WIN32
ULONG EQU <dd>
HANDLE EQU <dd>
BOOL typedef DWORD
LPSTR typedef DWORD
LPBYTE typedef DWORD
LPVOID typedef DWORD
LPCSTR typedef DWORD
L equ <LARGE>
WINAPI EQU PROTO STDCALL
NULL EQU 0
FALSE EQU 0
TRUE EQU 1
;
;------------------------------------------------------------------------------
;
; =====================
; CreateProcess() flags
; =====================
;
DEBUG_PROCESS equ 00000001h
DEBUG_ONLY_THIS_PROCESS equ 00000002h
CREATE_SUSPENDED equ 00000004h
DETACHED_PROCESS equ 00000008h
CREATE_NEW_CONSOLE equ 00000010h
NORMAL_PRIORITY_CLASS equ 00000020h
IDLE_PRIORITY_CLASS equ 00000040h
HIGH_PRIORITY_CLASS equ 00000080h
REALTIME_PRIORITY_CLASS equ 00000100h
;
CREATE_NEW_PROCESS_GROUP equ 00000200h
CREATE_UNICODE_ENVIRONMENT equ 00000400h
CREATE_SEPARATE_WOW_VDM equ 00000800h
CREATE_SHARED_WOW_VDM equ 00001000h
CREATE_DEFAULT_ERROR_MODE equ 04000000h
CREATE_NO_WINDOW equ 08000000h
;
PROFILE_USER equ 10000000h
PROFILE_KERNEL equ 20000000h
PROFILE_SERVER equ 40000000h
THREAD_BASE_PRIORITY_LOWRT EQU 15; { value that gets a thread to LowRealtime-1 }
THREAD_BASE_PRIORITY_MAX EQU 2; { maximum thread base priority boost }
THREAD_BASE_PRIORITY_MIN EQU -2; { minimum thread base priority boost }
THREAD_BASE_PRIORITY_IDLE EQU -15; { value that gets a thread to idle }
SYNCHRONIZE EQU 00100000h;
STANDARD_RIGHTS_REQUIRED EQU 000F0000h;
EVENT_MODIFY_STATE EQU 0002h;
EVENT_ALL_ACCESS EQU (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 3h);
MUTANT_QUERY_STATE EQU 0001h;
MUTANT_ALL_ACCESS EQU (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + MUTANT_QUERY_STATE);
PROCESS_TERMINATE EQU 0001h;
PROCESS_CREATE_THREAD EQU 0002h;
PROCESS_VM_OPERATION EQU 0008h;
PROCESS_VM_READ EQU 0010h;
PROCESS_VM_WRITE EQU 0020h;
PROCESS_DUP_HANDLE EQU 0040h;
PROCESS_CREATE_PROCESS EQU 0080h;
PROCESS_SET_QUOTA EQU 0100h;
PROCESS_SET_INFORMATION EQU 0200h;
PROCESS_QUERY_INFORMATION EQU 0400h;
PROCESS_ALL_ACCESS EQU (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 0FFFh);
;
;------------------------------------------------------------------------------
;
; ===================
; thread access flags
; ===================
;
THREAD_TERMINATE equ 0001h
THREAD_SUSPEND_RESUME equ 0002h
THREAD_GET_CONTEXT equ 0008h
THREAD_SET_CONTEXT equ 0010h
THREAD_SET_INFORMATION equ 0020h
THREAD_QUERY_INFORMATION equ 0040h
THREAD_SET_THREAD_TOKEN equ 0080h
THREAD_IMPERSONATE equ 0100h
THREAD_DIRECT_IMPERSONATION equ 0200h
;
THREAD_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED+\
SYNCHRONIZE+\
03FFh
;
;------------------------------------------------------------------------------
;
; =================
; thread priorities
; =================
;
THREAD_BASE_PRIORITY_IDLE equ -15
THREAD_BASE_PRIORITY_MIN equ -2
THREAD_BASE_PRIORITY_MAX equ 2
THREAD_BASE_PRIORITY_LOWRT equ 15
;
THREAD_PRIORITY_LOWEST equ THREAD_BASE_PRIORITY_MIN
THREAD_PRIORITY_BELOW_NORMAL equ THREAD_PRIORITY_LOWEST+1
THREAD_PRIORITY_NORMAL equ 0
THREAD_PRIORITY_ABOVE_NORMAL equ THREAD_PRIORITY_HIGHEST-1
THREAD_PRIORITY_HIGHEST equ THREAD_BASE_PRIORITY_MAX
;
THREAD_PRIORITY_TIME_CRITICAL equ THREAD_BASE_PRIORITY_LOWRT
THREAD_PRIORITY_IDLE equ THREAD_BASE_PRIORITY_IDLE
;
THREAD_PRIORITY_ERROR_RETURN equ -1
;
;
;------------------------------------------------------------------------------
;
; =================
; wait status codes
; =================
;
WAIT_FAILED equ -1
WAIT_OBJECT_0 equ STATUS_WAIT_0
;
WAIT_ABANDONED equ STATUS_ABANDONED_WAIT_0
WAIT_ABANDONED_0 equ STATUS_ABANDONED_WAIT_0
;
WAIT_TIMEOUT equ STATUS_TIMEOUT
WAIT_IO_COMPLETION equ STATUS_USER_APC
STILL_ACTIVE equ STATUS_PENDING
;
MAXIMUM_WAIT_OBJECTS equ 64
MAXIMUM_SUSPEND_COUNT equ 127
INFINITE equ -1
;
;------------------------------------------------------------------------------
;
; =================
; file access types
; =================
;
GENERIC_ALL equ 10000000h
GENERIC_EXECUTE equ 20000000h
GENERIC_WRITE equ 40000000h
GENERIC_READ equ 80000000h
;
GENERIC_READWRITE equ GENERIC_READ+GENERIC_WRITE
;
;------------------------------------------------------------------------------
;
; ===============
; file attributes
; ===============
;
FILE_ATTRIBUTE_READONLY equ 00000001h
FILE_ATTRIBUTE_HIDDEN equ 00000002h
FILE_ATTRIBUTE_SYSTEM equ 00000004h
FILE_ATTRIBUTE_DIRECTORY equ 00000010h
FILE_ATTRIBUTE_ARCHIVE equ 00000020h
FILE_ATTRIBUTE_NORMAL equ 00000080h
FILE_ATTRIBUTE_TEMPORARY equ 00000100h
FILE_ATTRIBUTE_COMPRESSED equ 00000800h
;
;------------------------------------------------------------------------------
;
; ===================
; file creation flags
; ===================
;
FILE_FLAG_WRITE_THROUGH equ 80000000h
FILE_FLAG_OVERLAPPED equ 40000000h
FILE_FLAG_NO_BUFFERING equ 20000000h
FILE_FLAG_RANDOM_ACCESS equ 10000000h
FILE_FLAG_SEQUENTIAL_SCAN equ 08000000h
FILE_FLAG_DELETE_ON_CLOSE equ 04000000h
FILE_FLAG_BACKUP_SEMANTICS equ 02000000h
FILE_FLAG_POSIX_SEMANTICS equ 01000000h
;
;------------------------------------------------------------------------------
;
; ==================
; file notifications
; ==================
;
FILE_NOTIFY_CHANGE_FILE_NAME equ 0001h
FILE_NOTIFY_CHANGE_DIR_NAME equ 0002h
FILE_NOTIFY_CHANGE_ATTRIBUTES equ 0004h
FILE_NOTIFY_CHANGE_SIZE equ 0008h
FILE_NOTIFY_CHANGE_LAST_WRITE equ 0010h
FILE_NOTIFY_CHANGE_SECURITY equ 0100h
;
;------------------------------------------------------------------------------
;
; ================
; file share modes
; ================
;
FILE_SHARE_NONE equ 0000h
FILE_SHARE_READ equ 0001h
FILE_SHARE_WRITE equ 0002h
;
FILE_SHARE_READWRITE equ FILE_SHARE_READ+FILE_SHARE_WRITE
;
; ====================
; CreateFile() actions
; ====================
;
CREATE_NEW equ 1
CREATE_ALWAYS equ 2
OPEN_EXISTING equ 3
OPEN_ALWAYS equ 4
TRUNCATE_EXISTING equ 5
;
;------------------------------------------------------------------------------
;
; =================
; file system flags
; =================
;
FILE_CASE_SENSITIVE_SEARCH equ 00000001h
FILE_CASE_PRESERVED_NAMES equ 00000002h
FILE_UNICODE_ON_DISK equ 00000004h
FILE_PERSISTENT_ACLS equ 00000008h
FILE_FILE_COMPRESSION equ 00000010h
FILE_VOLUME_IS_COMPRESSED equ 00008000h
;
FS_CASE_SENSITIVE equ FILE_CASE_SENSITIVE_SEARCH
FS_CASE_IS_PRESERVED equ FILE_CASE_PRESERVED_NAMES
FS_UNICODE_STORED_ON_DISK equ FILE_UNICODE_ON_DISK
FS_PERSISTENT_ACLS equ FILE_PERSISTENT_ACLS
FS_FILE_COMPRESSION equ FILE_FILE_COMPRESSION
FS_VOL_IS_COMPRESSED equ FILE_VOLUME_IS_COMPRESSED
;
;------------------------------------------------------------------------------
;
; ========================
; SetFilePointer() methods
; ========================
;
FILE_BEGIN equ 0
FILE_CURRENT equ 1
FILE_END equ 2
;
;------------------------------------------------------------------------------
;
; ===================
; global memory flags
; ===================
;
GMEM_FIXED equ 0000h
GMEM_MOVEABLE equ 0002h
GMEM_NOCOMPACT equ 0010h
GMEM_NODISCARD equ 0020h
GMEM_ZEROINIT equ 0040h
GMEM_MODIFY equ 0080h
GMEM_DISCARDABLE equ 0100h
GMEM_NOT_BANKED equ 1000h
GMEM_SHARE equ 2000h
GMEM_DDESHARE equ 2000h
GMEM_NOTIFY equ 4000h
GMEM_INVALID_HANDLE equ 8000h
;
GMEM_VALID_FLAGS equ 7F72h
GMEM_LOWER equ GMEM_NOT_BANKED
;
; =================
; memory attributes
; =================
;
PAGE_NOACCESS equ 00000001h
PAGE_READONLY equ 00000002h
PAGE_READWRITE equ 00000004h
PAGE_WRITECOPY equ 00000008h
PAGE_EXECUTE equ 00000010h
PAGE_EXECUTE_READ equ 00000020h
PAGE_EXECUTE_READWRITE equ 00000040h
PAGE_EXECUTE_WRITECOPY equ 00000080h
PAGE_GUARD equ 00000100h
PAGE_NOCACHE equ 00000200h
;
;*******************************************************************
;
; Rectangle
;
;*******************************************************************
RECT struc
rd_left UINT ?
rd_top UINT ?
rd_right UINT ?
rd_bottom UINT ?
RECT ends
;*******************************************************************
;
; Window Class structure
;
;*******************************************************************
_OSVERSIONINFO EQU 4+4+4+4+4+128
OSVERSIONINFO struc
dwOSVersionInfoSize DWORD ?
dwMajorVersion DWORD ?
dwMinorVersion DWORD ?
dwBuildNumber DWORD ?
dwPlatformId DWORD ?
szCSDVersion BYTE 128 dup(?)
OSVERSIONINFO ends
WNDCLASS struc
clsStyle UINT ? ; class style
clsLpfnWndProc ULONG ?
clsCbClsExtra UINT ?
clsCbWndExtra UINT ?
clsHInstance UINT ? ; instance handle
clsHIcon UINT ? ; class icon handle
clsHCursor UINT ? ; class cursor handle
clsHbrBackground UINT ? ; class background brush
clsLpszMenuName ULONG ? ; menu name
clsLpszClassName ULONG ? ; far ptr to class name
WNDCLASS ends
WNDCLASSEX_ EQU 4*12
WNDCLASSEXA STRUCT
wc_cbSize UINT ?
wc_style UINT ?
wc_lpfnWndProc DWORD ?
wc_cbClsExtra SDWORD ?
wc_cbWndExtra SDWORD ?
wc_hInstance DWORD ?
wc_hIcon DWORD ?
wc_hCursor DWORD ?
wc_hbrBackground DWORD ?
wc_lpszMenuName LPCSTR ?
wc_lpszClassName LPCSTR ?
wc_hIconSm DWORD ?
WNDCLASSEXA ENDS
WNDCLASSEX TEXTEQU <WNDCLASSEXA>
DLGWINDOWEXTRA EQU 00000001Eh
PAINTSTRUCT STRUC
PShdc UINT ?
PSfErase UINT ?
PSrcPaint UCHAR size RECT dup(?)
PSfRestore UINT ?
PSfIncUpdate UINT ?
PSrgbReserved UCHAR 16 dup(?)
PAINTSTRUCT ENDS
OVERLAPPED STRUCT
Internal DWORD ?
InternalHigh DWORD ?
_Offset DWORD ?
OffsetHigh DWORD ?
hEvent HANDLE ?
OVERLAPPED ENDS
LPOVERLAPPED TYPEDEF PTR OVERLAPPED
NMHDR struct
hwndFrom DWORD ?
idFrom UINT ?
Code UINT ?
NMHDR ends
POINT struct
x DWORD ?
y DWORD ?
POINT ends
NM_LISTVIEW struct
hdr NMHDR <?>
iItem DWORD ?
iSubItem DWORD ?
uNewState UINT ?
uOldState UINT ?
uChanged UINT ?
ptAction POINT <?>
lParam DWORD ?
NM_LISTVIEW ends
MSG struct
ms_hwnd DWORD 0 ;window handle
ms_message UINT 0 ;message id
ms_wParam DWORD 0 ;additional parameter
ms_lParam DWORD 0 ;additional parameter
ms_time DWORD 0 ;time stamp
ms_x DWORD 0 ;x coordinate
ms_y DWORD 0 ;y coordinate
MSG ends
MSG_ equ 4+4+4+4+4+4+4
MINMAXINFO struc
res_x dd ?
res_y dd ?
maxsize_x dd ?
maxsize_y dd ?
maxposition_x dd ?
maxposition_y dd ?
mintrackposition_x dd ?
mintrackposition_y dd ?
maxtrackposition_x dd ?
maxtrackposition_y dd ?
MINMAXINFO ends
LF_FACESIZE EQU 32
ANSI_CHARSET = 0
DEFAULT_CHARSET = 1
SYMBOL_CHARSET = 2
OEM_CHARSET = 255
LOGFONT STRUC
lfHeight dd ?
lfWidth dd ?
lfEscapement dd ?
lfOrientation dd ?
lfWeight dd ?
lfItalic db ?
lfUnderline db ?
lfStrikeOut db ?
lfCharSet db ?
lfOutPrecision db ?
lfClipPrecision db ?
lfQuality db ?
lfPitchAndFamily db ?
lfFaceName db LF_FACESIZE dup(?)
LOGFONT ENDS
PROCESSINFORMATION struct
pi_hProcess HANDLE 0 ;process handle
pi_hThread HANDLE 0 ;thread handle
pi_dwProcessId DWORD 0 ;process id
pi_dwThreadId DWORD 0 ;thread id
PROCESSINFORMATION ends
PROCESSINFORMATION_ equ 4+4+4+4
STARTUPINFO_ equ 4+4+4+4+4+4+4+4+4+4+4+4+2+2+4+4+4+4
STARTUPINFO struct
si_cb DWORD STARTUPINFO_ ;structure size
si_lpReserved LPSTR 0 ;(reserved)
si_lpDesktop LPSTR 0 ;desktop name
sl_lpTitle LPSTR 0 ;console window title
si_dwX DWORD 0 ;window origin (column)
si_dwY DWORD 0 ;window origin (row)
si_dwXSize DWORD 0 ;window width
si_dwYSize DWORD 0 ;window height
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -