Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

2418 lines
64 KiB

;*************************************************************************
;
; WINDOWS.INC - Windows assembly language structures & constants
;
;*************************************************************************
;
; Conditional Block includes: (True states)
; NOTEXT - don't include TextMetric struc & text drawing modes & stock objs.
; NORASTOPS - don't include binary and ternary raster ops.
; NOVK - don't include virtual key definitions
; NOMB - don't include message box definitions
; NOWM - don't include window messages
;
;
FALSE = 0
TRUE = 1
NULL = 0
;*******************************************************************
;
; Rectangle
;
;*******************************************************************
RECT struc
rcLeft dw ?
rcTop dw ?
rcRight dw ?
rcBottom dw ?
RECT ends
;*******************************************************************
;
; Window Class structure
;
;*******************************************************************
WNDCLASS struc
clsStyle dw ? ; class style
clsLpfnWndProc dd ?
clsCbClsExtra dw ?
clsCbWndExtra dw ?
clsHInstance dw ? ; instance handle
clsHIcon dw ? ; class icon handle
clsHCursor dw ? ; class cursor handle
clsHbrBackground dw ? ; class background brush
clsLpszMenuName dd ? ; menu name
clsLpszClassName dd ? ; far ptr to class name
WNDCLASS ends
IFNDEF NOTEXT
TEXTMETRIC struc
tmHeight dw ?
tmAscent dw ?
tmDescent dw ?
tmIntLeading dw ?
tmExtLeading dw ?
tmAveCharWidth dw ?
tmMaxCharWidth dw ?
tmWeight dw ?
tmItalic db ?
tmUnderlined db ?
tmStruckOut db ?
tmFirstChar db ?
tmLastChar db ?
tmDefaultChar db ?
tmBreakChar db ?
tmPitch db ?
tmCharSet db ?
tmOverhang dw ?
tmAspectX dw ?
tmAspectY dw ?
TEXTMETRIC ends
LF_FACESIZE EQU 32
LOGFONT struc
lfHeight dw ?
lfWidth dw ?
lfEscapement dw ?
lfOrientation dw ?
lfWeight dw ?
lfItalic db ?
lfUnderline db ?
lfStrikeOut db ?
lfCharSet db ?
lfOutPrecision db ?
lfClipPrecision db ?
lfQuality db ?
lfPitchAndFamily db ?
lfFaceName db LF_FACESIZE dup(?)
LOGFONT ends
LOGBRUSH struc
lbStyle dw ?
lbColor dd ?
lbHatch dw ?
LOGBRUSH ends
;
; Text Drawing modes
;
TRANSPARENT = 1
OPAQUE = 2
;
; Mapping Modes
;
MM_TEXT = 1
MM_LOMETRIC = 2
MM_HIMETRIC = 3
MM_LOENGLISH = 4
MM_HIENGLISH = 5
MM_TWIPS = 6
MM_ISOTROPIC = 7
MM_ANISOTROPIC = 8
;
; Coordinate Modes
;
ABSOLUTE = 1
RELATIVE = 2
;
; Stock Logical Objects
;
WHITE_BRUSH = 0
LTGRAY_BRUSH = 1
GRAY_BRUSH = 2
DKGRAY_BRUSH = 3
BLACK_BRUSH = 4
NULL_BRUSH = 5
HOLLOW_BRUSH = 5
WHITE_PEN = 6
BLACK_PEN = 7
NULL_PEN = 8
DOT_MARKER = 9
OEM_FIXED_FONT = 10
ANSI_FIXED_FONT = 11
ANSI_VAR_FONT = 12
SYSTEM_FONT = 13
DEVICE_DEFAULT_FONT = 14
DEFAULT_PALETTE = 15
SYSTEM_FIXED_FONT = 16
ENDIF
;
; Brush Styles
;
BS_SOLID = 0
BS_NULL = 1
BS_HOLLOW = BS_NULL
BS_HATCHED = 2
BS_PATTERN = 3
BS_INDEXED = 4
BS_DIBPATTERN = 5
;
; Hatch Styles
;
HS_HORIZONTAL = 0 ; -----
HS_VERTICAL = 1 ; |||||
HS_FDIAGONAL = 2 ; \\\\\
HS_BDIAGONAL = 3 ; /////
HS_CROSS = 4 ; +++++
HS_DIAGCROSS = 5 ; xxxxx
;
; Pen Styles
;
PS_SOLID = 0
PS_DASH = 1 ; -------
PS_DOT = 2 ; .......
PS_DASHDOT = 3 ; _._._._
PS_DASHDOTDOT = 4 ; _.._.._
PS_NULL = 5
PS_INSIDEFRAME = 6
;
; Device Parameters for GetDeviceCaps()
;
DRIVERVERSION =0 ; Device driver version
TECHNOLOGY =2 ; Device classification
HORZSIZE =4 ; Horizontal size in millimeters
VERTSIZE =6 ; Vertical size in millimeters
HORZRES =8 ; Horizontal width in pixels
VERTRES =10 ; Vertical width in pixels
BITSPIXEL =12 ; Number of bits per pixel
PLANES =14 ; Number of planes
NUMBRUSHES =16 ; Number of brushes the device has
NUMPENS =18 ; Number of pens the device has
NUMMARKERS =20 ; Number of markers the device has
NUMFONTS =22 ; Number of fonts the device has
NUMCOLORS =24 ; Number of colors the device supports
PDEVICESIZE =26 ; Size required for device descriptor
CURVECAPS =28 ; Curve capabilities
LINECAPS =30 ; Line capabilities
POLYGONALCAPS =32 ; Polygonal capabilities
TEXTCAPS =34 ; Text capabilities
CLIPCAPS =36 ; Clipping capabilities
RASTERCAPS =38 ; Bitblt capabilities
ASPECTX =40 ; Length of the X leg
ASPECTY =42 ; Length of the Y leg
ASPECTXY =44 ; Length of the hypotenuse
LOGPIXELSX =88 ; Logical pixels/inch in X
LOGPIXELSY =90 ; Logical pixels/inch in Y
SIZEPALETTE =104 ; Number of entries in physical palette
NUMRESERVED =106 ; Number of reserved entries in palette
COLORRES =108 ; Actual color resolution
;
ifndef NOGDICAPMASKS
;
; Device Capability Masks:
;
; Device Technologies
DT_PLOTTER = 0 ; /* Vector plotter */
DT_RASDISPLAY = 1 ; /* Raster display */
DT_RASPRINTER = 2 ; /* Raster printer */
DT_RASCAMERA = 3 ; /* Raster camera */
DT_CHARSTREAM = 4 ; /* Character-stream, PLP */
DT_METAFILE = 5 ; /* Metafile, VDM */
DT_DISPFILE = 6 ; /* Display-file */
;
; Curve Capabilities
CC_NONE = 0 ; /* Curves not supported */
CC_CIRCLES = 1 ; /* Can do circles */
CC_PIE = 2 ; /* Can do pie wedges */
CC_CHORD = 4 ; /* Can do chord arcs */
CC_ELLIPSES = 8 ; /* Can do ellipese */
CC_WIDE = 16 ; /* Can do wide lines */
CC_STYLED = 32 ; /* Can do styled lines */
CC_WIDESTYLED = 64 ; /* Can do wide styled lines */
CC_INTERIORS = 128; /* Can do interiors */
;
; Line Capabilities
LC_NONE = 0 ; /* Lines not supported */
LC_POLYLINE = 2 ; /* Can do polylines */
LC_MARKER = 4 ; /* Can do markers */
LC_POLYMARKER = 8 ; /* Can do polymarkers */
LC_WIDE = 16 ; /* Can do wide lines */
LC_STYLED = 32 ; /* Can do styled lines */
LC_WIDESTYLED = 64 ; /* Can do wide styled lines */
LC_INTERIORS = 128; /* Can do interiors */
;
; Polygonal Capabilities
PC_NONE = 0 ; /* Polygonals not supported */
PC_POLYGON = 1 ; /* Can do polygons */
PC_RECTANGLE = 2 ; /* Can do rectangles */
PC_WINDPOLYGON = 4 ; /* Can do winding polygons */
PC_TRAPEZOID = 4 ; /* Can do trapezoids */
PC_SCANLINE = 8 ; /* Can do scanlines */
PC_WIDE = 16 ; /* Can do wide borders */
PC_STYLED = 32 ; /* Can do styled borders */
PC_WIDESTYLED = 64 ; /* Can do wide styled borders */
PC_INTERIORS = 128; /* Can do interiors */
;
; Polygonal Capabilities */
CP_NONE = 0 ; /* No clipping of output */
CP_RECTANGLE = 1 ; /* Output clipped to rects */
;
; Text Capabilities
TC_OP_CHARACTER = 0001h ; /* Can do OutputPrecision CHARACTER */
TC_OP_STROKE = 0002h ; /* Can do OutputPrecision STROKE */
TC_CP_STROKE = 0004h ; /* Can do ClipPrecision STROKE */
TC_CR_90 = 0008h ; /* Can do CharRotAbility 90 */
TC_CR_ANY = 0010h ; /* Can do CharRotAbility ANY */
TC_SF_X_YINDEP = 0020h ; /* Can do ScaleFreedom X_YINDEPENDENT */
TC_SA_DOUBLE = 0040h ; /* Can do ScaleAbility DOUBLE */
TC_SA_INTEGER = 0080h ; /* Can do ScaleAbility INTEGER */
TC_SA_CONTIN = 0100h ; /* Can do ScaleAbility CONTINUOUS */
TC_EA_DOUBLE = 0200h ; /* Can do EmboldenAbility DOUBLE */
TC_IA_ABLE = 0400h ; /* Can do ItalisizeAbility ABLE */
TC_UA_ABLE = 0800h ; /* Can do UnderlineAbility ABLE */
TC_SO_ABLE = 1000h ; /* Can do StrikeOutAbility ABLE */
TC_RA_ABLE = 2000h ; /* Can do RasterFontAble ABLE */
TC_VA_ABLE = 4000h ; /* Can do VectorFontAble ABLE */
TC_RESERVED = 8000h
;
; Raster Capabilities
RC_BITBLT = 1 ; /* Can do standard BLT. */
RC_BANDING = 2 ; /* Device requires banding support */
RC_SCALING = 4 ; /* Device requires scaling support */
RC_BITMAP64 = 8 ; /* Device can support >64K bitmap */
RC_GDI20_OUTPUT = 0010h ; /* has 2.0 output calls */
RC_DI_BITMAP = 0080h ; /* supports DIB to memory */
RC_PALETTE = 0100h ; /* supports a palette */
RC_DIBTODEV = 0200h ; /* supports DIBitsToDevice */
RC_BIGFONT = 0400h ; /* supports >64K fonts */
RC_STRETCHBLT = 0800h ; /* supports StretchBlt */
RC_FLOODFILL = 1000h ; /* supports FloodFill */
RC_STRETCHDIB = 2000h ; /* supports StretchDIBits */
endif ;NOGDICAPMASKS
; palette entry flags
;
PC_RESERVED = 1 ;/* palette index used for animation */
PC_EXPLICIT = 2 ;/* palette index is explicit to device */
PC_NOCOLLAPSE = 4 ;/* do not match color to system palette */
; DIB color table identifiers
;
DIB_RGB_COLORS = 0 ;/* color table in RGBTriples */
DIB_PAL_COLORS = 1 ;/* color table in palette indices */
;
;constants for Get/SetSystemPaletteUse()
;
SYSPAL_STATIC = 1
SYSPAL_NOSTATIC = 2
; constants for CreateDIBitmap
CBM_INIT = 4 ;/* initialize bitmap */
;
; Bitmap format constants
BI_RGB = 0
BI_RLE8 = 1
BI_RLE4 = 2
;
;
ANSI_CHARSET = 0
SYMBOL_CHARSET = 2
OEM_CHARSET = 255
;
; styles for CombineRgn
;
RGN_AND = 1
RGN_OR = 2
RGN_XOR = 3
RGN_DIFF = 4
RGN_COPY = 5
;
; Predefined cursor & icon IDs
;
IDC_ARROW = 32512
IDC_IBEAM = 32513
IDC_WAIT = 32514
IDC_CROSS = 32515
IDC_UPARROW = 32516
IDC_SIZE = 32640
IDC_ICON = 32641
IDC_SIZENWSE = 32642
IDC_SIZENESW = 32643
IDC_SIZEWE = 32644
IDC_SIZENS = 32645
IDI_APPLICATION = 32512
IDI_HAND = 32513
IDI_QUESTION = 32514
IDI_EXCLAMATION = 32515
IDI_ASTERISK = 32516
;
; OEM Resource Ordinal Numbers */
;
OBM_CLOSE = 32754
OBM_UPARROW = 32753
OBM_DNARROW = 32752
OBM_RGARROW = 32751
OBM_LFARROW = 32750
OBM_REDUCE = 32749
OBM_ZOOM = 32748
OBM_RESTORE = 32747
OBM_REDUCED = 32746
OBM_ZOOMD = 32745
OBM_RESTORED = 32744
OBM_UPARROWD = 32743
OBM_DNARROWD = 32742
OBM_RGARROWD = 32741
OBM_LFARROWD = 32740
OBM_MNARROW = 32739
OBM_COMBO = 32738
OBM_UPARROWI = 32737
OBM_DNARROWI = 32736
OBM_RGARROWI = 32735
OBM_LFARROWI = 32734
OBM_OLD_CLOSE = 32767
OBM_SIZE = 32766
OBM_OLD_UPARROW = 32765
OBM_OLD_DNARROW = 32764
OBM_OLD_RGARROW = 32763
OBM_OLD_LFARROW = 32762
OBM_BTSIZE = 32761
OBM_CHECK = 32760
OBM_CHECKBOXES = 32759
OBM_BTNCORNERS = 32758
OBM_OLD_REDUCE = 32757
OBM_OLD_ZOOM = 32756
OBM_OLD_RESTORE = 32755
OCR_NORMAL = 32512
OCR_IBEAM = 32513
OCR_WAIT = 32514
OCR_CROSS = 32515
OCR_UP = 32516
OCR_SIZE = 32640
OCR_ICON = 32641
OCR_SIZENWSE = 32642
OCR_SIZENESW = 32643
OCR_SIZEWE = 32644
OCR_SIZENS = 32645
OCR_SIZEALL = 32646
OCR_ICOCUR = 32647
OIC_SAMPLE = 32512
OIC_HAND = 32513
OIC_QUES = 32514
OIC_BANG = 32515
OIC_NOTE = 32516
;
; Scroll bar constants
;
SB_HORZ = 0
SB_VERT = 1
SB_CTL = 2
SB_BOTH = 3
;
; Scroll Commands
;
SB_LINEUP = 0
SB_LINEDOWN = 1
SB_PAGEUP = 2
SB_PAGEDOWN = 3
SB_THUMBPOSITION = 4
SB_THUMBTRACK = 5
SB_TOP = 6
SB_BOTTOM = 7
SB_ENDSCROLL = 8
;
; MessageBox type flags
;
IFNDEF NOMB
MB_OK = 0000H
MB_OKCANCEL = 0001H
MB_ABORTRETRYIGNORE = 0002H
MB_YESNOCANCEL = 0003H
MB_YESNO = 0004H
MB_RETRYCANCEL = 0005H
MB_ICONHAND = 0010H
MB_ICONQUESTION = 0020H
MB_ICONEXCLAMATION = 0030H
MB_ICONASTERISK = 0040H
MB_DEFBUTTON1 = 0000H
MB_DEFBUTTON2 = 0100H
MB_DEFBUTTON3 = 0200H
MB_APPLMODAL = 0000H
MB_SYSTEMMODAL = 1000H
MB_TASKMODAL = 2000H
MB_NOFOCUS = 8000H
;
; Conventional dialog box and message box command IDs
;
IDOK = 1
IDCANCEL = 2
IDABORT = 3
IDRETRY = 4
IDIGNORE = 5
IDYES = 6
IDNO = 7
;
; Flags for OpenFile
;
OF_READ = 0000H
OF_WRITE = 0001H
OF_READWRITE = 0002H
OF_SHARE_COMPAT = 0000H
OF_SHARE_EXCLUSIVE = 0010H
OF_SHARE_DENY_WRITE = 0020H
OF_SHARE_DENY_READ = 0030H
OF_SHARE_DENY_NONE = 0040H
OF_PARSE = 0100H
OF_DELETE = 0200H
OF_VERIFY = 0400H ; Used with OF_REOPEN
OF_SEARCH = 0400H ; Used without OF_REOPEN
OF_CANCEL = 0800H
OF_CREATE = 1000H
OF_PROMPT = 2000H
OF_EXIST = 4000H
OF_REOPEN = 8000H
TF_FORCEDRIVE = 80H
OPENSTRUC STRUC
opLen db ?
opDisk db ?
opXtra dw ?
opDate dw ?
opTime dw ?
opFile db 120 dup (?)
OPENSTRUC ENDS
;
; DrawText format flags
;
DT_LEFT = 00H
DT_CENTER = 01H
DT_RIGHT = 02H
DT_TOP = 00H
DT_VCENTER = 04H
DT_BOTTOM = 08H
DT_WORDBREAK = 10H
DT_SINGLELINE = 20H
DT_EXPANDTABS = 40H
DT_TABSTOP = 80H
DT_NOCLIP = 0100H
DT_EXTERNALLEADING = 0200H
DT_CALCRECT = 0400H
DT_NOPREFIX = 0800H
DT_INTERNAL = 1000H
ENDIF
;
; ExtFloodFill style flags
;
FLOODFILLBORDER = 0
FLOODFILLSURFACE = 1
;
; Memory manager flags
;
LMEM_FIXED = 0000h
LMEM_MOVEABLE = 0002h
LMEM_NOCOMPACT = 0010H
LMEM_NODISCARD = 0020H
LMEM_ZEROINIT = 0040h
LMEM_MODIFY = 0080H
LMEM_DISCARDABLE= 0F00h
LHND = LMEM_MOVEABLE+LMEM_ZEROINIT
LPTR = LMEM_FIXED+LMEM_ZEROINIT
; Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE)
LMEM_DISCARDED = 4000H
LMEM_LOCKCOUNT = 00FFH
NONZEROLHND = LMEM_MOVEABLE
NONZEROLPTR = LMEM_FIXED
LNOTIFY_OUTOFMEM = 0 ;Internal
LNOTIFY_MOVE = 1 ;Internal
LNOTIFY_DISCARD = 2 ;Internal
GMEM_FIXED = 0000h
GMEM_MOVEABLE = 0002h
GMEM_NOCOMPACT = 0010h
GMEM_NODISCARD = 0020h
GMEM_ZEROINIT = 0040h
GMEM_MODIFY = 0080h
GMEM_DISCARDABLE= 0100h
GMEM_NOT_BANKED = 1000h
GMEM_DDESHARE = 2000h
GMEM_SHARE = 2000h
GMEM_NOTIFY = 4000h
GMEM_LOWER = GMEM_NOT_BANKED
GHND = GMEM_MOVEABLE+GMEM_ZEROINIT
GPTR = GMEM_FIXED+GMEM_ZEROINIT
; Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE)
GMEM_DISCARDED = 4000h
GMEM_LOCKCOUNT = 00FFh
; Flags returned by GetWinFlags
WF_PMODE = 0001h
WF_CPU286 = 0002h
WF_CPU386 = 0004h
WF_CPU486 = 0008h
WF_STANDARD = 0010h
WF_WIN286 = 0010h
WF_ENHANCED = 0020h
WF_WIN386 = 0020h
WF_CPU086 = 0040h
WF_CPU186 = 0080h
WF_LARGEFRAME = 0100h
WF_SMALLFRAME = 0200h
WF_80x87 = 0400h
WF_PAGING = 0800h
WF_WLO = 8000h
; WEP fSystemExit flag values
WEP_SYSTEM_EXIT = 1
WEP_FREE_DLL = 0
; GetAppCompatFlags flag values ;Internal
GACF_IGNORENODISCARD = 0001h ;Internal
GACF_FORCETEXTBAND = 0002h ;Internal
GACF_ONELANDGRXBAND = 0004h ;Internal
GACF_IGNORETOPMOST = 0008h ;Internal
GACF_CALLTTDEVICE = 0010h ;Internal
GACF_MULTIPLEBANDS = 0020h ;Internal
GACF_ALWAYSSENDNCPAINT = 0040h ;Internal
GACF_EDITSETTEXTMUNGE = 0080h ;Internal
GACF_MOREEXTRAWNDWORDS = 0100h ;Internal
GACF_TTIGNORERASTERDUPE = 0200h ;Internal
GACF_HACKWINFLAGS = 0400h ;Internal
GACF_DELAYHWHNDSHAKECHK = 0800h ;Internal
; Virtual Keys, Standard Set
IFNDEF NOVK
VK_LBUTTON = 01H
VK_RBUTTON = 02H
VK_CANCEL = 03H
VK_BACK = 08H
VK_TAB = 09H
VK_CLEAR = 0cH
VK_RETURN = 0dH
VK_SHIFT = 10H
VK_CONTROL = 11H
VK_MENU = 12H
VK_PAUSE = 13H
VK_CAPITAL = 14H
VK_ESCAPE = 1bH
VK_SPACE = 20H
VK_PRIOR = 21H
VK_NEXT = 22H
VK_END = 23H
VK_HOME = 24H
VK_LEFT = 25H
VK_UP = 26H
VK_RIGHT = 27H
VK_DOWN = 28H
; VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'
; VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '0'
VK_PRINT = 2aH
VK_EXECUTE = 2bH
VK_SNAPSHOT = 2ch ; Printscreen key..
VK_INSERT = 2dH
VK_DELETE = 2eH
VK_HELP = 2fH
VK_NUMPAD0 = 60H
VK_NUMPAD1 = 61H
VK_NUMPAD2 = 62H
VK_NUMPAD3 = 63H
VK_NUMPAD4 = 64H
VK_NUMPAD5 = 65H
VK_NUMPAD6 = 66H
VK_NUMPAD7 = 67H
VK_NUMPAD8 = 68H
VK_NUMPAD9 = 69H
VK_MULTIPLY = 6AH
VK_ADD = 6BH
VK_SEPARATER = 6CH
VK_SUBTRACT = 6DH
VK_DECIMAL = 6EH
VK_DIVIDE = 6FH
VK_F1 = 70H
VK_F2 = 71H
VK_F3 = 72H
VK_F4 = 73H
VK_F5 = 74H
VK_F6 = 75H
VK_F7 = 76H
VK_F8 = 77H
VK_F9 = 78H
VK_F10 = 79H
VK_F11 = 7aH
VK_F12 = 7bH
VK_F13 = 7cH
VK_F14 = 7dH
VK_F15 = 7eH
VK_F16 = 7fH
VK_F17 = 80H
VK_F18 = 81H
VK_F19 = 82H
VK_F20 = 83H
VK_F21 = 84H
VK_F22 = 85H
VK_F23 = 86H
VK_F24 = 87H
VK_NUMLOCK = 90H
VK_SCROLL = 91H
ENDIF
IFNDEF NOWH
; SetWindowsHook() codes
WH_NULLNODE = (-100) ;Internal
WH_MSGFILTER = (-1)
WH_JOURNALRECORD = 0
WH_JOURNALPLAYBACK = 1
WH_KEYBOARD = 2
WH_GETMESSAGE = 3
WH_CALLWNDPROC = 4
IFNDEF NOWIN31
WH_CBT = 5
WH_SYSMSGFILTER = 6
WH_MOUSE = 7
WH_HARDWARE = 8
WH_DEBUG = 9
ENDIF
;
; Hook Codes
HC_GETLPLPFN = (-3)
HC_LPLPFNNEXT = (-2)
HC_LPFNNEXT = (-1)
HC_ACTION = 0
HC_GETNEXT = 1
HC_SKIP = 2
HC_NOREM = 3
HC_NOREMOVE = 3
HC_SYSMODALON = 4
HC_SYSMODALOFF = 5
;
; CBT Hook Codes
HCBT_MOVESIZE = 0
HCBT_MINMAX = 1
HCBT_QS = 2
HCBT_CREATEWND = 3
HCBT_DESTROYWND = 4
HCBT_ACTIVATE = 5
HCBT_CLICKSKIPPED = 6
HCBT_KEYSKIPPED = 7
HCBT_SYSCOMMAND = 8
HCBT_SETFOCUS = 9
;
; WH_MSGFILTER Filter Proc Codes
MSGF_DIALOGBOX = 0
MSGF_MESSAGEBOX = 1 ;Internal
MSGF_MENU = 2
MSGF_MOVE = 3
MSGF_SIZE = 4
MSGF_SCROLLBAR = 5
MSGF_NEXTWINDOW = 6
;
; Window Manager Hook Codes
WC_INIT = 1
WC_SWP = 2
WC_DEFWINDOWPROC = 3
WC_MINMAX = 4
WC_MOVE = 5
WC_SIZE = 6
WC_DRAWCAPTION = 7
;
; Message Structure used in Journaling
EVENTMSG struc
message dw ?
paramL dw ?
paramH dw ?
time dd ?
EVENTMSG ends
ENDIF ;NOWH
; Window field offsets for GetWindowLong() and GetWindowWord()
GWL_WNDPROC = (-4)
GWW_HINSTANCE = (-6)
GWW_HWNDPARENT = (-8)
GWW_ID = (-12)
GWL_STYLE = (-16)
GWL_EXSTYLE = (-20)
; GetWindow() Constants
GW_HWNDFIRST = 0
GW_HWNDLAST = 1
GW_HWNDNEXT = 2
GW_HWNDPREV = 3
GW_OWNER = 4
GW_CHILD = 5
; Class field offsets for GetClassLong() and GetClassWord()
GCL_MENUNAME = (-8)
GCW_HBRBACKGROUND = (-10)
GCW_HCURSOR = (-12)
GCW_HICON = (-14)
GCW_HMODULE = (-16)
GCW_CBWNDEXTRA = (-18)
GCW_CBCLSEXTRA = (-20)
GCL_WNDPROC = (-24)
GCW_STYLE = (-26)
; WinWhere() Area Codes
HTERROR = (-2)
HTTRANSPARENT = (-1)
HTNOWHERE = 0
HTCLIENT = 1
HTCAPTION = 2
HTSYSMENU = 3
HTGROWBOX = 4
HTSIZE = HTGROWBOX
HTMENU = 5
HTHSCROLL = 6
HTVSCROLL = 7
HTREDUCE = 8
HTZOOM = 9
HTLEFT = 10
HTRIGHT = 11
HTTOP = 12
HTTOPLEFT = 13
HTTOPRIGHT = 14
HTBOTTOM = 15
HTBOTTOMLEFT = 16
HTBOTTOMRIGHT = 17
HTSIZEFIRST = HTLEFT
HTSIZELAST = HTBOTTOMRIGHT
;*************************************************************************
;
; Misc structures & constants
;
;*************************************************************************
IFNDEF NOMST
POINT struc
ptX dw ?
ptY dw ?
POINT ends
LOGPEN struc
lopnStyle dw ?
lopnWidth db (SIZE POINT) DUP(?)
lopnColor dd ?
LOGPEN ends
BITMAP STRUC
bmType DW ?
bmWidth DW ?
bmHeight DW ?
bmWidthBytes DW ?
bmPlanes DB ?
bmBitsPixel DB ?
bmBits DD ?
BITMAP ENDS
RGBTRIPLE struc
rgbBlue db ?
rgbGreen db ?
rgbRed db ?
RGBTRIPLE ends
RGBQUAD struc
rgbqBlue db ?
rgbqGreen db ?
rgbqRed db ?
rgbqReserved db ?
RGBQUAD ends
; structures for defining DIBs
BITMAPCOREHEADER struc
bcSize dd ?
bcWidth dw ?
bcHeight dw ?
bcPlanes dw ?
bcBitCount dw ?
BITMAPCOREHEADER ends
BITMAPINFOHEADER struc
biSize dd ?
biWidth dd ?
biHeight dd ?
biPlanes dw ?
biBitCount dw ?
biCompression dd ?
biSizeImage dd ?
biXPelsPerMeter dd ?
biYPelsPerMeter dd ?
biClrUsed dd ?
biClrImportant dd ?
BITMAPINFOHEADER ends
BITMAPINFO struc
bmiHeader db (SIZE BITMAPINFOHEADER) DUP (?)
bmiColors db ? ; array of RGBQUADs
BITMAPINFO ends
BITMAPCOREINFO struc
bmciHeader db (SIZE BITMAPCOREHEADER) DUP (?)
bmciColors db ? ; array of RGBTRIPLEs
BITMAPCOREINFO ends
BITMAPFILEHEADER struc
bfType dw ?
bfSize dd ?
bfReserved1 dw ?
bfReserved2 dw ?
bfOffBits dd ?
BITMAPFILEHEADER ends
WNDSTRUC struc
WSwndStyle dd ?
WSwndID dw ?
WSwndText dw ?
WSwndParent dw ?
WSwndInstance dw ?
WSwndClassProc dd ?
WNDSTRUC ends
;
; Message structure
;
MSGSTRUCT struc
msHWND dw ?
msMESSAGE dw ?
msWPARAM dw ?
msLPARAM dd ?
msTIME dd ?
msPT dd ?
MSGSTRUCT ends
NEWPARMS struc
nprmHwnd dw ?
nprmCmd db ?
NEWPARMS ends
ENDIF
PAINTSTRUCT STRUC
PShdc DW ?
PSfErase DW ?
PSrcPaint DB size RECT dup(?)
PSfRestore DW ?
PSfIncUpdate DW ?
PSrgbReserved DB 16 dup(?)
PAINTSTRUCT ENDS
CREATESTRUCT struc
cs_lpCreateParams dd ?
cs_hInstance dw ?
cs_hMenu dw ?
cs_hwndParent dw ?
cs_cy dw ?
cs_cx dw ?
cs_y dw ?
cs_x dw ?
cs_style dd ?
cs_lpszName dd ?
cs_lpszClass dd ?
cs_dwExStyle dd ?
CREATESTRUCT ends
;
; PostError constants
;
WARNING = 0 ; command codes
MINOR_ERROR = 1
FATAL_ERROR = 2
IGNORE = 0 ; response codes
RETRY = 1
ABORT = 2
;
; GDI-related constants & commands
;
ERRORREGION = 0
NULLREGION = 1
SIMPLEREGION = 2
COMPLEXREGION = 3
IFNDEF NORASTOPS
;
; Binary raster ops
;
R2_BLACK = 1
R2_NOTMERGEPEN = 2
R2_MASKNOTPEN = 3
R2_NOTCOPYPEN = 4
R2_MASKPENNOT = 5
R2_NOT = 6
R2_XORPEN = 7
R2_NOTMASKPEN = 8
R2_MASKPEN = 9
R2_NOTXORPEN = 10
R2_NOP = 11
R2_MERGENOTPEN = 12
R2_COPYPEN = 13
R2_MERGEPENNOT = 14
R2_MERGEPEN = 15
R2_WHITE = 16
;
; Ternary raster ops
;
SRCCOPY_L = 0020h ;dest=source
SRCCOPY_H = 00CCh
SRCPAINT_L = 0086h ;dest=source OR dest
SRCPAINT_H = 00EEh
SRCAND_L = 00C6h ;dest=source AND dest
SRCAND_H = 0088h
SRCINVERT_L = 0046h ;dest= source XOR dest
SRCINVERT_H = 0066h
SRCERASE_L = 0328h ;dest= source AND (not dest )
SRCERASE_H = 0044h
NOTSRCCOPY_L = 0008h ;dest= (not source)
NOTSRCCOPY_H = 0033h
NOTSRCERASE_L = 00A6h ;dest= (not source) AND (not dest)
NOTSRCERASE_H = 0011h
MERGECOPY_L = 00CAh ;dest= (source AND pattern)
MERGECOPY_H = 00C0h
MERGEPAINT_L = 0226h ;dest= (source AND pattern) OR dest
MERGEPAINT_H = 00BBh
PATCOPY_L = 0021h ;dest= pattern
PATCOPY_H = 00F0h
PATPAINT_L = 0A09h ;DPSnoo
PATPAINT_H = 00FBh
PATINVERT_L = 0049h ;dest= pattern XOR dest
PATINVERT_H = 005Ah
DSTINVERT_L = 0009h ;dest= (not dest)
DSTINVERT_H = 0055h
BLACKNESS_L = 0042h ;dest= BLACK
BLACKNESS_H = 0000h
WHITENESS_L = 0062h ;dest= WHITE
WHITENESS_H = 00FFh
;
; StretchBlt modes
;
BLACKONWHITE = 1
WHITEONBLACK = 2
COLORONCOLOR = 3
;
; New StretchBlt modes
;
STRETCH_ANDSCANS = 1
STRETCH_ORSCANS = 2
STRETCH_DELETESCANS = 3
;
; PolyFill modes
;
ALTERNATE = 1
WINDING = 2
ENDIF
;
; Text Alignment Options
;
TA_NOUPDATECP = 0
TA_UPDATECP = 1
TA_LEFT = 0
TA_RIGHT = 2
TA_CENTER = 6
TA_TOP = 0
TA_BOTTOM = 8
TA_BASELINE = 24
ETO_GRAYED = 1
ETO_OPAQUE = 2
ETO_CLIPPED = 4
ASPECT_FILTERING = 1
ifndef NOMETAFILE
; Metafile Functions */
META_SETBKCOLOR = 0201h
META_SETBKMODE = 0102h
META_SETMAPMODE = 0103h
META_SETROP2 = 0104h
META_SETRELABS = 0105h
META_SETPOLYFILLMODE = 0106h
META_SETSTRETCHBLTMODE = 0107h
META_SETTEXTCHAREXTRA = 0108h
META_SETTEXTCOLOR = 0209h
META_SETTEXTJUSTIFICATION = 020Ah
META_SETWINDOWORG = 020Bh
META_SETWINDOWEXT = 020Ch
META_SETVIEWPORTORG = 020Dh
META_SETVIEWPORTEXT = 020Eh
META_OFFSETWINDOWORG = 020Fh
META_SCALEWINDOWEXT = 0400h
META_OFFSETVIEWPORTORG = 0211h
META_SCALEVIEWPORTEXT = 0412h
META_LINETO = 0213h
META_MOVETO = 0214h
META_EXCLUDECLIPRECT = 0415h
META_INTERSECTCLIPRECT = 0416h
META_ARC = 0817h
META_ELLIPSE = 0418h
META_FLOODFILL = 0419h
META_PIE = 081Ah
META_RECTANGLE = 041Bh
META_ROUNDRECT = 061Ch
META_PATBLT = 061Dh
META_SAVEDC = 001Eh
META_SETPIXEL = 041Fh
META_OFFSETCLIPRGN = 0220h
META_TEXTOUT = 0521h
META_BITBLT = 0922h
META_STRETCHBLT = 0B23h
META_POLYGON = 0324h
META_POLYLINE = 0325h
META_ESCAPE = 0626h
META_RESTOREDC = 0127h
META_FILLREGION = 0228h
META_FRAMEREGION = 0429h
META_INVERTREGION = 012Ah
META_PAINTREGION = 012Bh
META_SELECTCLIPREGION = 012Ch
META_SELECTOBJECT = 012Dh
META_SETTEXTALIGN = 012Eh
META_DRAWTEXT = 062Fh
META_CHORD = 0830h
META_SETMAPPERFLAGS = 0231h
META_EXTTEXTOUT = 0a32h
META_SETDIBTODEV = 0d33h
META_SELECTPALETTE = 0234h
META_REALIZEPALETTE = 0035h
META_ANIMATEPALETTE = 0436h
META_SETPALENTRIES = 0037h
META_POLYPOLYGON = 0538h
META_RESIZEPALETTE = 0139h
META_DIBBITBLT = 0940h
META_DIBSTRETCHBLT = 0b41h
META_DIBCREATEPATTERNBRUSH = 0142h
META_STRETCHDIB = 0f43h
META_DELETEOBJECT = 01f0h
META_CREATEPALETTE = 00f7h
META_CREATEBRUSH = 00F8h
META_CREATEPATTERNBRUSH = 01F9h
META_CREATEPENINDIRECT = 02FAh
META_CREATEFONTINDIRECT = 02FBh
META_CREATEBRUSHINDIRECT = 02FCh
META_CREATEBITMAPINDIRECT = 02FDh
META_CREATEBITMAP = 06FEh
META_CREATEREGION = 06FFh
; /* Clipboard Metafile Picture Structure */
HANDLETABLE struc
ht_objectHandle dw ?
HANDLETABLE ends
METARECORD struc
mr_rdSize dd ?
mr_rdFunction dw ?
mr_rdParm dw ?
METARECORD ends
METAFILEPICT struc
mfp_mm dw ?
mfp_xExt dw ?
mfp_yExt dw ?
mfp_hMF dw ?
METAFILEPICT ends
METAHEADER struc
mtType dw ?
mtHeaderSize dw ?
mtVersion dw ?
mtSize dd ?
mtNoObjects dw ?
mtMaxRecord dd ?
mtNoParameters dw ?
METAHEADER ends
endif ; NOMETAFILE
; GDI Escapes
NEWFRAME = 1
ABORTDOC = 2
NEXTBAND = 3
SETCOLORTABLE = 4
GETCOLORTABLE = 5
FLUSHOUTPUT = 6
DRAFTMODE = 7
QUERYESCSUPPORT = 8
SETABORTPROC = 9
STARTDOC = 10
;; This value conflicts with a std WIN386 MACRO definition
;;ENDDOC = 11
GETPHYSPAGESIZE = 12
GETPRINTINGOFFSET = 13
GETSCALINGFACTOR = 14
MFCOMMENT = 15
GETPENWIDTH = 16
SETCOPYCOUNT = 17
SELECTPAPERSOURCE = 18
DEVICEDATA = 19
PASSTHROUGH = 19
GETTECHNOLGY = 20
GETTECHNOLOGY = 20
SETENDCAP = 21
SETLINEJOIN = 22
SETMITERLIMIT = 23
BANDINFO = 24
DRAWPATTERNRECT = 25
GETVECTORPENSIZE = 26
GETVECTORBRUSHSIZE = 27
ENABLEDUPLEX = 28
ENABLEMANUALFEED = 29
GETSETPAPERBINS = 29
GETSETPRINTORIENT = 30
ENUMPAPERBINS = 31
GETEXTENDEDTEXTMETRICS = 256
GETEXTENTTABLE = 257
GETPAIRKERNTABLE = 258
GETTRACKKERNTABLE = 259
EXTTEXTOUT = 512
ENABLERELATIVEWIDTHS = 768
ENABLEPAIRKERNING = 769
SETKERNTRACK = 770
SETALLJUSTVALUES = 771
SETCHARSET = 772
GETSETSCREENPARAMS = 3072
STRETCHBLT = 2048
; Spooler Error Codes
SP_NOTREPORTED = 4000h
SP_ERROR = (-1)
SP_APPABORT = (-2)
SP_USERABORT = (-3)
SP_OUTOFDISK = (-4)
SP_OUTOFMEMORY = (-5)
PR_JOBSTATUS = 0000
; Object Definitions for EnumObjects()
OBJ_PEN = 1
OBJ_BRUSH = 2
;
; Menu flags for Change/Check/Enable MenuItem
;
MF_INSERT = 0000h
MF_CHANGE = 0080h
MF_APPEND = 0100h
MF_DELETE = 0200h
MF_REMOVE = 1000h
MF_BYCOMMAND = 0000h
MF_BYPOSITION = 0400h
MF_SEPARATOR = 0800h
MF_ENABLED = 0000h
MF_GRAYED = 0001h
MF_DISABLED = 0002h
MF_UNCHECKED = 0000h
MF_CHECKED = 0008h
MF_USECHECKBITMAPS= 0200h
MF_STRING = 0000h
MF_BITMAP = 0004h
MF_OWNERDRAW = 0100h
MF_POPUP = 0010h
MF_MENUBARBREAK = 0020h
MF_MENUBREAK = 0040h
MF_UNHILITE = 0000h
MF_HILITE = 0080h
MF_SYSMENU = 2000h
MF_HELP = 4000h
MF_MOUSESELECT = 8000h
;
; System Menu Command Values
;
SC_SIZE = 0F000h
SC_MOVE = 0F010h
SC_MINIMIZE = 0F020h
SC_MAXIMIZE = 0F030h
SC_NEXTWINDOW = 0F040h
SC_PREVWINDOW = 0F050h
SC_CLOSE = 0F060h
SC_VSCROLL = 0F070h
SC_HSCROLL = 0F080h
SC_MOUSEMENU = 0F090h
SC_KEYMENU = 0F100h
SC_ARRANGE = 0F110h
SC_RESTORE = 0F120h
SC_TASKLIST = 0F130h
SC_SCREENSAVE = 0F140h
SC_HOTKEY = 0F150h
SC_ICON = SC_MINIMIZE
SC_ZOOM = SC_MAXIMIZE
;
; Window State Messages
;
IFNDEF NOWM
WM_STATE = 0000H
WM_NULL = 0000h
WM_CREATE = 0001h
WM_DESTROY = 0002h
WM_MOVE = 0003h
WM_SIZEWAIT = 0004h ;Internal
WM_SIZE = 0005h
WM_ACTIVATE = 0006h
WM_SETFOCUS = 0007h
WM_KILLFOCUS = 0008h
WM_SETVISIBLE = 0009h ;Internal
WM_ENABLE = 000Ah
WM_SETREDRAW = 000Bh
WM_SETTEXT = 000Ch
WM_GETTEXT = 000Dh
WM_GETTEXTLENGTH = 000Eh
WM_PAINT = 000Fh
WM_CLOSE = 0010h
WM_QUERYENDSESSION = 0011h
WM_QUIT = 0012h
WM_QUERYOPEN = 0013h
WM_ERASEBKGND = 0014h
WM_SYSCOLORCHANGE = 0015h
WM_ENDSESSION = 0016h
WM_SYSTEMERROR = 0017h
WM_SHOWWINDOW = 0018h
WM_CTLCOLOR = 0019h
WM_WININICHANGE = 001Ah
WM_DEVMODECHANGE = 001Bh
WM_ACTIVATEAPP = 001Ch
WM_FONTCHANGE = 001Dh
WM_TIMECHANGE = 001Eh
WM_CANCELMODE = 001Fh
WM_SETCURSOR = 0020h
WM_MOUSEACTIVATE = 0021h
WM_CHILDACTIVATE = 0022h
WM_QUEUESYNC = 0023h
WM_GETMINMAXINFO = 0024h
WM_PAINTICON = 0026h
WM_ICONERASEBKGND = 0027h
WM_NEXTDLGCTL = 0028h
WM_ALTTABACTIVE = 0029h ;Internal
WM_SPOOLERSTATUS = 002Ah
WM_DRAWITEM = 002Bh
WM_MEASUREITEM = 002Ch
WM_DELETEITEM = 002Dh
WM_VKEYTOITEM = 002Eh
WM_CHARTOITEM = 002Fh
WM_SETFONT = 0030h
WM_GETFONT = 0031h
WM_SETHOTKEY = 0032h ;Internal
WM_GETHOTKEY = 0033h ;Internal
WM_FILESYSCHANGE = 0034h ;Internal
WM_ISACTIVEICON = 0035h ;Internal
WM_UNUSED0036 = 0036h ;Internal
WM_QUERYDRAGICON = 0037h
WM_COMPAREITEM = 0039h
WM_TESTING = 0040h ;Internal
WM_COMPACTING = 0041h
; 0042h ;Internal
; 0043h ;Internal
IFNDEF NOWIN31
WM_COMMNOTIFY = 0044h
; = 0045h ;Internal
WM_WINDOWPOSCHANGING= 0046h
WM_WINDOWPOSCHANGED = 0047h
WM_POWER = 0048h
ENDIF
WM_NCCREATE = 0081h
WM_NCDESTROY = 0082h
WM_NCCALCSIZE = 0083h
WM_NCHITTEST = 0084h
WM_NCPAINT = 0085h
WM_NCACTIVATE = 0086h
WM_GETDLGCODE = 0087h
WM_SYNCPAINT = 0088h ;Internal
WM_SYNCTASK = 0089h ;Internal
WM_NCMOUSEMOVE = 00A0h
WM_NCLBUTTONDOWN = 00A1h
WM_NCLBUTTONUP = 00A2h
WM_NCLBUTTONDBLCLK = 00A3h
WM_NCRBUTTONDOWN = 00A4h
WM_NCRBUTTONUP = 00A5h
WM_NCRBUTTONDBLCLK = 00A6h
WM_NCMBUTTONDOWN = 00A7h
WM_NCMBUTTONUP = 00A8h
WM_NCMBUTTONDBLCLK = 00A9h
WM_KEYFIRST = 0100h
WM_KEYDOWN = 0100h
WM_KEYUP = 0101h
WM_CHAR = 0102h
WM_DEADCHAR = 0103h
WM_SYSKEYDOWN = 0104h
WM_SYSKEYUP = 0105h
WM_SYSCHAR = 0106h
WM_SYSDEADCHAR = 0107h
WM_YOMICHAR = 0108h ;Internal
WM_KEYLAST = 0108h
WM_CONVERTREQUEST = 010Ah ;Internal
WM_CONVERTRESULT = 010Bh ;Internal
WM_INITDIALOG = 0110h
WM_COMMAND = 0111h
WM_SYSCOMMAND = 0112h
WM_TIMER = 0113h
WM_HSCROLL = 0114h
WM_VSCROLL = 0115h
WM_INITMENU = 0116h
WM_INITMENUPOPUP = 0117h
WM_SYSTIMER = 0118h ;Internal
WM_MENUSELECT = 011Fh
WM_MENUCHAR = 0120h
WM_ENTERIDLE = 0121h
WM_LBTRACKPOINT = 0131h ;Internal
WM_MOUSEFIRST = 0200h
WM_MOUSEMOVE = 0200h
WM_LBUTTONDOWN = 0201h
WM_LBUTTONUP = 0202h
WM_LBUTTONDBLCLK = 0203h
WM_RBUTTONDOWN = 0204h
WM_RBUTTONUP = 0205h
WM_RBUTTONDBLCLK = 0206h
WM_MBUTTONDOWN = 0207h
WM_MBUTTONUP = 0208h
WM_MBUTTONDBLCLK = 0209h
WM_MOUSELAST = 0209h
WM_PARENTNOTIFY = 0210h
WM_ENTERMENULOOP = 0211h ;Internal
WM_EXITMENULOOP = 0212h ;Internal
WM_NEXTMENU = 0213h ;Internal
WM_MDICREATE = 0220h
WM_MDIDESTROY = 0221h
WM_MDIACTIVATE = 0222h
WM_MDIRESTORE = 0223h
WM_MDINEXT = 0224h
WM_MDIMAXIMIZE = 0225h
WM_MDITILE = 0226h
WM_MDICASCADE = 0227h
WM_MDIICONARRANGE = 0228h
WM_MDIGETACTIVE = 0229h
WM_DROPOBJECT = 022Ah ;Internal
WM_QUERYDROPOBJECT = 022Bh ;Internal
WM_BEGINDRAG = 022Ch ;Internal
WM_DRAGLOOP = 022Dh ;Internal
WM_DRAGSELECT = 022Eh ;Internal
WM_DRAGMOVE = 022Fh ;Internal
WM_MDISETMENU = 0230h
WM_ENTERSIZEMOVE = 0231h ;Internal
WM_EXITSIZEMOVE = 0232h ;Internal
WM_DROPFILES = 0233h
WM_KANJIFIRST = 0280h ;Internal
WM_KANJILAST = 029Fh ;Internal
WM_CUT = 0300h
WM_COPY = 0301h
WM_PASTE = 0302h
WM_CLEAR = 0303h
WM_UNDO = 0304h
WM_RENDERFORMAT = 0305h
WM_RENDERALLFORMATS = 0306h
WM_DESTROYCLIPBOARD = 0307h
WM_DRAWCLIPBOARD = 0308h
WM_PAINTCLIPBOARD = 0309h
WM_VSCROLLCLIPBOARD = 030Ah
WM_SIZECLIPBOARD = 030Bh
WM_ASKCBFORMATNAME = 030Ch
WM_CHANGECBCHAIN = 030Dh
WM_HSCROLLCLIPBOARD = 030Eh
WM_QUERYNEWPALETTE = 030Fh
WM_PALETTEGONNACHANGE = 0310h ;Internal
WM_PALETTEISCHANGING = 0310h
WM_CHANGEPALETTE = 0311h ;Internal
WM_PALETTECHANGED = 0311h
IFNDEF NOWIN31
WM_PENWINFIRST equ 0380h
WM_PENWINLAST equ 038Fh
WM_INTERNAL_COALESCE_FIRST equ 0390h ;Internal
WM_COALESCE_FIRST equ 0390h
WM_COALESCE_LAST equ 039Fh
; The following message range reserved ;Internal
; for multi-media ;Internal
WM_MM_RESERVED_FIRST equ 03A0h ;Internal
WM_MM_RESERVED_LAST equ 03DFh ;Internal
WM_INTERNAL_COALESCE_LAST equ (WM_MM_RESERVED_FIRST+16) ;Internal
ENDIF
WM_INTERNAL_DDE_FIRST equ 03E0h ;Internal
WM_INTERNAL_DDE_LAST equ 03EFh ;Internal
; The following messages are reserved for CBT ;Internal
WM_CBT_RESERVED_FIRST equ 03F0h ;Internal
WM_CBT_RESERVED_LAST equ 03FFh ;Internal
; private window messages start here
WM_USER = 0400H
ENDIF ; NOWM
; WM_MOUSEACTIVATE Return Codes
MA_ACTIVATE = 1
MA_ACTIVATEANDEAT = 2
MA_NOACTIVATE = 3
; Size message commands
SIZENORMAL = 0
SIZEICONIC = 1
SIZEFULLSCREEN = 2
SIZEZOOMSHOW = 3
SIZEZOOMHIDE = 4
; ShowWindow() Commands
SW_HIDE = 0
SW_SHOWNORMAL = 1
SW_NORMAL = 1
SW_SHOWMINIMIZED = 2
SW_SHOWMAXIMIZED = 3
SW_MAXIMIZE = 3
SW_SHOWNOACTIVATE = 4
SW_SHOW = 5
SW_MINIMIZE = 6
SW_SHOWMINNOACTIVE = 7
SW_SHOWNA = 8
SW_RESTORE = 9
; Old ShowWindow() Commands
HIDE_WINDOW = 0
SHOW_OPENWINDOW = 1
SHOW_ICONWINDOW = 2
SHOW_FULLSCREEN = 3
SHOW_OPENNOACTIVATE= 4
; identifiers for the WM_SHOWWINDOW message
SW_PARENTCLOSING = 1
SW_OTHERZOOM = 2
SW_PARENTOPENING = 3
SW_OTHERUNZOOM = 4
;
; Key state masks for mouse messages
;
MK_LBUTTON = 0001h
MK_RBUTTON = 0002h
MK_SHIFT = 0004h
MK_CONTROL = 0008h
MK_MBUTTON = 0010h
;
; Class styles
;
CS_VREDRAW = 0001h
CS_HREDRAW = 0002h
CS_KEYCVTWINDOW = 0004H
CS_DBLCLKS = 0008h
; 0010h reserved
CS_OWNDC = 0020h
CS_CLASSDC = 0040h
CS_PARENTDC = 0080h
CS_NOKEYCVT = 0100h
CS_SAVEBITS = 0800h
CS_NOCLOSE = 0200h
CS_BYTEALIGNCLIENT = 1000h
CS_BYTEALIGNWINDOW = 2000h
CS_GLOBALCLASS = 4000h ; Global window class
;
; Special CreateWindow position value
;
CW_USEDEFAULT EQU 8000h
;
; Windows styles (the high words)
;
WS_OVERLAPPED = 00000h
WS_ICONICPOPUP = 0C000h
WS_POPUP = 08000h
WS_CHILD = 04000h
WS_MINIMIZE = 02000h
WS_VISIBLE = 01000h
WS_DISABLED = 00800h
WS_CLIPSIBLINGS = 00400h
WS_CLIPCHILDREN = 00200h
WS_MAXIMIZE = 00100h
WS_CAPTION = 000C0h ; WS_BORDER | WS_DLGFRAME
WS_BORDER = 00080h
WS_DLGFRAME = 00040h
WS_VSCROLL = 00020h
WS_HSCROLL = 00010h
WS_SYSMENU = 00008h
WS_THICKFRAME = 00004h
WS_HREDRAW = 00002h
WS_VREDRAW = 00001h
WS_GROUP = 00002h
WS_TABSTOP = 00001h
WS_MINIMIZEBOX = 00002h
WS_MAXIMIZEBOX = 00001h
; Common Window Styles
WS_OVERLAPPEDWINDOW = WS_OVERLAPPED + WS_CAPTION + WS_SYSMENU + WS_THICKFRAME + WS_MINIMIZEBOX + WS_MAXIMIZEBOX
WS_POPUPWINDOW = WS_POPUP + WS_BORDER + WS_SYSMENU
WS_CHILDWINDOW = WS_CHILD
WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
WS_TILED = WS_OVERLAPPED
WS_ICONIC = WS_MINIMIZE
WS_SIZEBOX = WS_THICKFRAME
; Extended Window Styles (low words)
WS_EX_DLGMODALFRAME = 0001
WS_EX_DRAGOBJECT = 0002
WS_EX_NOPARENTNOTIFY = 0004
WS_EX_TOPMOST = 0008
;
; predefined clipboard formats
;
CF_TEXT = 1
CF_BITMAP = 2
CF_METAFILEPICT = 3
CF_SYLK = 4
CF_DIF = 5
CF_TIFF = 6
CF_OEMTEXT = 7
CF_DIB = 8
CF_PALETTE = 9
CF_PENDATA = 10
CF_RIFF = 11
CF_WAVE = 12
CF_OWNERDISPLAY = 80h ; owner display
CF_DSPTEXT = 81h ; display text
CF_DSPBITMAP = 82h ; display bitmap
CF_DSPMETAFILEPICT = 83h ; display metafile
;
; Private clipboard format range
;
CF_PRIVATEFIRST = 200h ; Anything in this range doesn't
CF_PRIVATELAST = 2ffh ; get GlobalFree'd
CF_GDIOBJFIRST = 300h ; Anything in this range gets
CF_GDIOBJLAST = 3ffh ; DeleteObject'ed
MAKEINTRESOURCE MACRO a
mov ax,a
xor dx,dx
ENDM
;
; Predefined resource types
;
RT_CURSOR = 1 ; must be passed through MAKEINTRESOURCE
RT_BITMAP = 2
RT_ICON = 3
RT_MENU = 4
RT_DIALOG = 5
RT_STRING = 6
RT_FONTDIR = 7
RT_FONT = 8
RT_ACCELERATOR = 9
RT_RCDATA = 10
;** NOTE: if any new resource types are introduced above this point, then the
;** value of DIFFERENCE must be changed.
;** (RT_GROUP_CURSOR - RT_CURSOR) must always be equal to DIFFERENCE
;** (RT_GROUP_ICON - RT_ICON) must always be equal to DIFFERENCE
DIFFERENCE = 11
RT_GROUP_CURSOR = RT_CURSOR + DIFFERENCE
RT_GROUP_ICON = RT_ICON + DIFFERENCE
IFNDEF NOMDI
MDICREATESTRUCT struc
szClass dd ?
szTitle dd ?
hOwner dw ?
x dw ?
y dw ?
cxc dw ?
cyc dw ?
style dd ?
MDICREATESTRUCT ends
CLIENTCREATESTRUCT struc
hWindowMenu dw ?
idFirstChild dw ?
CLIENTCREATESTRUCT ends
ENDIF
; NOMDI
PALETTEENTRY struc
peRed db ?
peGreen db ?
peBlue db ?
peFlags db ?
PALETTEENTRY ends
; Logical Palette
LOGPALETTE struc
palVersion dw ?
palNumEntries dw ?
palPalEntry db ? ; array of PALETTEENTRY
LOGPALETTE ends
; DRAWITEMSTRUCT for ownerdraw
DRAWITEMSTRUCT struc
drCtlType dw ?
drCtlID dw ?
dritemID dw ?
dritemAction dw ?
dritemState dw ?
drhwndItem dw ?
drhDC dw ?
drrcItem DB size RECT dup(?)
dritemData dd ?
DRAWITEMSTRUCT ends
; DELETEITEMSTRUCT for ownerdraw
DELETEITEMSTRUCT struc
deCtlType dw ?
deCtlID dw ?
deitemID dw ?
dehwndItem dw ?
deitemData dd ?
DELETEITEMSTRUCT ends
; MEASUREITEMSTRUCT for ownerdraw
MEASUREITEMSTRUCT struc
meCtlType dw ?
meCtlID dw ?
meitemID dw ?
meitemWidth dw ?
meitemHeight dw ?
meitemData dd ?
MEASUREITEMSTRUCT ends
; COMPAREITEMSTUCT for ownerdraw sorting
COMPAREITEMSTRUCT struc
coCtlType dw ?
coCtlID dw ?
cohwndItem dw ?
coitemID1 dw ?
coitemData1 dd ?
coitemID2 dw ?
coitemData2 dd ?
COMPAREITEMSTRUCT ends
; Owner draw control types
ODT_MENU = 1
ODT_LISTBOX = 2
ODT_COMBOBOX = 3
ODT_BUTTON = 4
; Owner draw actions
ODA_DRAWENTIRE = 1
ODA_SELECT = 2
ODA_FOCUS = 4
; Owner draw state
ODS_SELECTED = 0001h
ODS_GRAYED = 0002h
ODS_DISABLED = 0004h
ODS_CHECKED = 0008h
ODS_FOCUS = 0010h
; PeekMessage() Options
PM_NOREMOVE = 0000h
PM_REMOVE = 0001h
PM_NOYIELD = 0002h
; SetWindowPos Flags
SWP_NOSIZE = 0001h
SWP_NOMOVE = 0002h
SWP_NOZORDER = 0004h
SWP_NOREDRAW = 0008h
SWP_NOACTIVATE = 0010h
SWP_DRAWFRAME = 0020h
SWP_SHOWWINDOW = 0040h
SWP_HIDEWINDOW = 0080h
SWP_NOCOPYBITS = 0100h
SWP_NOREPOSITION = 0200h
IFNDEF NOWINMESSAGES
; Listbox messages
LB_ADDSTRING = (WM_USER+1)
LB_INSERTSTRING = (WM_USER+2)
LB_DELETESTRING = (WM_USER+3)
LB_RESETCONTENT = (WM_USER+5)
LB_SETSEL = (WM_USER+6)
LB_SETCURSEL = (WM_USER+7)
LB_GETSEL = (WM_USER+8)
LB_GETCURSEL = (WM_USER+9)
LB_GETTEXT = (WM_USER+10)
LB_GETTEXTLEN = (WM_USER+11)
LB_GETCOUNT = (WM_USER+12)
LB_SELECTSTRING = (WM_USER+13)
LB_DIR = (WM_USER+14)
LB_GETTOPINDEX = (WM_USER+15)
LB_FINDSTRING = (WM_USER+16)
LB_GETSELCOUNT = (WM_USER+17)
LB_GETSELITEMS = (WM_USER+18)
LB_SETTABSTOPS = (WM_USER+19)
LB_GETHORIZONTALEXTENT = (WM_USER+20)
LB_SETHORIZONTALEXTENT = (WM_USER+21)
LB_ADDFILE = (WM_USER+23) ;Internal
LB_SETTOPINDEX = (WM_USER+24)
LB_GETITEMRECT = (WM_USER+25)
LB_GETITEMDATA = (WM_USER+26)
LB_SETITEMDATA = (WM_USER+27)
LB_SELITEMRANGE = (WM_USER+28)
LB_SETANCHORINDEX = (WM_USER+29) ;Internal
LB_GETANCHORINDEX = (WM_USER+30) ;Internal
LB_SETCARETINDEX = (WM_USER+31)
LB_GETCARETINDEX = (WM_USER+32)
IFNDEF NOWIN31
LB_SETITEMHEIGHT = (WM_USER+33)
LB_GETITEMHEIGHT = (WM_USER+34)
LB_FINDSTRINGEXACT = (WM_USER+35)
ENDIF
LBCB_CARETON = (WM_USER+36) ;Internal
LBCB_CARETOFF = (WM_USER+37) ;Internal
LB_MSGMAX = (WM_USER+38) ;Internal
ENDIF
; NOWINMESSAGES
; Listbox Styles
LBS_NOTIFY = 0001h
LBS_SORT = 0002h
LBS_NOREDRAW = 0004h
LBS_MULTIPLESEL = 0008h
LBS_OWNERDRAWFIXED = 0010h
LBS_OWNERDRAWVARIABLE = 0020h
LBS_HASSTRINGS = 0040h
LBS_USETABSTOPS = 0080h
LBS_NOINTEGRALHEIGHT = 0100h
LBS_MULTICOLUMN = 0200h
LBS_WANTKEYBOARDINPUT = 0400h
LBS_EXTENDEDSEL = 0800h
LBS_STANDARD = LBS_NOTIFY + LBS_SORT + WS_VSCROLL + WS_BORDER
LBS_DISABLENOSCROLL = 1000h
; Listbox Notification Codes
LBN_ERRSPACE = (-2)
LBN_SELCHANGE = 1
LBN_DBLCLK = 2
LBN_SELCANCEL = 3
LBN_SETFOCUS = 4
LBN_KILLFOCUS = 5
IFNDEF NOWINMESSAGES
; Edit Control Messages
EM_GETSEL = (WM_USER+0)
EM_SETSEL = (WM_USER+1)
EM_GETRECT = (WM_USER+2)
EM_SETRECT = (WM_USER+3)
EM_SETRECTNP = (WM_USER+4)
EM_SCROLL = (WM_USER+5)
EM_LINESCROLL = (WM_USER+6)
EM_GETMODIFY = (WM_USER+8)
EM_SETMODIFY = (WM_USER+9)
EM_GETLINECOUNT = (WM_USER+10)
EM_LINEINDEX = (WM_USER+11)
EM_SETHANDLE = (WM_USER+12)
EM_GETHANDLE = (WM_USER+13)
EM_GETTHUMB = (WM_USER+14) ;Internal
EM_LINELENGTH = (WM_USER+17)
EM_REPLACESEL = (WM_USER+18)
EM_SETFONT = (WM_USER+19)
EM_GETLINE = (WM_USER+20)
EM_LIMITTEXT = (WM_USER+21)
EM_CANUNDO = (WM_USER+22)
EM_UNDO = (WM_USER+23)
EM_FMTLINES = (WM_USER+24)
EM_LINEFROMCHAR = (WM_USER+25)
EM_SETWORDBREAK = (WM_USER+26)
EM_SETTABSTOPS = (WM_USER+27)
EM_SETPASSWORDCHAR = (WM_USER+28)
EM_EMPTYUNDOBUFFER = (WM_USER+29)
IFNDEF NOWIN31
EM_GETFIRSTVISIBLELINE = (WM_USER+30)
EM_SETREADONLY = (WM_USER+31)
EM_SETWORDBREAKPROC = (WM_USER+32)
EM_GETWORDBREAKPROC = (WM_USER+33)
EM_GETPASSWORDCHAR = (WM_USER+34)
ENDIF
EM_MSGMAX = (WM_USER+35) ;Internal
ENDIF
; NOWINMESSAGES
; Edit Control Styles (low word)
ES_LEFT = 0000h
ES_CENTER = 0001h
ES_RIGHT = 0002h
ES_MULTILINE = 0004h
ES_UPPERCASE = 0008h
ES_LOWERCASE = 0010h
ES_PASSWORD = 0020h
ES_AUTOVSCROLL = 0040h
ES_AUTOHSCROLL = 0080h
ES_NOHIDESEL = 0100h
ES_OEMCONVERT = 0400h
IFNDEF NOWIN31
ES_READONLY = 0800h
ES_WANTRETURN = 1000h
ENDIF
; Edit Control Notification Codes
EN_SETFOCUS = 0100h
EN_KILLFOCUS = 0200h
EN_CHANGE = 0300h
EN_UPDATE = 0400h
EN_ERRSPACE = 0500h
EN_MAXTEXT = 0501h
EN_HSCROLL = 0601h
EN_VSCROLL = 0602h
IFNDEF NOWINMESSAGES
; Button Control Messages
BM_GETCHECK = (WM_USER+0)
BM_SETCHECK = (WM_USER+1)
BM_GETSTATE = (WM_USER+2)
BM_SETSTATE = (WM_USER+3)
BM_SETSTYLE = (WM_USER+4)
ENDIF
; NOWINMESSAGES
; Button Control Styles (low word)
BS_PUSHBUTTON = 00h
BS_DEFPUSHBUTTON = 01h
BS_CHECKBOX = 02h
BS_AUTOCHECKBOX = 03h
BS_RADIOBUTTON = 04h
BS_3STATE = 05h
BS_AUTO3STATE = 06h
BS_GROUPBOX = 07h
BS_USERBUTTON = 08h
BS_AUTORADIOBUTTON = 09h
BS_PUSHBOX = 0Ah ;Internal
BS_OWNERDRAW = 0Bh
BS_LEFTTEXT = 20h
; User Button Notification Codes
BN_CLICKED = 0
BN_PAINT = 1
BN_HILITE = 2
BN_UNHILITE = 3
BN_DISABLE = 4
BN_DOUBLECLICKED = 5
; Dialog Styles (low words)
DS_ABSALIGN = 01h
DS_SYSMODAL = 02h
DS_LOCALEDIT = 20h ;/* Edit items get Local storage. */
DS_SETFONT = 40h ;/* User specified font for Dlg controls */
DS_MODALFRAME = 80h ;/* Can be combined with WS_CAPTION */
DS_NOIDLEMSG = 100h ;/* WM_ENTERIDLE message will not be sent */
IFNDEF NOWINMESSAGES
; Dialog box messages
DM_GETDEFID = (WM_USER+0)
DM_SETDEFID = (WM_USER+1)
ENDIF ;NOWINMESSAGES
; Dialog Codes
DLGC_WANTARROWS = 0001h ; /* Control wants arrow keys */
DLGC_WANTTAB = 0002h ; /* Control wants tab keys */
DLGC_WANTALLKEYS = 0004h ; /* Control wants all keys */
DLGC_WANTMESSAGE = 0004h ; /* Pass message to control */
DLGC_HASSETSEL = 0008h ; /* Understands EM_SETSEL message */
DLGC_DEFPUSHBUTTON = 0010h ; /* Default pushbutton */
DLGC_UNDEFPUSHBUTTON= 0020h ; /* Non-default pushbutton */
DLGC_RADIOBUTTON = 0040h ; /* Radio button */
DLGC_WANTCHARS = 0080h ; /* Want WM_CHAR messages */
DLGC_STATIC = 0100h ; /* Static item: don't include */
DLGC_BUTTON = 2000h ; /* Button item: can be checked */
; Combo Box return Values
CB_OKAY = 0
CB_ERR = (-1)
CB_ERRSPACE = (-2)
; Combo Box Notification Codes
CBN_ERRSPACE = (-1)
CBN_SELCHANGE = 1
CBN_DBLCLK = 2
CBN_SETFOCUS = 3
CBN_KILLFOCUS = 4
CBN_EDITCHANGE = 5
CBN_EDITUPDATE = 6
CBN_DROPDOWN = 7
; Combo Box styles (low words)
CBS_SIMPLE = 0001h
CBS_DROPDOWN = 0002h
CBS_DROPDOWNLIST = 0003h
CBS_OWNERDRAWFIXED = 0010h
CBS_OWNERDRAWVARIABLE= 0020h
CBS_AUTOHSCROLL = 0040h
CBS_OEMCONVERT = 0080h
CBS_SORT = 0100h
CBS_HASSTRINGS = 0200h
CBS_NOINTEGRALHEIGHT = 0400h
IFNDEF NOWINMESSAGES
; Combo Box messages
CB_GETEDITSEL = (WM_USER+0)
CB_LIMITTEXT = (WM_USER+1)
CB_SETEDITSEL = (WM_USER+2)
CB_ADDSTRING = (WM_USER+3)
CB_DELETESTRING = (WM_USER+4)
CB_DIR = (WM_USER+5)
CB_GETCOUNT = (WM_USER+6)
CB_GETCURSEL = (WM_USER+7)
CB_GETLBTEXT = (WM_USER+8)
CB_GETLBTEXTLEN = (WM_USER+9)
CB_INSERTSTRING = (WM_USER+10)
CB_RESETCONTENT = (WM_USER+11)
CB_FINDSTRING = (WM_USER+12)
CB_SELECTSTRING = (WM_USER+13)
CB_SETCURSEL = (WM_USER+14)
CB_SHOWDROPDOWN = (WM_USER+15)
CB_GETITEMDATA = (WM_USER+16)
CB_SETITEMDATA = (WM_USER+17)
IFNDEF NOWIN31
CB_GETDROPPEDCONTROLRECT = (WM_USER+18)
CB_SETITEMHEIGHT = (WM_USER+19)
CB_GETITEMHEIGHT = (WM_USER+20)
CB_SETEXTENDEDUI = (WM_USER+21)
CB_GETEXTENDEDUI = (WM_USER+22)
CB_GETDROPPEDSTATE = (WM_USER+23)
CB_FINDSTRINGEXACT = (WM_USER+24)
ENDIF
CB_MSGMAX = (WM_USER+25) ;Internal
ENDIF ; NOWINMESSAGES
; Static Control styles (low word)
SS_LEFT = 00h
SS_CENTER = 01h
SS_RIGHT = 02h
SS_ICON = 03h
SS_BLACKRECT = 04h
SS_GRAYRECT = 05h
SS_WHITERECT = 06h
SS_BLACKFRAME = 07h
SS_GRAYFRAME = 08h
SS_WHITEFRAME = 09h
SS_USERITEM = 0Ah ;Internal
SS_SIMPLE = 0Bh
SS_LEFTNOWORDWRAP = 0Ch
SS_NOPREFIX = 80h ; Don't do "&" character translation
IFNDEF NOWIN31
IFNDEF NOWINMESSAGES
;Static Control Messages
STM_SETICON = (WM_USER+0)
STM_GETICON = (WM_USER+1)
STM_MSGMAX = (WM_USER+2) ;Internal
ENDIF
ENDIF
; Scroll Bar Styles (low word)
SBS_HORZ = 0000h
SBS_VERT = 0001h
SBS_TOPALIGN = 0002h
SBS_LEFTALIGN = 0002h
SBS_BOTTOMALIGN = 0004h
SBS_RIGHTALIGN = 0004h
SBS_SIZEBOXTOPLEFTALIGN = 0002h
SBS_SIZEBOXBOTTOMRIGHTALIGN = 0004h
SBS_SIZEBOX = 0008h
IFNDEF NOSYSMETRICS
; GetSystemMetrics() codes
SM_CXSCREEN = 0
SM_CYSCREEN = 1
SM_CXVSCROLL = 2
SM_CYHSCROLL = 3
SM_CYCAPTION = 4
SM_CXBORDER = 5
SM_CYBORDER = 6
SM_CXDLGFRAME = 7
SM_CYDLGFRAME = 8
SM_CYVTHUMB = 9
SM_CXHTHUMB = 10
SM_CXICON = 11
SM_CYICON = 12
SM_CXCURSOR = 13
SM_CYCURSOR = 14
SM_CYMENU = 15
SM_CXFULLSCREEN = 16
SM_CYFULLSCREEN = 17
SM_CYKANJIWINDOW = 18
SM_MOUSEPRESENT = 19
SM_CYVSCROLL = 20
SM_CXHSCROLL = 21
SM_DEBUG = 22
SM_SWAPBUTTON = 23
SM_RESERVED1 = 24
SM_RESERVED2 = 25
SM_RESERVED3 = 26
SM_RESERVED4 = 27
SM_CXMIN = 28
SM_CYMIN = 29
SM_CXSIZE = 30
SM_CYSIZE = 31
SM_CXFRAME = 32
SM_CYFRAME = 33
SM_CXMINTRACK = 34
SM_CYMINTRACK = 35
IFNDEF NOWIN31
SM_CXDOUBLECLK = 36
SM_CYDOUBLECLK = 37
SM_CXICONSPACING = 38
SM_CYICONSPACING = 39
SM_MENUDROPALIGNMENT = 40
SM_PENWINDOWS = 41
SM_DBCSENABLED = 42
ENDIF
SM_CMETRICSMAX = 76
ENDIF ;NOSYSMETRICS
IFNDEF NOCOLOR
COLOR_SCROLLBAR = 0
COLOR_BACKGROUND = 1
COLOR_ACTIVECAPTION = 2
COLOR_INACTIVECAPTION = 3
COLOR_MENU = 4
COLOR_WINDOW = 5
COLOR_WINDOWFRAME = 6
COLOR_MENUTEXT = 7
COLOR_WINDOWTEXT = 8
COLOR_CAPTIONTEXT = 9
COLOR_ACTIVEBORDER = 10
COLOR_INACTIVEBORDER = 11
COLOR_APPWORKSPACE = 12
COLOR_HIGHLIGHT = 13
COLOR_HIGHLIGHTTEXT = 14
COLOR_BTNFACE = 15
COLOR_BTNSHADOW = 16
COLOR_GRAYTEXT = 17
COLOR_BTNTEXT = 18
IFNDEF NOWIN31
COLOR_INACTIVECAPTIONTEXT = 19
COLOR_BTNHILIGHT = 20
ENDIF
ENDIF ;NOCOLOR
; Commands to pass WinHelp()
HELP_CONTEXT =0001h ;/* Display topic in ulTopic */
HELP_QUIT =0002h ;/* Terminate help */
HELP_INDEX =0003h ;/* Display index */
HELP_HELPONHELP =0004h ;/* Display help on using help */
HELP_SETINDEX =0005h ;/* Set the current Index for multi index help */
HELP_KEY =0101h ;/* Display topic for keyword in offabData */
IFNDEF NOCOMM
NOPARITY = 0
ODDPARITY = 1
EVENPARITY = 2
MARKPARITY = 3
SPACEPARITY = 4
ONESTOPBIT = 0
ONE5STOPBITS = 1
TWOSTOPBITS = 2
IGNORE = 0 ; /* Ignore signal */
INFINITE = 0FFFFh ; /* Infinite timeout */
; Error Flags
CE_RXOVER = 0001h ; /* Receive Queue overflow */
CE_OVERRUN = 0002h ; /* Receive Overrun Error */
CE_RXPARITY = 0004h ; /* Receive Parity Error */
CE_FRAME = 0008h ; /* Receive Framing error */
CE_BREAK = 0010h ; /* Break Detected */
CE_CTSTO = 0020h ; /* CTS Timeout */
CE_DSRTO = 0040h ; /* DSR Timeout */
CE_RLSDTO = 0080h ; /* RLSD Timeout */
CE_TXFULL = 0100h ; /* TX Queue is full */
CE_PTO = 0200h ; /* LPTx Timeout */
CE_IOE = 0400h ; /* LPTx I/O Error */
CE_DNS = 0800h ; /* LPTx Device not selected */
CE_OOP = 1000h ; /* LPTx Out-Of-Paper */
CE_MODE = 8000h ; /* Requested mode unsupported */
IE_BADID = (-1) ; /* Invalid or unsupported id */
IE_OPEN = (-2) ; /* Device Already Open */
IE_NOPEN = (-3) ; /* Device Not Open */
IE_MEMORY = (-4) ; /* Unable to allocate queues */
IE_DEFAULT = (-5) ; /* Error in default parameters */
IE_HARDWARE = (-10) ; /* Hardware Not Present */
IE_BYTESIZE = (-11) ; /* Illegal Byte Size */
IE_BAUDRATE = (-12) ; /* Unsupported BaudRate */
; Events
EV_RXCHAR = 0001h ; /* Any Character received */
EV_RXFLAG = 0002h ; /* Received certain character */
EV_TXEMPTY = 0004h ; /* Transmitt Queue Empty */
EV_CTS = 0008h ; /* CTS changed state */
EV_DSR = 0010h ; /* DSR changed state */
EV_RLSD = 0020h ; /* RLSD changed state */
EV_BREAK = 0040h ; /* BREAK received */
EV_ERR = 0080h ; /* Line status error occurred */
EV_RING = 0100h ; /* Ring signal detected */
EV_PERR = 0200h ; /* Printer error occured */
EV_CTSS = 0400h ; /* CTS state */
EV_DSRS = 0800h ; /* DSR state */
EV_RLSDS = 1000h ; /* RLSD state */
EV_RingTe = 2000h ; /* Ring Trailing Edge Indicator */
; Escape Functions
SETXOFF = 1 ; /* Simulate XOFF received */
SETXON = 2 ; /* Simulate XON received */
SETRTS = 3 ; /* Set RTS high */
CLRRTS = 4 ; /* Set RTS low */
SETDTR = 5 ; /* Set DTR high */
CLRDTR = 6 ; /* Set DTR low */
RESETDEV = 7 ; /* Reset device if possible */
LPTx = 80h ; /* Set if ID is for LPT device */
IFNDEF NOWIN31
; new escape functions
GETMAXLPT equ 8 ; Max supported LPT id
GETMAXCOM equ 9 ; Max supported COM id
GETBASEIRQ equ 10 ; Get port base & irq for a port
; Comm Baud Rate indices
CBR_110 equ 0FF10h
CBR_300 equ 0FF11h
CBR_600 equ 0FF12h
CBR_1200 equ 0FF13h
CBR_2400 equ 0FF14h
CBR_4800 equ 0FF15h
CBR_9600 equ 0FF16h
CBR_14400 equ 0FF17h
CBR_19200 equ 0FF18h
; 0FF19h (reserved)
; 0FF1Ah (reserved)
CBR_38400 equ 0FF1Bh
; 0FF1Ch (reserved)
; 0FF1Dh (reserved)
; 0FF1Eh (reserved)
CBR_56000 equ 0FF1Fh
; 0FF20h (reserved)
; 0FF21h (reserved)
; 0FF22h (reserved)
CBR_128000 equ 0FF23h
; 0FF24h (reserved)
; 0FF25h (reserved)
; 0FF26h (reserved)
CBR_256000 equ 0FF27h
; notifications passed in low word of lParam on WM_COMMNOTIFY messages
CN_RECEIVE equ 1 ; bytes are available in the input queue
CN_TRANSMIT equ 2 ; fewer than wOutTrigger bytes still
; remain in the output queue waiting
; to be transmitted.
CN_EVENT equ 4 ; an enabled event has occurred
ENDIF
DCB struc
DCB_Id db ? ; /* Internal Device ID */
DCB_BaudRate dw ? ; /* Baudrate at which runing */
DCB_ByteSize db ? ; /* Number of bits/byte, 4-8 */
DCB_Parity db ? ; /* 0-4=None,Odd,Even,Mark,Space */
DCB_StopBits db ? ; /* 0,1,2 = 1, 1.5, 2 */
DCB_RlsTimeout dw ? ; /* Timeout for RLSD to be set */
DCB_CtsTimeout dw ? ; /* Timeout for CTS to be set */
DCB_DsrTimeout dw ? ; /* Timeout for DSR to be set */
DCB_BitMask1 db ?
; BYTE fBinary: 1; /* Binary Mode (skip EOF check */
; BYTE fRtsDisable:1; /* Don't assert RTS at init time */
; BYTE fParity: 1; /* Enable parity checking */
; BYTE fOutxCtsFlow:1; /* CTS handshaking on output */
; BYTE fOutxDsrFlow:1; /* DSR handshaking on output */
; BYTE fDummy: 2; /* Reserved */
; BYTE fDtrDisable:1; /* Don't assert DTR at init time */
DCB_BitMask2 db ?
; BYTE fOutX: 1; /* Enable output X-ON/X-OFF */
; BYTE fInX: 1; /* Enable input X-ON/X-OFF */
; BYTE fPeChar: 1; /* Enable Parity Err Replacement */
; BYTE fNull: 1; /* Enable Null stripping */
; BYTE fChEvt: 1; /* Enable Rx character event. */
; BYTE fDtrflow: 1; /* DTR handshake on input */
; BYTE fRtsflow: 1; /* RTS handshake on input */
; BYTE fDummy2: 1;
DCB_XonChar db ? ; /* Tx and Rx X-ON character */
DCB_XoffChar db ? ; /* Tx and Rx X-OFF character */
DCB_XonLim dw ? ; /* Transmit X-ON threshold */
DCB_XoffLim dw ? ; /* Transmit X-OFF threshold */
DCB_PeChar db ? ; /* Parity error replacement char */
DCB_EofChar db ? ; /* End of Input character */
DCB_EvtChar db ? ; /* Recieved Event character */
DCB_TxDelay dw ? ; /* Amount of time between chars */
DCB ends
COMSTAT struc
COMS_BitMask1 db ?
; BYTE fCtsHold: 1; /* Transmit is on CTS hold */
; BYTE fDsrHold: 1; /* Transmit is on DSR hold */
; BYTE fRlsdHold: 1; /* Transmit is on RLSD hold */
; BYTE fXoffHold: 1; /* Received handshake */
; BYTE fXoffSent: 1; /* Issued handshake */
; BYTE fEof: 1; /* End of file character found */
; BYTE fTxim: 1; /* Character being transmitted */
COMS_cbInQue dw ? ; /* count of characters in Rx Queue */
COMS_cbOutQue dw ? ; /* count of characters in Tx Queue */
COMSTAT ends
ENDIF ;NOCOM
;
; Installable Driver Support
;
; Driver Messages
DRV_LOAD = 0001h
DRV_ENABLE = 0002h
DRV_OPEN = 0003h
DRV_CLOSE = 0004h
DRV_DISABLE = 0005h
DRV_FREE = 0006h
DRV_CONFIGURE = 0007h
DRV_QUERYCONFIGURE = 0008h
DRV_INSTALL = 0009h
DRV_REMOVE = 000Ah
DRV_EXITSESSION = 000Bh
DRV_POWER = 000Fh
DRV_RESERVED = 0800h
DRV_USER = 4000h
;LPARAM of DRV_CONFIGURE message and return values
DRVCONFIGINFO struc
DRVCNF_dwDCISize dw ?
DRVCNF_lpszDCISectionName dd ?
DRVCNF_lpszDCIAliasName dd ?
DRVCONFIGINFO ends
DRVCNF_CANCEL = 0000h
DRVCNF_OK = 0001h
DRVCNF_RESTART = 0002h
IFNDEF NOKERNEL
;
; Common Kernel errors
;
ERR_GALLOC = 01030h ; GlobalAlloc Failed
ERR_GREALLOC = 01031h ; GlobalReAlloc Failed
ERR_GLOCK = 01032h ; GlobalLock Failed
ERR_LALLOC = 01033h ; LocalAlloc Failed
ERR_LREALLOC = 01034h ; LocalReAlloc Failed
ERR_LLOCK = 01035h ; LocalLock Failed
ERR_ALLOCRES = 01036h ; AllocResource Failed
ERR_LOCKRES = 01037h ; LockResource Failed
ERR_LOADMODULE = 01038h ; LoadModule failed
;
; Common User Errors
;
ERR_CREATEDLG = 01045h ; /* Create Dlg failure due to LoadMenu failure */
ERR_CREATEDLG2 = 01046h ; /* Create Dlg failure due to CreateWindow Failure */
ERR_REGISTERCLASS = 01047h ; /* RegisterClass failure due to Class already registered */
ERR_DCBUSY = 01048h ; /* DC Cache is full */
ERR_CREATEWND = 01049h ; /* Create Wnd failed due to class not found */
ERR_STRUCEXTRA = 01050h ; /* Unallocated Extra space is used */
ERR_LOADSTR = 01051h ; /* LoadString() failed */
ERR_LOADMENU = 01052h ; /* LoadMenu Failed */
ERR_NESTEDBEGINPAINT = 01053h ; /* Nested BeginPaint() calls */
ERR_BADINDEX = 01054h ; /* Bad index to Get/Set Class/Window Word/Long */
ERR_CREATEMENU = 01055h ; /* Error creating menu */
;
; Common GDI Errors
;
ERR_CREATEDC = 01070h ; /* CreateDC/CreateIC etc., failure */
ERR_CREATEMETA = 01071h ; /* CreateMetafile failure */
ERR_DELOBJSELECTED = 01072h ; /* Bitmap being deleted is selected into DC */
ERR_SELBITMAP = 01073h ; /* Bitmap being selected is already selected elsewhere */
ENDIF ;NOKERNEL