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.
|
|
;************************************************************************* ; ; 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
|