'------------------------------------------------------------------------------
'
' DDT.INC -- Win32 API Constants for PowerBASIC
'
' Copyright (c) 1997-2003,2009,2011 PowerBASIC, Inc.
' Portions Copyright (c) Microsoft Corporation
' All Rights Reserved.
'
' Last updated 02 May 2011
'
'------------------------------------------------------------------------------
#IF NOT %DEF(PBX_DDT_PBI)
#DEFINE PBX_DDT_PBI
%EQUATE `DDT_INC = 1
%EQUATE `TRUE = 1
%EQUATE `FALSE = 0
%EQUATE `NULL = 0
%EQUATE `HEAP_NO_SERIALIZE = &H00000001
%EQUATE `HEAP_GROWABLE = &H00000002
%EQUATE `HEAP_GENERATE_EXCEPTIONS = &H00000004
%EQUATE `HEAP_ZERO_MEMORY = &H00000008
%EQUATE `HEAP_REALLOC_IN_PLACE_ONLY = &H00000010
%EQUATE `HEAP_TAIL_CHECKING_ENABLED = &H00000020
%EQUATE `HEAP_FREE_CHECKING_ENABLED = &H00000040
%EQUATE `HEAP_DISABLE_COALESCE_ON_FREE = &H00000080
%EQUATE `HEAP_CREATE_ALIGN_16 = &H00010000
%EQUATE `HEAP_CREATE_ENABLE_TRACING = &H00020000
%EQUATE `HEAP_MAXIMUM_TAG = &H00000FFF
%EQUATE `HEAP_PSEUDO_TAG_FLAG = &H00008000
%EQUATE `HEAP_TAG_SHIFT = 18
%EQUATE `IS_TEXT_UNICODE_ASCII16 = &H00000001
%EQUATE `IS_TEXT_UNICODE_REVERSE_ASCII16 = &H00000010
%EQUATE `IS_TEXT_UNICODE_STATISTICS = &H00000002
%EQUATE `IS_TEXT_UNICODE_REVERSE_STATISTICS = &H00000020
%EQUATE `IS_TEXT_UNICODE_CONTROLS = &H00000004
%EQUATE `IS_TEXT_UNICODE_REVERSE_CONTROLS = &H00000040
%EQUATE `IS_TEXT_UNICODE_SIGNATURE = &H00000008
%EQUATE `IS_TEXT_UNICODE_REVERSE_SIGNATURE = &H00000080
%EQUATE `IS_TEXT_UNICODE_ILLEGAL_CHARS = &H00000100
%EQUATE `IS_TEXT_UNICODE_ODD_LENGTH = &H00000200
%EQUATE `IS_TEXT_UNICODE_DBCS_LEADBYTE = &H00000400
%EQUATE `IS_TEXT_UNICODE_NULL_BYTES = &H00001000
%EQUATE `IS_TEXT_UNICODE_UNICODE_MASK = &H0000000F
%EQUATE `IS_TEXT_UNICODE_REVERSE_MASK = &H000000F0
%EQUATE `IS_TEXT_UNICODE_NOT_UNICODE_MASK = &H00000F00
%EQUATE `IS_TEXT_UNICODE_NOT_ASCII_MASK = &H0000F000
%EQUATE `COMPRESSION_FORMAT_NONE = &H0000
%EQUATE `COMPRESSION_FORMAT_DEFAULT = &H0001
%EQUATE `COMPRESSION_FORMAT_LZNT1 = &H0002
%EQUATE `COMPRESSION_ENGINE_STANDARD = &H0000
%EQUATE `COMPRESSION_ENGINE_MAXIMUM = &H0100
%EQUATE `COMPRESSION_ENGINE_HIBER = &H0200
' return codes for %WM_MENUCHAR
%EQUATE `MNC_IGNORE = 0
%EQUATE `MNC_CLOSE = 1
%EQUATE `MNC_EXECUTE = 2
%EQUATE `MNC_SELECT = 3
%EQUATE `MNS_NOCHECK = &H80000000
%EQUATE `MNS_MODELESS = &H40000000
%EQUATE `MNS_DRAGDROP = &H20000000
%EQUATE `MNS_AUTODISMISS = &H10000000
%EQUATE `MNS_NOTIFYBYPOS = &H08000000
%EQUATE `MNS_CHECKORBMP = &H04000000
%EQUATE `MIM_MAXHEIGHT = &H00000001
%EQUATE `MIM_BACKGROUND = &H00000002
%EQUATE `MIM_HELPID = &H00000004
%EQUATE `MIM_MENUDATA = &H00000008
%EQUATE `MIM_STYLE = &H00000010
%EQUATE `MIM_APPLYTOSUBMENUS = &H80000000
' %WM_MENUDRAG return values
%EQUATE `MND_CONTINUE = 0
%EQUATE `MND_ENDMENU = 1
' MENUGETOBJECTINFO dwFlags values
%EQUATE `MNGOF_TOPGAP = &H00000001
%EQUATE `MNGOF_BOTTOMGAP = &H00000002
' WM_MENUGETOBJECT return values
%EQUATE `MNGO_NOINTERFACE = &H00000000
%EQUATE `MNGO_NOERROR = &H00000001
%EQUATE `HBMMENU_CALLBACK = &HFFFFFFFF ' BITS???(-1)
%EQUATE `HBMMENU_SYSTEM = 1
%EQUATE `HBMMENU_MBAR_RESTORE = 2
%EQUATE `HBMMENU_MBAR_MINIMIZE = 3
%EQUATE `HBMMENU_MBAR_CLOSE = 5
%EQUATE `HBMMENU_MBAR_CLOSE_D = 6
%EQUATE `HBMMENU_MBAR_MINIMIZE_D = 7
%EQUATE `HBMMENU_POPUP_CLOSE = 8
%EQUATE `HBMMENU_POPUP_RESTORE = 9
%EQUATE `HBMMENU_POPUP_MAXIMIZE = 10
%EQUATE `HBMMENU_POPUP_MINIMIZE = 11
%EQUATE `TPM_RECURSE = &H00001
%EQUATE `TPM_HORPOSANIMATION = &H00400
%EQUATE `TPM_HORNEGANIMATION = &H00800
%EQUATE `TPM_VERPOSANIMATION = &H01000
%EQUATE `TPM_VERNEGANIMATION = &H02000
%EQUATE `TPM_NOANIMATION = &H04000
%EQUATE `TPM_LAYOUTRTL = &H08000
%EQUATE `TPM_WORKAREA = &H10000
%EQUATE `DOF_EXECUTABLE = &H00008001 ' wFmt flags
%EQUATE `DOF_DOCUMENT = &H00008002
%EQUATE `DOF_DIRECTORY = &H00008003
%EQUATE `DOF_MULTIPLE = &H00008004
%EQUATE `DOF_PROGMAN = &H00000001
%EQUATE `DOF_SHELLDATA = &H00000002
%EQUATE `DO_DROPFILE = &H454C4946
%EQUATE `DO_PRINTFILE = &H544E5250
#IF NOT %DEF(%NORESOURCE) '---------------------------
%EQUATE `RT_CURSOR = 1
%EQUATE `RT_BITMAP = 2
%EQUATE `RT_ICON = 3
%EQUATE `RT_MENU = 4
%EQUATE `RT_DIALOG = 5
%EQUATE `RT_STRING = 6
%EQUATE `RT_FONTDIR = 7
%EQUATE `RT_FONT = 8
%EQUATE `RT_ACCELERATOR = 9
%EQUATE `RT_RCDATA = 10
%EQUATE `RT_MESSAGETABLE = 11
%EQUATE `RT_GROUP_CURSOR = 12
%EQUATE `RT_GROUP_ICON = 14
%EQUATE `RT_VERSION = 16
%EQUATE `RT_DLGINCLUDE = 17
%EQUATE `RT_PLUGPLAY = 19
%EQUATE `RT_VXD = 20
%EQUATE `RT_ANICURSOR = 21
%EQUATE `RT_ANIICON = 22
%EQUATE `RT_HTML = 23
%EQUATE `RT_MANIFEST = 24
%EQUATE `CREATEPROCESS_MANIFEST_RESOURCE_ID = 1
%EQUATE `ISOLATIONAWARE_MANIFEST_RESOURCE_ID = 2
%EQUATE `ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = 3
%EQUATE `MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = 1 ' inclusive
%EQUATE `MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = 16 ' inclusive
#ENDIF ' #IF NOT %DEF(%NORESOURCE) -------------------
%EQUATE `DFC_CAPTION = 1
%EQUATE `DFC_MENU = 2
%EQUATE `DFC_SCROLL = 3
%EQUATE `DFC_BUTTON = 4
%EQUATE `DFC_POPUPMENU = 5
%EQUATE `DFCS_CAPTIONCLOSE = &H0000
%EQUATE `DFCS_CAPTIONMIN = &H0001
%EQUATE `DFCS_CAPTIONMAX = &H0002
%EQUATE `DFCS_CAPTIONRESTORE = &H0003
%EQUATE `DFCS_CAPTIONHELP = &H0004
%EQUATE `DFCS_MENUARROW = &H0000
%EQUATE `DFCS_MENUCHECK = &H0001
%EQUATE `DFCS_MENUBULLET = &H0002
%EQUATE `DFCS_MENUARROWRIGHT = &H0004
%EQUATE `DFCS_SCROLLUP = &H0000
%EQUATE `DFCS_SCROLLDOWN = &H0001
%EQUATE `DFCS_SCROLLLEFT = &H0002
%EQUATE `DFCS_SCROLLRIGHT = &H0003
%EQUATE `DFCS_SCROLLCOMBOBOX = &H0005
%EQUATE `DFCS_SCROLLSIZEGRIP = &H0008
%EQUATE `DFCS_SCROLLSIZEGRIPRIGHT = &H0010
%EQUATE `DFCS_BUTTONCHECK = &H0000
%EQUATE `DFCS_BUTTONRADIOIMAGE = &H0001
%EQUATE `DFCS_BUTTONRADIOMASK = &H0002
%EQUATE `DFCS_BUTTONRADIO = &H0004
%EQUATE `DFCS_BUTTON3STATE = &H0008
%EQUATE `DFCS_BUTTONPUSH = &H0010
%EQUATE `DFCS_INACTIVE = &H00000100
%EQUATE `DFCS_PUSHED = &H00000200
%EQUATE `DFCS_CHECKED = &H00000400
%EQUATE `DFCS_TRANSPARENT = &H00000800
%EQUATE `DFCS_HOT = &H00001000
%EQUATE `DFCS_ADJUSTRECT = &H00002000
%EQUATE `DFCS_FLAT = &H00004000
%EQUATE `DFCS_MONO = &H00008000
' flags for DrawCaption
%EQUATE `DC_ACTIVE = &H0001
%EQUATE `DC_SMALLCAP = &H0002
%EQUATE `DC_ICON = &H0004
%EQUATE `DC_TEXT = &H0008
%EQUATE `DC_INBUTTON = &H0010
%EQUATE `DC_GRADIENT = &H0020
%EQUATE `DC_BUTTONS = &H1000
%EQUATE `IDANI_OPEN = 1
%EQUATE `IDANI_CAPTION = 3
%EQUATE `DDD_RAW_TARGET_PATH = &H00000001
%EQUATE `DDD_REMOVE_DEFINITION = &H00000002
%EQUATE `DDD_EXACT_MATCH_ON_REMOVE = &H00000004
%EQUATE `DDD_NO_BROADCAST_SYSTEM = &H00000008
%EQUATE `DDD_LUID_BROADCAST_DRIVE = &H00000010
%EQUATE `MAX_DRIVE = 3 ' max. length of drive component
%EQUATE `MAX_DIR = 256 ' max. length of path component
%EQUATE `MAX_EXT = 256 ' max. length of extension component
%EQUATE `FOREGROUND_BLUE = &H0001 ' text color contains blue.
%EQUATE `FOREGROUND_GREEN = &H0002 ' text color contains green.
%EQUATE `FOREGROUND_RED = &H0004 ' text color contains red.
%EQUATE `FOREGROUND_INTENSITY = &H0008 ' text color is intensified.
%EQUATE `BACKGROUND_BLUE = &H0010 ' background color contains blue.
%EQUATE `BACKGROUND_GREEN = &H0020 ' background color contains green.
%EQUATE `BACKGROUND_RED = &H0040 ' background color contains red.
%EQUATE `BACKGROUND_INTENSITY = &H0080 ' background color is intensified.
%EQUATE `COMMON_LVB_LEADING_BYTE = &H0100 ' Leading Byte of DBCS
%EQUATE `COMMON_LVB_TRAILING_BYTE = &H0200 ' Trailing Byte of DBCS
%EQUATE `COMMON_LVB_GRID_HORIZONTAL = &H0400 ' DBCS: Grid attribute: top horizontal.
%EQUATE `COMMON_LVB_GRID_LVERTICAL = &H0800 ' DBCS: Grid attribute: left vertical.
%EQUATE `COMMON_LVB_GRID_RVERTICAL = &H1000 ' DBCS: Grid attribute: right vertical.
%EQUATE `COMMON_LVB_REVERSE_VIDEO = &H4000 ' DBCS: Reverse fore/back ground attribute.
%EQUATE `COMMON_LVB_UNDERSCORE = &H8000 ' DBCS: Underscore.
%EQUATE `COMMON_LVB_SBCSDBCS = &H0300 ' SBCS or DBCS flag.
%EQUATE `R2_BLACK = 1 ' 0
%EQUATE `R2_NOTMERGEPEN = 2 ' DPon
%EQUATE `R2_MASKNOTPEN = 3 ' DPna
%EQUATE `R2_NOTCOPYPEN = 4
%EQUATE `R2_MASKPENNOT = 5 ' PDna
%EQUATE `R2_NOT = 6 ' Dn
%EQUATE `R2_XORPEN = 7 ' DPx
%EQUATE `R2_NOTMASKPEN = 8 ' DPan
%EQUATE `R2_MASKPEN = 9 ' DPa
%EQUATE `R2_NOTXORPEN = 10 ' DPxn
%EQUATE `R2_NOP = 11 ' D
%EQUATE `R2_MERGENOTPEN = 12 ' DPno
%EQUATE `R2_COPYPEN = 13
%EQUATE `R2_MERGEPENNOT = 14 ' PDno
%EQUATE `R2_MERGEPEN = 15 ' DPo
%EQUATE `R2_WHITE = 16 ' 1
%EQUATE `R2_LAST = 16
' Ternary raster operations
%EQUATE `SRCCOPY = &H00CC0020 ' (DWORD) dest = source
%EQUATE `SRCPAINT = &H00EE0086 ' (DWORD) dest = source OR dest
%EQUATE `SRCAND = &H008800C6 ' (DWORD) dest = source AND dest
%EQUATE `SRCINVERT = &H00660046 ' (DWORD) dest = source XOR dest
%EQUATE `SRCERASE = &H00440328 ' (DWORD) dest = source AND (NOT dest )
%EQUATE `NOTSRCCOPY = &H00330008 ' (DWORD) dest = (NOT source)
%EQUATE `NOTSRCERASE = &H001100A6 ' (DWORD) dest = (NOT src) AND (NOT dest)
%EQUATE `MERGECOPY = &H00C000CA ' (DWORD) dest = (source AND pattern)
%EQUATE `MERGEPAINT = &H00BB0226 ' (DWORD) dest = (NOT source) OR dest
%EQUATE `PATCOPY = &H00F00021 ' (DWORD) dest = pattern
%EQUATE `PATPAINT = &H00FB0A09 ' (DWORD) dest = DPSnoo
%EQUATE `PATINVERT = &H005A0049 ' (DWORD) dest = pattern XOR dest
%EQUATE `DSTINVERT = &H00550009 ' (DWORD) dest = (NOT dest)
%EQUATE `BLACKNESS = &H00000042 ' (DWORD) dest = BLACK
%EQUATE `WHITENESS = &H00FF0062 ' (DWORD) dest = WHITE
%EQUATE `NOMIRRORBITMAP = &H80000000 ' Do not Mirror the bitmap in this call
%EQUATE `CAPTUREBLT = &H40000000 ' Include layered windows
%EQUATE `GDI_ERROR = &HFFFFFFFF
%EQUATE `HGDI_ERROR = &HFFFFFFFF
' Region Flags
%EQUATE `ERROR = 0
%EQUATE `ERRORAPI = %ERROR ' [legacy]
%EQUATE `NULLREGION = 1
%EQUATE `SIMPLEREGION = 2
%EQUATE `COMPLEXREGION = 3
%EQUATE `RGN_ERROR = %ERROR
' CombineRgn() Styles
%EQUATE `RGN_AND = 1
%EQUATE `RGN_OR = 2
%EQUATE `RGN_XOR = 3
%EQUATE `RGN_DIFF = 4
%EQUATE `RGN_COPY = 5
%EQUATE `RGN_MIN = %RGN_AND
%EQUATE `RGN_MAX = %RGN_COPY
' StretchBlt() Modes
%EQUATE `MAXSTRETCHBLTMODE = 4
' New StretchBlt() Modes
%EQUATE `STRETCH_ANDSCANS = %BLACKONWHITE
%EQUATE `STRETCH_ORSCANS = %WHITEONBLACK
%EQUATE `STRETCH_DELETESCANS = %COLORONCOLOR
%EQUATE `STRETCH_HALFTONE = %HALFTONE
' Layout Orientation Options
%EQUATE `LAYOUT_RTL = &H00000001 ' Right to left
%EQUATE `LAYOUT_BTT = &H00000002 ' Bottom to top
%EQUATE `LAYOUT_VBH = &H00000004 ' Vertical before horizontal
%EQUATE `LAYOUT_ORIENTATIONMASK = (%LAYOUT_RTL OR %LAYOUT_BTT OR %LAYOUT_VBH)
%EQUATE `LAYOUT_BITMAPORIENTATIONPRESERVED = &H00000008
' PolyFill() Modes
%EQUATE `ALTERNATE = 1
%EQUATE `WINDING = 2
%EQUATE `POLYFILL_LAST = 2
' Text Alignment Options
%EQUATE `TA_NOUPDATECP = 0
%EQUATE `TA_UPDATECP = 1
%EQUATE `TA_LEFT = 0
%EQUATE `TA_RIGHT = 2
%EQUATE `TA_CENTER = 6
%EQUATE `TA_TOP = 0
%EQUATE `TA_BOTTOM = 8
%EQUATE `TA_BASELINE = 24
%EQUATE `TA_RTLREADING = 256
%EQUATE `TA_MASK = %TA_BASELINE + %TA_CENTER + %TA_UPDATECP + %TA_RTLREADING
%EQUATE `VTA_BASELINE = %TA_BASELINE
%EQUATE `VTA_LEFT = %TA_BOTTOM
%EQUATE `VTA_RIGHT = %TA_TOP
%EQUATE `VTA_CENTER = %TA_CENTER
%EQUATE `VTA_BOTTOM = %TA_RIGHT
%EQUATE `VTA_TOP = %TA_LEFT
%EQUATE `ETO_OPAQUE = 2
%EQUATE `ETO_CLIPPED = 4
%EQUATE `ETO_GLYPH_INDEX = &H0010
%EQUATE `ETO_RTLREADING = &H0080
%EQUATE `ETO_NUMERICSLOCAL = &H0400
%EQUATE `ETO_NUMERICSLATIN = &H0800
%EQUATE `ETO_IGNORELANGUAGE = &H1000
%EQUATE `ETO_PDY = &H2000
%EQUATE `ETO_REVERSE_INDEX_MAP = &H10000
%EQUATE `ASPECT_FILTERING = &H1
' Bounds Accumulation APIs
%EQUATE `DCB_RESET = &H0001
%EQUATE `DCB_ACCUMULATE = &H0002
%EQUATE `DCB_DIRTY = %DCB_ACCUMULATE
%EQUATE `DCB_SET = (%DCB_RESET OR %DCB_ACCUMULATE)
%EQUATE `DCB_ENABLE = &H0004
%EQUATE `DCB_DISABLE = &H0008
' Metafile Functions
%EQUATE `META_SAVEDC = &H01E
%EQUATE `META_REALIZEPALETTE = &H035
%EQUATE `META_SETPALENTRIES = &H037
%EQUATE `META_CREATEPALETTE = &H0F7
%EQUATE `META_SETBKMODE = &H102
%EQUATE `META_SETMAPMODE = &H103
%EQUATE `META_SETROP2 = &H104
%EQUATE `META_SETRELABS = &H105
%EQUATE `META_SETPOLYFILLMODE = &H106
%EQUATE `META_SETSTRETCHBLTMODE = &H107
%EQUATE `META_SETTEXTCHAREXTRA = &H108
%EQUATE `META_RESTOREDC = &H127
%EQUATE `META_INVERTREGION = &H12A
%EQUATE `META_PAINTREGION = &H12B
%EQUATE `META_SELECTCLIPREGION = &H12C
%EQUATE `META_SELECTOBJECT = &H12D
%EQUATE `META_SETTEXTALIGN = &H12E
%EQUATE `META_RESIZEPALETTE = &H139
%EQUATE `META_DIBCREATEPATTERNBRUSH = &H142
%EQUATE `META_DELETEOBJECT = &H1F0
%EQUATE `META_CREATEPATTERNBRUSH = &H1F9
%EQUATE `META_SETBKCOLOR = &H201
%EQUATE `META_SETTEXTCOLOR = &H209
%EQUATE `META_SETTEXTJUSTIFICATION = &H20A
%EQUATE `META_SETWINDOWORG = &H20B
%EQUATE `META_SETWINDOWEXT = &H20C
%EQUATE `META_SETVIEWPORTORG = &H20D
%EQUATE `META_SETVIEWPORTEXT = &H20E
%EQUATE `META_OFFSETWINDOWORG = &H20F
%EQUATE `META_OFFSETVIEWPORTORG = &H211
%EQUATE `META_LINETO = &H213
%EQUATE `META_MOVETO = &H214
%EQUATE `META_OFFSETCLIPRGN = &H220
%EQUATE `META_FILLREGION = &H228
%EQUATE `META_SETMAPPERFLAGS = &H231
%EQUATE `META_SELECTPALETTE = &H234
%EQUATE `META_CREATEPENINDIRECT = &H2FA
%EQUATE `META_CREATEFONTINDIRECT = &H2FB
%EQUATE `META_CREATEBRUSHINDIRECT = &H2FC
%EQUATE `META_POLYGON = &H324
%EQUATE `META_POLYLINE = &H325
%EQUATE `META_SCALEWINDOWEXT = &H410
%EQUATE `META_SCALEVIEWPORTEXT = &H412
%EQUATE `META_EXCLUDECLIPRECT = &H415
%EQUATE `META_INTERSECTCLIPRECT = &H416
%EQUATE `META_ELLIPSE = &H418
%EQUATE `META_FLOODFILL = &H419
%EQUATE `META_RECTANGLE = &H41B
%EQUATE `META_SETPIXEL = &H41F
%EQUATE `META_FRAMEREGION = &H429
%EQUATE `META_ANIMATEPALETTE = &H436
%EQUATE `META_TEXTOUT = &H521
%EQUATE `META_POLYPOLYGON = &H538
%EQUATE `META_EXTFLOODFILL = &H548
%EQUATE `META_ROUNDRECT = &H61C
%EQUATE `META_PATBLT = &H61D
%EQUATE `META_ESCAPE = &H626
%EQUATE `META_CREATEREGION = &H6FF
%EQUATE `META_ARC = &H817
%EQUATE `META_PIE = &H81A
%EQUATE `META_CHORD = &H830
%EQUATE `META_BITBLT = &H922
%EQUATE `META_DIBBITBLT = &H940
%EQUATE `META_EXTTEXTOUT = &HA32
%EQUATE `META_STRETCHBLT = &HB23
%EQUATE `META_DIBSTRETCHBLT = &HB41
%EQUATE `META_SETDIBTODEV = &HD33
%EQUATE `META_STRETCHDIB = &HF43
%EQUATE `META_EXTFLOODFILL = &H0548
%EQUATE `META_SETLAYOUT = &H0149
%EQUATE `META_DELETEOBJECT = &H01f0
%EQUATE `META_CREATEPALETTE = &H00f7
%EQUATE `META_CREATEPATTERNBRUSH = &H01F9
%EQUATE `META_CREATEPENINDIRECT = &H02FA
%EQUATE `META_CREATEFONTINDIRECT = &H02FB
%EQUATE `META_CREATEBRUSHINDIRECT = &H02FC
%EQUATE `META_CREATEREGION = &H06FF
' GDI Escapes
%EQUATE `NEWFRAME = 1
%EQUATE `AbortDocC = 2
%EQUATE `NEXTBAND = 3
%EQUATE `SETCOLORTABLE = 4
%EQUATE `GETCOLORTABLE = 5
%EQUATE `FLUSHOUTPUT = 6
%EQUATE `DRAFTMODE = 7
%EQUATE `QUERYESCSUPPORT = 8
%EQUATE `SETABORTPROC = 9
%EQUATE `StartDocC = 10
%EQUATE `EndDocC = 11
%EQUATE `GETPHYSPAGESIZE = 12
%EQUATE `GETPRINTINGOFFSET = 13
%EQUATE `GETSCALINGFACTOR = 14
%EQUATE `MFCOMMENT = 15
%EQUATE `GETPENWIDTH = 16
%EQUATE `SETCOPYCOUNT = 17
%EQUATE `SELECTPAPERSOURCE = 18
%EQUATE `DEVICEDATA = 19
%EQUATE `PASSTHROUGH = 19
%EQUATE `GETTECHNOLGY = 20
%EQUATE `GETTECHNOLOGY = 20
%EQUATE `SETLINECAP = 21
%EQUATE `SETLINEJOIN = 22
%EQUATE `SetMiterLimitC = 23
%EQUATE `BANDINFO = 24
%EQUATE `DRAWPATTERNRECT = 25
%EQUATE `GETVECTORPENSIZE = 26
%EQUATE `GETVECTORBRUSHSIZE = 27
%EQUATE `ENABLEDUPLEX = 28
%EQUATE `GETSETPAPERBINS = 29
%EQUATE `GETSETPRINTORIENT = 30
%EQUATE `ENUMPAPERBINS = 31
%EQUATE `SETDIBSCALING = 32
%EQUATE `EPSPRINTING = 33
%EQUATE `ENUMPAPERMETRICS = 34
%EQUATE `GETSETPAPERMETRICS = 35
%EQUATE `POSTSCRIPT_DATA = 37
%EQUATE `POSTSCRIPT_IGNORE = 38
%EQUATE `MOUSETRAILS = 39
%EQUATE `GETDEVICEUNITS = 42
%EQUATE `GETEXTENDEDTEXTMETRICS = 256
%EQUATE `GETEXTENTTABLE = 257
%EQUATE `GETPAIRKERNTABLE = 258
%EQUATE `GETTRACKKERNTABLE = 259
%EQUATE `ExtTextOutC = 512
%EQUATE `GETFACENAME = 513
%EQUATE `DOWNLOADFACE = 514
%EQUATE `ENABLERELATIVEWIDTHS = 768
%EQUATE `ENABLEPAIRKERNING = 769
%EQUATE `SETKERNTRACK = 770
%EQUATE `SETALLJUSTVALUES = 771
%EQUATE `SETCHARSET = 772
%EQUATE `STRETCHBLTC = 2048
%EQUATE `METAFILE_DRIVER = 2049
%EQUATE `GETSETSCREENPARAMS = 3072
%EQUATE `QUERYDIBSUPPORT = 3073
%EQUATE `BEGIN_PATH = 4096
%EQUATE `CLIP_TO_PATH = 4097
%EQUATE `END_PATH = 4098
%EQUATE `EXT_DEVICE_CAPS = 4099
%EQUATE `RESTORE_CTM = 4100
%EQUATE `SAVE_CTM = 4101
%EQUATE `SET_ARC_DIRECTION = 4102
%EQUATE `SET_BACKGROUND_COLOR = 4103
%EQUATE `SET_POLY_MODE = 4104
%EQUATE `SET_SCREEN_ANGLE = 4105
%EQUATE `SET_SPREAD = 4106
%EQUATE `TRANSFORM_CTM = 4107
%EQUATE `SET_CLIP_BOX = 4108
%EQUATE `SET_BOUNDS = 4109
%EQUATE `SET_MIRROR_MODE = 4110
%EQUATE `OPENCHANNEL = 4110
%EQUATE `DOWNLOADHEADER = 4111
%EQUATE `CLOSECHANNEL = 4112
%EQUATE `POSTSCRIPT_PASSTHROUGH = 4115
%EQUATE `ENCAPSULATED_POSTSCRIPT = 4116
%EQUATE `POSTSCRIPT_IDENTIFY = 4117 ' new escape for NT5 pscript driver
%EQUATE `POSTSCRIPT_INJECTION = 4118 ' new escape for NT5 pscript driver
%EQUATE `CHECKJPEGFORMAT = 4119
%EQUATE `CHECKPNGFORMAT = 4120
%EQUATE `GET_PS_FEATURESETTING = 4121 ' new escape for NT5 pscript driver
%EQUATE `GDIPLUS_TS_QUERYVER = 4122 ' private escape
%EQUATE `GDIPLUS_TS_RECORD = 4123 ' private escape
%EQUATE `MILCORE_TS_QUERYVER_RESULT_FALSE = &H0
%EQUATE `MILCORE_TS_QUERYVER_RESULT_TRUE = &H7FFFFFFF
%EQUATE `SPCLPASSTHROUGH2 = 4568 ' new escape for NT5 pscript driver
%EQUATE `PSIDENT_GDICENTRIC = 0
%EQUATE `PSIDENT_PSCENTRIC = 1
' Spooler Error Codes
%EQUATE `SP_NOTREPORTED = &H4000
%EQUATE `SP_ERROR = -1
%EQUATE `SP_APPABORT = -2
%EQUATE `SP_USERABORT = -3
%EQUATE `SP_OUTOFDISK = -4
%EQUATE `SP_OUTOFMEMORY = -5
%EQUATE `PR_JOBSTATUS = &H0
%EQUATE `PSINJECT_BEGINSTREAM = 1
%EQUATE `PSINJECT_PSADOBE = 2
%EQUATE `PSINJECT_PAGESATEND = 3
%EQUATE `PSINJECT_PAGES = 4
%EQUATE `PSINJECT_DOCNEEDEDRES = 5
%EQUATE `PSINJECT_DOCSUPPLIEDRES = 6
%EQUATE `PSINJECT_PAGEORDER = 7
%EQUATE `PSINJECT_ORIENTATION = 8
%EQUATE `PSINJECT_BOUNDINGBOX = 9
%EQUATE `PSINJECT_DOCUMENTPROCESSCOLORS = 10
%EQUATE `PSINJECT_COMMENTS = 11
%EQUATE `PSINJECT_BEGINDEFAULTS = 12
%EQUATE `PSINJECT_ENDDEFAULTS = 13
%EQUATE `PSINJECT_BEGINPROLOG = 14
%EQUATE `PSINJECT_ENDPROLOG = 15
%EQUATE `PSINJECT_BEGINSETUP = 16
%EQUATE `PSINJECT_ENDSETUP = 17
%EQUATE `PSINJECT_TRAILER = 18
%EQUATE `PSINJECT_EOF = 19
%EQUATE `PSINJECT_ENDSTREAM = 20
%EQUATE `PSINJECT_DOCUMENTPROCESSCOLORSATEND = 21
%EQUATE `PSINJECT_PAGENUMBER = 100
%EQUATE `PSINJECT_BEGINPAGESETUP = 101
%EQUATE `PSINJECT_ENDPAGESETUP = 102
%EQUATE `PSINJECT_PAGETRAILER = 103
%EQUATE `PSINJECT_PLATECOLOR = 104
%EQUATE `PSINJECT_SHOWPAGE = 105
%EQUATE `PSINJECT_PAGEBBOX = 106
%EQUATE `PSINJECT_ENDPAGECOMMENTS = 107
%EQUATE `PSINJECT_VMSAVE = 200
%EQUATE `PSINJECT_VMRESTORE = 201
%EQUATE `PSINJECT_DLFONT = &Hdddddddd
%EQUATE `FEATURESETTING_NUP = 0
%EQUATE `FEATURESETTING_OUTPUT = 1
%EQUATE `FEATURESETTING_PSLEVEL = 2
%EQUATE `FEATURESETTING_CUSTPAPER = 3
%EQUATE `FEATURESETTING_MIRROR = 4
%EQUATE `FEATURESETTING_NEGATIVE = 5
%EQUATE `FEATURESETTING_PROTOCOL = 6
%EQUATE `FEATURESETTING_PRIVATE_BEGIN = &H1000
%EQUATE `FEATURESETTING_PRIVATE_END = &H1FFF
' Value returned for FEATURESETTING_PROTOCOL
%EQUATE `PSPROTOCOL_ASCII = 0
%EQUATE `PSPROTOCOL_BCP = 1
%EQUATE `PSPROTOCOL_TBCP = 2
%EQUATE `PSPROTOCOL_BINARY = 3
' Flag returned from QUERYDIBSUPPORT
%EQUATE `QDI_SETDIBITS = 1
%EQUATE `QDI_GETDIBITS = 2
%EQUATE `QDI_DIBTOSCREEN = 4
%EQUATE `QDI_STRETCHDIB = 8
' Spooler Error Codes
%EQUATE `SP_NOTREPORTED = &H4000
%EQUATE `SP_ERROR = -1
%EQUATE `SP_APPABORT = -2
%EQUATE `SP_USERABORT = -3
%EQUATE `SP_OUTOFDISK = -4
%EQUATE `SP_OUTOFMEMORY = -5
%EQUATE `PR_JOBSTATUS = &H0000
' Object Definitions for EnumObjects()
%EQUATE `OBJ_PEN = 1
%EQUATE `OBJ_BRUSH = 2
%EQUATE `OBJ_DC = 3
%EQUATE `OBJ_METADC = 4
%EQUATE `OBJ_PAL = 5
%EQUATE `OBJ_FONT = 6
%EQUATE `OBJ_BITMAP = 7
%EQUATE `OBJ_REGION = 8
%EQUATE `OBJ_METAFILE = 9
%EQUATE `OBJ_MEMDC = 10
%EQUATE `OBJ_EXTPEN = 11
%EQUATE `OBJ_ENHMETADC = 12
%EQUATE `OBJ_ENHMETAFILE = 13
%EQUATE `OBJ_COLORSPACE = 14
' xform stuff
%EQUATE `MWT_IDENTITY = 1
%EQUATE `MWT_LEFTMULTIPLY = 2
%EQUATE `MWT_RIGHTMULTIPLY = 3
%EQUATE `MWT_MIN = %MWT_IDENTITY
%EQUATE `MWT_MAX = %MWT_RIGHTMULTIPLY
%EQUATE `BI_RGB = 0
%EQUATE `BI_RLE8 = 1
%EQUATE `BI_RLE4 = 2
%EQUATE `BI_BITFIELDS = 3
%EQUATE `BI_JPEG = 4
%EQUATE `BI_PNG = 5
%EQUATE `NTM_REGULAR = &H00000040
%EQUATE `NTM_BOLD = &H00000020
%EQUATE `NTM_ITALIC = &H00000001
%EQUATE `NTM_NONNEGATIVE_AC = &H00010000
%EQUATE `NTM_OPENTYPE = &H00020000
%EQUATE `NTM_MULTIPLEMASTER = &H00040000
%EQUATE `NTM_MM_INSTANCE = &H00080000
%EQUATE `NTM_TYPE1 = &H00100000
%EQUATE `NTM_DSIG = &H00200000
%EQUATE `TMPF_FIXED_PITCH = &H1
%EQUATE `TMPF_VECTOR = &H2
%EQUATE `TMPF_DEVICE = &H8
%EQUATE `TMPF_TRUETYPE = &H4
#IF NOT %DEF(%LF_FACESIZE)
 %LF_FACESIZE = 32
 %LF_FULLFACESIZE = 64
#ENDIF
%EQUATE `OUT_DEFAULT_PRECIS = 0
%EQUATE `OUT_STRING_PRECIS = 1
%EQUATE `OUT_CHARACTER_PRECIS = 2
%EQUATE `OUT_STROKE_PRECIS = 3
%EQUATE `OUT_TT_PRECIS = 4
%EQUATE `OUT_DEVICE_PRECIS = 5
%EQUATE `OUT_RASTER_PRECIS = 6
%EQUATE `OUT_TT_ONLY_PRECIS = 7
%EQUATE `OUT_OUTLINE_PRECIS = 8
%EQUATE `OUT_SCREEN_OUTLINE_PRECIS = 9
%EQUATE `OUT_PS_ONLY_PRECIS = 10
%EQUATE `CLIP_DEFAULT_PRECIS = 0
%EQUATE `CLIP_CHARACTER_PRECIS = 1
%EQUATE `CLIP_STROKE_PRECIS = 2
%EQUATE `CLIP_MASK = &HF
%EQUATE `CLIP_LH_ANGLES = 16
%EQUATE `CLIP_TT_ALWAYS = 32
%EQUATE `CLIP_EMBEDDED = 128
%EQUATE `DEFAULT_QUALITY = 0
%EQUATE `DRAFT_QUALITY = 1
%EQUATE `PROOF_QUALITY = 2
%EQUATE `NONANTIALIASED_QUALITY = 3
%EQUATE `ANTIALIASED_QUALITY = 4
%EQUATE `CLEARTYPE_QUALITY = 5
%EQUATE `CLEARTYPE_NATURAL_QUALITY = 6
%EQUATE `DEFAULT_PITCH = 0
%EQUATE `FIXED_PITCH = 1
%EQUATE `VARIABLE_PITCH = 2
%EQUATE `MONO_FONT = 8
%EQUATE `ANSI_CHARSET = 0
%EQUATE `DEFAULT_CHARSET = 1
%EQUATE `SYMBOL_CHARSET = 2
%EQUATE `SHIFTJIS_CHARSET = 128
%EQUATE `HANGEUL_CHARSET = 129
%EQUATE `HANGUL_CHARSET = 129
%EQUATE `CHINESEBIG5_CHARSET = 136
%EQUATE `OEM_CHARSET = 255
%EQUATE `JOHAB_CHARSET = 130
%EQUATE `HEBREW_CHARSET = 177
%EQUATE `ARABIC_CHARSET = 178
%EQUATE `GREEK_CHARSET = 161
%EQUATE `TURKISH_CHARSET = 162
%EQUATE `THAI_CHARSET = 222
%EQUATE `EASTEUROPE_CHARSET = 238
%EQUATE `RUSSIAN_CHARSET = 204
%EQUATE `MAC_CHARSET = 77
%EQUATE `BALTIC_CHARSET = 186
' Font Families
%EQUATE `FF_DONTCARE = 0 ' Don't care or don't know.
%EQUATE `FF_ROMAN = 16 ' Variable stroke width, serifed.
%EQUATE `FF_SWISS = 32 ' Variable stroke width, sans-serifed.
%EQUATE `FF_MODERN = 48 ' Constant stroke width, serifed or sans-serifed.
%EQUATE `FF_SCRIPT = 64 ' Cursive, etc.
%EQUATE `FF_DECORATIVE = 80 ' Old English, etc.
' Font Families
%EQUATE `FF_DONTCARE = 0 ' Don't care or don't know.
%EQUATE `FF_ROMAN = 16 ' Variable stroke width, serifed.
 ' Times Roman, Century Schoolbook, etc.
%EQUATE `FF_SWISS = 32 ' Variable stroke width, sans-serifed.
 ' Helvetica, Swiss, etc.
%EQUATE `FF_MODERN = 48 ' Constant stroke width, serifed or sans-serifed.
 ' Pica, Elite, Courier, etc.
%EQUATE `FF_SCRIPT = 64 ' Cursive, etc.
%EQUATE `FF_DECORATIVE = 80 ' Old English, etc.
' Font Weights
%EQUATE `FW_DONTCARE = 0
%EQUATE `FW_THIN = 100
%EQUATE `FW_EXTRALIGHT = 200
%EQUATE `FW_LIGHT = 300
%EQUATE `FW_NORMAL = 400
%EQUATE `FW_MEDIUM = 500
%EQUATE `FW_SEMIBOLD = 600
%EQUATE `FW_BOLD = 700
%EQUATE `FW_EXTRABOLD = 800
%EQUATE `FW_HEAVY = 900
%EQUATE `FW_ULTRALIGHT = %FW_EXTRALIGHT
%EQUATE `FW_REGULAR = %FW_NORMAL
%EQUATE `FW_DEMIBOLD = %FW_SEMIBOLD
%EQUATE `FW_ULTRABOLD = %FW_EXTRABOLD
%EQUATE `FW_BLACK = %FW_HEAVY
%EQUATE `PANOSE_COUNT = 10
%EQUATE `PAN_FAMILYTYPE_INDEX = 0
%EQUATE `PAN_SERIFSTYLE_INDEX = 1
%EQUATE `PAN_WEIGHT_INDEX = 2
%EQUATE `PAN_PROPORTION_INDEX = 3
%EQUATE `PAN_CONTRAST_INDEX = 4
%EQUATE `PAN_STROKEVARIATION_INDEX = 5
%EQUATE `PAN_ARMSTYLE_INDEX = 6
%EQUATE `PAN_LETTERFORM_INDEX = 7
%EQUATE `PAN_MIDLINE_INDEX = 8
%EQUATE `PAN_XHEIGHT_INDEX = 9
%EQUATE `PAN_CULTURE_LATIN = 0
%EQUATE `PAN_ANY = 0 ' Any
%EQUATE `PAN_NO_FIT = 1 ' No Fit
%EQUATE `PAN_FAMILY_TEXT_DISPLAY = 2 ' Text and Display
%EQUATE `PAN_FAMILY_SCRIPT = 3 ' Script
%EQUATE `PAN_FAMILY_DECORATIVE = 4 ' Decorative
%EQUATE `PAN_FAMILY_PICTORIAL = 5 ' Pictorial
%EQUATE `PAN_SERIF_COVE = 2 ' Cove
%EQUATE `PAN_SERIF_OBTUSE_COVE = 3 ' Obtuse Cove
%EQUATE `PAN_SERIF_SQUARE_COVE = 4 ' Square Cove
%EQUATE `PAN_SERIF_OBTUSE_SQUARE_COVE = 5 ' Obtuse Square Cove
%EQUATE `PAN_SERIF_SQUARE = 6 ' Square
%EQUATE `PAN_SERIF_THIN = 7 ' Thin
%EQUATE `PAN_SERIF_BONE = 8 ' Bone
%EQUATE `PAN_SERIF_EXAGGERATED = 9 ' Exaggerated
%EQUATE `PAN_SERIF_TRIANGLE = 10 ' Triangle
%EQUATE `PAN_SERIF_NORMAL_SANS = 11 ' Normal Sans
%EQUATE `PAN_SERIF_OBTUSE_SANS = 12 ' Obtuse Sans
%EQUATE `PAN_SERIF_PERP_SANS = 13 ' Prep Sans
%EQUATE `PAN_SERIF_FLARED = 14 ' Flared
%EQUATE `PAN_SERIF_ROUNDED = 15 ' Rounded
%EQUATE `PAN_WEIGHT_VERY_LIGHT = 2 ' Very Light
%EQUATE `PAN_WEIGHT_LIGHT = 3 ' Light
%EQUATE `PAN_WEIGHT_THIN = 4 ' Thin
%EQUATE `PAN_WEIGHT_BOOK = 5 ' Book
%EQUATE `PAN_WEIGHT_MEDIUM = 6 ' Medium
%EQUATE `PAN_WEIGHT_DEMI = 7 ' Demi
%EQUATE `PAN_WEIGHT_BOLD = 8 ' Bold
%EQUATE `PAN_WEIGHT_HEAVY = 9 ' Heavy
%EQUATE `PAN_WEIGHT_BLACK = 10 ' Black
%EQUATE `PAN_WEIGHT_NORD = 11 ' Nord
%EQUATE `PAN_PROP_OLD_STYLE = 2 ' Old Style
%EQUATE `PAN_PROP_MODERN = 3 ' Modern
%EQUATE `PAN_PROP_EVEN_WIDTH = 4 ' Even Width
%EQUATE `PAN_PROP_EXPANDED = 5 ' Expanded
%EQUATE `PAN_PROP_CONDENSED = 6 ' Condensed
%EQUATE `PAN_PROP_VERY_EXPANDED = 7 ' Very Expanded
%EQUATE `PAN_PROP_VERY_CONDENSED = 8 ' Very Condensed
%EQUATE `PAN_PROP_MONOSPACED = 9 ' Monospaced
%EQUATE `PAN_CONTRAST_NONE = 2 ' None
%EQUATE `PAN_CONTRAST_VERY_LOW = 3 ' Very Low
%EQUATE `PAN_CONTRAST_LOW = 4 ' Low
%EQUATE `PAN_CONTRAST_MEDIUM_LOW = 5 ' Medium Low
%EQUATE `PAN_CONTRAST_MEDIUM = 6 ' Medium
%EQUATE `PAN_CONTRAST_MEDIUM_HIGH = 7 ' Mediim High
%EQUATE `PAN_CONTRAST_HIGH = 8 ' High
%EQUATE `PAN_CONTRAST_VERY_HIGH = 9 ' Very High
%EQUATE `PAN_STROKE_GRADUAL_DIAG = 2 ' Gradual/Diagonal
%EQUATE `PAN_STROKE_GRADUAL_TRAN = 3 ' Gradual/Transitional
%EQUATE `PAN_STROKE_GRADUAL_VERT = 4 ' Gradual/Vertical
%EQUATE `PAN_STROKE_GRADUAL_HORZ = 5 ' Gradual/Horizontal
%EQUATE `PAN_STROKE_RAPID_VERT = 6 ' Rapid/Vertical
%EQUATE `PAN_STROKE_RAPID_HORZ = 7 ' Rapid/Horizontal
%EQUATE `PAN_STROKE_INSTANT_VERT = 8 ' Instant/Vertical
%EQUATE `PAN_STRAIGHT_ARMS_HORZ = 2 ' Straight Arms/Horizontal
%EQUATE `PAN_STRAIGHT_ARMS_WEDGE = 3 ' Straight Arms/Wedge
%EQUATE `PAN_STRAIGHT_ARMS_VERT = 4 ' Straight Arms/Vertical
%EQUATE `PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 ' Straight Arms/Single-Serif
%EQUATE `PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 ' Straight Arms/Double-Serif
%EQUATE `PAN_BENT_ARMS_HORZ = 7 ' Non-Straight Arms/Horizontal
%EQUATE `PAN_BENT_ARMS_WEDGE = 8 ' Non-Straight Arms/Wedge
%EQUATE `PAN_BENT_ARMS_VERT = 9 ' Non-Straight Arms/Vertical
%EQUATE `PAN_BENT_ARMS_SINGLE_SERIF = 10 ' Non-Straight Arms/Single-Serif
%EQUATE `PAN_BENT_ARMS_DOUBLE_SERIF = 11 ' Non-Straight Arms/Double-Serif
%EQUATE `PAN_LETT_NORMAL_CONTACT = 2 ' Normal/Contact
%EQUATE `PAN_LETT_NORMAL_WEIGHTED = 3 ' Normal/Weighted
%EQUATE `PAN_LETT_NORMAL_BOXED = 4 ' Normal/Boxed
%EQUATE `PAN_LETT_NORMAL_FLATTENED = 5 ' Normal/Flattened
%EQUATE `PAN_LETT_NORMAL_ROUNDED = 6 ' Normal/Rounded
%EQUATE `PAN_LETT_NORMAL_OFF_CENTER = 7 ' Normal/Off Center
%EQUATE `PAN_LETT_NORMAL_SQUARE = 8 ' Normal/Square
%EQUATE `PAN_LETT_OBLIQUE_CONTACT = 9 ' Oblique/Contact
%EQUATE `PAN_LETT_OBLIQUE_WEIGHTED = 10 ' Oblique/Weighted
%EQUATE `PAN_LETT_OBLIQUE_BOXED = 11 ' Oblique/Boxed
%EQUATE `PAN_LETT_OBLIQUE_FLATTENED = 12 ' Oblique/Flattened
%EQUATE `PAN_LETT_OBLIQUE_ROUNDED = 13 ' Oblique/Rounded
%EQUATE `PAN_LETT_OBLIQUE_OFF_CENTER = 14 ' Oblique/Off Center
%EQUATE `PAN_LETT_OBLIQUE_SQUARE = 15 ' Oblique/Square
%EQUATE `PAN_MIDLINE_STANDARD_TRIMMED = 2 ' Standard/Trimmed
%EQUATE `PAN_MIDLINE_STANDARD_POINTED = 3 ' Standard/Pointed
%EQUATE `PAN_MIDLINE_STANDARD_SERIFED = 4 ' Standard/Serifed
%EQUATE `PAN_MIDLINE_HIGH_TRIMMED = 5 ' High/Trimmed
%EQUATE `PAN_MIDLINE_HIGH_POINTED = 6 ' High/Pointed
%EQUATE `PAN_MIDLINE_HIGH_SERIFED = 7 ' High/Serifed
%EQUATE `PAN_MIDLINE_CONSTANT_TRIMMED = 8 ' Constant/Trimmed
%EQUATE `PAN_MIDLINE_CONSTANT_POINTED = 9 ' Constant/Pointed
%EQUATE `PAN_MIDLINE_CONSTANT_SERIFED = 10 ' Constant/Serifed
%EQUATE `PAN_MIDLINE_LOW_TRIMMED = 11 ' Low/Trimmed
%EQUATE `PAN_MIDLINE_LOW_POINTED = 12 ' Low/Pointed
%EQUATE `PAN_MIDLINE_LOW_SERIFED = 13 ' Low/Serifed
%EQUATE `PAN_XHEIGHT_CONSTANT_SMALL = 2 ' Constant/Small
%EQUATE `PAN_XHEIGHT_CONSTANT_STD = 3 ' Constant/Standard
%EQUATE `PAN_XHEIGHT_CONSTANT_LARGE = 4 ' Constant/Large
%EQUATE `PAN_XHEIGHT_DUCKING_SMALL = 5 ' Ducking/Small
%EQUATE `PAN_XHEIGHT_DUCKING_STD = 6 ' Ducking/Standard
%EQUATE `PAN_XHEIGHT_DUCKING_LARGE = 7 ' Ducking/Large
' EnumFonts Masks
%EQUATE `RASTER_FONTTYPE = &H1
%EQUATE `DEVICE_FONTTYPE = &H2
%EQUATE `TRUETYPE_FONTTYPE = &H4
' palette entry flags
%EQUATE `PC_RESERVED = &H1 ' palette index used for animation
%EQUATE `PC_EXPLICIT = &H2 ' palette index is explicit to device
%EQUATE `PC_NOCOLLAPSE = &H4 ' do not match color to system palette
' Background Modes
%EQUATE `TRANSPARENT = 1
%EQUATE `OPAQUE = 2
%EQUATE `BKMODE_LAST = 2
' Graphics Modes
%EQUATE `GM_COMPATIBLE = 1
%EQUATE `GM_ADVANCED = 2
%EQUATE `GM_LAST = 2
' PolyDraw and GetPath point types
%EQUATE `PT_CLOSEFIGURE = &H1
%EQUATE `PT_LINETO = &H2
%EQUATE `PT_BEZIERTO = &H4
%EQUATE `PT_MOVETO = &H6
' Mapping Modes
%EQUATE `MM_TEXT = 1
%EQUATE `MM_LOMETRIC = 2
%EQUATE `MM_HIMETRIC = 3
%EQUATE `MM_LOENGLISH = 4
%EQUATE `MM_HIENGLISH = 5
%EQUATE `MM_TWIPS = 6
%EQUATE `MM_ISOTROPIC = 7
%EQUATE `MM_ANISOTROPIC = 8
' Min and Max Mapping Mode values
%EQUATE `MM_MIN = %MM_TEXT
%EQUATE `MM_MAX = %MM_ANISOTROPIC
%EQUATE `MM_MAX_FIXEDSCALE = %MM_TWIPS
' Coordinate Modes
%EQUATE `ABSOLUTE = 1
%EQUATE `RELATIVE = 2
' Stock Logical Objects
%EQUATE `WHITE_BRUSH = 0
%EQUATE `LTGRAY_BRUSH = 1
%EQUATE `GRAY_BRUSH = 2
%EQUATE `DKGRAY_BRUSH = 3
%EQUATE `BLACK_BRUSH = 4
%EQUATE `NULL_BRUSH = 5
%EQUATE `HOLLOW_BRUSH = %NULL_BRUSH
%EQUATE `WHITE_PEN = 6
%EQUATE `BLACK_PEN = 7
%EQUATE `NULL_PEN = 8
%EQUATE `OEM_FIXED_FONT = 10
%EQUATE `ANSI_FIXED_FONT = 11
%EQUATE `ANSI_VAR_FONT = 12
%EQUATE `SYSTEM_FONT = 13
%EQUATE `DEVICE_DEFAULT_FONT = 14
%EQUATE `DEFAULT_PALETTE = 15
%EQUATE `SYSTEM_FIXED_FONT = 16
%EQUATE `DEFAULT_GUI_FONT = 17
%EQUATE `DC_BRUSH = 18
%EQUATE `DC_PEN = 19
%EQUATE `STOCK_LAST = 19 ' depending on Windows version, may be 16, 17 or 19
%EQUATE `CLR_INVALID = &HFFFFFFFF ' some Microsoft docs claim this is &HFFFF, but it's not
' Brush Styles
%EQUATE `BS_SOLID = 0
%EQUATE `BS_NULL = 1
%EQUATE `BS_HOLLOW = %BS_NULL
%EQUATE `BS_HATCHED = 2
%EQUATE `BS_PATTERN = 3
%EQUATE `BS_INDEXED = 4
%EQUATE `BS_DIBPATTERN = 5
%EQUATE `BS_DIBPATTERNPT = 6
%EQUATE `BS_PATTERN8X8 = 7
%EQUATE `BS_DIBPATTERN8X8 = 8
%EQUATE `BS_MONOPATTERN = 9
' Hatch Styles
%EQUATE `HS_HORIZONTAL = 0 ' -----
%EQUATE `HS_VERTICAL = 1 ' |||||
%EQUATE `HS_FDIAGONAL = 2 ' \\\\\
%EQUATE `HS_BDIAGONAL = 3 ' -----
%EQUATE `HS_CROSS = 4 ' +++++
%EQUATE `HS_DIAGCROSS = 5 ' xxxxx
%EQUATE `HS_API_MAX = 12
' Pen Styles
%EQUATE `PS_SOLID = 0
%EQUATE `PS_DASH = 1 ' -------
%EQUATE `PS_DOT = 2 ' .......
%EQUATE `PS_DASHDOT = 3 ' _._._._
%EQUATE `PS_DASHDOTDOT = 4 ' _.._.._
%EQUATE `PS_NULL = 5
%EQUATE `PS_INSIDEFRAME = 6
%EQUATE `PS_USERSTYLE = 7
%EQUATE `PS_ALTERNATE = 8
%EQUATE `PS_STYLE_MASK = &H0000000F
%EQUATE `PS_ENDCAP_ROUND = &H00000000
%EQUATE `PS_ENDCAP_SQUARE = &H00000100
%EQUATE `PS_ENDCAP_FLAT = &H00000200
%EQUATE `PS_ENDCAP_MASK = &H00000F00
%EQUATE `PS_JOIN_ROUND = &H00000000
%EQUATE `PS_JOIN_BEVEL = &H00001000
%EQUATE `PS_JOIN_MITER = &H00002000
%EQUATE `PS_JOIN_MASK = &H0000F000
%EQUATE `PS_COSMETIC = &H00000000
%EQUATE `PS_GEOMETRIC = &H00010000
%EQUATE `PS_TYPE_MASK = &H000F0000
%EQUATE `AD_COUNTERCLOCKWISE = 1
%EQUATE `AD_CLOCKWISE = 2
' WM_PRINT flags
%EQUATE `PRF_CHECKVISIBLE = &H00000001
%EQUATE `PRF_NONCLIENT = &H00000002
%EQUATE `PRF_CLIENT = &H00000004
%EQUATE `PRF_ERASEBKGND = &H00000008
%EQUATE `PRF_CHILDREN = &H00000010
%EQUATE `PRF_OWNED = &H00000020
' 3D border styles
%EQUATE `BDR_RAISEDOUTER = &H0001
%EQUATE `BDR_SUNKENOUTER = &H0002
%EQUATE `BDR_RAISEDINNER = &H0004
%EQUATE `BDR_SUNKENINNER = &H0008
%EQUATE `BDR_OUTER = %BDR_RAISEDOUTER OR %BDR_SUNKENOUTER
%EQUATE `BDR_INNER = %BDR_RAISEDINNER OR %BDR_SUNKENINNER
%EQUATE `BDR_RAISED = %BDR_RAISEDOUTER OR %BDR_RAISEDINNER
%EQUATE `BDR_SUNKEN = %BDR_SUNKENOUTER OR %BDR_SUNKENINNER
%EQUATE `EDGE_RAISED = %BDR_RAISEDOUTER OR %BDR_RAISEDINNER
%EQUATE `EDGE_SUNKEN = %BDR_SUNKENOUTER OR %BDR_SUNKENINNER
%EQUATE `EDGE_ETCHED = %BDR_SUNKENOUTER OR %BDR_RAISEDINNER
%EQUATE `EDGE_BUMP = %BDR_RAISEDOUTER OR %BDR_SUNKENINNER
' Border flags
%EQUATE `BF_LEFT = &H0001
%EQUATE `BF_TOP = &H0002
%EQUATE `BF_RIGHT = &H0004
%EQUATE `BF_BOTTOM = &H0008
%EQUATE `BF_TOPLEFT = %BF_TOP OR %BF_LEFT
%EQUATE `BF_TOPRIGHT = %BF_TOP OR %BF_RIGHT
%EQUATE `BF_BOTTOMLEFT = %BF_BOTTOM OR %BF_LEFT
%EQUATE `BF_BOTTOMRIGHT = %BF_BOTTOM OR %BF_RIGHT
%EQUATE `BF_RECT = %BF_LEFT OR %BF_TOP OR %BF_RIGHT OR %BF_BOTTOM
%EQUATE `BF_DIAGONAL = &H0010
' For diagonal lines, the BF_RECT flags specify the end point of the
' vector bounded by the rectangle parameter.
%EQUATE `BF_DIAGONAL_ENDTOPRIGHT = %BF_DIAGONAL OR %BF_TOP OR %BF_RIGHT
%EQUATE `BF_DIAGONAL_ENDTOPLEFT = %BF_DIAGONAL OR %BF_TOP OR %BF_LEFT
%EQUATE `BF_DIAGONAL_ENDBOTTOMLEFT = %BF_DIAGONAL OR %BF_BOTTOM OR %BF_LEFT
%EQUATE `BF_DIAGONAL_ENDBOTTOMRIGHT = %BF_DIAGONAL OR %BF_BOTTOM OR %BF_RIGHT
%EQUATE `BF_MIDDLE = &H00000800 ' Fill in the middle
%EQUATE `BF_SOFT = &H00001000 ' For softer buttons
%EQUATE `BF_ADJUST = &H00002000 ' Calculate the space left over
%EQUATE `BF_FLAT = &H00004000 ' For flat rather than 3D borders
%EQUATE `BF_MONO = &H00008000 ' For monochrome borders
' Device Parameters for GetDeviceCaps()
%EQUATE `DRIVERVERSION = 0 ' Device driver version
%EQUATE `TECHNOLOGY = 2 ' Device classification
%EQUATE `HORZSIZE = 4 ' Horizontal size in millimeters
%EQUATE `VERTSIZE = 6 ' Vertical size in millimeters
%EQUATE `HORZRES = 8 ' Horizontal width in pixels
%EQUATE `VERTRES = 10 ' Vertical width in pixels
%EQUATE `BITSPIXEL = 12 ' Number of bits per pixel
%EQUATE `PLANES = 14 ' Number of planes
%EQUATE `NUMBRUSHES = 16 ' Number of brushes the device has
%EQUATE `NUMPENS = 18 ' Number of pens the device has
%EQUATE `NUMMARKERS = 20 ' Number of markers the device has
%EQUATE `NUMFONTS = 22 ' Number of fonts the device has
%EQUATE `NUMCOLORS = 24 ' Number of colors the device supports
%EQUATE `PDEVICESIZE = 26 ' Size required for device descriptor
%EQUATE `CURVECAPS = 28 ' Curve capabilities
%EQUATE `LINECAPS = 30 ' Line capabilities
%EQUATE `POLYGONALCAPS = 32 ' Polygonal capabilities
%EQUATE `TEXTCAPS = 34 ' Text capabilities
%EQUATE `CLIPCAPS = 36 ' Clipping capabilities
%EQUATE `RASTERCAPS = 38 ' Bitblt capabilities
%EQUATE `ASPECTX = 40 ' Length of the X leg
%EQUATE `ASPECTY = 42 ' Length of the Y leg
%EQUATE `ASPECTXY = 44 ' Length of the hypotenuse
%EQUATE `LOGPIXELSX = 88 ' Logical pixels/inch in X
%EQUATE `LOGPIXELSY = 90 ' Logical pixels/inch in Y
%EQUATE `SIZEPALETTE = 104 ' Number of entries in physical palette
%EQUATE `NUMRESERVED = 106 ' Number of reserved entries in palette
%EQUATE `COLORRES = 108 ' Actual color resolution
' Printing related DeviceCaps. These replace the appropriate Escapes
%EQUATE `PHYSICALWIDTH = 110 ' Physical Width in device units
%EQUATE `PHYSICALHEIGHT = 111 ' Physical Height in device units
%EQUATE `PHYSICALOFFSETX = 112 ' Physical Printable Area x margin
%EQUATE `PHYSICALOFFSETY = 113 ' Physical Printable Area y margin
%EQUATE `SCALINGFACTORX = 114 ' Scaling factor x
%EQUATE `SCALINGFACTORY = 115 ' Scaling factor y
%EQUATE `VREFRESH = 116 ' Current vertical refresh rate of the
%EQUATE `DESKTOPVERTRES = 117 ' Horizontal width of entire desktop in pixels
%EQUATE `DESKTOPHORZRES = 118 ' Vertical height of entire desktop in pixels
%EQUATE `BLTALIGNMENT = 119 ' Preferred blt alignment
%EQUATE `SHADEBLENDCAPS = 120 ' Shading and blending caps
%EQUATE `COLORMGMTCAPS = 121 ' Color Management caps
' Device Capability Masks:
' Device Technologies
%EQUATE `DT_PLOTTER = 0 ' Vector plotter
%EQUATE `DT_RASDISPLAY = 1 ' Raster display
%EQUATE `DT_RASPRINTER = 2 ' Raster printer
%EQUATE `DT_RASCAMERA = 3 ' Raster camera
%EQUATE `DT_CHARSTREAM = 4 ' Character-stream, PLP
%EQUATE `DT_METAFILE = 5 ' Metafile, VDM
%EQUATE `DT_DISPFILE = 6 ' Display-file
' Curve Capabilities
%EQUATE `CC_NONE = 0 ' Curves not supported
%EQUATE `CC_CIRCLES = 1 ' Can do circles
%EQUATE `CC_PIE = 2 ' Can do pie wedges
%EQUATE `CC_CHORD = 4 ' Can do chord arcs
%EQUATE `CC_ELLIPSES = 8 ' Can do ellipese
%EQUATE `CC_WIDE = 16 ' Can do wide lines
%EQUATE `CC_STYLED = 32 ' Can do styled lines
%EQUATE `CC_WIDESTYLED = 64 ' Can do wide styled lines
%EQUATE `CC_INTERIORS = 128 ' Can do interiors
%EQUATE `CC_ROUNDRECT = 256 '
' Line Capabilities
%EQUATE `LC_NONE = 0 ' Lines not supported
%EQUATE `LC_POLYLINE = 2 ' Can do polylines
%EQUATE `LC_MARKER = 4 ' Can do markers
%EQUATE `LC_POLYMARKER = 8 ' Can do polymarkers
%EQUATE `LC_WIDE = 16 ' Can do wide lines
%EQUATE `LC_STYLED = 32 ' Can do styled lines
%EQUATE `LC_WIDESTYLED = 64 ' Can do wide styled lines
%EQUATE `LC_INTERIORS = 128 ' Can do interiors
' Polygonal Capabilities
%EQUATE `PC_NONE = 0 ' Polygonals not supported
%EQUATE `PC_POLYGON = 1 ' Can do polygons
%EQUATE `PC_RECTANGLE = 2 ' Can do rectangles
%EQUATE `PC_WINDPOLYGON = 4 ' Can do winding polygons
%EQUATE `PC_TRAPEZOID = 4 ' Can do trapezoids
%EQUATE `PC_SCANLINE = 8 ' Can do scanlines
%EQUATE `PC_WIDE = 16 ' Can do wide borders
%EQUATE `PC_STYLED = 32 ' Can do styled borders
%EQUATE `PC_WIDESTYLED = 64 ' Can do wide styled borders
%EQUATE `PC_INTERIORS = 128 ' Can do interiors
%EQUATE `PC_POLYPOLYGON = 256 ' Can do polypolygons
%EQUATE `PC_PATHS = 512 ' Can do paths
' Polygonal Capabilities
%EQUATE `CP_NONE = 0 ' No clipping of output
%EQUATE `CP_RECTANGLE = 1 ' Output clipped to rects
%EQUATE `CP_REGION = 2 ' obsolete
' Text Capabilities
%EQUATE `TC_OP_CHARACTER = &H00000001 ' Can do OutputPrecision CHARACTER
%EQUATE `TC_OP_STROKE = &H00000002 ' Can do OutputPrecision STROKE
%EQUATE `TC_CP_STROKE = &H00000004 ' Can do ClipPrecision STROKE
%EQUATE `TC_CR_90 = &H00000008 ' Can do CharRotAbility 90
%EQUATE `TC_CR_ANY = &H00000010 ' Can do CharRotAbility ANY
%EQUATE `TC_SF_X_YINDEP = &H00000020 ' Can do ScaleFreedom X_YINDEPENDENT
%EQUATE `TC_SA_DOUBLE = &H00000040 ' Can do ScaleAbility DOUBLE
%EQUATE `TC_SA_INTEGER = &H00000080 ' Can do ScaleAbility INTEGER
%EQUATE `TC_SA_CONTIN = &H00000100 ' Can do ScaleAbility CONTINUOUS
%EQUATE `TC_EA_DOUBLE = &H00000200 ' Can do EmboldenAbility DOUBLE
%EQUATE `TC_IA_ABLE = &H00000400 ' Can do ItalisizeAbility ABLE
%EQUATE `TC_UA_ABLE = &H00000800 ' Can do UnderlineAbility ABLE
%EQUATE `TC_SO_ABLE = &H00001000 ' Can do StrikeOutAbility ABLE
%EQUATE `TC_RA_ABLE = &H00002000 ' Can do RasterFontAble ABLE
%EQUATE `TC_VA_ABLE = &H00004000 ' Can do VectorFontAble ABLE
%EQUATE `TC_RESERVED = &H00008000
%EQUATE `TC_SCROLLBLT = &H00010000 ' do text scroll with blt
' Raster Capabilities
%EQUATE `RC_NONE = &H00000000
%EQUATE `RC_BITBLT = &H00000001 ' Can do standard BLT.
%EQUATE `RC_BANDING = &H00000002 ' Device requires banding support
%EQUATE `RC_SCALING = &H00000004 ' Device requires scaling support
%EQUATE `RC_BITMAP64 = &H00000008 ' Device can support >64K bitmap
%EQUATE `RC_GDI20_OUTPUT = &H00000010 ' has 2.0 output calls
%EQUATE `RC_GDI20_STATE = &H00000020
%EQUATE `RC_SAVEBITMAP = &H00000040
%EQUATE `RC_DI_BITMAP = &H00000080 ' supports DIB to memory
%EQUATE `RC_PALETTE = &H00000100 ' supports a palette
%EQUATE `RC_DIBTODEV = &H00000200 ' supports DIBitsToDevice
%EQUATE `RC_BIGFONT = &H00000400 ' supports >64K fonts
%EQUATE `RC_STRETCHBLT = &H00000800 ' supports StretchBlt
%EQUATE `RC_FLOODFILL = &H00001000 ' supports FloodFill
%EQUATE `RC_STRETCHDIB = &H00002000 ' supports StretchDIBits
%EQUATE `RC_OP_DX_OUTPUT = &H00004000
%EQUATE `RC_DEVBITS = &H00008000
%EQUATE `SB_NONE = &H00000000
%EQUATE `SB_CONST_ALPHA = &H00000001
%EQUATE `SB_PIXEL_ALPHA = &H00000002
%EQUATE `SB_PREMULT_ALPHA = &H00000004
%EQUATE `SB_GRAD_RECT = &H00000010
%EQUATE `SB_GRAD_TRI = &H00000020
' Color Management caps
%EQUATE `CM_NONE = &H00000000
%EQUATE `CM_DEVICE_ICM = &H00000001
%EQUATE `CM_GAMMA_RAMP = &H00000002
%EQUATE `CM_CMYK_COLOR = &H00000004
' DIB color table identifiers
%EQUATE `DIB_RGB_COLORS = 0 ' color table in RGBs
%EQUATE `DIB_PAL_COLORS = 1 ' color table in palette indices
%EQUATE `DIB_PAL_INDICES = 2 ' No color table indices into surf palette
%EQUATE `DIB_PAL_PHYSINDICES = 2 ' No color table indices into surf palette
%EQUATE `DIB_PAL_LOGINDICES = 4 ' No color table indices into DC palette
' constants for Get/SetSystemPaletteUse()
%EQUATE `SYSPAL_ERROR = 0
%EQUATE `SYSPAL_STATIC = 1
%EQUATE `SYSPAL_NOSTATIC = 2
%EQUATE `SYSPAL_NOSTATIC256 = 3
' constants for CreateDIBitmap
%EQUATE `CBM_CREATEDIB = &H2 ' create DIB bitmap
%EQUATE `CBM_INIT = &H4 ' initialize bitmap
' ExtFloodFill style flags
%EQUATE `FLOODFILLBORDER = 0
%EQUATE `FLOODFILLSURFACE = 1
' size of a device name string
%EQUATE `CCHDEVICENAME = 32
' size of a form name string
%EQUATE `CCHFORMNAME = 32
' current version of specification
%EQUATE `DM_SPECVERSION = &H0401
' field selection bits
%EQUATE `DM_ORIENTATION = &H00000001
%EQUATE `DM_PAPERSIZE = &H00000002
%EQUATE `DM_PAPERLENGTH = &H00000004
%EQUATE `DM_PAPERWIDTH = &H00000008
%EQUATE `DM_SCALE = &H00000010
%EQUATE `DM_POSITION = &H00000020
%EQUATE `DM_COPIES = &H00000100
%EQUATE `DM_DEFAULTSOURCE = &H00000200
%EQUATE `DM_PRINTQUALITY = &H00000400
%EQUATE `DM_COLOR = &H00000800
%EQUATE `DM_DUPLEX = &H00001000
%EQUATE `DM_YRESOLUTION = &H00002000
%EQUATE `DM_TTOPTION = &H00004000
%EQUATE `DM_COLLATE = &H00008000
%EQUATE `DM_FORMNAME = &H00010000
%EQUATE `DM_LOGPIXELS = &H00020000
%EQUATE `DM_BITSPERPEL = &H00040000
%EQUATE `DM_PELSWIDTH = &H00080000
%EQUATE `DM_PELSHEIGHT = &H00100000
%EQUATE `DM_DISPLAYFLAGS = &H00200000
%EQUATE `DM_DISPLAYFREQUENCY = &H00400000
%EQUATE `DM_ICMMETHOD = &H00800000
%EQUATE `DM_ICMINTENT = &H01000000
%EQUATE `DM_MEDIATYPE = &H02000000
%EQUATE `DM_DITHERTYPE = &H04000000
%EQUATE `DM_PANNINGWIDTH = &H08000000
%EQUATE `DM_PANNINGHEIGHT = &H10000000
%EQUATE `DM_DISPLAYFIXEDOUTPUT = &H20000000
' orientation selections
%EQUATE `DMORIENT_PORTRAIT = 1
%EQUATE `DMORIENT_LANDSCAPE = 2
' paper selections
%EQUATE `DMPAPER_LETTER = 1
%EQUATE `DMPAPER_FIRST = %DMPAPER_LETTER
' Letter 8 1/2 x 11 in
%EQUATE `DMPAPER_LETTERSMALL = 2 ' Letter Small 8 1/2 x 11 in
%EQUATE `DMPAPER_TABLOID = 3 ' Tabloid 11 x 17 in
%EQUATE `DMPAPER_LEDGER = 4 ' Ledger 17 x 11 in
%EQUATE `DMPAPER_LEGAL = 5 ' Legal 8 1/2 x 14 in
%EQUATE `DMPAPER_STATEMENT = 6 ' Statement 5 1/2 x 8 1/2 in
%EQUATE `DMPAPER_EXECUTIVE = 7 ' Executive 7 1/4 x 10 1/2 in
%EQUATE `DMPAPER_A3 = 8 ' A3 297 x 420 mm
%EQUATE `DMPAPER_A4 = 9 ' A4 210 x 297 mm
%EQUATE `DMPAPER_A4SMALL = 10 ' A4 Small 210 x 297 mm
%EQUATE `DMPAPER_A5 = 11 ' A5 148 x 210 mm
%EQUATE `DMPAPER_B4 = 12 ' B4 250 x 354
%EQUATE `DMPAPER_B5 = 13 ' B5 182 x 257 mm
%EQUATE `DMPAPER_FOLIO = 14 ' Folio 8 1/2 x 13 in
%EQUATE `DMPAPER_QUARTO = 15 ' Quarto 215 x 275 mm
%EQUATE `DMPAPER_10X14 = 16 ' 1&H14 in
%EQUATE `DMPAPER_11X17 = 17 ' 11x17 in
%EQUATE `DMPAPER_NOTE = 18 ' Note 8 1/2 x 11 in
%EQUATE `DMPAPER_ENV_9 = 19 ' Envelope #9 3 7/8 x 8 7/8
%EQUATE `DMPAPER_ENV_10 = 20 ' Envelope #10 4 1/8 x 9 1/2
%EQUATE `DMPAPER_ENV_11 = 21 ' Envelope #11 4 1/2 x 10 3/8
%EQUATE `DMPAPER_ENV_12 = 22 ' Envelope #12 4 \276 x 11
%EQUATE `DMPAPER_ENV_14 = 23 ' Envelope #14 5 x 11 1/2
%EQUATE `DMPAPER_CSHEET = 24 ' C size sheet
%EQUATE `DMPAPER_DSHEET = 25 ' D size sheet
%EQUATE `DMPAPER_ESHEET = 26 ' E size sheet
%EQUATE `DMPAPER_ENV_DL = 27 ' Envelope DL 110 x 220mm
%EQUATE `DMPAPER_ENV_C5 = 28 ' Envelope C5 162 x 229 mm
%EQUATE `DMPAPER_ENV_C3 = 29 ' Envelope C3 324 x 458 mm
%EQUATE `DMPAPER_ENV_C4 = 30 ' Envelope C4 229 x 324 mm
%EQUATE `DMPAPER_ENV_C6 = 31 ' Envelope C6 114 x 162 mm
%EQUATE `DMPAPER_ENV_C65 = 32 ' Envelope C65 114 x 229 mm
%EQUATE `DMPAPER_ENV_B4 = 33 ' Envelope B4 250 x 353 mm
%EQUATE `DMPAPER_ENV_B5 = 34 ' Envelope B5 176 x 250 mm
%EQUATE `DMPAPER_ENV_B6 = 35 ' Envelope B6 176 x 125 mm
%EQUATE `DMPAPER_ENV_ITALY = 36 ' Envelope 110 x 230 mm
%EQUATE `DMPAPER_ENV_MONARCH = 37 ' Envelope Monarch 3.875 x 7.5 in
%EQUATE `DMPAPER_ENV_PERSONAL = 38 ' 6 3/4 Envelope 3 5/8 x 6 1/2 in
%EQUATE `DMPAPER_FANFOLD_US = 39 ' US Std Fanfold 14 7/8 x 11 in
%EQUATE `DMPAPER_FANFOLD_STD_GERMAN = 40 ' German Std Fanfold 8 1/2 x 12 in
%EQUATE `DMPAPER_FANFOLD_LGL_GERMAN = 41 ' German Legal Fanfold 8 1/2 x 13 in
%EQUATE `DMPAPER_ISO_B4 = 42 ' B4 (ISO) 250 x 353 mm
%EQUATE `DMPAPER_JAPANESE_POSTCARD = 43 ' Japanese Postcard 100 x 148 mm
%EQUATE `DMPAPER_9X11 = 44 ' 9 x 11 in
%EQUATE `DMPAPER_10X11 = 45 ' 10 x 11 in
%EQUATE `DMPAPER_15X11 = 46 ' 15 x 11 in
%EQUATE `DMPAPER_ENV_INVITE = 47 ' Envelope Invite 220 x 220 mm
%EQUATE `DMPAPER_RESERVED_48 = 48 ' RESERVED--DO NOT USE
%EQUATE `DMPAPER_RESERVED_49 = 49 ' RESERVED--DO NOT USE
%EQUATE `DMPAPER_LETTER_EXTRA = 50 ' Letter Extra 9 \275 x 12 in
%EQUATE `DMPAPER_LEGAL_EXTRA = 51 ' Legal Extra 9 \275 x 15 in
%EQUATE `DMPAPER_TABLOID_EXTRA = 52 ' Tabloid Extra 11.69 x 18 in
%EQUATE `DMPAPER_A4_EXTRA = 53 ' A4 Extra 9.27 x 12.69 in
%EQUATE `DMPAPER_LETTER_TRANSVERSE = 54 ' Letter Transverse 8 \275 x 11 in
%EQUATE `DMPAPER_A4_TRANSVERSE = 55 ' A4 Transverse 210 x 297 mm
%EQUATE `DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 ' Letter Extra Transverse 9\275 x 12 in
%EQUATE `DMPAPER_A_PLUS = 57 ' SuperA/SuperA/A4 227 x 356 mm
%EQUATE `DMPAPER_B_PLUS = 58 ' SuperB/SuperB/A3 305 x 487 mm
%EQUATE `DMPAPER_LETTER_PLUS = 59 ' Letter Plus 8.5 x 12.69 in
%EQUATE `DMPAPER_A4_PLUS = 60 ' A4 Plus 210 x 330 mm
%EQUATE `DMPAPER_A5_TRANSVERSE = 61 ' A5 Transverse 148 x 210 mm
%EQUATE `DMPAPER_B5_TRANSVERSE = 62 ' B5 (JIS) Transverse 182 x 257 mm
%EQUATE `DMPAPER_A3_EXTRA = 63 ' A3 Extra 322 x 445 mm
%EQUATE `DMPAPER_A5_EXTRA = 64 ' A5 Extra 174 x 235 mm
%EQUATE `DMPAPER_B5_EXTRA = 65 ' B5 (ISO) Extra 201 x 276 mm
%EQUATE `DMPAPER_A2 = 66 ' A2 420 x 594 mm
%EQUATE `DMPAPER_A3_TRANSVERSE = 67 ' A3 Transverse 297 x 420 mm
%EQUATE `DMPAPER_A3_EXTRA_TRANSVERSE = 68 ' A3 Extra Transverse 322 x 445 mm
%EQUATE `DMPAPER_DBL_JAPANESE_POSTCARD = 69 ' Japanese Double Postcard 200 x 148 mm
%EQUATE `DMPAPER_A6 = 70 ' A6 105 x 148 mm
%EQUATE `DMPAPER_JENV_KAKU2 = 71 ' Japanese Envelope Kaku #2
%EQUATE `DMPAPER_JENV_KAKU3 = 72 ' Japanese Envelope Kaku #3
%EQUATE `DMPAPER_JENV_CHOU3 = 73 ' Japanese Envelope Chou #3
%EQUATE `DMPAPER_JENV_CHOU4 = 74 ' Japanese Envelope Chou #4
%EQUATE `DMPAPER_LETTER_ROTATED = 75 ' Letter Rotated 11 x 8 1/2 11 in
%EQUATE `DMPAPER_A3_ROTATED = 76 ' A3 Rotated 420 x 297 mm
%EQUATE `DMPAPER_A4_ROTATED = 77 ' A4 Rotated 297 x 210 mm
%EQUATE `DMPAPER_A5_ROTATED = 78 ' A5 Rotated 210 x 148 mm
%EQUATE `DMPAPER_B4_JIS_ROTATED = 79 ' B4 (JIS) Rotated 364 x 257 mm
%EQUATE `DMPAPER_B5_JIS_ROTATED = 80 ' B5 (JIS) Rotated 257 x 182 mm
%EQUATE `DMPAPER_JAPANESE_POSTCARD_ROTATED = 81 ' Japanese Postcard Rotated 148 x 100 mm
%EQUATE `DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED = 82 ' Double Japanese Postcard Rotated 148 x 200 mm
%EQUATE `DMPAPER_A6_ROTATED = 83 ' A6 Rotated 148 x 105 mm
%EQUATE `DMPAPER_JENV_KAKU2_ROTATED = 84 ' Japanese Envelope Kaku #2 Rotated
%EQUATE `DMPAPER_JENV_KAKU3_ROTATED = 85 ' Japanese Envelope Kaku #3 Rotated
%EQUATE `DMPAPER_JENV_CHOU3_ROTATED = 86 ' Japanese Envelope Chou #3 Rotated
%EQUATE `DMPAPER_JENV_CHOU4_ROTATED = 87 ' Japanese Envelope Chou #4 Rotated
%EQUATE `DMPAPER_B6_JIS = 88 ' B6 (JIS) 128 x 182 mm
%EQUATE `DMPAPER_B6_JIS_ROTATED = 89 ' B6 (JIS) Rotated 182 x 128 mm
%EQUATE `DMPAPER_12X11 = 90 ' 12 x 11 in
%EQUATE `DMPAPER_JENV_YOU4 = 91 ' Japanese Envelope You #4
%EQUATE `DMPAPER_JENV_YOU4_ROTATED = 92 ' Japanese Envelope You #4 Rotated
%EQUATE `DMPAPER_P16K = 93 ' PRC 16K 146 x 215 mm
%EQUATE `DMPAPER_P32K = 94 ' PRC 32K 97 x 151 mm
%EQUATE `DMPAPER_P32KBIG = 95 ' PRC 32K(Big) 97 x 151 mm
%EQUATE `DMPAPER_PENV_1 = 96 ' PRC Envelope #1 102 x 165 mm
%EQUATE `DMPAPER_PENV_2 = 97 ' PRC Envelope #2 102 x 176 mm
%EQUATE `DMPAPER_PENV_3 = 98 ' PRC Envelope #3 125 x 176 mm
%EQUATE `DMPAPER_PENV_4 = 99 ' PRC Envelope #4 110 x 208 mm
%EQUATE `DMPAPER_PENV_5 = 100 ' PRC Envelope #5 110 x 220 mm
%EQUATE `DMPAPER_PENV_6 = 101 ' PRC Envelope #6 120 x 230 mm
%EQUATE `DMPAPER_PENV_7 = 102 ' PRC Envelope #7 160 x 230 mm
%EQUATE `DMPAPER_PENV_8 = 103 ' PRC Envelope #8 120 x 309 mm
%EQUATE `DMPAPER_PENV_9 = 104 ' PRC Envelope #9 229 x 324 mm
%EQUATE `DMPAPER_PENV_10 = 105 ' PRC Envelope #10 324 x 458 mm
%EQUATE `DMPAPER_P16K_ROTATED = 106 ' PRC 16K Rotated
%EQUATE `DMPAPER_P32K_ROTATED = 107 ' PRC 32K Rotated
%EQUATE `DMPAPER_P32KBIG_ROTATED = 108 ' PRC 32K(Big) Rotated
%EQUATE `DMPAPER_PENV_1_ROTATED = 109 ' PRC Envelope #1 Rotated 165 x 102 mm
%EQUATE `DMPAPER_PENV_2_ROTATED = 110 ' PRC Envelope #2 Rotated 176 x 102 mm
%EQUATE `DMPAPER_PENV_3_ROTATED = 111 ' PRC Envelope #3 Rotated 176 x 125 mm
%EQUATE `DMPAPER_PENV_4_ROTATED = 112 ' PRC Envelope #4 Rotated 208 x 110 mm
%EQUATE `DMPAPER_PENV_5_ROTATED = 113 ' PRC Envelope #5 Rotated 220 x 110 mm
%EQUATE `DMPAPER_PENV_6_ROTATED = 114 ' PRC Envelope #6 Rotated 230 x 120 mm
%EQUATE `DMPAPER_PENV_7_ROTATED = 115 ' PRC Envelope #7 Rotated 230 x 160 mm
%EQUATE `DMPAPER_PENV_8_ROTATED = 116 ' PRC Envelope #8 Rotated 309 x 120 mm
%EQUATE `DMPAPER_PENV_9_ROTATED = 117 ' PRC Envelope #9 Rotated 324 x 229 mm
%EQUATE `DMPAPER_PENV_10_ROTATED = 118 ' PRC Envelope #10 Rotated 458 x 324 mm
%EQUATE `DMPAPER_LAST = %DMPAPER_PENV_10_ROTATED
%EQUATE `DMPAPER_USER = 256
' bin selections
%EQUATE `DMBIN_FIRST = %DMBIN_UPPER
%EQUATE `DMBIN_ONLYONE = 1
%EQUATE `DMBIN_LAST = %DMBIN_FORMSOURCE
%EQUATE `DMBIN_USER = 256 ' device specific bins start here
' print qualities
%EQUATE `DMRES_DRAFT = -1
%EQUATE `DMRES_LOW = -2
%EQUATE `DMRES_MEDIUM = -3
%EQUATE `DMRES_HIGH = -4
' TrueType options
%EQUATE `DMTT_BITMAP = 1 ' print TT fonts as graphics
%EQUATE `DMTT_DOWNLOAD = 2 ' download TT fonts as soft fonts
%EQUATE `DMTT_SUBDEV = 3 ' substitute device fonts for TT fonts
%EQUATE `DMTT_DOWNLOAD_OUTLINE = 4 ' download TT fonts as outline soft fonts
' DEVMODE dmDisplayFlags flags
'%DM_GRAYSCALE = &H1 ' no longer valid
%EQUATE `DM_INTERLACED = &H2
%EQUATE `DMDISPLAYFLAGS_TEXTMODE = &H4
' GetRegionData/ExtCreateRegion
%EQUATE `RDH_RECTANGLES = 1
' GetGlyphOutline constants
%EQUATE `GGO_METRICS = 0
%EQUATE `GGO_BITMAP = 1
%EQUATE `GGO_NATIVE = 2
%EQUATE `GGO_BEZIER = 3
%EQUATE `GGO_GRAY2_BITMAP = 4
%EQUATE `GGO_GRAY4_BITMAP = 5
%EQUATE `GGO_GRAY8_BITMAP = 6
%EQUATE `GGO_GLYPH_INDEX = &H0080
%EQUATE `GGO_UNHINTED = &H0100
%EQUATE `TT_POLYGON_TYPE = 24
%EQUATE `TT_PRIM_LINE = 1
%EQUATE `TT_PRIM_QSPLINE = 2
%EQUATE `TT_PRIM_CSPLINE = 3
' bits defined in wFlags of RASTERIZER_STATUS
%EQUATE `TT_AVAILABLE = &H1
%EQUATE `TT_ENABLED = &H2
' mode selections for the device mode function
%EQUATE `DM_UPDATE = 1
%EQUATE `DM_COPY = 2
%EQUATE `DM_PROMPT = 4
%EQUATE `DM_MODIFY = 8
%EQUATE `DM_IN_BUFFER = %DM_MODIFY
%EQUATE `DM_IN_PROMPT = %DM_PROMPT
%EQUATE `DM_OUT_BUFFER = %DM_COPY
%EQUATE `DM_OUT_DEFAULT = %DM_UPDATE
' device capabilities indices
%EQUATE `DC_FIELDS = 1
%EQUATE `DC_PAPERS = 2
%EQUATE `DC_PAPERSIZE = 3
%EQUATE `DC_MINEXTENT = 4
%EQUATE `DC_MAXEXTENT = 5
%EQUATE `DC_BINS = 6
%EQUATE `DC_DUPLEX = 7
%EQUATE `DC_SIZE = 8
%EQUATE `DC_EXTRA = 9
%EQUATE `DC_VERSION = 10
%EQUATE `DC_DRIVER = 11
%EQUATE `DC_BINNAMES = 12
%EQUATE `DC_ENUMRESOLUTIONS = 13
%EQUATE `DC_FILEDEPENDENCIES = 14
%EQUATE `DC_TRUETYPE = 15
%EQUATE `DC_PAPERNAMES = 16
%EQUATE `DC_ORIENTATION = 17
%EQUATE `DC_COPIES = 18
%EQUATE `DC_BINADJUST = 19
%EQUATE `DC_EMF_COMPLIANT = 20
%EQUATE `DC_DATATYPE_PRODUCED = 21
%EQUATE `DC_COLLATE = 22
%EQUATE `DC_MANUFACTURER = 23
%EQUATE `DC_MODEL = 24
%EQUATE `DC_PERSONALITY = 25
%EQUATE `DC_PRINTRATE = 26
%EQUATE `DC_PRINTRATEUNIT = 27
%EQUATE `DC_PRINTERMEM = 28
%EQUATE `DC_MEDIAREADY = 29
%EQUATE `DC_STAPLE = 30
%EQUATE `DC_PRINTRATEPPM = 31
%EQUATE `DC_COLORDEVICE = 32
%EQUATE `DC_NUP = 33
%EQUATE `DC_MEDIATYPENAMES = 34
%EQUATE `DC_MEDIATYPES = 35
' bit fields of the return value (DWORD) for DC_TRUETYPE
%EQUATE `DCTT_BITMAP = &H00000001
%EQUATE `DCTT_DOWNLOAD = &H00000002
%EQUATE `DCTT_SUBDEV = &H00000004
%EQUATE `DCTT_DOWNLOAD_OUTLINE = &H00000008
' return values for DC_BINADJUST
%EQUATE `DCBA_FACEUPNONE = &H0000
%EQUATE `DCBA_FACEUPCENTER = &H0001
%EQUATE `DCBA_FACEUPLEFT = &H0002
%EQUATE `DCBA_FACEUPRIGHT = &H0003
%EQUATE `DCBA_FACEDOWNNONE = &H0100
%EQUATE `DCBA_FACEDOWNCENTER = &H0101
%EQUATE `DCBA_FACEDOWNLEFT = &H0102
%EQUATE `DCBA_FACEDOWNRIGHT = &H0103
' Flags value for COLORADJUSTMENT
%EQUATE `CA_NEGATIVE = &H1
%EQUATE `CA_LOG_FILTER = &H2
' IlluminantIndex values
%EQUATE `ILLUMINANT_DEVICE_DEFAULT = 0
%EQUATE `ILLUMINANT_A = 1
%EQUATE `ILLUMINANT_B = 2
%EQUATE `ILLUMINANT_C = 3
%EQUATE `ILLUMINANT_D50 = 4
%EQUATE `ILLUMINANT_D55 = 5
%EQUATE `ILLUMINANT_D65 = 6
%EQUATE `ILLUMINANT_D75 = 7
%EQUATE `ILLUMINANT_F2 = 8
%EQUATE `ILLUMINANT_MAX_INDEX = %ILLUMINANT_F2
%EQUATE `ILLUMINANT_TUNGSTEN = %ILLUMINANT_A
%EQUATE `ILLUMINANT_DAYLIGHT = %ILLUMINANT_C
%EQUATE `ILLUMINANT_FLUORESCENT = %ILLUMINANT_F2
%EQUATE `ILLUMINANT_NTSC = %ILLUMINANT_C
' Min and max for RedGamma, GreenGamma, BlueGamma
%EQUATE `RGB_GAMMA_MIN = 2500
%EQUATE `RGB_GAMMA_MAX = 65000
' Min and max for ReferenceBlack and ReferenceWhite
%EQUATE `REFERENCE_WHITE_MIN = 6000
%EQUATE `REFERENCE_WHITE_MAX = 10000
%EQUATE `REFERENCE_BLACK_MIN = 0
%EQUATE `REFERENCE_BLACK_MAX = 4000
' Min and max for Contrast, Brightness, Colorfulness, RedGreenTint
%EQUATE `COLOR_ADJ_MIN = -100
%EQUATE `COLOR_ADJ_MAX = 100
%EQUATE `FONTMAPPER_MAX = 10
%EQUATE `ENHMETA_SIGNATURE = &H464D4520
' Stock object flag used in the object handle
' index in the enhanced metafile records.
' E.g. The object xHandle index (%META_STOCK_OBJECT OR %BLACK_BRUSH)
' represents the stock object BLACK_BRUSH.
%EQUATE `ENHMETA_STOCK_OBJECT = &H80000000
' Enhanced metafile record types.
%EQUATE `EMR_HEADER = 1
%EQUATE `EMR_POLYBEZIER = 2
%EQUATE `EMR_POLYGON = 3
%EQUATE `EMR_POLYLINE = 4
%EQUATE `EMR_POLYBEZIERTO = 5
%EQUATE `EMR_POLYLINETO = 6
%EQUATE `EMR_POLYPOLYLINE = 7
%EQUATE `EMR_POLYPOLYGON = 8
%EQUATE `EMR_SETWINDOWEXTEX = 9
%EQUATE `EMR_SETWINDOWORGEX = 10
%EQUATE `EMR_SETVIEWPORTEXTEX = 11
%EQUATE `EMR_SETVIEWPORTORGEX = 12
%EQUATE `EMR_SETBRUSHORGEX = 13
%EQUATE `EMR_EOF = 14
%EQUATE `EMR_SETPIXELV = 15
%EQUATE `EMR_SETMAPPERFLAGS = 16
%EQUATE `EMR_SETMAPMODE = 17
%EQUATE `EMR_SETBKMODE = 18
%EQUATE `EMR_SETPOLYFILLMODE = 19
%EQUATE `EMR_SETROP2 = 20
%EQUATE `EMR_SETSTRETCHBLTMODE = 21
%EQUATE `EMR_SETTEXTALIGN = 22
%EQUATE `EMR_SETCOLORADJUSTMENT = 23
%EQUATE `EMR_SETTEXTCOLOR = 24
%EQUATE `EMR_SETBKCOLOR = 25
%EQUATE `EMR_OFFSETCLIPRGN = 26
%EQUATE `EMR_MOVETOEX = 27
%EQUATE `EMR_SETMETARGN = 28
%EQUATE `EMR_EXCLUDECLIPRECT = 29
%EQUATE `EMR_INTERSECTCLIPRECT = 30
%EQUATE `EMR_SCALEVIEWPORTEXTEX = 31
%EQUATE `EMR_SCALEWINDOWEXTEX = 32
%EQUATE `EMR_SAVEDC = 33
%EQUATE `EMR_RESTOREDC = 34
%EQUATE `EMR_SETWORLDTRANSFORM = 35
%EQUATE `EMR_MODIFYWORLDTRANSFORM = 36
%EQUATE `EMR_SELECTOBJECT = 37
%EQUATE `EMR_CREATEPEN = 38
%EQUATE `EMR_CREATEBRUSHINDIRECT = 39
%EQUATE `EMR_DELETEOBJECT = 40
%EQUATE `EMR_ANGLEARC = 41
%EQUATE `EMR_ELLIPSE = 42
%EQUATE `EMR_RECTANGLE = 43
%EQUATE `EMR_ROUNDRECT = 44
%EQUATE `EMR_ARC = 45
%EQUATE `EMR_CHORD = 46
%EQUATE `EMR_PIE = 47
%EQUATE `EMR_SELECTPALETTE = 48
%EQUATE `EMR_CREATEPALETTE = 49
%EQUATE `EMR_SETPALETTEENTRIES = 50
%EQUATE `EMR_RESIZEPALETTE = 51
%EQUATE `EMR_REALIZEPALETTE = 52
%EQUATE `EMR_EXTFLOODFILL = 53
%EQUATE `EMR_LINETO = 54
%EQUATE `EMR_ARCTO = 55
%EQUATE `EMR_POLYDRAW = 56
%EQUATE `EMR_SETARCDIRECTION = 57
%EQUATE `EMR_SETMITERLIMIT = 58
%EQUATE `EMR_BEGINPATH = 59
%EQUATE `EMR_ENDPATH = 60
%EQUATE `EMR_CLOSEFIGURE = 61
%EQUATE `EMR_FILLPATH = 62
%EQUATE `EMR_STROKEANDFILLPATH = 63
%EQUATE `EMR_STROKEPATH = 64
%EQUATE `EMR_FLATTENPATH = 65
%EQUATE `EMR_WIDENPATH = 66
%EQUATE `EMR_SELECTCLIPPATH = 67
%EQUATE `EMR_ABORTPATH = 68
%EQUATE `EMR_GDICOMMENT = 70
%EQUATE `EMR_FILLRGN = 71
%EQUATE `EMR_FRAMERGN = 72
%EQUATE `EMR_INVERTRGN = 73
%EQUATE `EMR_PAINTRGN = 74
%EQUATE `EMR_EXTSELECTCLIPRGN = 75
%EQUATE `EMR_BITBLT = 76
%EQUATE `EMR_STRETCHBLT = 77
%EQUATE `EMR_MASKBLT = 78
%EQUATE `EMR_PLGBLT = 79
%EQUATE `EMR_SETDIBITSTODEVICE = 80
%EQUATE `EMR_STRETCHDIBITS = 81
%EQUATE `EMR_EXTCREATEFONTINDIRECTW = 82
%EQUATE `EMR_EXTTEXTOUTA = 83
%EQUATE `EMR_EXTTEXTOUTW = 84
%EQUATE `EMR_POLYBEZIER16 = 85
%EQUATE `EMR_POLYGON16 = 86
%EQUATE `EMR_POLYLINE16 = 87
%EQUATE `EMR_POLYBEZIERTO16 = 88
%EQUATE `EMR_POLYLINETO16 = 89
%EQUATE `EMR_POLYPOLYLINE16 = 90
%EQUATE `EMR_POLYPOLYGON16 = 91
%EQUATE `EMR_POLYDRAW16 = 92
%EQUATE `EMR_CREATEMONOBRUSH = 93
%EQUATE `EMR_CREATEDIBPATTERNBRUSHPT = 94
%EQUATE `EMR_EXTCREATEPEN = 95
%EQUATE `EMR_POLYTEXTOUTA = 96
%EQUATE `EMR_POLYTEXTOUTW = 97
%EQUATE `EMR_SETICMMODE = 98
%EQUATE `EMR_CREATECOLORSPACE = 99
%EQUATE `EMR_SETCOLORSPACE = 100
%EQUATE `EMR_DELETECOLORSPACE = 101
%EQUATE `EMR_GLSRECORD = 102
%EQUATE `EMR_GLSBOUNDEDRECORD = 103
%EQUATE `EMR_PIXELFORMAT = 104
%EQUATE `EMR_DRAWESCAPE = 105
%EQUATE `EMR_EXTESCAPE = 106
%EQUATE `EMR_STARTDOC = 107
%EQUATE `EMR_SMALLTEXTOUT = 108
%EQUATE `EMR_FORCEUFIMAPPING = 109
%EQUATE `EMR_NAMEDESCAPE = 110
%EQUATE `EMR_COLORCORRECTPALETTE = 111
%EQUATE `EMR_SETICMPROFILEA = 112
%EQUATE `EMR_SETICMPROFILEW = 113
%EQUATE `EMR_ALPHABLEND = 114
%EQUATE `EMR_ALPHADIBBLEND = 115
%EQUATE `EMR_TRANSPARENTBLT = 116
%EQUATE `EMR_TRANSPARENTDIB = 117
%EQUATE `EMR_GRADIENTFILL = 118
%EQUATE `EMR_SETLINKEDUFIS = 119
%EQUATE `EMR_SETTEXTJUSTIFICATION = 120
%EQUATE `EMR_COLORMATCHTOTARGETW = 121
%EQUATE `EMR_CREATECOLORSPACEW = 122
%EQUATE `EMR_MIN = 1
%EQUATE `EMR_MAX = 122 ' varies by Windows version
' StretchBlt() Modes
%EQUATE `STRETCH_ANDSCANS = 1
%EQUATE `STRETCH_ORSCANS = 2
%EQUATE `STRETCH_DELETESCANS = 3
%EQUATE `STRETCH_HALFTONE = 4
%EQUATE `TCI_SRCCHARSET = 1
%EQUATE `TCI_SRCCODEPAGE = 2
%EQUATE `TCI_SRCFONTSIG = 3
%EQUATE `FS_LATIN1 = &H00000001
%EQUATE `FS_LATIN2 = &H00000002
%EQUATE `FS_CYRILLIC = &H00000004
%EQUATE `FS_GREEK = &H00000008
%EQUATE `FS_TURKISH = &H00000010
%EQUATE `FS_HEBREW = &H00000020
%EQUATE `FS_ARABIC = &H00000040
%EQUATE `FS_BALTIC = &H00000080
%EQUATE `FS_THAI = &H00010000
%EQUATE `FS_JISJAPAN = &H00020000
%EQUATE `FS_CHINESESIMP = &H00040000
%EQUATE `FS_WANSUNG = &H00080000
%EQUATE `FS_CHINESETRAD = &H00100000
%EQUATE `FS_JOHAB = &H00200000
%EQUATE `FS_SYMBOL = &H80000000
' ICM methods
%EQUATE `DMICMMETHOD_NONE = 1 ' ICM disabled
%EQUATE `DMICMMETHOD_SYSTEM = 2 ' ICM handled by system
%EQUATE `DMICMMETHOD_DRIVER = 3 ' ICM handled by driver
%EQUATE `DMICMMETHOD_DEVICE = 4 ' ICM handled by device
%EQUATE `DMICMMETHOD_USER = 256 ' Device-specific methods start here
' ICM Intents
%EQUATE `DMICM_SATURATE = 1 ' Maximize color saturation
%EQUATE `DMICM_CONTRAST = 2 ' Maximize color contrast
%EQUATE `DMICM_COLORMETRIC = 3 ' Use specific color metric
%EQUATE `DMICM_ABS_COLORIMETRIC = 4 ' Use specific color metric
%EQUATE `DMICM_USER = 256 ' Device-specific intents start here
' Media types
%EQUATE `DMMEDIA_STANDARD = 1 ' Standard paper
%EQUATE `DMMEDIA_TRANSPARENCY = 2 ' Transparency
%EQUATE `DMMEDIA_GLOSSY = 3 ' Glossy paper
%EQUATE `DMMEDIA_USER = 256 ' Device-specific media start here
' Dither types
%EQUATE `DMDITHER_NONE = 1 ' No dithering
%EQUATE `DMDITHER_COARSE = 2 ' Dither with a coarse brush
%EQUATE `DMDITHER_FINE = 3 ' Dither with a fine brush
%EQUATE `DMDITHER_LINEART = 4 ' LineArt dithering
%EQUATE `DMDITHER_ERRORDIFFUSION = 5 ' LineArt dithering
%EQUATE `DMDITHER_RESERVED6 = 6 ' LineArt dithering
%EQUATE `DMDITHER_RESERVED7 = 7 ' LineArt dithering
%EQUATE `DMDITHER_RESERVED8 = 8 ' LineArt dithering
%EQUATE `DMDITHER_RESERVED9 = 9 ' LineArt dithering
%EQUATE `DMDITHER_GRAYSCALE = 10 ' Device does grayscaling
%EQUATE `DMDITHER_USER = 256 ' Device-specific dithers start here
%EQUATE `GCP_DBCS = &H00000001
%EQUATE `GCP_REORDER = &H00000002
%EQUATE `GCP_USEKERNING = &H00000008
%EQUATE `GCP_GLYPHSHAPE = &H00000010
%EQUATE `GCP_LIGATE = &H00000020
%EQUATE `GCP_DIACRITIC = &H00000100
%EQUATE `GCP_KASHIDA = &H00000400
%EQUATE `GCP_ERROR = &H00008000
%EQUATE `FLI_MASK = &H0000103B
%EQUATE `GCP_JUSTIFY = &H00010000
%EQUATE `GCP_NODIACRITICS = &H00020000
%EQUATE `FLI_GLYPHS = &H00040000
%EQUATE `GCP_CLASSIN = &H00080000
%EQUATE `GCP_MAXEXTENT = &H00100000
%EQUATE `GCP_JUSTIFYIN = &H00200000
%EQUATE `GCP_DISPLAYZWG = &H00400000
%EQUATE `GCP_SYMSWAPOFF = &H00800000
%EQUATE `GCP_NUMERICOVERRIDE = &H01000000
%EQUATE `GCP_NEUTRALOVERRIDE = &H02000000
%EQUATE `GCP_NUMERICSLATIN = &H04000000
%EQUATE `GCP_NUMERICSLOCAL = &H08000000
%EQUATE `GCPCLASS_LATIN = 1
%EQUATE `GCPCLASS_HEBREW = 2
%EQUATE `GCPCLASS_ARABIC = 2
%EQUATE `GCPCLASS_NEUTRAL = 3
%EQUATE `GCPCLASS_LOCALNUMBER = 4
%EQUATE `GCPCLASS_LATINNUMBER = 5
%EQUATE `GCPCLASS_LATINNUMERICTERMINATOR = 6
%EQUATE `GCPCLASS_LATINNUMERICSEPARATOR = 7
%EQUATE `GCPCLASS_NUMERICSEPARATOR = 8
%EQUATE `GCPCLASS_PREBOUNDLTR = &H80
%EQUATE `GCPCLASS_PREBOUNDRTL = &H40
%EQUATE `GCPCLASS_POSTBOUNDLTR = &H20
%EQUATE `GCPCLASS_POSTBOUNDRTL = &H10
%EQUATE `GCPGLYPH_LINKBEFORE = &H8000
%EQUATE `GCPGLYPH_LINKAFTER = &H4000
' return values for DC_BINADJUST
%EQUATE `DCBA_FACEUPNONE = &H0
%EQUATE `DCBA_FACEUPCENTER = &H1
%EQUATE `DCBA_FACEUPLEFT = &H2
%EQUATE `DCBA_FACEUPRIGHT = &H3
%EQUATE `DCBA_FACEDOWNNONE = &H100
%EQUATE `DCBA_FACEDOWNCENTER = &H101
%EQUATE `DCBA_FACEDOWNLEFT = &H102
%EQUATE `DCBA_FACEDOWNRIGHT = &H103
%EQUATE `ICM_OFF = 1
%EQUATE `ICM_ON = 2
%EQUATE `ICM_QUERY = 3
%EQUATE `ICM_DONE_OUTSIDEDC = 4
%EQUATE `ASFW_ANY = &HFFFFFFFF ' BITS???(-1)
%EQUATE `LSFW_LOCK = 1
%EQUATE `LSFW_UNLOCK = 2
#IF NOT %DEF(%NOSHOWWINDOW) '--------------------------------------------------
' Old ShowWindow() Commands
%EQUATE `HIDE_WINDOW = 0
%EQUATE `SHOW_OPENWINDOW = 1
%EQUATE `SHOW_ICONWINDOW = 2
%EQUATE `SHOW_FULLSCREEN = 3
%EQUATE `SHOW_OPENNOACTIVATE = 4
' Identifiers for the WM_SHOWWINDOW message
%EQUATE `SW_PARENTCLOSING = 1
%EQUATE `SW_OTHERZOOM = 2
%EQUATE `SW_PARENTOPENING = 3
%EQUATE `SW_OTHERUNZOOM = 4
#ENDIF ' #IF NOT %DEF(%NOSHOWWINDOW) ------------------------------------------
' AnimateWindow() Commands
%EQUATE `AW_HOR_POSITIVE = &H00000001
%EQUATE `AW_HOR_NEGATIVE = &H00000002
%EQUATE `AW_VER_POSITIVE = &H00000004
%EQUATE `AW_VER_NEGATIVE = &H00000008
%EQUATE `AW_CENTER = &H00000010
%EQUATE `AW_HIDE = &H00010000
%EQUATE `AW_ACTIVATE = &H00020000
%EQUATE `AW_SLIDE = &H00040000
%EQUATE `AW_BLEND = &H00080000
' WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
%EQUATE `KF_EXTENDED = &H00000100
%EQUATE `KF_DLGMODE = &H00000800
%EQUATE `KF_MENUMODE = &H00001000
%EQUATE `KF_ALTDOWN = &H00002000
%EQUATE `KF_REPEAT = &H00004000
%EQUATE `KF_UP = &H00008000
#IF NOT %DEF(%NOVIRTUALKEYCODES) '---------------------------------------------
' Virtual Keys, Standard Set
%EQUATE `VK_LBUTTON = &H01
%EQUATE `VK_RBUTTON = &H02
%EQUATE `VK_CANCEL = &H03
%EQUATE `VK_MBUTTON = &H04 ' NOT contiguous with L RBUTTON
%EQUATE `VK_XBUTTON1 = &H05 ' NOT contiguous with L & RBUTTON
%EQUATE `VK_XBUTTON2 = &H06 ' NOT contiguous with L & RBUTTON
%EQUATE `VK_BACK = &H08
%EQUATE `VK_TAB = &H09
%EQUATE `VK_LINEFEED = &H0A
%EQUATE `VK_CLEAR = &H0C
%EQUATE `VK_RETURN = &H0D
%EQUATE `VK_SHIFT = &H10
%EQUATE `VK_CONTROL = &H11
%EQUATE `VK_MENU = &H12
%EQUATE `VK_PAUSE = &H13
%EQUATE `VK_CAPITAL = &H14
%EQUATE `VK_KANA = &H15
%EQUATE `VK_HANGEUL = &H15 ' old name - should be here for compatibility
%EQUATE `VK_HANGUL = &H15
%EQUATE `VK_JUNJA = &H17
%EQUATE `VK_FINAL = &H18
%EQUATE `VK_HANJA = &H19
%EQUATE `VK_KANJI = &H19
%EQUATE `VK_ESCAPE = &H1B
%EQUATE `VK_CONVERT = &H1C
%EQUATE `VK_NONCONVERT = &H1D
%EQUATE `VK_ACCEPT = &H1E
%EQUATE `VK_MODECHANGE = &H1F
%EQUATE `VK_SPACE = &H20
%EQUATE `VK_PGUP = &H21
%EQUATE `VK_PRIOR = &H21
%EQUATE `VK_NEXT = &H22
%EQUATE `VK_PGDN = &H22
%EQUATE `VK_END = &H23
%EQUATE `VK_HOME = &H24
%EQUATE `VK_LEFT = &H25
%EQUATE `VK_UP = &H26
%EQUATE `VK_RIGHT = &H27
%EQUATE `VK_DOWN = &H28
%EQUATE `VK_SELECT = &H29
%EQUATE `VK_PRINT = &H2A
%EQUATE `VK_EXECUTE = &H2B
%EQUATE `VK_SNAPSHOT = &H2C
%EQUATE `VK_INSERT = &H2D
%EQUATE `VK_DELETE = &H2E
%EQUATE `VK_HELP = &H2F
%EQUATE `VK_0 = &H30
%EQUATE `VK_1 = &H31
%EQUATE `VK_2 = &H32
%EQUATE `VK_3 = &H33
%EQUATE `VK_4 = &H34
%EQUATE `VK_5 = &H35
%EQUATE `VK_6 = &H36
%EQUATE `VK_7 = &H37
%EQUATE `VK_8 = &H38
%EQUATE `VK_9 = &H39
%EQUATE `VK_A = &H41
%EQUATE `VK_B = &H42
%EQUATE `VK_C = &H43
%EQUATE `VK_D = &H44
%EQUATE `VK_E = &H45
%EQUATE `VK_F = &H46
%EQUATE `VK_G = &H47
%EQUATE `VK_H = &H48
%EQUATE `VK_I = &H49
%EQUATE `VK_J = &H4A
%EQUATE `VK_K = &H4B
%EQUATE `VK_L = &H4C
%EQUATE `VK_M = &H4D
%EQUATE `VK_N = &H4E
%EQUATE `VK_O = &H4F
%EQUATE `VK_P = &H50
%EQUATE `VK_Q = &H51
%EQUATE `VK_R = &H52
%EQUATE `VK_S = &H53
%EQUATE `VK_T = &H54
%EQUATE `VK_U = &H55
%EQUATE `VK_V = &H56
%EQUATE `VK_W = &H57
%EQUATE `VK_X = &H58
%EQUATE `VK_Y = &H59
%EQUATE `VK_Z = &H5A
%EQUATE `VK_LWIN = &H5B
%EQUATE `VK_RWIN = &H5C
%EQUATE `VK_APPS = &H5D
%EQUATE `VK_SLEEP = &H5F
%EQUATE `VK_NUMPAD0 = &H60
%EQUATE `VK_NUMPAD1 = &H61
%EQUATE `VK_NUMPAD2 = &H62
%EQUATE `VK_NUMPAD3 = &H63
%EQUATE `VK_NUMPAD4 = &H64
%EQUATE `VK_NUMPAD5 = &H65
%EQUATE `VK_NUMPAD6 = &H66
%EQUATE `VK_NUMPAD7 = &H67
%EQUATE `VK_NUMPAD8 = &H68
%EQUATE `VK_NUMPAD9 = &H69
%EQUATE `VK_MULTIPLY = &H6A
%EQUATE `VK_ADD = &H6B
%EQUATE `VK_SEPARATOR = &H6C
%EQUATE `VK_SUBTRACT = &H6D
%EQUATE `VK_DECIMAL = &H6E
%EQUATE `VK_DIVIDE = &H6F
%EQUATE `VK_F1 = &H70
%EQUATE `VK_F2 = &H71
%EQUATE `VK_F3 = &H72
%EQUATE `VK_F4 = &H73
%EQUATE `VK_F5 = &H74
%EQUATE `VK_F6 = &H75
%EQUATE `VK_F7 = &H76
%EQUATE `VK_F8 = &H77
%EQUATE `VK_F9 = &H78
%EQUATE `VK_F10 = &H79
%EQUATE `VK_F11 = &H7A
%EQUATE `VK_F12 = &H7B
%EQUATE `VK_F13 = &H7C
%EQUATE `VK_F14 = &H7D
%EQUATE `VK_F15 = &H7E
%EQUATE `VK_F16 = &H7F
%EQUATE `VK_F17 = &H80
%EQUATE `VK_F18 = &H81
%EQUATE `VK_F19 = &H82
%EQUATE `VK_F20 = &H83
%EQUATE `VK_F21 = &H84
%EQUATE `VK_F22 = &H85
%EQUATE `VK_F23 = &H86
%EQUATE `VK_F24 = &H87
%EQUATE `VK_NUMLOCK = &H90
%EQUATE `VK_SCROLL = &H91
' NEC PC-9800 kbd definitions
%EQUATE `VK_OEM_NEC_EQUAL = &H92 ' "=" key on numpad
' Fujitsu/OASYS kbd definitions
%EQUATE `VK_OEM_FJ_JISHO = &H92 ' "Dictionary" key
%EQUATE `VK_OEM_FJ_MASSHOU = &H93 ' "Unregister word" key
%EQUATE `VK_OEM_FJ_TOUROKU = &H94 ' "Register word" key
%EQUATE `VK_OEM_FJ_LOYA = &H95 ' "Left OYAYUBI" key
%EQUATE `VK_OEM_FJ_ROYA = &H96 ' "Right OYAYUBI" key
' VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
' Used only as parameters to GetAsyncKeyState() and GetKeyState().
' No other API or message will distinguish left and right keys in this way.
%EQUATE `VK_LSHIFT = &HA0
%EQUATE `VK_RSHIFT = &HA1
%EQUATE `VK_LCONTROL = &HA2
%EQUATE `VK_RCONTROL = &HA3
%EQUATE `VK_LMENU = &HA4
%EQUATE `VK_RMENU = &HA5
%EQUATE `VK_BROWSER_BACK = &HA6
%EQUATE `VK_BROWSER_FORWARD = &HA7
%EQUATE `VK_BROWSER_REFRESH = &HA8
%EQUATE `VK_BROWSER_STOP = &HA9
%EQUATE `VK_BROWSER_SEARCH = &HAA
%EQUATE `VK_BROWSER_FAVORITES = &HAB
%EQUATE `VK_BROWSER_HOME = &HAC
%EQUATE `VK_VOLUME_MUTE = &HAD
%EQUATE `VK_VOLUME_DOWN = &HAE
%EQUATE `VK_VOLUME_UP = &HAF
%EQUATE `VK_MEDIA_NEXT_TRACK = &HB0
%EQUATE `VK_MEDIA_PREV_TRACK = &HB1
%EQUATE `VK_MEDIA_STOP = &HB2
%EQUATE `VK_MEDIA_PLAY_PAUSE = &HB3
%EQUATE `VK_LAUNCH_MAIL = &HB4
%EQUATE `VK_LAUNCH_MEDIA_SELECT = &HB5
%EQUATE `VK_LAUNCH_APP1 = &HB6
%EQUATE `VK_LAUNCH_APP2 = &HB7
%EQUATE `VK_OEM_1 = &HBA ' ";:" for US
%EQUATE `VK_OEM_PLUS = &HBB ' "+" any country
%EQUATE `VK_OEM_COMMA = &HBC ' "," any country
%EQUATE `VK_OEM_MINUS = &HBD ' "-" any country
%EQUATE `VK_OEM_PERIOD = &HBE ' "." any country
%EQUATE `VK_OEM_2 = &HBF ' "/?" for US
%EQUATE `VK_OEM_3 = &HC0 ' "`~" for US
%EQUATE `VK_OEM_4 = &HDB ' "[{" for US
%EQUATE `VK_OEM_5 = &HDC ' "\|" for US
%EQUATE `VK_OEM_6 = &HDD ' "]}" for US
%EQUATE `VK_OEM_7 = &HDE ' """" for US
%EQUATE `VK_OEM_8 = &HDF
%EQUATE `VK_OEM_AX = &HE1 ' "AX" key on Japanese AX kbd
%EQUATE `VK_OEM_102 = &HE2 ' "<>" or "\|" on RT 102-key kbd.
%EQUATE `VK_ICO_HELP = &HE3 ' Help key on ICO
%EQUATE `VK_ICO_00 = &HE4 ' 00 key on ICO
%EQUATE `VK_PROCESSKEY = &HE5
%EQUATE `VK_ICO_CLEAR = &HE6
%EQUATE `VK_PACKET = &HE7
' Nokia/Ericsson definitions
%EQUATE `VK_OEM_RESET = &HE9
%EQUATE `VK_OEM_JUMP = &HEA
%EQUATE `VK_OEM_PA1 = &HEB
%EQUATE `VK_OEM_PA2 = &HEC
%EQUATE `VK_OEM_PA3 = &HED
%EQUATE `VK_OEM_WSCTRL = &HEE
%EQUATE `VK_OEM_CUSEL = &HEF
%EQUATE `VK_OEM_ATTN = &HF0
%EQUATE `VK_OEM_FINISH = &HF1
%EQUATE `VK_OEM_COPY = &HF2
%EQUATE `VK_OEM_AUTO = &HF3
%EQUATE `VK_OEM_ENLW = &HF4
%EQUATE `VK_OEM_BACKTAB = &HF5
%EQUATE `VK_ATTN = &HF6
%EQUATE `VK_CRSEL = &HF7
%EQUATE `VK_EXSEL = &HF8
%EQUATE `VK_EREOF = &HF9
%EQUATE `VK_PLAY = &HFA
%EQUATE `VK_ZOOM = &HFB
%EQUATE `VK_NONAME = &HFC
%EQUATE `VK_PA1 = &HFD
%EQUATE `VK_OEM_CLEAR = &HFE
%EQUATE `VK_NONAME = &HFC
%EQUATE `VK_PA1 = &HFD
%EQUATE `VK_OEM_CLEAR = &HFE
#ENDIF '#IF NOT %DEF(%NOVIRTUALKEYCODES) '-------------------------------------
' SetWindowsHook() codes
%EQUATE `WH_MIN = -1
%EQUATE `WH_MSGFILTER = -1
%EQUATE `WH_JOURNALRECORD = 0
%EQUATE `WH_JOURNALPLAYBACK = 1
%EQUATE `WH_KEYBOARD = 2
%EQUATE `WH_GETMESSAGE = 3
%EQUATE `WH_CALLWNDPROC = 4
%EQUATE `WH_CBT = 5
%EQUATE `WH_SYSMSGFILTER = 6
%EQUATE `WH_MOUSE = 7
%EQUATE `WH_HARDWARE = 8
%EQUATE `WH_DEBUG = 9
%EQUATE `WH_SHELL = 10
%EQUATE `WH_FOREGROUNDIDLE = 11
%EQUATE `WH_CALLWNDPROCRET = 12
%EQUATE `WH_KEYBOARD_LL = 13
%EQUATE `WH_MOUSE_LL = 14
%EQUATE `WH_MAX = 14 ' depending on Windows version
%EQUATE `WH_MINHOOK = %WH_MIN
%EQUATE `WH_MAXHOOK = %WH_MAX
' codes passed in WPARAM for WM_WTSSESSION_CHANGE
%EQUATE `WTS_CONSOLE_CONNECT = &H1
%EQUATE `WTS_CONSOLE_DISCONNECT = &H2
%EQUATE `WTS_REMOTE_CONNECT = &H3
%EQUATE `WTS_REMOTE_DISCONNECT = &H4
%EQUATE `WTS_SESSION_LOGON = &H5
%EQUATE `WTS_SESSION_LOGOFF = &H6
%EQUATE `WTS_SESSION_LOCK = &H7
%EQUATE `WTS_SESSION_UNLOCK = &H8
%EQUATE `WTS_SESSION_REMOTE_CONTROL = &H9
' Hook Codes
%EQUATE `HC_ACTION = 0
%EQUATE `HC_GETNEXT = 1
%EQUATE `HC_SKIP = 2
%EQUATE `HC_NOREMOVE = 3
%EQUATE `HC_NOREM = %HC_NOREMOVE
%EQUATE `HC_SYSMODALON = 4
%EQUATE `HC_SYSMODALOFF = 5
' CBT Hook Codes
%EQUATE `HCBT_MOVESIZE = 0
%EQUATE `HCBT_MINMAX = 1
%EQUATE `HCBT_QS = 2
%EQUATE `HCBT_CREATEWND = 3
%EQUATE `HCBT_DESTROYWND = 4
%EQUATE `HCBT_ACTIVATE = 5
%EQUATE `HCBT_CLICKSKIPPED = 6
%EQUATE `HCBT_KEYSKIPPED = 7
%EQUATE `HCBT_SYSCOMMAND = 8
%EQUATE `HCBT_SETFOCUS = 9
%EQUATE `HSHELL_WINDOWCREATED = 1
%EQUATE `HSHELL_WINDOWDESTROYED = 2
%EQUATE `HSHELL_ACTIVATESHELLWINDOW = 3
%EQUATE `HSHELL_WINDOWACTIVATED = 4
%EQUATE `HSHELL_GETMINRECT = 5
%EQUATE `HSHELL_REDRAW = 6
%EQUATE `HSHELL_TASKMAN = 7
%EQUATE `HSHELL_LANGUAGE = 8
%EQUATE `HSHELL_ACCESSIBILITYSTATE = 11
%EQUATE `HSHELL_APPCOMMAND = 12
%EQUATE `HSHELL_WINDOWREPLACED = 13
%EQUATE `HSHELL_WINDOWREPLACING = 14
%EQUATE `HSHELL_HIGHBIT = &H8000
%EQUATE `HSHELL_FLASH = (%HSHELL_REDRAW OR %HSHELL_HIGHBIT)
%EQUATE `HSHELL_RUDEAPPACTIVATED = (%HSHELL_WINDOWACTIVATED OR %HSHELL_HIGHBIT)
' wparam for HSHELL_ACCESSIBILITYSTATE
%EQUATE `ACCESS_STICKYKEYS = &H0001
%EQUATE `ACCESS_FILTERKEYS = &H0002
%EQUATE `ACCESS_MOUSEKEYS = &H0003
' cmd for HSHELL_APPCOMMAND and WM_APPCOMMAND
%EQUATE `APPCOMMAND_BROWSER_BACKWARD = 1
%EQUATE `APPCOMMAND_BROWSER_FORWARD = 2
%EQUATE `APPCOMMAND_BROWSER_REFRESH = 3
%EQUATE `APPCOMMAND_BROWSER_STOP = 4
%EQUATE `APPCOMMAND_BROWSER_SEARCH = 5
%EQUATE `APPCOMMAND_BROWSER_FAVORITES = 6
%EQUATE `APPCOMMAND_BROWSER_HOME = 7
%EQUATE `APPCOMMAND_VOLUME_MUTE = 8
%EQUATE `APPCOMMAND_VOLUME_DOWN = 9
%EQUATE `APPCOMMAND_VOLUME_UP = 10
%EQUATE `APPCOMMAND_MEDIA_NEXTTRACK = 11
%EQUATE `APPCOMMAND_MEDIA_PREVIOUSTRACK = 12
%EQUATE `APPCOMMAND_MEDIA_STOP = 13
%EQUATE `APPCOMMAND_MEDIA_PLAY_PAUSE = 14
%EQUATE `APPCOMMAND_LAUNCH_MAIL = 15
%EQUATE `APPCOMMAND_LAUNCH_MEDIA_SELECT = 16
%EQUATE `APPCOMMAND_LAUNCH_APP1 = 17
%EQUATE `APPCOMMAND_LAUNCH_APP2 = 18
%EQUATE `APPCOMMAND_BASS_DOWN = 19
%EQUATE `APPCOMMAND_BASS_BOOST = 20
%EQUATE `APPCOMMAND_BASS_UP = 21
%EQUATE `APPCOMMAND_TREBLE_DOWN = 22
%EQUATE `APPCOMMAND_TREBLE_UP = 23
%EQUATE `APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24
%EQUATE `APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25
%EQUATE `APPCOMMAND_MICROPHONE_VOLUME_UP = 26
%EQUATE `APPCOMMAND_HELP = 27
%EQUATE `APPCOMMAND_FIND = 28
%EQUATE `APPCOMMAND_NEW = 29
%EQUATE `APPCOMMAND_OPEN = 30
%EQUATE `APPCOMMAND_CLOSE = 31
%EQUATE `APPCOMMAND_SAVE = 32
%EQUATE `APPCOMMAND_PRINT = 33
%EQUATE `APPCOMMAND_UNDO = 34
%EQUATE `APPCOMMAND_REDO = 35
%EQUATE `APPCOMMAND_COPY = 36
%EQUATE `APPCOMMAND_CUT = 37
%EQUATE `APPCOMMAND_PASTE = 38
%EQUATE `APPCOMMAND_REPLY_TO_MAIL = 39
%EQUATE `APPCOMMAND_FORWARD_MAIL = 40
%EQUATE `APPCOMMAND_SEND_MAIL = 41
%EQUATE `APPCOMMAND_SPELL_CHECK = 42
%EQUATE `APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43
%EQUATE `APPCOMMAND_MIC_ON_OFF_TOGGLE = 44
%EQUATE `APPCOMMAND_CORRECTION_LIST = 45
%EQUATE `APPCOMMAND_MEDIA_PLAY = 46
%EQUATE `APPCOMMAND_MEDIA_PAUSE = 47
%EQUATE `APPCOMMAND_MEDIA_RECORD = 48
%EQUATE `APPCOMMAND_MEDIA_FAST_FORWARD = 49
%EQUATE `APPCOMMAND_MEDIA_REWIND = 50
%EQUATE `APPCOMMAND_MEDIA_CHANNEL_UP = 51
%EQUATE `APPCOMMAND_MEDIA_CHANNEL_DOWN = 52
%EQUATE `APPCOMMAND_DELETE = 53
%EQUATE `APPCOMMAND_DWM_FLIP3D = 54
%EQUATE `FAPPCOMMAND_MOUSE = &H08000
%EQUATE `FAPPCOMMAND_KEY = 0
%EQUATE `FAPPCOMMAND_OEM = &H01000
%EQUATE `FAPPCOMMAND_MASK = &H0F000
' Low level hook flags
%EQUATE `LLKHF_EXTENDED = %KF_EXTENDED \ 256
%EQUATE `LLKHF_INJECTED = &H00000010
%EQUATE `LLKHF_ALTDOWN = %KF_ALTDOWN \ 256
%EQUATE `LLKHF_UP = %KF_UP \ 256
%EQUATE `LLMHF_INJECTED = &H00000001
' Keyboard Layout API
%EQUATE `HKL_PREV = 0
%EQUATE `HKL_NEXT = 1
%EQUATE `KLF_ACTIVATE = &H00000001
%EQUATE `KLF_SUBSTITUTE_OK = &H00000002
%EQUATE `KLF_UNLOADPREVIOUS = &H00000004
%EQUATE `KLF_REORDER = &H00000008
%EQUATE `KLF_REPLACELANG = &H00000010
%EQUATE `KLF_NOTELLSHELL = &H00000080
%EQUATE `KLF_SETFORPROCESS = &H00000100
%EQUATE `KLF_SHIFTLOCK = &H00010000
%EQUATE `KLF_RESET = &H40000000
' Size of KeyboardLayoutName (number of characters), including nul terminator
%EQUATE `KL_NAMELENGTH = 9
' Values for resolution parameter of GetMouseMovePointsEx
%EQUATE `GMMP_USE_DISPLAY_POINTS = 1
%EQUATE `GMMP_USE_HIGH_RESOLUTION_POINTS = 2
#IF NOT %DEF(%NODESKTOP) '----------------------------
' Desktop-specific access flags
%EQUATE `DESKTOP_READOBJECTS = &H0001
%EQUATE `DESKTOP_CREATEWINDOW = &H0002
%EQUATE `DESKTOP_CREATEMENU = &H0004
%EQUATE `DESKTOP_HOOKCONTROL = &H0008
%EQUATE `DESKTOP_JOURNALRECORD = &H0010
%EQUATE `DESKTOP_JOURNALPLAYBACK = &H0020
%EQUATE `DESKTOP_ENUMERATE = &H0040
%EQUATE `DESKTOP_WRITEOBJECTS = &H0080
%EQUATE `DESKTOP_SWITCHDESKTOP = &H0100
' Desktop-specific control flags
%EQUATE `DF_ALLOWOTHERACCOUNTHOOK = &H0001
#ENDIF ' #IF NOT %DEF(%NODESKTOP) '-------------------
#IF NOT %DEF(%NOWINDOWSTATION) '----------------------
' Windowstation-specific access flags
%EQUATE `WINSTA_ENUMDESKTOPS = &H0001
%EQUATE `WINSTA_READATTRIBUTES = &H0002
%EQUATE `WINSTA_ACCESSCLIPBOARD = &H0004
%EQUATE `WINSTA_CREATEDESKTOP = &H0008
%EQUATE `WINSTA_WRITEATTRIBUTES = &H0010
%EQUATE `WINSTA_ACCESSGLOBALATOMS = &H0020
%EQUATE `WINSTA_EXITWINDOWS = &H0040
%EQUATE `WINSTA_ENUMERATE = &H0100
%EQUATE `WINSTA_READSCREEN = &H0200
' Windowstation-specific attribute flags
%EQUATE `WSF_VISIBLE = &H0001
#ENDIF ' #IF NOT %DEF(%NOWINDOWSTATION) '-------------
#IF NOT %DEF(%NOWINOFFSETS) '-------------------------
' Window field offsets for GetWindowLong() and GetWindowWord()
%EQUATE `GWL_WNDPROC = -4
%EQUATE `GWL_HINSTANCE = -6
%EQUATE `GWL_HWNDPARENT = -8
%EQUATE `GWL_STYLE = -16
%EQUATE `GWL_EXSTYLE = -20
%EQUATE `GWL_USERDATA = -21
%EQUATE `GWL_ID = -12
%EQUATE `GWLP_WNDPROC = -4
%EQUATE `GWLP_HINSTANCE = -6
%EQUATE `GWLP_HWNDPARENT = -8
%EQUATE `GWLP_USERDATA = -21
%EQUATE `GWLP_ID = -12
' Class field offsets for GetClassLong() and GetClassWord()
%EQUATE `GCL_MENUNAME = -8
%EQUATE `GCL_HBRBACKGROUND = -10
%EQUATE `GCL_HCURSOR = -12
%EQUATE `GCL_HICON = -14
%EQUATE `GCL_HMODULE = -16
%EQUATE `GCL_CBWNDEXTRA = -18
%EQUATE `GCL_CBCLSEXTRA = -20
%EQUATE `GCL_WNDPROC = -24
%EQUATE `GCL_STYLE = -26
%EQUATE `GCW_ATOM = -32
%EQUATE `GCL_HICONSM = -34
%EQUATE `GCLP_MENUNAME = -8
%EQUATE `GCLP_HBRBACKGROUND = -10
%EQUATE `GCLP_HCURSOR = -12
%EQUATE `GCLP_HICON = -14
%EQUATE `GCLP_HMODULE = -16
%EQUATE `GCLP_WNDPROC = -24
%EQUATE `GCLP_HICONSM = -34
#ENDIF ' #IF NOT %DEF(%NOWINOFFSETS) '----------------
' WH_MSGFILTER Filter Proc Codes
%EQUATE `MSGF_DIALOGBOX = 0
%EQUATE `MSGF_MESSAGEBOX = 1
%EQUATE `MSGF_MENU = 2
%EQUATE `MSGF_MOVE = 3
%EQUATE `MSGF_SIZE = 4
%EQUATE `MSGF_SCROLLBAR = 5
%EQUATE `MSGF_NEXTWINDOW = 6
%EQUATE `MSGF_MAX = 8
%EQUATE `MSGF_USER = 4096
'
' WM_ACTIVATE state values
%EQUATE `WA_INACTIVE = 0
%EQUATE `WA_ACTIVE = 1
%EQUATE `WA_CLICKACTIVE = 2
%EQUATE `WM_ENABLE = &HA
%EQUATE `WM_SETREDRAW = &HB
%EQUATE `WM_SETTEXT = &HC
%EQUATE `WM_GETTEXT = &HD
%EQUATE `WM_GETTEXTLENGTH = &HE
%EQUATE `WM_QUERYENDSESSION = &H11
%EQUATE `WM_QUERYOPEN = &H13
%EQUATE `WM_ERASEBKGND = &H14
%EQUATE `WM_SYSCOLORCHANGE = &H15
%EQUATE `WM_ENDSESSION = &H16
%EQUATE `WM_SHOWWINDOW = &H18
%EQUATE `WM_WININICHANGE = &H1A
%EQUATE `WM_SETTINGCHANGE = %WM_WININICHANGE
%EQUATE `WM_DEVMODECHANGE = &H1B
%EQUATE `WM_FONTCHANGE = &H1D
%EQUATE `WM_TIMECHANGE = &H1E
%EQUATE `WM_SETCURSOR = &H20
%EQUATE `WM_CHILDACTIVATE = &H22
%EQUATE `WM_QUEUESYNC = &H23
%EQUATE `WM_GETMINMAXINFO = &H24
%EQUATE `WM_PAINTICON = &H26
%EQUATE `WM_ICONERASEBKGND = &H27
%EQUATE `WM_NEXTDLGCTL = &H28
%EQUATE `WM_SPOOLERSTATUS = &H2A
%EQUATE `WM_MEASUREITEM = &H2C
%EQUATE `WM_DELETEITEM = &H2D
%EQUATE `WM_VKEYTOITEM = &H2E
%EQUATE `WM_CHARTOITEM = &H2F
%EQUATE `WM_SETFONT = &H30
%EQUATE `WM_GETFONT = &H31
%EQUATE `WM_SETHOTKEY = &H32
%EQUATE `WM_GETHOTKEY = &H33
%EQUATE `WM_QUERYDRAGICON = &H37
%EQUATE `WM_COMPAREITEM = &H39
%EQUATE `WM_GETOBJECT = &H3D
%EQUATE `WM_COMPACTING = &H41
%EQUATE `WM_OTHERWINDOWCREATED = &H42 ' no longer supported
%EQUATE `WM_OTHERWINDOWDESTROYED = &H43 ' no longer supported
%EQUATE `WM_COMMNOTIFY = &H44 ' no longer supported
' notifications passed in low word of lParam on WM_COMMNOTIFY messages
%EQUATE `CN_RECEIVE = &H1
%EQUATE `CN_TRANSMIT = &H2
%EQUATE `CN_EVENT = &H4
%EQUATE `WM_WINDOWPOSCHANGING = &H46
%EQUATE `WM_WINDOWPOSCHANGED = &H47
%EQUATE `WM_POWER = &H48
' wParam for WM_POWER window message and DRV_POWER driver notification
%EQUATE `PWR_OK = 1
%EQUATE `PWR_FAIL = -1
%EQUATE `PWR_SUSPENDREQUEST = 1
%EQUATE `PWR_SUSPENDRESUME = 2
%EQUATE `PWR_CRITICALRESUME = 3
%EQUATE `WM_COPYDATA = &H4A
%EQUATE `WM_CANCELJOURNAL = &H4B
%EQUATE `WM_INPUTLANGUAGECHANGEREQUEST = &H50
%EQUATE `WM_INPUTLANGCHANGEREQUEST = &H50
%EQUATE `WM_INPUTLANGUAGECHANGE = &H51
%EQUATE `WM_INPUTLANGCHANGE = &H51
%EQUATE `WM_TCARD = &H52
%EQUATE `WM_USERCHANGED = &H54
%EQUATE `WM_NOTIFYFORMAT = &H55
%EQUATE `WM_CONTEXTMENU = &H7B
%EQUATE `WM_STYLECHANGING = &H7C
%EQUATE `WM_STYLECHANGED = &H7D
%EQUATE `WM_DISPLAYCHANGE = &H7E
%EQUATE `WM_GETICON = &H7F
%EQUATE `WM_SETICON = &H80
%EQUATE `WM_GETDLGCODE = &H87
%EQUATE `WM_SYNCPAINT = &H88
%EQUATE `WM_INPUT_DEVICE_CHANGE = &H00FE
%EQUATE `WM_INPUT = &HFF
%EQUATE `WM_KEYFIRST = &H100
%EQUATE `WM_DEADCHAR = &H103
%EQUATE `WM_SYSCHAR = &H106
%EQUATE `WM_SYSDEADCHAR = &H107
%EQUATE `WM_IME_STARTCOMPOSITION = &H010D
%EQUATE `WM_IME_ENDCOMPOSITION = &H010E
%EQUATE `WM_IME_COMPOSITION = &H010F
%EQUATE `WM_IME_KEYLAST = &H010F
%EQUATE `WM_UNICHAR = &H0109
%EQUATE `WM_KEYLAST = &H0109
%EQUATE `UNICODE_NOCHAR = &H0FFFF
%EQUATE `WM_SYSCOMMAND = &H112
%EQUATE `WM_INITMENU = &H116
%EQUATE `WM_INITMENUPOPUP = &H117
%EQUATE `WM_MENUSELECT = &H11F
%EQUATE `WM_MENUCHAR = &H120
%EQUATE `WM_ENTERIDLE = &H121
%EQUATE `WM_MENURBUTTONUP = &H0122
%EQUATE `WM_MENUDRAG = &H0123
%EQUATE `WM_MENUGETOBJECT = &H0124
%EQUATE `WM_UNINITMENUPOPUP = &H0125
%EQUATE `WM_MENUCOMMAND = &H0126
%EQUATE `WM_CHANGEUISTATE = &H0127
%EQUATE `WM_UPDATEUISTATE = &H0128
%EQUATE `WM_QUERYUISTATE = &H0129
%EQUATE `WM_CTLCOLORMSGBOX = &H132
%EQUATE `WM_CTLCOLOREDIT = &H133
%EQUATE `WM_CTLCOLORLISTBOX = &H134
%EQUATE `WM_CTLCOLORBTN = &H135
%EQUATE `WM_CTLCOLORDLG = &H136
%EQUATE `WM_CTLCOLORSCROLLBAR = &H137
%EQUATE `WM_CTLCOLORSTATIC = &H138
%EQUATE `WM_XBUTTONDOWN = &H20B
%EQUATE `WM_XBUTTONUP = &H20C
%EQUATE `WM_XBUTTONDBLCLK = &H20D
%EQUATE `WM_PARENTNOTIFY = &H210
%EQUATE `WM_ENTERMENULOOP = &H211
%EQUATE `WM_EXITMENULOOP = &H212
%EQUATE `WM_SIZING = &H214
%EQUATE `WM_MOVING = &H216
%EQUATE `WM_POWERBROADCAST = &H218
%EQUATE `WM_DEVICECHANGE = &H219
%EQUATE `WM_MDICREATE = &H220
%EQUATE `WM_MDIDESTROY = &H221
%EQUATE `WM_MDIACTIVATE = &H222
%EQUATE `WM_MDIRESTORE = &H223
%EQUATE `WM_MDINEXT = &H224
%EQUATE `WM_MDIMAXIMIZE = &H225
%EQUATE `WM_MDITILE = &H226
%EQUATE `WM_MDICASCADE = &H227
%EQUATE `WM_MDIICONARRANGE = &H228
%EQUATE `WM_MDIGETACTIVE = &H229
%EQUATE `WM_MDISETMENU = &H230
%EQUATE `WM_DROPFILES = &H233
%EQUATE `WM_MDIREFRESHMENU = &H234
%EQUATE `WM_WTSSESSION_CHANGE = &H02B1
%EQUATE `WM_TABLET_FIRST = &H02c0
%EQUATE `WM_TABLET_LAST = &H02df
%EQUATE `WM_CUT = &H300
%EQUATE `WM_COPY = &H301
%EQUATE `WM_PASTE = &H302
%EQUATE `WM_CLEAR = &H303
%EQUATE `WM_UNDO = &H304
%EQUATE `WM_RENDERFORMAT = &H305
%EQUATE `WM_RENDERALLFORMATS = &H306
%EQUATE `WM_DESTROYCLIPBOARD = &H307
%EQUATE `WM_DRAWCLIPBOARD = &H308
%EQUATE `WM_PAINTCLIPBOARD = &H309
%EQUATE `WM_VSCROLLCLIPBOARD = &H30A
%EQUATE `WM_SIZECLIPBOARD = &H30B
%EQUATE `WM_ASKCBFORMATNAME = &H30C
%EQUATE `WM_CHANGECBCHAIN = &H30D
%EQUATE `WM_HSCROLLCLIPBOARD = &H30E
%EQUATE `WM_QUERYNEWPALETTE = &H30F
%EQUATE `WM_PALETTEISCHANGING = &H310
%EQUATE `WM_PALETTECHANGED = &H311
%EQUATE `WM_HOTKEY = &H312
%EQUATE `WM_PRINT = &H317
%EQUATE `WM_PRINTCLIENT = &H318
%EQUATE `WM_APPCOMMAND = &H319
%EQUATE `WM_THEMECHANGED = &H31A
%EQUATE `WM_HANDHELDFIRST = &H0358
%EQUATE `WM_HANDHELDLAST = &H035F
%EQUATE `WM_AFXFIRST = &H0360
%EQUATE `WM_AFXLAST = &H037F
%EQUATE `WM_PENWINFIRST = &H380
%EQUATE `WM_PENWINLAST = &H38F
%EQUATE `WM_APP = &H08000
%EQUATE `WMSZ_LEFT = 1
%EQUATE `WMSZ_RIGHT = 2
%EQUATE `WMSZ_TOP = 3
%EQUATE `WMSZ_TOPLEFT = 4
%EQUATE `WMSZ_TOPRIGHT = 5
%EQUATE `WMSZ_BOTTOM = 6
%EQUATE `WMSZ_BOTTOMLEFT = 7
%EQUATE `WMSZ_BOTTOMRIGHT = 8
' Broadcast Special Message Recipient list
%EQUATE `BSM_ALLCOMPONENTS = &H00000000
%EQUATE `BSM_VXDS = &H00000001
%EQUATE `BSM_NETDRIVER = &H00000002
%EQUATE `BSM_INSTALLABLEDRIVERS = &H00000004
%EQUATE `BSM_APPLICATIONS = &H00000008
%EQUATE `BSM_ALLDESKTOPS = &H00000010
' Broadcast Special Message Flags
%EQUATE `BSF_QUERY = &H00000001
%EQUATE `BSF_IGNORECURRENTTASK = &H00000002
%EQUATE `BSF_FLUSHDISK = &H00000004
%EQUATE `BSF_NOHANG = &H00000008
%EQUATE `BSF_POSTMESSAGE = &H00000010
%EQUATE `BSF_FORCEIFHUNG = &H00000020
%EQUATE `BSF_NOTIMEOUTIFNOTHUNG = &H00000040
%EQUATE `BSF_ALLOWSFW = &H00000080
%EQUATE `BSF_SENDNOTIFYMESSAGE = &H00000100
%EQUATE `BSF_RETURNHDESK = &H00000200
%EQUATE `BSF_LUID = &H00000400
%EQUATE `BROADCAST_QUERY_DENY = &H424D5144 ' Return this value to deny a query.
%EQUATE `DEVICE_NOTIFY_WINDOW_HANDLE = &H00000000
%EQUATE `DEVICE_NOTIFY_SERVICE_HANDLE = &H00000001
%EQUATE `DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = &H00000004
' WM_SETICON / WM_GETICON Type Codes
%EQUATE `ICON_SMALL = 0
%EQUATE `ICON_BIG = 1
%EQUATE `ICON_SMALL2 = 2
' WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
%EQUATE `HTERROR = -2
%EQUATE `HTTRANSPARENT = -1
%EQUATE `HTNOWHERE = 0
%EQUATE `HTCLIENT = 1
%EQUATE `HTCAPTION = 2
%EQUATE `HTSYSMENU = 3
%EQUATE `HTGROWBOX = 4
%EQUATE `HTSIZE = %HTGROWBOX
%EQUATE `HTMENU = 5
%EQUATE `HTHSCROLL = 6
%EQUATE `HTVSCROLL = 7
%EQUATE `HTMINBUTTON = 8
%EQUATE `HTMAXBUTTON = 9
%EQUATE `HTLEFT = 10
%EQUATE `HTRIGHT = 11
%EQUATE `HTTOP = 12
%EQUATE `HTTOPLEFT = 13
%EQUATE `HTTOPRIGHT = 14
%EQUATE `HTBOTTOM = 15
%EQUATE `HTBOTTOMLEFT = 16
%EQUATE `HTBOTTOMRIGHT = 17
%EQUATE `HTBORDER = 18
%EQUATE `HTREDUCE = %HTMINBUTTON
%EQUATE `HTZOOM = %HTMAXBUTTON
%EQUATE `HTSIZEFIRST = %HTLEFT
%EQUATE `HTSIZELAST = %HTBOTTOMRIGHT
%EQUATE `HTOBJECT = 19
%EQUATE `HTCLOSE = 20
%EQUATE `HTHELP = 21
' SendMessageTimeout values
%EQUATE `SMTO_NORMAL = &H0000
%EQUATE `SMTO_BLOCK = &H0001
%EQUATE `SMTO_ABORTIFHUNG = &H0002
%EQUATE `SMTO_NOTIMEOUTIFNOTHUNG = &H0008
%EQUATE `SMTO_ERRORONEXIT = &H0020
' WM_MOUSEACTIVATE Return Codes
%EQUATE `MA_ACTIVATE = 1
%EQUATE `MA_ACTIVATEANDEAT = 2
%EQUATE `MA_NOACTIVATE = 3
%EQUATE `MA_NOACTIVATEANDEAT = 4
' WM_SIZE message wParam values
%EQUATE `SIZE_RESTORED = 0
%EQUATE `SIZE_MINIMIZED = 1
%EQUATE `SIZE_MAXIMIZED = 2
%EQUATE `SIZE_MAXSHOW = 3
%EQUATE `SIZE_MAXHIDE = 4
' Obsolete constant names
%EQUATE `SIZENORMAL = %SIZE_RESTORED
%EQUATE `SIZEICONIC = %SIZE_MINIMIZED
%EQUATE `SIZEFULLSCREEN = %SIZE_MAXIMIZED
%EQUATE `SIZEZOOMSHOW = %SIZE_MAXSHOW
%EQUATE `SIZEZOOMHIDE = %SIZE_MAXHIDE
' WM_NCCALCSIZE return flags
%EQUATE `WVR_ALIGNTOP = &H10
%EQUATE `WVR_ALIGNLEFT = &H20
%EQUATE `WVR_ALIGNBOTTOM = &H40
%EQUATE `WVR_ALIGNRIGHT = &H80
%EQUATE `WVR_HREDRAW = &H100
%EQUATE `WVR_VREDRAW = &H200
%EQUATE `WVR_REDRAW = %WVR_HREDRAW OR %WVR_VREDRAW
%EQUATE `WVR_VALIDRECTS = &H400
' Key State Masks for Mouse Messages
%EQUATE `MK_LBUTTON = &H0001
%EQUATE `MK_RBUTTON = &H0002
%EQUATE `MK_SHIFT = &H0004
%EQUATE `MK_CONTROL = &H0008
%EQUATE `MK_MBUTTON = &H0010
%EQUATE `MK_XBUTTON1 = &H0020
%EQUATE `MK_XBUTTON2 = &H0040
%EQUATE `TME_HOVER = &H00000001
%EQUATE `TME_LEAVE = &H00000002
%EQUATE `TME_NONCLIENT = &H00000010
%EQUATE `TME_QUERY = &H40000000
%EQUATE `TME_CANCEL = &H80000000
%EQUATE `HOVER_DEFAULT = &HFFFFFFFF
%EQUATE `CS_VREDRAW = &H00000001
%EQUATE `CS_HREDRAW = &H00000002
%EQUATE `CS_KEYCVTWINDOW = &H00000004
%EQUATE `CS_DBLCLKS = &H00000008
%EQUATE `CS_OWNDC = &H00000020
%EQUATE `CS_CLASSDC = &H00000040
%EQUATE `CS_PARENTDC = &H00000080
%EQUATE `CS_NOKEYCVT = &H00000100
%EQUATE `CS_NOCLOSE = &H00000200
%EQUATE `CS_SAVEBITS = &H00000800
%EQUATE `CS_BYTEALIGNCLIENT = &H00001000
%EQUATE `CS_BYTEALIGNWINDOW = &H00002000
%EQUATE `CS_PUBLICCLASS = &H00004000
%EQUATE `CS_GLOBALCLASS = %CS_PUBLICCLASS
%EQUATE `CS_IME = &H00010000
%EQUATE `CS_DROPSHADOW = &H00020000
%EQUATE `CF_DIBV5 = 17
%EQUATE `CF_MAX = 18 ' varies by Windows version
%EQUATE `CF_OWNERDISPLAY = &H0080
%EQUATE `CF_DSPTEXT = &H0081
%EQUATE `CF_DSPBITMAP = &H0082
%EQUATE `CF_DSPMETAFILEPICT = &H0083
%EQUATE `CF_DSPENHMETAFILE = &H008E
%EQUATE `CF_PRIVATEFIRST = &H200
%EQUATE `CF_PRIVATELAST = &H2FF
%EQUATE `CF_GDIOBJFIRST = &H300
%EQUATE `CF_GDIOBJLAST = &H3FF
%EQUATE `FVIRTKEY = &H1 ' Assumed to be equal to %TRUE
%EQUATE `FNOINVERT = &H2
%EQUATE `FSHIFT = &H4
%EQUATE `FCONTROL = &H8
%EQUATE `FALT = &H10
%EQUATE `WPF_SETMINPOSITION = &H0001
%EQUATE `WPF_RESTORETOMAXIMIZED = &H0002
%EQUATE `WPF_ASYNCWINDOWPLACEMENT = &H0004
' Owner draw control types
%EQUATE `ODT_MENU = 1
%EQUATE `ODT_LISTBOX = 2
%EQUATE `ODT_COMBOBOX = 3
%EQUATE `ODT_BUTTON = 4
%EQUATE `ODT_STATIC = 5
' Owner draw actions
%EQUATE `ODA_DRAWENTIRE = &H1
%EQUATE `ODA_SELECT = &H2
%EQUATE `ODA_FOCUS = &H4
' Owner draw state
%EQUATE `ODS_SELECTED = &H1
%EQUATE `ODS_GRAYED = &H2
%EQUATE `ODS_DISABLED = &H4
%EQUATE `ODS_CHECKED = &H8
%EQUATE `ODS_FOCUS = &H10
%EQUATE `ODS_DEFAULT = &H0020
%EQUATE `ODS_COMBOBOXEDIT = &H1000
%EQUATE `ODS_HOTLIGHT = &H0040
%EQUATE `ODS_INACTIVE = &H0080
%EQUATE `ODS_NOACCEL = &H0100
%EQUATE `ODS_NOFOCUSRECT = &H0200
%EQUATE `MOD_ALT = &H00000001
%EQUATE `MOD_CONTROL = &H00000002
%EQUATE `MOD_SHIFT = &H00000004
%EQUATE `MOD_WIN = &H00000008
%EQUATE `MOD_NOREPEAT = &H4000
%EQUATE `MOD_LEFT = &H00008000
%EQUATE `MOD_RIGHT = &H00004000
%EQUATE `MOD_ON_KEYUP = &H00000800
%EQUATE `MOD_IGNORE_ALL_MODIFIER = &H00000400
%EQUATE `IDHOT_SNAPWINDOW = -1 ' SHIFT-PRINTSCRN
%EQUATE `IDHOT_SNAPDESKTOP = -2
%EQUATE `EWX_LOGOFF = &H0000
%EQUATE `EWX_SHUTDOWN = &H0001
%EQUATE `EWX_REBOOT = &H0002
%EQUATE `EWX_FORCE = &H0004
%EQUATE `EWX_POWEROFF = &H0008
%EQUATE `EWX_FORCEIFHUNG = &H0010
%EQUATE `EWX_QUICKRESOLVE = &H00000020
%EQUATE `EWX_RESTARTAPPS = &H00000040
%EQUATE `READAPI = 0 ' Flags for _lopen
%EQUATE `WRITEAPI = 1
%EQUATE `READ_WRITE = 2
' Special HWND value for use with PostMessage and SendMessage
%EQUATE `HWND_BROADCAST = &HFFFFFFFF
%EQUATE `CW_USEDEFAULT = &H80000000& ' long
%EQUATE `CWP_ALL = &H0000
%EQUATE `CWP_SKIPINVISIBLE = &H0001
%EQUATE `CWP_SKIPDISABLED = &H0002
%EQUATE `CWP_SKIPTRANSPARENT = &H0004
%EQUATE `HWND_TOP = 0
%EQUATE `HWND_BOTTOM = 1
%EQUATE `HWND_TOPMOST = &HFFFFFFFF
%EQUATE `HWND_NOTOPMOST = &HFFFFFFFE
%EQUATE `HWND_MESSAGE = &HFFFFFFFD
' InSendMessageEx return value
%EQUATE `ISMEX_NOSEND = &H00000000
%EQUATE `ISMEX_SEND = &H00000001
%EQUATE `ISMEX_NOTIFY = &H00000002
%EQUATE `ISMEX_CALLBACK = &H00000004
%EQUATE `ISMEX_REPLIED = &H00000008
%EQUATE `PW_CLIENTONLY = &H00000001
%EQUATE `LWA_COLORKEY = &H00000001
%EQUATE `LWA_ALPHA = &H00000002
%EQUATE `ULW_COLORKEY = &H00000001
%EQUATE `ULW_ALPHA = &H00000002
%EQUATE `ULW_OPAQUE = &H00000004
%EQUATE `ULW_EX_NORESIZE = &H00000008
%EQUATE `FLASHW_STOP = 0
%EQUATE `FLASHW_CAPTION = &H00000001
%EQUATE `FLASHW_TRAY = &H00000002
%EQUATE `FLASHW_ALL = %FLASHW_CAPTION OR %FLASHW_TRAY
%EQUATE `FLASHW_TIMER = &H00000004
%EQUATE `FLASHW_TIMERNOFG = &H0000000C
' SetWindowPos Flags
%EQUATE `SWP_NOSIZE = &H0001
%EQUATE `SWP_NOMOVE = &H0002
%EQUATE `SWP_NOZORDER = &H0004
%EQUATE `SWP_NOREDRAW = &H0008
%EQUATE `SWP_NOACTIVATE = &H0010
%EQUATE `SWP_FRAMECHANGED = &H0020 ' The frame changed: send WM_NCCALCSIZE
%EQUATE `SWP_SHOWWINDOW = &H0040
%EQUATE `SWP_HIDEWINDOW = &H0080
%EQUATE `SWP_NOCOPYBITS = &H0100
%EQUATE `SWP_NOOWNERZORDER = &H0200 ' Don't do owner Z ordering
%EQUATE `SWP_NOSENDCHANGING = &H0400 ' Don't send WM_WINDOWPOSCHANGING
%EQUATE `SWP_DRAWFRAME = %SWP_FRAMECHANGED
%EQUATE `SWP_NOREPOSITION = %SWP_NOOWNERZORDER
%EQUATE `SWP_DEFERERASE = &H2000
%EQUATE `SWP_ASYNCWINDOWPOS = &H4000
%EQUATE `DLGWINDOWEXTRA = 30 ' Window extra bytes needed for private dialog classes
%EQUATE `KEYEVENTF_EXTENDEDKEY = &H1
%EQUATE `KEYEVENTF_KEYUP = &H2
%EQUATE `KEYEVENTF_UNICODE = &H0004
%EQUATE `KEYEVENTF_SCANCODE = &H0008
%EQUATE `MOUSEEVENTF_MOVE = &H00000001 ' mouse move
%EQUATE `MOUSEEVENTF_LEFTDOWN = &H00000002 ' left button down
%EQUATE `MOUSEEVENTF_LEFTUP = &H00000004 ' left button up
%EQUATE `MOUSEEVENTF_RIGHTDOWN = &H00000008 ' right button down
%EQUATE `MOUSEEVENTF_RIGHTUP = &H00000010 ' right button up
%EQUATE `MOUSEEVENTF_MIDDLEDOWN = &H00000020 ' middle button down
%EQUATE `MOUSEEVENTF_MIDDLEUP = &H00000040 ' middle button up
%EQUATE `MOUSEEVENTF_WHEEL = &H00000800 ' wheel button rolled
%EQUATE `MOUSEEVENTF_HWHEEL = &H00001000 ' hwheel button rolled
%EQUATE `MOUSEEVENTF_MOVE_NOCOALESCE = &H2000 ' do not coalesce mouse moves
%EQUATE `MOUSEEVENTF_VIRTUALDESK = &H4000 ' map to entire virtual desktop
%EQUATE `MOUSEEVENTF_ABSOLUTE = &H00008000 ' absolute move
%EQUATE `INPUT_MOUSE = 0
%EQUATE `INPUT_KEYBOARD = 1
%EQUATE `INPUT_HARDWARE = 2
' GetQueueStatus flags
%EQUATE `QS_KEY = &H0001
%EQUATE `QS_MOUSEMOVE = &H0002
%EQUATE `QS_MOUSEBUTTON = &H0004
%EQUATE `QS_POSTMESSAGE = &H0008
%EQUATE `QS_TIMER = &H0010
%EQUATE `QS_PAINT = &H0020
%EQUATE `QS_SENDMESSAGE = &H0040
%EQUATE `QS_HOTKEY = &H0080
%EQUATE `QS_MOUSE = %QS_MOUSEMOVE OR %QS_MOUSEBUTTON
%EQUATE `QS_RAWINPUT = &H0400
%EQUATE `QS_INPUT = %QS_MOUSE OR %QS_KEY OR %QS_RAWINPUT
%EQUATE `QS_ALLPOSTMESSAGE = &H0100
%EQUATE `QS_INPUTXP = %QS_MOUSE OR %QS_KEY OR %QS_RAWINPUT ' Windows XP and later
%EQUATE `QS_ALLEVENTS = %QS_INPUT OR %QS_POSTMESSAGE OR %QS_TIMER OR %QS_PAINT OR %QS_HOTKEY
%EQUATE `QS_ALLINPUT = %QS_INPUT OR %QS_POSTMESSAGE OR %QS_TIMER OR %QS_PAINT OR %QS_HOTKEY OR %QS_SENDMESSAGE
' PeekMessage() Options
%EQUATE `PM_NOREMOVE = &H0
%EQUATE `PM_REMOVE = &H1
%EQUATE `PM_NOYIELD = &H2
%EQUATE `PM_QS_INPUT = %QS_INPUT * 256
%EQUATE `PM_QS_POSTMESSAGE = (%QS_POSTMESSAGE OR %QS_HOTKEY OR %QS_TIMER) * 256
%EQUATE `PM_QS_PAINT = %QS_PAINT * 256
%EQUATE `PM_QS_SENDMESSAGE = %QS_SENDMESSAGE * 256
' GetSystemMetrics() codes
%EQUATE `SM_CXSCREEN = 0
%EQUATE `SM_CYSCREEN = 1
%EQUATE `SM_CXVSCROLL = 2
%EQUATE `SM_CYHSCROLL = 3
%EQUATE `SM_CYCAPTION = 4
%EQUATE `SM_CXBORDER = 5
%EQUATE `SM_CYBORDER = 6
%EQUATE `SM_CXDLGFRAME = 7
%EQUATE `SM_CYDLGFRAME = 8
%EQUATE `SM_CYVTHUMB = 9
%EQUATE `SM_CXHTHUMB = 10
%EQUATE `SM_CXICON = 11
%EQUATE `SM_CYICON = 12
%EQUATE `SM_CXCURSOR = 13
%EQUATE `SM_CYCURSOR = 14
%EQUATE `SM_CYMENU = 15
%EQUATE `SM_CXFULLSCREEN = 16
%EQUATE `SM_CYFULLSCREEN = 17
%EQUATE `SM_CYKANJIWINDOW = 18
%EQUATE `SM_MOUSEPRESENT = 19
%EQUATE `SM_CYVSCROLL = 20
%EQUATE `SM_CXHSCROLL = 21
%EQUATE `SM_DEBUG = 22
%EQUATE `SM_SWAPBUTTON = 23
%EQUATE `SM_RESERVED1 = 24
%EQUATE `SM_RESERVED2 = 25
%EQUATE `SM_RESERVED3 = 26
%EQUATE `SM_RESERVED4 = 27
%EQUATE `SM_CXMIN = 28
%EQUATE `SM_CYMIN = 29
%EQUATE `SM_CXSIZE = 30
%EQUATE `SM_CYSIZE = 31
%EQUATE `SM_CXFRAME = 32
%EQUATE `SM_CYFRAME = 33
%EQUATE `SM_CXMINTRACK = 34
%EQUATE `SM_CYMINTRACK = 35
%EQUATE `SM_CXDOUBLECLK = 36
%EQUATE `SM_CYDOUBLECLK = 37
%EQUATE `SM_CXICONSPACING = 38
%EQUATE `SM_CYICONSPACING = 39
%EQUATE `SM_MENUDROPALIGNMENT = 40
%EQUATE `SM_PENWINDOWS = 41
%EQUATE `SM_DBCSENABLED = 42
%EQUATE `SM_CMOUSEBUTTONS = 43
%EQUATE `SM_CXFIXEDFRAME = %SM_CXDLGFRAME ' win40 name change
%EQUATE `SM_CYFIXEDFRAME = %SM_CYDLGFRAME ' win40 name change
%EQUATE `SM_CXSIZEFRAME = %SM_CXFRAME ' win40 name change
%EQUATE `SM_CYSIZEFRAME = %SM_CYFRAME ' win40 name change
%EQUATE `SM_SECURE = 44
%EQUATE `SM_CXEDGE = 45
%EQUATE `SM_CYEDGE = 46
%EQUATE `SM_CXMINSPACING = 47
%EQUATE `SM_CYMINSPACING = 48
%EQUATE `SM_CXSMICON = 49
%EQUATE `SM_CYSMICON = 50
%EQUATE `SM_CYSMCAPTION = 51
%EQUATE `SM_CXSMSIZE = 52
%EQUATE `SM_CYSMSIZE = 53
%EQUATE `SM_CXMENUSIZE = 54
%EQUATE `SM_CYMENUSIZE = 55
%EQUATE `SM_ARRANGE = 56
%EQUATE `SM_CXMINIMIZED = 57
%EQUATE `SM_CYMINIMIZED = 58
%EQUATE `SM_CXMAXTRACK = 59
%EQUATE `SM_CYMAXTRACK = 60
%EQUATE `SM_CXMAXIMIZED = 61
%EQUATE `SM_CYMAXIMIZED = 62
%EQUATE `SM_NETWORK = 63
%EQUATE `SM_CLEANBOOT = 67
%EQUATE `SM_CXDRAG = 68
%EQUATE `SM_CYDRAG = 69
%EQUATE `SM_SHOWSOUNDS = 70
%EQUATE `SM_CXMENUCHECK = 71 ' Use instead of GetMenuCheckMarkDimensions()
%EQUATE `SM_CYMENUCHECK = 72
%EQUATE `SM_SLOWMACHINE = 73
%EQUATE `SM_MIDEASTENABLED = 74
%EQUATE `SM_MOUSEWHEELPRESENT = 75
%EQUATE `SM_XVIRTUALSCREEN = 76
%EQUATE `SM_YVIRTUALSCREEN = 77
%EQUATE `SM_CXVIRTUALSCREEN = 78
%EQUATE `SM_CYVIRTUALSCREEN = 79
%EQUATE `SM_CMONITORS = 80
%EQUATE `SM_SAMEDISPLAYFORMAT = 81
%EQUATE `SM_IMMENABLED = 82
%EQUATE `SM_CXFOCUSBORDER = 83
%EQUATE `SM_CYFOCUSBORDER = 84
%EQUATE `SM_TABLETPC = 86
%EQUATE `SM_MEDIACENTER = 87
%EQUATE `SM_STARTER = 88
%EQUATE `SM_SERVERR2 = 89
%EQUATE `SM_MOUSEHORIZONTALWHEELPRESENT = 91
%EQUATE `SM_CXPADDEDBORDER = 92
%EQUATE `SM_DIGITIZER = 94
%EQUATE `SM_MAXIMUMTOUCHES = 95
%EQUATE `SM_CMETRICS = 97 ' depends on Windows version
%EQUATE `SM_REMOTESESSION = &H1000
%EQUATE `SM_SHUTTINGDOWN = &H2000
%EQUATE `SM_REMOTECONTROL = &H2001
%EQUATE `SM_CARETBLINKINGENABLED = &H2002
' Flags for TrackPopupMenu
%EQUATE `TPM_LEFTBUTTON = &H0000
%EQUATE `TPM_RIGHTBUTTON = &H0002
%EQUATE `TPM_LEFTALIGN = &H0000
%EQUATE `TPM_CENTERALIGN = &H0004
%EQUATE `TPM_RIGHTALIGN = &H0008
%EQUATE `TPM_TOPALIGN = &H0000
%EQUATE `TPM_VCENTERALIGN = &H0010
%EQUATE `TPM_BOTTOMALIGN = &H0020
%EQUATE `TPM_HORIZONTAL = &H0000 ' Horz alignment matters more
%EQUATE `TPM_VERTICAL = &H0040 ' Vert alignment matters more
%EQUATE `TPM_NONOTIFY = &H0080 ' Don't send any notification msgs
%EQUATE `TPM_RETURNCMD = &H0100
%EQUATE `TPM_RECURSE = &H0001
%EQUATE `TPM_HORPOSANIMATION = &H0400
%EQUATE `TPM_HORNEGANIMATION = &H0800
%EQUATE `TPM_VERPOSANIMATION = &H1000
%EQUATE `TPM_VERNEGANIMATION = &H2000
%EQUATE `TPM_NOANIMATION = &H4000
%EQUATE `TPM_LAYOUTRTL = &H8000
%EQUATE `TPM_WORKAREA = &H10000
' DrawText() Format Flags
%EQUATE `DT_TOP = &H0
%EQUATE `DT_LEFT = &H0
%EQUATE `DT_CENTER = &H00000001
%EQUATE `DT_RIGHT = &H00000002
%EQUATE `DT_VCENTER = &H00000004
%EQUATE `DT_BOTTOM = &H00000008
%EQUATE `DT_WORDBREAK = &H00000010
%EQUATE `DT_SINGLELINE = &H00000020
%EQUATE `DT_EXPANDTABS = &H00000040
%EQUATE `DT_TABSTOP = &H00000080
%EQUATE `DT_NOCLIP = &H00000100
%EQUATE `DT_EXTERNALLEADING = &H00000200
%EQUATE `DT_CALCRECT = &H00000400
%EQUATE `DT_NOPREFIX = &H00000800
%EQUATE `DT_INTERNAL = &H00001000
%EQUATE `DT_EDITCONTROL = &H00002000
%EQUATE `DT_PATH_ELLIPSIS = &H00004000
%EQUATE `DT_END_ELLIPSIS = &H00008000
%EQUATE `DT_MODIFYSTRING = &H00010000
%EQUATE `DT_RTLREADING = &H00020000
%EQUATE `DT_WORD_ELLIPSIS = &H00040000
%EQUATE `DT_NOFULLWIDTHCHARBREAK = &H00080000
%EQUATE `DT_HIDEPREFIX = &H00100000
%EQUATE `DT_PREFIXONLY = &H00200000
%EQUATE `DCX_WINDOW = &H00000001
%EQUATE `DCX_CACHE = &H00000002
%EQUATE `DCX_NORESETATTRS = &H00000004
%EQUATE `DCX_CLIPCHILDREN = &H00000008
%EQUATE `DCX_CLIPSIBLINGS = &H00000010
%EQUATE `DCX_PARENTCLIP = &H00000020
%EQUATE `DCX_EXCLUDERGN = &H00000040
%EQUATE `DCX_INTERSECTRGN = &H00000080
%EQUATE `DCX_EXCLUDEUPDATE = &H00000100
%EQUATE `DCX_INTERSECTUPDATE = &H00000200
%EQUATE `DCX_LOCKWINDOWUPDATE = &H00000400
%EQUATE `DCX_VALIDATE = &H00200000
%EQUATE `RDW_INVALIDATE = &H0001
%EQUATE `RDW_INTERNALPAINT = &H0002
%EQUATE `RDW_ERASE = &H0004
%EQUATE `RDW_VALIDATE = &H0008
%EQUATE `RDW_NOINTERNALPAINT = &H0010
%EQUATE `RDW_NOERASE = &H0020
%EQUATE `RDW_NOCHILDREN = &H0040
%EQUATE `RDW_ALLCHILDREN = &H0080
%EQUATE `RDW_UPDATENOW = &H0100
%EQUATE `RDW_ERASENOW = &H0200
%EQUATE `RDW_FRAME = &H0400
%EQUATE `RDW_NOFRAME = &H0800
%EQUATE `SW_SCROLLCHILDREN = &H1
%EQUATE `SW_INVALIDATE = &H2
%EQUATE `SW_ERASE = &H4
%EQUATE `SW_SMOOTHSCROLL = &H0010
' EnableScrollBar() flags
%EQUATE `ESB_ENABLE_BOTH = &H0
%EQUATE `ESB_DISABLE_BOTH = &H3
%EQUATE `ESB_DISABLE_LEFT = &H1
%EQUATE `ESB_DISABLE_RIGHT = &H2
%EQUATE `ESB_DISABLE_UP = &H1
%EQUATE `ESB_DISABLE_DOWN = &H2
%EQUATE `ESB_DISABLE_LTUP = %ESB_DISABLE_LEFT
%EQUATE `ESB_DISABLE_RTDN = %ESB_DISABLE_RIGHT
%EQUATE `MB_PRECOMPOSED = &H00000001 ' use precomposed chars
%EQUATE `MB_COMPOSITE = &H00000002 ' use composite chars
%EQUATE `MB_USEGLYPHCHARS = &H00000004 ' use glyph chars, not ctrl chars
%EQUATE `MB_ERR_INVALID_CHARS = &H00000008 ' error for invalid chars
' Color Types
%EQUATE `CTLCOLOR_MSGBOX = 0
%EQUATE `CTLCOLOR_EDIT = 1
%EQUATE `CTLCOLOR_LISTBOX = 2
%EQUATE `CTLCOLOR_BTN = 3
%EQUATE `CTLCOLOR_DLG = 4
%EQUATE `CTLCOLOR_SCROLLBAR = 5
%EQUATE `CTLCOLOR_STATIC = 6
%EQUATE `CTLCOLOR_MAX = 7
%EQUATE `COLOR_SCROLLBAR = 0
%EQUATE `COLOR_BACKGROUND = 1
%EQUATE `COLOR_ACTIVECAPTION = 2
%EQUATE `COLOR_INACTIVECAPTION = 3
%EQUATE `COLOR_MENU = 4
%EQUATE `COLOR_MSGBOX = 4
%EQUATE `COLOR_WINDOW = 5
%EQUATE `COLOR_WINDOWFRAME = 6
%EQUATE `COLOR_MENUTEXT = 7
%EQUATE `COLOR_MSGBOXTEXT = 7
%EQUATE `COLOR_WINDOWTEXT = 8
%EQUATE `COLOR_CAPTIONTEXT = 9
%EQUATE `COLOR_ACTIVEBORDER = 10
%EQUATE `COLOR_INACTIVEBORDER = 11
%EQUATE `COLOR_APPWORKSPACE = 12
%EQUATE `COLOR_HIGHLIGHT = 13
%EQUATE `COLOR_HIGHLIGHTTEXT = 14
%EQUATE `COLOR_BTNFACE = 15
%EQUATE `COLOR_BTNSHADOW = 16
%EQUATE `COLOR_GRAYTEXT = 17
%EQUATE `COLOR_BTNTEXT = 18
%EQUATE `COLOR_INACTIVECAPTIONTEXT = 19
%EQUATE `COLOR_BTNHIGHLIGHT = 20
%EQUATE `COLOR_3DDKSHADOW = 21
%EQUATE `COLOR_3DLIGHT = 22
%EQUATE `COLOR_INFOTEXT = 23
%EQUATE `COLOR_INFOBK = 24
%EQUATE `COLOR_HOTLIGHT = 26
%EQUATE `COLOR_GRADIENTACTIVECAPTION = 27
%EQUATE `COLOR_GRADIENTINACTIVECAPTION = 28
%EQUATE `COLOR_MENUHILIGHT = 29
%EQUATE `COLOR_MENUBAR = 30
%EQUATE `COLOR_DESKTOP = %COLOR_BACKGROUND
%EQUATE `COLOR_3DFACE = %COLOR_BTNFACE
%EQUATE `COLOR_3DSHADOW = %COLOR_BTNSHADOW
%EQUATE `COLOR_3DHIGHLIGHT = %COLOR_BTNHIGHLIGHT
%EQUATE `COLOR_3DHILIGHT = %COLOR_BTNHIGHLIGHT
%EQUATE `COLOR_BTNHILIGHT = %COLOR_BTNHIGHLIGHT
%EQUATE `RES_ICON = 1
%EQUATE `RES_CURSOR = 2
' GetWindow() Constants
%EQUATE `GW_HWNDFIRST = 0
%EQUATE `GW_HWNDLAST = 1
%EQUATE `GW_HWNDNEXT = 2
%EQUATE `GW_HWNDPREV = 3
%EQUATE `GW_OWNER = 4
%EQUATE `GW_CHILD = 5
%EQUATE `GW_ENABLEDPOPUP = 6
%EQUATE `GW_MAX = 6
' Menu flags for Add/Check/EnableMenuItem()
%EQUATE `MF_INSERT = &H00000000
%EQUATE `MF_CHANGE = &H00000080
%EQUATE `MF_APPEND = &H00000100
%EQUATE `MF_DELETE = &H00000200
%EQUATE `MF_REMOVE = &H00001000
%EQUATE `MF_BYCOMMAND = &H00000000
%EQUATE `MF_BYPOSITION = &H00000400
%EQUATE `MF_SEPARATOR = &H00000800
%EQUATE `MF_USECHECKBITMAPS = &H00000200
%EQUATE `MF_STRING = &H00000000
%EQUATE `MF_BITMAP = &H00000004
%EQUATE `MF_OWNERDRAW = &H00000100
%EQUATE `MF_POPUP = &H00000010
%EQUATE `MF_MENUBARBREAK = &H00000020
%EQUATE `MF_MENUBREAK = &H00000040
%EQUATE `MF_DEFAULT = &H00001000
%EQUATE `MF_SYSMENU = &H00002000
%EQUATE `MF_HELP = &H00004000
%EQUATE `MF_RIGHTJUSTIFY = &H00004000
%EQUATE `MF_MOUSESELECT = &H00008000
%EQUATE `MF_END = &H00000080
%EQUATE `MFT_STRING = %MF_STRING
%EQUATE `MFT_BITMAP = %MF_BITMAP
%EQUATE `MFT_MENUBARBREAK = %MF_MENUBARBREAK
%EQUATE `MFT_MENUBREAK = %MF_MENUBREAK
%EQUATE `MFT_OWNERDRAW = %MF_OWNERDRAW
%EQUATE `MFT_RADIOCHECK = &H00000200&
%EQUATE `MFT_SEPARATOR = %MF_SEPARATOR
%EQUATE `MFT_RIGHTORDER = &H00002000&
%EQUATE `MFT_RIGHTJUSTIFY = %MF_RIGHTJUSTIFY
' Menu flags for Add/Check/EnableMenuItem
%EQUATE `MFS_GRAYED = &H00000003&
%EQUATE `MFS_DISABLED = %MFS_GRAYED
%EQUATE `MFS_CHECKED = %MF_CHECKED
%EQUATE `MFS_HILITE = %MF_HILITE
%EQUATE `MFS_ENABLED = %MF_ENABLED
%EQUATE `MFS_UNCHECKED = %MF_UNCHECKED
%EQUATE `MFS_UNHILITE = %MF_UNHILITE
%EQUATE `MFS_DEFAULT = %MF_DEFAULT
' System Menu Command Values
%EQUATE `SC_SEPARATOR = &HF00F
' Obsolete names
%EQUATE `SC_ICON = %SC_MINIMIZE
%EQUATE `SC_ZOOM = %SC_MAXIMIZE
' Standard Cursor IDs
%EQUATE `IDC_ARROW = 32512&
%EQUATE `IDC_IBEAM = 32513&
%EQUATE `IDC_WAIT = 32514&
%EQUATE `IDC_CROSS = 32515&
%EQUATE `IDC_UPARROW = 32516&
%EQUATE `IDC_SIZE = 32640&
%EQUATE `IDC_ICON = 32641&
%EQUATE `IDC_SIZENWSE = 32642&
%EQUATE `IDC_SIZENESW = 32643&
%EQUATE `IDC_SIZEWE = 32644&
%EQUATE `IDC_SIZENS = 32645&
%EQUATE `IDC_SIZEALL = 32646&
%EQUATE `IDC_NO = 32648&
%EQUATE `IDC_HAND = 32649&
%EQUATE `IDC_APPSTARTING = 32650&
%EQUATE `IDC_HELP = 32651&
' OEM Resource Ordinal Numbers
%EQUATE `OBM_CLOSE = 32754
%EQUATE `OBM_UPARROW = 32753
%EQUATE `OBM_DNARROW = 32752
%EQUATE `OBM_RGARROW = 32751
%EQUATE `OBM_LFARROW = 32750
%EQUATE `OBM_REDUCE = 32749
%EQUATE `OBM_ZOOM = 32748
%EQUATE `OBM_RESTORE = 32747
%EQUATE `OBM_REDUCED = 32746
%EQUATE `OBM_ZOOMD = 32745
%EQUATE `OBM_RESTORED = 32744
%EQUATE `OBM_UPARROWD = 32743
%EQUATE `OBM_DNARROWD = 32742
%EQUATE `OBM_RGARROWD = 32741
%EQUATE `OBM_LFARROWD = 32740
%EQUATE `OBM_MNARROW = 32739
%EQUATE `OBM_COMBO = 32738
%EQUATE `OBM_UPARROWI = 32737
%EQUATE `OBM_DNARROWI = 32736
%EQUATE `OBM_RGARROWI = 32735
%EQUATE `OBM_LFARROWI = 32734
%EQUATE `OBM_OLD_CLOSE = 32767
%EQUATE `OBM_SIZE = 32766
%EQUATE `OBM_OLD_UPARROW = 32765
%EQUATE `OBM_OLD_DNARROW = 32764
%EQUATE `OBM_OLD_RGARROW = 32763
%EQUATE `OBM_OLD_LFARROW = 32762
%EQUATE `OBM_BTSIZE = 32761
%EQUATE `OBM_CHECK = 32760
%EQUATE `OBM_CHECKBOXES = 32759
%EQUATE `OBM_BTNCORNERS = 32758
%EQUATE `OBM_OLD_REDUCE = 32757
%EQUATE `OBM_OLD_ZOOM = 32756
%EQUATE `OBM_OLD_RESTORE = 32755
%EQUATE `OCR_NORMAL = 32512
%EQUATE `OCR_IBEAM = 32513
%EQUATE `OCR_WAIT = 32514
%EQUATE `OCR_CROSS = 32515
%EQUATE `OCR_UP = 32516
%EQUATE `OCR_SIZE = 32640 ' OBSOLETE: use %OCR_SIZEALL
%EQUATE `OCR_ICON = 32641 ' OBSOLETE: use %OCR_NORMAL
%EQUATE `OCR_SIZENWSE = 32642
%EQUATE `OCR_SIZENESW = 32643
%EQUATE `OCR_SIZEWE = 32644
%EQUATE `OCR_SIZENS = 32645
%EQUATE `OCR_SIZEALL = 32646
%EQUATE `OCR_ICOCUR = 32647 ' OBSOLETE: use %OIC_WINLOGO
%EQUATE `OCR_NO = 32648
%EQUATE `OCR_HAND = 32649
%EQUATE `OCR_APPSTARTING = 32650
%EQUATE `OIC_SAMPLE = 32512
%EQUATE `OIC_HAND = 32513
%EQUATE `OIC_QUES = 32514
%EQUATE `OIC_BANG = 32515
%EQUATE `OIC_NOTE = 32516
%EQUATE `OIC_WINLOGO = 32517
%EQUATE `OIC_WARNING = %OIC_BANG
%EQUATE `OIC_ERROR = %OIC_HAND
%EQUATE `OIC_INFORMATION = %OIC_NOTE
%EQUATE `OIC_SHIELD = 32518
%EQUATE `ORD_LANGDRIVER = 1 ' The ordinal number for the entry point of
' language drivers.
' Standard Icon IDs
%EQUATE `IDI_APPLICATION = 32512&
%EQUATE `IDI_HAND = 32513&
%EQUATE `IDI_ERROR = 32513&
%EQUATE `IDI_QUESTION = 32514&
%EQUATE `IDI_EXCLAMATION = 32515&
%EQUATE `IDI_WARNING = 32515&
%EQUATE `IDI_ASTERISK = 32516&
%EQUATE `IDI_INFORMATION = 32516&
%EQUATE `IDI_WINLOGO = 32517&
%EQUATE `IDI_SHIELD = 32518
%EQUATE `IDI_WARNING = %IDI_EXCLAMATION
%EQUATE `IDI_ERROR = %IDI_HAND
%EQUATE `IDI_INFORMATION = %IDI_ASTERISK
#IF NOT %DEF(%IDTIMEOUT)
%EQUATE `IDTIMEOUT = 32000
#ENDIF
' Control Manager Structures and Definitions
' Edit Control Notification Codes
%EQUATE `EN_ALIGN_LTR_EC = &H0700
%EQUATE `EN_ALIGN_RTL_EC = &H0701
' Edit Control Messages
%EQUATE `EM_GETSEL = &HB0
%EQUATE `EM_SETSEL = &HB1
%EQUATE `EM_GETRECT = &HB2
%EQUATE `EM_SETRECT = &HB3
%EQUATE `EM_SETRECTNP = &HB4
%EQUATE `EM_SCROLL = &HB5
%EQUATE `EM_LINESCROLL = &HB6
%EQUATE `EM_SCROLLCARET = &HB7
%EQUATE `EM_GETMODIFY = &HB8
%EQUATE `EM_SETMODIFY = &HB9
%EQUATE `EM_GETLINECOUNT = &HBA
%EQUATE `EM_LINEINDEX = &HBB
%EQUATE `EM_SETHANDLE = &HBC
%EQUATE `EM_GETHANDLE = &HBD
%EQUATE `EM_GETTHUMB = &HBE
%EQUATE `EM_LINELENGTH = &HC1
%EQUATE `EM_REPLACESEL = &HC2
%EQUATE `EM_GETLINE = &HC4
%EQUATE `EM_LIMITTEXT = &HC5
%EQUATE `EM_CANUNDO = &HC6
%EQUATE `EM_UNDO = &HC7
%EQUATE `EM_FMTLINES = &HC8
%EQUATE `EM_LINEFROMCHAR = &HC9
%EQUATE `EM_SETTABSTOPS = &HCB
%EQUATE `EM_SETPASSWORDCHAR = &HCC
%EQUATE `EM_EMPTYUNDOBUFFER = &HCD
%EQUATE `EM_GETFIRSTVISIBLELINE = &HCE
%EQUATE `EM_SETREADONLY = &HCF
%EQUATE `EM_SETWORDBREAKPROC = &HD0
%EQUATE `EM_GETWORDBREAKPROC = &HD1
%EQUATE `EM_GETPASSWORDCHAR = &HD2
%EQUATE `EM_SETMARGINS = &HD3
%EQUATE `EM_GETMARGINS = &HD4
%EQUATE `EM_SETLIMITTEXT = %EM_LIMITTEXT
%EQUATE `EM_GETLIMITTEXT = &HD5
%EQUATE `EM_POSFROMCHAR = &HD6
%EQUATE `EM_CHARFROMPOS = &HD7
%EQUATE `EM_SETIMESTATUS = &HD8
%EQUATE `EM_GETIMESTATUS = &HD9
' EDITWORDBREAKPROC code values
%EQUATE `WB_LEFT = 0
%EQUATE `WB_RIGHT = 1
%EQUATE `WB_ISDELIMITER = 2
' Button Control Messages
%EQUATE `BST_UNCHECKED = &H00
%EQUATE `BST_CHECKED = &H01
%EQUATE `BST_INDETERMINATE = &H02
%EQUATE `BST_PUSHED = &H04
%EQUATE `BM_GETCHECK = &H00F0
%EQUATE `BM_SETCHECK = &H00F1
%EQUATE `BM_GETSTATE = &H00F2
%EQUATE `BM_SETSTATE = &H00F3
%EQUATE `BM_SETSTYLE = &H00F4
%EQUATE `BM_CLICK = &H00F5
%EQUATE `BM_GETIMAGE = &H00F6
%EQUATE `BM_SETIMAGE = &H00F7
' Static Control Messages
%EQUATE `STM_SETICON = &H170
%EQUATE `STM_GETICON = &H171
%EQUATE `STM_SETIMAGE = &H172
%EQUATE `STM_GETIMAGE = &H173
%EQUATE `STM_MSGMAX = &H174
%EQUATE `STN_CLICKED = 0
%EQUATE `STN_DBLCLK = 1
%EQUATE `STN_ENABLE = 2
%EQUATE `STN_DISABLE = 3
%EQUATE `WC_DIALOG = &H8002
' Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
%EQUATE `DWL_MSGRESULT = 0
%EQUATE `DWL_DLGPROC = 4
%EQUATE `DWL_USER = 8
' DlgDirList, DlgDirListComboBox flags values
%EQUATE `DDL_READWRITE = &H0000
%EQUATE `DDL_READONLY = &H0001
%EQUATE `DDL_HIDDEN = &H0002
%EQUATE `DDL_SYSTEM = &H0004
%EQUATE `DDL_DIRECTORY = &H0010
%EQUATE `DDL_ARCHIVE = &H0020
%EQUATE `DDL_POSTMSGS = &H2000
%EQUATE `DDL_DRIVES = &H4000
%EQUATE `DDL_EXCLUSIVE = &H8000
%EQUATE `DS_SHELLFONT = (%DS_SETFONT OR %DS_FIXEDSYS)
%EQUATE `DM_GETDEFID = %WM_USER + 0
%EQUATE `DM_SETDEFID = %WM_USER + 1
%EQUATE `DM_REPOSITION = %WM_USER + 2
%EQUATE `DC_HASDEFID = &H534B
' Listbox Return Values
%EQUATE `LB_CTLCODE = 0
%EQUATE `LB_OKAY = 0
%EQUATE `LB_ERR = -1
%EQUATE `LB_ERRSPACE = -2
' Listbox messages
%EQUATE `LB_ADDSTRING = &H180
%EQUATE `LB_INSERTSTRING = &H181
%EQUATE `LB_DELETESTRING = &H182
%EQUATE `LB_SELITEMRANGEEX = &H183
%EQUATE `LB_RESETCONTENT = &H184
%EQUATE `LB_SETSEL = &H185
%EQUATE `LB_SETCURSEL = &H186
%EQUATE `LB_GETSEL = &H187
%EQUATE `LB_GETCURSEL = &H188
%EQUATE `LB_GETTEXT = &H189
%EQUATE `LB_GETTEXTLEN = &H18A
%EQUATE `LB_GETCOUNT = &H18B
%EQUATE `LB_SELECTSTRING = &H18C
%EQUATE `LB_DIR = &H18D
%EQUATE `LB_GETTOPINDEX = &H18E
%EQUATE `LB_FINDSTRING = &H18F
%EQUATE `LB_GETSELCOUNT = &H190
%EQUATE `LB_GETSELITEMS = &H191
%EQUATE `LB_SETTABSTOPS = &H192
%EQUATE `LB_GETHORIZONTALEXTENT = &H193
%EQUATE `LB_SETHORIZONTALEXTENT = &H194
%EQUATE `LB_SETCOLUMNWIDTH = &H195
%EQUATE `LB_ADDFILE = &H196
%EQUATE `LB_SETTOPINDEX = &H197
%EQUATE `LB_GETITEMRECT = &H198
%EQUATE `LB_GETITEMDATA = &H199
%EQUATE `LB_SETITEMDATA = &H19A
%EQUATE `LB_SELITEMRANGE = &H19B
%EQUATE `LB_SETANCHORINDEX = &H19C
%EQUATE `LB_GETANCHORINDEX = &H19D
%EQUATE `LB_SETCARETINDEX = &H19E
%EQUATE `LB_GETCARETINDEX = &H19F
%EQUATE `LB_SETITEMHEIGHT = &H1A0
%EQUATE `LB_GETITEMHEIGHT = &H1A1
%EQUATE `LB_FINDSTRINGEXACT = &H1A2
%EQUATE `LB_SETLOCALE = &H1A5
%EQUATE `LB_GETLOCALE = &H1A6
%EQUATE `LB_SETCOUNT = &H1A7
%EQUATE `LB_INITSTORAGE = &H1A8
%EQUATE `LB_ITEMFROMPOINT = &H1A9
%EQUATE `LB_MULTIPLEADDSTRING = &H1B1
%EQUATE `LB_GETLISTBOXINFO = &H1B2
%EQUATE `LB_MSGMAX = &H1B3 ' depends on Windows version
%EQUATE `LBS_COMBOBOX = &H8000
' Combo Box return Values
%EQUATE `CB_OKAY = 0
%EQUATE `CB_ERR = -1
%EQUATE `CB_ERRSPACE = -2
' Combo Box Notification Codes
%EQUATE `CBN_SELENDCANCEL = %CBN_SELCANCEL
' Combo Box messages
%EQUATE `CB_GETEDITSEL = &H140
%EQUATE `CB_LIMITTEXT = &H141
%EQUATE `CB_SETEDITSEL = &H142
%EQUATE `CB_ADDSTRING = &H143
%EQUATE `CB_DELETESTRING = &H144
%EQUATE `CB_DIR = &H145
%EQUATE `CB_GETCOUNT = &H146
%EQUATE `CB_GETCURSEL = &H147
%EQUATE `CB_GETLBTEXT = &H148
%EQUATE `CB_GETLBTEXTLEN = &H149
%EQUATE `CB_INSERTSTRING = &H14A
%EQUATE `CB_RESETCONTENT = &H14B
%EQUATE `CB_FINDSTRING = &H14C
%EQUATE `CB_SELECTSTRING = &H14D
%EQUATE `CB_SETCURSEL = &H14E
%EQUATE `CB_SHOWDROPDOWN = &H14F
%EQUATE `CB_GETITEMDATA = &H150
%EQUATE `CB_SETITEMDATA = &H151
%EQUATE `CB_GETDROPPEDCONTROLRECT = &H152
%EQUATE `CB_SETITEMHEIGHT = &H153
%EQUATE `CB_GETITEMHEIGHT = &H154
%EQUATE `CB_SETEXTENDEDUI = &H155
%EQUATE `CB_GETEXTENDEDUI = &H156
%EQUATE `CB_GETDROPPEDSTATE = &H157
%EQUATE `CB_FINDSTRINGEXACT = &H158
%EQUATE `CB_SETLOCALE = &H159
%EQUATE `CB_GETLOCALE = &H15A
%EQUATE `CB_GETTOPINDEX = &H15B
%EQUATE `CB_SETTOPINDEX = &H15C
%EQUATE `CB_GETHORIZONTALEXTENT = &H15D
%EQUATE `CB_SETHORIZONTALEXTENT = &H15E
%EQUATE `CB_GETDROPPEDWIDTH = &H15F
%EQUATE `CB_SETDROPPEDWIDTH = &H160
%EQUATE `CB_INITSTORAGE = &H161
%EQUATE `CB_MULTIPLEADDSTRING = &H163
%EQUATE `CB_GETCOMBOBOXINFO = &H164
%EQUATE `CB_MSGMAX = &H165 ' depends on Windows version
' Scroll bar messages
%EQUATE `SBM_SETPOS = &H00E0 ' not in win3.1
%EQUATE `SBM_GETPOS = &H00E1 ' not in win3.1
%EQUATE `SBM_SETRANGE = &H00E2 ' not in win3.1
%EQUATE `SBM_SETRANGEREDRAW = &H00E6 ' not in win3.1
%EQUATE `SBM_GETRANGE = &H00E3 ' not in win3.1
%EQUATE `SBM_ENABLE_ARROWS = &H00E4 ' not in win3.1
%EQUATE `SBM_SETSCROLLINFO = &H00E9
%EQUATE `SBM_GETSCROLLINFO = &H00EA
%EQUATE `SBM_GETSCROLLBARINFO = &H00EB
%EQUATE `GR_GDIOBJECTS = 0 ' Count of GDI objects
%EQUATE `GR_USEROBJECTS = 1 ' Count of USER objects
%EQUATE `GR_GDIOBJECTS_PEAK = 2 ' Peak count of GDI objects
%EQUATE `GR_USEROBJECTS_PEAK = 4 ' Peak count of USER objects
%EQUATE `GR_GLOBAL = &HFFFFFFFE ' ((HANDLE)-2)
%EQUATE `MDIS_ALLCHILDSTYLES = &H1
' wParam values for WM_MDITILE and WM_MDICASCADE messages.
%EQUATE `MDITILE_VERTICAL = &H0
%EQUATE `MDITILE_HORIZONTAL = &H1
%EQUATE `MDITILE_SKIPDISABLED = &H2
%EQUATE `MDITILE_ZORDER = &H4
' Commands to pass WinHelp()
%EQUATE `HELP_CONTEXT = &H00000001 ' Display topic in ulTopic
%EQUATE `HELP_QUIT = &H00000002 ' Terminate help
%EQUATE `HELP_INDEX = &H00000003 ' Display index
%EQUATE `HELP_CONTENTS = &H00000003
%EQUATE `HELP_HELPONHELP = &H00000004 ' Display help on using help
%EQUATE `HELP_SETINDEX = &H00000005 ' Set current Index for multi index help
%EQUATE `HELP_SETCONTENTS = &H00000005
%EQUATE `HELP_CONTEXTPOPUP = &H00000008
%EQUATE `HELP_FORCEFILE = &H00000009
%EQUATE `HELP_KEY = &H00000101 ' Display topic for keyword in offabData
%EQUATE `HELP_COMMAND = &H00000102
%EQUATE `HELP_PARTIALKEY = &H00000105
%EQUATE `HELP_MULTIKEY = &H00000201
%EQUATE `HELP_SETWINPOS = &H00000203
%EQUATE `HELP_CONTEXTMENU = &H0000000a
%EQUATE `HELP_FINDER = &H0000000b
%EQUATE `HELP_WM_HELP = &H0000000c
%EQUATE `HELP_SETPOPUP_POS = &H0000000d
%EQUATE `HELP_TCARD = &H00008000
%EQUATE `HELP_TCARD_DATA = &H00000010
%EQUATE `HELP_TCARD_OTHER_CALLER = &H00000011
' These are in winhelp.h in Win95.
%EQUATE `IDH_NO_HELP = 28440
%EQUATE `IDH_MISSING_CONTEXT = 28441 ' Control doesn't have matching help context
%EQUATE `IDH_GENERIC_HELP_BUTTON = 28442 ' Property sheet help button
%EQUATE `IDH_OK = 28443
%EQUATE `IDH_CANCEL = 28444
%EQUATE `IDH_HELP = 28445
' Parameter for SystemParametersInfo()
%EQUATE `SPI_GETBEEP = &H0001
%EQUATE `SPI_SETBEEP = &H0002
%EQUATE `SPI_GETMOUSE = &H0003
%EQUATE `SPI_SETMOUSE = &H0004
%EQUATE `SPI_GETBORDER = &H0005
%EQUATE `SPI_SETBORDER = &H0006
%EQUATE `SPI_GETKEYBOARDSPEED = &H000A
%EQUATE `SPI_SETKEYBOARDSPEED = &H000B
%EQUATE `SPI_LANGDRIVER = &H000C
%EQUATE `SPI_ICONHORIZONTALSPACING = &H000D
%EQUATE `SPI_GETSCREENSAVETIMEOUT = &H000E
%EQUATE `SPI_SETSCREENSAVETIMEOUT = &H000F
%EQUATE `SPI_GETSCREENSAVEACTIVE = &H0010
%EQUATE `SPI_SETSCREENSAVEACTIVE = &H0011
%EQUATE `SPI_GETGRIDGRANULARITY = &H0012
%EQUATE `SPI_SETGRIDGRANULARITY = &H0013
%EQUATE `SPI_SETDESKWALLPAPER = &H0014
%EQUATE `SPI_SETDESKPATTERN = &H0015
%EQUATE `SPI_GETKEYBOARDDELAY = &H0016
%EQUATE `SPI_SETKEYBOARDDELAY = &H0017
%EQUATE `SPI_ICONVERTICALSPACING = &H0018
%EQUATE `SPI_GETICONTITLEWRAP = &H0019
%EQUATE `SPI_SETICONTITLEWRAP = &H001A
%EQUATE `SPI_GETMENUDROPALIGNMENT = &H001B
%EQUATE `SPI_SETMENUDROPALIGNMENT = &H001C
%EQUATE `SPI_SETDOUBLECLKWIDTH = &H001D
%EQUATE `SPI_SETDOUBLECLKHEIGHT = &H001E
%EQUATE `SPI_GETICONTITLELOGFONT = &H001F
%EQUATE `SPI_SETDOUBLECLICKTIME = &H0020
%EQUATE `SPI_SETMOUSEBUTTONSWAP = &H0021
%EQUATE `SPI_SETICONTITLELOGFONT = &H0022
%EQUATE `SPI_GETFASTTASKSWITCH = &H0023
%EQUATE `SPI_SETFASTTASKSWITCH = &H0024
%EQUATE `SPI_SETDRAGFULLWINDOWS = &H0025
%EQUATE `SPI_GETDRAGFULLWINDOWS = &H0026
%EQUATE `SPI_GETNONCLIENTMETRICS = &H0029
%EQUATE `SPI_SETNONCLIENTMETRICS = &H002A
%EQUATE `SPI_GETMINIMIZEDMETRICS = &H002B
%EQUATE `SPI_SETMINIMIZEDMETRICS = &H002C
%EQUATE `SPI_GETICONMETRICS = &H002D
%EQUATE `SPI_SETICONMETRICS = &H002E
%EQUATE `SPI_SETWORKAREA = &H002F
%EQUATE `SPI_GETWORKAREA = &H0030
%EQUATE `SPI_SETPENWINDOWS = &H0031
%EQUATE `SPI_GETHIGHCONTRAST = &H0042
%EQUATE `SPI_SETHIGHCONTRAST = &H0043
%EQUATE `SPI_GETKEYBOARDPREF = &H0044
%EQUATE `SPI_SETKEYBOARDPREF = &H0045
%EQUATE `SPI_GETSCREENREADER = &H0046
%EQUATE `SPI_SETSCREENREADER = &H0047
%EQUATE `SPI_GETANIMATION = &H0048
%EQUATE `SPI_SETANIMATION = &H0049
%EQUATE `SPI_GETFONTSMOOTHING = &H004A
%EQUATE `SPI_SETFONTSMOOTHING = &H004B
%EQUATE `SPI_SETDRAGWIDTH = &H004C
%EQUATE `SPI_SETDRAGHEIGHT = &H004D
%EQUATE `SPI_SETHANDHELD = &H004E
%EQUATE `SPI_GETLOWPOWERTIMEOUT = &H004F
%EQUATE `SPI_GETPOWEROFFTIMEOUT = &H0050
%EQUATE `SPI_SETLOWPOWERTIMEOUT = &H0051
%EQUATE `SPI_SETPOWEROFFTIMEOUT = &H0052
%EQUATE `SPI_GETLOWPOWERACTIVE = &H0053
%EQUATE `SPI_GETPOWEROFFACTIVE = &H0054
%EQUATE `SPI_SETLOWPOWERACTIVE = &H0055
%EQUATE `SPI_SETPOWEROFFACTIVE = &H0056
%EQUATE `SPI_SETCURSORS = &H0057
%EQUATE `SPI_SETICONS = &H0058
%EQUATE `SPI_GETDEFAULTINPUTLANG = &H0059
%EQUATE `SPI_SETDEFAULTINPUTLANG = &H005A
%EQUATE `SPI_SETLANGTOGGLE = &H005B
%EQUATE `SPI_GETWINDOWSEXTENSION = &H005C
%EQUATE `SPI_SETMOUSETRAILS = &H005D
%EQUATE `SPI_GETMOUSETRAILS = &H005E
%EQUATE `SPI_SETSCREENSAVERRUNNING = &H0061
%EQUATE `SPI_SCREENSAVERRUNNING = %SPI_SETSCREENSAVERRUNNING
%EQUATE `SPI_GETFILTERKEYS = &H0032
%EQUATE `SPI_SETFILTERKEYS = &H0033
%EQUATE `SPI_GETTOGGLEKEYS = &H0034
%EQUATE `SPI_SETTOGGLEKEYS = &H0035
%EQUATE `SPI_GETMOUSEKEYS = &H0036
%EQUATE `SPI_SETMOUSEKEYS = &H0037
%EQUATE `SPI_GETSHOWSOUNDS = &H0038
%EQUATE `SPI_SETSHOWSOUNDS = &H0039
%EQUATE `SPI_GETSTICKYKEYS = &H003A
%EQUATE `SPI_SETSTICKYKEYS = &H003B
%EQUATE `SPI_GETACCESSTIMEOUT = &H003C
%EQUATE `SPI_SETACCESSTIMEOUT = &H003D
%EQUATE `SPI_GETSERIALKEYS = &H003E
%EQUATE `SPI_SETSERIALKEYS = &H003F
%EQUATE `SPI_GETSOUNDSENTRY = &H0040
%EQUATE `SPI_SETSOUNDSENTRY = &H0041
%EQUATE `SPI_GETSNAPTODEFBUTTON = &H005F
%EQUATE `SPI_SETSNAPTODEFBUTTON = &H0060
%EQUATE `SPI_GETMOUSEHOVERWIDTH = &H0062
%EQUATE `SPI_SETMOUSEHOVERWIDTH = &H0063
%EQUATE `SPI_GETMOUSEHOVERHEIGHT = &H0064
%EQUATE `SPI_SETMOUSEHOVERHEIGHT = &H0065
%EQUATE `SPI_GETMOUSEHOVERTIME = &H0066
%EQUATE `SPI_SETMOUSEHOVERTIME = &H0067
%EQUATE `SPI_GETWHEELSCROLLLINES = &H0068
%EQUATE `SPI_SETWHEELSCROLLLINES = &H0069
%EQUATE `SPI_GETMENUSHOWDELAY = &H006A
%EQUATE `SPI_SETMENUSHOWDELAY = &H006B
%EQUATE `SPI_GETWHEELSCROLLCHARS = &H006C
%EQUATE `SPI_SETWHEELSCROLLCHARS = &H006D
%EQUATE `SPI_GETSHOWIMEUI = &H006E
%EQUATE `SPI_SETSHOWIMEUI = &H006F
%EQUATE `SPI_GETMOUSESPEED = &H0070
%EQUATE `SPI_SETMOUSESPEED = &H0071
%EQUATE `SPI_GETSCREENSAVERRUNNING = &H0072
%EQUATE `SPI_GETDESKWALLPAPER = &H0073
%EQUATE `SPI_GETAUDIODESCRIPTION = &H0074
%EQUATE `SPI_SETAUDIODESCRIPTION = &H0075
%EQUATE `SPI_GETSCREENSAVESECURE = &H0076
%EQUATE `SPI_SETSCREENSAVESECURE = &H0077
%EQUATE `SPI_GETHUNGAPPTIMEOUT = &H0078
%EQUATE `SPI_SETHUNGAPPTIMEOUT = &H0079
%EQUATE `SPI_GETWAITTOKILLTIMEOUT = &H007A
%EQUATE `SPI_SETWAITTOKILLTIMEOUT = &H007B
%EQUATE `SPI_GETWAITTOKILLSERVICETIMEOUT = &H007C
%EQUATE `SPI_SETWAITTOKILLSERVICETIMEOUT = &H007D
%EQUATE `SPI_GETMOUSEDOCKTHRESHOLD = &H007E
%EQUATE `SPI_SETMOUSEDOCKTHRESHOLD = &H007F
%EQUATE `SPI_GETPENDOCKTHRESHOLD = &H0080
%EQUATE `SPI_SETPENDOCKTHRESHOLD = &H0081
%EQUATE `SPI_GETWINARRANGING = &H0082
%EQUATE `SPI_SETWINARRANGING = &H0083
%EQUATE `SPI_GETMOUSEDRAGOUTTHRESHOLD = &H0084
%EQUATE `SPI_SETMOUSEDRAGOUTTHRESHOLD = &H0085
%EQUATE `SPI_GETPENDRAGOUTTHRESHOLD = &H0086
%EQUATE `SPI_SETPENDRAGOUTTHRESHOLD = &H0087
%EQUATE `SPI_GETMOUSESIDEMOVETHRESHOLD = &H0088
%EQUATE `SPI_SETMOUSESIDEMOVETHRESHOLD = &H0089
%EQUATE `SPI_GETPENSIDEMOVETHRESHOLD = &H008A
%EQUATE `SPI_SETPENSIDEMOVETHRESHOLD = &H008B
%EQUATE `SPI_GETDRAGFROMMAXIMIZE = &H008C
%EQUATE `SPI_SETDRAGFROMMAXIMIZE = &H008D
%EQUATE `SPI_GETSNAPSIZING = &H008E
%EQUATE `SPI_SETSNAPSIZING = &H008F
%EQUATE `SPI_GETDOCKMOVING = &H0090
%EQUATE `SPI_SETDOCKMOVING = &H0091
%EQUATE `SPI_GETACTIVEWINDOWTRACKING = &H1000
%EQUATE `SPI_SETACTIVEWINDOWTRACKING = &H1001
%EQUATE `SPI_GETMENUANIMATION = &H1002
%EQUATE `SPI_SETMENUANIMATION = &H1003
%EQUATE `SPI_GETCOMBOBOXANIMATION = &H1004
%EQUATE `SPI_SETCOMBOBOXANIMATION = &H1005
%EQUATE `SPI_GETLISTBOXSMOOTHSCROLLING = &H1006
%EQUATE `SPI_SETLISTBOXSMOOTHSCROLLING = &H1007
%EQUATE `SPI_GETGRADIENTCAPTIONS = &H1008
%EQUATE `SPI_SETGRADIENTCAPTIONS = &H1009
%EQUATE `SPI_GETKEYBOARDCUES = &H100A
%EQUATE `SPI_SETKEYBOARDCUES = &H100B
%EQUATE `SPI_GETMENUUNDERLINES = %SPI_GETKEYBOARDCUES
%EQUATE `SPI_SETMENUUNDERLINES = %SPI_SETKEYBOARDCUES
%EQUATE `SPI_GETACTIVEWNDTRKZORDER = &H100C
%EQUATE `SPI_SETACTIVEWNDTRKZORDER = &H100D
%EQUATE `SPI_GETHOTTRACKING = &H100E
%EQUATE `SPI_SETHOTTRACKING = &H100F
%EQUATE `SPI_GETMENUFADE = &H1012
%EQUATE `SPI_SETMENUFADE = &H1013
%EQUATE `SPI_GETSELECTIONFADE = &H1014
%EQUATE `SPI_SETSELECTIONFADE = &H1015
%EQUATE `SPI_GETTOOLTIPANIMATION = &H1016
%EQUATE `SPI_SETTOOLTIPANIMATION = &H1017
%EQUATE `SPI_GETTOOLTIPFADE = &H1018
%EQUATE `SPI_SETTOOLTIPFADE = &H1019
%EQUATE `SPI_GETCURSORSHADOW = &H101A
%EQUATE `SPI_SETCURSORSHADOW = &H101B
%EQUATE `SPI_GETMOUSESONAR = &H101C
%EQUATE `SPI_SETMOUSESONAR = &H101D
%EQUATE `SPI_GETMOUSECLICKLOCK = &H101E
%EQUATE `SPI_SETMOUSECLICKLOCK = &H101F
%EQUATE `SPI_GETMOUSEVANISH = &H1020
%EQUATE `SPI_SETMOUSEVANISH = &H1021
%EQUATE `SPI_GETFLATMENU = &H1022
%EQUATE `SPI_SETFLATMENU = &H1023
%EQUATE `SPI_GETDROPSHADOW = &H1024
%EQUATE `SPI_SETDROPSHADOW = &H1025
%EQUATE `SPI_GETBLOCKSENDINPUTRESETS = &H1026
%EQUATE `SPI_SETBLOCKSENDINPUTRESETS = &H1027
%EQUATE `SPI_GETUIEFFECTS = &H103E
%EQUATE `SPI_SETUIEFFECTS = &H103F
%EQUATE `SPI_GETDISABLEOVERLAPPEDCONTENT = &H1040
%EQUATE `SPI_SETDISABLEOVERLAPPEDCONTENT = &H1041
%EQUATE `SPI_GETCLIENTAREAANIMATION = &H1042
%EQUATE `SPI_SETCLIENTAREAANIMATION = &H1043
%EQUATE `SPI_GETCLEARTYPE = &H1048
%EQUATE `SPI_SETCLEARTYPE = &H1049
%EQUATE `SPI_GETSPEECHRECOGNITION = &H104A
%EQUATE `SPI_SETSPEECHRECOGNITION = &H104B
%EQUATE `SPI_GETFOREGROUNDLOCKTIMEOUT = &H2000
%EQUATE `SPI_SETFOREGROUNDLOCKTIMEOUT = &H2001
%EQUATE `SPI_GETACTIVEWNDTRKTIMEOUT = &H2002
%EQUATE `SPI_SETACTIVEWNDTRKTIMEOUT = &H2003
%EQUATE `SPI_GETFOREGROUNDFLASHCOUNT = &H2004
%EQUATE `SPI_SETFOREGROUNDFLASHCOUNT = &H2005
%EQUATE `SPI_GETCARETWIDTH = &H2006
%EQUATE `SPI_SETCARETWIDTH = &H2007
%EQUATE `SPI_GETMOUSECLICKLOCKTIME = &H2008
%EQUATE `SPI_SETMOUSECLICKLOCKTIME = &H2009
%EQUATE `SPI_GETFONTSMOOTHINGTYPE = &H200A
%EQUATE `SPI_SETFONTSMOOTHINGTYPE = &H200B
' constants for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE:
%EQUATE `FE_FONTSMOOTHINGSTANDARD = &H0001
%EQUATE `FE_FONTSMOOTHINGCLEARTYPE = &H0002
%EQUATE `FE_FONTSMOOTHINGDOCKING = &H8000
%EQUATE `SPI_GETFONTSMOOTHINGCONTRAST = &H200C
%EQUATE `SPI_SETFONTSMOOTHINGCONTRAST = &H200D
%EQUATE `SPI_GETFOCUSBORDERWIDTH = &H200E
%EQUATE `SPI_SETFOCUSBORDERWIDTH = &H200F
%EQUATE `SPI_GETFOCUSBORDERHEIGHT = &H2010
%EQUATE `SPI_SETFOCUSBORDERHEIGHT = &H2011
%EQUATE `SPI_GETFONTSMOOTHINGORIENTATION = &H2012
%EQUATE `SPI_SETFONTSMOOTHINGORIENTATION = &H2013
' constants for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION:
%EQUATE `FE_FONTSMOOTHINGORIENTATIONBGR = &H0000
%EQUATE `FE_FONTSMOOTHINGORIENTATIONRGB = &H0001
%EQUATE `SPI_GETMINIMUMHITRADIUS = &H2014
%EQUATE `SPI_SETMINIMUMHITRADIUS = &H2015
%EQUATE `SPI_GETMESSAGEDURATION = &H2016
%EQUATE `SPI_SETMESSAGEDURATION = &H2017
' Return values for ChangeDisplaySettings
%EQUATE `DISP_CHANGE_SUCCESSFUL = 0
%EQUATE `DISP_CHANGE_RESTART = 1
%EQUATE `DISP_CHANGE_FAILED = -1
%EQUATE `DISP_CHANGE_BADMODE = -2
%EQUATE `DISP_CHANGE_NOTUPDATED = -3
%EQUATE `DISP_CHANGE_BADFLAGS = -4
%EQUATE `DISP_CHANGE_BADPARAM = -5
%EQUATE `DISP_CHANGE_BADDUALVIEW = -6
' dwFlags for SetWinEventHook
%EQUATE `WINEVENT_OUTOFCONTEXT = &H0000 ' Events are ASYNC
%EQUATE `WINEVENT_SKIPOWNTHREAD = &H0001 ' Don't call back for events on installer's thread
%EQUATE `WINEVENT_SKIPOWNPROCESS = &H0002 ' Don't call back for events on installer's process
%EQUATE `WINEVENT_INCONTEXT = &H0004 ' Events are SYNC, this causes your dll to be injected into every process
' idObject values for WinEventProc and NotifyWinEvent
'
' hwnd + idObject can be used with OLEACC.DLL's OleGetObjectFromWindow()
' to get an interface pointer to the container. indexChild is the item
' within the container in question. Setup a VARIANT with vt VT_I4 and
' lVal the indexChild and pass that in to all methods. Then you
' are raring to go.
'
' Common object IDs (cookies, only for sending WM_GETOBJECT to get at the
' thing in question). Positive IDs are reserved for apps (app specific),
' negative IDs are system things and are global, 0 means "just little old
' me".
'
%EQUATE `CHILDID_SELF = 0
%EQUATE `INDEXID_OBJECT = 0
%EQUATE `INDEXID_CONTAINER = 0
' Reserved IDs for system objects
%EQUATE `OBJID_WINDOW = &H00000000
%EQUATE `OBJID_SYSMENU = &HFFFFFFFF
%EQUATE `OBJID_TITLEBAR = &HFFFFFFFE
%EQUATE `OBJID_MENU = &HFFFFFFFD
%EQUATE `OBJID_CLIENT = &HFFFFFFFC
%EQUATE `OBJID_VSCROLL = &HFFFFFFFB
%EQUATE `OBJID_HSCROLL = &HFFFFFFFA
%EQUATE `OBJID_SIZEGRIP = &HFFFFFFF9
%EQUATE `OBJID_CARET = &HFFFFFFF8
%EQUATE `OBJID_CURSOR = &HFFFFFFF7
%EQUATE `OBJID_ALERT = &HFFFFFFF6
%EQUATE `OBJID_SOUND = &HFFFFFFF5
%EQUATE `OBJID_QUERYCLASSNAMEIDX = &HFFFFFFF4
%EQUATE `OBJID_NATIVEOM = &HFFFFFFF0
' EVENT DEFINITION
%EQUATE `EVENT_MIN = &H00000001
%EQUATE `EVENT_MAX = &H7FFFFFFF
%EQUATE `EVENT_SYSTEM_SOUND = &H0001
%EQUATE `EVENT_SYSTEM_ALERT = &H0002
%EQUATE `EVENT_SYSTEM_FOREGROUND = &H0003
%EQUATE `EVENT_SYSTEM_MENUSTART = &H0004
%EQUATE `EVENT_SYSTEM_MENUEND = &H0005
%EQUATE `EVENT_SYSTEM_MENUPOPUPSTART = &H0006
%EQUATE `EVENT_SYSTEM_MENUPOPUPEND = &H0007
%EQUATE `EVENT_SYSTEM_CAPTURESTART = &H0008
%EQUATE `EVENT_SYSTEM_CAPTUREEND = &H0009
%EQUATE `EVENT_SYSTEM_MOVESIZESTART = &H000A
%EQUATE `EVENT_SYSTEM_MOVESIZEEND = &H000B
%EQUATE `EVENT_SYSTEM_CONTEXTHELPSTART = &H000C
%EQUATE `EVENT_SYSTEM_CONTEXTHELPEND = &H000D
%EQUATE `EVENT_SYSTEM_DRAGDROPSTART = &H000E
%EQUATE `EVENT_SYSTEM_DRAGDROPEND = &H000F
%EQUATE `EVENT_SYSTEM_DIALOGSTART = &H0010
%EQUATE `EVENT_SYSTEM_DIALOGEND = &H0011
%EQUATE `EVENT_SYSTEM_SCROLLINGSTART = &H0012
%EQUATE `EVENT_SYSTEM_SCROLLINGEND = &H0013
%EQUATE `EVENT_SYSTEM_SWITCHSTART = &H0014
%EQUATE `EVENT_SYSTEM_SWITCHEND = &H0015
%EQUATE `EVENT_SYSTEM_MINIMIZESTART = &H0016
%EQUATE `EVENT_SYSTEM_MINIMIZEEND = &H0017
%EQUATE `EVENT_CONSOLE_CARET = &H4001
%EQUATE `EVENT_CONSOLE_UPDATE_REGION = &H4002
%EQUATE `EVENT_CONSOLE_UPDATE_SIMPLE = &H4003
%EQUATE `EVENT_CONSOLE_UPDATE_SCROLL = &H4004
%EQUATE `EVENT_CONSOLE_LAYOUT = &H4005
%EQUATE `EVENT_CONSOLE_START_APPLICATION = &H4006
%EQUATE `EVENT_CONSOLE_END_APPLICATION = &H4007
' Flags for EVENT_CONSOLE_START/END_APPLICATION.
%EQUATE `CONSOLE_APPLICATION_16BIT = &H0001
' Flags for EVENT_CONSOLE_CARET
%EQUATE `CONSOLE_CARET_SELECTION = &H0001
%EQUATE `CONSOLE_CARET_VISIBLE = &H0002
' Object events
%EQUATE `EVENT_OBJECT_CREATE = &H08000 ' hwnd + ID + idChild is created item
%EQUATE `EVENT_OBJECT_DESTROY = &H08001 ' hwnd + ID + idChild is destroyed item
%EQUATE `EVENT_OBJECT_SHOW = &H08002 ' hwnd + ID + idChild is shown item
%EQUATE `EVENT_OBJECT_HIDE = &H08003 ' hwnd + ID + idChild is hidden item
%EQUATE `EVENT_OBJECT_REORDER = &H08004 ' hwnd + ID + idChild is parent of zordering children
%EQUATE `EVENT_OBJECT_FOCUS = &H08005 ' hwnd + ID + idChild is focused item
%EQUATE `EVENT_OBJECT_SELECTION = &H08006 ' hwnd + ID + idChild is selected item (if only one), or idChild is OBJID_WINDOW if complex
%EQUATE `EVENT_OBJECT_SELECTIONADD = &H08007 ' hwnd + ID + idChild is item added
%EQUATE `EVENT_OBJECT_SELECTIONREMOVE = &H08008 ' hwnd + ID + idChild is item removed
%EQUATE `EVENT_OBJECT_SELECTIONWITHIN = &H08009 ' hwnd + ID + idChild is parent of changed selected items
%EQUATE `EVENT_OBJECT_STATECHANGE = &H0800A ' hwnd + ID + idChild is item w/ state change
%EQUATE `EVENT_OBJECT_LOCATIONCHANGE = &H0800B ' hwnd + ID + idChild is moved/sized item
%EQUATE `EVENT_OBJECT_NAMECHANGE = &H0800C ' hwnd + ID + idChild is item w/ name change
%EQUATE `EVENT_OBJECT_DESCRIPTIONCHANGE = &H0800D ' hwnd + ID + idChild is item w/ desc change
%EQUATE `EVENT_OBJECT_VALUECHANGE = &H0800E ' hwnd + ID + idChild is item w/ value change
%EQUATE `EVENT_OBJECT_PARENTCHANGE = &H0800F ' hwnd + ID + idChild is item w/ new parent
%EQUATE `EVENT_OBJECT_HELPCHANGE = &H08010 ' hwnd + ID + idChild is item w/ help change
%EQUATE `EVENT_OBJECT_DEFACTIONCHANGE = &H08011 ' hwnd + ID + idChild is item w/ def action change
%EQUATE `EVENT_OBJECT_ACCELERATORCHANGE = &H08012 ' hwnd + ID + idChild is item w/ keybd accel change
%EQUATE `EVENT_OBJECT_INVOKED = &H8013 ' hwnd + ID + idChild is item invoked
%EQUATE `EVENT_OBJECT_TEXTSELECTIONCHANGED = &H8014 ' hwnd + ID + idChild is item w? test selection change
%EQUATE `EVENT_OBJECT_CONTENTSCROLLED = &H8015
%EQUATE `EVENT_SYSTEM_ARRANGMENTPREVIEW = &H8016
%EQUATE `EVENT_OBJECT_END = &H80FF
%EQUATE `EVENT_AIA_START = &HA000
%EQUATE `EVENT_AIA_END = &HAFFF
' Child IDs
' System Sounds (idChild of system SOUND notification)
%EQUATE `SOUND_SYSTEM_STARTUP = 1
%EQUATE `SOUND_SYSTEM_SHUTDOWN = 2
%EQUATE `SOUND_SYSTEM_BEEP = 3
%EQUATE `SOUND_SYSTEM_ERROR = 4
%EQUATE `SOUND_SYSTEM_QUESTION = 5
%EQUATE `SOUND_SYSTEM_WARNING = 6
%EQUATE `SOUND_SYSTEM_INFORMATION = 7
%EQUATE `SOUND_SYSTEM_MAXIMIZE = 8
%EQUATE `SOUND_SYSTEM_MINIMIZE = 9
%EQUATE `SOUND_SYSTEM_RESTOREUP = 10
%EQUATE `SOUND_SYSTEM_RESTOREDOWN = 11
%EQUATE `SOUND_SYSTEM_APPSTART = 12
%EQUATE `SOUND_SYSTEM_FAULT = 13
%EQUATE `SOUND_SYSTEM_APPEND = 14
%EQUATE `SOUND_SYSTEM_MENUCOMMAND = 15
%EQUATE `SOUND_SYSTEM_MENUPOPUP = 16
%EQUATE `CSOUND_SYSTEM = 16
' System Alerts (indexChild of system ALERT notification)
%EQUATE `ALERT_SYSTEM_INFORMATIONAL = 1 ' MB_INFORMATION
%EQUATE `ALERT_SYSTEM_WARNING = 2 ' MB_WARNING
%EQUATE `ALERT_SYSTEM_ERROR = 3 ' MB_ERROR
%EQUATE `ALERT_SYSTEM_QUERY = 4 ' MB_QUESTION
%EQUATE `ALERT_SYSTEM_CRITICAL = 5 ' HardSysErrBox
%EQUATE `CALERT_SYSTEM = 6
%EQUATE `GUI_CARETBLINKING = &H00000001
%EQUATE `GUI_INMOVESIZE = &H00000002
%EQUATE `GUI_INMENUMODE = &H00000004
%EQUATE `GUI_SYSTEMMENUMODE = &H00000008
%EQUATE `GUI_POPUPMENUMODE = &H00000010
%EQUATE `GUI_16BITTASK = &H00000020
#IF NOT %DEF(%NO_STATE_FLAGS)
%EQUATE `STATE_SYSTEM_UNAVAILABLE = &H00000001 ' Disabled
%EQUATE `STATE_SYSTEM_SELECTED = &H00000002
%EQUATE `STATE_SYSTEM_FOCUSED = &H00000004
%EQUATE `STATE_SYSTEM_PRESSED = &H00000008
%EQUATE `STATE_SYSTEM_CHECKED = &H00000010
%EQUATE `STATE_SYSTEM_MIXED = &H00000020 ' 3-state checkbox or toolbar button
%EQUATE `STATE_SYSTEM_INDETERMINATE = %STATE_SYSTEM_MIXED
%EQUATE `STATE_SYSTEM_READONLY = &H00000040
%EQUATE `STATE_SYSTEM_HOTTRACKED = &H00000080
%EQUATE `STATE_SYSTEM_DEFAULT = &H00000100
%EQUATE `STATE_SYSTEM_EXPANDED = &H00000200
%EQUATE `STATE_SYSTEM_COLLAPSED = &H00000400
%EQUATE `STATE_SYSTEM_BUSY = &H00000800
%EQUATE `STATE_SYSTEM_FLOATING = &H00001000 ' Children "owned" not "contained" by parent
%EQUATE `STATE_SYSTEM_MARQUEED = &H00002000
%EQUATE `STATE_SYSTEM_ANIMATED = &H00004000
%EQUATE `STATE_SYSTEM_INVISIBLE = &H00008000
%EQUATE `STATE_SYSTEM_OFFSCREEN = &H00010000
%EQUATE `STATE_SYSTEM_SIZEABLE = &H00020000
%EQUATE `STATE_SYSTEM_MOVEABLE = &H00040000
%EQUATE `STATE_SYSTEM_SELFVOICING = &H00080000
%EQUATE `STATE_SYSTEM_FOCUSABLE = &H00100000
%EQUATE `STATE_SYSTEM_SELECTABLE = &H00200000
%EQUATE `STATE_SYSTEM_LINKED = &H00400000
%EQUATE `STATE_SYSTEM_TRAVERSED = &H00800000
%EQUATE `STATE_SYSTEM_MULTISELECTABLE = &H01000000 ' Supports multiple selection
%EQUATE `STATE_SYSTEM_EXTSELECTABLE = &H02000000 ' Supports extended selection
%EQUATE `STATE_SYSTEM_ALERT_LOW = &H04000000 ' This information is of low priority
%EQUATE `STATE_SYSTEM_ALERT_MEDIUM = &H08000000 ' This information is of medium priority
%EQUATE `STATE_SYSTEM_ALERT_HIGH = &H10000000 ' This information is of high priority
%EQUATE `STATE_SYSTEM_PROTECTED = &H20000000 ' access to this is restricted
%EQUATE `STATE_SYSTEM_VALID = &H3FFFFFFF
#ENDIF
%EQUATE `CCHILDREN_TITLEBAR = 5
%EQUATE `CCHILDREN_SCROLLBAR = 5
%EQUATE `CURSOR_SHOWING = &H00000001
%EQUATE `WS_ACTIVECAPTION = &H0001
' The input is in the regular message flow, the app is required to call
' DefWindowProc so that the system can perform clean ups.
%EQUATE `RIM_INPUT = 0
' The input is sink only. The app is expected
' to behave nicely, honoring RIM_FOREGROUND etc.
%EQUATE `RIM_INPUTSINK = 1
' Type of the raw input
%EQUATE `RIM_TYPEMOUSE = 0
%EQUATE `RIM_TYPEKEYBOARD = 1
%EQUATE `RIM_TYPEHID = 2
' Define the mouse button state indicators.
%EQUATE `RI_MOUSE_LEFT_BUTTON_DOWN = &H0001 ' Left Button changed to down.
%EQUATE `RI_MOUSE_LEFT_BUTTON_UP = &H0002 ' Left Button changed to up.
%EQUATE `RI_MOUSE_RIGHT_BUTTON_DOWN = &H0004 ' Right Button changed to down.
%EQUATE `RI_MOUSE_RIGHT_BUTTON_UP = &H0008 ' Right Button changed to up.
%EQUATE `RI_MOUSE_MIDDLE_BUTTON_DOWN = &H0010 ' Middle Button changed to down.
%EQUATE `RI_MOUSE_MIDDLE_BUTTON_UP = &H0020 ' Middle Button changed to up.
%EQUATE `RI_MOUSE_BUTTON_1_DOWN = %RI_MOUSE_LEFT_BUTTON_DOWN
%EQUATE `RI_MOUSE_BUTTON_1_UP = %RI_MOUSE_LEFT_BUTTON_UP
%EQUATE `RI_MOUSE_BUTTON_2_DOWN = %RI_MOUSE_RIGHT_BUTTON_DOWN
%EQUATE `RI_MOUSE_BUTTON_2_UP = %RI_MOUSE_RIGHT_BUTTON_UP
%EQUATE `RI_MOUSE_BUTTON_3_DOWN = %RI_MOUSE_MIDDLE_BUTTON_DOWN
%EQUATE `RI_MOUSE_BUTTON_3_UP = %RI_MOUSE_MIDDLE_BUTTON_UP
%EQUATE `RI_MOUSE_BUTTON_4_DOWN = &H0040
%EQUATE `RI_MOUSE_BUTTON_4_UP = &H0080
%EQUATE `RI_MOUSE_BUTTON_5_DOWN = &H0100
%EQUATE `RI_MOUSE_BUTTON_5_UP = &H0200
' If usButtonFlags has RI_MOUSE_WHEEL, the wheel delta is stored
' in usButtonData. Take it as a signed value.
%EQUATE `RI_MOUSE_WHEEL = &H0400
' Define the mouse indicator flags.
%EQUATE `MOUSE_MOVE_RELATIVE = 0
%EQUATE `MOUSE_MOVE_ABSOLUTE = 1
%EQUATE `MOUSE_VIRTUAL_DESKTOP = 2 ' the coordinates are mapped to the virtual desktop
%EQUATE `MOUSE_ATTRIBUTES_CHANGED = 4 ' requery for mouse attributes
%EQUATE `MOUSE_MOVE_NOCOALESCE = &H08 ' do not coalesce mouse moves
%EQUATE `KEYBOARD_OVERRUN_MAKE_CODE = &H00FF
' Define the keyboard input data Flags.
%EQUATE `RI_KEY_MAKE = &H0000
%EQUATE `RI_KEY_BREAK = &H0001
%EQUATE `RI_KEY_E0 = &H0002
%EQUATE `RI_KEY_E1 = &H0004
%EQUATE `RI_KEY_TERMSRV_SET_LED = &H0008
%EQUATE `RI_KEY_TERMSRV_SHADOW = &H0010
' Flags for GetRawInputData
%EQUATE `RID_INPUT = &H10000003
%EQUATE `RID_HEADER = &H10000005
' Raw Input Device Information
%EQUATE `RIDI_PREPARSEDDATA = &H20000005
%EQUATE `RIDI_DEVICENAME = &H20000007 ' the return value is the character length, not the byte size
%EQUATE `RIDI_DEVICEINFO = &H2000000b
%EQUATE `RIDEV_REMOVE = &H00000001
%EQUATE `RIDEV_EXCLUDE = &H00000010
%EQUATE `RIDEV_PAGEONLY = &H00000020
%EQUATE `RIDEV_NOLEGACY = &H00000030
%EQUATE `RIDEV_CAPTUREMOUSE = &H00000200 ' effective when mouse nolegacy is specified, otherwise it would be an error
%EQUATE `RIDEV_NOHOTKEYS = &H00000200 ' effective for keyboard.
%EQUATE `RIDEV_EXMODEMASK = &H000000F0
%EQUATE `WHEEL_DELTA = 120
%EQUATE `WHEEL_PAGESCROLL = &HFFFFFFFF ' (UINT_MAX)
' XButton values are WORD flags
%EQUATE `XBUTTON1 = &H0001
%EQUATE `XBUTTON2 = &H0002
' Were there to be an XBUTTON3, its value would be &H0004
' LOWORD(wParam) values in WM_*UISTATE*
%EQUATE `UIS_SET = 1
%EQUATE `UIS_CLEAR = 2
%EQUATE `UIS_INITIALIZE = 3
' HIWORD(wParam) values in WM_*UISTATE*
%EQUATE `UISF_HIDEFOCUS = &H1
%EQUATE `UISF_HIDEACCEL = &H2
%EQUATE `UISF_ACTIVE = &H4
' SystemParametersInfo flags
%EQUATE `SPIF_UPDATEINIFILE = &H1
%EQUATE `SPIF_SENDWININICHANGE = &H2
%EQUATE `SPIF_SENDCHANGE = %SPIF_SENDWININICHANGE
%EQUATE `ARW_BOTTOMLEFT = &H0000
%EQUATE `ARW_BOTTOMRIGHT = &H0001
%EQUATE `ARW_TOPLEFT = &H0002
%EQUATE `ARW_TOPRIGHT = &H0003
%EQUATE `ARW_STARTMASK = &H0003
%EQUATE `ARW_STARTRIGHT = &H0001
%EQUATE `ARW_STARTTOP = &H0002
%EQUATE `ARW_LEFT = &H0000
%EQUATE `ARW_RIGHT = &H0000
%EQUATE `ARW_UP = &H0004
%EQUATE `ARW_DOWN = &H0004
%EQUATE `ARW_HIDE = &H0008
' DDE window messages
%EQUATE `WM_DDE_FIRST = &H3E0
%EQUATE `WM_DDE_INITIATE = %WM_DDE_FIRST
%EQUATE `WM_DDE_TERMINATE = %WM_DDE_FIRST + 1
%EQUATE `WM_DDE_ADVISE = %WM_DDE_FIRST + 2
%EQUATE `WM_DDE_UNADVISE = %WM_DDE_FIRST + 3
%EQUATE `WM_DDE_ACK = %WM_DDE_FIRST + 4
%EQUATE `WM_DDE_DATA = %WM_DDE_FIRST + 5
%EQUATE `WM_DDE_REQUEST = %WM_DDE_FIRST + 6
%EQUATE `WM_DDE_POKE = %WM_DDE_FIRST + 7
%EQUATE `WM_DDE_EXECUTE = %WM_DDE_FIRST + 8
%EQUATE `WM_DDE_LAST = %WM_DDE_FIRST + 8
' conversation states (usState)
%EQUATE `XST_NULL = 0 ' quiescent states
%EQUATE `XST_INCOMPLETE = 1
%EQUATE `XST_CONNECTED = 2
%EQUATE `XST_INIT1 = 3 ' mid-initiation states
%EQUATE `XST_INIT2 = 4
%EQUATE `XST_REQSENT = 5 ' active conversation states
%EQUATE `XST_DATARCVD = 6
%EQUATE `XST_POKESENT = 7
%EQUATE `XST_POKEACKRCVD = 8
%EQUATE `XST_EXECSENT = 9
%EQUATE `XST_EXECACKRCVD = 10
%EQUATE `XST_ADVSENT = 11
%EQUATE `XST_UNADVSENT = 12
%EQUATE `XST_ADVACKRCVD = 13
%EQUATE `XST_UNADVACKRCVD = 14
%EQUATE `XST_ADVDATASENT = 15
%EQUATE `XST_ADVDATAACKRCVD = 16
' used in LOWORD(dwData1) of XTYP_ADVREQ callbacks...
%EQUATE `CADV_LATEACK = &HFFFF
' conversation status bits (fsStatus)
%EQUATE `ST_CONNECTED = &H1
%EQUATE `ST_ADVISE = &H2
%EQUATE `ST_ISLOCAL = &H4
%EQUATE `ST_BLOCKED = &H8
%EQUATE `ST_CLIENT = &H10
%EQUATE `ST_TERMINATED = &H20
%EQUATE `ST_INLIST = &H40
%EQUATE `ST_BLOCKNEXT = &H80
%EQUATE `ST_ISSELF = &H100
' DDE constants for wStatus field
%EQUATE `DDE_FACK = &H00008000
%EQUATE `DDE_FBUSY = &H00004000
%EQUATE `DDE_FDEFERUPD = &H00004000
%EQUATE `DDE_FACKREQ = &H00008000
%EQUATE `DDE_FRELEASE = &H00002000
%EQUATE `DDE_FREQUESTED = &H00001000
%EQUATE `DDE_FAPPSTATUS = &H000000FF
%EQUATE `DDE_FNOTPROCESSED = &H00000000
%EQUATE `DDE_FACKRESERVED = NOT (%DDE_FACK OR %DDE_FBUSY OR %DDE_FAPPSTATUS)
%EQUATE `DDE_FADVRESERVED = NOT (%DDE_FACKREQ OR %DDE_FDEFERUPD)
%EQUATE `DDE_FDATRESERVED = NOT (%DDE_FACKREQ OR %DDE_FRELEASE OR %DDE_FREQUESTED)
%EQUATE `DDE_FPOKRESERVED = NOT (%DDE_FRELEASE)
' codepage constants
%EQUATE `CP_WINANSI = 1004 ' default codepage for windows old DDE convs.
%EQUATE `CP_WINUNICODE = 1200
' transaction types
%EQUATE `XTYPF_NOBLOCK = &H2 ' CBR_BLOCK will not work
%EQUATE `XTYPF_NODATA = &H4 ' DDE_FDEFERUPD
%EQUATE `XTYPF_ACKREQ = &H8 ' DDE_FACKREQ
%EQUATE `XCLASS_MASK = &H0000FC00
%EQUATE `XCLASS_BOOL = &H00001000
%EQUATE `XCLASS_DATA = &H00002000
%EQUATE `XCLASS_FLAGS = &H00004000
%EQUATE `XCLASS_NOTIFICATION = &H00008000
%EQUATE `XTYP_ERROR = &H0 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
%EQUATE `XTYP_ADVDATA = &H10 OR %XCLASS_FLAGS
%EQUATE `XTYP_ADVREQ = &H20 OR %XCLASS_DATA OR %XTYPF_NOBLOCK
%EQUATE `XTYP_ADVSTART = &H30 OR %XCLASS_BOOL
%EQUATE `XTYP_ADVSTOP = &H40 OR %XCLASS_NOTIFICATION
%EQUATE `XTYP_EXECUTE = &H50 OR %XCLASS_FLAGS
%EQUATE `XTYP_CONNECT = &H60 OR %XCLASS_BOOL OR %XTYPF_NOBLOCK
%EQUATE `XTYP_CONNECT_CONFIRM = &H70 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
%EQUATE `XTYP_XACT_COMPLETE = &H80 OR %XCLASS_NOTIFICATION
%EQUATE `XTYP_POKE = &H90 OR %XCLASS_FLAGS
%EQUATE `XTYP_REGISTER = &HA0 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
%EQUATE `XTYP_REQUEST = &HB0 OR %XCLASS_DATA
%EQUATE `XTYP_DISCONNECT = &HC0 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
%EQUATE `XTYP_UNREGISTER = &HD0 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
%EQUATE `XTYP_WILDCONNECT = &HE0 OR %XCLASS_DATA OR %XTYPF_NOBLOCK
%EQUATE `XTYP_MASK = &HF0
%EQUATE `XTYP_SHIFT = 4 ' shift to turn XTYP_ into an index
' Timeout constants
%EQUATE `TIMEOUT_ASYNC = &HFFFFFFFF
' Transaction ID constants
%EQUATE `QID_SYNC = &HFFFFFFFF
%EQUATE `CBR_BLOCK = &HFFFFFFFF
' Callback filter flags for use with standard apps.
%EQUATE `CBF_FAIL_SELFCONNECTIONS = &H00001000
%EQUATE `CBF_FAIL_CONNECTIONS = &H00002000
%EQUATE `CBF_FAIL_ADVISES = &H00004000
%EQUATE `CBF_FAIL_EXECUTES = &H00008000
%EQUATE `CBF_FAIL_POKES = &H00010000
%EQUATE `CBF_FAIL_REQUESTS = &H00020000
%EQUATE `CBF_FAIL_ALLSVRXACTIONS = &H0003F000
%EQUATE `CBF_SKIP_CONNECT_CONFIRMS = &H00040000
%EQUATE `CBF_SKIP_REGISTRATIONS = &H00080000
%EQUATE `CBF_SKIP_UNREGISTRATIONS = &H00100000
%EQUATE `CBF_SKIP_DISCONNECTS = &H00200000
%EQUATE `CBF_SKIP_ALLNOTIFICATIONS = &H003C0000
' Application command flags
%EQUATE `APPCMD_CLIENTONLY = &H00000010&
%EQUATE `APPCMD_FILTERINITS = &H00000020&
%EQUATE `APPCMD_MASK = &H00000FF0&
' Application classification flags
%EQUATE `APPCLASS_STANDARD = &H0&
%EQUATE `APPCLASS_MASK = &HF&
%EQUATE `EC_ENABLEALL = 0
%EQUATE `EC_ENABLEONE = %ST_BLOCKNEXT
%EQUATE `EC_DISABLE = %ST_BLOCKED
%EQUATE `EC_QUERYWAITING = 2
%EQUATE `DNS_REGISTER = &H1
%EQUATE `DNS_UNREGISTER = &H2
%EQUATE `DNS_FILTERON = &H4
%EQUATE `DNS_FILTEROFF = &H8
%EQUATE `HDATA_APPOWNED = &H1
%EQUATE `DMLERR_NO_ERROR = 0 ' must be 0
%EQUATE `DMLERR_FIRST = &H4000
%EQUATE `DMLERR_ADVACKTIMEOUT = &H4000
%EQUATE `DMLERR_BUSY = &H4001
%EQUATE `DMLERR_DATAACKTIMEOUT = &H4002
%EQUATE `DMLERR_DLL_NOT_INITIALIZED = &H4003
%EQUATE `DMLERR_DLL_USAGE = &H4004
%EQUATE `DMLERR_EXECACKTIMEOUT = &H4005
%EQUATE `DMLERR_INVALIDPARAMETER = &H4006
%EQUATE `DMLERR_LOW_MEMORY = &H4007
%EQUATE `DMLERR_MEMORY_ERROR = &H4008
%EQUATE `DMLERR_NOTPROCESSED = &H4009
%EQUATE `DMLERR_NO_CONV_ESTABLISHED = &H400A
%EQUATE `DMLERR_POKEACKTIMEOUT = &H400B
%EQUATE `DMLERR_POSTMSG_FAILED = &H400C
%EQUATE `DMLERR_REENTRANCY = &H400D
%EQUATE `DMLERR_SERVER_DIED = &H400E
%EQUATE `DMLERR_SYS_ERROR = &H400F
%EQUATE `DMLERR_UNADVACKTIMEOUT = &H4010
%EQUATE `DMLERR_UNFOUND_QUEUE_ID = &H4011
%EQUATE `DMLERR_LAST = &H4011
%EQUATE `MH_CREATE = 1
%EQUATE `MH_KEEP = 2
%EQUATE `MH_DELETE = 3
%EQUATE `MH_CLEANUP = 4
%EQUATE `MAX_MONITORS = 4
%EQUATE `APPCLASS_MONITOR = &H1&
%EQUATE `XTYP_MONITOR = &HF0 OR %XCLASS_NOTIFICATION OR %XTYPF_NOBLOCK
' Callback filter flags for use with MONITOR apps - 0 implies no monitor callbacks
%EQUATE `MF_HSZ_INFO = &H1000000
%EQUATE `MF_SENDMSGS = &H2000000
%EQUATE `MF_POSTMSGS = &H4000000
%EQUATE `MF_CALLBACKS = &H8000000
%EQUATE `MF_ERRORS = &H10000000
%EQUATE `MF_LINKS = &H20000000
%EQUATE `MF_CONV = &H40000000
%EQUATE `MF_MASK = &HFF000000
%EQUATE `NO_ERROR = 0 ' dderror
' The configuration registry database operation completed successfully.
%EQUATE `ERROR_SUCCESS = 0&
%EQUATE `ERROR_INVALID_FUNCTION = 1& ' dderror
%EQUATE `ERROR_FILE_NOT_FOUND = 2&
%EQUATE `ERROR_PATH_NOT_FOUND = 3&
%EQUATE `ERROR_TOO_MANY_OPEN_FILES = 4&
%EQUATE `ERROR_ACCESS_DENIED = 5&
%EQUATE `ERROR_INVALID_HANDLE = 6&
%EQUATE `ERROR_ARENA_TRASHED = 7&
%EQUATE `ERROR_NOT_ENOUGH_MEMORY = 8& ' dderror
%EQUATE `ERROR_INVALID_BLOCK = 9&
%EQUATE `ERROR_BAD_ENVIRONMENT = 10&
%EQUATE `ERROR_BAD_FORMAT = 11&
%EQUATE `ERROR_INVALID_ACCESS = 12&
%EQUATE `ERROR_INVALID_DATA = 13&
%EQUATE `ERROR_OUTOFMEMORY = 14&
%EQUATE `ERROR_INVALID_DRIVE = 15&
%EQUATE `ERROR_CURRENT_DIRECTORY = 16&
%EQUATE `ERROR_NOT_SAME_DEVICE = 17&
%EQUATE `ERROR_NO_MORE_FILES = 18&
%EQUATE `ERROR_WRITE_PROTECT = 19&
%EQUATE `ERROR_BAD_UNIT = 20&
%EQUATE `ERROR_NOT_READY = 21&
%EQUATE `ERROR_BAD_COMMAND = 22&
%EQUATE `ERROR_CRC = 23&
%EQUATE `ERROR_BAD_LENGTH = 24&
%EQUATE `ERROR_SEEK = 25&
%EQUATE `ERROR_NOT_DOS_DISK = 26&
%EQUATE `ERROR_SECTOR_NOT_FOUND = 27&
%EQUATE `ERROR_OUT_OF_PAPER = 28&
%EQUATE `ERROR_WRITE_FAULT = 29&
%EQUATE `ERROR_READ_FAULT = 30&
%EQUATE `ERROR_GEN_FAILURE = 31&
%EQUATE `ERROR_SHARING_VIOLATION = 32&
%EQUATE `ERROR_LOCK_VIOLATION = 33&
%EQUATE `ERROR_WRONG_DISK = 34&
%EQUATE `ERROR_SHARING_BUFFER_EXCEEDED = 36&
%EQUATE `ERROR_HANDLE_EOF = 38&
%EQUATE `ERROR_HANDLE_DISK_FULL = 39&
%EQUATE `ERROR_NOT_SUPPORTED = 50&
%EQUATE `ERROR_REM_NOT_LIST = 51&
%EQUATE `ERROR_DUP_NAME = 52&
%EQUATE `ERROR_BAD_NETPATH = 53&
%EQUATE `ERROR_NETWORK_BUSY = 54&
%EQUATE `ERROR_DEV_NOT_EXIST = 55& ' dderror
%EQUATE `ERROR_TOO_MANY_CMDS = 56&
%EQUATE `ERROR_ADAP_HDW_ERR = 57&
%EQUATE `ERROR_BAD_NET_RESP = 58&
%EQUATE `ERROR_UNEXP_NET_ERR = 59&
%EQUATE `ERROR_BAD_REM_ADAP = 60&
%EQUATE `ERROR_PRINTQ_FULL = 61&
%EQUATE `ERROR_NO_SPOOL_SPACE = 62&
%EQUATE `ERROR_PRINT_CANCELLED = 63&
%EQUATE `ERROR_NETNAME_DELETED = 64&
%EQUATE `ERROR_NETWORK_ACCESS_DENIED = 65&
%EQUATE `ERROR_BAD_DEV_TYPE = 66&
%EQUATE `ERROR_BAD_NET_NAME = 67&
%EQUATE `ERROR_TOO_MANY_NAMES = 68&
%EQUATE `ERROR_TOO_MANY_SESS = 69&
%EQUATE `ERROR_SHARING_PAUSED = 70&
%EQUATE `ERROR_REQ_NOT_ACCEP = 71&
%EQUATE `ERROR_REDIR_PAUSED = 72&
%EQUATE `ERROR_FILE_EXISTS = 80&
%EQUATE `ERROR_CANNOT_MAKE = 82&
%EQUATE `ERROR_FAIL_I24 = 83&
%EQUATE `ERROR_OUT_OF_STRUCTURES = 84&
%EQUATE `ERROR_ALREADY_ASSIGNED = 85&
%EQUATE `ERROR_INVALID_PASSWORD = 86&
%EQUATE `ERROR_INVALID_PARAMETER = 87& ' dderror
%EQUATE `ERROR_NET_WRITE_FAULT = 88&
%EQUATE `ERROR_NO_PROC_SLOTS = 89&
%EQUATE `ERROR_TOO_MANY_SEMAPHORES = 100&
%EQUATE `ERROR_EXCL_SEM_ALREADY_OWNED = 101&
%EQUATE `ERROR_SEM_IS_SET = 102&
%EQUATE `ERROR_TOO_MANY_SEM_REQUESTS = 103&
%EQUATE `ERROR_INVALID_AT_INTERRUPT_TIME = 104&
%EQUATE `ERROR_SEM_OWNER_DIED = 105&
%EQUATE `ERROR_SEM_USER_LIMIT = 106&
%EQUATE `ERROR_DISK_CHANGE = 107&
%EQUATE `ERROR_DRIVE_LOCKED = 108&
%EQUATE `ERROR_BROKEN_PIPE = 109&
%EQUATE `ERROR_OPEN_FAILED = 110&
%EQUATE `ERROR_BUFFER_OVERFLOW = 111&
%EQUATE `ERROR_DISK_FULL = 112&
%EQUATE `ERROR_NO_MORE_SEARCH_HANDLES = 113&
%EQUATE `ERROR_INVALID_TARGET_HANDLE = 114&
%EQUATE `ERROR_INVALID_CATEGORY = 117&
%EQUATE `ERROR_INVALID_VERIFY_SWITCH = 118&
%EQUATE `ERROR_BAD_DRIVER_LEVEL = 119&
%EQUATE `ERROR_CALL_NOT_IMPLEMENTED = 120&
%EQUATE `ERROR_SEM_TIMEOUT = 121&
%EQUATE `ERROR_INSUFFICIENT_BUFFER = 122& ' dderror
%EQUATE `ERROR_INVALID_NAME = 123& ' dderror
%EQUATE `ERROR_INVALID_LEVEL = 124&
%EQUATE `ERROR_NO_VOLUME_LABEL = 125&
%EQUATE `ERROR_MOD_NOT_FOUND = 126&
%EQUATE `ERROR_PROC_NOT_FOUND = 127&
%EQUATE `ERROR_WAIT_NO_CHILDREN = 128&
%EQUATE `ERROR_CHILD_NOT_COMPLETE = 129&
%EQUATE `ERROR_DIRECT_ACCESS_HANDLE = 130&
%EQUATE `ERROR_NEGATIVE_SEEK = 131&
%EQUATE `ERROR_SEEK_ON_DEVICE = 132&
%EQUATE `ERROR_IS_JOIN_TARGET = 133&
%EQUATE `ERROR_IS_JOINED = 134&
%EQUATE `ERROR_IS_SUBSTED = 135&
%EQUATE `ERROR_NOT_JOINED = 136&
%EQUATE `ERROR_NOT_SUBSTED = 137&
%EQUATE `ERROR_JOIN_TO_JOIN = 138&
%EQUATE `ERROR_SUBST_TO_SUBST = 139&
%EQUATE `ERROR_JOIN_TO_SUBST = 140&
%EQUATE `ERROR_SUBST_TO_JOIN = 141&
%EQUATE `ERROR_BUSY_DRIVE = 142&
%EQUATE `ERROR_SAME_DRIVE = 143&
%EQUATE `ERROR_DIR_NOT_ROOT = 144&
%EQUATE `ERROR_DIR_NOT_EMPTY = 145&
%EQUATE `ERROR_IS_SUBST_PATH = 146&
%EQUATE `ERROR_IS_JOIN_PATH = 147&
%EQUATE `ERROR_PATH_BUSY = 148&
%EQUATE `ERROR_IS_SUBST_TARGET = 149&
%EQUATE `ERROR_SYSTEM_TRACE = 150&
%EQUATE `ERROR_INVALID_EVENT_COUNT = 151&
%EQUATE `ERROR_TOO_MANY_MUXWAITERS = 152&
%EQUATE `ERROR_INVALID_LIST_FORMAT = 153&
%EQUATE `ERROR_LABEL_TOO_LONG = 154&
%EQUATE `ERROR_TOO_MANY_TCBS = 155&
%EQUATE `ERROR_SIGNAL_REFUSED = 156&
%EQUATE `ERROR_DISCARDED = 157&
%EQUATE `ERROR_NOT_LOCKED = 158&
%EQUATE `ERROR_BAD_THREADID_ADDR = 159&
%EQUATE `ERROR_BAD_ARGUMENTS = 160&
%EQUATE `ERROR_BAD_PATHNAME = 161&
%EQUATE `ERROR_SIGNAL_PENDING = 162&
%EQUATE `ERROR_MAX_THRDS_REACHED = 164&
%EQUATE `ERROR_LOCK_FAILED = 167&
%EQUATE `ERROR_BUSY = 170&
%EQUATE `ERROR_CANCEL_VIOLATION = 173&
%EQUATE `ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174&
%EQUATE `ERROR_INVALID_SEGMENT_NUMBER = 180&
%EQUATE `ERROR_INVALID_ORDINAL = 182&
%EQUATE `ERROR_ALREADY_EXISTS = 183&
%EQUATE `ERROR_INVALID_FLAG_NUMBER = 186&
%EQUATE `ERROR_SEM_NOT_FOUND = 187&
%EQUATE `ERROR_INVALID_STARTING_CODESEG = 188&
%EQUATE `ERROR_INVALID_STACKSEG = 189&
%EQUATE `ERROR_INVALID_MODULETYPE = 190&
%EQUATE `ERROR_INVALID_EXE_SIGNATURE = 191&
%EQUATE `ERROR_EXE_MARKED_INVALID = 192&
%EQUATE `ERROR_BAD_EXE_FORMAT = 193&
%EQUATE `ERROR_ITERATED_DATA_EXCEEDS_64k = 194&
%EQUATE `ERROR_INVALID_MINALLOCSIZE = 195&
%EQUATE `ERROR_DYNLINK_FROM_INVALID_RING = 196&
%EQUATE `ERROR_IOPL_NOT_ENABLED = 197&
%EQUATE `ERROR_INVALID_SEGDPL = 198&
%EQUATE `ERROR_AUTODATASEG_EXCEEDS_64k = 199&
%EQUATE `ERROR_RING2SEG_MUST_BE_MOVABLE = 200&
%EQUATE `ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201&
%EQUATE `ERROR_INFLOOP_IN_RELOC_CHAIN = 202&
%EQUATE `ERROR_ENVVAR_NOT_FOUND = 203&
%EQUATE `ERROR_NO_SIGNAL_SENT = 205&
%EQUATE `ERROR_FILENAME_EXCED_RANGE = 206&
%EQUATE `ERROR_RING2_STACK_IN_USE = 207&
%EQUATE `ERROR_META_EXPANSION_TOO_LONG = 208&
%EQUATE `ERROR_INVALID_SIGNAL_NUMBER = 209&
%EQUATE `ERROR_THREAD_1_INACTIVE = 210&
%EQUATE `ERROR_LOCKED = 212&
%EQUATE `ERROR_TOO_MANY_MODULES = 214&
%EQUATE `ERROR_NESTING_NOT_ALLOWED = 215&
%EQUATE `ERROR_EXE_MACHINE_TYPE_MISMATCH = 216&
%EQUATE `ERROR_BAD_PIPE = 230&
%EQUATE `ERROR_PIPE_BUSY = 231&
%EQUATE `ERROR_NO_DATA = 232&
%EQUATE `ERROR_PIPE_NOT_CONNECTED = 233&
%EQUATE `ERROR_MORE_DATA = 234& ' dderror
%EQUATE `ERROR_VC_DISCONNECTED = 240&
%EQUATE `ERROR_INVALID_EA_NAME = 254&
%EQUATE `ERROR_EA_LIST_INCONSISTENT = 255&
%EQUATE `WAIT_TIMEOUT = 258&
%EQUATE `ERROR_NO_MORE_ITEMS = 259&
%EQUATE `ERROR_CANNOT_COPY = 266&
%EQUATE `ERROR_DIRECTORY = 267&
%EQUATE `ERROR_EAS_DIDNT_FIT = 275&
%EQUATE `ERROR_EA_FILE_CORRUPT = 276&
%EQUATE `ERROR_EA_TABLE_FULL = 277&
%EQUATE `ERROR_INVALID_EA_HANDLE = 278&
%EQUATE `ERROR_EAS_NOT_SUPPORTED = 282&
%EQUATE `ERROR_NOT_OWNER = 288&
%EQUATE `ERROR_TOO_MANY_POSTS = 298&
%EQUATE `ERROR_PARTIAL_COPY = 299&
%EQUATE `ERROR_OPLOCK_NOT_GRANTED = 300&
%EQUATE `ERROR_INVALID_OPLOCK_PROTOCOL = 301&
%EQUATE `ERROR_MR_MID_NOT_FOUND = 317&
%EQUATE `ERROR_INVALID_ADDRESS = 487&
%EQUATE `ERROR_ARITHMETIC_OVERFLOW = 534&
%EQUATE `ERROR_PIPE_CONNECTED = 535&
%EQUATE `ERROR_PIPE_LISTENING = 536&
%EQUATE `ERROR_EA_ACCESS_DENIED = 994&
%EQUATE `ERROR_OPERATION_ABORTED = 995&
%EQUATE `ERROR_IO_INCOMPLETE = 996&
%EQUATE `ERROR_IO_PENDING = 997& ' dderror
%EQUATE `ERROR_NOACCESS = 998&
%EQUATE `ERROR_SWAPERROR = 999&
%EQUATE `ERROR_STACK_OVERFLOW = 1001&
%EQUATE `ERROR_INVALID_MESSAGE = 1002&
%EQUATE `ERROR_CAN_NOT_COMPLETE = 1003&
%EQUATE `ERROR_INVALID_FLAGS = 1004&
%EQUATE `ERROR_UNRECOGNIZED_VOLUME = 1005&
%EQUATE `ERROR_FILE_INVALID = 1006&
%EQUATE `ERROR_FULLSCREEN_MODE = 1007&
%EQUATE `ERROR_NO_TOKEN = 1008&
%EQUATE `ERROR_BADDB = 1009&
%EQUATE `ERROR_BADKEY = 1010&
%EQUATE `ERROR_CANTOPEN = 1011&
%EQUATE `ERROR_CANTREAD = 1012&
%EQUATE `ERROR_CANTWRITE = 1013&
%EQUATE `ERROR_REGISTRY_RECOVERED = 1014&
%EQUATE `ERROR_REGISTRY_CORRUPT = 1015&
%EQUATE `ERROR_REGISTRY_IO_FAILED = 1016&
%EQUATE `ERROR_NOT_REGISTRY_FILE = 1017&
%EQUATE `ERROR_KEY_DELETED = 1018&
%EQUATE `ERROR_NO_LOG_SPACE = 1019&
%EQUATE `ERROR_KEY_HAS_CHILDREN = 1020&
%EQUATE `ERROR_CHILD_MUST_BE_VOLATILE = 1021&
%EQUATE `ERROR_NOTIFY_ENUM_DIR = 1022&
%EQUATE `ERROR_DEPENDENT_SERVICES_RUNNING = 1051&
%EQUATE `ERROR_INVALID_SERVICE_CONTROL = 1052&
%EQUATE `ERROR_SERVICE_REQUEST_TIMEOUT = 1053&
%EQUATE `ERROR_SERVICE_NO_THREAD = 1054&
%EQUATE `ERROR_SERVICE_DATABASE_LOCKED = 1055&
%EQUATE `ERROR_SERVICE_ALREADY_RUNNING = 1056&
%EQUATE `ERROR_INVALID_SERVICE_ACCOUNT = 1057&
%EQUATE `ERROR_SERVICE_DISABLED = 1058&
%EQUATE `ERROR_CIRCULAR_DEPENDENCY = 1059&
%EQUATE `ERROR_SERVICE_DOES_NOT_EXIST = 1060&
%EQUATE `ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061&
%EQUATE `ERROR_SERVICE_NOT_ACTIVE = 1062&
%EQUATE `ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063&
%EQUATE `ERROR_EXCEPTION_IN_SERVICE = 1064&
%EQUATE `ERROR_DATABASE_DOES_NOT_EXIST = 1065&
%EQUATE `ERROR_SERVICE_SPECIFIC_ERROR = 1066&
%EQUATE `ERROR_PROCESS_ABORTED = 1067&
%EQUATE `ERROR_SERVICE_DEPENDENCY_FAIL = 1068&
%EQUATE `ERROR_SERVICE_LOGON_FAILED = 1069&
%EQUATE `ERROR_SERVICE_START_HANG = 1070&
%EQUATE `ERROR_INVALID_SERVICE_LOCK = 1071&
%EQUATE `ERROR_SERVICE_MARKED_FOR_DELETE = 1072&
%EQUATE `ERROR_SERVICE_EXISTS = 1073&
%EQUATE `ERROR_ALREADY_RUNNING_LKG = 1074&
%EQUATE `ERROR_SERVICE_DEPENDENCY_DELETED = 1075&
%EQUATE `ERROR_BOOT_ALREADY_ACCEPTED = 1076&
%EQUATE `ERROR_SERVICE_NEVER_STARTED = 1077&
%EQUATE `ERROR_DUPLICATE_SERVICE_NAME = 1078&
%EQUATE `ERROR_DIFFERENT_SERVICE_ACCOUNT = 1079&
%EQUATE `ERROR_CANNOT_DETECT_DRIVER_FAILURE = 1080&
%EQUATE `ERROR_CANNOT_DETECT_PROCESS_ABORT = 1081&
%EQUATE `ERROR_NO_RECOVERY_PROGRAM = 1082&
%EQUATE `ERROR_SERVICE_NOT_IN_EXE = 1083&
%EQUATE `ERROR_END_OF_MEDIA = 1100&
%EQUATE `ERROR_FILEMARK_DETECTED = 1101&
%EQUATE `ERROR_BEGINNING_OF_MEDIA = 1102&
%EQUATE `ERROR_SETMARK_DETECTED = 1103&
%EQUATE `ERROR_NO_DATA_DETECTED = 1104&
%EQUATE `ERROR_PARTITION_FAILURE = 1105&
%EQUATE `ERROR_INVALID_BLOCK_LENGTH = 1106&
%EQUATE `ERROR_DEVICE_NOT_PARTITIONED = 1107&
%EQUATE `ERROR_UNABLE_TO_LOCK_MEDIA = 1108&
%EQUATE `ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109&
%EQUATE `ERROR_MEDIA_CHANGED = 1110&
%EQUATE `ERROR_BUS_RESET = 1111&
%EQUATE `ERROR_NO_MEDIA_IN_DRIVE = 1112&
%EQUATE `ERROR_NO_UNICODE_TRANSLATION = 1113&
%EQUATE `ERROR_DLL_INIT_FAILED = 1114&
%EQUATE `ERROR_SHUTDOWN_IN_PROGRESS = 1115&
%EQUATE `ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116&
%EQUATE `ERROR_IO_DEVICE = 1117&
%EQUATE `ERROR_SERIAL_NO_DEVICE = 1118&
%EQUATE `ERROR_IRQ_BUSY = 1119&
%EQUATE `ERROR_MORE_WRITES = 1120&
%EQUATE `ERROR_COUNTER_TIMEOUT = 1121&
%EQUATE `ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122&
%EQUATE `ERROR_FLOPPY_WRONG_CYLINDER = 1123&
%EQUATE `ERROR_FLOPPY_UNKNOWN_ERROR = 1124&
%EQUATE `ERROR_FLOPPY_BAD_REGISTERS = 1125&
%EQUATE `ERROR_DISK_RECALIBRATE_FAILED = 1126&
%EQUATE `ERROR_DISK_OPERATION_FAILED = 1127&
%EQUATE `ERROR_DISK_RESET_FAILED = 1128&
%EQUATE `ERROR_EOM_OVERFLOW = 1129&
%EQUATE `ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130&
%EQUATE `ERROR_POSSIBLE_DEADLOCK = 1131&
%EQUATE `ERROR_MAPPED_ALIGNMENT = 1132&
%EQUATE `ERROR_SET_POWER_STATE_VETOED = 1140&
%EQUATE `ERROR_SET_POWER_STATE_FAILED = 1141&
%EQUATE `ERROR_TOO_MANY_LINKS = 1142&
%EQUATE `ERROR_OLD_WIN_VERSION = 1150&
%EQUATE `ERROR_APP_WRONG_OS = 1151&
%EQUATE `ERROR_SINGLE_INSTANCE_APP = 1152&
%EQUATE `ERROR_RMODE_APP = 1153&
%EQUATE `ERROR_INVALID_DLL = 1154&
%EQUATE `ERROR_NO_ASSOCIATION = 1155&
%EQUATE `ERROR_DDE_FAIL = 1156&
%EQUATE `ERROR_DLL_NOT_FOUND = 1157&
%EQUATE `ERROR_NO_MORE_USER_HANDLES = 1158&
%EQUATE `ERROR_MESSAGE_SYNC_ONLY = 1159&
%EQUATE `ERROR_SOURCE_ELEMENT_EMPTY = 1160&
%EQUATE `ERROR_DESTINATION_ELEMENT_FULL = 1161&
%EQUATE `ERROR_ILLEGAL_ELEMENT_ADDRESS = 1162&
%EQUATE `ERROR_MAGAZINE_NOT_PRESENT = 1163&
%EQUATE `ERROR_DEVICE_REINITIALIZATION_NEEDED = 1164& ' dderror
%EQUATE `ERROR_DEVICE_REQUIRES_CLEANING = 1165&
%EQUATE `ERROR_DEVICE_DOOR_OPEN = 1166&
%EQUATE `ERROR_DEVICE_NOT_CONNECTED = 1167&
%EQUATE `ERROR_NOT_FOUND = 1168&
%EQUATE `ERROR_NO_MATCH = 1169&
%EQUATE `ERROR_SET_NOT_FOUND = 1170&
%EQUATE `ERROR_POINT_NOT_FOUND = 1171&
%EQUATE `ERROR_NO_TRACKING_SERVICE = 1172&
%EQUATE `ERROR_NO_VOLUME_ID = 1173&
%EQUATE `ERROR_INVALID_VLM_OPERATION = 1174&
%EQUATE `ERROR_UNABLE_TO_REMOVE_REPLACED = 1175&
%EQUATE `ERROR_UNABLE_TO_MOVE_REPLACEMENT = 1176&
%EQUATE `ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177&
%EQUATE `ERROR_JOURNAL_DELETE_IN_PROGRESS = 1178&
%EQUATE `ERROR_JOURNAL_NOT_ACTIVE = 1179&
%EQUATE `ERROR_POTENTIAL_FILE_FOUND = 1180&
%EQUATE `ERROR_JOURNAL_ENTRY_DELETED = 1181&
%EQUATE `ERROR_CANCELLED = 1223&
%EQUATE `ERROR_USER_MAPPED_FILE = 1224&
%EQUATE `ERROR_CONNECTION_REFUSED = 1225&
%EQUATE `ERROR_GRACEFUL_DISCONNECT = 1226&
%EQUATE `ERROR_ADDRESS_ALREADY_ASSOCIATED = 1227&
%EQUATE `ERROR_ADDRESS_NOT_ASSOCIATED = 1228&
%EQUATE `ERROR_CONNECTION_INVALID = 1229&
%EQUATE `ERROR_CONNECTION_ACTIVE = 1230&
%EQUATE `ERROR_NETWORK_UNREACHABLE = 1231&
%EQUATE `ERROR_HOST_UNREACHABLE = 1232&
%EQUATE `ERROR_PROTOCOL_UNREACHABLE = 1233&
%EQUATE `ERROR_PORT_UNREACHABLE = 1234&
%EQUATE `ERROR_REQUEST_ABORTED = 1235&
%EQUATE `ERROR_CONNECTION_ABORTED = 1236&
%EQUATE `ERROR_RETRY = 1237&
%EQUATE `ERROR_CONNECTION_COUNT_LIMIT = 1238&
%EQUATE `ERROR_LOGIN_TIME_RESTRICTION = 1239&
%EQUATE `ERROR_LOGIN_WKSTA_RESTRICTION = 1240&
%EQUATE `ERROR_INCORRECT_ADDRESS = 1241&
%EQUATE `ERROR_ALREADY_REGISTERED = 1242&
%EQUATE `ERROR_SERVICE_NOT_FOUND = 1243&
%EQUATE `ERROR_NOT_AUTHENTICATED = 1244&
%EQUATE `ERROR_NOT_LOGGED_ON = 1245&
%EQUATE `ERROR_CONTINUE = 1246& ' dderror
%EQUATE `ERROR_ALREADY_INITIALIZED = 1247&
%EQUATE `ERROR_NO_MORE_DEVICES = 1248& ' dderror
%EQUATE `ERROR_NO_SUCH_SITE = 1249&
%EQUATE `ERROR_DOMAIN_CONTROLLER_EXISTS = 1250&
%EQUATE `ERROR_ONLY_IF_CONNECTED = 1251&
%EQUATE `ERROR_OVERRIDE_NOCHANGES = 1252&
%EQUATE `ERROR_BAD_USER_PROFILE = 1253&
%EQUATE `ERROR_NOT_SUPPORTED_ON_SBS = 1254&
%EQUATE `ERROR_LICENSE_QUOTA_EXCEEDED = 1395&
%EQUATE `ERROR_WRONG_TARGET_NAME = 1396&
%EQUATE `ERROR_MUTUAL_AUTH_FAILED = 1397&
%EQUATE `ERROR_TIME_SKEW = 1398&
%EQUATE `ERROR_GLOBAL_ONLY_HOOK = 1429&
%EQUATE `ERROR_NO_SYSTEM_RESOURCES = 1450&
%EQUATE `ERROR_NONPAGED_SYSTEM_RESOURCES = 1451&
%EQUATE `ERROR_PAGED_SYSTEM_RESOURCES = 1452&
%EQUATE `ERROR_WORKING_SET_QUOTA = 1453&
%EQUATE `ERROR_PAGEFILE_QUOTA = 1454&
%EQUATE `ERROR_COMMITMENT_LIMIT = 1455&
%EQUATE `ERROR_MENU_ITEM_NOT_FOUND = 1456&
%EQUATE `ERROR_INVALID_KEYBOARD_HANDLE = 1457&
%EQUATE `ERROR_HOOK_TYPE_NOT_ALLOWED = 1458&
%EQUATE `ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION = 1459&
%EQUATE `ERROR_TIMEOUT = 1460&
%EQUATE `ERROR_INVALID_MONITOR_HANDLE = 1461&
%EQUATE `ERROR_INSTALL_SERVICE_FAILURE = 1601&
%EQUATE `ERROR_INSTALL_USEREXIT = 1602&
%EQUATE `ERROR_INSTALL_FAILURE = 1603&
%EQUATE `ERROR_INSTALL_SUSPEND = 1604&
%EQUATE `ERROR_UNKNOWN_PRODUCT = 1605&
%EQUATE `ERROR_UNKNOWN_FEATURE = 1606&
%EQUATE `ERROR_UNKNOWN_COMPONENT = 1607&
%EQUATE `ERROR_UNKNOWN_PROPERTY = 1608&
%EQUATE `ERROR_INVALID_HANDLE_STATE = 1609&
%EQUATE `ERROR_BAD_CONFIGURATION = 1610&
%EQUATE `ERROR_INDEX_ABSENT = 1611&
%EQUATE `ERROR_INSTALL_SOURCE_ABSENT = 1612&
%EQUATE `ERROR_INSTALL_PACKAGE_VERSION = 1613&
%EQUATE `ERROR_PRODUCT_UNINSTALLED = 1614&
%EQUATE `ERROR_BAD_QUERY_SYNTAX = 1615&
%EQUATE `ERROR_INVALID_FIELD = 1616&
%EQUATE `ERROR_DEVICE_REMOVED = 1617&
%EQUATE `ERROR_INSTALL_ALREADY_RUNNING = 1618&
%EQUATE `ERROR_INSTALL_PACKAGE_OPEN_FAILED = 1619&
%EQUATE `ERROR_INSTALL_PACKAGE_INVALID = 1620&
%EQUATE `ERROR_INSTALL_UI_FAILURE = 1621&
%EQUATE `ERROR_INSTALL_LOG_FAILURE = 1622&
%EQUATE `ERROR_INSTALL_LANGUAGE_UNSUPPORTED = 1623&
%EQUATE `ERROR_INSTALL_TRANSFORM_FAILURE = 1624&
%EQUATE `ERROR_INSTALL_PACKAGE_REJECTED = 1625&
%EQUATE `ERROR_FUNCTION_NOT_CALLED = 1626&
%EQUATE `ERROR_FUNCTION_FAILED = 1627&
%EQUATE `ERROR_INVALID_TABLE = 1628&
%EQUATE `ERROR_DATATYPE_MISMATCH = 1629&
%EQUATE `ERROR_UNSUPPORTED_TYPE = 1630&
%EQUATE `ERROR_CREATE_FAILED = 1631&
%EQUATE `ERROR_INSTALL_TEMP_UNWRITABLE = 1632&
%EQUATE `ERROR_INSTALL_PLATFORM_UNSUPPORTED = 1633&
%EQUATE `ERROR_INSTALL_NOTUSED = 1634&
%EQUATE `ERROR_PATCH_PACKAGE_OPEN_FAILED = 1635&
%EQUATE `ERROR_PATCH_PACKAGE_INVALID = 1636&
%EQUATE `ERROR_PATCH_PACKAGE_UNSUPPORTED = 1637&
%EQUATE `ERROR_PRODUCT_VERSION = 1638&
%EQUATE `ERROR_INVALID_COMMAND_LINE = 1639&
%EQUATE `ERROR_INSTALL_REMOTE_DISALLOWED = 1640&
%EQUATE `ERROR_SUCCESS_REBOOT_INITIATED = 1641&
%EQUATE `ERROR_PATCH_TARGET_NOT_FOUND = 1642&
%EQUATE `SEVERITY_SUCCESS = 0
%EQUATE `SEVERITY_ERROR = 1
%EQUATE `FACILITY_NT_BIT = &H10000000
%EQUATE `NOERROR = 0
' Error codes need to be LONG due to quirky HRESULT definition
%EQUATE `E_PENDING = &H8000000A&
%EQUATE `CO_E_INIT_TLS = &H80004006&
%EQUATE `CO_E_INIT_SHARED_ALLOCATOR = &H80004007&
%EQUATE `CO_E_INIT_MEMORY_ALLOCATOR = &H80004008&
%EQUATE `CO_E_INIT_CLASS_CACHE = &H80004009&
%EQUATE `CO_E_INIT_RPC_CHANNEL = &H8000400A&
%EQUATE `CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B&
%EQUATE `CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C&
%EQUATE `CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D&
%EQUATE `CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E&
%EQUATE `CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F&
%EQUATE `CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010&
%EQUATE `CO_E_INIT_SCM_EXEC_FAILURE = &H80004011&
%EQUATE `CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012&
%EQUATE `OLE_E_FIRST = &H80040000&
%EQUATE `OLE_E_LAST = &H800400FF&
%EQUATE `OLE_S_FIRST = &H40000
%EQUATE `OLE_S_LAST = &H400FF
%EQUATE `OLE_E_OLEVERB = &H80040000&
%EQUATE `OLE_E_ADVF = &H80040001&
%EQUATE `OLE_E_ENUM_NOMORE = &H80040002&
%EQUATE `OLE_E_ADVISENOTSUPPORTED = &H80040003&
%EQUATE `OLE_E_NOCONNECTION = &H80040004&
%EQUATE `OLE_E_NOTRUNNING = &H80040005&
%EQUATE `OLE_E_NOCACHE = &H80040006&
%EQUATE `OLE_E_BLANK = &H80040007&
%EQUATE `OLE_E_CLASSDIFF = &H80040008&
%EQUATE `OLE_E_CANT_GETMONIKER = &H80040009&
%EQUATE `OLE_E_CANT_BINDTOSOURCE = &H8004000A&
%EQUATE `OLE_E_STATIC = &H8004000B&
%EQUATE `OLE_E_PROMPTSAVECANCELLED = &H8004000C&
%EQUATE `OLE_E_INVALIDRECT = &H8004000D&
%EQUATE `OLE_E_WRONGCOMPOBJ = &H8004000E&
%EQUATE `OLE_E_INVALIDHWND = &H8004000F&
%EQUATE `OLE_E_NOT_INPLACEACTIVE = &H80040010&
%EQUATE `OLE_E_CANTCONVERT = &H80040011&
%EQUATE `OLE_E_NOSTORAGE = &H80040012&
%EQUATE `DV_E_FORMATETC = &H80040064&
%EQUATE `DV_E_DVTARGETDEVICE = &H80040065&
%EQUATE `DV_E_STGMEDIUM = &H80040066&
%EQUATE `DV_E_STATDATA = &H80040067&
%EQUATE `DV_E_LINDEX = &H80040068&
%EQUATE `DV_E_TYMED = &H80040069&
%EQUATE `DV_E_CLIPFORMAT = &H8004006A&
%EQUATE `DV_E_DVASPECT = &H8004006B&
%EQUATE `DV_E_DVTARGETDEVICE_SIZE = &H8004006C&
%EQUATE `DV_E_NOIVIEWOBJECT = &H8004006D&
%EQUATE `DRAGDROP_E_FIRST = &H80040100&
%EQUATE `DRAGDROP_E_LAST = &H8004010F&
%EQUATE `DRAGDROP_S_FIRST = &H40100
%EQUATE `DRAGDROP_S_LAST = &H4010F
%EQUATE `DRAGDROP_E_NOTREGISTERED = &H80040100&
%EQUATE `DRAGDROP_E_ALREADYREGISTERED = &H80040101&
%EQUATE `DRAGDROP_E_INVALIDHWND = &H80040102&
%EQUATE `CLASSFACTORY_E_FIRST = &H80040110&
%EQUATE `CLASSFACTORY_E_LAST = &H8004011F&
%EQUATE `CLASSFACTORY_S_FIRST = &H40110
%EQUATE `CLASSFACTORY_S_LAST = &H4011F
%EQUATE `CLASS_E_NOAGGREGATION = &H80040110&
%EQUATE `CLASS_E_CLASSNOTAVAILABLE = &H80040111&
%EQUATE `MARSHAL_E_FIRST = &H80040120&
%EQUATE `MARSHAL_E_LAST = &H8004012F&
%EQUATE `MARSHAL_S_FIRST = &H40120
%EQUATE `MARSHAL_S_LAST = &H4012F
%EQUATE `DATA_E_FIRST = &H80040130&
%EQUATE `DATA_E_LAST = &H8004013F&
%EQUATE `DATA_S_FIRST = &H40130
%EQUATE `DATA_S_LAST = &H4013F
%EQUATE `VIEW_E_FIRST = &H80040140&
%EQUATE `VIEW_E_LAST = &H8004014F&
%EQUATE `VIEW_S_FIRST = &H40140
%EQUATE `VIEW_S_LAST = &H4014F
%EQUATE `VIEW_E_DRAW = &H80040140&
%EQUATE `REGDB_E_FIRST = &H80040150&
%EQUATE `REGDB_E_LAST = &H8004015F&
%EQUATE `REGDB_S_FIRST = &H40150
%EQUATE `REGDB_S_LAST = &H4015F
%EQUATE `REGDB_E_READREGDB = &H80040150&
%EQUATE `REGDB_E_WRITEREGDB = &H80040151&
%EQUATE `REGDB_E_KEYMISSING = &H80040152&
%EQUATE `REGDB_E_INVALIDVALUE = &H80040153&
%EQUATE `REGDB_E_CLASSNOTREG = &H80040154&
%EQUATE `REGDB_E_IIDNOTREG = &H80040155&
%EQUATE `CACHE_E_FIRST = &H80040170&
%EQUATE `CACHE_E_LAST = &H8004017F&
%EQUATE `CACHE_S_FIRST = &H40170
%EQUATE `CACHE_S_LAST = &H4017F
%EQUATE `CACHE_E_NOCACHE_UPDATED = &H80040170&
%EQUATE `OLEOBJ_E_FIRST = &H80040180&
%EQUATE `OLEOBJ_E_LAST = &H8004018F&
%EQUATE `OLEOBJ_S_FIRST = &H40180
%EQUATE `OLEOBJ_S_LAST = &H4018F
%EQUATE `OLEOBJ_E_NOVERBS = &H80040180&
%EQUATE `OLEOBJ_E_INVALIDVERB = &H80040181&
%EQUATE `CLIENTSITE_E_FIRST = &H80040190&
%EQUATE `CLIENTSITE_E_LAST = &H8004019F&
%EQUATE `CLIENTSITE_S_FIRST = &H40190
%EQUATE `CLIENTSITE_S_LAST = &H4019F
%EQUATE `INPLACE_E_NOTUNDOABLE = &H800401A0&
%EQUATE `INPLACE_E_NOTOOLSPACE = &H800401A1&
%EQUATE `INPLACE_E_FIRST = &H800401A0&
%EQUATE `INPLACE_E_LAST = &H800401AF&
%EQUATE `INPLACE_S_FIRST = &H401A0
%EQUATE `INPLACE_S_LAST = &H401AF
%EQUATE `ENUM_E_FIRST = &H800401B0&
%EQUATE `ENUM_E_LAST = &H800401BF&
%EQUATE `ENUM_S_FIRST = &H401B0
%EQUATE `ENUM_S_LAST = &H401BF
%EQUATE `CONVERT10_E_FIRST = &H800401C0&
%EQUATE `CONVERT10_E_LAST = &H800401CF&
%EQUATE `CONVERT10_S_FIRST = &H401C0
%EQUATE `CONVERT10_S_LAST = &H401CF
%EQUATE `CONVERT10_E_OLESTREAM_GET = &H800401C0&
%EQUATE `CONVERT10_E_OLESTREAM_PUT = &H800401C1&
%EQUATE `CONVERT10_E_OLESTREAM_FMT = &H800401C2&
%EQUATE `CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3&
%EQUATE `CONVERT10_E_STG_FMT = &H800401C4&
%EQUATE `CONVERT10_E_STG_NO_STD_STREAM = &H800401C5&
%EQUATE `CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6&
%EQUATE `CLIPBRD_E_FIRST = &H800401D0&
%EQUATE `CLIPBRD_E_LAST = &H800401DF&
%EQUATE `CLIPBRD_S_FIRST = &H401D0
%EQUATE `CLIPBRD_S_LAST = &H401DF
%EQUATE `CLIPBRD_E_CANT_OPEN = &H800401D0&
%EQUATE `CLIPBRD_E_CANT_EMPTY = &H800401D1&
%EQUATE `CLIPBRD_E_CANT_SET = &H800401D2&
%EQUATE `CLIPBRD_E_BAD_DATA = &H800401D3&
%EQUATE `CLIPBRD_E_CANT_CLOSE = &H800401D4&
%EQUATE `MK_E_FIRST = &H800401E0&
%EQUATE `MK_E_LAST = &H800401EF&
%EQUATE `MK_S_FIRST = &H401E0
%EQUATE `MK_S_LAST = &H401EF
%EQUATE `MK_E_CONNECTMANUALLY = &H800401E0&
%EQUATE `MK_E_EXCEEDEDDEADLINE = &H800401E1&
%EQUATE `MK_E_NEEDGENERIC = &H800401E2&
%EQUATE `MK_E_UNAVAILABLE = &H800401E3&
%EQUATE `MK_E_SYNTAX = &H800401E4&
%EQUATE `MK_E_NOOBJECT = &H800401E5&
%EQUATE `MK_E_INVALIDEXTENSION = &H800401E6&
%EQUATE `MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7&
%EQUATE `MK_E_NOTBINDABLE = &H800401E8&
%EQUATE `MK_E_NOTBOUND = &H800401E9&
%EQUATE `MK_E_CANTOPENFILE = &H800401EA&
%EQUATE `MK_E_MUSTBOTHERUSER = &H800401EB&
%EQUATE `MK_E_NOINVERSE = &H800401EC&
%EQUATE `MK_E_NOSTORAGE = &H800401ED&
%EQUATE `MK_E_NOPREFIX = &H800401EE&
%EQUATE `MK_E_ENUMERATION_FAILED = &H800401EF&
%EQUATE `CO_E_FIRST = &H800401F0&
%EQUATE `CO_E_LAST = &H800401FF&
%EQUATE `CO_S_FIRST = &H401F0
%EQUATE `CO_S_LAST = &H401FF
%EQUATE `CO_E_NOTINITIALIZED = &H800401F0&
%EQUATE `CO_E_ALREADYINITIALIZED = &H800401F1&
%EQUATE `CO_E_CANTDETERMINECLASS = &H800401F2&
%EQUATE `CO_E_CLASSSTRING = &H800401F3&
%EQUATE `CO_E_IIDSTRING = &H800401F4&
%EQUATE `CO_E_APPNOTFOUND = &H800401F5&
%EQUATE `CO_E_APPSINGLEUSE = &H800401F6&
%EQUATE `CO_E_ERRORINAPP = &H800401F7&
%EQUATE `CO_E_DLLNOTFOUND = &H800401F8&
%EQUATE `CO_E_ERRORINDLL = &H800401F9&
%EQUATE `CO_E_WRONGOSFORAPP = &H800401FA&
%EQUATE `CO_E_OBJNOTREG = &H800401FB&
%EQUATE `CO_E_OBJISREG = &H800401FC&
%EQUATE `CO_E_OBJNOTCONNECTED = &H800401FD&
%EQUATE `CO_E_APPDIDNTREG = &H800401FE&
%EQUATE `CO_E_RELEASED = &H800401FF&
%EQUATE `OLE_S_USEREG = &H40000
%EQUATE `OLE_S_STATIC = &H40001
%EQUATE `OLE_S_MAC_CLIPFORMAT = &H40002
%EQUATE `DRAGDROP_S_DROP = &H40100
%EQUATE `DRAGDROP_S_CANCEL = &H40101
%EQUATE `DRAGDROP_S_USEDEFAULTCURSORS = &H40102
%EQUATE `DATA_S_SAMEFORMATETC = &H40130
%EQUATE `VIEW_S_ALREADY_FROZEN = &H40140
%EQUATE `CACHE_S_FORMATETC_NOTSUPPORTED = &H40170
%EQUATE `CACHE_S_SAMECACHE = &H40171
%EQUATE `CACHE_S_SOMECACHES_NOTUPDATED = &H40172
%EQUATE `OLEOBJ_S_INVALIDVERB = &H40180
%EQUATE `OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181
%EQUATE `OLEOBJ_S_INVALIDHWND = &H40182
%EQUATE `INPLACE_S_TRUNCATED = &H401A0
%EQUATE `CONVERT10_S_NO_PRESENTATION = &H401C0
%EQUATE `MK_S_REDUCED_TO_SELF = &H401E2
%EQUATE `MK_S_ME = &H401E4
%EQUATE `MK_S_HIM = &H401E5
%EQUATE `MK_S_US = &H401E6
%EQUATE `MK_S_MONIKERALREADYREGISTERED = &H401E7
%EQUATE `CO_E_CLASS_CREATE_FAILED = &H80080001&
%EQUATE `CO_E_SCM_ERROR = &H80080002&
%EQUATE `CO_E_SCM_RPC_FAILURE = &H80080003&
%EQUATE `CO_E_BAD_PATH = &H80080004&
%EQUATE `CO_E_SERVER_EXEC_FAILURE = &H80080005&
%EQUATE `CO_E_OBJSRV_RPC_FAILURE = &H80080006&
%EQUATE `MK_E_NO_NORMALIZED = &H80080007&
%EQUATE `CO_E_SERVER_STOPPING = &H80080008&
%EQUATE `MEM_E_INVALID_ROOT = &H80080009&
%EQUATE `MEM_E_INVALID_LINK = &H80080010&
%EQUATE `MEM_E_INVALID_SIZE = &H80080011&
%EQUATE `DISP_E_BADCALLEE = &H80020010&
%EQUATE `DISP_E_NOTACOLLECTION = &H80020011&
%EQUATE `TYPE_E_BUFFERTOOSMALL = &H80028016&
%EQUATE `TYPE_E_INVDATAREAD = &H80028018&
%EQUATE `TYPE_E_UNSUPFORMAT = &H80028019&
%EQUATE `TYPE_E_REGISTRYACCESS = &H8002801C&
%EQUATE `TYPE_E_LIBNOTREGISTERED = &H8002801D&
%EQUATE `TYPE_E_UNDEFINEDTYPE = &H80028027&
%EQUATE `TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028&
%EQUATE `TYPE_E_INVALIDSTATE = &H80028029&
%EQUATE `TYPE_E_WRONGTYPEKIND = &H8002802A&
%EQUATE `TYPE_E_ELEMENTNOTFOUND = &H8002802B&
%EQUATE `TYPE_E_AMBIGUOUSNAME = &H8002802C&
%EQUATE `TYPE_E_NAMECONFLICT = &H8002802D&
%EQUATE `TYPE_E_UNKNOWNLCID = &H8002802E&
%EQUATE `TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F&
%EQUATE `TYPE_E_BADMODULEKIND = &H800288BD&
%EQUATE `TYPE_E_SIZETOOBIG = &H800288C5&
%EQUATE `TYPE_E_DUPLICATEID = &H800288C6&
%EQUATE `TYPE_E_INVALIDID = &H800288CF&
%EQUATE `TYPE_E_TYPEMISMATCH = &H80028CA0&
%EQUATE `TYPE_E_OUTOFBOUNDS = &H80028CA1&
%EQUATE `TYPE_E_IOERROR = &H80028CA2&
%EQUATE `TYPE_E_CANTCREATETMPFILE = &H80028CA3&
%EQUATE `TYPE_E_CANTLOADLIBRARY = &H80029C4A&
%EQUATE `TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83&
%EQUATE `TYPE_E_CIRCULARTYPE = &H80029C84&
%EQUATE `STG_E_INVALIDFUNCTION = &H80030001&
%EQUATE `STG_E_FILENOTFOUND = &H80030002&
%EQUATE `STG_E_PATHNOTFOUND = &H80030003&
%EQUATE `STG_E_TOOMANYOPENFILES = &H80030004&
%EQUATE `STG_E_ACCESSDENIED = &H80030005&
%EQUATE `STG_E_INVALIDHANDLE = &H80030006&
%EQUATE `STG_E_INSUFFICIENTMEMORY = &H80030008&
%EQUATE `STG_E_INVALIDPOINTER = &H80030009&
%EQUATE `STG_E_NOMOREFILES = &H80030012&
%EQUATE `STG_E_DISKISWRITEPROTECTED = &H80030013&
%EQUATE `STG_E_SEEKERROR = &H80030019&
%EQUATE `STG_E_WRITEFAULT = &H8003001D&
%EQUATE `STG_E_READFAULT = &H8003001E&
%EQUATE `STG_E_SHAREVIOLATION = &H80030020&
%EQUATE `STG_E_LOCKVIOLATION = &H80030021&
%EQUATE `STG_E_FILEALREADYEXISTS = &H80030050&
%EQUATE `STG_E_INVALIDPARAMETER = &H80030057&
%EQUATE `STG_E_MEDIUMFULL = &H80030070&
%EQUATE `STG_E_ABNORMALAPIEXIT = &H800300FA&
%EQUATE `STG_E_INVALIDHEADER = &H800300FB&
%EQUATE `STG_E_INVALIDNAME = &H800300FC&
%EQUATE `STG_E_UNKNOWN = &H800300FD&
%EQUATE `STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE&
%EQUATE `STG_E_INVALIDFLAG = &H800300FF&
%EQUATE `STG_E_INUSE = &H80030100&
%EQUATE `STG_E_NOTCURRENT = &H80030101&
%EQUATE `STG_E_REVERTED = &H80030102&
%EQUATE `STG_E_CANTSAVE = &H80030103&
%EQUATE `STG_E_OLDFORMAT = &H80030104&
%EQUATE `STG_E_OLDDLL = &H80030105&
%EQUATE `STG_E_SHAREREQUIRED = &H80030106&
%EQUATE `STG_E_NOTFILEBASEDSTORAGE = &H80030107&
%EQUATE `STG_E_EXTANTMARSHALLINGS = &H80030108&
%EQUATE `STG_S_CONVERTED = &H30200
%EQUATE `RPC_E_CALL_REJECTED = &H80010001&
%EQUATE `RPC_E_CALL_CANCELED = &H80010002&
%EQUATE `RPC_E_CANTPOST_INSENDCALL = &H80010003&
%EQUATE `RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004&
%EQUATE `RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005&
%EQUATE `RPC_E_CONNECTION_TERMINATED = &H80010006&
%EQUATE `RPC_E_SERVER_DIED = &H80010007&
%EQUATE `RPC_E_CLIENT_DIED = &H80010008&
%EQUATE `RPC_E_INVALID_DATAPACKET = &H80010009&
%EQUATE `RPC_E_CANTTRANSMIT_CALL = &H8001000A&
%EQUATE `RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B&
%EQUATE `RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C&
%EQUATE `RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D&
%EQUATE `RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E&
%EQUATE `RPC_E_INVALID_DATA = &H8001000F&
%EQUATE `RPC_E_INVALID_PARAMETER = &H80010010&
%EQUATE `RPC_E_CANTCALLOUT_AGAIN = &H80010011&
%EQUATE `RPC_E_SERVER_DIED_DNE = &H80010012&
%EQUATE `RPC_E_SYS_CALL_FAILED = &H80010100&
%EQUATE `RPC_E_OUT_OF_RESOURCES = &H80010101&
%EQUATE `RPC_E_ATTEMPTED_MULTITHREAD = &H80010102&
%EQUATE `RPC_E_NOT_REGISTERED = &H80010103&
%EQUATE `RPC_E_FAULT = &H80010104&
%EQUATE `RPC_E_SERVERFAULT = &H80010105&
%EQUATE `RPC_E_CHANGED_MODE = &H80010106&
%EQUATE `RPC_E_INVALIDMETHOD = &H80010107&
%EQUATE `RPC_E_DISCONNECTED = &H80010108&
%EQUATE `RPC_E_RETRY = &H80010109&
%EQUATE `RPC_E_SERVERCALL_RETRYLATER = &H8001010A&
%EQUATE `RPC_E_SERVERCALL_REJECTED = &H8001010B&
%EQUATE `RPC_E_INVALID_CALLDATA = &H8001010C&
%EQUATE `RPC_E_CANTCALLOUT_ININPUTSYNCCALL = &H8001010D&
%EQUATE `RPC_E_WRONG_THREAD = &H8001010E&
%EQUATE `RPC_E_THREAD_NOT_INIT = &H8001010F&
%EQUATE `RPC_E_VERSION_MISMATCH = &H80010110&
%EQUATE `RPC_E_INVALID_HEADER = &H80010111&
%EQUATE `RPC_E_INVALID_EXTENSION = &H80010112&
%EQUATE `RPC_E_INVALID_IPID = &H80010113&
%EQUATE `RPC_E_INVALID_OBJECT = &H80010114&
%EQUATE `RPC_S_CALLPENDING = &H80010115&
%EQUATE `RPC_S_WAITONTIMER = &H80010116&
%EQUATE `RPC_E_CALL_COMPLETE = &H80010117&
%EQUATE `RPC_E_UNSECURE_CALL = &H80010118&
%EQUATE `RPC_E_TOO_LATE = &H80010119&
%EQUATE `RPC_E_NO_GOOD_SECURITY_PACKAGES = &H8001011A&
%EQUATE `RPC_E_ACCESS_DENIED = &H8001011B&
%EQUATE `RPC_E_REMOTE_DISABLED = &H8001011C&
%EQUATE `RPC_E_INVALID_OBJREF = &H8001011D&
%EQUATE `RPC_E_NO_CONTEXT = &H8001011E&
%EQUATE `RPC_E_TIMEOUT = &H8001011F&
%EQUATE `RPC_E_NO_SYNC = &H80010120&
%EQUATE `RPC_E_FULLSIC_REQUIRED = &H80010121&
%EQUATE `RPC_E_INVALID_STD_NAME = &H80010122&
%EQUATE `RPC_E_UNEXPECTED = &H8001FFFF&
' -------------------------
'
' Winnet32 Status Codes
'
' -------------------------
' The specified username is invalid.
%EQUATE `ERROR_BAD_USERNAME = 2202&
' This network connection does not exist.
%EQUATE `ERROR_NOT_CONNECTED = 2250&
' This network connection has files open or requests pending.
%EQUATE `ERROR_OPEN_FILES = 2401&
' The device is in use by an active process and cannot be disconnected.
%EQUATE `ERROR_DEVICE_IN_USE = 2404&
' The specified device name is invalid.
%EQUATE `ERROR_BAD_DEVICE = 1200&
' The device is not currently connected but it is a remembered connection.
%EQUATE `ERROR_CONNECTION_UNAVAIL = 1201&
' An attempt was made to remember a device that had previously been remembered.
%EQUATE `ERROR_DEVICE_ALREADY_REMEMBERED = 1202&
' No network provider accepted the given network path.
%EQUATE `ERROR_NO_NET_OR_BAD_PATH = 1203&
' The specified network provider name is invalid.
%EQUATE `ERROR_BAD_PROVIDER = 1204&
' Unable to open the network connection profile.
%EQUATE `ERROR_CANNOT_OPEN_PROFILE = 1205&
' The network connection profile is corrupt.
%EQUATE `ERROR_BAD_PROFILE = 1206&
' Cannot enumerate a non-container.
%EQUATE `ERROR_NOT_CONTAINER = 1207&
' An extended error has occurred.
%EQUATE `ERROR_EXTENDED_ERROR = 1208&
' The format of the specified group name is invalid.
%EQUATE `ERROR_INVALID_GROUPNAME = 1209&
' The format of the specified computer name is invalid.
%EQUATE `ERROR_INVALID_COMPUTERNAME = 1210&
' The format of the specified event name is invalid.
%EQUATE `ERROR_INVALID_EVENTNAME = 1211&
' The format of the specified domain name is invalid.
%EQUATE `ERROR_INVALID_DOMAINNAME = 1212&
' The format of the specified service name is invalid.
%EQUATE `ERROR_INVALID_SERVICENAME = 1213&
' The format of the specified network name is invalid.
%EQUATE `ERROR_INVALID_NETNAME = 1214&
' The format of the specified share name is invalid.
%EQUATE `ERROR_INVALID_SHARENAME = 1215&
' The format of the specified password is invalid.
%EQUATE `ERROR_INVALID_PASSWORDNAME = 1216&
' The format of the specified message name is invalid.
%EQUATE `ERROR_INVALID_MESSAGENAME = 1217&
' The format of the specified message destination is invalid.
%EQUATE `ERROR_INVALID_MESSAGEDEST = 1218&
' The credentials supplied conflict with an existing set of credentials.
%EQUATE `ERROR_SESSION_CREDENTIAL_CONFLICT = 1219&
' An attempt was made to establish a session to a Lan Manager server, but there
' are already too many sessions established to that server.
%EQUATE `ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220&
' The workgroup or domain name is already in use by another computer on the
' network.
%EQUATE `ERROR_DUP_DOMAINNAME = 1221&
' The network is not present or not started.
%EQUATE `ERROR_NO_NETWORK = 1222&
' -------------------------
'
' Security Status Codes
'
' -------------------------
' Not all privileges referenced are assigned to the caller.
%EQUATE `ERROR_NOT_ALL_ASSIGNED = 1300&
' Some mapping between account names and security IDs was not done.
%EQUATE `ERROR_SOME_NOT_MAPPED = 1301&
' No system quota limits are specifically set for this account.
%EQUATE `ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302&
' No encryption key is available. A well-known encryption key was returned.
%EQUATE `ERROR_LOCAL_USER_SESSION_KEY = 1303&
' The NT password is too complex to be converted to a LAN Manager
' password. The LAN Manager password returned is a NULL string.
%EQUATE `ERROR_NULL_LM_PASSWORD = 1304&
' The revision level is unknown.
%EQUATE `ERROR_UNKNOWN_REVISION = 1305&
' Indicates two revision levels are incompatible.
%EQUATE `ERROR_REVISION_MISMATCH = 1306&
' This security ID may not be assigned as the owner of this object.
%EQUATE `ERROR_INVALID_OWNER = 1307&
' This security ID may not be assigned as the primary group of an object.
%EQUATE `ERROR_INVALID_PRIMARY_GROUP = 1308&
' An attempt has been made to operate on an impersonation token
' by a thread that is not currently impersonating a client.
%EQUATE `ERROR_NO_IMPERSONATION_TOKEN = 1309&
' The group may not be disabled.
%EQUATE `ERROR_CANT_DISABLE_MANDATORY = 1310&
' There are currently no logon servers available to service the logon
' request.
%EQUATE `ERROR_NO_LOGON_SERVERS = 1311&
' A specified logon session does not exist. It may already have
' been terminated.
%EQUATE `ERROR_NO_SUCH_LOGON_SESSION = 1312&
' A specified privilege does not exist.
%EQUATE `ERROR_NO_SUCH_PRIVILEGE = 1313&
' A required privilege is not held by the client.
%EQUATE `ERROR_PRIVILEGE_NOT_HELD = 1314&
' The name provided is not a properly formed account name.
%EQUATE `ERROR_INVALID_ACCOUNT_NAME = 1315&
' The specified user already exists.
%EQUATE `ERROR_USER_EXISTS = 1316&
' The specified user does not exist.
%EQUATE `ERROR_NO_SUCH_USER = 1317&
' The specified group already exists.
%EQUATE `ERROR_GROUP_EXISTS = 1318&
' The specified group does not exist.
%EQUATE `ERROR_NO_SUCH_GROUP = 1319&
' Either the specified user account is already a member of the specified
' group, or the specified group cannot be deleted because it contains
' a member.
%EQUATE `ERROR_MEMBER_IN_GROUP = 1320&
' The specified user account is not a member of the specified group account.
%EQUATE `ERROR_MEMBER_NOT_IN_GROUP = 1321&
' The last remaining administration account cannot be disabled
' or deleted.
%EQUATE `ERROR_LAST_ADMIN = 1322&
' Unable to update the password. The value provided as the current
' password is incorrect.
%EQUATE `ERROR_WRONG_PASSWORD = 1323&
' Unable to update the password. The value provided for the new password
' contains values that are not allowed in passwords.
%EQUATE `ERROR_ILL_FORMED_PASSWORD = 1324&
' Unable to update the password because a password update rule has been
' violated.
%EQUATE `ERROR_PASSWORD_RESTRICTION = 1325&
' Logon failure: unknown user name or bad password.
%EQUATE `ERROR_LOGON_FAILURE = 1326&
' Logon failure: user account restriction.
%EQUATE `ERROR_ACCOUNT_RESTRICTION = 1327&
' Logon failure: account logon time restriction violation.
%EQUATE `ERROR_INVALID_LOGON_HOURS = 1328&
' Logon failure: user not allowed to log on to this computer.
%EQUATE `ERROR_INVALID_WORKSTATION = 1329&
' Logon failure: the specified account password has expired.
%EQUATE `ERROR_PASSWORD_EXPIRED = 1330&
' Logon failure: account currently disabled.
%EQUATE `ERROR_ACCOUNT_DISABLED = 1331&
' No mapping between account names and security IDs was done.
%EQUATE `ERROR_NONE_MAPPED = 1332&
' Too many local user identifiers (LUIDs) were requested at one time.
%EQUATE `ERROR_TOO_MANY_LUIDS_REQUESTED = 1333&
' No more local user identifiers (LUIDs) are available.
%EQUATE `ERROR_LUIDS_EXHAUSTED = 1334&
' The subauthority part of a security ID is invalid for this particular use.
%EQUATE `ERROR_INVALID_SUB_AUTHORITY = 1335&
' The access control list (ACL) structure is invalid.
%EQUATE `ERROR_INVALID_ACL = 1336&
' The security ID structure is invalid.
%EQUATE `ERROR_INVALID_SID = 1337&
' The security descriptor structure is invalid.
%EQUATE `ERROR_INVALID_SECURITY_DESCR = 1338&
' The inherited access control list (ACL) or access control entry (ACE)
' could not be built.
%EQUATE `ERROR_BAD_INHERITANCE_ACL = 1340&
' The server is currently disabled.
%EQUATE `ERROR_SERVER_DISABLED = 1341&
' The server is currently enabled.
%EQUATE `ERROR_SERVER_NOT_DISABLED = 1342&
' The value provided was an invalid value for an identifier authority.
%EQUATE `ERROR_INVALID_ID_AUTHORITY = 1343&
' No more memory is available for security information updates.
%EQUATE `ERROR_ALLOTTED_SPACE_EXCEEDED = 1344&
' The specified attributes are invalid, or incompatible with the
' attributes for the group as a whole.
%EQUATE `ERROR_INVALID_GROUP_ATTRIBUTES = 1345&
' Either a required impersonation level was not provided, or the
' provided impersonation level is invalid.
%EQUATE `ERROR_BAD_IMPERSONATION_LEVEL = 1346&
' Cannot open an anonymous level security token.
%EQUATE `ERROR_CANT_OPEN_ANONYMOUS = 1347&
' The validation information class requested was invalid.
%EQUATE `ERROR_BAD_VALIDATION_CLASS = 1348&
' The type of the token is inappropriate for its attempted use.
%EQUATE `ERROR_BAD_TOKEN_TYPE = 1349&
' Unable to perform a security operation on an object
' which has no associated security.
%EQUATE `ERROR_NO_SECURITY_ON_OBJECT = 1350&
' Indicates a Windows NT Advanced Server could not be contacted or that
' objects within the domain are protected such that necessary
' information could not be retrieved.
%EQUATE `ERROR_CANT_ACCESS_DOMAIN_INFO = 1351&
' The security account manager (SAM) or local security
' authority (LSA) server was in the wrong state to perform
' the security operation.
%EQUATE `ERROR_INVALID_SERVER_STATE = 1352&
' The domain was in the wrong state to perform the security operation.
%EQUATE `ERROR_INVALID_DOMAIN_STATE = 1353&
' This operation is only allowed for the Primary Domain Controller of the domain.
%EQUATE `ERROR_INVALID_DOMAIN_ROLE = 1354&
' The specified domain did not exist.
%EQUATE `ERROR_NO_SUCH_DOMAIN = 1355&
' The specified domain already exists.
%EQUATE `ERROR_DOMAIN_EXISTS = 1356&
' An attempt was made to exceed the limit on the number of domains per server.
%EQUATE `ERROR_DOMAIN_LIMIT_EXCEEDED = 1357&
' Unable to complete the requested operation because of either a
' catastrophic media failure or a data structure corruption on the disk.
%EQUATE `ERROR_INTERNAL_DB_CORRUPTION = 1358&
' The security account database contains an internal inconsistency.
%EQUATE `ERROR_INTERNAL_ERROR = 1359&
' Generic access types were contained in an access mask which should
' already be mapped to non-generic types.
%EQUATE `ERROR_GENERIC_NOT_MAPPED = 1360&
' A security descriptor is not in the right format (absolute or self-relative).
%EQUATE `ERROR_BAD_DESCRIPTOR_FORMAT = 1361&
' The requested action is restricted for use by logon processes
' only. The calling process has not registered as a logon process.
%EQUATE `ERROR_NOT_LOGON_PROCESS = 1362&
' Cannot start a new logon session with an ID that is already in use.
%EQUATE `ERROR_LOGON_SESSION_EXISTS = 1363&
' A specified authentication package is unknown.
%EQUATE `ERROR_NO_SUCH_PACKAGE = 1364&
' The logon session is not in a state that is consistent with the
' requested operation.
%EQUATE `ERROR_BAD_LOGON_SESSION_STATE = 1365&
' The logon session ID is already in use.
%EQUATE `ERROR_LOGON_SESSION_COLLISION = 1366&
' A logon request contained an invalid logon type value.
%EQUATE `ERROR_INVALID_LOGON_TYPE = 1367&
' Unable to impersonate via a named pipe until data has been read
' from that pipe.
%EQUATE `ERROR_CANNOT_IMPERSONATE = 1368&
' The transaction state of a Registry subtree is incompatible with the
' requested operation.
%EQUATE `ERROR_RXACT_INVALID_STATE = 1369&
' An internal security database corruption has been encountered.
%EQUATE `ERROR_RXACT_COMMIT_FAILURE = 1370&
' Cannot perform this operation on built-in accounts.
%EQUATE `ERROR_SPECIAL_ACCOUNT = 1371&
' Cannot perform this operation on this built-in special group.
%EQUATE `ERROR_SPECIAL_GROUP = 1372&
' Cannot perform this operation on this built-in special user.
%EQUATE `ERROR_SPECIAL_USER = 1373&
' The user cannot be removed from a group because the group
' is currently the user's primary group.
%EQUATE `ERROR_MEMBERS_PRIMARY_GROUP = 1374&
' The token is already in use as a primary token.
%EQUATE `ERROR_TOKEN_ALREADY_IN_USE = 1375&
' The specified local group does not exist.
%EQUATE `ERROR_NO_SUCH_ALIAS = 1376&
' The specified account name is not a member of the local group.
%EQUATE `ERROR_MEMBER_NOT_IN_ALIAS = 1377&
' The specified account name is already a member of the local group.
%EQUATE `ERROR_MEMBER_IN_ALIAS = 1378&
' The specified local group already exists.
%EQUATE `ERROR_ALIAS_EXISTS = 1379&
' Logon failure: the user has not been granted the requested
' logon type at this computer.
%EQUATE `ERROR_LOGON_NOT_GRANTED = 1380&
' The maximum number of secrets that may be stored in a single system has been
' exceeded.
%EQUATE `ERROR_TOO_MANY_SECRETS = 1381&
' The length of a secret exceeds the maximum length allowed.
%EQUATE `ERROR_SECRET_TOO_LONG = 1382&
' The local security authority database contains an internal inconsistency.
%EQUATE `ERROR_INTERNAL_DB_ERROR = 1383&
' During a logon attempt, the user's security context accumulated too many
' security IDs.
%EQUATE `ERROR_TOO_MANY_CONTEXT_IDS = 1384&
' Logon failure: the user has not been granted the requested logon type
' at this computer.
%EQUATE `ERROR_LOGON_TYPE_NOT_GRANTED = 1385&
' A cross-encrypted password is necessary to change a user password.
%EQUATE `ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386&
' A new member could not be added to a local group because the member does
' not exist.
%EQUATE `ERROR_NO_SUCH_MEMBER = 1387&
' A new member could not be added to a local group because the member has the
' wrong account type.
%EQUATE `ERROR_INVALID_MEMBER = 1388&
' Too many security IDs have been specified.
%EQUATE `ERROR_TOO_MANY_SIDS = 1389&
' A cross-encrypted password is necessary to change this user password.
%EQUATE `ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390&
' Indicates an ACL contains no inheritable components
%EQUATE `ERROR_NO_INHERITANCE = 1391&
' The file or directory is corrupt and non-readable.
%EQUATE `ERROR_FILE_CORRUPT = 1392&
' The disk structure is corrupt and non-readable.
%EQUATE `ERROR_DISK_CORRUPT = 1393&
' There is no user session key for the specified logon session.
%EQUATE `ERROR_NO_USER_SESSION_KEY = 1394&
' End of security error codes
' -------------------------
'
' WinUser Error Codes
'
' -------------------------
' Invalid window handle.
%EQUATE `ERROR_INVALID_WINDOW_HANDLE = 1400&
' Invalid menu handle.
%EQUATE `ERROR_INVALID_MENU_HANDLE = 1401&
' Invalid cursor handle.
%EQUATE `ERROR_INVALID_CURSOR_HANDLE = 1402&
' Invalid accelerator table handle.
%EQUATE `ERROR_INVALID_ACCEL_HANDLE = 1403&
' Invalid hook handle.
%EQUATE `ERROR_INVALID_HOOK_HANDLE = 1404&
' Invalid xHandle to a multiple-window position structure.
%EQUATE `ERROR_INVALID_DWP_HANDLE = 1405&
' Cannot create a top-level child window.
%EQUATE `ERROR_TLW_WITH_WSCHILD = 1406&
' Cannot find window class.
%EQUATE `ERROR_CANNOT_FIND_WND_CLASS = 1407&
' Invalid window, belongs to other thread.
%EQUATE `ERROR_WINDOW_OF_OTHER_THREAD = 1408&
' Hot key is already registered.
%EQUATE `ERROR_HOTKEY_ALREADY_REGISTERED = 1409&
' Class already exists.
%EQUATE `ERROR_CLASS_ALREADY_EXISTS = 1410&
' Class does not exist.
%EQUATE `ERROR_CLASS_DOES_NOT_EXIST = 1411&
' Class still has open windows.
%EQUATE `ERROR_CLASS_HAS_WINDOWS = 1412&
' Invalid index.
%EQUATE `ERROR_INVALID_INDEX = 1413&
' Invalid icon handle.
%EQUATE `ERROR_INVALID_ICON_HANDLE = 1414&
' Using private DIALOG window words.
%EQUATE `ERROR_PRIVATE_DIALOG_INDEX = 1415&
' The listbox identifier was not found.
%EQUATE `ERROR_LISTBOX_ID_NOT_FOUND = 1416&
' No wildcards were found.
%EQUATE `ERROR_NO_WILDCARD_CHARACTERS = 1417&
' Thread does not have a clipboard open.
%EQUATE `ERROR_CLIPBOARD_NOT_OPEN = 1418&
' Hot key is not registered.
%EQUATE `ERROR_HOTKEY_NOT_REGISTERED = 1419&
' The window is not a valid dialog window.
%EQUATE `ERROR_WINDOW_NOT_DIALOG = 1420&
' Control ID not found.
%EQUATE `ERROR_CONTROL_ID_NOT_FOUND = 1421&
' Invalid message for a combo box because it does not have an edit control.
%EQUATE `ERROR_INVALID_COMBOBOX_MESSAGE = 1422&
' The window is not a combo box.
%EQUATE `ERROR_WINDOW_NOT_COMBOBOX = 1423&
' Height must be less than 256.
%EQUATE `ERROR_INVALID_EDIT_HEIGHT = 1424&
' Invalid device context (DC) handle.
%EQUATE `ERROR_DC_NOT_FOUND = 1425&
' Invalid hook procedure type.
%EQUATE `ERROR_INVALID_HOOK_FILTER = 1426&
' Invalid hook procedure.
%EQUATE `ERROR_INVALID_FILTER_PROC = 1427&
' Cannot set non-local hook without a module handle.
%EQUATE `ERROR_HOOK_NEEDS_HMOD = 1428&
' This hook procedure can only be set Globally.
'
%EQUATE `ERROR_PUBLIC_ONLY_HOOK = 1429&
' The journal hook procedure is already installed.
%EQUATE `ERROR_JOURNAL_HOOK_SET = 1430&
' The hook procedure is not installed.
%EQUATE `ERROR_HOOK_NOT_INSTALLED = 1431&
' Invalid message for single-selection listbox.
%EQUATE `ERROR_INVALID_LB_MESSAGE = 1432&
' LB_SETCOUNT sent to non-lazy listbox.
%EQUATE `ERROR_SETCOUNT_ON_BAD_LB = 1433&
' This list box does not support tab stops.
%EQUATE `ERROR_LB_WITHOUT_TABSTOPS = 1434&
' Cannot destroy object created by another thread.
%EQUATE `ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435&
' Child windows cannot have menus.
%EQUATE `ERROR_CHILD_WINDOW_MENU = 1436&
' The window does not have a system menu.
%EQUATE `ERROR_NO_SYSTEM_MENU = 1437&
' Invalid message box style.
%EQUATE `ERROR_INVALID_MSGBOX_STYLE = 1438&
' Invalid system-wide (SPI_) parameter.
%EQUATE `ERROR_INVALID_SPI_VALUE = 1439&
' Screen already locked.
%EQUATE `ERROR_SCREEN_ALREADY_LOCKED = 1440&
' All handles to windows in a multiple-window position structure must
' have the same parent.
%EQUATE `ERROR_HWNDS_HAVE_DIFF_PARENT = 1441&
' The window is not a child window.
%EQUATE `ERROR_NOT_CHILD_WINDOW = 1442&
' Invalid GW_ command.
%EQUATE `ERROR_INVALID_GW_COMMAND = 1443&
' Invalid thread identifier.
%EQUATE `ERROR_INVALID_THREAD_ID = 1444&
' Cannot process a message from a window that is not a multiple document
' interface (MDI) window.
%EQUATE `ERROR_NON_MDICHILD_WINDOW = 1445&
' Popup menu already active.
%EQUATE `ERROR_POPUP_ALREADY_ACTIVE = 1446&
' The window does not have scroll bars.
%EQUATE `ERROR_NO_SCROLLBARS = 1447&
' Scroll bar range cannot be greater than &H7FFF.
%EQUATE `ERROR_INVALID_SCROLLBAR_RANGE = 1448&
' Cannot show or remove the window in the way specified.
%EQUATE `ERROR_INVALID_SHOWWIN_COMMAND = 1449&
' End of WinUser error codes
' -------------------------
'
' Eventlog Status Codes
'
' -------------------------
' The event log file is corrupt.
%EQUATE `ERROR_EVENTLOG_FILE_CORRUPT = 1500&
' No event log file could be opened, so the event logging service did not start.
%EQUATE `ERROR_EVENTLOG_CANT_START = 1501&
' The event log file is full.
%EQUATE `ERROR_LOG_FILE_FULL = 1502&
' The event log file has changed between reads.
%EQUATE `ERROR_EVENTLOG_FILE_CHANGED = 1503&
' End of eventlog error codes
' -------------------------
'
' RPC Status Codes
'
' -------------------------
' The string binding is invalid.
%EQUATE `RPC_S_INVALID_STRING_BINDING = 1700&
' The binding xHandle is not the correct type.
%EQUATE `RPC_S_WRONG_KIND_OF_BINDING = 1701&
' The binding xHandle is invalid.
%EQUATE `RPC_S_INVALID_BINDING = 1702&
' The RPC protocol sequence is not supported.
%EQUATE `RPC_S_PROTSEQ_NOT_SUPPORTED = 1703&
' The RPC protocol sequence is invalid.
%EQUATE `RPC_S_INVALID_RPC_PROTSEQ = 1704&
' The string universal unique identifier (UUID) is invalid.
%EQUATE `RPC_S_INVALID_STRING_UUID = 1705&
' The endpoint format is invalid.
%EQUATE `RPC_S_INVALID_ENDPOINT_FORMAT = 1706&
' The network address is invalid.
%EQUATE `RPC_S_INVALID_NET_ADDR = 1707&
' No endpoint was found.
%EQUATE `RPC_S_NO_ENDPOINT_FOUND = 1708&
' The timeout value is invalid.
%EQUATE `RPC_S_INVALID_TIMEOUT = 1709&
' The object universal unique identifier (UUID) was not found.
%EQUATE `RPC_S_OBJECT_NOT_FOUND = 1710&
' The object universal unique identifier (UUID) has already been registered.
%EQUATE `RPC_S_ALREADY_REGISTERED = 1711&
' The type universal unique identifier (UUID) has already been registered.
%EQUATE `RPC_S_TYPE_ALREADY_REGISTERED = 1712&
' The RPC server is already listening.
%EQUATE `RPC_S_ALREADY_LISTENING = 1713&
' No protocol sequences have been registered.
%EQUATE `RPC_S_NO_PROTSEQS_REGISTERED = 1714&
' The RPC server is not listening.
%EQUATE `RPC_S_NOT_LISTENING = 1715&
' The manager type is unknown.
%EQUATE `RPC_S_UNKNOWN_MGR_TYPE = 1716&
' The interface is unknown.
%EQUATE `RPC_S_UNKNOWN_IF = 1717&
' There are no bindings.
%EQUATE `RPC_S_NO_BINDINGS = 1718&
' There are no protocol sequences.
%EQUATE `RPC_S_NO_PROTSEQS = 1719&
' The endpoint cannot be created.
%EQUATE `RPC_S_CANT_CREATE_ENDPOINT = 1720&
' Not enough resources are available to complete this operation.
%EQUATE `RPC_S_OUT_OF_RESOURCES = 1721&
' The RPC server is unavailable.
%EQUATE `RPC_S_SERVER_UNAVAILABLE = 1722&
' The RPC server is too busy to complete this operation.
%EQUATE `RPC_S_SERVER_TOO_BUSY = 1723&
' The network options are invalid.
%EQUATE `RPC_S_INVALID_NETWORK_OPTIONS = 1724&
' There is not a remote procedure call active in this thread.
%EQUATE `RPC_S_NO_CALL_ACTIVE = 1725&
' The remote procedure call failed.
%EQUATE `RPC_S_CALL_FAILED = 1726&
' The remote procedure call failed and did not execute.
%EQUATE `RPC_S_CALL_FAILED_DNE = 1727&
' A remote procedure call (RPC) protocol error occurred.
%EQUATE `RPC_S_PROTOCOL_ERROR = 1728&
' The transfer syntax is not supported by the RPC server.
%EQUATE `RPC_S_UNSUPPORTED_TRANS_SYN = 1730&
' The universal unique identifier (UUID) type is not supported.
%EQUATE `RPC_S_UNSUPPORTED_TYPE = 1732&
' The tag is invalid.
%EQUATE `RPC_S_INVALID_TAG = 1733&
' The array bounds are invalid.
%EQUATE `RPC_S_INVALID_BOUND = 1734&
' The binding does not contain an entry name.
%EQUATE `RPC_S_NO_ENTRY_NAME = 1735&
' The name syntax is invalid.
%EQUATE `RPC_S_INVALID_NAME_SYNTAX = 1736&
' The name syntax is not supported.
%EQUATE `RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737&
' No network address is available to use to construct a universal
' unique identifier (UUID).
%EQUATE `RPC_S_UUID_NO_ADDRESS = 1739&
' The endpoint is a duplicate.
%EQUATE `RPC_S_DUPLICATE_ENDPOINT = 1740&
' The authentication type is unknown.
%EQUATE `RPC_S_UNKNOWN_AUTHN_TYPE = 1741&
' The maximum number of calls is too small.
%EQUATE `RPC_S_MAX_CALLS_TOO_SMALL = 1742&
' The string is too long.
%EQUATE `RPC_S_STRING_TOO_LONG = 1743&
' The RPC protocol sequence was not found.
%EQUATE `RPC_S_PROTSEQ_NOT_FOUND = 1744&
' The procedure number is out of range.
%EQUATE `RPC_S_PROCNUM_OUT_OF_RANGE = 1745&
' The binding does not contain any authentication information.
%EQUATE `RPC_S_BINDING_HAS_NO_AUTH = 1746&
' The authentication service is unknown.
%EQUATE `RPC_S_UNKNOWN_AUTHN_SERVICE = 1747&
' The authentication level is unknown.
%EQUATE `RPC_S_UNKNOWN_AUTHN_LEVEL = 1748&
' The security context is invalid.
%EQUATE `RPC_S_INVALID_AUTH_IDENTITY = 1749&
' The authorization service is unknown.
%EQUATE `RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750&
' The entry is invalid.
%EQUATE `EPT_S_INVALID_ENTRY = 1751&
' The server endpoint cannot perform the operation.
%EQUATE `EPT_S_CANT_PERFORM_OP = 1752&
' There are no more endpoints available from the endpoint mapper.
%EQUATE `EPT_S_NOT_REGISTERED = 1753&
' No interfaces have been exported.
%EQUATE `RPC_S_NOTHING_TO_EXPORT = 1754&
' The entry name is incomplete.
%EQUATE `RPC_S_INCOMPLETE_NAME = 1755&
' The version option is invalid.
%EQUATE `RPC_S_INVALID_VERS_OPTION = 1756&
' There are no more members.
%EQUATE `RPC_S_NO_MORE_MEMBERS = 1757&
' There is nothing to unexport.
%EQUATE `RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758&
' The interface was not found.
%EQUATE `RPC_S_INTERFACE_NOT_FOUND = 1759&
' The entry already exists.
%EQUATE `RPC_S_ENTRY_ALREADY_EXISTS = 1760&
' The entry is not found.
%EQUATE `RPC_S_ENTRY_NOT_FOUND = 1761&
' The name service is unavailable.
%EQUATE `RPC_S_NAME_SERVICE_UNAVAILABLE = 1762&
' The network address family is invalid.
%EQUATE `RPC_S_INVALID_NAF_ID = 1763&
' The requested operation is not supported.
%EQUATE `RPC_S_CANNOT_SUPPORT = 1764&
' No security context is available to allow impersonation.
%EQUATE `RPC_S_NO_CONTEXT_AVAILABLE = 1765&
' An internal error occurred in a remote procedure call (RPC).
%EQUATE `RPC_S_INTERNAL_ERROR = 1766&
' The RPC server attempted an integer division by zero.'
%EQUATE `RPC_S_ZERO_DIVIDE = 1767&
' An addressing error occurred in the RPC server.
%EQUATE `RPC_S_ADDRESS_ERROR = 1768&
' A floating-point operation at the RPC server caused a division by zero.
%EQUATE `RPC_S_FP_DIV_ZERO = 1769&
' A floating-point underflow occurred at the RPC server.
%EQUATE `RPC_S_FP_UNDERFLOW = 1770&
' A floating-point overflow occurred at the RPC server.
%EQUATE `RPC_S_FP_OVERFLOW = 1771&
' The list of RPC servers available for the binding of auto handles
' has been exhausted.
%EQUATE `RPC_X_NO_MORE_ENTRIES = 1772&
' Unable to open the character translation table file.
%EQUATE `RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773&
' The file containing the character translation table has fewer than
' 512 bytes.
%EQUATE `RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774&
' A null context xHandle was passed from the client to the host during
' a remote procedure call.
%EQUATE `RPC_X_SS_IN_NULL_CONTEXT = 1775&
' The context xHandle changed during a remote procedure call.
%EQUATE `RPC_X_SS_CONTEXT_DAMAGED = 1777&
' The binding handles passed to a remote procedure call do not match.
%EQUATE `RPC_X_SS_HANDLES_MISMATCH = 1778&
' The stub is unable to get the remote procedure call handle.
%EQUATE `RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779&
' A null reference pointer was passed to the stub.
%EQUATE `RPC_X_NULL_REF_POINTER = 1780&
' The enumeration value is out of range.
%EQUATE `RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781&
' The byte count is too small.
%EQUATE `RPC_X_BYTE_COUNT_TOO_SMALL = 1782&
' The stub received bad data.
%EQUATE `RPC_X_BAD_STUB_DATA = 1783&
' The supplied user buffer is not valid for the requested operation.
%EQUATE `ERROR_INVALID_USER_BUFFER = 1784&
' The disk media is not recognized. It may not be formatted.
%EQUATE `ERROR_UNRECOGNIZED_MEDIA = 1785&
' The workstation does not have a trust secret.
%EQUATE `ERROR_NO_TRUST_LSA_SECRET = 1786&
' The SAM database on the Windows NT Advanced Server does not have a computer
' account for this workstation trust relationship.
%EQUATE `ERROR_NO_TRUST_SAM_ACCOUNT = 1787&
' The trust relationship between the primary domain and the trusted
' domain failed.
%EQUATE `ERROR_TRUSTED_DOMAIN_FAILURE = 1788&
' The trust relationship between this workstation and the primary
' domain failed.
%EQUATE `ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789&
' The network logon failed.
%EQUATE `ERROR_TRUST_FAILURE = 1790&
' A remote procedure call is already in progress for this thread.
%EQUATE `RPC_S_CALL_IN_PROGRESS = 1791&
' An attempt was made to logon, but the network logon service was not started.
%EQUATE `ERROR_NETLOGON_NOT_STARTED = 1792&
' The user's account has expired.
%EQUATE `ERROR_ACCOUNT_EXPIRED = 1793&
' The redirector is in use and cannot be unloaded.
%EQUATE `ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794&
' The specified printer driver is already installed.
%EQUATE `ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795&
' The specified port is unknown.
%EQUATE `ERROR_UNKNOWN_PORT = 1796&
' The printer driver is unknown.
%EQUATE `ERROR_UNKNOWN_PRINTER_DRIVER = 1797&
' The print processor is unknown.
'
%EQUATE `ERROR_UNKNOWN_PRINTPROCESSOR = 1798&
' The specified separator file is invalid.
%EQUATE `ERROR_INVALID_SEPARATOR_FILE = 1799&
' The specified priority is invalid.
%EQUATE `ERROR_INVALID_PRIORITY = 1800&
' The printer name is invalid.
%EQUATE `ERROR_INVALID_PRINTER_NAME = 1801&
' The printer already exists.
%EQUATE `ERROR_PRINTER_ALREADY_EXISTS = 1802&
' The printer command is invalid.
%EQUATE `ERROR_INVALID_PRINTER_COMMAND = 1803&
' The specified datatype is invalid.
%EQUATE `ERROR_INVALID_DATATYPE = 1804&
' The Environment specified is invalid.
%EQUATE `ERROR_INVALID_ENVIRONMENT = 1805&
' There are no more bindings.
%EQUATE `RPC_S_NO_MORE_BINDINGS = 1806&
' The account used is an interdomain trust account. Use your Global user account or local user account to access this server.
%EQUATE `ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807&
' The account used is a Computer Account. Use your Global user account or local user account to access this server.
%EQUATE `ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808&
' The account used is an server trust account. Use your Global user account or local user account to access this server.
%EQUATE `ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809&
' The name or security ID (SID) of the domain specified is inconsistent
' with the trust information for that domain.
%EQUATE `ERROR_DOMAIN_TRUST_INCONSISTENT = 1810&
' The server is in use and cannot be unloaded.
%EQUATE `ERROR_SERVER_HAS_OPEN_HANDLES = 1811&
' The specified image file did not contain a resource section.
%EQUATE `ERROR_RESOURCE_DATA_NOT_FOUND = 1812&
' The specified resource type can not be found in the image file.
%EQUATE `ERROR_RESOURCE_TYPE_NOT_FOUND = 1813&
' The specified resource name can not be found in the image file.
%EQUATE `ERROR_RESOURCE_NAME_NOT_FOUND = 1814&
' The specified resource language ID cannot be found in the image file.
%EQUATE `ERROR_RESOURCE_LANG_NOT_FOUND = 1815&
' Not enough quota is available to process this command.
%EQUATE `ERROR_NOT_ENOUGH_QUOTA = 1816&
' The group member was not found.
%EQUATE `RPC_S_GROUP_MEMBER_NOT_FOUND = 1898&
' The endpoint mapper database could not be created.
%EQUATE `EPT_S_CANT_CREATE = 1899&
' The object universal unique identifier (UUID) is the nil UUID.
%EQUATE `RPC_S_INVALID_OBJECT = 1900&
' The specified time is invalid.
%EQUATE `ERROR_INVALID_TIME = 1901&
' The specified Form name is invalid.
%EQUATE `ERROR_INVALID_FORM_NAME = 1902&
' The specified Form size is invalid
%EQUATE `ERROR_INVALID_FORM_SIZE = 1903&
' The specified Printer xHandle is already being waited on
%EQUATE `ERROR_ALREADY_WAITING = 1904&
' The specified Printer has been deleted
%EQUATE `ERROR_PRINTER_DELETED = 1905&
' The state of the Printer is invalid
%EQUATE `ERROR_INVALID_PRINTER_STATE = 1906&
' The list of servers for this workgroup is not currently available
%EQUATE `ERROR_NO_BROWSER_SERVERS_FOUND = 6118&
' -------------------------
' MMSystem Section
' -------------------------
' This section defines all the support for Multimedia applications
' general constants
%EQUATE `MAXPNAMELEN = 32 ' max product name length (including NULL)
%EQUATE `MAXERRORLENGTH = 256 ' max error text length (including final NULL)
' values for wType field in MMTIME struct
%EQUATE `TIME_MS = &H1 ' time in Milliseconds
%EQUATE `TIME_SAMPLES = &H2 ' number of wave samples
%EQUATE `TIME_BYTES = &H4 ' current byte offset
%EQUATE `TIME_SMPTE = &H8 ' SMPTE time
%EQUATE `TIME_MIDI = &H10 ' MIDI time
%EQUATE `TIME_TICKS = &H20 ' Ticks within MIDI stream
%EQUATE `MAX_JOYSTICKOEMVXDNAME = 260
' Multimedia Window Messages
%EQUATE `MM_JOY1MOVE = &H3A0 ' joystick
%EQUATE `MM_JOY2MOVE = &H3A1
%EQUATE `MM_JOY1ZMOVE = &H3A2
%EQUATE `MM_JOY2ZMOVE = &H3A3
%EQUATE `MM_JOY1BUTTONDOWN = &H3B5
%EQUATE `MM_JOY2BUTTONDOWN = &H3B6
%EQUATE `MM_JOY1BUTTONUP = &H3B7
%EQUATE `MM_JOY2BUTTONUP = &H3B8
%EQUATE `MM_MCINOTIFY = &H3B9 ' MCI
%EQUATE `MM_MCISYSTEM_STRING = &H3CA
%EQUATE `MM_WOM_OPEN = &H3BB ' waveform output
%EQUATE `MM_WOM_CLOSE = &H3BC
%EQUATE `MM_WOM_DONE = &H3BD
%EQUATE `MM_WIM_OPEN = &H3BE ' waveform input
%EQUATE `MM_WIM_CLOSE = &H3BF
%EQUATE `MM_WIM_DATA = &H3C0
%EQUATE `MM_MIM_OPEN = &H3C1 ' MIDI input
%EQUATE `MM_MIM_CLOSE = &H3C2
%EQUATE `MM_MIM_DATA = &H3C3
%EQUATE `MM_MIM_LONGDATA = &H3C4
%EQUATE `MM_MIM_ERROR = &H3C5
%EQUATE `MM_MIM_LONGERROR = &H3C6
%EQUATE `MM_MOM_OPEN = &H3C7 ' MIDI output
%EQUATE `MM_MOM_CLOSE = &H3C8
%EQUATE `MM_MOM_DONE = &H3C9
' String resource number bases (internal use)
%EQUATE `MMSYSERR_BASE = 0
%EQUATE `WAVERR_BASE = 32
%EQUATE `MIDIERR_BASE = 64
%EQUATE `TIMERR_BASE = 96 ' was 128, changed to match Win 31 Sonic
%EQUATE `JOYERR_BASE = 160
%EQUATE `MCIERR_BASE = 256
%EQUATE `MCI_STRING_OFFSET = 512 ' if this number is changed you MUST
' alter the MCI_DEVTYPE_... list below
%EQUATE `MCI_VD_OFFSET = 1024
%EQUATE `MCI_CD_OFFSET = 1088
%EQUATE `MCI_WAVE_OFFSET = 1152
%EQUATE `MCI_SEQ_OFFSET = 1216
' General error return values
%EQUATE `MMSYSERR_NOERROR = 0 ' no error
%EQUATE `MMSYSERR_ERROR = %MMSYSERR_BASE + 1 ' unspecified error
%EQUATE `MMSYSERR_BADDEVICEID = %MMSYSERR_BASE + 2 ' device ID out of range
%EQUATE `MMSYSERR_NOTENABLED = %MMSYSERR_BASE + 3 ' driver failed enable
%EQUATE `MMSYSERR_ALLOCATED = %MMSYSERR_BASE + 4 ' device already allocated
%EQUATE `MMSYSERR_INVALHANDLE = %MMSYSERR_BASE + 5 ' device xHandle is invalid
%EQUATE `MMSYSERR_NODRIVER = %MMSYSERR_BASE + 6 ' no device driver present
%EQUATE `MMSYSERR_NOMEM = %MMSYSERR_BASE + 7 ' memory allocation error
%EQUATE `MMSYSERR_NOTSUPPORTED = %MMSYSERR_BASE + 8 ' function isn't supported
%EQUATE `MMSYSERR_BADERRNUM = %MMSYSERR_BASE + 9 ' error value out of range
%EQUATE `MMSYSERR_INVALFLAG = %MMSYSERR_BASE + 10 ' invalid flag passed
%EQUATE `MMSYSERR_INVALPARAM = %MMSYSERR_BASE + 11 ' invalid parameter passed
%EQUATE `MMSYSERR_HANDLEBUSY = %MMSYSERR_BASE + 12 ' xHandle being used
' simultaneously on another
' thread (eg callback)
%EQUATE `MMSYSERR_INVALIDALIAS = %MMSYSERR_BASE + 13 ' "Specified alias not found in WIN.INI
%EQUATE `MMSYSERR_BADDB = %MMSYSERR_BASE + 14 ' bad registry database
%EQUATE `MMSYSERR_KEYNOTFOUND = %MMSYSERR_BASE + 15 ' registry key not found
%EQUATE `MMSYSERR_READERROR = %MMSYSERR_BASE + 16 ' registry read error
%EQUATE `MMSYSERR_WRITEERROR = %MMSYSERR_BASE + 17 ' registry write error
%EQUATE `MMSYSERR_DELETEERROR = %MMSYSERR_BASE + 18 ' registry delete error
%EQUATE `MMSYSERR_VALNOTFOUND = %MMSYSERR_BASE + 19 ' registry value not found
%EQUATE `MMSYSERR_NODRIVERCB = %MMSYSERR_BASE + 20 ' driver does not call DriverCallback
%EQUATE `MMSYSERR_MOREDATA = %MMSYSERR_BASE + 21 ' more data to be returned
'%MMSYSERR_LASTERROR = %MMSYSERR_BASE + 21 ' last error in range (varies by version)
%EQUATE `MM_MOM_POSITIONCB = &H3CA ' Callback for MEVT_POSITIONCB
%EQUATE `MM_MCISIGNAL = &H3CB
%EQUATE `MM_MIM_MOREDATA = &H3CC ' MIM_DONE w/ pending events
%EQUATE `MIDICAPS_STREAM = &H8 ' driver supports midiStreamOut directly
%EQUATE `MM_MIXM_LINE_CHANGE = &H3D0 ' mixer line change notify
%EQUATE `MM_MIXM_CONTROL_CHANGE = &H3D1 ' mixer control change notify
%EQUATE `MEVT_F_SHORT = &H0&
%EQUATE `MEVT_F_LONG = &H80000000
%EQUATE `MEVT_F_CALLBACK = &H40000000
%EQUATE `MIDISTRM_ERROR = -2
'
' Structures and defines for midiStreamProperty
'
%EQUATE `MIDIPROP_SET = &H80000000
%EQUATE `MIDIPROP_GET = &H40000000
' These are intentionally both non-zero so the app cannot accidentally
' leave the operation off and happen to appear to work due to default
' action.
%EQUATE `MIDIPROP_TIMEDIV = &H1&
%EQUATE `MIDIPROP_TEMPO = &H2&
%EQUATE `MIXER_SHORT_NAME_CHARS = 16
%EQUATE `MIXER_LONG_NAME_CHARS = 64
'
' MMRESULT error return values specific to the mixer API
'
'
%EQUATE `MIXERR_BASE = 1024
%EQUATE `MIXERR_INVALLINE = %MIXERR_BASE + 0
%EQUATE `MIXERR_INVALCONTROL = %MIXERR_BASE + 1
%EQUATE `MIXERR_INVALVALUE = %MIXERR_BASE + 2
%EQUATE `MIXERR_LASTERROR = %MIXERR_BASE + 2
%EQUATE `MIXER_OBJECTF_HANDLE = &H80000000
%EQUATE `MIXER_OBJECTF_MIXER = &H0&
%EQUATE `MIXER_OBJECTF_HMIXER = %MIXER_OBJECTF_HANDLE OR %MIXER_OBJECTF_MIXER
%EQUATE `MIXER_OBJECTF_WAVEOUT = &H10000000
%EQUATE `MIXER_OBJECTF_HWAVEOUT = %MIXER_OBJECTF_HANDLE OR %MIXER_OBJECTF_WAVEOUT
%EQUATE `MIXER_OBJECTF_WAVEIN = &H20000000
%EQUATE `MIXER_OBJECTF_HWAVEIN = %MIXER_OBJECTF_HANDLE OR %MIXER_OBJECTF_WAVEIN
%EQUATE `MIXER_OBJECTF_MIDIOUT = &H30000000
%EQUATE `MIXER_OBJECTF_HMIDIOUT = %MIXER_OBJECTF_HANDLE OR %MIXER_OBJECTF_MIDIOUT
%EQUATE `MIXER_OBJECTF_MIDIIN = &H40000000
%EQUATE `MIXER_OBJECTF_HMIDIIN = %MIXER_OBJECTF_HANDLE OR %MIXER_OBJECTF_MIDIIN
%EQUATE `MIXER_OBJECTF_AUX = &H50000000
%EQUATE `MIXERLINE_LINEF_ACTIVE = &H1
%EQUATE `MIXERLINE_LINEF_DISCONNECTED = &H00008000
%EQUATE `MIXERLINE_LINEF_SOURCE = &H80000000
' MIXERLINE.dwComponentType
' component types for destinations and sources
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 0
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_DIGITAL = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 1
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_LINE = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 2
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_MONITOR = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 3
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 4
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 5
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 6
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_WAVEIN = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 7
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_VOICEIN = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 8
%EQUATE `MIXERLINE_COMPONENTTYPE_DST_LAST = %MIXERLINE_COMPONENTTYPE_DST_FIRST + 8
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_LINE = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_ANALOG = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10
%EQUATE `MIXERLINE_COMPONENTTYPE_SRC_LAST = %MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10
'
' MIXERLINE.Target.dwType
'
'
%EQUATE `MIXERLINE_TARGETTYPE_UNDEFINED = 0
%EQUATE `MIXERLINE_TARGETTYPE_WAVEOUT = 1
%EQUATE `MIXERLINE_TARGETTYPE_WAVEIN = 2
%EQUATE `MIXERLINE_TARGETTYPE_MIDIOUT = 3
%EQUATE `MIXERLINE_TARGETTYPE_MIDIIN = 4
%EQUATE `MIXERLINE_TARGETTYPE_AUX = 5
%EQUATE `MIXER_GETLINEINFOF_DESTINATION = &H00
%EQUATE `MIXER_GETLINEINFOF_SOURCE = &H01
%EQUATE `MIXER_GETLINEINFOF_LINEID = &H02
%EQUATE `MIXER_GETLINEINFOF_COMPONENTTYPE = &H03
%EQUATE `MIXER_GETLINEINFOF_TARGETTYPE = &H04
%EQUATE `MIXER_GETLINEINFOF_QUERYMASK = &H0F
%EQUATE `MIXERCONTROL_CONTROLF_UNIFORM = &H1
%EQUATE `MIXERCONTROL_CONTROLF_MULTIPLE = &H2
%EQUATE `MIXERCONTROL_CONTROLF_DISABLED = &H80000000
' MIXERCONTROL_CONTROLTYPE_xxx building block defines
%EQUATE `MIXERCONTROL_CT_CLASS_MASK = &HF0000000
%EQUATE `MIXERCONTROL_CT_CLASS_CUSTOM = &H0&
%EQUATE `MIXERCONTROL_CT_CLASS_METER = &H10000000
%EQUATE `MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
%EQUATE `MIXERCONTROL_CT_CLASS_NUMBER = &H30000000
%EQUATE `MIXERCONTROL_CT_CLASS_SLIDER = &H40000000
%EQUATE `MIXERCONTROL_CT_CLASS_FADER = &H50000000
%EQUATE `MIXERCONTROL_CT_CLASS_TIME = &H60000000
%EQUATE `MIXERCONTROL_CT_CLASS_LIST = &H70000000
%EQUATE `MIXERCONTROL_CT_SUBCLASS_MASK = &H0F000000
%EQUATE `MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0
%EQUATE `MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H01000000
%EQUATE `MIXERCONTROL_CT_SC_METER_POLLED = &H0
%EQUATE `MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0
%EQUATE `MIXERCONTROL_CT_SC_TIME_MILLISECS = &H01000000
%EQUATE `MIXERCONTROL_CT_SC_LIST_SINGLE = &H0
%EQUATE `MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H01000000
%EQUATE `MIXERCONTROL_CT_UNITS_MASK = &H00FF0000
%EQUATE `MIXERCONTROL_CT_UNITS_CUSTOM = &H0
%EQUATE `MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
%EQUATE `MIXERCONTROL_CT_UNITS_SIGNED = &H20000
%EQUATE `MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
%EQUATE `MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 ' in 10ths
%EQUATE `MIXERCONTROL_CT_UNITS_PERCENT = &H50000 ' in 10ths
'
' Commonly used control types for specifying MIXERCONTROL.dwControlType
'
%EQUATE `MIXERCONTROL_CONTROLTYPE_CUSTOM = %MIXERCONTROL_CT_CLASS_CUSTOM OR %MIXERCONTROL_CT_UNITS_CUSTOM
%EQUATE `MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = %MIXERCONTROL_CT_CLASS_METER OR %MIXERCONTROL_CT_SC_METER_POLLED OR %MIXERCONTROL_CT_UNITS_BOOLEAN
%EQUATE `MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = %MIXERCONTROL_CT_CLASS_METER OR %MIXERCONTROL_CT_SC_METER_POLLED OR %MIXERCONTROL_CT_UNITS_SIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_PEAKMETER = %MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = %MIXERCONTROL_CT_CLASS_METER OR %MIXERCONTROL_CT_SC_METER_POLLED OR %MIXERCONTROL_CT_UNITS_UNSIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_BOOLEAN = %MIXERCONTROL_CT_CLASS_SWITCH OR %MIXERCONTROL_CT_SC_SWITCH_BOOLEAN OR %MIXERCONTROL_CT_UNITS_BOOLEAN
%EQUATE `MIXERCONTROL_CONTROLTYPE_ONOFF = %MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_MUTE = %MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2
%EQUATE `MIXERCONTROL_CONTROLTYPE_MONO = %MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3
%EQUATE `MIXERCONTROL_CONTROLTYPE_LOUDNESS = %MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4
%EQUATE `MIXERCONTROL_CONTROLTYPE_STEREOENH = %MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5
%EQUATE `MIXERCONTROL_CONTROLTYPE_BUTTON = %MIXERCONTROL_CT_CLASS_SWITCH OR %MIXERCONTROL_CT_SC_SWITCH_BUTTON OR %MIXERCONTROL_CT_UNITS_BOOLEAN
%EQUATE `MIXERCONTROL_CONTROLTYPE_DECIBELS = %MIXERCONTROL_CT_CLASS_NUMBER OR %MIXERCONTROL_CT_UNITS_DECIBELS
%EQUATE `MIXERCONTROL_CONTROLTYPE_SIGNED = %MIXERCONTROL_CT_CLASS_NUMBER OR %MIXERCONTROL_CT_UNITS_SIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_UNSIGNED = %MIXERCONTROL_CT_CLASS_NUMBER OR %MIXERCONTROL_CT_UNITS_UNSIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_PERCENT = %MIXERCONTROL_CT_CLASS_NUMBER OR %MIXERCONTROL_CT_UNITS_PERCENT
%EQUATE `MIXERCONTROL_CONTROLTYPE_SLIDER = %MIXERCONTROL_CT_CLASS_SLIDER OR %MIXERCONTROL_CT_UNITS_SIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_PAN = %MIXERCONTROL_CONTROLTYPE_SLIDER + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = %MIXERCONTROL_CONTROLTYPE_SLIDER + 2
%EQUATE `MIXERCONTROL_CONTROLTYPE_FADER = %MIXERCONTROL_CT_CLASS_FADER OR %MIXERCONTROL_CT_UNITS_UNSIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_VOLUME = %MIXERCONTROL_CONTROLTYPE_FADER + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_BASS = %MIXERCONTROL_CONTROLTYPE_FADER + 2
%EQUATE `MIXERCONTROL_CONTROLTYPE_TREBLE = %MIXERCONTROL_CONTROLTYPE_FADER + 3
%EQUATE `MIXERCONTROL_CONTROLTYPE_EQUALIZER = %MIXERCONTROL_CONTROLTYPE_FADER + 4
%EQUATE `MIXERCONTROL_CONTROLTYPE_SINGLESELECT = %MIXERCONTROL_CT_CLASS_LIST OR %MIXERCONTROL_CT_SC_LIST_SINGLE OR %MIXERCONTROL_CT_UNITS_BOOLEAN
%EQUATE `MIXERCONTROL_CONTROLTYPE_MUX = %MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = %MIXERCONTROL_CT_CLASS_LIST OR %MIXERCONTROL_CT_SC_LIST_MULTIPLE OR %MIXERCONTROL_CT_UNITS_BOOLEAN
%EQUATE `MIXERCONTROL_CONTROLTYPE_MIXER = %MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1
%EQUATE `MIXERCONTROL_CONTROLTYPE_MICROTIME = %MIXERCONTROL_CT_CLASS_TIME OR %MIXERCONTROL_CT_SC_TIME_MICROSECS OR %MIXERCONTROL_CT_UNITS_UNSIGNED
%EQUATE `MIXERCONTROL_CONTROLTYPE_MILLITIME = %MIXERCONTROL_CT_CLASS_TIME OR %MIXERCONTROL_CT_SC_TIME_MILLISECS OR %MIXERCONTROL_CT_UNITS_UNSIGNED
'
%EQUATE `MIXER_GETLINECONTROLSF_ALL = &H0&
%EQUATE `MIXER_GETLINECONTROLSF_ONEBYID = &H1&
%EQUATE `MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
%EQUATE `MIXER_GETLINECONTROLSF_QUERYMASK = &HF&
%EQUATE `MIXER_GETCONTROLDETAILSF_VALUE = &H0&
%EQUATE `MIXER_GETCONTROLDETAILSF_LISTTEXT = &H1&
%EQUATE `MIXER_GETCONTROLDETAILSF_QUERYMASK = &HF&
%EQUATE `MIXER_SETCONTROLDETAILSF_VALUE = &H0&
%EQUATE `MIXER_SETCONTROLDETAILSF_CUSTOM = &H1&
%EQUATE `MIXER_SETCONTROLDETAILSF_QUERYMASK = &HF&
' constants used with JOYINFOEX
%EQUATE `JOY_BUTTON5 = &H00000010
%EQUATE `JOY_BUTTON6 = &H00000020
%EQUATE `JOY_BUTTON7 = &H00000040
%EQUATE `JOY_BUTTON8 = &H00000080
%EQUATE `JOY_BUTTON9 = &H00000100
%EQUATE `JOY_BUTTON10 = &H00000200
%EQUATE `JOY_BUTTON11 = &H00000400
%EQUATE `JOY_BUTTON12 = &H00000800
%EQUATE `JOY_BUTTON13 = &H00001000
%EQUATE `JOY_BUTTON14 = &H00002000
%EQUATE `JOY_BUTTON15 = &H00004000
%EQUATE `JOY_BUTTON16 = &H00008000
%EQUATE `JOY_BUTTON17 = &H00010000
%EQUATE `JOY_BUTTON18 = &H00020000
%EQUATE `JOY_BUTTON19 = &H00040000
%EQUATE `JOY_BUTTON20 = &H00080000
%EQUATE `JOY_BUTTON21 = &H00100000
%EQUATE `JOY_BUTTON22 = &H00200000
%EQUATE `JOY_BUTTON23 = &H00400000
%EQUATE `JOY_BUTTON24 = &H00800000
%EQUATE `JOY_BUTTON25 = &H01000000
%EQUATE `JOY_BUTTON26 = &H02000000
%EQUATE `JOY_BUTTON27 = &H04000000
%EQUATE `JOY_BUTTON28 = &H08000000
%EQUATE `JOY_BUTTON29 = &H10000000
%EQUATE `JOY_BUTTON30 = &H20000000
%EQUATE `JOY_BUTTON31 = &H40000000
%EQUATE `JOY_BUTTON32 = &H80000000
' constants used with JOYINFOEX structure
%EQUATE `JOY_POVCENTERED = &HFFFF ' (WORD)-1
%EQUATE `JOY_POVFORWARD = 0
%EQUATE `JOY_POVRIGHT = 9000
%EQUATE `JOY_POVBACKWARD = 18000
%EQUATE `JOY_POVLEFT = 27000
%EQUATE `JOY_RETURNX = &H1&
%EQUATE `JOY_RETURNY = &H2&
%EQUATE `JOY_RETURNZ = &H4&
%EQUATE `JOY_RETURNR = &H8&
%EQUATE `JOY_RETURNU = &H10 ' axis 5
%EQUATE `JOY_RETURNV = &H20 ' axis 6
%EQUATE `JOY_RETURNPOV = &H40&
%EQUATE `JOY_RETURNBUTTONS = &H80&
%EQUATE `JOY_RETURNRAWDATA = &H100&
%EQUATE `JOY_RETURNPOVCTS = &H200&
%EQUATE `JOY_RETURNCENTERED = &H400&
%EQUATE `JOY_USEDEADZONE = &H800&
%EQUATE `JOY_RETURNALL = %JOY_RETURNX OR %JOY_RETURNY OR %JOY_RETURNZ OR %JOY_RETURNR OR %JOY_RETURNU OR %JOY_RETURNV OR %JOY_RETURNPOV OR %JOY_RETURNBUTTONS
%EQUATE `JOY_CAL_READALWAYS = &H10000
%EQUATE `JOY_CAL_READXYONLY = &H20000
%EQUATE `JOY_CAL_READ3 = &H40000
%EQUATE `JOY_CAL_READ4 = &H80000
%EQUATE `JOY_CAL_READXONLY = &H100000
%EQUATE `JOY_CAL_READYONLY = &H200000
%EQUATE `JOY_CAL_READ5 = &H400000
%EQUATE `JOY_CAL_READ6 = &H800000
%EQUATE `JOY_CAL_READZONLY = &H1000000
%EQUATE `JOY_CAL_READRONLY = &H2000000
%EQUATE `JOY_CAL_READUONLY = &H4000000
%EQUATE `JOY_CAL_READVONLY = &H8000000
%EQUATE `WAVE_FORMAT_QUERY = &H1
%EQUATE `SND_PURGE = &H40 ' purge non-static events for task
%EQUATE `SND_APPLICATION = &H80 ' look for application specific association
%EQUATE `WAVE_MAPPED = &H4
%EQUATE `WAVE_FORMAT_DIRECT = &H8
%EQUATE `WAVE_FORMAT_DIRECT_QUERY = %WAVE_FORMAT_QUERY OR %WAVE_FORMAT_DIRECT
%EQUATE `MIM_MOREDATA = %MM_MIM_MOREDATA
%EQUATE `MOM_POSITIONCB = %MM_MOM_POSITIONCB
' flags for dwFlags parm of midiInOpen()
%EQUATE `MIDI_IO_STATUS = &H20&
' Driver messages
%EQUATE `DRV_LOAD = &H01
%EQUATE `DRV_ENABLE = &H02
%EQUATE `DRV_OPEN = &H03
%EQUATE `DRV_CLOSE = &H04
%EQUATE `DRV_DISABLE = &H05
%EQUATE `DRV_FREE = &H06
%EQUATE `DRV_CONFIGURE = &H07
%EQUATE `DRV_QUERYCONFIGURE = &H08
%EQUATE `DRV_INSTALL = &H09
%EQUATE `DRV_REMOVE = &H0A
%EQUATE `DRV_EXITSESSION = &H0B
%EQUATE `DRV_POWER = &H0F
%EQUATE `DRV_RESERVED = &H0800
%EQUATE `DRV_USER = &H4000
' Supported return values for DRV_CONFIGURE message
%EQUATE `DRVCNF_CANCEL = &H0
%EQUATE `DRVCNF_OK = &H1
%EQUATE `DRVCNF_RESTART = &H2
' return values from DriverProc() function
%EQUATE `DRV_CANCEL = %DRVCNF_CANCEL
%EQUATE `DRV_OK = %DRVCNF_OK
%EQUATE `DRV_RESTART = %DRVCNF_RESTART
%EQUATE `DRV_MCI_FIRST = %DRV_RESERVED
%EQUATE `DRV_MCI_LAST = %DRV_RESERVED + &H0FFF
' Driver callback support
' flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and
' midiOutOpen() to specify the type of the dwCallback parameter.
%EQUATE `CALLBACK_TYPEMASK = &H70000 ' callback type mask
%EQUATE `CALLBACK_NULL = &H0 ' no callback
%EQUATE `CALLBACK_WINDOW = &H10000 ' dwCallback is a HWND
%EQUATE `CALLBACK_TASK = &H20000 ' dwCallback is a HTASK
%EQUATE `CALLBACK_FUNCTION = &H30000 ' dwCallback is a FARPROC
' manufacturer IDs
%EQUATE `MM_MICROSOFT = 1 ' Microsoft Corp.
' product IDs
%EQUATE `MM_MIDI_MAPPER = 1 ' MIDI Mapper
%EQUATE `MM_WAVE_MAPPER = 2 ' Wave Mapper
%EQUATE `MM_SNDBLST_MIDIOUT = 3 ' Sound Blaster MIDI output port
%EQUATE `MM_SNDBLST_MIDIIN = 4 ' Sound Blaster MIDI input port
%EQUATE `MM_SNDBLST_SYNTH = 5 ' Sound Blaster internal synthesizer
%EQUATE `MM_SNDBLST_WAVEOUT = 6 ' Sound Blaster waveform output
%EQUATE `MM_SNDBLST_WAVEIN = 7 ' Sound Blaster waveform input
%EQUATE `MM_ADLIB = 9 ' Ad Lib-compatible synthesizer
%EQUATE `MM_MPU401_MIDIOUT = 10 ' MPU401-compatible MIDI output port
%EQUATE `MM_MPU401_MIDIIN = 11 ' MPU401-compatible MIDI input port
%EQUATE `MM_PC_JOYSTICK = 12 ' Joystick adapter
' flag values for uFlags parameter
%EQUATE `SND_SYNC = &H0 ' play synchronously (default)
%EQUATE `SND_ASYNC = &H1 ' play asynchronously
%EQUATE `SND_NODEFAULT = &H2 ' silence not default, if sound not found
%EQUATE `SND_MEMORY = &H4 ' lpszSoundName points to a memory file
%EQUATE `SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry
%EQUATE `SND_FILENAME = &H20000 ' name is a file name
%EQUATE `SND_RESOURCE = &H40004 ' name is a resource name or atom
%EQUATE `SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier
%EQUATE `SND_ALIAS_START = 0 ' must be > 4096 to keep strings in same section of resource file
%EQUATE `SND_LOOP = &H8 ' loop the sound until next sndPlaySound
%EQUATE `SND_NOSTOP = &H10 ' don't stop any currently playing sound
%EQUATE `SND_VALID = &H1F ' valid flags / ;Internal /
%EQUATE `SND_NOWAIT = &H2000 ' don't wait if the driver is busy
%EQUATE `SND_VALIDFLAGS = &H17201F ' Set of valid flag bits. Anything outside
' this range will raise an error
%EQUATE `SND_RESERVED = &HFF000000 ' In particular these flags are reserved
%EQUATE `SND_TYPE_MASK = &H170007
' waveform audio error return values
%EQUATE `WAVERR_BADFORMAT = %WAVERR_BASE + 0 ' unsupported wave format
%EQUATE `WAVERR_STILLPLAYING = %WAVERR_BASE + 1 ' still something playing
%EQUATE `WAVERR_UNPREPARED = %WAVERR_BASE + 2 ' header not prepared
%EQUATE `WAVERR_SYNC = %WAVERR_BASE + 3 ' device is synchronous
%EQUATE `WAVERR_LASTERROR = %WAVERR_BASE + 3 ' last error in range
' wave callback messages
%EQUATE `WOM_OPEN = %MM_WOM_OPEN
%EQUATE `WOM_CLOSE = %MM_WOM_CLOSE
%EQUATE `WOM_DONE = %MM_WOM_DONE
%EQUATE `WIM_OPEN = %MM_WIM_OPEN
%EQUATE `WIM_CLOSE = %MM_WIM_CLOSE
%EQUATE `WIM_DATA = %MM_WIM_DATA
' device ID for wave device mapper
%EQUATE `WAVE_MAPPER = &HFFFFFFFF ' (DWORD)-1
' flags for dwFlags parameter in waveOutOpen() and waveInOpen()
%EQUATE `WAVE_ALLOWSYNC = &H2
%EQUATE `WAVE_VALID = &H3 ' ;Internal
' flags for dwFlags field of WAVEHDR
%EQUATE `WHDR_DONE = &H1 ' done bit
%EQUATE `WHDR_PREPARED = &H2 ' set if this header has been prepared
%EQUATE `WHDR_BEGINLOOP = &H4 ' loop start block
%EQUATE `WHDR_ENDLOOP = &H8 ' loop end block
%EQUATE `WHDR_INQUEUE = &H10 ' reserved for driver
%EQUATE `WHDR_VALID = &H1F ' valid flags / ;Internal /
' flags for dwSupport field of WAVEOUTCAPS
%EQUATE `WAVECAPS_PITCH = &H1 ' supports pitch control
%EQUATE `WAVECAPS_PLAYBACKRATE = &H2 ' supports playback rate control
%EQUATE `WAVECAPS_VOLUME = &H4 ' supports volume control
%EQUATE `WAVECAPS_LRVOLUME = &H8 ' separate left-right volume control
%EQUATE `WAVECAPS_SYNC = &H10
' defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
%EQUATE `WAVE_INVALIDFORMAT = &H0000 ' invalid format
%EQUATE `WAVE_FORMAT_1M08 = &H0001 ' 11.025 kHz, Mono, 8-bit
%EQUATE `WAVE_FORMAT_1S08 = &H0002 ' 11.025 kHz, Stereo, 8-bit
%EQUATE `WAVE_FORMAT_1M16 = &H0004 ' 11.025 kHz, Mono, 16-bit
%EQUATE `WAVE_FORMAT_1S16 = &H0008 ' 11.025 kHz, Stereo, 16-bit
%EQUATE `WAVE_FORMAT_2M08 = &H0010 ' 22.05 kHz, Mono, 8-bit
%EQUATE `WAVE_FORMAT_2S08 = &H0020 ' 22.05 kHz, Stereo, 8-bit
%EQUATE `WAVE_FORMAT_2M16 = &H0040 ' 22.05 kHz, Mono, 16-bit
%EQUATE `WAVE_FORMAT_2S16 = &H0080 ' 22.05 kHz, Stereo, 16-bit
%EQUATE `WAVE_FORMAT_4M08 = &H0100 ' 44.1 kHz, Mono, 8-bit
%EQUATE `WAVE_FORMAT_4S08 = &H0200 ' 44.1 kHz, Stereo, 8-bit
%EQUATE `WAVE_FORMAT_4M16 = &H0400 ' 44.1 kHz, Mono, 16-bit
%EQUATE `WAVE_FORMAT_4S16 = &H0800 ' 44.1 kHz, Stereo, 16-bit
' flags for wFormatTag field of WAVEFORMAT
%EQUATE `WAVE_FORMAT_PCM = 1 ' Needed in resource files so outside #ifndef RC_INVOKED
' MIDI error return values
%EQUATE `MIDIERR_UNPREPARED = %MIDIERR_BASE + 0 ' header not prepared
%EQUATE `MIDIERR_STILLPLAYING = %MIDIERR_BASE + 1 ' still something playing
%EQUATE `MIDIERR_NOMAP = %MIDIERR_BASE + 2 ' no current map
%EQUATE `MIDIERR_NOTREADY = %MIDIERR_BASE + 3 ' hardware is still busy
%EQUATE `MIDIERR_NODEVICE = %MIDIERR_BASE + 4 ' port no longer connected
%EQUATE `MIDIERR_INVALIDSETUP = %MIDIERR_BASE + 5 ' invalid setup
%EQUATE `MIDIERR_BADOPENMODE = %MIDIERR_BASE + 6 ' operation unsupported w/ open mode
%EQUATE `MIDIERR_DONT_CONTINUE = %MIDIERR_BASE + 7 ' thru device 'eating' a message
%EQUATE `MIDIERR_LASTERROR = %MIDIERR_BASE + 7 ' last error in range
' MIDI callback messages
%EQUATE `MIM_OPEN = %MM_MIM_OPEN
%EQUATE `MIM_CLOSE = %MM_MIM_CLOSE
%EQUATE `MIM_DATA = %MM_MIM_DATA
%EQUATE `MIM_LONGDATA = %MM_MIM_LONGDATA
%EQUATE `MIM_ERROR = %MM_MIM_ERROR
%EQUATE `MIM_LONGERROR = %MM_MIM_LONGERROR
%EQUATE `MOM_OPEN = %MM_MOM_OPEN
%EQUATE `MOM_CLOSE = %MM_MOM_CLOSE
%EQUATE `MOM_DONE = %MM_MOM_DONE
#IF NOT %DEF(%MM_DRVM_OPEN)
 %MM_DRVM_OPEN = &H3D0 ' installable drivers
 %MM_DRVM_CLOSE = &H3D1
 %MM_DRVM_DATA = &H3D2
 %MM_DRVM_ERROR = &H3D3
#ENDIF
%EQUATE `MM_STREAM_OPEN = &H3D4
%EQUATE `MM_STREAM_CLOSE = &H3D5
%EQUATE `MM_STREAM_DONE = &H3D6
%EQUATE `MM_STREAM_ERROR = &H3D7
' device ID for MIDI mapper
%EQUATE `MIDIMAPPER = &HFFFFFFFF
%EQUATE `MIDI_MAPPER = &HFFFFFFFF
' flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()
%EQUATE `MIDI_CACHE_ALL = 1
%EQUATE `MIDI_CACHE_BESTFIT = 2
%EQUATE `MIDI_CACHE_QUERY = 3
%EQUATE `MIDI_UNCACHE = 4
%EQUATE `MIDI_CACHE_VALID = %MIDI_CACHE_ALL OR %MIDI_CACHE_BESTFIT OR %MIDI_CACHE_QUERY OR %MIDI_UNCACHE ' ;Internal
' flags for wTechnology field of MIDIOUTCAPS structure
%EQUATE `MOD_MIDIPORT = 1 ' output port
%EQUATE `MOD_SYNTH = 2 ' generic internal synth
%EQUATE `MOD_SQSYNTH = 3 ' square wave internal synth
%EQUATE `MOD_FMSYNTH = 4 ' FM internal synth
%EQUATE `MOD_MAPPER = 5 ' MIDI mapper
' flags for dwSupport field of MIDIOUTCAPS
%EQUATE `MIDICAPS_VOLUME = &H1 ' supports volume control
%EQUATE `MIDICAPS_LRVOLUME = &H2 ' separate left-right volume control
%EQUATE `MIDICAPS_CACHE = &H4
' flags for dwFlags field of MIDIHDR structure
%EQUATE `MHDR_DONE = &H1 ' done bit
%EQUATE `MHDR_PREPARED = &H2 ' set if header prepared
%EQUATE `MHDR_INQUEUE = &H4 ' reserved for driver
%EQUATE `MHDR_VALID = &H7 ' valid flags / ;Internal /
' device ID for aux device mapper
%EQUATE `AUX_MAPPER = &HFFFFFFFF
' flags for wTechnology field in AUXCAPS structure
%EQUATE `AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive
%EQUATE `AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks
' flags for dwSupport field in AUXCAPS structure
%EQUATE `AUXCAPS_VOLUME = &H1 ' supports volume control
%EQUATE `AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control
' timer error return values
%EQUATE `TIMERR_NOERROR = 0 ' no error
%EQUATE `TIMERR_NOCANDO = %TIMERR_BASE + 1 ' request not completed
%EQUATE `TIMERR_STRUCT = %TIMERR_BASE + 33 ' time struct size
' flags for wFlags parameter of timeSetEvent() function
%EQUATE `TIME_ONESHOT = 0 ' program timer for single event
%EQUATE `TIME_PERIODIC = 1 ' program for continuous periodic event
' joystick error return values
%EQUATE `JOYERR_NOERROR = 0 ' no error
%EQUATE `JOYERR_PARMS = %JOYERR_BASE + 5 ' bad parameters
%EQUATE `JOYERR_NOCANDO = %JOYERR_BASE + 6 ' request not completed
%EQUATE `JOYERR_UNPLUGGED = %JOYERR_BASE + 7 ' joystick is unplugged
' constants used with JOYINFO structure and MM_JOY messages
%EQUATE `JOY_BUTTON1 = &H0001
%EQUATE `JOY_BUTTON2 = &H0002
%EQUATE `JOY_BUTTON3 = &H0004
%EQUATE `JOY_BUTTON4 = &H0008
%EQUATE `JOY_BUTTON1CHG = &H0100
%EQUATE `JOY_BUTTON2CHG = &H0200
%EQUATE `JOY_BUTTON3CHG = &H0400
%EQUATE `JOY_BUTTON4CHG = &H0800
' joystick ID constants
%EQUATE `JOYSTICKID1 = 0
%EQUATE `JOYSTICKID2 = 1
' MMIO error return values
%EQUATE `MMIOERR_BASE = 256
%EQUATE `MMIOERR_FILENOTFOUND = %MMIOERR_BASE + 1 ' file not found
%EQUATE `MMIOERR_OUTOFMEMORY = %MMIOERR_BASE + 2 ' out of memory
%EQUATE `MMIOERR_CANNOTOPEN = %MMIOERR_BASE + 3 ' cannot open
%EQUATE `MMIOERR_CANNOTCLOSE = %MMIOERR_BASE + 4 ' cannot close
%EQUATE `MMIOERR_CANNOTREAD = %MMIOERR_BASE + 5 ' cannot read
%EQUATE `MMIOERR_CANNOTWRITE = %MMIOERR_BASE + 6 ' cannot write
%EQUATE `MMIOERR_CANNOTSEEK = %MMIOERR_BASE + 7 ' cannot seek
%EQUATE `MMIOERR_CANNOTEXPAND = %MMIOERR_BASE + 8 ' cannot expand file
%EQUATE `MMIOERR_CHUNKNOTFOUND = %MMIOERR_BASE + 9 ' chunk not found
%EQUATE `MMIOERR_UNBUFFERED = %MMIOERR_BASE + 10 ' file is unbuffered
%EQUATE `MMIOERR_PATHNOTFOUND = %MMIOERR_BASE + 11 ' path incorrect
%EQUATE `MMIOERR_ACCESSDENIED = %MMIOERR_BASE + 12 ' file was protected
%EQUATE `MMIOERR_SHARINGVIOLATION = %MMIOERR_BASE + 13 ' file in use
%EQUATE `MMIOERR_NETWORKERROR = %MMIOERR_BASE + 14 ' network not responding
%EQUATE `MMIOERR_TOOMANYOPENFILES = %MMIOERR_BASE + 15 ' no more file handles
%EQUATE `MMIOERR_INVALIDFILE = %MMIOERR_BASE + 16 ' default error file error
%EQUATE `MMIO_RWMODE = &H3 ' open file for reading/writing/both
%EQUATE `MMIO_SHAREMODE = &H70 ' file sharing mode number
' constants for dwFlags field of MMIOINFO
%EQUATE `MMIO_CREATE = &H1000 ' create new file (or truncate file)
%EQUATE `MMIO_PARSE = &H100 ' parse new file returning path
%EQUATE `MMIO_DELETE = &H200 ' create new file (or truncate file)
%EQUATE `MMIO_EXIST = &H4000 ' checks for existence of file
%EQUATE `MMIO_ALLOCBUF = &H10000 ' mmioOpen() should allocate a buffer
%EQUATE `MMIO_GETTEMP = &H20000 ' mmioOpen() should retrieve temp name
%EQUATE `MMIO_DIRTY = &H10000000 ' I/O buffer is dirty
' MMIO_DIRTY is also used in the <dwFlags> field of MMCKINFO structure
%EQUATE `MMIO_OPEN_VALID = &H3FFFF ' valid flags for mmioOpen / ;Internal /
' read/write mode numbers (bit field MMIO_RWMODE)
%EQUATE `MMIO_READ = &H0 ' open file for reading only
%EQUATE `MMIO_WRITE = &H1 ' open file for writing only
%EQUATE `MMIO_READWRITE = &H2 ' open file for reading and writing
' share mode numbers (bit field MMIO_SHAREMODE)
%EQUATE `MMIO_COMPAT = &H0 ' compatibility mode
%EQUATE `MMIO_EXCLUSIVE = &H10 ' exclusive-access mode
%EQUATE `MMIO_DENYWRITE = &H20 ' deny writing to other processes
%EQUATE `MMIO_DENYREAD = &H30 ' deny reading to other processes
%EQUATE `MMIO_DENYNONE = &H40 ' deny nothing to other processes
' flags for other functions
%EQUATE `MMIO_FHOPEN = &H10 ' mmioClose(): keep file xHandle open
%EQUATE `MMIO_EMPTYBUF = &H10 ' mmioFlush(): empty the I/O buffer
%EQUATE `MMIO_TOUPPER = &H10 ' mmioStringToFOURCC(): cvt. to u-case
%EQUATE `MMIO_INSTALLPROC = &H10000 ' mmioInstallIOProc(): install MMIOProc
%EQUATE `MMIO_PUBLICPROC = &H10000000 ' mmioInstallIOProc: install Globally
%EQUATE `MMIO_UNICODEPROC = &H1000000 ' mmioInstallIOProc(): Unicode MMIOProc
%EQUATE `MMIO_REMOVEPROC = &H20000 ' mmioInstallIOProc(): remove MMIOProc
%EQUATE `MMIO_FINDPROC = &H40000 ' mmioInstallIOProc(): find an MMIOProc
%EQUATE `MMIO_FINDCHUNK = &H10 ' mmioDescend(): find a chunk by ID
%EQUATE `MMIO_FINDRIFF = &H20 ' mmioDescend(): find a LIST chunk
%EQUATE `MMIO_FINDLIST = &H40 ' mmioDescend(): find a RIFF chunk
%EQUATE `MMIO_CREATERIFF = &H20 ' mmioCreateChunk(): make a LIST chunk
%EQUATE `MMIO_CREATELIST = &H40 ' mmioCreateChunk(): make a RIFF chunk
%EQUATE `MMIO_VALIDPROC = &H11070000 ' valid for mmioInstallIOProc / ;Internal /
' message numbers for MMIOPROC I/O procedure functions
%EQUATE `MMIOM_READ = %MMIO_READ ' read (must equal MMIO_READ!)
%EQUATE `MMIOM_WRITE = %MMIO_WRITE ' write (must equal MMIO_WRITE!)
%EQUATE `MMIOM_SEEK = 2 ' seek to a new position in file
%EQUATE `MMIOM_OPEN = 3 ' open file
%EQUATE `MMIOM_CLOSE = 4 ' close file
%EQUATE `MMIOM_WRITEFLUSH = 5 ' write and flush
%EQUATE `MMIOM_RENAME = 6 ' rename specified file
%EQUATE `MMIOM_USER = &H00008000 ' beginning of user-defined messages
' flags for mmioSeek()
%EQUATE `SEEK_SET = 0 ' seek to an absolute position
%EQUATE `SEEK_CUR = 1 ' seek relative to current position
%EQUATE `SEEK_END = 2 ' seek relative to end of file
' other constants
%EQUATE `MMIO_DEFAULTBUFFER = 8192 ' default buffer size
' MCI error return values
%EQUATE `MCIERR_INVALID_DEVICE_ID = %MCIERR_BASE + 1
%EQUATE `MCIERR_UNRECOGNIZED_KEYWORD = %MCIERR_BASE + 3
%EQUATE `MCIERR_UNRECOGNIZED_COMMAND = %MCIERR_BASE + 5
%EQUATE `MCIERR_HARDWARE = %MCIERR_BASE + 6
%EQUATE `MCIERR_INVALID_DEVICE_NAME = %MCIERR_BASE + 7
%EQUATE `MCIERR_OUT_OF_MEMORY = %MCIERR_BASE + 8
%EQUATE `MCIERR_DEVICE_OPEN = %MCIERR_BASE + 9
%EQUATE `MCIERR_CANNOT_LOAD_DRIVER = %MCIERR_BASE + 10
%EQUATE `MCIERR_MISSING_COMMAND_STRING = %MCIERR_BASE + 11
%EQUATE `MCIERR_PARAM_OVERFLOW = %MCIERR_BASE + 12
%EQUATE `MCIERR_MISSING_STRING_ARGUMENT = %MCIERR_BASE + 13
%EQUATE `MCIERR_BAD_INTEGER = %MCIERR_BASE + 14
%EQUATE `MCIERR_PARSER_INTERNAL = %MCIERR_BASE + 15
%EQUATE `MCIERR_DRIVER_INTERNAL = %MCIERR_BASE + 16
%EQUATE `MCIERR_MISSING_PARAMETER = %MCIERR_BASE + 17
%EQUATE `MCIERR_UNSUPPORTED_FUNCTION = %MCIERR_BASE + 18
%EQUATE `MCIERR_FILE_NOT_FOUND = %MCIERR_BASE + 19
%EQUATE `MCIERR_DEVICE_NOT_READY = %MCIERR_BASE + 20
%EQUATE `MCIERR_INTERNAL = %MCIERR_BASE + 21
%EQUATE `MCIERR_DRIVER = %MCIERR_BASE + 22
%EQUATE `MCIERR_CANNOT_USE_ALL = %MCIERR_BASE + 23
%EQUATE `MCIERR_MULTIPLE = %MCIERR_BASE + 24
%EQUATE `MCIERR_EXTENSION_NOT_FOUND = %MCIERR_BASE + 25
%EQUATE `MCIERR_OUTOFRANGE = %MCIERR_BASE + 26
%EQUATE `MCIERR_FLAGS_NOT_COMPATIBLE = %MCIERR_BASE + 28
%EQUATE `MCIERR_FILE_NOT_SAVED = %MCIERR_BASE + 30
%EQUATE `MCIERR_DEVICE_TYPE_REQUIRED = %MCIERR_BASE + 31
%EQUATE `MCIERR_DEVICE_LOCKED = %MCIERR_BASE + 32
%EQUATE `MCIERR_DUPLICATE_ALIAS = %MCIERR_BASE + 33
%EQUATE `MCIERR_BAD_CONSTANT = %MCIERR_BASE + 34
%EQUATE `MCIERR_MUST_USE_SHAREABLE = %MCIERR_BASE + 35
%EQUATE `MCIERR_MISSING_DEVICE_NAME = %MCIERR_BASE + 36
%EQUATE `MCIERR_BAD_TIME_FORMAT = %MCIERR_BASE + 37
%EQUATE `MCIERR_NO_CLOSING_QUOTE = %MCIERR_BASE + 38
%EQUATE `MCIERR_DUPLICATE_FLAGS = %MCIERR_BASE + 39
%EQUATE `MCIERR_INVALID_FILE = %MCIERR_BASE + 40
%EQUATE `MCIERR_NULL_PARAMETER_BLOCK = %MCIERR_BASE + 41
%EQUATE `MCIERR_UNNAMED_RESOURCE = %MCIERR_BASE + 42
%EQUATE `MCIERR_NEW_REQUIRES_ALIAS = %MCIERR_BASE + 43
%EQUATE `MCIERR_NOTIFY_ON_AUTO_OPEN = %MCIERR_BASE + 44
%EQUATE `MCIERR_NO_ELEMENT_ALLOWED = %MCIERR_BASE + 45
%EQUATE `MCIERR_NONAPPLICABLE_FUNCTION = %MCIERR_BASE + 46
%EQUATE `MCIERR_ILLEGAL_FOR_AUTO_OPEN = %MCIERR_BASE + 47
%EQUATE `MCIERR_FILENAME_REQUIRED = %MCIERR_BASE + 48
%EQUATE `MCIERR_EXTRA_CHARACTERS = %MCIERR_BASE + 49
%EQUATE `MCIERR_DEVICE_NOT_INSTALLED = %MCIERR_BASE + 50
%EQUATE `MCIERR_GET_CD = %MCIERR_BASE + 51
%EQUATE `MCIERR_SET_CD = %MCIERR_BASE + 52
%EQUATE `MCIERR_SET_DRIVE = %MCIERR_BASE + 53
%EQUATE `MCIERR_DEVICE_LENGTH = %MCIERR_BASE + 54
%EQUATE `MCIERR_DEVICE_ORD_LENGTH = %MCIERR_BASE + 55
%EQUATE `MCIERR_NO_INTEGER = %MCIERR_BASE + 56
%EQUATE `MCIERR_WAVE_OUTPUTSINUSE = %MCIERR_BASE + 64
%EQUATE `MCIERR_WAVE_SETOUTPUTINUSE = %MCIERR_BASE + 65
%EQUATE `MCIERR_WAVE_INPUTSINUSE = %MCIERR_BASE + 66
%EQUATE `MCIERR_WAVE_SETINPUTINUSE = %MCIERR_BASE + 67
%EQUATE `MCIERR_WAVE_OUTPUTUNSPECIFIED = %MCIERR_BASE + 68
%EQUATE `MCIERR_WAVE_INPUTUNSPECIFIED = %MCIERR_BASE + 69
%EQUATE `MCIERR_WAVE_OUTPUTSUNSUITABLE = %MCIERR_BASE + 70
%EQUATE `MCIERR_WAVE_SETOUTPUTUNSUITABLE = %MCIERR_BASE + 71
%EQUATE `MCIERR_WAVE_INPUTSUNSUITABLE = %MCIERR_BASE + 72
%EQUATE `MCIERR_WAVE_SETINPUTUNSUITABLE = %MCIERR_BASE + 73
%EQUATE `MCIERR_SEQ_DIV_INCOMPATIBLE = %MCIERR_BASE + 80
%EQUATE `MCIERR_SEQ_PORT_INUSE = %MCIERR_BASE + 81
%EQUATE `MCIERR_SEQ_PORT_NONEXISTENT = %MCIERR_BASE + 82
%EQUATE `MCIERR_SEQ_PORT_MAPNODEVICE = %MCIERR_BASE + 83
%EQUATE `MCIERR_SEQ_PORT_MISCERROR = %MCIERR_BASE + 84
%EQUATE `MCIERR_SEQ_TIMER = %MCIERR_BASE + 85
%EQUATE `MCIERR_SEQ_PORTUNSPECIFIED = %MCIERR_BASE + 86
%EQUATE `MCIERR_SEQ_NOMIDIPRESENT = %MCIERR_BASE + 87
%EQUATE `MCIERR_NO_WINDOW = %MCIERR_BASE + 90
%EQUATE `MCIERR_CREATEWINDOW = %MCIERR_BASE + 91
%EQUATE `MCIERR_FILE_READ = %MCIERR_BASE + 92
%EQUATE `MCIERR_FILE_WRITE = %MCIERR_BASE + 93
%EQUATE `MCIERR_NO_IDENTITY = %MCIERR_BASE + 94
' All custom device driver errors must be >= this value
%EQUATE `MCIERR_CUSTOM_DRIVER_BASE = %MCIERR_BASE + 256
' Message numbers must be in the range between MCI_FIRST and MCI_LAST
%EQUATE `MCI_FIRST = %DRV_MCI_FIRST ' &H0800
' Messages &H801 and &H802 are reserved
%EQUATE `MCI_OPEN = &H0803
%EQUATE `MCI_CLOSE = &H0804
%EQUATE `MCI_ESCAPE = &H0805
%EQUATE `MCI_PLAY = &H0806
%EQUATE `MCI_SEEK = &H0807
%EQUATE `MCI_STOP = &H0808
%EQUATE `MCI_PAUSE = &H0809
%EQUATE `MCI_INFO = &H080A
%EQUATE `MCI_GETDEVCAPS = &H080B
%EQUATE `MCI_SPIN = &H080C
%EQUATE `MCI_SET = &H080D
%EQUATE `MCI_STEP = &H080E
%EQUATE `MCI_RECORD = &H080F
%EQUATE `MCI_SYSINFO = &H0810
%EQUATE `MCI_BREAK = &H0811
%EQUATE `MCI_SOUND = &H0812
%EQUATE `MCI_SAVE = &H0813
%EQUATE `MCI_STATUS = &H0814
%EQUATE `MCI_CUE = &H0830
%EQUATE `MCI_REALIZE = &H0840
%EQUATE `MCI_WINDOW = &H0841
%EQUATE `MCI_PUT = &H0842
%EQUATE `MCI_WHERE = &H0843
%EQUATE `MCI_FREEZE = &H0844
%EQUATE `MCI_UNFREEZE = &H0845
%EQUATE `MCI_LOAD = &H0850
%EQUATE `MCI_CUT = &H0851
%EQUATE `MCI_COPY = &H0852
%EQUATE `MCI_PASTE = &H0853
%EQUATE `MCI_UPDATE = &H0854
%EQUATE `MCI_RESUME = &H0855
%EQUATE `MCI_DELETE = &H0856
%EQUATE `MCI_LAST = &H0FFF
' the next &H400 message ID's are reserved for custom drivers
' all custom MCI command messages must be >= than this value
%EQUATE `MCI_USER_MESSAGES = &H400 + %MCI_FIRST
%EQUATE `MCI_ALL_DEVICE_ID = &HFFFFFFFF ' Matches all MCI devices
' constants for predefined MCI device types
%EQUATE `MCI_DEVTYPE_VCR = 513
%EQUATE `MCI_DEVTYPE_VIDEODISC = 514
%EQUATE `MCI_DEVTYPE_OVERLAY = 515
%EQUATE `MCI_DEVTYPE_CD_AUDIO = 516
%EQUATE `MCI_DEVTYPE_DAT = 517
%EQUATE `MCI_DEVTYPE_SCANNER = 518
%EQUATE `MCI_DEVTYPE_ANIMATION = 519
%EQUATE `MCI_DEVTYPE_DIGITAL_VIDEO = 520
%EQUATE `MCI_DEVTYPE_OTHER = 521
%EQUATE `MCI_DEVTYPE_WAVEFORM_AUDIO = 522
%EQUATE `MCI_DEVTYPE_SEQUENCER = 523
%EQUATE `MCI_DEVTYPE_FIRST = %MCI_DEVTYPE_VCR
%EQUATE `MCI_DEVTYPE_LAST = %MCI_DEVTYPE_SEQUENCER
%EQUATE `MCI_DEVTYPE_FIRST_USER = &H1000
' return values for 'status mode' command
%EQUATE `MCI_MODE_NOT_READY = %MCI_STRING_OFFSET + 12
%EQUATE `MCI_MODE_STOP = %MCI_STRING_OFFSET + 13
%EQUATE `MCI_MODE_PLAY = %MCI_STRING_OFFSET + 14
%EQUATE `MCI_MODE_RECORD = %MCI_STRING_OFFSET + 15
%EQUATE `MCI_MODE_SEEK = %MCI_STRING_OFFSET + 16
%EQUATE `MCI_MODE_PAUSE = %MCI_STRING_OFFSET + 17
%EQUATE `MCI_MODE_OPEN = %MCI_STRING_OFFSET + 18
' constants used in 'set time format' and 'status time format' commands
%EQUATE `MCI_FORMAT_MILLISECONDS = 0
%EQUATE `MCI_FORMAT_HMS = 1
%EQUATE `MCI_FORMAT_MSF = 2
%EQUATE `MCI_FORMAT_FRAMES = 3
%EQUATE `MCI_FORMAT_SMPTE_24 = 4
%EQUATE `MCI_FORMAT_SMPTE_25 = 5
%EQUATE `MCI_FORMAT_SMPTE_30 = 6
%EQUATE `MCI_FORMAT_SMPTE_30DROP = 7
%EQUATE `MCI_FORMAT_BYTES = 8
%EQUATE `MCI_FORMAT_SAMPLES = 9
%EQUATE `MCI_FORMAT_TMSF = 10
' Flags for wParam of the MM_MCINOTIFY message
%EQUATE `MCI_NOTIFY_SUCCESSFUL = &H1
%EQUATE `MCI_NOTIFY_SUPERSEDED = &H2
%EQUATE `MCI_NOTIFY_ABORTED = &H4
%EQUATE `MCI_NOTIFY_FAILURE = &H8
' common flags for dwFlags parameter of MCI command messages
%EQUATE `MCI_NOTIFY = &H1&
%EQUATE `MCI_WAIT = &H2&
%EQUATE `MCI_FROM = &H4&
%EQUATE `MCI_TO = &H8&
%EQUATE `MCI_TRACK = &H10&
' flags for dwFlags parameter of MCI_OPEN command message
%EQUATE `MCI_OPEN_SHAREABLE = &H100&
%EQUATE `MCI_OPEN_ELEMENT = &H200&
%EQUATE `MCI_OPEN_ALIAS = &H400&
%EQUATE `MCI_OPEN_ELEMENT_ID = &H800&
%EQUATE `MCI_OPEN_TYPE_ID = &H1000&
%EQUATE `MCI_OPEN_TYPE = &H2000&
' flags for dwFlags parameter of MCI_SEEK command message
%EQUATE `MCI_SEEK_TO_START = &H100&
%EQUATE `MCI_SEEK_TO_END = &H200&
' flags for dwFlags parameter of MCI_STATUS command message
%EQUATE `MCI_STATUS_ITEM = &H100&
%EQUATE `MCI_STATUS_START = &H200&
' flags for dwItem field of the MCI_STATUS_PARMS parameter block
%EQUATE `MCI_STATUS_LENGTH = &H1&
%EQUATE `MCI_STATUS_POSITION = &H2&
%EQUATE `MCI_STATUS_NUMBER_OF_TRACKS = &H3&
%EQUATE `MCI_STATUS_MODE = &H4&
%EQUATE `MCI_STATUS_MEDIA_PRESENT = &H5&
%EQUATE `MCI_STATUS_TIME_FORMAT = &H6&
%EQUATE `MCI_STATUS_READY = &H7&
%EQUATE `MCI_STATUS_CURRENT_TRACK = &H8&
' flags for dwFlags parameter of MCI_INFO command message
%EQUATE `MCI_INFO_PRODUCT = &H100&
%EQUATE `MCI_INFO_FILE = &H200&
' flags for dwFlags parameter of MCI_GETDEVCAPS command message
%EQUATE `MCI_GETDEVCAPS_ITEM = &H100&
' flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
%EQUATE `MCI_GETDEVCAPS_CAN_RECORD = &H1&
%EQUATE `MCI_GETDEVCAPS_HAS_AUDIO = &H2&
%EQUATE `MCI_GETDEVCAPS_HAS_VIDEO = &H3&
%EQUATE `MCI_GETDEVCAPS_DEVICE_TYPE = &H4&
%EQUATE `MCI_GETDEVCAPS_USES_FILES = &H5&
%EQUATE `MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6&
%EQUATE `MCI_GETDEVCAPS_CAN_EJECT = &H7&
%EQUATE `MCI_GETDEVCAPS_CAN_PLAY = &H8&
%EQUATE `MCI_GETDEVCAPS_CAN_SAVE = &H9&
' flags for dwFlags parameter of MCI_SYSINFO command message
%EQUATE `MCI_SYSINFO_QUANTITY = &H100&
%EQUATE `MCI_SYSINFO_OPEN = &H200&
%EQUATE `MCI_SYSINFO_NAME = &H400&
%EQUATE `MCI_SYSINFO_INSTALLNAME = &H800&
' flags for dwFlags parameter of MCI_SET command message
%EQUATE `MCI_SET_DOOR_OPEN = &H100&
%EQUATE `MCI_SET_DOOR_CLOSED = &H200&
%EQUATE `MCI_SET_TIME_FORMAT = &H400&
%EQUATE `MCI_SET_AUDIO = &H800&
%EQUATE `MCI_SET_VIDEO = &H1000&
%EQUATE `MCI_SET_ON = &H2000&
%EQUATE `MCI_SET_OFF = &H4000&
' flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
%EQUATE `MCI_SET_AUDIO_ALL = &H0000
%EQUATE `MCI_SET_AUDIO_LEFT = &H0001
%EQUATE `MCI_SET_AUDIO_RIGHT = &H0002
' flags for dwFlags parameter of MCI_BREAK command message
%EQUATE `MCI_BREAK_KEY = &H100&
%EQUATE `MCI_BREAK_HWND = &H200&
%EQUATE `MCI_BREAK_OFF = &H400&
' flags for dwFlags parameter of MCI_RECORD command message
%EQUATE `MCI_RECORD_INSERT = &H100&
%EQUATE `MCI_RECORD_OVERWRITE = &H200&
' flags for dwFlags parameter of MCI_SOUND command message
%EQUATE `MCI_SOUND_NAME = &H100&
' flags for dwFlags parameter of MCI_SAVE command message
%EQUATE `MCI_SAVE_FILE = &H100&
' flags for dwFlags parameter of MCI_LOAD command message
%EQUATE `MCI_LOAD_FILE = &H100&
%EQUATE `MCI_VD_MODE_PARK = %MCI_VD_OFFSET + 1
' return ID's for videodisc MCI_GETDEVCAPS command
' flag for dwReturn field of MCI_STATUS_PARMS
' MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)
%EQUATE `MCI_VD_MEDIA_CLV = %MCI_VD_OFFSET + 2
%EQUATE `MCI_VD_MEDIA_CAV = %MCI_VD_OFFSET + 3
%EQUATE `MCI_VD_MEDIA_OTHER = %MCI_VD_OFFSET + 4
%EQUATE `MCI_VD_FORMAT_TRACK = &H4001
' flags for dwFlags parameter of MCI_PLAY command message
%EQUATE `MCI_VD_PLAY_REVERSE = &H10000
%EQUATE `MCI_VD_PLAY_FAST = &H20000
%EQUATE `MCI_VD_PLAY_SPEED = &H40000
%EQUATE `MCI_VD_PLAY_SCAN = &H80000
%EQUATE `MCI_VD_PLAY_SLOW = &H100000
' flag for dwFlags parameter of MCI_SEEK command message
%EQUATE `MCI_VD_SEEK_REVERSE = &H10000
' flags for dwItem field of MCI_STATUS_PARMS parameter block
%EQUATE `MCI_VD_STATUS_SPEED = &H4002&
%EQUATE `MCI_VD_STATUS_FORWARD = &H4003&
%EQUATE `MCI_VD_STATUS_MEDIA_TYPE = &H4004&
%EQUATE `MCI_VD_STATUS_SIDE = &H4005&
%EQUATE `MCI_VD_STATUS_DISC_SIZE = &H4006&
' flags for dwFlags parameter of MCI_GETDEVCAPS command message
%EQUATE `MCI_VD_GETDEVCAPS_CLV = &H10000
%EQUATE `MCI_VD_GETDEVCAPS_CAV = &H20000
%EQUATE `MCI_VD_SPIN_UP = &H10000
%EQUATE `MCI_VD_SPIN_DOWN = &H20000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
%EQUATE `MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002&
%EQUATE `MCI_VD_GETDEVCAPS_FAST_RATE = &H4003&
%EQUATE `MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004&
%EQUATE `MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005&
' flags for the dwFlags parameter of MCI_STEP command message
%EQUATE `MCI_VD_STEP_FRAMES = &H10000
%EQUATE `MCI_VD_STEP_REVERSE = &H20000
' flag for the MCI_ESCAPE command message
%EQUATE `MCI_VD_ESCAPE_STRING = &H100&
%EQUATE `MCI_WAVE_PCM = %MCI_WAVE_OFFSET + 0
%EQUATE `MCI_WAVE_MAPPER = %MCI_WAVE_OFFSET + 1
' flags for the dwFlags parameter of MCI_OPEN command message
%EQUATE `MCI_WAVE_OPEN_BUFFER = &H10000
' flags for the dwFlags parameter of MCI_SET command message
%EQUATE `MCI_WAVE_SET_FORMATTAG = &H10000
%EQUATE `MCI_WAVE_SET_CHANNELS = &H20000
%EQUATE `MCI_WAVE_SET_SAMPLESPERSEC = &H40000
%EQUATE `MCI_WAVE_SET_AVGBYTESPERSEC = &H80000
%EQUATE `MCI_WAVE_SET_BLOCKALIGN = &H100000
%EQUATE `MCI_WAVE_SET_BITSPERSAMPLE = &H200000
' flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages
%EQUATE `MCI_WAVE_INPUT = &H400000
%EQUATE `MCI_WAVE_OUTPUT = &H800000
' flags for the dwItem field of MCI_STATUS_PARMS parameter block
%EQUATE `MCI_WAVE_STATUS_FORMATTAG = &H4001&
%EQUATE `MCI_WAVE_STATUS_CHANNELS = &H4002&
%EQUATE `MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003&
%EQUATE `MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004&
%EQUATE `MCI_WAVE_STATUS_BLOCKALIGN = &H4005&
%EQUATE `MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006&
%EQUATE `MCI_WAVE_STATUS_LEVEL = &H4007&
' flags for the dwFlags parameter of MCI_SET command message
%EQUATE `MCI_WAVE_SET_ANYINPUT = &H4000000
%EQUATE `MCI_WAVE_SET_ANYOUTPUT = &H8000000
' flags for the dwFlags parameter of MCI_GETDEVCAPS command message
%EQUATE `MCI_WAVE_GETDEVCAPS_INPUTS = &H4001&
%EQUATE `MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002&
' flags for the dwReturn field of MCI_STATUS_PARMS parameter block
' MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE)
%EQUATE `MCI_SEQ_DIV_PPQN = 0 + %MCI_SEQ_OFFSET
%EQUATE `MCI_SEQ_DIV_SMPTE_24 = 1 + %MCI_SEQ_OFFSET
%EQUATE `MCI_SEQ_DIV_SMPTE_25 = 2 + %MCI_SEQ_OFFSET
%EQUATE `MCI_SEQ_DIV_SMPTE_30DROP = 3 + %MCI_SEQ_OFFSET
%EQUATE `MCI_SEQ_DIV_SMPTE_30 = 4 + %MCI_SEQ_OFFSET
' flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block
' MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)
%EQUATE `MCI_SEQ_FORMAT_SONGPTR = &H4001
%EQUATE `MCI_SEQ_FILE = &H4002
%EQUATE `MCI_SEQ_MIDI = &H4003
%EQUATE `MCI_SEQ_SMPTE = &H4004
%EQUATE `MCI_SEQ_NONE = 65533
%EQUATE `MCI_SEQ_MAPPER = 65535
' flags for the dwItem field of MCI_STATUS_PARMS parameter block
%EQUATE `MCI_SEQ_STATUS_TEMPO = &H4002&
%EQUATE `MCI_SEQ_STATUS_PORT = &H4003&
%EQUATE `MCI_SEQ_STATUS_SLAVE = &H4007&
%EQUATE `MCI_SEQ_STATUS_MASTER = &H4008&
%EQUATE `MCI_SEQ_STATUS_OFFSET = &H4009&
%EQUATE `MCI_SEQ_STATUS_DIVTYPE = &H400A&
' flags for the dwFlags parameter of MCI_SET command message
%EQUATE `MCI_SEQ_SET_TEMPO = &H10000
%EQUATE `MCI_SEQ_SET_PORT = &H20000
%EQUATE `MCI_SEQ_SET_SLAVE = &H40000
%EQUATE `MCI_SEQ_SET_MASTER = &H80000
%EQUATE `MCI_SEQ_SET_OFFSET = &H1000000
' flags for dwFlags parameter of MCI_OPEN command message
%EQUATE `MCI_ANIM_OPEN_WS = &H10000
%EQUATE `MCI_ANIM_OPEN_PARENT = &H20000
%EQUATE `MCI_ANIM_OPEN_NOSTATIC = &H40000
' flags for dwFlags parameter of MCI_PLAY command message
%EQUATE `MCI_ANIM_PLAY_SPEED = &H10000
%EQUATE `MCI_ANIM_PLAY_REVERSE = &H20000
%EQUATE `MCI_ANIM_PLAY_FAST = &H40000
%EQUATE `MCI_ANIM_PLAY_SLOW = &H80000
%EQUATE `MCI_ANIM_PLAY_SCAN = &H100000
' flags for dwFlags parameter of MCI_STEP command message
%EQUATE `MCI_ANIM_STEP_REVERSE = &H10000
%EQUATE `MCI_ANIM_STEP_FRAMES = &H20000
' flags for dwItem field of MCI_STATUS_PARMS parameter block
%EQUATE `MCI_ANIM_STATUS_SPEED = &H4001&
%EQUATE `MCI_ANIM_STATUS_FORWARD = &H4002&
%EQUATE `MCI_ANIM_STATUS_HWND = &H4003&
%EQUATE `MCI_ANIM_STATUS_HPAL = &H4004&
%EQUATE `MCI_ANIM_STATUS_STRETCH = &H4005&
' flags for the dwFlags parameter of MCI_INFO command message
%EQUATE `MCI_ANIM_INFO_TEXT = &H10000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
%EQUATE `MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001&
%EQUATE `MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002&
%EQUATE `MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003&
%EQUATE `MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004&
%EQUATE `MCI_ANIM_GETDEVCAPS_PALETTES = &H4006&
%EQUATE `MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007&
%EQUATE `MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008&
' flags for the MCI_REALIZE command message
%EQUATE `MCI_ANIM_REALIZE_NORM = &H10000
%EQUATE `MCI_ANIM_REALIZE_BKGD = &H20000
' flags for dwFlags parameter of MCI_WINDOW command message
%EQUATE `MCI_ANIM_WINDOW_HWND = &H10000
%EQUATE `MCI_ANIM_WINDOW_STATE = &H40000
%EQUATE `MCI_ANIM_WINDOW_TEXT = &H80000
%EQUATE `MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000
%EQUATE `MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000
' flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block
' MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)
%EQUATE `MCI_ANIM_WINDOW_DEFAULT = &H0&
' flags for dwFlags parameter of MCI_PUT command message
%EQUATE `MCI_ANIM_RECT = &H10000
%EQUATE `MCI_ANIM_PUT_SOURCE = &H20000 ' also MCI_WHERE
%EQUATE `MCI_ANIM_PUT_DESTINATION = &H40000 ' also MCI_WHERE
' flags for dwFlags parameter of MCI_WHERE command message
%EQUATE `MCI_ANIM_WHERE_SOURCE = &H20000
%EQUATE `MCI_ANIM_WHERE_DESTINATION = &H40000
' flags for dwFlags parameter of MCI_UPDATE command message
%EQUATE `MCI_ANIM_UPDATE_HDC = &H20000
' flags for dwFlags parameter of MCI_OPEN command message
%EQUATE `MCI_OVLY_OPEN_WS = &H10000
%EQUATE `MCI_OVLY_OPEN_PARENT = &H20000
' flags for dwFlags parameter of MCI_STATUS command message
%EQUATE `MCI_OVLY_STATUS_HWND = &H4001&
%EQUATE `MCI_OVLY_STATUS_STRETCH = &H4002&
' flags for dwFlags parameter of MCI_INFO command message
%EQUATE `MCI_OVLY_INFO_TEXT = &H10000
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
%EQUATE `MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001&
%EQUATE `MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002&
%EQUATE `MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003&
' flags for dwFlags parameter of MCI_WINDOW command message
%EQUATE `MCI_OVLY_WINDOW_HWND = &H10000
%EQUATE `MCI_OVLY_WINDOW_STATE = &H40000
%EQUATE `MCI_OVLY_WINDOW_TEXT = &H80000
%EQUATE `MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000
%EQUATE `MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000
' flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block
%EQUATE `MCI_OVLY_WINDOW_DEFAULT = &H0&
' flags for dwFlags parameter of MCI_PUT command message
%EQUATE `MCI_OVLY_RECT = &H10000
%EQUATE `MCI_OVLY_PUT_SOURCE = &H20000
%EQUATE `MCI_OVLY_PUT_DESTINATION = &H40000
%EQUATE `MCI_OVLY_PUT_FRAME = &H80000
%EQUATE `MCI_OVLY_PUT_VIDEO = &H100000
' flags for dwFlags parameter of MCI_WHERE command message
%EQUATE `MCI_OVLY_WHERE_SOURCE = &H20000
%EQUATE `MCI_OVLY_WHERE_DESTINATION = &H40000
%EQUATE `MCI_OVLY_WHERE_FRAME = &H80000
%EQUATE `MCI_OVLY_WHERE_VIDEO = &H100000
%EQUATE `CAPS1 = 94 ' other caps
%EQUATE `C1_TRANSPARENT = &H1 ' new raster cap
%EQUATE `NEWTRANSPARENT = 3 ' use with SetBkMode()
%EQUATE `QUERYROPSUPPORT = 40 ' use to determine ROP support
%EQUATE `SELECTDIB = 41 ' DIB.DRV select dib escape
' ----------------
' shell association database management functions
' -----------------
' error values for ShellExecute() beyond the regular WinExec() codes
%EQUATE `SE_ERR_SHARE = 26
%EQUATE `SE_ERR_ASSOCINCOMPLETE = 27
%EQUATE `SE_ERR_DDETIMEOUT = 28
%EQUATE `SE_ERR_DDEFAIL = 29
%EQUATE `SE_ERR_DDEBUSY = 30
%EQUATE `SE_ERR_NOASSOC = 31
%EQUATE `PRINTER_CONTROL_PAUSE = 1
%EQUATE `PRINTER_CONTROL_RESUME = 2
%EQUATE `PRINTER_CONTROL_PURGE = 3
%EQUATE `PRINTER_STATUS_PAUSED = &H1
%EQUATE `PRINTER_STATUS_ERROR = &H2
%EQUATE `PRINTER_STATUS_PENDING_DELETION = &H4
%EQUATE `PRINTER_STATUS_PAPER_JAM = &H8
%EQUATE `PRINTER_STATUS_PAPER_OUT = &H10
%EQUATE `PRINTER_STATUS_MANUAL_FEED = &H20
%EQUATE `PRINTER_STATUS_PAPER_PROBLEM = &H40
%EQUATE `PRINTER_STATUS_OFFLINE = &H80
%EQUATE `PRINTER_STATUS_IO_ACTIVE = &H100
%EQUATE `PRINTER_STATUS_BUSY = &H200
%EQUATE `PRINTER_STATUS_PRINTING = &H400
%EQUATE `PRINTER_STATUS_OUTPUT_BIN_FULL = &H800
%EQUATE `PRINTER_STATUS_NOT_AVAILABLE = &H00001000
%EQUATE `PRINTER_STATUS_WAITING = &H00002000
%EQUATE `PRINTER_STATUS_PROCESSING = &H00004000
%EQUATE `PRINTER_STATUS_INITIALIZING = &H00008000
%EQUATE `PRINTER_STATUS_WARMING_UP = &H10000
%EQUATE `PRINTER_STATUS_TONER_LOW = &H20000
%EQUATE `PRINTER_STATUS_NO_TONER = &H40000
%EQUATE `PRINTER_STATUS_PAGE_PUNT = &H80000
%EQUATE `PRINTER_STATUS_USER_INTERVENTION = &H100000
%EQUATE `PRINTER_STATUS_OUT_OF_MEMORY = &H200000
%EQUATE `PRINTER_STATUS_DOOR_OPEN = &H400000
%EQUATE `PRINTER_ATTRIBUTE_QUEUED = &H1
%EQUATE `PRINTER_ATTRIBUTE_DIRECT = &H2
%EQUATE `PRINTER_ATTRIBUTE_DEFAULT = &H4
%EQUATE `PRINTER_ATTRIBUTE_SHARED = &H8
%EQUATE `PRINTER_ATTRIBUTE_NETWORK = &H10
%EQUATE `PRINTER_ATTRIBUTE_HIDDEN = &H20
%EQUATE `PRINTER_ATTRIBUTE_LOCAL = &H40
%EQUATE `NO_PRIORITY = 0
%EQUATE `MAX_PRIORITY = 99
%EQUATE `MIN_PRIORITY = 1
%EQUATE `DEF_PRIORITY = 1
%EQUATE `JOB_CONTROL_PAUSE = 1
%EQUATE `JOB_CONTROL_RESUME = 2
%EQUATE `JOB_CONTROL_CANCEL = 3
%EQUATE `JOB_CONTROL_RESTART = 4
%EQUATE `JOB_STATUS_PAUSED = &H1
%EQUATE `JOB_STATUS_ERROR = &H2
%EQUATE `JOB_STATUS_DELETING = &H4
%EQUATE `JOB_STATUS_SPOOLING = &H8
%EQUATE `JOB_STATUS_PRINTING = &H10
%EQUATE `JOB_STATUS_OFFLINE = &H20
%EQUATE `JOB_STATUS_PAPEROUT = &H40
%EQUATE `JOB_STATUS_PRINTED = &H80
%EQUATE `JOB_POSITION_UNSPECIFIED = 0
%EQUATE `FORM_BUILTIN = &H1
%EQUATE `PRINTER_CONTROL_SET_STATUS = 4
%EQUATE `PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400
%EQUATE `PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800
%EQUATE `JOB_CONTROL_DELETE = 5
%EQUATE `JOB_STATUS_USER_INTERVENTION = &H00000400
%EQUATE `DI_CHANNEL = 1 ' start direct read/write channel,
%EQUATE `DI_READ_SPOOL_JOB = 3
%EQUATE `DI_MASK = &H0001
%EQUATE `DI_IMAGE = &H0002
%EQUATE `DI_NORMAL = &H0003
%EQUATE `DI_COMPAT = &H0004
%EQUATE `DI_DEFAULTSIZE = &H0008
%EQUATE `DI_NOMIRROR = &H0010
%EQUATE `PORT_TYPE_WRITE = &H1
%EQUATE `PORT_TYPE_READ = &H2
%EQUATE `PORT_TYPE_REDIRECTED = &H4
%EQUATE `PORT_TYPE_NET_ATTACHED = &H8
%EQUATE `PRINTER_ENUM_DEFAULT = &H1
%EQUATE `PRINTER_ENUM_LOCAL = &H2
%EQUATE `PRINTER_ENUM_CONNECTIONS = &H4
%EQUATE `PRINTER_ENUM_FAVORITE = &H4
%EQUATE `PRINTER_ENUM_NAME = &H8
%EQUATE `PRINTER_ENUM_REMOTE = &H10
%EQUATE `PRINTER_ENUM_SHARED = &H20
%EQUATE `PRINTER_ENUM_NETWORK = &H40
%EQUATE `PRINTER_ENUM_EXPAND = &H00004000
%EQUATE `PRINTER_ENUM_CONTAINER = &H00008000
%EQUATE `PRINTER_ENUM_ICONMASK = &H00FF0000
%EQUATE `PRINTER_ENUM_ICON1 = &H00010000
%EQUATE `PRINTER_ENUM_ICON2 = &H00020000
%EQUATE `PRINTER_ENUM_ICON3 = &H00040000
%EQUATE `PRINTER_ENUM_ICON4 = &H00080000
%EQUATE `PRINTER_ENUM_ICON5 = &H00100000
%EQUATE `PRINTER_ENUM_ICON6 = &H00200000
%EQUATE `PRINTER_ENUM_ICON7 = &H00400000
%EQUATE `PRINTER_ENUM_ICON8 = &H00800000
%EQUATE `PRINTER_CHANGE_ADD_PRINTER = &H00000001
%EQUATE `PRINTER_CHANGE_SET_PRINTER = &H00000002
%EQUATE `PRINTER_CHANGE_DELETE_PRINTER = &H00000004
%EQUATE `PRINTER_CHANGE_PRINTER = &H000000FF
%EQUATE `PRINTER_CHANGE_ADD_JOB = &H00000100
%EQUATE `PRINTER_CHANGE_SET_JOB = &H00000200
%EQUATE `PRINTER_CHANGE_DELETE_JOB = &H00000400
%EQUATE `PRINTER_CHANGE_WRITE_JOB = &H00000800
%EQUATE `PRINTER_CHANGE_JOB = &H0000FF00
%EQUATE `PRINTER_CHANGE_ADD_FORM = &H00010000
%EQUATE `PRINTER_CHANGE_SET_FORM = &H00020000
%EQUATE `PRINTER_CHANGE_DELETE_FORM = &H00040000
%EQUATE `PRINTER_CHANGE_FORM = &H00070000
%EQUATE `PRINTER_CHANGE_ADD_PORT = &H00100000
%EQUATE `PRINTER_CHANGE_CONFIGURE_PORT = &H00200000
%EQUATE `PRINTER_CHANGE_DELETE_PORT = &H00400000
%EQUATE `PRINTER_CHANGE_PORT = &H00700000
%EQUATE `PRINTER_CHANGE_ADD_PRINT_PROCESSOR = &H01000000
%EQUATE `PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = &H04000000
%EQUATE `PRINTER_CHANGE_PRINT_PROCESSOR = &H07000000
%EQUATE `PRINTER_CHANGE_ADD_PRINTER_DRIVER = &H10000000
%EQUATE `PRINTER_CHANGE_DELETE_PRINTER_DRIVER = &H40000000
%EQUATE `PRINTER_CHANGE_PRINTER_DRIVER = &H70000000
%EQUATE `PRINTER_CHANGE_TIMEOUT = &H80000000
%EQUATE `PRINTER_CHANGE_ALL = &H7777FFFF
%EQUATE `PRINTER_ERROR_INFORMATION = &H80000000
%EQUATE `PRINTER_ERROR_WARNING = &H40000000
%EQUATE `PRINTER_ERROR_SEVERE = &H20000000
%EQUATE `PRINTER_ERROR_OUTOFPAPER = &H1
%EQUATE `PRINTER_ERROR_JAM = &H2
%EQUATE `PRINTER_ERROR_OUTOFTONER = &H4
%EQUATE `SERVER_ACCESS_ADMINISTER = &H1
%EQUATE `SERVER_ACCESS_ENUMERATE = &H2
%EQUATE `PRINTER_ACCESS_ADMINISTER = &H4
%EQUATE `PRINTER_ACCESS_USE = &H8
%EQUATE `JOB_ACCESS_ADMINISTER = &H10
' Windows Network support
' RESOURCE ENUMERATION
%EQUATE `RESOURCE_CONNECTED = &H1
%EQUATE `RESOURCE_PUBLICNET = &H2
%EQUATE `RESOURCE_GLOBALNET = &H2
%EQUATE `RESOURCE_REMEMBERED = &H3
%EQUATE `RESOURCE_RECENT = &H4
%EQUATE `RESOURCE_CONTEXT = &H5
%EQUATE `RESOURCETYPE_ANY = &H0
%EQUATE `RESOURCETYPE_DISK = &H1
%EQUATE `RESOURCETYPE_PRINT = &H2
%EQUATE `RESOURCETYPE_UNKNOWN = &HFFFFFFFF
%EQUATE `RESOURCEUSAGE_CONNECTABLE = &H1
%EQUATE `RESOURCEUSAGE_CONTAINER = &H2
%EQUATE `RESOURCEUSAGE_RESERVED = &H80000000
%EQUATE `RESOURCEDISPLAYTYPE_GENERIC = &H0
%EQUATE `RESOURCEDISPLAYTYPE_DOMAIN = &H1
%EQUATE `RESOURCEDISPLAYTYPE_SERVER = &H2
%EQUATE `RESOURCEDISPLAYTYPE_SHARE = &H3
%EQUATE `RESOURCEDISPLAYTYPE_FILE = &H4
%EQUATE `RESOURCEDISPLAYTYPE_GROUP = &H5
%EQUATE `CONNECT_UPDATE_PROFILE = &H1
%EQUATE `WN_SUCCESS = %NO_ERROR
%EQUATE `WN_NOT_SUPPORTED = %ERROR_NOT_SUPPORTED
%EQUATE `WN_NET_ERROR = %ERROR_UNEXP_NET_ERR
%EQUATE `WN_MORE_DATA = %ERROR_MORE_DATA
%EQUATE `WN_BAD_POINTER = %ERROR_INVALID_ADDRESS
%EQUATE `WN_BAD_VALUE = %ERROR_INVALID_PARAMETER
%EQUATE `WN_BAD_PASSWORD = %ERROR_INVALID_PASSWORD
%EQUATE `WN_ACCESS_DENIED = %ERROR_ACCESS_DENIED
%EQUATE `WN_FUNCTION_BUSY = %ERROR_BUSY
%EQUATE `WN_WINDOWS_ERROR = %ERROR_UNEXP_NET_ERR
%EQUATE `WN_BAD_USER = %ERROR_BAD_USERNAME
%EQUATE `WN_OUT_OF_MEMORY = %ERROR_NOT_ENOUGH_MEMORY
%EQUATE `WN_NO_NETWORK = %ERROR_NO_NETWORK
%EQUATE `WN_EXTENDED_ERROR = %ERROR_EXTENDED_ERROR
' Connection
%EQUATE `WN_NOT_CONNECTED = %ERROR_NOT_CONNECTED
%EQUATE `WN_OPEN_FILES = %ERROR_OPEN_FILES
%EQUATE `WN_DEVICE_IN_USE = %ERROR_DEVICE_IN_USE
%EQUATE `WN_BAD_NETNAME = %ERROR_BAD_NET_NAME
%EQUATE `WN_BAD_LOCALNAME = %ERROR_BAD_DEVICE
%EQUATE `WN_ALREADY_CONNECTED = %ERROR_ALREADY_ASSIGNED
%EQUATE `WN_DEVICE_ERROR = %ERROR_GEN_FAILURE
%EQUATE `WN_CONNECTION_CLOSED = %ERROR_CONNECTION_UNAVAIL
%EQUATE `WN_NO_NET_OR_BAD_PATH = %ERROR_NO_NET_OR_BAD_PATH
%EQUATE `WN_BAD_PROVIDER = %ERROR_BAD_PROVIDER
%EQUATE `WN_CANNOT_OPEN_PROFILE = %ERROR_CANNOT_OPEN_PROFILE
%EQUATE `WN_BAD_PROFILE = %ERROR_BAD_PROFILE
' Enumeration
%EQUATE `WN_BAD_HANDLE = %ERROR_INVALID_HANDLE
%EQUATE `WN_NO_MORE_ENTRIES = %ERROR_NO_MORE_ITEMS
%EQUATE `WN_NOT_CONTAINER = %ERROR_NOT_CONTAINER
%EQUATE `WN_NO_ERROR = %NO_ERROR
' This section contains the definitions
' for portable NetBIOS 3.0 support.
%EQUATE `NCBNAMSZ = 16 ' absolute length of a net name
%EQUATE `MAX_LANA = 254 ' lana's in range 0 to MAX_LANA
%EQUATE `NAME_FLAGS_MASK = &H87
%EQUATE `GROUP_NAME = &H80
%EQUATE `UNIQUE_NAME = &H0
%EQUATE `REGISTERING = &H0
%EQUATE `REGISTERED = &H4
%EQUATE `DEREGISTERED = &H5
%EQUATE `DUPLICATE = &H6
%EQUATE `DUPLICATE_DEREG = &H7
' Values for state
%EQUATE `LISTEN_OUTSTANDING = &H1
%EQUATE `CALL_PENDING = &H2
%EQUATE `SESSION_ESTABLISHED = &H3
%EQUATE `HANGUP_PENDING = &H4
%EQUATE `HANGUP_COMPLETE = &H5
%EQUATE `SESSION_ABORTED = &H6
' NCB Command codes
%EQUATE `NCBCALL = &H10 ' NCB CALL
%EQUATE `NCBLISTEN = &H11 ' NCB LISTEN
%EQUATE `NCBHANGUP = &H12 ' NCB HANG UP
%EQUATE `NCBSEND = &H14 ' NCB SEND
%EQUATE `NCBRECV = &H15 ' NCB RECEIVE
%EQUATE `NCBRECVANY = &H16 ' NCB RECEIVE ANY
%EQUATE `NCBCHAINSEND = &H17 ' NCB CHAIN SEND
%EQUATE `NCBDGSEND = &H20 ' NCB SEND DATAGRAM
%EQUATE `NCBDGRECV = &H21 ' NCB RECEIVE DATAGRAM
%EQUATE `NCBDGSENDBC = &H22 ' NCB SEND BROADCAST DATAGRAM
%EQUATE `NCBDGRECVBC = &H23 ' NCB RECEIVE BROADCAST DATAGRAM
%EQUATE `NCBADDNAME = &H30 ' NCB ADD NAME
%EQUATE `NCBDELNAME = &H31 ' NCB DELETE NAME
%EQUATE `NCBRESET = &H32 ' NCB RESET
%EQUATE `NCBASTAT = &H33 ' NCB ADAPTER STATUS
%EQUATE `NCBSSTAT = &H34 ' NCB SESSION STATUS
%EQUATE `NCBCANCEL = &H35 ' NCB CANCEL
%EQUATE `NCBADDGRNAME = &H36 ' NCB ADD GROUP NAME
%EQUATE `NCBENUM = &H37 ' NCB ENUMERATE LANA NUMBERS
%EQUATE `NCBUNLINK = &H70 ' NCB UNLINK
%EQUATE `NCBSENDNA = &H71 ' NCB SEND NO ACK
%EQUATE `NCBCHAINSENDNA = &H72 ' NCB CHAIN SEND NO ACK
%EQUATE `NCBLANSTALERT = &H73 ' NCB LAN STATUS ALERT
%EQUATE `NCBACTION = &H77 ' NCB ACTION
%EQUATE `NCBFINDNAME = &H78 ' NCB FIND NAME
%EQUATE `NCBTRACE = &H79 ' NCB TRACE
%EQUATE `ASYNCH = &H80 ' high bit set == asynchronous
' NCB Return codes
%EQUATE `NRC_GOODRET = &H0 ' good return
' also returned when ASYNCH request accepted
%EQUATE `NRC_BUFLEN = &H1 ' illegal buffer length
%EQUATE `NRC_ILLCMD = &H3 ' illegal command
%EQUATE `NRC_CMDTMO = &H5 ' command timed out
%EQUATE `NRC_INCOMP = &H6 ' message incomplete, issue another command
%EQUATE `NRC_BADDR = &H7 ' illegal buffer address
%EQUATE `NRC_SNUMOUT = &H8 ' session number out of range
%EQUATE `NRC_NORES = &H9 ' no resource available
%EQUATE `NRC_SCLOSED = &HA ' session closed
%EQUATE `NRC_CMDCAN = &HB ' command cancelled
%EQUATE `NRC_DUPNAME = &HD ' duplicate name
%EQUATE `NRC_NAMTFUL = &HE ' name table full
%EQUATE `NRC_ACTSES = &HF ' no deletions, name has active sessions
%EQUATE `NRC_LOCTFUL = &H11 ' local session table full
%EQUATE `NRC_REMTFUL = &H12 ' remote session table full
%EQUATE `NRC_ILLNN = &H13 ' illegal name number
%EQUATE `NRC_NOCALL = &H14 ' no callname
%EQUATE `NRC_NOWILD = &H15 ' cannot put in NCB_NAME
%EQUATE `NRC_INUSE = &H16 ' name in use on remote adapter
%EQUATE `NRC_NAMERR = &H17 ' name deleted
%EQUATE `NRC_SABORT = &H18 ' session ended abnormally
%EQUATE `NRC_NAMCONF = &H19 ' name conflict detected
%EQUATE `NRC_IFBUSY = &H21 ' interface busy, IRET before retrying
%EQUATE `NRC_TOOMANY = &H22 ' too many commands outstanding, retry later
%EQUATE `NRC_BRIDGE = &H23 ' ncb_lana_num field invalid
%EQUATE `NRC_CANOCCR = &H24 ' command completed while cancel occurring
%EQUATE `NRC_CANCEL = &H26 ' command not valid to cancel
%EQUATE `NRC_DUPENV = &H30 ' name defined by anther local process
%EQUATE `NRC_ENVNOTDEF = &H34 ' environment undefined. RESET required
%EQUATE `NRC_OSRESNOTAV = &H35 ' required OS resources exhausted
%EQUATE `NRC_MAXAPPS = &H36 ' max number of applications exceeded
%EQUATE `NRC_NOSAPS = &H37 ' no saps available for netbios
%EQUATE `NRC_NORESOURCES = &H38 ' requested resources are not available
%EQUATE `NRC_INVADDRESS = &H39 ' invalid ncb address or length > segment
%EQUATE `NRC_INVDDID = &H3B ' invalid NCB DDID
%EQUATE `NRC_LOCKFAIL = &H3C ' lock of user area failed
%EQUATE `NRC_OPENERR = &H3F ' NETBIOS not loaded
%EQUATE `NRC_SYSTEM = &H40 ' system error
%EQUATE `NRC_PENDING = &HFF ' asynchronous command is not yet finished
' Legal values for expression in except().
%EQUATE `EXCEPTION_EXECUTE_HANDLER = 1
%EQUATE `EXCEPTION_CONTINUE_SEARCH = 0
%EQUATE `EXCEPTION_CONTINUE_EXECUTION = -1
' UI dialog constants and types
' ----Constants--------------------------------------------------------------
%EQUATE `ctlFirst = &H400
%EQUATE `ctlLast = &H4FF
' Push buttons
%EQUATE `psh1 = &H400
%EQUATE `psh2 = &H401
%EQUATE `psh3 = &H402
%EQUATE `psh4 = &H403
%EQUATE `psh5 = &H404
%EQUATE `psh6 = &H405
%EQUATE `psh7 = &H406
%EQUATE `psh8 = &H407
%EQUATE `psh9 = &H408
%EQUATE `psh10 = &H409
%EQUATE `psh11 = &H40A
%EQUATE `psh12 = &H40B
%EQUATE `psh13 = &H40C
%EQUATE `psh14 = &H40D
%EQUATE `psh15 = &H40E
%EQUATE `pshHelp = %psh15
%EQUATE `psh16 = &H40F
' Checkboxes
%EQUATE `chx1 = &H410
%EQUATE `chx2 = &H411
%EQUATE `chx3 = &H412
%EQUATE `chx4 = &H413
%EQUATE `chx5 = &H414
%EQUATE `chx6 = &H415
%EQUATE `chx7 = &H416
%EQUATE `chx8 = &H417
%EQUATE `chx9 = &H418
%EQUATE `chx10 = &H419
%EQUATE `chx11 = &H41A
%EQUATE `chx12 = &H41B
%EQUATE `chx13 = &H41C
%EQUATE `chx14 = &H41D
%EQUATE `chx15 = &H41E
%EQUATE `chx16 = &H41F
' Radio buttons
%EQUATE `rad1 = &H420
%EQUATE `rad2 = &H421
%EQUATE `rad3 = &H422
%EQUATE `rad4 = &H423
%EQUATE `rad5 = &H424
%EQUATE `rad6 = &H425
%EQUATE `rad7 = &H426
%EQUATE `rad8 = &H427
%EQUATE `rad9 = &H428
%EQUATE `rad10 = &H429
%EQUATE `rad11 = &H42A
%EQUATE `rad12 = &H42B
%EQUATE `rad13 = &H42C
%EQUATE `rad14 = &H42D
%EQUATE `rad15 = &H42E
%EQUATE `rad16 = &H42F
' Groups, frames, rectangles, and icons
%EQUATE `grp1 = &H430
%EQUATE `grp2 = &H431
%EQUATE `grp3 = &H432
%EQUATE `grp4 = &H433
%EQUATE `frm1 = &H434
%EQUATE `frm2 = &H435
%EQUATE `frm3 = &H436
%EQUATE `frm4 = &H437
%EQUATE `rct1 = &H438
%EQUATE `rct2 = &H439
%EQUATE `rct3 = &H43A
%EQUATE `rct4 = &H43B
%EQUATE `ico1 = &H43C
%EQUATE `ico2 = &H43D
%EQUATE `ico3 = &H43E
%EQUATE `ico4 = &H43F
' Static text
%EQUATE `stc1 = &H440
%EQUATE `stc2 = &H441
%EQUATE `stc3 = &H442
%EQUATE `stc4 = &H443
%EQUATE `stc5 = &H444
%EQUATE `stc6 = &H445
%EQUATE `stc7 = &H446
%EQUATE `stc8 = &H447
%EQUATE `stc9 = &H448
%EQUATE `stc10 = &H449
%EQUATE `stc11 = &H44A
%EQUATE `stc12 = &H44B
%EQUATE `stc13 = &H44C
%EQUATE `stc14 = &H44D
%EQUATE `stc15 = &H44E
%EQUATE `stc16 = &H44F
%EQUATE `stc17 = &H450
%EQUATE `stc18 = &H451
%EQUATE `stc19 = &H452
%EQUATE `stc20 = &H453
%EQUATE `stc21 = &H454
%EQUATE `stc22 = &H455
%EQUATE `stc23 = &H456
%EQUATE `stc24 = &H457
%EQUATE `stc25 = &H458
%EQUATE `stc26 = &H459
%EQUATE `stc27 = &H45A
%EQUATE `stc28 = &H45B
%EQUATE `stc29 = &H45C
%EQUATE `stc30 = &H45D
%EQUATE `stc31 = &H45E
%EQUATE `stc32 = &H45F
' Listboxes
%EQUATE `lst1 = &H460
%EQUATE `lst2 = &H461
%EQUATE `lst3 = &H462
%EQUATE `lst4 = &H463
%EQUATE `lst5 = &H464
%EQUATE `lst6 = &H465
%EQUATE `lst7 = &H466
%EQUATE `lst8 = &H467
%EQUATE `lst9 = &H468
%EQUATE `lst10 = &H469
%EQUATE `lst11 = &H46A
%EQUATE `lst12 = &H46B
%EQUATE `lst13 = &H46C
%EQUATE `lst14 = &H46D
%EQUATE `lst15 = &H46E
%EQUATE `lst16 = &H46F
' Combo boxes
%EQUATE `cmb1 = &H470
%EQUATE `cmb2 = &H471
%EQUATE `cmb3 = &H472
%EQUATE `cmb4 = &H473
%EQUATE `cmb5 = &H474
%EQUATE `cmb6 = &H475
%EQUATE `cmb7 = &H476
%EQUATE `cmb8 = &H477
%EQUATE `cmb9 = &H478
%EQUATE `cmb10 = &H479
%EQUATE `cmb11 = &H47A
%EQUATE `cmb12 = &H47B
%EQUATE `cmb13 = &H47C
%EQUATE `cmb14 = &H47D
%EQUATE `cmb15 = &H47E
%EQUATE `cmb16 = &H47F
' Edit controls
%EQUATE `edt1 = &H480
%EQUATE `edt2 = &H481
%EQUATE `edt3 = &H482
%EQUATE `edt4 = &H483
%EQUATE `edt5 = &H484
%EQUATE `edt6 = &H485
%EQUATE `edt7 = &H486
%EQUATE `edt8 = &H487
%EQUATE `edt9 = &H488
%EQUATE `edt10 = &H489
%EQUATE `edt11 = &H48A
%EQUATE `edt12 = &H48B
%EQUATE `edt13 = &H48C
%EQUATE `edt14 = &H48D
%EQUATE `edt15 = &H48E
%EQUATE `edt16 = &H48F
' Scroll bars
%EQUATE `scr1 = &H490
%EQUATE `scr2 = &H491
%EQUATE `scr3 = &H492
%EQUATE `scr4 = &H493
%EQUATE `scr5 = &H494
%EQUATE `scr6 = &H495
%EQUATE `scr7 = &H496
%EQUATE `scr8 = &H497
%EQUATE `FILEOPENORD = 1536
%EQUATE `MULTIFILEOPENORD = 1537
%EQUATE `PRINTDLGORD = 1538
%EQUATE `PRNSETUPDLGORD = 1539
%EQUATE `FINDDLGORD = 1540
%EQUATE `REPLACEDLGORD = 1541
%EQUATE `FONTDLGORD = 1542
%EQUATE `FORMATDLGORD31 = 1543
%EQUATE `FORMATDLGORD30 = 1544
%EQUATE `HKEY_CLASSES_ROOT = &H80000000
%EQUATE `HKEY_CURRENT_USER = &H80000001
%EQUATE `HKEY_LOCAL_MACHINE = &H80000002
%EQUATE `HKEY_USERS = &H80000003
%EQUATE `HKEY_PERFORMANCE_DATA = &H80000004
%EQUATE `HKEY_CURRENT_CONFIG = &H80000005
%EQUATE `HKEY_DYN_DATA = &H80000006
%EQUATE `HKEY_DYNAMIC_DATA = %HKEY_DYN_DATA
%EQUATE `HKCR = %HKEY_CLASSES_ROOT
%EQUATE `HKCU = %HKEY_CURRENT_USER
%EQUATE `HKLM = %HKEY_LOCAL_MACHINE
%EQUATE `HKU = %HKEY_USERS
%EQUATE `HKPD = %HKEY_PERFORMANCE_DATA
%EQUATE `HKCC = %HKEY_CURRENT_CONFIG
%EQUATE `HKDD = %HKEY_DYN_DATA
%EQUATE `PERF_DATA_VERSION = 1
%EQUATE `PERF_DATA_REVISION = 1
%EQUATE `PERF_NO_INSTANCES = -1 ' no instances
' The counter type is the "or" of the following values as described below
'
' select one of the following to indicate the counter's data size
%EQUATE `PERF_SIZE_DWORD = &H0
%EQUATE `PERF_SIZE_LARGE = &H100
%EQUATE `PERF_SIZE_ZERO = &H200 ' for Zero Length fields
%EQUATE `PERF_SIZE_VARIABLE_LEN = &H300 ' length is in CounterLength field of Counter Definition struct
' select one of the following values to indicate the counter field usage
%EQUATE `PERF_TYPE_NUMBER = &H0 ' a number (not a counter)
%EQUATE `PERF_TYPE_COUNTER = &H400 ' an increasing numeric value
%EQUATE `PERF_TYPE_TEXT = &H800 ' a text field
%EQUATE `PERF_TYPE_ZERO = &HC00 ' displays a zero
' If the PERF_TYPE_NUMBER field was selected, then select one of the
' following to describe the Number
%EQUATE `PERF_NUMBER_HEX = &H0 ' display as HEX value
%EQUATE `PERF_NUMBER_DECIMAL = &H10000 ' display as a decimal integer
%EQUATE `PERF_NUMBER_DEC_1000 = &H20000 ' display as a decimal/1000
'
' If the PERF_TYPE_COUNTER value was selected then select one of the
' following to indicate the type of counter
%EQUATE `PERF_COUNTER_VALUE = &H0 ' display counter value
%EQUATE `PERF_COUNTER_RATE = &H10000 ' divide ctr / delta time
%EQUATE `PERF_COUNTER_FRACTION = &H20000 ' divide ctr / base
%EQUATE `PERF_COUNTER_BASE = &H30000 ' base value used in fractions
%EQUATE `PERF_COUNTER_ELAPSED = &H40000 ' subtract counter from current time
%EQUATE `PERF_COUNTER_QUEUELEN = &H50000 ' Use Queuelen processing func.
%EQUATE `PERF_COUNTER_HISTOGRAM = &H60000 ' Counter begins or ends a histogram
' If the PERF_TYPE_TEXT value was selected, then select one of the
' following to indicate the type of TEXT data.
%EQUATE `PERF_TEXT_UNICODE = &H0 ' type of text in text field
%EQUATE `PERF_TEXT_ASCII = &H10000 ' ASCII using the CodePage field
' Timer SubTypes
%EQUATE `PERF_TIMER_TICK = &H0 ' use system perf. freq for base
%EQUATE `PERF_TIMER_100NS = &H100000 ' use 100 NS timer time base units
%EQUATE `PERF_OBJECT_TIMER = &H200000 ' use the object timer freq
' Any types that have calculations performed can use one or more of
' the following calculation modification flags listed here
%EQUATE `PERF_DELTA_COUNTER = &H400000 ' compute difference first
%EQUATE `PERF_DELTA_BASE = &H800000 ' compute base diff as well
%EQUATE `PERF_INVERSE_COUNTER = &H1000000 ' show as 1.00-value (assumes:
%EQUATE `PERF_MULTI_COUNTER = &H2000000 ' sum of multiple instances
' Select one of the following values to indicate the display suffix (if any)
%EQUATE `PERF_DISPLAY_NO_SUFFIX = &H0 ' no suffix
%EQUATE `PERF_DISPLAY_PER_SEC = &H10000000 ' "/sec"
%EQUATE `PERF_DISPLAY_PERCENT = &H20000000 ' "%"
%EQUATE `PERF_DISPLAY_SECONDS = &H30000000 ' "secs"
%EQUATE `PERF_DISPLAY_NOSHOW = &H40000000 ' value is not displayed
' Predefined counter types
' 32-bit Counter. Divide delta by delta time. Display suffix: "/sec"
%EQUATE `PERF_COUNTER_COUNTER = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_PER_SEC
' 64-bit Timer. Divide delta by delta time. Display suffix: "%"
%EQUATE `PERF_COUNTER_TIMER = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_PERCENT
' Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix.
%EQUATE `PERF_COUNTER_QUEUELEN_TYPE = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_QUEUELEN OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_NO_SUFFIX
' 64-bit Counter. Divide delta by delta time. Display Suffix: "/sec"
%EQUATE `PERF_COUNTER_BULK_COUNT = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_PER_SEC
' Indicates the counter is not a counter but rather Unicode text Display as text.
%EQUATE `PERF_COUNTER_TEXT = %PERF_SIZE_VARIABLE_LEN OR %PERF_TYPE_TEXT OR %PERF_TEXT_UNICODE OR %PERF_DISPLAY_NO_SUFFIX
' Indicates the data is a counter which should not be
' time averaged on display (such as an error counter on a serial line)
' Display as is. No Display Suffix.
%EQUATE `PERF_COUNTER_RAWCOUNT = %PERF_SIZE_DWORD OR %PERF_TYPE_NUMBER OR %PERF_NUMBER_DECIMAL OR %PERF_DISPLAY_NO_SUFFIX
' A count which is either 1 or 0 on each sampling interrupt (% busy)
' Divide delta by delta base. Display Suffix: "%"
%EQUATE `PERF_SAMPLE_FRACTION = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_FRACTION OR %PERF_DELTA_COUNTER OR %PERF_DELTA_BASE OR %PERF_DISPLAY_PERCENT
' A count which is sampled on each sampling interrupt (queue length)
' Divide delta by delta time. No Display Suffix.
%EQUATE `PERF_SAMPLE_COUNTER = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_NO_SUFFIX
' A label: no data is associated with this counter (it has 0 length)
' Do not display.
%EQUATE `PERF_COUNTER_NODATA = %PERF_SIZE_ZERO OR %PERF_DISPLAY_NOSHOW
' 64-bit Timer inverse (e.g., idle is measured, but display busy as Integer)
' Display 100 - delta divided by delta time. Display suffix: "%"
%EQUATE `PERF_COUNTER_TIMER_INV = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_TICK OR %PERF_DELTA_COUNTER OR %PERF_INVERSE_COUNTER OR %PERF_DISPLAY_PERCENT
' The divisor for a sample, used with the previous counter to form a
' sampled %. You must check for >0 before dividing by this! This
' counter will directly follow the numerator counter. It should not
' be displayed to the user.
%EQUATE `PERF_SAMPLE_BASE = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_BASE OR %PERF_DISPLAY_NOSHOW OR &H1 ' for compatibility with pre-beta versions
' A timer which, when divided by an average base, produces a time
' in seconds which is the average time of some operation. This
' timer times total operations, and the base is the number of opera-
' tions. Display Suffix: "sec"
%EQUATE `PERF_AVERAGE_TIMER = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_FRACTION OR %PERF_DISPLAY_SECONDS
' Used as the denominator in the computation of time or count
' averages. Must directly follow the numerator counter. Not dis-
' played to the user.
%EQUATE `PERF_AVERAGE_BASE = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_BASE OR %PERF_DISPLAY_NOSHOW OR &H2 ' for compatibility with pre-beta versions
' A bulk count which, when divided (typically) by the number of
' operations, gives (typically) the number of bytes per operation.
' No Display Suffix.
%EQUATE `PERF_AVERAGE_BULK = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_FRACTION OR %PERF_DISPLAY_NOSHOW
' 64-bit Timer in 100 nsec units. Display delta divided by
' delta time. Display suffix: "%"
%EQUATE `PERF_100NSEC_TIMER = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_100NS OR %PERF_DELTA_COUNTER OR %PERF_DISPLAY_PERCENT
' 64-bit Timer inverse (e.g., idle is measured, but display busy AS Integer)
' Display 100 - delta divided by delta time. Display suffix: "%"
%EQUATE `PERF_100NSEC_TIMER_INV = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_100NS OR %PERF_DELTA_COUNTER OR %PERF_INVERSE_COUNTER OR %PERF_DISPLAY_PERCENT
' 64-bit Timer. Divide delta by delta time. Display suffix: "%"
' Timer for multiple instances, so result can exceed 100%.
%EQUATE `PERF_COUNTER_MULTI_TIMER = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_DELTA_COUNTER OR %PERF_TIMER_TICK OR %PERF_MULTI_COUNTER OR %PERF_DISPLAY_PERCENT
' 64-bit Timer inverse (e.g., idle is measured, but display busy AS Integer)
' Display 100 _MULTI_BASE - delta divided by delta time.
' Display suffix: "%" Timer for multiple instances, so result
' can exceed 100%. Followed by a counter of type _MULTI_BASE.
%EQUATE `PERF_COUNTER_MULTI_TIMER_INV = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_RATE OR %PERF_DELTA_COUNTER OR %PERF_MULTI_COUNTER OR %PERF_TIMER_TICK OR %PERF_INVERSE_COUNTER OR %PERF_DISPLAY_PERCENT
' Number of instances to which the preceding _MULTI_..._INV counter
' applies. Used as a factor to get the percentage.
%EQUATE `PERF_COUNTER_MULTI_BASE = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_BASE OR %PERF_MULTI_COUNTER OR %PERF_DISPLAY_NOSHOW
' 64-bit Timer in 100 nsec units. Display delta divided by delta time.
' Display suffix: "%" Timer for multiple instances, so result can exceed 100%.
%EQUATE `PERF_100NSEC_MULTI_TIMER = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_DELTA_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_100NS OR %PERF_MULTI_COUNTER OR %PERF_DISPLAY_PERCENT
' 64-bit Timer inverse (e.g., idle is measured, but display busy AS Integer)
' Display 100 _MULTI_BASE - delta divided by delta time.
' Display suffix: "%" Timer for multiple instances, so result
' can exceed 100%. Followed by a counter of type _MULTI_BASE.
%EQUATE `PERF_100NSEC_MULTI_TIMER_INV = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_DELTA_COUNTER OR %PERF_COUNTER_RATE OR %PERF_TIMER_100NS OR %PERF_MULTI_COUNTER OR %PERF_INVERSE_COUNTER OR %PERF_DISPLAY_PERCENT
' Indicates the data is a fraction of the following counter which
' should not be time averaged on display (such as free space over
' total space.) Display as is. Display the quotient as "%".
%EQUATE `PERF_RAW_FRACTION = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_FRACTION OR %PERF_DISPLAY_PERCENT
' Indicates the data is a base for the preceding counter which should
' not be time averaged on display (such as free space over total space.)
%EQUATE `PERF_RAW_BASE = %PERF_SIZE_DWORD OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_BASE OR %PERF_DISPLAY_NOSHOW OR &H3 ' for compatibility with pre-beta versions
' The data collected in this counter is actually the start time of the
' item being measured. For display, this data is subtracted from the
' sample time to yield the elapsed time as the difference between the two.
' In the definition below, the PerfTime field of the Object contains
' the sample time as indicated by the PERF_OBJECT_TIMER bit and the
' difference is scaled by the PerfFreq of the Object to convert the time
' units into seconds.
%EQUATE `PERF_ELAPSED_TIME = %PERF_SIZE_LARGE OR %PERF_TYPE_COUNTER OR %PERF_COUNTER_ELAPSED OR %PERF_OBJECT_TIMER OR %PERF_DISPLAY_SECONDS
' The following counter type can be used with the preceding types to
' define a range of values to be displayed in a histogram.
%EQUATE `PERF_COUNTER_HISTOGRAM_TYPE = &H80000000 ' Counter begins or ends a histogram
' The following are used to determine the level of detail associated
' with the counter. The user will be setting the level of detail
' that should be displayed at any given time.
%EQUATE `PERF_DETAIL_NOVICE = 100 ' The uninformed can understand it
%EQUATE `PERF_DETAIL_ADVANCED = 200 ' For the advanced user
%EQUATE `PERF_DETAIL_EXPERT = 300 ' For the expert user
%EQUATE `PERF_DETAIL_WIZARD = 400 ' For the system designer
%EQUATE `PERF_NO_UNIQUE_ID = -1
' LZEXPAND error return codes
%EQUATE `LZERROR_BADINHANDLE = -1 ' invalid input handle
%EQUATE `LZERROR_BADOUTHANDLE = -2 ' invalid output handle
%EQUATE `LZERROR_READ = -3 ' corrupt compressed file format
%EQUATE `LZERROR_WRITE = -4 ' out of space for output file
%EQUATE `LZERROR_PUBLICLOC = -5 ' insufficient memory for LZFile struct
%EQUATE `LZERROR_GLOBLOCK = -6 ' bad Global handle
%EQUATE `LZERROR_BADVALUE = -7 ' input parameter out of range
%EQUATE `LZERROR_UNKNOWNALG = -8 ' compression algorithm not recognized
%EQUATE `STYLE_DESCRIPTION_SIZE = 32
%EQUATE `WM_IME_STARTCOMPOSITION = &H10D
%EQUATE `WM_IME_ENDCOMPOSITION = &H10E
%EQUATE `WM_IME_COMPOSITION = &H10F
%EQUATE `WM_IME_KEYLAST = &H10F
%EQUATE `WM_IME_SETCONTEXT = &H281
%EQUATE `WM_IME_NOTIFY = &H282
%EQUATE `WM_IME_CONTROL = &H283
%EQUATE `WM_IME_COMPOSITIONFULL = &H284
%EQUATE `WM_IME_SELECT = &H285
%EQUATE `WM_IME_CHAR = &H286
%EQUATE `WM_IME_REQUEST = &H0288
%EQUATE `WM_IME_KEYDOWN = &H290
%EQUATE `WM_IME_KEYUP = &H291
%EQUATE `ABM_NEW = &H0
%EQUATE `ABM_REMOVE = &H1
%EQUATE `ABM_QUERYPOS = &H2
%EQUATE `ABM_SETPOS = &H3
%EQUATE `ABM_GETSTATE = &H4
%EQUATE `ABM_GETTASKBARPOS = &H5
%EQUATE `ABM_ACTIVATE = &H6 ' lParam == TRUE/FALSE means activate/deactivate
%EQUATE `ABM_GETAUTOHIDEBAR = &H7
%EQUATE `ABM_SETAUTOHIDEBAR = &H8 ' this can fail at any time. MUST check the result
' lParam = TRUE/FALSE Set/Unset
' uEdge = what edge
%EQUATE `ABM_WINDOWPOSCHANGED = &H9
' these are put in the wparam of callback messages
%EQUATE `ABN_STATECHANGE = &H0
%EQUATE `ABN_POSCHANGED = &H1
%EQUATE `ABN_FULLSCREENAPP = &H2
%EQUATE `ABN_WINDOWARRANGE = &H3 ' lParam == TRUE means hide
' flags for get state
%EQUATE `ABS_AUTOHIDE = &H1
%EQUATE `ABS_ALWAYSONTOP = &H2
%EQUATE `ABE_LEFT = 0
%EQUATE `ABE_TOP = 1
%EQUATE `ABE_RIGHT = 2
%EQUATE `ABE_BOTTOM = 3
%EQUATE `EIRESID = -1
%EQUATE `FO_MOVE = &H1
%EQUATE `FO_COPY = &H2
%EQUATE `FO_DELETE = &H3
%EQUATE `FO_RENAME = &H4
%EQUATE `FOF_MULTIDESTFILES = &H1
%EQUATE `FOF_CONFIRMMOUSE = &H2
%EQUATE `FOF_SILENT = &H4 ' don't create progress/report
%EQUATE `FOF_RENAMEONCOLLISION = &H8
%EQUATE `FOF_NOCONFIRMATION = &H10 ' Don't prompt the user.
%EQUATE `FOF_WANTMAPPINGHANDLE = &H20 ' Fill in SHFILEOPSTRUCT.hNameMappings
' Must be freed using SHFreeNameMappings
%EQUATE `FOF_ALLOWUNDO = &H40
%EQUATE `FOF_FILESONLY = &H80 ' on *.*, do only files
%EQUATE `FOF_SIMPLEPROGRESS = &H100 ' means don't show names of files
%EQUATE `FOF_NOCONFIRMMKDIR = &H200 ' don't confirm making any needed dirs
%EQUATE `FOF_NOERRORUI = &H00400 ' don't put up error UI
%EQUATE `FOF_NOCOPYSECURITYATTRIBS = &H00800 ' don't copy NT file Security Attributes
%EQUATE `FOF_NORECURSION = &H01000 ' don't recurse into directories.
%EQUATE `FOF_NO_CONNECTED_ELEMENTS = &H02000 ' don't operate on connected file elements.
%EQUATE `FOF_WANTNUKEWARNING = &H04000 ' during delete operation, warn if nuking instead of recycling (partially overrides FOF_NOCONFIRMATION)
%EQUATE `FOF_NORECURSEREPARSE = &H08000 ' treat reparse points as objects, not containers
%EQUATE `PO_DELETE = &H13 ' printer is being deleted
%EQUATE `PO_RENAME = &H14 ' printer is being renamed
%EQUATE `PO_PORTCHANGE = &H20 ' port this printer connected to is being changed
' if this id is set, the strings received by
' the copyhook are a doubly-null terminated
' list of strings. The first is the printer
' name and the second is the printer port.
%EQUATE `PO_REN_PORT = &H34 ' PO_RENAME and PO_PORTCHANGE at same time.
' no POF_ flags currently defined
' regular WinExec() codes
%EQUATE `SE_ERR_FNF = 2 ' file not found
%EQUATE `SE_ERR_PNF = 3 ' path not found
%EQUATE `SE_ERR_ACCESSDENIED = 5 ' access denied
%EQUATE `SE_ERR_OOM = 8 ' out of memory
%EQUATE `SE_ERR_DLLNOTFOUND = 32
' Note CLASSKEY overrides CLASSNAME
%EQUATE `SEE_MASK_CLASSNAME = &H00000001
%EQUATE `SEE_MASK_CLASSKEY = &H00000003
' Note INVOKEIDLIST overrides IDLIST
%EQUATE `SEE_MASK_IDLIST = &H00000004
%EQUATE `SEE_MASK_INVOKEIDLIST = &H0000000C
%EQUATE `SEE_MASK_ICON = &H00000010
%EQUATE `SEE_MASK_HOTKEY = &H00000020
%EQUATE `SEE_MASK_NOCLOSEPROCESS = &H00000040
%EQUATE `SEE_MASK_CONNECTNETDRV = &H00000080
%EQUATE `SEE_MASK_FLAG_DDEWAIT = &H00000100
%EQUATE `SEE_MASK_DOENVSUBST = &H00000200
%EQUATE `SEE_MASK_FLAG_NO_UI = &H00000400
%EQUATE `SEE_MASK_UNICODE = &H00004000
%EQUATE `SEE_MASK_NO_CONSOLE = &H00008000
%EQUATE `SEE_MASK_ASYNCOK = &H00100000
%EQUATE `SEE_MASK_HMONITOR = &H00200000
%EQUATE `SEE_MASK_NOQUERYCLASSSTORE = &H01000000
%EQUATE `SEE_MASK_WAITFORINPUTIDLE = &H02000000
%EQUATE `SEE_MASK_FLAG_LOG_USAGE = &H04000000
%EQUATE `SEE_MASK_NOZONECHECKS = &H00800000
' flags for SHEmptyRecycleBin
%EQUATE `SHERB_NOCONFIRMATION = &H00000001
%EQUATE `SHERB_NOPROGRESSUI = &H00000002
%EQUATE `SHERB_NOSOUND = &H00000004
%EQUATE `NIN_SELECT = %WM_USER
%EQUATE `NINF_KEY = 1
%EQUATE `NIN_KEYSELECT = %NIN_SELECT OR %NINF_KEY
%EQUATE `NIN_BALLOONSHOW = %WM_USER + 2
%EQUATE `NIN_BALLOONHIDE = %WM_USER + 3
%EQUATE `NIN_BALLOONTIMEOUT = %WM_USER + 4
%EQUATE `NIN_BALLOONUSERCLICK = %WM_USER + 5
%EQUATE `NIM_ADD = &H00000000
%EQUATE `NIM_MODIFY = &H00000001
%EQUATE `NIM_DELETE = &H00000002
%EQUATE `NIM_SETFOCUS = &H00000003
%EQUATE `NIM_SETVERSION = &H00000004
%EQUATE `NIF_MESSAGE = &H00000001
%EQUATE `NIF_ICON = &H00000002
%EQUATE `NIF_TIP = &H00000004
%EQUATE `NIF_STATE = &H00000008
%EQUATE `NIF_INFO = &H00000010
%EQUATE `NIF_GUID = &H00000020
%EQUATE `NIS_HIDDEN = &H00000001
%EQUATE `NIS_SHAREDICON = &H00000002
' Notify Icon Infotip flags
%EQUATE `NIIF_NONE = &H00000000
' icon flags are mutually exclusive
' and take only the lowest 2 bits
%EQUATE `NIIF_INFO = &H00000001
%EQUATE `NIIF_WARNING = &H00000002
%EQUATE `NIIF_ERROR = &H00000003
%EQUATE `NIIF_ICON_MASK = &H0000000F
%EQUATE `NIIF_NOSOUND = &H00000010
%EQUATE `SHGFI_ICON = &H00000100 ' get icon
%EQUATE `SHGFI_DISPLAYNAME = &H00000200 ' get display name
%EQUATE `SHGFI_TYPENAME = &H00000400 ' get type name
%EQUATE `SHGFI_ATTRIBUTES = &H00000800 ' get attributes
%EQUATE `SHGFI_ICONLOCATION = &H00001000 ' get icon location
%EQUATE `SHGFI_EXETYPE = &H00002000 ' return exe type
%EQUATE `SHGFI_SYSICONINDEX = &H00004000 ' get system icon index
%EQUATE `SHGFI_LINKOVERLAY = &H00008000 ' put a link overlay on icon
%EQUATE `SHGFI_SELECTED = &H00010000 ' show icon in selected state
%EQUATE `SHGFI_ATTR_SPECIFIED = &H00020000 ' get only specified attributes
%EQUATE `SHGFI_LARGEICON = &H00000000 ' get large icon
%EQUATE `SHGFI_SMALLICON = &H00000001 ' get small icon
%EQUATE `SHGFI_OPENICON = &H00000002 ' get open icon
%EQUATE `SHGFI_SHELLICONSIZE = &H00000004 ' get shell size icon
%EQUATE `SHGFI_PIDL = &H00000008 ' pszPath is a pidl
%EQUATE `SHGFI_USEFILEATTRIBUTES = &H00000010 ' use passed dwFileAttribute
%EQUATE `SHGFI_ADDOVERLAYS = &H00000020 ' apply the appropriate overlays
%EQUATE `SHGFI_OVERLAYINDEX = &H00000040 ' Get the index of the overlay
 ' in the upper 8 bits of the iIcon
%EQUATE `SHGNLI_PIDL = &H00000001 ' pszLinkTo is a pidl
%EQUATE `SHGNLI_PREFIXNAME = &H00000002 ' Make name "Shortcut to xxx"
%EQUATE `SHGNLI_NOUNIQUE = &H00000004 ' don't do the unique name generation
%EQUATE `SHGNLI_NOLNK = &H00000008 ' don't add ".lnk" extension
' Printer stuff
'
%EQUATE `PRINTACTION_OPEN = 0
%EQUATE `PRINTACTION_PROPERTIES = 1
%EQUATE `PRINTACTION_NETINSTALL = 2
%EQUATE `PRINTACTION_NETINSTALLLINK = 3
%EQUATE `PRINTACTION_TESTPAGE = 4
%EQUATE `PRINTACTION_OPENNETPRN = 5
%EQUATE `PRINTACTION_DOCUMENTDEFAULTS = 6
%EQUATE `PRINTACTION_SERVERPROPERTIES = 7
%EQUATE `OFFLINE_STATUS_LOCAL = &H0001 ' If open, it's open locally
%EQUATE `OFFLINE_STATUS_REMOTE = &H0002 ' If open, it's open remotely
%EQUATE `OFFLINE_STATUS_INCOMPLETE = &H0004 ' The local copy is currently imcomplete.
 ' The file will not be available offline
 ' until it has been synchronized.
%EQUATE `SHIL_LARGE = 0 ' normally 32x32
%EQUATE `SHIL_SMALL = 1 ' normally 16x16
%EQUATE `SHIL_EXTRALARGE = 2
%EQUATE `SHIL_SYSSMALL = 3 ' like %SHIL_SMALL, but tracks system small icon metric correctly
%EQUATE `SHIL_JUMBO = 4 ' normally 256x256
%EQUATE `SHIL_LAST = %SHIL_JUMBO
' QueryContextMenu uFlags
%EQUATE `CMF_NORMAL = &H00000000
%EQUATE `CMF_DEFAULTONLY = &H00000001
%EQUATE `CMF_VERBSONLY = &H00000002
%EQUATE `CMF_EXPLORE = &H00000004
%EQUATE `CMF_NOVERBS = &H00000008
%EQUATE `CMF_CANRENAME = &H00000010
%EQUATE `CMF_NODEFAULT = &H00000020
%EQUATE `CMF_INCLUDESTATIC = &H00000040
%EQUATE `CMF_EXTENDEDVERBS = &H00000100 ' rarely used verbs
%EQUATE `CMF_RESERVED = &Hffff0000 ' View specific
' GetCommandString uFlags
%EQUATE `GCS_VERBA = &H00000000 ' canonical verb
%EQUATE `GCS_HELPTEXTA = &H00000001 ' help text (for status bar)
%EQUATE `GCS_VALIDATEA = &H00000002 ' validate command exists
%EQUATE `GCS_VERBW = &H00000004 ' canonical verb (unicode)
%EQUATE `GCS_HELPTEXTW = &H00000005 ' help text (unicode version)
%EQUATE `GCS_VALIDATEW = &H00000006 ' validate command exists (unicode)
%EQUATE `GCS_UNICODE = &H00000004 ' for bit testing - Unicode string
%EQUATE `GCS_VERB = %GCS_VERBA
%EQUATE `GCS_HELPTEXT = %GCS_HELPTEXTA
%EQUATE `GCS_VALIDATE = %GCS_VALIDATEA
$CMDSTR_NEWFOLDER = "NewFolder"
$CMDSTR_VIEWLIST = "ViewList"
$CMDSTR_VIEWDETAILS = "ViewDetails"
' GetIconLocation() input flags
%EQUATE `GIL_OPENICON = &H0001 ' allows containers to specify an "open" look
%EQUATE `GIL_FORSHELL = &H0002 ' icon is to be displayed in a ShellFolder
%EQUATE `GIL_ASYNC = &H0020 ' this is an async extract, return E_PENDING
%EQUATE `GIL_DEFAULTICON = &H0040 ' get the default icon location if the final one takes too long to get
%EQUATE `GIL_FORSHORTCUT = &H0080 ' the icon is for a shortcut to the object
' GetIconLocation() return flags
%EQUATE `GIL_SIMULATEDOC = &H0001 ' simulate this document icon for this
%EQUATE `GIL_PERINSTANCE = &H0002 ' icons from this class are per instance (each file has its own)
%EQUATE `GIL_PERCLASS = &H0004 ' icons from this class per class (shared for all files of this type)
%EQUATE `GIL_NOTFILENAME = &H0008 ' location is not a filename, must call ::ExtractIcon
%EQUATE `GIL_DONTCACHE = &H0010 ' this icon should not be cached
%EQUATE `ISIOI_ICONFILE = &H00000001 ' path is returned through pwszIconFile
%EQUATE `ISIOI_ICONINDEX = &H00000002 ' icon index in pwszIconFile is returned through pIndex
%EQUATE `OI_ASYNC = &HFFFFEEEE
%EQUATE `IDO_SHGIOI_SHARE = &H0FFFFFFF
%EQUATE `IDO_SHGIOI_LINK = &H0FFFFFFE
%EQUATE `IDO_SHGIOI_SLOWFILE = &H0FFFFFFFD
%EQUATE `IDO_SHGIOI_DEFAULT = &H0FFFFFFFC
' IShellLinkDataList::GetFlags()/SetFlags()
' SHELL_LINK_DATA_FLAGS enumerated type
%EQUATE `SLDF_HAS_ID_LIST = &H00000001 ' Shell link saved with ID list
%EQUATE `SLDF_HAS_LINK_INFO = &H00000002 ' Shell link saved with LinkInfo
%EQUATE `SLDF_HAS_NAME = &H00000004
%EQUATE `SLDF_HAS_RELPATH = &H00000008
%EQUATE `SLDF_HAS_WORKINGDIR = &H00000010
%EQUATE `SLDF_HAS_ARGS = &H00000020
%EQUATE `SLDF_HAS_ICONLOCATION = &H00000040
%EQUATE `SLDF_UNICODE = &H00000080 ' the strings are unicode
%EQUATE `SLDF_FORCE_NO_LINKINFO = &H00000100 ' don't create a LINKINFO (make a dumb link)
%EQUATE `SLDF_HAS_EXP_SZ = &H00000200 ' the link contains expandable env strings
%EQUATE `SLDF_RUN_IN_SEPARATE = &H00000400 ' Run the 16-bit target exe in a separate VDM/WOW
%EQUATE `SLDF_HAS_LOGO3ID = &H00000800 ' this link is a special Logo3/MSICD link
%EQUATE `SLDF_HAS_DARWINID = &H00001000 ' this link is a special Darwin link
%EQUATE `SLDF_RUNAS_USER = &H00002000 ' Run this link as a different user
%EQUATE `SLDF_HAS_EXP_ICON_SZ = &H00004000 ' contains expandable env string for icon path
%EQUATE `SLDF_NO_PIDL_ALIAS = &H00008000 ' don't ever resolve to a logical location
%EQUATE `SLDF_FORCE_UNCNAME = &H00010000 ' make GetPath() prefer the UNC name to the local name
%EQUATE `SLDF_RUN_WITH_SHIMLAYER = &H00020000 ' Launch the target of this link w/ shim layer active
%EQUATE `SLDF_RESERVED = &H80000000 ' Reserved-- so we can use the low word as an index value in the future
%EQUATE `NT_CONSOLE_PROPS_SIG = &HA0000002
%EQUATE `NT_FE_CONSOLE_PROPS_SIG = &HA0000004
%EQUATE `EXP_DARWIN_ID_SIG = &HA0000006
' BUGBUG (reinerf) - this has the same value as EXP_SZ_ICON_SIG?!?!?!
%EQUATE `EXP_LOGO3_ID_SIG = &HA0000007
%EQUATE `EXP_SPECIAL_FOLDER_SIG = &HA0000005 ' LPEXP_SPECIAL_FOLDER
%EQUATE `EXP_SZ_LINK_SIG = &HA0000001 ' LPEXP_SZ_LINK (target)
%EQUATE `EXP_SZ_ICON_SIG = &HA0000007 ' LPEXP_SZ_LINK (icon)
' Define File View Show Info Flags.
%EQUATE `FVSIF_RECT = &H00000001 ' The rect variable has valid data.
%EQUATE `FVSIF_PINNED = &H00000002 ' We should Initialize pinned
%EQUATE `FVSIF_NEWFAILED = &H08000000 ' The new file passed back failed
 ' to be viewed.
%EQUATE `FVSIF_NEWFILE = &H80000000 ' A new file to view has been returned
%EQUATE `FVSIF_CANVIEWIT = &H40000000 ' The viewer can view it.
%EQUATE `FCIDM_SHVIEWFIRST = &H00000
%EQUATE `FCIDM_SHVIEWLAST = &H07fff
%EQUATE `FCIDM_BROWSERFIRST = &H0a000
%EQUATE `FCIDM_BROWSERLAST = &H0bf00
%EQUATE `FCIDM_GLOBALFIRST = &H08000
%EQUATE `FCIDM_GLOBALLAST = &H09fff
'
' Global submenu IDs and separator IDs
'
%EQUATE `FCIDM_MENU_FILE = %FCIDM_GLOBALFIRST + &H0000
%EQUATE `FCIDM_MENU_EDIT = %FCIDM_GLOBALFIRST + &H0040
%EQUATE `FCIDM_MENU_VIEW = %FCIDM_GLOBALFIRST + &H0080
%EQUATE `FCIDM_MENU_VIEW_SEP_OPTIONS = %FCIDM_GLOBALFIRST + &H0081
%EQUATE `FCIDM_MENU_TOOLS = %FCIDM_GLOBALFIRST + &H00c0 ' for Win9x compat
%EQUATE `FCIDM_MENU_TOOLS_SEP_GOTO = %FCIDM_GLOBALFIRST + &H00c1 ' for Win9x compat
%EQUATE `FCIDM_MENU_HELP = %FCIDM_GLOBALFIRST + &H0100
%EQUATE `FCIDM_MENU_FIND = %FCIDM_GLOBALFIRST + &H0140
%EQUATE `FCIDM_MENU_EXPLORE = %FCIDM_GLOBALFIRST + &H0150
%EQUATE `FCIDM_MENU_FAVORITES = %FCIDM_GLOBALFIRST + &H0170
' control IDs known to the view
%EQUATE `FCIDM_TOOLBAR = %FCIDM_BROWSERFIRST
%EQUATE `FCIDM_STATUS = %FCIDM_BROWSERFIRST + 1
' The resource id of the offline cursor
' This cursor is avaialble in shdocvw.dll
%EQUATE `IDC_OFFLINE_HAND = 103
%EQUATE `CDBOSC_SETFOCUS = &H00000000
%EQUATE `CDBOSC_KILLFOCUS = &H00000001
%EQUATE `CDBOSC_SELCHANGE = &H00000002
%EQUATE `CDBOSC_RENAME = &H00000003
%EQUATE `CDBOSC_STATECHANGE = &H00000004
%EQUATE `CDB2N_CONTEXTMENU_DONE = &H00000001
%EQUATE `CDB2N_CONTEXTMENU_START = &H00000002
' GetViewFlags
%EQUATE `CDB2GVF_SHOWALLFILES = &H00000001
' Browsing for directory.
%EQUATE `BIF_STATUSTEXT = &H0004 ' Top of the dialog has 2 lines of text for BROWSEINFO.lpszTitle and one line if
 ' this flag is set. Passing the message BFFM_SETSTATUSTEXTA to the hwnd can set the
 ' rest of the text. This is not used with BIF_USENEWUI and BROWSEINFO.lpszTitle gets
 ' all three lines of text.
%EQUATE `BIF_BROWSEFORCOMPUTER = &H00001000 ' Browsing for Computers.
%EQUATE `BIF_BROWSEFORPRINTER = &H00002000 ' Browsing for Printers
' message from browser
%EQUATE `BFFM_INITIALIZED = 1
%EQUATE `BFFM_SELCHANGED = 2
%EQUATE `BFFM_VALIDATEFAILEDA = 3 ' lParam:szPath ret:1(cont),0(EndDialog)
%EQUATE `BFFM_VALIDATEFAILEDW = 4 ' lParam:wzPath ret:1(cont),0(EndDialog)
' messages to browser
%EQUATE `BFFM_SETSTATUSTEXTA = %WM_USER + 100
%EQUATE `BFFM_ENABLEOK = %WM_USER + 101
%EQUATE `BFFM_SETSELECTIONA = %WM_USER + 102
%EQUATE `BFFM_SETSELECTIONW = %WM_USER + 103
%EQUATE `BFFM_SETSTATUSTEXTW = %WM_USER + 104
%EQUATE `BFFM_SETOKTEXT = %WM_USER + 105 ' Unicode only
%EQUATE `BFFM_SETEXPANDED = %WM_USER + 106 ' Unicode only
#IF %DEF(%UNICODE)
%EQUATE `BFFM_SETSTATUSTEXT = %BFFM_SETSTATUSTEXTW
%EQUATE `BFFM_SETSELECTION = %BFFM_SETSELECTIONW
%EQUATE `BFFM_VALIDATEFAILED = %BFFM_VALIDATEFAILEDW
#ELSE
%EQUATE `BFFM_SETSTATUSTEXT = %BFFM_SETSTATUSTEXTA
%EQUATE `BFFM_SETSELECTION = %BFFM_SETSELECTIONA
%EQUATE `BFFM_VALIDATEFAILED = %BFFM_VALIDATEFAILEDA
#ENDIF
' SHAddToRecentDocs
%EQUATE `SHARD_PIDL = &H00000001
%EQUATE `SHARD_PATHA = &H00000002
%EQUATE `SHARD_PATHW = &H00000003
%EQUATE `SHARD_PATH = %SHARD_PATHA
%EQUATE `ISHCUTCMDID_DOWNLOADICON = 0
%EQUATE `ISHCUTCMDID_INTSHORTCUTCREATE = 1
%EQUATE `CMDID_INTSHORTCUTCREATE = %ISHCUTCMDID_INTSHORTCUTCREATE
' Flags for IProgressDialog::StartProgressDialog() (dwFlags)
%EQUATE `PROGDLG_NORMAL = &H00000000 ' default normal progress dlg behavior
%EQUATE `PROGDLG_MODAL = &H00000001 ' the dialog is modal to its hwndParent (default is modeless)
%EQUATE `PROGDLG_AUTOTIME = &H00000002 ' automatically updates the "Line3" text with the "time remaining" (you can't call SetLine3 if you pass this!)
%EQUATE `PROGDLG_NOTIME = &H00000004 ' we don't show the "time remaining" if this is set. We need this if dwTotal < dwCompleted for sparse files
%EQUATE `PROGDLG_NOMINIMIZE = &H00000008 ' Do not have a minimize button in the caption bar.
%EQUATE `PROGDLG_NOPROGRESSBAR = &H00000010 ' Don't display the progress bar
' Time Actions (dwTimerAction)
%EQUATE `PDTIMER_RESET = &H00000001 ' Reset the timer so the progress will be calculated from now until the first ::SetProgress() is called so
' flags for RemoveToolbar
%EQUATE `DWFRF_NORMAL = &H0000
%EQUATE `DWFRF_DELETECONFIGDATA = &H0001
' flags for AddToolbar
%EQUATE `DWFAF_HIDDEN = &H0001 ' add hidden
' Convenient state values
%EQUATE `IRTIR_TASK_NOT_RUNNING = 0
%EQUATE `IRTIR_TASK_RUNNING = 1
%EQUATE `IRTIR_TASK_SUSPENDED = 2
%EQUATE `IRTIR_TASK_PENDING = 3
%EQUATE `IRTIR_TASK_FINISHED = 4
%EQUATE `COMPONENT_TOP = &H3fffffff ' izOrder value meaning component is at the top
' iCompType values
%EQUATE `COMP_TYPE_HTMLDOC = 0
%EQUATE `COMP_TYPE_PICTURE = 1
%EQUATE `COMP_TYPE_WEBSITE = 2
%EQUATE `COMP_TYPE_CONTROL = 3
%EQUATE `COMP_TYPE_CFHTML = 4
%EQUATE `COMP_TYPE_MAX = 4
' Defines for dwCurItemState
%EQUATE `IS_NORMAL = &H00000001
%EQUATE `IS_FULLSCREEN = &H00000002
%EQUATE `IS_SPLIT = &H00000004
%EQUATE `IS_VALIDSIZESTATEBITS = %IS_NORMAL OR %IS_SPLIT OR %IS_FULLSCREEN ' The set of IS_* state bits which define the "size" of the component - these bits are mutually exclusive.
%EQUATE `IS_VALIDSTATEBITS = %IS_NORMAL OR %IS_SPLIT OR %IS_FULLSCREEN OR &H80000000 OR &H40000000 ' All of the currently defined %IS_* bits.
' Flags for IActiveDesktop::ApplyChanges()
%EQUATE `AD_APPLY_SAVE = &H00000001
%EQUATE `AD_APPLY_HTMLGEN = &H00000002
%EQUATE `AD_APPLY_REFRESH = &H00000004
%EQUATE `AD_APPLY_ALL = %AD_APPLY_SAVE OR %AD_APPLY_HTMLGEN OR %AD_APPLY_REFRESH
%EQUATE `AD_APPLY_FORCE = &H00000008
%EQUATE `AD_APPLY_BUFFERED_REFRESH = &H00000010
%EQUATE `AD_APPLY_DYNAMICREFRESH = &H00000020
' Flags for IActiveDesktop::GetWallpaperOptions()
' IActiveDesktop::SetWallpaperOptions()
%EQUATE `WPSTYLE_CENTER = 0
%EQUATE `WPSTYLE_TILE = 1
%EQUATE `WPSTYLE_STRETCH = 2
%EQUATE `WPSTYLE_MAX = 3
%EQUATE `SETWALLPAPER_DEFAULT = &HFFFFFFFF
' Flags for IActiveDesktop::ModifyComponent()
%EQUATE `COMP_ELEM_TYPE = &H00000001
%EQUATE `COMP_ELEM_CHECKED = &H00000002
%EQUATE `COMP_ELEM_DIRTY = &H00000004
%EQUATE `COMP_ELEM_NOSCROLL = &H00000008
%EQUATE `COMP_ELEM_POS_LEFT = &H00000010
%EQUATE `COMP_ELEM_POS_TOP = &H00000020
%EQUATE `COMP_ELEM_SIZE_WIDTH = &H00000040
%EQUATE `COMP_ELEM_SIZE_HEIGHT = &H00000080
%EQUATE `COMP_ELEM_POS_ZINDEX = &H00000100
%EQUATE `COMP_ELEM_SOURCE = &H00000200
%EQUATE `COMP_ELEM_FRIENDLYNAME = &H00000400
%EQUATE `COMP_ELEM_SUBSCRIBEDURL = &H00000800
%EQUATE `COMP_ELEM_ORIGINAL_CSI = &H00001000
%EQUATE `COMP_ELEM_RESTORED_CSI = &H00002000
%EQUATE `COMP_ELEM_CURITEMSTATE = &H00004000
%EQUATE `COMP_ELEM_ALL = %COMP_ELEM_TYPE OR %COMP_ELEM_CHECKED OR %COMP_ELEM_DIRTY OR %COMP_ELEM_NOSCROLL OR %COMP_ELEM_POS_LEFT OR %COMP_ELEM_SIZE_WIDTH OR %COMP_ELEM_SIZE_HEIGHT OR %COMP_ELEM_POS_ZINDEX OR %COMP_ELEM_SOURCE OR %COMP_ELEM_FRIENDLYNAME OR %COMP_ELEM_POS_TOP OR %COMP_ELEM_SUBSCRIBEDURL OR %COMP_ELEM_ORIGINAL_CSI OR %COMP_ELEM_RESTORED_CSI OR %COMP_ELEM_CURITEMSTATE
' Flags for IActiveDesktop::AddDesktopItemWithUI()
' enum tagDTI_ADTIWUI
%EQUATE `DTI_ADDUI_DEFAULT = &H00000000
%EQUATE `DTI_ADDUI_DISPSUBWIZARD = &H00000001
%EQUATE `DTI_ADDUI_POSITIONITEM = &H00000002
' Flags for IActiveDesktop::AddUrl()
%EQUATE `ADDURL_SILENT = &H0001
' Default positions for ADI
%EQUATE `COMPONENT_DEFAULT_LEFT = &H0FFFF
%EQUATE `COMPONENT_DEFAULT_TOP = &H0FFFF
%EQUATE `MAX_COLUMN_NAME_LEN = 80
%EQUATE `MAX_COLUMN_DESC_LEN = 128
%EQUATE `SHCDF_UPDATEITEM = &H00000001 ' this flag is a hint that the file has changed since the last call to GetItemData
' FILEDESCRIPTOR.dwFlags field indicate which fields are to be used
' (enumerated type FD_FLAGS)
'
%EQUATE `FD_CLSID = &H00001
%EQUATE `FD_SIZEPOINT = &H00002
%EQUATE `FD_ATTRIBUTES = &H00004
%EQUATE `FD_CREATETIME = &H00008
%EQUATE `FD_ACCESSTIME = &H00010
%EQUATE `FD_WRITESTIME = &H00020
%EQUATE `FD_FILESIZE = &H00040
%EQUATE `FD_PROGRESSUI = &H04000 ' Show Progress UI w/Drag and Drop
%EQUATE `FD_LINKUI = &H08000 ' 'link' UI is prefered
' File System Notification flags
%EQUATE `SHCNE_RENAMEITEM = &H00000001
%EQUATE `SHCNE_CREATE = &H00000002
%EQUATE `SHCNE_DELETE = &H00000004
%EQUATE `SHCNE_MKDIR = &H00000008
%EQUATE `SHCNE_RMDIR = &H00000010
%EQUATE `SHCNE_MEDIAINSERTED = &H00000020
%EQUATE `SHCNE_MEDIAREMOVED = &H00000040
%EQUATE `SHCNE_DRIVEREMOVED = &H00000080
%EQUATE `SHCNE_DRIVEADD = &H00000100
%EQUATE `SHCNE_NETSHARE = &H00000200
%EQUATE `SHCNE_NETUNSHARE = &H00000400
%EQUATE `SHCNE_ATTRIBUTES = &H00000800
%EQUATE `SHCNE_UPDATEDIR = &H00001000
%EQUATE `SHCNE_UPDATEITEM = &H00002000
%EQUATE `SHCNE_SERVERDISCONNECT = &H00004000
%EQUATE `SHCNE_UPDATEIMAGE = &H00008000
%EQUATE `SHCNE_DRIVEADDGUI = &H00010000
%EQUATE `SHCNE_RENAMEFOLDER = &H00020000
%EQUATE `SHCNE_FREESPACE = &H00040000
' %SHCNE_EXTENDED_EVENT: the extended event is identified in dwItem1,
' packed in LPITEMIDLIST format (same as SHCNF_DWORD packing).
' Additional information can be passed in the dwItem2 parameter
' of SHChangeNotify (called "pidl2" below), which if present, must also
' be in LPITEMIDLIST format.
'
' Unlike the standard events, the extended events are ORDINALs, so we
' don't run out of bits. Extended events follow the SHCNEE_* naming
' convention.
'
' The dwItem2 parameter varies according to the extended event.
%EQUATE `SHCNE_EXTENDED_EVENT = &H04000000
%EQUATE `SHCNE_ASSOCCHANGED = &H08000000
%EQUATE `SHCNE_DISKEVENTS = &H0002381F
%EQUATE `SHCNE_GLOBALEVENTS = &H0C0581E0 ' Events that dont match pidls first
%EQUATE `SHCNE_ALLEVENTS = &H7FFFFFFF
%EQUATE `SHCNE_INTERRUPT = &H80000000 ' The presence of this flag indicates
 ' that the event was generated by an
 ' interrupt. It is stripped out before
 ' the clients of SHCNNotify_ see it.
' SHCNE_EXTENDED_EVENT extended events. These events are ordinals.
' This is not a bitfield.
%EQUATE `SHCNEE_ORDERCHANGED = 2 ' pidl2 is the changed folder
%EQUATE `SHCNEE_MSI_CHANGE = 4 ' pidl2 is a SHChangeProductKeyAsIDList
%EQUATE `SHCNEE_MSI_UNINSTALL = 5 ' pidl2 is a SHChangeProductKeyAsIDList
' Flags
' uFlags & SHCNF_TYPE is an ID which indicates what dwItem1 and dwItem2 mean
%EQUATE `SHCNF_IDLIST = &H0000
%EQUATE `SHCNF_PATHA = &H0001 ' path name
%EQUATE `SHCNF_PRINTERA = &H0002 ' printer friendly name
%EQUATE `SHCNF_DWORD = &H0003
%EQUATE `SHCNF_PATHW = &H0005 ' path name
%EQUATE `SHCNF_PRINTERW = &H0006 ' printer friendly name
%EQUATE `SHCNF_TYPE = &H00FF
%EQUATE `SHCNF_FLUSH = &H1000
%EQUATE `SHCNF_FLUSHNOWAIT = &H2000
%EQUATE `QITIPF_DEFAULT = &H00000000
%EQUATE `QITIPF_USENAME = &H00000001
%EQUATE `QITIPF_LINKNOTARGET = &H00000002
%EQUATE `QITIPF_LINKUSETARGET = &H00000004
%EQUATE `QITIPF_USESLOWTIP = &H00000008 ' Flag says it's OK to take a long time generating tip
%EQUATE `QIF_CACHED = &H00000001
%EQUATE `QIF_DONTEXPANDFOLDER = &H00000002
%EQUATE `SHGDFIL_FINDDATA = 1
%EQUATE `SHGDFIL_NETRESOURCE = 2
%EQUATE `SHGDFIL_DESCRIPTIONID = 3
%EQUATE `SHDID_ROOT_REGITEM = 1
%EQUATE `SHDID_FS_FILE = 2
%EQUATE `SHDID_FS_DIRECTORY = 3
%EQUATE `SHDID_FS_OTHER = 4
%EQUATE `SHDID_COMPUTER_DRIVE35 = 5
%EQUATE `SHDID_COMPUTER_DRIVE525 = 6
%EQUATE `SHDID_COMPUTER_REMOVABLE = 7
%EQUATE `SHDID_COMPUTER_FIXED = 8
%EQUATE `SHDID_COMPUTER_NETDRIVE = 9
%EQUATE `SHDID_COMPUTER_CDROM = 10
%EQUATE `SHDID_COMPUTER_RAMDISK = 11
%EQUATE `SHDID_COMPUTER_OTHER = 12
%EQUATE `SHDID_NET_DOMAIN = 13
%EQUATE `SHDID_NET_SERVER = 14
%EQUATE `SHDID_NET_SHARE = 15
%EQUATE `SHDID_NET_RESTOFNET = 16
%EQUATE `SHDID_NET_OTHER = 17
%EQUATE `SHDID_COMPUTER_IMAGING = 18
%EQUATE `SHDID_COMPUTER_AUDIO = 19
%EQUATE `SHDID_COMPUTER_SHAREDDOCS = 20
%EQUATE `PID_IS_URL = 2
%EQUATE `PID_IS_NAME = 4
%EQUATE `PID_IS_WORKINGDIR = 5
%EQUATE `PID_IS_HOTKEY = 6
%EQUATE `PID_IS_SHOWCMD = 7
%EQUATE `PID_IS_ICONINDEX = 8
%EQUATE `PID_IS_ICONFILE = 9
%EQUATE `PID_IS_WHATSNEW = 10
%EQUATE `PID_IS_AUTHOR = 11
%EQUATE `PID_IS_DESCRIPTION = 12
%EQUATE `PID_IS_COMMENT = 13
' PROPIDs for Internet Sites (FMTID_InternetSite) to be used with
' IPropertySetStorage/IPropertyStorage
%EQUATE `PID_INTSITE_WHATSNEW = 2
%EQUATE `PID_INTSITE_AUTHOR = 3
%EQUATE `PID_INTSITE_LASTVISIT = 4
%EQUATE `PID_INTSITE_LASTMOD = 5
%EQUATE `PID_INTSITE_VISITCOUNT = 6
%EQUATE `PID_INTSITE_DESCRIPTION = 7
%EQUATE `PID_INTSITE_COMMENT = 8
%EQUATE `PID_INTSITE_FLAGS = 9
%EQUATE `PID_INTSITE_CONTENTLEN = 10
%EQUATE `PID_INTSITE_CONTENTCODE = 11
%EQUATE `PID_INTSITE_RECURSE = 12
%EQUATE `PID_INTSITE_WATCH = 13
%EQUATE `PID_INTSITE_SUBSCRIPTION = 14
%EQUATE `PID_INTSITE_URL = 15
%EQUATE `PID_INTSITE_TITLE = 16
%EQUATE `PID_INTSITE_CODEPAGE = 18
%EQUATE `PID_INTSITE_TRACKING = 19
%EQUATE `PID_INTSITE_ICONINDEX = 20
%EQUATE `PID_INTSITE_ICONFILE = 21
' Flags for PID_IS_FLAGS
%EQUATE `PIDISF_RECENTLYCHANGED = &H00000001
%EQUATE `PIDISF_CACHEDSTICKY = &H00000002
%EQUATE `PIDISF_CACHEIMAGES = &H00000010
%EQUATE `PIDISF_FOLLOWALLLINKS = &H00000020
' Values for PID_INTSITE_WATCH
%EQUATE `PIDISM_GLOBAL = 0 ' Monitor based on global setting
%EQUATE `PIDISM_WATCH = 1 ' User says watch
%EQUATE `PIDISM_DONTWATCH = 2 ' User says don't watch
%EQUATE `SSF_SHOWALLOBJECTS = &H00000001
%EQUATE `SSF_SHOWEXTENSIONS = &H00000002
%EQUATE `SSF_SHOWCOMPCOLOR = &H00000008
%EQUATE `SSF_SHOWSYSFILES = &H00000020
%EQUATE `SSF_DOUBLECLICKINWEBVIEW = &H00000080
%EQUATE `SSF_SHOWATTRIBCOL = &H00000100
%EQUATE `SSF_DESKTOPHTML = &H00000200
%EQUATE `SSF_WIN95CLASSIC = &H00000400
%EQUATE `SSF_DONTPRETTYPATH = &H00000800
%EQUATE `SSF_SHOWINFOTIP = &H00002000
%EQUATE `SSF_MAPNETDRVBUTTON = &H00001000
%EQUATE `SSF_NOCONFIRMRECYCLE = &H00008000
%EQUATE `SSF_HIDEICONS = &H00004000
%EQUATE `SHPPFW_NONE = &H00000000
%EQUATE `SHPPFW_DIRCREATE = &H00000001 ' Create the directory if it doesn't exist without asking the user.
%EQUATE `SHPPFW_DEFAULT = %SHPPFW_DIRCREATE ' May change
%EQUATE `SHPPFW_ASKDIRCREATE = &H00000002 ' Create the directory if it doesn't exist after asking the user.
%EQUATE `SHPPFW_IGNOREFILENAME = &H00000004 ' Ignore the last item in pszPath because it's a file. Example: pszPath="C:\DirA\DirB", only use "C:\DirA".
%EQUATE `SHPPFW_NOWRITECHECK = &H00000008 ' Caller only needs to read from the drive, so don't check if it's READ ONLY.
%EQUATE `SHPPFW_MEDIACHECKONLY = &H00000010 ' do the retrys on the media (or net path), return errors if the file can't be found
%EQUATE `SIMULATED_FONTTYPE = &H00008000
%EQUATE `PRINTER_FONTTYPE = &H00004000
%EQUATE `SCREEN_FONTTYPE = &H00002000
%EQUATE `BOLD_FONTTYPE = &H100
%EQUATE `ITALIC_FONTTYPE = &H200
%EQUATE `REGULAR_FONTTYPE = &H400
%EQUATE `WM_PSD_PAGESETUPDLG = %WM_USER
%EQUATE `WM_PSD_FULLPAGERECT = %WM_USER + 1
%EQUATE `WM_PSD_MINMARGINRECT = %WM_USER + 2
%EQUATE `WM_PSD_MARGINRECT = %WM_USER + 3
%EQUATE `WM_PSD_GREEKTEXTRECT = %WM_USER + 4
%EQUATE `WM_PSD_ENVSTAMPRECT = %WM_USER + 5
%EQUATE `WM_PSD_YAFULLPAGERECT = %WM_USER + 6
%EQUATE `IMAGE_BITMAP = 0
%EQUATE `IMAGE_ICON = 1
%EQUATE `IMAGE_CURSOR = 2
%EQUATE `IMAGE_ENHMETAFILE = 3
' ----- Symbols -----
%EQUATE `VS_VERSION_INFO = 1
%EQUATE `VS_USER_DEFINED = 100
' ----- VS_VERSION.dwFileFlags -----
%EQUATE `VS_FFI_SIGNATURE = &HFEEF04BD
%EQUATE `VS_FFI_STRUCVERSION = &H10000
%EQUATE `VS_FFI_FILEFLAGSMASK = &H3F&
' ----- VS_VERSION.dwFileFlags -----
%EQUATE `VS_FF_INFOINFERRED = &H10&
' ----- VS_VERSION.dwFileOS -----
%EQUATE `VOS_UNKNOWN = &H00000000
%EQUATE `VOS_DOS = &H00010000
%EQUATE `VOS_OS216 = &H00020000
%EQUATE `VOS_OS232 = &H00030000
%EQUATE `VOS_NT = &H00040000
%EQUATE `VOS_WINCE = &H00050000
%EQUATE `VOS__BASE = &H0
%EQUATE `VOS__WINDOWS16 = &H1
%EQUATE `VOS__PM16 = &H2
%EQUATE `VOS__PM32 = &H3
%EQUATE `VOS__WINDOWS32 = &H4
%EQUATE `VOS_DOS_WINDOWS16 = &H10001
%EQUATE `VOS_DOS_WINDOWS32 = &H10004
%EQUATE `VOS_OS216_PM16 = &H20002
%EQUATE `VOS_OS232_PM32 = &H30003
%EQUATE `VOS_NT_WINDOWS32 = &H40004
' ----- VS_VERSION.dwFileType -----
%EQUATE `VFT_UNKNOWN = &H0&
%EQUATE `VFT_APP = &H1&
%EQUATE `VFT_DLL = &H2&
%EQUATE `VFT_DRV = &H3&
%EQUATE `VFT_FONT = &H4&
%EQUATE `VFT_VXD = &H5&
%EQUATE `VFT_STATIC_LIB = &H7&
' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV -----
%EQUATE `VFT2_UNKNOWN = &H00
%EQUATE `VFT2_DRV_PRINTER = &H01
%EQUATE `VFT2_DRV_KEYBOARD = &H02
%EQUATE `VFT2_DRV_LANGUAGE = &H03
%EQUATE `VFT2_DRV_DISPLAY = &H04
%EQUATE `VFT2_DRV_MOUSE = &H05
%EQUATE `VFT2_DRV_NETWORK = &H06
%EQUATE `VFT2_DRV_SYSTEM = &H07
%EQUATE `VFT2_DRV_INSTALLABLE = &H08
%EQUATE `VFT2_DRV_SOUND = &H09
%EQUATE `VFT2_DRV_COMM = &H0A
%EQUATE `VFT2_DRV_INPUTMETHOD = &H0B
%EQUATE `VFT2_DRV_VERSIONED_PRINTER = &H0C
' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT -----
%EQUATE `VFT2_FONT_RASTER = &H1
%EQUATE `VFT2_FONT_VECTOR = &H2
%EQUATE `VFT2_FONT_TRUETYPE = &H3
' ----- VerFindFile() flags -----
%EQUATE `VFFF_ISSHAREDFILE = &H1
%EQUATE `VFF_CURNEDEST = &H1
%EQUATE `VFF_FILEINUSE = &H2
%EQUATE `VFF_BUFFTOOSMALL = &H4
' ----- VerInstallFile() flags -----
%EQUATE `VIFF_FORCEINSTALL = &H1
%EQUATE `VIFF_DONTDELETEOLD = &H2
%EQUATE `VIF_TEMPFILE = &H00000001
%EQUATE `VIF_MISMATCH = &H00000002
%EQUATE `VIF_SRCOLD = &H00000004
%EQUATE `VIF_DIFFLANG = &H00000008
%EQUATE `VIF_DIFFCODEPG = &H00000010
%EQUATE `VIF_DIFFTYPE = &H00000020
%EQUATE `VIF_WRITEPROT = &H00000040
%EQUATE `VIF_FILEINUSE = &H00000080
%EQUATE `VIF_OUTOFSPACE = &H00000100
%EQUATE `VIF_ACCESSVIOLATION = &H00000200
%EQUATE `VIF_SHARINGVIOLATION = &H00000400
%EQUATE `VIF_CANNOTCREATE = &H00000800
%EQUATE `VIF_CANNOTDELETE = &H00001000
%EQUATE `VIF_CANNOTRENAME = &H00002000
%EQUATE `VIF_CANNOTDELETECUR = &H00004000
%EQUATE `VIF_OUTOFMEMORY = &H00008000
%EQUATE `VIF_CANNOTREADSRC = &H00010000
%EQUATE `VIF_CANNOTREADDST = &H00020000
%EQUATE `VIF_BUFFTOOSMALL = &H00040000
%EQUATE `VIF_CANNOTLOADLZ32 = &H00080000
%EQUATE `VIF_CANNOTLOADCABINET = &H00100000
#ENDIF
