📄 w32.inc
字号:
;Main include file for Win32 applications built with TASM5.
;Supplied on Companion Disk for book
;"Windows Assembly Language and Systems Programming"
;by Barry Kauler, published by R&D Books / Miller Freeman, USA, 1997.
;
;I have inserted some comments, marked by "*bk*".
;some unicode support, but a bit patchy. What is missing mainly is
;the prototypes and structures for UNICODE characters. All API
;functions ending in "....A" are ANSI character, while UNICODE
;functions end in "....W". Maybe someone will be moved to fix this?
;Also, I have stuck stuff into this file "here and there" and it
;could do with a bit of organising.
;I would like to acknowledge Sven Schreiber:
; W32Main.inc
; Win32 Main Header File V1.00
; 03-14-1996 Sven B. Schreiber sbs@psbs.franken.de
; This is Public Domain Software
;His file W32MAIN.INC is part of his WALK32 Windows 95 assembly language
;development tools, all public domain. I have incorporated much of
;W32MAIN.INC into this file.
;I would like to acknowledge Wayne Radburn.
;Wayne has a public domain example assembly language program for Windows 95,
;included on the Companion Disk as SKELETON.ZIP. It is for MASM 6.11.
;I have "borrowed" from his file WINDOWSA.INC, which has the API
;prototypes. I have modified the prototypes to suit TASM 5.0.
;------------------------------------------------------------------------------
if UNICODE
;
CHAR textequ <WCHAR> ;unicode char type
CHAR_ equ 2 ;unicode char size
;
else
;
CHAR textequ <ACHAR> ;ansi char type
CHAR_ equ 1 ;ansi char size
;
endif
;
;------------------------------------------------------------------------------
;
; BASIC TYPES
;........................................................................
ACHAR typedef BYTE ;ansi character
ATOM typedef DWORD ;string atom
BOOL typedef DWORD ;boolean variable
COLORREF typedef DWORD ;rgb color
DWORDLONG typedef QWORD ;long double word
GLOBALHANDLE typedef DWORD ;global handle
HACCEL typedef DWORD ;accelerator handle
HANDLE typedef DWORD ;unspecified handle
HBITMAP typedef DWORD ;bitmap handle
HBRUSH typedef DWORD ;brush handle
HCOLORSPACE typedef DWORD ;color space handle
HCURSOR typedef DWORD ;cursor handle
HDC typedef DWORD ;device context handle
HDWP typedef DWORD ;defer win pos handle
HENHMETAFILE typedef DWORD ;enh. metafile handle
HFILE typedef DWORD ;file handle
HFONT typedef DWORD ;font handle
HGLOBAL typedef DWORD ;global handle
HHOOK typedef DWORD ;hook handle
HICON typedef DWORD ;icon handle
HINSTANCE typedef DWORD ;instance handle
HINTERNET typedef DWORD ;internet handle
HLOCAL typedef DWORD ;local handle
HMENU typedef DWORD ;menu handle
HMETAFILE typedef DWORD ;metafile handle
HPALETTE typedef DWORD ;palette handle
HPEN typedef DWORD ;pen handle
HRGN typedef DWORD ;region handle
HRSRC typedef DWORD ;resource handle
HSTR typedef DWORD ;string handle
HTASK typedef DWORD ;task handle
HTREEITEM typedef DWORD ;tree view item handle
HWND typedef DWORD ;window handle
INTEGER typedef DWORD ;standard integer
LOCALHANDLE typedef DWORD ;local handle
LONG typedef DWORD ;long integer
LONGINT typedef DWORD ;long integer
LPARAM typedef DWORD ;long parameter
LPBOOL typedef DWORD ;long ptr to boolean
LPBYTE typedef DWORD ;long ptr to byte
LPCSTR typedef DWORD ;long ptr to string
LPCTSTR typedef DWORD ;long ptr to string
LPCVOID typedef DWORD ;long ptr to buffer
LPDWORD typedef DWORD ;long ptr to dword
LPFN typedef DWORD ;long ptr to function
LPINT typedef DWORD ;long ptr to integer
LPLONG typedef DWORD ;long ptr to long int
LPSTR typedef DWORD ;long ptr to string
LPTSTR typedef DWORD ;long ptr to string
LPVOID typedef DWORD ;long ptr to buffer
LPWORD typedef DWORD ;long ptr to word
LRESULT typedef DWORD ;long result
POINTER typedef DWORD ;pointer to anything
PVOID typedef DWORD ;pointer to buffer
SHORTINT typedef WORD ;short integer
UINT typedef DWORD ;unsigned integer
WCHAR typedef WORD ;unicode character
WNDPROC typedef DWORD ;window procedure
WPARAM typedef DWORD ;word parameter
;
;
;
NULL equ 0 ;null
FALSE equ 0 ;boolean false
TRUE equ 1 ;boolean true
;
;------------------------------------------------------------------------------
;
BUTTON equ 0080h ;button class
EDIT equ 0081h ;edit class
STATIC equ 0082h ;static class
LISTBOX equ 0083h ;list box class
SCROLLBAR equ 0084h ;scroll bar class
COMBOBOX equ 0085h ;combo box class
;
;------------------------------------------------------------------------------
;
MAX_PATH equ 260 ;maximum path length
OFS_MAXPATHNAME equ 128 ;max OFSTRUCT path len
;
;------------------------------------------------------------------------------
;
INVALID_HANDLE_VALUE equ 0FFFFFFFFh ;invalid handle
INVALID_FILE_SIZE equ 0FFFFFFFFh ;invalid file size
INVALID_FILE_POINTER equ 0FFFFFFFFh ;invalid file pointer
;
;==============================================================================
;
; WIN32 CONSTANTS
;
;==============================================================================
;
; ========================
; bitmap compression types
; ========================
;
BI_RGB equ 0
BI_RLE8 equ 1
BI_RLE4 equ 2
BI_BITFIELDS equ 3
;
;------------------------------------------------------------------------------
;
; =======================
; button control messages
; =======================
;
BM_GETCHECK equ 00F0h
BM_SETCHECK equ 00F1h
BM_GETSTATE equ 00F2h
BM_SETSTATE equ 00F3h
BM_SETSTYLE equ 00F4h
BM_CLICK equ 00F5h
BM_GETIMAGE equ 00F6h
BM_SETIMAGE equ 00F7h
;
;------------------------------------------------------------------------------
;
; ============================
; button control notifications
; ============================
;
BN_CLICKED equ 0000h
BN_PAINT equ 0001h
BN_HILITE equ 0002h
BN_UNHILITE equ 0003h
BN_DISABLE equ 0004h
BN_DOUBLECLICKED equ 0005h
BN_SETFOCUS equ 0006h
BN_KILLFOCUS equ 0007h
;
BN_PUSHED equ BN_HILITE
BN_UNPUSHED equ BN_UNHILITE
BN_DBLCLK equ BN_DOUBLECLICKED
;
;------------------------------------------------------------------------------
;
; =====================
; button control styles
; =====================
;
BS_PUSHBUTTON equ 0000h
BS_DEFPUSHBUTTON equ 0001h
BS_CHECKBOX equ 0002h
BS_AUTOCHECKBOX equ 0003h
BS_RADIOBUTTON equ 0004h
BS_3STATE equ 0005h
BS_AUTO3STATE equ 0006h
BS_GROUPBOX equ 0007h
BS_USERBUTTON equ 0008h
BS_AUTORADIOBUTTON equ 0009h
BS_OWNERDRAW equ 000Bh
BS_LEFTTEXT equ 0020h
BS_TEXT equ 0000h
BS_ICON equ 0040h
BS_BITMAP equ 0080h
BS_LEFT equ 0100h
BS_RIGHT equ 0200h
BS_CENTER equ 0300h
BS_TOP equ 0400h
BS_BOTTOM equ 0800h
BS_VCENTER equ 0C00h
BS_PUSHLIKE equ 1000h
BS_MULTILINE equ 2000h
BS_NOTIFY equ 4000h
BS_FLAT equ 8000h
;
BS_RIGHTBUTTON equ BS_LEFTTEXT
;
;------------------------------------------------------------------------------
;
; ==================
; combo box messages
; ==================
;
CB_GETEDITSEL equ 0140h
CB_LIMITTEXT equ 0141h
CB_SETEDITSEL equ 0142h
CB_ADDSTRING equ 0143h
CB_DELETESTRING equ 0144h
CB_DIR equ 0145h
CB_GETCOUNT equ 0146h
CB_GETCURSEL equ 0147h
CB_GETLBTEXT equ 0148h
CB_GETLBTEXTLEN equ 0149h
CB_INSERTSTRING equ 014Ah
CB_RESETCONTENT equ 014Bh
CB_FINDSTRING equ 014Ch
CB_SELECTSTRING equ 014Dh
CB_SETCURSEL equ 014Eh
CB_SHOWDROPDOWN equ 014Fh
CB_GETITEMDATA equ 0150h
CB_SETITEMDATA equ 0151h
CB_GETDROPPEDCONTROLRECT equ 0152h
CB_SETITEMHEIGHT equ 0153h
CB_GETITEMHEIGHT equ 0154h
CB_SETEXTENDEDUI equ 0155h
CB_GETEXTENDEDUI equ 0156h
CB_GETDROPPEDSTATE equ 0157h
CB_FINDSTRINGEXACT equ 0158h
CB_SETLOCALE equ 0159h
CB_GETLOCALE equ 015Ah
CB_GETTOPINDEX equ 015Bh
CB_SETTOPINDEX equ 015Ch
CB_GETHORIZONTALEXTENT equ 015Dh
CB_SETHORIZONTALEXTENT equ 015Eh
CB_GETDROPPEDWIDTH equ 015Fh
CB_SETDROPPEDWIDTH equ 0160h
CB_INITSTORAGE equ 0161h
CB_MSGMAX equ 0162h
;
;------------------------------------------------------------------------------
;
; =======================
; combo box return values
; =======================
;
CB_OKAY equ 0
CB_ERR equ -1
CB_ERRSPACE equ -2
;
;------------------------------------------------------------------------------
;
; ======================
; CreateDIBitmap() codes
; ======================
;
CBM_INIT equ 4
;
;------------------------------------------------------------------------------
;
; ============================
; combo box notification codes
; ============================
;
CBN_ERRSPACE equ -1
CBN_SELCHANGE equ 1
CBN_DBLCLK equ 2
CBN_SETFOCUS equ 3
CBN_KILLFOCUS equ 4
CBN_EDITCHANGE equ 5
CBN_EDITUPDATE equ 6
CBN_DROPDOWN equ 7
CBN_CLOSEUP equ 8
CBN_SELENDOK equ 9
CBN_SELENDCANCEL equ 10
;
;------------------------------------------------------------------------------
;
; ================
; combo box styles
; ================
;
CBS_SIMPLE equ 0001h
CBS_DROPDOWN equ 0002h
CBS_DROPDOWNLIST equ 0003h
CBS_OWNERDRAWFIXED equ 0010h
CBS_OWNERDRAWVARIABLE equ 0020h
CBS_AUTOHSCROLL equ 0040h
CBS_OEMCONVERT equ 0080h
CBS_SORT equ 0100h
CBS_HASSTRINGS equ 0200h
CBS_NOINTEGRALHEIGHT equ 0400h
CBS_DISABLENOSCROLL equ 0800h
CBS_UPPERCASE equ 2000h
CBS_LOWERCASE equ 4000h
;
;------------------------------------------------------------------------------
;
; =================
; clipboard formats
; =================
;
CF_TEXT equ 0001h
CF_BITMAP equ 0002h
CF_METAFILEPICT equ 0003h
CF_SYLK equ 0004h
CF_DIF equ 0005h
CF_TIFF equ 0006h
CF_OEMTEXT equ 0007h
CF_DIB equ 0008h
CF_PALETTE equ 0009h
CF_PENDATA equ 000Ah
CF_RIFF equ 000Bh
CF_WAVE equ 000Ch
CF_UNICODETEXT equ 000Dh
CF_ENHMETAFILE equ 000Eh
CF_HDROP equ 000Fh
CF_LOCALE equ 0010h
CF_MAX equ 0011h
;
CF_OWNERDISPLAY equ 0080h
CF_DSPTEXT equ 0081h
CF_DSPBITMAP equ 0082h
CF_DSPMETAFILEPICT equ 0083h
CF_DSPENHMETAFILE equ 008Eh
;
CF_PRIVATEFIRST equ 0200h
CF_PRIVATELAST equ 02FFh
;
CF_GDIOBJFIRST equ 0300h
CF_GDIOBJLAST equ 03FFh
;
;------------------------------------------------------------------------------
;
; ===========
; color types
; ===========
;
COLOR_SCROLLBAR equ 0
COLOR_BACKGROUND equ 1
COLOR_ACTIVECAPTION equ 2
COLOR_INACTIVECAPTION equ 3
COLOR_MENU equ 4
COLOR_WINDOW equ 5
COLOR_WINDOWFRAME equ 6
COLOR_MENUTEXT equ 7
COLOR_WINDOWTEXT equ 8
COLOR_CAPTIONTEXT equ 9
COLOR_ACTIVEBORDER equ 10
COLOR_INACTIVEBORDER equ 11
COLOR_APPWORKSPACE equ 12
COLOR_HIGHLIGHT equ 13
COLOR_HIGHLIGHTTEXT equ 14
COLOR_BTNFACE equ 15
COLOR_BTNSHADOW equ 16
COLOR_GRAYTEXT equ 17
COLOR_BTNTEXT equ 18
COLOR_INACTIVECAPTIONTEXT equ 19
COLOR_BTNHIGHLIGHT equ 20
COLOR_3DDKSHADOW equ 21
COLOR_3DLIGHT equ 22
COLOR_INFOTEXT equ 23
COLOR_INFOBK equ 24
;
COLOR_DESKTOP equ COLOR_BACKGROUND
COLOR_3DFACE equ COLOR_BTNFACE
COLOR_3DSHADOW equ COLOR_BTNSHADOW
COLOR_3DHIGHLIGHT equ COLOR_BTNHIGHLIGHT
COLOR_3DHILIGHT equ COLOR_BTNHIGHLIGHT
COLOR_BTNHILIGHT equ COLOR_BTNHIGHLIGHT
;
;------------------------------------------------------------------------------
;
; ===================
; network connections
; ===================
;
CONNECT_UPDATE_PROFILE equ 00000001h
CONNECT_UPDATE_RECENT equ 00000002h
CONNECT_TEMPORARY equ 00000004h
CONNECT_INTERACTIVE equ 00000008h
CONNECT_PROMPT equ 00000010h
CONNECT_NEED_DRIVE equ 00000020h
CONNECT_REFCOUNT equ 00000040h
CONNECT_REDIRECT equ 00000080h
CONNECT_LOCALDRIVE equ 00000100h
CONNECT_CURRENT_MEDIA equ 00000200h
;
NETPROPERTY_PERSISTENT equ 1
;
;------------------------------------------------------------------------------
;
; ====================
; thread context flags
; ====================
;
CONTEXT_i386 equ 00010000h
CONTEXT_i486 equ 00010000h
;
CONTEXT_CONTROL equ CONTEXT_i386+00000001h
CONTEXT_INTEGER equ CONTEXT_i386+00000002h
CONTEXT_SEGMENTS equ CONTEXT_i386+00000004h
CONTEXT_FLOATING_POINT equ CONTEXT_i386+00000008h
CONTEXT_DEBUG_REGISTERS equ CONTEXT_i386+00000010h
;
CONTEXT_FULL equ CONTEXT_CONTROL+\
CONTEXT_INTEGER+\
CONTEXT_SEGMENTS
;
SIZE_OF_80387_REGISTERS equ 80
;
;------------------------------------------------------------------------------
;
; ==========
; code pages
; ==========
;
CP_ACP equ 0
CP_OEMCP equ 1
CP_MACCP equ 2
;
;------------------------------------------------------------------------------
;
; ============
; class styles
; ============
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -