среда, 30 сентября 2009 г.

API http://mihriutka2004.narod.ru/API32.TXT

{\rtf1\ansi\ansicpg1257\deff0\deflang1062{\fonttbl{\f0\fswiss\fcharset186{\*\fname Arial;}Arial Baltic;}}
{\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs20 http://mihriutka2004.narod.ru/API32.TXT\par
' ------------------------------------------------------------------------\par
'\par
' API32.TXT -- Win32 API Type Declarations for Visual Basic\par
'\par
' Copyright (C) 1996 Desaware\par
'\par
' You have a royalty-free right to use, modify, reproduce and distribute\par
' this file (and/or any modified version) in any way you find useful,\par
' provided that you agree that Desaware and Ziff-Davis Press has no \par
' warranty, obligation or liability for its contents. \par
' Refer to the Ziff-Davis Visual Basic Programmer's Guide to the \par
' Windows API for further information.\par
'\par
' This file is in part derived from win32api.txt from Microsoft\par
'\par
' ------------------------------------------------------------------------\par
\par
' Type definitions for Windows' basic types.\par
Public Const ANYSIZE_ARRAY = 1\par
Type RECT\par
Left As Long\par
Top As Long\par
Right As Long\par
Bottom As Long\par
End Type\par
\par
Type RECTL\par
Left As Long\par
Top As Long\par
Right As Long\par
Bottom As Long\par
End Type\par
\par
Type RECTS\par
\tab\tab Left As Integer\par
\tab\tab Top As Integer\par
\tab\tab Right As Integer\par
\tab\tab Bottom As Integer\par
End Type\par
\par
Type POINTAPI\par
x As Long\par
y As Long\par
End Type\par
\par
Type POINTL\par
x As Long\par
y As Long\par
End Type\par
\par
Type SIZE\par
cx As Long\par
cy As Long\par
End Type\par
\par
Type POINTS\par
x As Integer\par
y As Integer\par
End Type\par
\par
Type MSG\par
hwnd As Long\par
message As Long\par
wParam As Long\par
lParam As Long\par
time As Long\par
pt As POINTAPI\par
End Type\par
\par
\par
Public Const DELETE = &H10000\par
Public Const READ_CONTROL = &H20000\par
Public Const WRITE_DAC = &H40000\par
Public Const WRITE_OWNER = &H80000\par
Public Const SYNCHRONIZE = &H100000\par
\par
\par
Public Const STANDARD_RIGHTS_READ = &H20000\par
Public Const STANDARD_RIGHTS_WRITE = &H20000\par
Public Const STANDARD_RIGHTS_EXECUTE = &H20000\par
Public Const STANDARD_RIGHTS_REQUIRED = &HF0000\par
Public Const STANDARD_RIGHTS_ALL = &H1F0000\par
\par
Public Const MUTEX_MODIFY_STATE = 1\par
Public Const MUTEX_ALL_ACCESS = &H1F0001&\par
Public Const EVENT_MODIFY_STATE = 2\par
Public Const EVENT_ALL_ACCESS = &H1F0003&\par
Public Const MUTANT_QUERY_STATE = 1\par
\par
Public Const MUTANT_ALL_ACCESS = &H1F0001&\par
Public Const SEMAPHORE_MODIFY_STATE = &H2\par
Public Const SEMAPHORE_ALL_ACCESS = &H1F0003&\par
\par
\par
Public Const SPECIFIC_RIGHTS_ALL = &HFFFF\par
\par
\par
Type SID_IDENTIFIER_AUTHORITY\par
Value(6) As Byte\par
End Type\par
\par
Public Const SID_REVISION = (1) ' Current revision level\par
Public Const SID_MAX_SUB_AUTHORITIES = (15)\par
Public Const SID_RECOMMENDED_SUB_AUTHORITIES = (1)\tab ' Will change to around 6 in a future release.\par
\par
Public Const SidTypeUser = 1\par
Public Const SidTypeGroup = 2\par
Public Const SidTypeDomain = 3\par
Public Const SidTypeAlias = 4\par
Public Const SidTypeWellKnownGroup = 5\par
Public Const SidTypeDeletedAccount = 6\par
Public Const SidTypeInvalid = 7\par
Public Const SidTypeUnknown = 8\par
\par
Type SID_AND_ATTRIBUTES\par
Sid As Long\par
Attributes As Long\par
End Type\par
\par
' ///////////////////////////////////////////////////////////////////////////\par
' //\par
' Universal well-known SIDs //\par
' //\par
' Null SID S-1-0-0 //\par
' World S-1-1-0 //\par
' Local S-1-2-0 //\par
' Creator Owner ID S-1-3-0 //\par
' Creator Group ID S-1-3-1 //\par
' //\par
' (Non-unique IDs) S-1-4 //\par
' //\par
' ///////////////////////////////////////////////////////////////////////////\par
Public Const SECURITY_NULL_RID = &H0\par
Public Const SECURITY_WORLD_RID = &H0\par
Public Const SECURITY_LOCAL_RID = &H0\par
\par
Public Const SECURITY_CREATOR_OWNER_RID = &H0\par
Public Const SECURITY_CREATOR_GROUP_RID = &H1\par
\par
\par
' ///////////////////////////////////////////////////////////////////////////\par
' //\par
' NT well-known SIDs //\par
' //\par
' NT Authority S-1-5 //\par
' Dialup S-1-5-1 //\par
' //\par
' Network S-1-5-2 //\par
' Batch S-1-5-3 //\par
' Interactive S-1-5-4 //\par
' Service S-1-5-6 //\par
' AnonymousLogon S-1-5-7 (aka null logon session) //\par
' //\par
' (Logon IDs) S-1-5-5-X-Y //\par
' //\par
' (NT non-unique IDs) S-1-5-0x15-... //\par
' //\par
' (Built-in domain) s-1-5-0x20 //\par
' //\par
' ///////////////////////////////////////////////////////////////////////////\par
\par
Public Const SECURITY_DIALUP_RID = &H1\par
Public Const SECURITY_NETWORK_RID = &H2\par
Public Const SECURITY_BATCH_RID = &H3\par
Public Const SECURITY_INTERACTIVE_RID = &H4\par
Public Const SECURITY_SERVICE_RID = &H6\par
Public Const SECURITY_ANONYMOUS_LOGON_RID = &H7\par
Public Const SECURITY_LOGON_IDS_RID = &H5\par
Public Const SECURITY_LOCAL_SYSTEM_RID = &H12\par
Public Const SECURITY_NT_NON_UNIQUE = &H15\par
Public Const SECURITY_BUILTIN_DOMAIN_RID = &H20\par
\par
\par
' ///////////////////////////////////////////////////////////////////////////\par
' //\par
' well-known domain relative sub-authority values (RIDs)... //\par
' //\par
' ///////////////////////////////////////////////////////////////////////////\par
\par
Public Const DOMAIN_USER_RID_ADMIN = &H1F4\par
Public Const DOMAIN_USER_RID_GUEST = &H1F5\par
\par
Public Const DOMAIN_GROUP_RID_ADMINS = &H200\par
Public Const DOMAIN_GROUP_RID_USERS = &H201\par
Public Const DOMAIN_GROUP_RID_GUESTS = &H202\par
\par
\par
Public Const DOMAIN_ALIAS_RID_ADMINS = &H220\par
Public Const DOMAIN_ALIAS_RID_USERS = &H221\par
Public Const DOMAIN_ALIAS_RID_GUESTS = &H222\par
Public Const DOMAIN_ALIAS_RID_POWER_USERS = &H223\par
Public Const DOMAIN_ALIAS_RID_ACCOUNT_OPS = &H224\par
Public Const DOMAIN_ALIAS_RID_SYSTEM_OPS = &H225\par
Public Const DOMAIN_ALIAS_RID_PRINT_OPS = &H226\par
Public Const DOMAIN_ALIAS_RID_BACKUP_OPS = &H227\par
Public Const DOMAIN_ALIAS_RID_REPLICATOR = &H228\par
\par
\par
' Allocate the System Luid. The first 1000 LUIDs are reserved.\par
' Use #999 here0x3E7 = 999)\par
\par
' end_ntifs\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' User and Group related SID attributes //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
' Group attributes\par
\par
Public Const SE_GROUP_MANDATORY = &H1\par
Public Const SE_GROUP_ENABLED_BY_DEFAULT = &H2\par
Public Const SE_GROUP_ENABLED = &H4\par
Public Const SE_GROUP_OWNER = &H8\par
Public Const SE_GROUP_LOGON_ID = &HC0000000\par
\par
' User attributes\par
\par
' (None yet defined.)\par
\par
' ----------------\par
' Kernel Section\par
' ----------------\par
\par
Public Const INVALID_HANDLE_VALUE = -1\par
\par
Public Const FILE_BEGIN = 0\par
Public Const FILE_CURRENT = 1\par
Public Const FILE_END = 2\par
\par
Public Const FILE_FLAG_WRITE_THROUGH = &H80000000\par
Public Const FILE_FLAG_OVERLAPPED = &H40000000\par
Public Const FILE_FLAG_NO_BUFFERING = &H20000000\par
Public Const FILE_FLAG_RANDOM_ACCESS = &H10000000\par
Public Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000\par
Public Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000\par
Public Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000\par
Public Const FILE_FLAG_POSIX_SEMANTICS = &H1000000\par
\par
Public Const CREATE_NEW = 1\par
Public Const CREATE_ALWAYS = 2\par
Public Const OPEN_EXISTING = 3\par
Public Const OPEN_ALWAYS = 4\par
Public Const TRUNCATE_EXISTING = 5\par
\par
' Define the dwOpenMode values for CreateNamedPipe\par
Public Const PIPE_ACCESS_INBOUND = &H1\par
Public Const PIPE_ACCESS_OUTBOUND = &H2\par
Public Const PIPE_ACCESS_DUPLEX = &H3\par
\par
' Define the Named Pipe End flags for GetNamedPipeInfo\par
Public Const PIPE_CLIENT_END = &H0\par
Public Const PIPE_SERVER_END = &H1\par
\par
' Define the dwPipeMode values for CreateNamedPipe\par
Public Const PIPE_WAIT = &H0\par
Public Const PIPE_NOWAIT = &H1\par
Public Const PIPE_READMODE_BYTE = &H0\par
Public Const PIPE_READMODE_MESSAGE = &H2\par
Public Const PIPE_TYPE_BYTE = &H0\par
Public Const PIPE_TYPE_MESSAGE = &H4\par
\par
' Define the well known values for CreateNamedPipe nMaxInstances\par
Public Const PIPE_UNLIMITED_INSTANCES = 255\par
\par
' Define the Security Quality of Service bits to be passed\par
' into CreateFile\par
Public Const SECURITY_CONTEXT_TRACKING = &H40000\par
Public Const SECURITY_EFFECTIVE_ONLY = &H80000\par
\par
Public Const SECURITY_SQOS_PRESENT = &H100000\par
Public Const SECURITY_VALID_SQOS_FLAGS = &H1F0000\par
\par
Type OVERLAPPED\par
Internal As Long\par
InternalHigh As Long\par
offset As Long\par
OffsetHigh As Long\par
hEvent As Long\par
End Type\par
\par
Type SECURITY_ATTRIBUTES\par
nLength As Long\par
lpSecurityDescriptor As Long\par
bInheritHandle As Long\par
End Type\par
\par
Type PROCESS_INFORMATION\par
hProcess As Long\par
hThread As Long\par
dwProcessId As Long\par
dwThreadId As Long\par
End Type\par
\par
Type FILETIME\par
dwLowDateTime As Long\par
dwHighDateTime As Long\par
End Type\par
\par
Type SYSTEMTIME\par
wYear As Integer\par
wMonth As Integer\par
wDayOfWeek As Integer\par
wDay As Integer\par
wHour As Integer\par
wMinute As Integer\par
wSecond As Integer\par
wMilliseconds As Integer\par
End Type\par
\par
' Serial provider type.\par
Public Const SP_SERIALCOMM = &H1&\par
\par
' Provider SubTypes\par
Public Const PST_UNSPECIFIED = &H0&\par
Public Const PST_RS232 = &H1&\par
Public Const PST_PARALLELPORT = &H2&\par
Public Const PST_RS422 = &H3&\par
Public Const PST_RS423 = &H4&\par
Public Const PST_RS449 = &H5&\par
Public Const PST_FAX = &H21&\par
Public Const PST_SCANNER = &H22&\par
Public Const PST_NETWORK_BRIDGE = &H100&\par
Public Const PST_LAT = &H101&\par
Public Const PST_TCPIP_TELNET = &H102&\par
Public Const PST_X25 = &H103&\par
\par
' Provider capabilities flags.\par
Public Const PCF_DTRDSR = &H1&\par
Public Const PCF_RTSCTS = &H2&\par
Public Const PCF_RLSD = &H4&\par
Public Const PCF_PARITY_CHECK = &H8&\par
Public Const PCF_XONXOFF = &H10&\par
Public Const PCF_SETXCHAR = &H20&\par
Public Const PCF_TOTALTIMEOUTS = &H40&\par
Public Const PCF_INTTIMEOUTS = &H80&\par
Public Const PCF_SPECIALCHARS = &H100&\par
Public Const PCF_16BITMODE = &H200&\par
\par
' Comm provider settable parameters.\par
Public Const SP_PARITY = &H1&\par
Public Const SP_BAUD = &H2&\par
Public Const SP_DATABITS = &H4&\par
Public Const SP_STOPBITS = &H8&\par
Public Const SP_HANDSHAKING = &H10&\par
Public Const SP_PARITY_CHECK = &H20&\par
Public Const SP_RLSD = &H40&\par
\par
' Settable baud rates in the provider.\par
Public Const BAUD_075 = &H1&\par
Public Const BAUD_110 = &H2&\par
Public Const BAUD_134_5 = &H4&\par
Public Const BAUD_150 = &H8&\par
Public Const BAUD_300 = &H10&\par
Public Const BAUD_600 = &H20&\par
Public Const BAUD_1200 = &H40&\par
Public Const BAUD_1800 = &H80&\par
Public Const BAUD_2400 = &H100&\par
Public Const BAUD_4800 = &H200&\par
Public Const BAUD_7200 = &H400&\par
Public Const BAUD_9600 = &H800&\par
Public Const BAUD_14400 = &H1000&\par
Public Const BAUD_19200 = &H2000&\par
Public Const BAUD_38400 = &H4000&\par
Public Const BAUD_56K = &H8000&\par
Public Const BAUD_128K = &H10000\par
Public Const BAUD_115200 = &H20000\par
Public Const BAUD_57600 = &H40000\par
Public Const BAUD_USER = &H10000000\par
\par
' Settable Data Bits\par
Public Const DATABITS_5 = &H1&\par
Public Const DATABITS_6 = &H2&\par
Public Const DATABITS_7 = &H4&\par
Public Const DATABITS_8 = &H8&\par
Public Const DATABITS_16 = &H10&\par
Public Const DATABITS_16X = &H20&\par
\par
' Settable Stop and Parity bits.\par
Public Const STOPBITS_10 = &H1&\par
Public Const STOPBITS_15 = &H2&\par
Public Const STOPBITS_20 = &H4&\par
Public Const PARITY_NONE = &H100&\par
Public Const PARITY_ODD = &H200&\par
Public Const PARITY_EVEN = &H400&\par
Public Const PARITY_MARK = &H800&\par
Public Const PARITY_SPACE = &H1000&\par
\par
Type COMMPROP\par
wPacketLength As Integer\par
wPacketVersion As Integer\par
dwServiceMask As Long\par
dwReserved1 As Long\par
dwMaxTxQueue As Long\par
dwMaxRxQueue As Long\par
dwMaxBaud As Long\par
dwProvSubType As Long\par
dwProvCapabilities As Long\par
dwSettableParams As Long\par
dwSettableBaud As Long\par
wSettableData As Integer\par
wSettableStopParity As Integer\par
dwCurrentTxQueue As Long\par
dwCurrentRxQueue As Long\par
dwProvSpec1 As Long\par
dwProvSpec2 As Long\par
wcProvChar(1) As Integer\par
End Type\par
\par
Type COMSTAT\tab ' Original Win32api.txt definition is wrong\par
Bits As Long\par
cbInQue As Long\par
cbOutQue As Long\par
End Type\par
\par
' DTR Control Flow Values.\par
Public Const DTR_CONTROL_DISABLE = &H0\par
Public Const DTR_CONTROL_ENABLE = &H1\par
Public Const DTR_CONTROL_HANDSHAKE = &H2\par
\par
' RTS Control Flow Values\par
Public Const RTS_CONTROL_DISABLE = &H0\par
Public Const RTS_CONTROL_ENABLE = &H1\par
Public Const RTS_CONTROL_HANDSHAKE = &H2\par
Public Const RTS_CONTROL_TOGGLE = &H3\par
\par
Type DCB\tab ' Win32API.TXT is incorrect here.\par
DCBlength As Long\par
BaudRate As Long\par
Bits1 As Long\par
wReserved As Integer\par
XonLim As Integer\par
XoffLim As Integer\par
ByteSize As Byte\par
Parity As Byte\par
StopBits As Byte\par
XonChar As Byte\par
XoffChar As Byte\par
ErrorChar As Byte\par
EofChar As Byte\par
EvtChar As Byte\par
\tab\tab wReserved2 As Integer\par
End Type\par
\par
Type COMMTIMEOUTS\par
ReadIntervalTimeout As Long\par
ReadTotalTimeoutMultiplier As Long\par
ReadTotalTimeoutConstant As Long\par
WriteTotalTimeoutMultiplier As Long\par
WriteTotalTimeoutConstant As Long\par
End Type\par
\par
Type SYSTEM_INFO\par
dwOemID As Long\par
dwPageSize As Long\par
lpMinimumApplicationAddress As Long\par
lpMaximumApplicationAddress As Long\par
dwActiveProcessorMask As Long\par
dwNumberOrfProcessors As Long\par
dwProcessorType As Long\par
dwAllocationGranularity As Long\par
dwReserved As Long\par
End Type\par
\par
' Global Memory Flags\par
Public Const GMEM_FIXED = &H0\par
Public Const GMEM_MOVEABLE = &H2\par
Public Const GMEM_NOCOMPACT = &H10\par
Public Const GMEM_NODISCARD = &H20\par
Public Const GMEM_ZEROINIT = &H40\par
Public Const GMEM_MODIFY = &H80\par
Public Const GMEM_DISCARDABLE = &H100\par
Public Const GMEM_NOT_BANKED = &H1000\par
Public Const GMEM_SHARE = &H2000\par
Public Const GMEM_DDESHARE = &H2000\par
Public Const GMEM_NOTIFY = &H4000\par
Public Const GMEM_LOWER = GMEM_NOT_BANKED\par
Public Const GMEM_VALID_FLAGS = &H7F72\par
Public Const GMEM_INVALID_HANDLE = &H8000&\par
\par
Public Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)\par
Public Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)\par
\par
' Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE)\par
Public Const GMEM_DISCARDED = &H4000\par
Public Const GMEM_LOCKCOUNT = &HFF\par
\par
Type MEMORYSTATUS\par
dwLength As Long\par
dwMemoryLoad As Long\par
dwTotalPhys As Long\par
dwAvailPhys As Long\par
dwTotalPageFile As Long\par
dwAvailPageFile As Long\par
dwTotalVirtual As Long\par
dwAvailVirtual As Long\par
End Type\par
\par
' Local Memory Flags\par
Public Const LMEM_FIXED = &H0\par
Public Const LMEM_MOVEABLE = &H2\par
Public Const LMEM_NOCOMPACT = &H10\par
Public Const LMEM_NODISCARD = &H20\par
Public Const LMEM_ZEROINIT = &H40\par
Public Const LMEM_MODIFY = &H80\par
Public Const LMEM_DISCARDABLE = &HF00\par
Public Const LMEM_VALID_FLAGS = &HF72\par
Public Const LMEM_INVALID_HANDLE = &H8000&\par
\par
Public Const LHND = (LMEM_MOVEABLE + LMEM_ZEROINIT)\par
Public Const LPTR = (LMEM_FIXED + LMEM_ZEROINIT)\par
\par
Public Const NONZEROLHND = (LMEM_MOVEABLE)\par
Public Const NONZEROLPTR = (LMEM_FIXED)\par
\par
' Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE)\par
Public Const LMEM_DISCARDED = &H4000\par
Public Const LMEM_LOCKCOUNT = &HFF\par
\par
' dwCreationFlag values\par
\par
Public Const DEBUG_PROCESS = &H1\par
Public Const DEBUG_ONLY_THIS_PROCESS = &H2\par
\par
Public Const CREATE_SUSPENDED = &H4\par
\par
Public Const DETACHED_PROCESS = &H8\par
\par
Public Const CREATE_NEW_CONSOLE = &H10\par
\par
Public Const NORMAL_PRIORITY_CLASS = &H20\par
Public Const IDLE_PRIORITY_CLASS = &H40\par
Public Const HIGH_PRIORITY_CLASS = &H80\par
Public Const REALTIME_PRIORITY_CLASS = &H100\par
\par
Public Const CREATE_NEW_PROCESS_GROUP = &H200\par
\par
Public Const CREATE_NO_WINDOW = &H8000000\par
\par
Public Const PROFILE_USER = &H10000000\par
Public Const PROFILE_KERNEL = &H20000000\par
Public Const PROFILE_SERVER = &H40000000\par
\par
Public Const MAXLONG = &H7FFFFFFF\par
Public Const THREAD_BASE_PRIORITY_MIN = -2\par
Public Const THREAD_BASE_PRIORITY_MAX = 2\par
Public Const THREAD_BASE_PRIORITY_LOWRT = 15\par
Public Const THREAD_BASE_PRIORITY_IDLE = -15\par
Public Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN\par
Public Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1)\par
Public Const THREAD_PRIORITY_NORMAL = 0\par
Public Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX\par
Public Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1)\par
Public Const THREAD_PRIORITY_ERROR_RETURN = (MAXLONG)\par
\par
Public Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT\par
Public Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE\par
\par
' ++ BUILD Version: 0093 Increment this if a change has global effects\par
\par
' Copyright (c) 1990-1995 Microsoft Corporation\par
\par
' Module Name:\par
\par
' winnt.h\par
\par
' Abstract:\par
\par
' This module defines the 32-Bit Windows types and constants that are\par
' defined by NT, but exposed through the Win32 API.\par
\par
' Revision History:\par
Public Const APPLICATION_ERROR_MASK = &H20000000\par
Public Const ERROR_SEVERITY_SUCCESS = &H0\par
Public Const ERROR_SEVERITY_INFORMATIONAL = &H40000000\par
Public Const ERROR_SEVERITY_WARNING = &H80000000\par
Public Const ERROR_SEVERITY_ERROR = &HC0000000\par
\par
\par
Public Const MINCHAR = &H80\par
Public Const MAXCHAR = &H7F\par
Public Const MINSHORT = &H8000&\par
Public Const MAXSHORT = &H7FFF\par
Public Const MINLONG = &H80000000\par
Public Const MAXByte = &HFF\par
Public Const MAXWORD = &HFFFF\par
Public Const MAXDWORD = &HFFFF\par
'\par
' Calculate the byte offset of a field in a structure of type type.\par
' * Language IDs.\par
' *\par
' * The following two combinations of primary language ID and\par
' * sublanguage ID have special semantics:\par
' *\par
' * Primary Language ID Sublanguage ID Result\par
' * ------------------- --------------- ------------------------\par
' * LANG_NEUTRAL SUBLANG_NEUTRAL Language neutral\par
' * LANG_NEUTRAL SUBLANG_DEFAULT User default language\par
' * LANG_NEUTRAL SUBLANG_SYS_DEFAULT System default language\par
' */\par
\par
'\par
' * Primary language IDs.\par
' */\par
Public Const LANG_NEUTRAL = &H0\par
\par
Public Const LANG_BULGARIAN = &H2\par
Public Const LANG_CHINESE = &H4\par
Public Const LANG_CROATIAN = &H1A\par
Public Const LANG_CZECH = &H5\par
Public Const LANG_DANISH = &H6\par
Public Const LANG_DUTCH = &H13\par
Public Const LANG_ENGLISH = &H9\par
Public Const LANG_FINNISH = &HB\par
Public Const LANG_FRENCH = &HC\par
Public Const LANG_GERMAN = &H7\par
Public Const LANG_GREEK = &H8\par
Public Const LANG_HUNGARIAN = &HE\par
Public Const LANG_ICELANDIC = &HF\par
Public Const LANG_ITALIAN = &H10\par
Public Const LANG_JAPANESE = &H11\par
Public Const LANG_KOREAN = &H12\par
Public Const LANG_NORWEGIAN = &H14\par
Public Const LANG_POLISH = &H15\par
Public Const LANG_PORTUGUESE = &H16\par
Public Const LANG_ROMANIAN = &H18\par
Public Const LANG_RUSSIAN = &H19\par
Public Const LANG_SLOVAK = &H1B\par
Public Const LANG_SLOVENIAN = &H24\par
Public Const LANG_SPANISH = &HA\par
Public Const LANG_SWEDISH = &H1D\par
Public Const LANG_TURKISH = &H1F\par
\par
'\par
' * Sublanguage IDs.\par
' *\par
' * The name immediately following SUBLANG_ dictates which primary\par
' * language ID that sublanguage ID can be combined with to form a\par
' * valid language ID.\par
' */\par
Public Const SUBLANG_NEUTRAL = &H0 ' language neutral\par
Public Const SUBLANG_DEFAULT = &H1 ' user default\par
Public Const SUBLANG_SYS_DEFAULT = &H2 ' system default\par
\par
Public Const SUBLANG_CHINESE_TRADITIONAL = &H1 ' Chinese (Taiwan)\par
Public Const SUBLANG_CHINESE_SIMPLIFIED = &H2 ' Chinese (PR China)\par
Public Const SUBLANG_CHINESE_HONGKONG = &H3 ' Chinese (Hong Kong)\par
Public Const SUBLANG_CHINESE_SINGAPORE = &H4 ' Chinese (Singapore)\par
Public Const SUBLANG_DUTCH = &H1 ' Dutch\par
Public Const SUBLANG_DUTCH_BELGIAN = &H2 ' Dutch (Belgian)\par
Public Const SUBLANG_ENGLISH_US = &H1 ' English (USA)\par
Public Const SUBLANG_ENGLISH_UK = &H2 ' English (UK)\par
Public Const SUBLANG_ENGLISH_AUS = &H3 ' English (Australian)\par
Public Const SUBLANG_ENGLISH_CAN = &H4 ' English (Canadian)\par
Public Const SUBLANG_ENGLISH_NZ = &H5 ' English (New Zealand)\par
Public Const SUBLANG_ENGLISH_EIRE = &H6 ' English (Irish)\par
Public Const SUBLANG_FRENCH = &H1 ' French\par
Public Const SUBLANG_FRENCH_BELGIAN = &H2 ' French (Belgian)\par
Public Const SUBLANG_FRENCH_CANADIAN = &H3 ' French (Canadian)\par
Public Const SUBLANG_FRENCH_SWISS = &H4 ' French (Swiss)\par
Public Const SUBLANG_GERMAN = &H1 ' German\par
Public Const SUBLANG_GERMAN_SWISS = &H2 ' German (Swiss)\par
Public Const SUBLANG_GERMAN_AUSTRIAN = &H3 ' German (Austrian)\par
Public Const SUBLANG_ITALIAN = &H1 ' Italian\par
Public Const SUBLANG_ITALIAN_SWISS = &H2 ' Italian (Swiss)\par
Public Const SUBLANG_NORWEGIAN_BOKMAL = &H1 ' Norwegian (Bokma\par
Public Const SUBLANG_NORWEGIAN_NYNORSK = &H2 ' Norwegian (Nynorsk)\par
Public Const SUBLANG_PORTUGUESE = &H2 ' Portuguese\par
Public Const SUBLANG_PORTUGUESE_BRAZILIAN = &H1 ' Portuguese (Brazilian)\par
Public Const SUBLANG_SPANISH = &H1 ' Spanish (Castilian)\par
Public Const SUBLANG_SPANISH_MEXICAN = &H2 ' Spanish (Mexican)\par
Public Const SUBLANG_SPANISH_MODERN = &H3 ' Spanish (Modern)\par
\par
'\par
' * Sorting IDs.\par
' *\par
' */\par
Public Const SORT_DEFAULT = &H0 ' sorting default\par
\par
Public Const SORT_JAPANESE_XJIS = &H0 ' Japanese0xJIS order\par
Public Const SORT_JAPANESE_UNICODE = &H1 ' Japanese Unicode order\par
\par
Public Const SORT_CHINESE_BIG5 = &H0 ' Chinese BIG5 order\par
Public Const SORT_CHINESE_UNICODE = &H1 ' Chinese Unicode order\par
\par
Public Const SORT_KOREAN_KSC = &H0 ' Korean KSC order\par
Public Const SORT_KOREAN_UNICODE = &H1 ' Korean Unicode order\par
\par
' Default locales\par
\par
Public Const LOCALE_SYSTEM_DEFAULT = &H800\par
Public Const LOCALE_USER_DEFAULT = &H400\par
\par
\par
' The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in\par
' devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these\par
' constants *MUST* always be in sync.\par
' The values are redefined in devioctl.h because they must be available to\par
' both DOS and NT.\par
'\par
\par
Public Const FILE_READ_DATA = (&H1) ' file pipe\par
Public Const FILE_LIST_DIRECTORY = (&H1) ' directory\par
\par
Public Const FILE_WRITE_DATA = (&H2) ' file pipe\par
Public Const FILE_ADD_FILE = (&H2) ' directory\par
\par
Public Const FILE_APPEND_DATA = (&H4) ' file\par
Public Const FILE_ADD_SUBDIRECTORY = (&H4) ' directory\par
Public Const FILE_CREATE_PIPE_INSTANCE = (&H4) ' named pipe\par
\par
Public Const FILE_READ_EA = (&H8) ' file directory\par
Public Const FILE_READ_PROPERTIES = &H8\par
\par
Public Const FILE_WRITE_EA = (&H10) ' file directory\par
Public Const FILE_WRITE_PROPERTIES = &H10\par
\par
Public Const FILE_EXECUTE = (&H20) ' file\par
Public Const FILE_TRAVERSE = (&H20) ' directory\par
\par
Public Const FILE_DELETE_CHILD = (&H40) ' directory\par
\par
Public Const FILE_READ_ATTRIBUTES = (&H80) ' all\par
\par
Public Const FILE_WRITE_ATTRIBUTES = (&H100) ' all\par
\par
\par
Public Const FILE_ALL_ACCESS = &H1F01FF& ' (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H1FF)\par
\par
Public Const FILE_GENERIC_READ = &H120089& '(STANDARD_RIGHTS_READ Or FILE_READ_DATA Or FILE_READ_ATTRIBUTES Or FILE_READ_EA Or SYNCHRONIZE)\par
\par
\par
Public Const FILE_GENERIC_WRITE = &H120114& ' (STANDARD_RIGHTS_WRITE Or FILE_WRITE_DATA Or FILE_WRITE_ATTRIBUTES Or FILE_WRITE_EA Or FILE_APPEND_DATA Or SYNCHRONIZE)\par
\par
\par
Public Const FILE_GENERIC_EXECUTE = &H1200A0& ' (STANDARD_RIGHTS_EXECUTE Or FILE_READ_ATTRIBUTES Or FILE_EXECUTE Or SYNCHRONIZE)\par
\par
Public Const FILE_SHARE_READ = &H1\par
Public Const FILE_SHARE_WRITE = &H2\par
Public Const FILE_ATTRIBUTE_READONLY = &H1\par
Public Const FILE_ATTRIBUTE_HIDDEN = &H2\par
Public Const FILE_ATTRIBUTE_SYSTEM = &H4\par
Public Const FILE_ATTRIBUTE_DIRECTORY = &H10\par
Public Const FILE_ATTRIBUTE_ARCHIVE = &H20\par
Public Const FILE_ATTRIBUTE_NORMAL = &H80\par
Public Const FILE_ATTRIBUTE_TEMPORARY = &H100\par
Public Const FILE_ATTRIBUTE_COMPRESSED = &H800\par
Public Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1\par
Public Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2\par
Public Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4\par
Public Const FILE_NOTIFY_CHANGE_SIZE = &H8\par
Public Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10\par
Public Const FILE_NOTIFY_CHANGE_SECURITY = &H100\par
Public Const MAILSLOT_NO_MESSAGE = (-1)\par
Public Const MAILSLOT_WAIT_FOREVER = (-1)\par
Public Const FILE_CASE_SENSITIVE_SEARCH = &H1\par
Public Const FILE_CASE_PRESERVED_NAMES = &H2\par
Public Const FILE_UNICODE_ON_DISK = &H4\par
Public Const FILE_PERSISTENT_ACLS = &H8\par
Public Const FILE_FILE_COMPRESSION = &H10\par
Public Const FILE_VOLUME_IS_COMPRESSED = &H8000&\par
Public Const FS_CASE_IS_PRESERVED = &H2\par
Public Const FS_CASE_SENSITIVE = &H1\par
Public Const FS_UNICODE_STORED_ON_DISK = &H4\par
Public Const FS_PERSISTENT_ACLS = &H8\par
Public Const FS_FILE_COMPRESSION = &H10\par
Public Const FS_VOL_IS_COMPRESSED = &H8000&\par
\par
\par
\par
Public Const IO_COMPLETION_MODIFY_STATE = &H2\par
Public Const IO_COMPLETION_ALL_ACCESS = &H1F0003& ' (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3)\par
Public Const DUPLICATE_CLOSE_SOURCE = &H1\par
Public Const DUPLICATE_SAME_ACCESS = &H2\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' ACCESS MASK //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
'\par
' Define the access mask as a longword sized structure divided up as\par
' follows:\par
\par
' typedef struct _ACCESS_MASK \{\par
' WORD SpecificRights;\par
' Byte StandardRights;\par
' Byte AccessSystemAcl : 1;\par
' Byte Reserved : 3;\par
' Byte GenericAll : 1;\par
' Byte GenericExecute : 1;\par
' Byte GenericWrite : 1;\par
' Byte GenericRead : 1;\par
' \} ACCESS_MASK;\par
' typedef ACCESS_MASK *PACCESS_MASK;\par
'\par
' but to make life simple for programmer's we'll allow them to specify\par
' a desired access mask by simply OR'ing together mulitple single rights\par
' and treat an access mask as a DWORD. For example\par
'\par
' DesiredAccess = DELETE Or READ_CONTROL\par
'\par
' So we'll declare ACCESS_MASK as DWORD\par
'\par
\par
' begin_ntddk begin_nthal begin_ntifs\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' ACCESS TYPES //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
\par
' begin_ntddk begin_nthal begin_ntifs\par
'\par
' The following are masks for the predefined standard access types\par
\par
' AccessSystemAcl access type\par
\par
Public Const ACCESS_SYSTEM_SECURITY = &H1000000\par
\par
' MaximumAllowed access type\par
\par
Public Const MAXIMUM_ALLOWED = &H2000000\par
\par
' These are the generic rights.\par
\par
Public Const GENERIC_READ = &H80000000\par
Public Const GENERIC_WRITE = &H40000000\par
Public Const GENERIC_EXECUTE = &H20000000\par
Public Const GENERIC_ALL = &H10000000\par
\par
' Define the generic mapping array. This is used to denote the\par
' mapping of each generic access right to a specific access mask.\par
\par
Type GENERIC_MAPPING\par
GenericRead As Long\par
GenericWrite As Long\par
GenericExecute As Long\par
GenericAll As Long\par
End Type\par
\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' LUID_AND_ATTRIBUTES //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
'\par
Type LUID\par
\tab LowPart As Long\par
\tab HighPart As Long\par
End Type\par
\par
\par
Type LUID_AND_ATTRIBUTES\par
pLuid As LUID\par
Attributes As Long\par
End Type\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' ACL and ACE //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
'\par
' Define an ACL and the ACE format. The structure of an ACL header\par
' followed by one or more ACEs. Pictorally the structure of an ACL header\par
' is as follows:\par
'\par
' The current AclRevision is defined to be ACL_REVISION.\par
'\par
' AclSize is the size, in bytes, allocated for the ACL. This includes\par
' the ACL header, ACES, and remaining free space in the buffer.\par
'\par
' AceCount is the number of ACES in the ACL.\par
'\par
\par
' begin_ntddk begin_ntifs\par
' This is the *current* ACL revision\par
\par
Public Const ACL_REVISION = (2)\par
\par
' This is the history of ACL revisions. Add a new one whenever\par
' ACL_REVISION is updated\par
\par
Public Const ACL_REVISION1 = (1)\par
Public Const ACL_REVISION2 = (2)\par
\par
Type ACL\par
AclRevision As Byte\par
Sbz1 As Byte\par
AclSize As Integer\par
AceCount As Integer\par
Sbz2 As Integer\par
End Type\par
\par
' typedef ACL *PACL;\par
\par
' end_ntddk\par
\par
' The structure of an ACE is a common ace header followed by ace type\par
' specific data. Pictorally the structure of the common ace header is\par
' as follows:\par
\par
' AceType denotes the type of the ace, there are some predefined ace\par
' types\par
'\par
' AceSize is the size, in bytes, of ace.\par
'\par
' AceFlags are the Ace flags for audit and inheritance, defined Integerly.\par
\par
Type ACE_HEADER\par
AceType As Byte\par
AceFlags As Byte\par
AceSize As Long\par
End Type\par
'\par
' The following are the predefined ace types that go into the AceType\par
' field of an Ace header.\par
\par
Public Const ACCESS_ALLOWED_ACE_TYPE = &H0\par
Public Const ACCESS_DENIED_ACE_TYPE = &H1\par
Public Const SYSTEM_AUDIT_ACE_TYPE = &H2\par
Public Const SYSTEM_ALARM_ACE_TYPE = &H3\par
\par
' The following are the inherit flags that go into the AceFlags field\par
' of an Ace header.\par
\par
Public Const OBJECT_INHERIT_ACE = &H1\par
Public Const CONTAINER_INHERIT_ACE = &H2\par
Public Const NO_PROPAGATE_INHERIT_ACE = &H4\par
Public Const INHERIT_ONLY_ACE = &H8\par
Public Const VALID_INHERIT_FLAGS = &HF\par
\par
\par
' The following are the currently defined ACE flags that go into the\par
' AceFlags field of an ACE header. Each ACE type has its own set of\par
' AceFlags.\par
'\par
' SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE\par
' types to indicate that a message is generated for successful accesses.\par
'\par
' FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types\par
' to indicate that a message is generated for failed accesses.\par
\par
' SYSTEM_AUDIT and SYSTEM_ALARM AceFlags\par
'\par
' These control the signaling of audit and alarms for success or failure.\par
\par
Public Const SUCCESSFUL_ACCESS_ACE_FLAG = &H40\par
Public Const FAILED_ACCESS_ACE_FLAG = &H80\par
\par
\par
'\par
' We'll define the structure of the predefined ACE types. Pictorally\par
' the structure of the predefined ACE's is as follows:\par
\par
' Mask is the access mask associated with the ACE. This is either the\par
' access allowed, access denied, audit, or alarm mask.\par
'\par
' Sid is the Sid associated with the ACE.\par
'\par
' The following are the four predefined ACE types.\par
' Examine the AceType field in the Header to determine\par
' which structure is appropriate to use for casting.\par
\par
\par
Type ACCESS_ALLOWED_ACE\par
Header As ACE_HEADER\par
Mask As Long\par
SidStart As Long\par
End Type\par
\par
Type ACCESS_DENIED_ACE\par
Header As ACE_HEADER\par
Mask As Long\par
SidStart As Long\par
End Type\par
\par
\par
Type SYSTEM_AUDIT_ACE\par
Header As ACE_HEADER\par
Mask As Long\par
SidStart As Long\par
End Type\par
\par
Type SYSTEM_ALARM_ACE\par
Header As ACE_HEADER\par
Mask As Long\par
SidStart As Long\par
End Type\par
\par
' The following declarations are used for setting and querying information\par
' about and ACL. First are the various information classes available to\par
' the user.\par
'\par
\par
Public Const AclRevisionInformation = 1\par
Public Const AclSizeInformation = 2\par
'\par
' This record is returned/sent if the user is requesting/setting the\par
' AclRevisionInformation\par
'\par
\par
Type ACL_REVISION_INFORMATION\par
AclRevision As Long\par
End Type\par
\par
'\par
' This record is returned if the user is requesting AclSizeInformation\par
'\par
\par
Type ACL_SIZE_INFORMATION\par
AceCount As Long\par
AclBytesInUse As Long\par
AclBytesFree As Long\par
End Type\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' SECURITY_DESCRIPTOR //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
'\par
' Define the Security Descriptor and related data types.\par
' This is an opaque data structure.\par
'\par
\par
' begin_ntddk begin_ntifs\par
'\par
' Current security descriptor revision value\par
'\par
\par
Public Const SECURITY_DESCRIPTOR_REVISION = (1)\par
Public Const SECURITY_DESCRIPTOR_REVISION1 = (1)\par
\par
' end_ntddk\par
\par
'\par
' Minimum length, in bytes, needed to build a security descriptor\par
' (NOTE: This must manually be kept consistent with the)\par
' (sizeof(SECURITY_DESCRIPTOR) )\par
'\par
\par
Public Const SECURITY_DESCRIPTOR_MIN_LENGTH = (20)\par
\par
\par
\par
Public Const SE_OWNER_DEFAULTED = &H1\par
Public Const SE_GROUP_DEFAULTED = &H2\par
Public Const SE_DACL_PRESENT = &H4\par
Public Const SE_DACL_DEFAULTED = &H8\par
Public Const SE_SACL_PRESENT = &H10\par
Public Const SE_SACL_DEFAULTED = &H20\par
Public Const SE_SELF_RELATIVE = &H8000&\par
\par
'\par
' Where:\par
'\par
' SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the\par
' SID pointed to by the Owner field was provided by a\par
' defaulting mechanism rather than explicitly provided by the\par
' original provider of the security descriptor. This may\par
' affect the treatment of the SID with respect to inheritence\par
' of an owner.\par
'\par
' SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the\par
' SID in the Group field was provided by a defaulting mechanism\par
' rather than explicitly provided by the original provider of\par
' the security descriptor. This may affect the treatment of\par
' the SID with respect to inheritence of a primary group.\par
'\par
' SE_DACL_PRESENT - This boolean flag, when set, indicates that the\par
' security descriptor contains a discretionary ACL. If this\par
' flag is set and the Dacl field of the SECURITY_DESCRIPTOR is\par
' null, then a null ACL is explicitly being specified.\par
'\par
' SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the\par
' ACL pointed to by the Dacl field was provided by a defaulting\par
' mechanism rather than explicitly provided by the original\par
' provider of the security descriptor. This may affect the\par
' treatment of the ACL with respect to inheritence of an ACL.\par
' This flag is ignored if the DaclPresent flag is not set.\par
'\par
' SE_SACL_PRESENT - This boolean flag, when set, indicates that the\par
' security descriptor contains a system ACL pointed to by the\par
' Sacl field. If this flag is set and the Sacl field of the\par
' SECURITY_DESCRIPTOR is null, then an empty (but present)\par
' ACL is being specified.\par
'\par
' SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the\par
' ACL pointed to by the Sacl field was provided by a defaulting\par
' mechanism rather than explicitly provided by the original\par
' provider of the security descriptor. This may affect the\par
' treatment of the ACL with respect to inheritence of an ACL.\par
' This flag is ignored if the SaclPresent flag is not set.\par
'\par
' SE_SELF_RELATIVE - This boolean flag, when set, indicates that the\par
' security descriptor is in self-relative form. In this form,\par
' all fields of the security descriptor are contiguous in memory\par
' and all pointer fields are expressed as offsets from the\par
' beginning of the security descriptor. This form is useful\par
' for treating security descriptors as opaque data structures\par
' for transmission in communication protocol or for storage on\par
' secondary media.\par
'\par
'\par
'\par
' In general, this data structure should be treated opaquely to ensure future\par
' compatibility.\par
'\par
'\par
\par
Type SECURITY_DESCRIPTOR\par
Revision As Byte\par
Sbz1 As Byte\par
Control As Long\par
Owner As Long\par
Group As Long\par
Sacl As ACL\par
Dacl As ACL\par
End Type\par
\par
\par
' Where:\par
'\par
' Revision - Contains the revision level of the security\par
' descriptor. This allows this structure to be passed between\par
' systems or stored on disk even though it is expected to\par
' change in the future.\par
'\par
' Control - A set of flags which qualify the meaning of the\par
' security descriptor or individual fields of the security\par
' descriptor.\par
'\par
' Owner - is a pointer to an SID representing an object's owner.\par
' If this field is null, then no owner SID is present in the\par
' security descriptor. If the security descriptor is in\par
' self-relative form, then this field contains an offset to\par
' the SID, rather than a pointer.\par
'\par
' Group - is a pointer to an SID representing an object's primary\par
' group. If this field is null, then no primary group SID is\par
' present in the security descriptor. If the security descriptor\par
' is in self-relative form, then this field contains an offset to\par
' the SID, rather than a pointer.\par
'\par
' Sacl - is a pointer to a system ACL. This field value is only\par
' valid if the DaclPresent control flag is set. If the\par
' SaclPresent flag is set and this field is null, then a null\par
' ACL is specified. If the security descriptor is in\par
' self-relative form, then this field contains an offset to\par
' the ACL, rather than a pointer.\par
'\par
' Dacl - is a pointer to a discretionary ACL. This field value is\par
' only valid if the DaclPresent control flag is set. If the\par
' DaclPresent flag is set and this field is null, then a null\par
' ACL (unconditionally granting access) is specified. If the\par
' security descriptor is in self-relative form, then this field\par
' contains an offset to the ACL, rather than a pointer.\par
'\par
\par
\par
\par
' //////////////////////////////////////////////////////////////////////\par
' //\par
' Privilege Related Data Structures //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
\par
' Privilege attributes\par
'\par
\par
Public Const SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1\par
Public Const SE_PRIVILEGE_ENABLED = &H2\par
Public Const SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000\par
\par
'\par
' Privilege Set Control flags\par
'\par
\par
Public Const PRIVILEGE_SET_ALL_NECESSARY = (1)\par
\par
'\par
' Privilege Set - This is defined for a privilege set of one.\par
' If more than one privilege is needed, then this structure\par
' will need to be allocated with more space.\par
'\par
' Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET\par
' structure (defined in se.h)\par
'\par
\par
Type PRIVILEGE_SET\par
PrivilegeCount As Long\par
Control As Long\par
Privilege(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES\par
End Type\par
\par
\par
'//////////////////////////////////////////////////////////////////////\par
' //\par
' NT Defined Privileges //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
Public Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"\par
Public Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"\par
Public Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"\par
Public Const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"\par
Public Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"\par
Public Const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"\par
Public Const SE_TCB_NAME = "SeTcbPrivilege"\par
Public Const SE_SECURITY_NAME = "SeSecurityPrivilege"\par
Public Const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"\par
Public Const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"\par
Public Const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"\par
Public Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"\par
Public Const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"\par
Public Const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"\par
Public Const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"\par
Public Const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"\par
Public Const SE_BACKUP_NAME = "SeBackupPrivilege"\par
Public Const SE_RESTORE_NAME = "SeRestorePrivilege"\par
Public Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"\par
Public Const SE_DEBUG_NAME = "SeDebugPrivilege"\par
Public Const SE_AUDIT_NAME = "SeAuditPrivilege"\par
Public Const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"\par
Public Const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"\par
Public Const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"\par
\par
\par
' //////////////////////////////////////////////////////////////////\par
' //\par
' Security Quality Of Service //\par
' //\par
' //\par
' //////////////////////////////////////////////////////////////////\par
\par
' begin_ntddk begin_nthal begin_ntifs\par
'\par
' Impersonation Level\par
'\par
' Impersonation level is represented by a pair of bits in Windows.\par
' If a new impersonation level is added or lowest value is changed from\par
' 0 to something else, fix the Windows CreateFile call.\par
'\par
\par
Public Const SecurityAnonymous = 1\par
Public Const SecurityIdentification = 2\par
\par
' end winnt.txt\par
\par
' Debug APIs\par
Public Const EXCEPTION_DEBUG_EVENT = 1\par
Public Const CREATE_THREAD_DEBUG_EVENT = 2\par
Public Const CREATE_PROCESS_DEBUG_EVENT = 3\par
Public Const EXIT_THREAD_DEBUG_EVENT = 4\par
Public Const EXIT_PROCESS_DEBUG_EVENT = 5\par
Public Const LOAD_DLL_DEBUG_EVENT = 6\par
Public Const UNLOAD_DLL_DEBUG_EVENT = 7\par
Public Const OUTPUT_DEBUG_STRING_EVENT = 8\par
Public Const RIP_EVENT = 9\par
\par
Public Const EXCEPTION_MAXIMUM_PARAMETERS = 15\par
\par
Type EXCEPTION_RECORD\par
ExceptionCode As Long\par
ExceptionFlags As Long\par
pExceptionRecord As Long\tab ' Pointer to an EXCEPTION_RECORD structure\par
ExceptionAddress As Long\par
NumberParameters As Long\par
ExceptionInformation(EXCEPTION_MAXIMUM_PARAMETERS) As Long\par
End Type\par
\par
Type EXCEPTION_DEBUG_INFO\par
pExceptionRecord As EXCEPTION_RECORD\par
dwFirstChance As Long\par
End Type\par
\par
Type CREATE_THREAD_DEBUG_INFO\par
hThread As Long\par
lpThreadLocalBase As Long\par
lpStartAddress As Long\par
End Type\par
\par
Type CREATE_PROCESS_DEBUG_INFO\par
hFile As Long\par
hProcess As Long\par
hThread As Long\par
lpBaseOfImage As Long\par
dwDebugInfoFileOffset As Long\par
nDebugInfoSize As Long\par
lpThreadLocalBase As Long\par
lpStartAddress As Long\par
lpImageName As Long\par
fUnicode As Integer\par
End Type\par
\par
Type EXIT_THREAD_DEBUG_INFO\par
dwExitCode As Long\par
End Type\par
\par
Type EXIT_PROCESS_DEBUG_INFO\par
dwExitCode As Long\par
End Type\par
\par
Type LOAD_DLL_DEBUG_INFO\par
hFile As Long\par
lpBaseOfDll As Long\par
dwDebugInfoFileOffset As Long\par
nDebugInfoSize As Long\par
lpImageName As Long\par
fUnicode As Integer\par
End Type\par
\par
Type UNLOAD_DLL_DEBUG_INFO\par
lpBaseOfDll As Long\par
End Type\par
\par
Type OUTPUT_DEBUG_STRING_INFO\par
lpDebugStringData As String\par
fUnicode As Integer\par
nDebugStringLength As Integer\par
End Type\par
\par
Type RIP_INFO\par
dwError As Long\par
dwType As Long\par
End Type\par
\par
' GetDriveType return values\par
Public Const DRIVE_REMOVABLE = 2\par
Public Const DRIVE_FIXED = 3\par
Public Const DRIVE_REMOTE = 4\par
Public Const DRIVE_CDROM = 5\par
Public Const DRIVE_RAMDISK = 6\par
\par
Public Const FILE_TYPE_UNKNOWN = &H0\par
Public Const FILE_TYPE_DISK = &H1\par
Public Const FILE_TYPE_CHAR = &H2\par
Public Const FILE_TYPE_PIPE = &H3\par
Public Const FILE_TYPE_REMOTE = &H8000&\par
\par
Public Const STD_INPUT_HANDLE = -10&\par
Public Const STD_OUTPUT_HANDLE = -11&\par
Public Const STD_ERROR_HANDLE = -12&\par
\par
Public Const NOPARITY = 0\par
Public Const ODDPARITY = 1\par
Public Const EVENPARITY = 2\par
Public Const MARKPARITY = 3\par
Public Const SPACEPARITY = 4\par
\par
Public Const ONESTOPBIT = 0\par
Public Const ONE5STOPBITS = 1\par
Public Const TWOSTOPBITS = 2\par
\par
Public Const IGNORE = 0 ' Ignore signal\par
\par
' Comm Baud Rate indices\par
Public Const CBR_110 = 110\par
Public Const CBR_300 = 300\par
Public Const CBR_600 = 600\par
Public Const CBR_1200 = 1200\par
Public Const CBR_2400 = 2400\par
Public Const CBR_4800 = 4800\par
Public Const CBR_9600 = 9600\par
Public Const CBR_14400 = 14400\par
Public Const CBR_19200 = 19200\par
Public Const CBR_38400 = 38400\par
Public Const CBR_56000 = 56000\par
Public Const CBR_57600 = 57600\par
Public Const CBR_115200 = 115200\par
Public Const CBR_128000 = 128000\par
Public Const CBR_256000 = 256000\par
\par
' Error Flags\par
Public Const CE_RXOVER = &H1 ' Receive Queue overflow\par
Public Const CE_OVERRUN = &H2 ' Receive Overrun Error\par
Public Const CE_RXPARITY = &H4 ' Receive Parity Error\par
Public Const CE_FRAME = &H8 ' Receive Framing error\par
Public Const CE_BREAK = &H10 ' Break Detected\par
Public Const CE_TXFULL = &H100 ' TX Queue is full\par
Public Const CE_PTO = &H200 ' LPTx Timeout\par
Public Const CE_IOE = &H400 ' LPTx I/O Error\par
Public Const CE_DNS = &H800 ' LPTx Device not selected\par
Public Const CE_OOP = &H1000 ' LPTx Out-Of-Paper\par
Public Const CE_MODE = &H8000& ' Requested mode unsupported\par
\par
Public Const IE_BADID = (-1) ' Invalid or unsupported id\par
Public Const IE_OPEN = (-2) ' Device Already Open\par
Public Const IE_NOPEN = (-3) ' Device Not Open\par
Public Const IE_MEMORY = (-4) ' Unable to allocate queues\par
Public Const IE_DEFAULT = (-5) ' Error in default parameters\par
Public Const IE_HARDWARE = (-10) ' Hardware Not Present\par
Public Const IE_BYTESIZE = (-11) ' Illegal Byte Size\par
Public Const IE_BAUDRATE = (-12) ' Unsupported BaudRate\par
\par
' Events\par
Public Const EV_RXCHAR = &H1 ' Any Character received\par
Public Const EV_RXFLAG = &H2 ' Received certain character\par
Public Const EV_TXEMPTY = &H4 ' Transmitt Queue Empty\par
Public Const EV_CTS = &H8 ' CTS changed state\par
Public Const EV_DSR = &H10 ' DSR changed state\par
Public Const EV_RLSD = &H20 ' RLSD changed state\par
Public Const EV_BREAK = &H40 ' BREAK received\par
Public Const EV_ERR = &H80 ' Line status error occurred\par
Public Const EV_RING = &H100 ' Ring signal detected\par
Public Const EV_PERR = &H200 ' Printer error occured\par
Public Const EV_RX80FULL = &H400 ' Receive buffer is 80 percent full\par
Public Const EV_EVENT1 = &H800 ' Provider specific event 1\par
Public Const EV_EVENT2 = &H1000 ' Provider specific event 2\par
\par
' Escape Functions\par
Public Const SETXOFF = 1 ' Simulate XOFF received\par
Public Const SETXON = 2 ' Simulate XON received\par
Public Const SETRTS = 3 ' Set RTS high\par
Public Const CLRRTS = 4 ' Set RTS low\par
Public Const SETDTR = 5 ' Set DTR high\par
Public Const CLRDTR = 6 ' Set DTR low\par
Public Const RESETDEV = 7 ' Reset device if possible\par
Public Const SETBREAK = 8 'Set the device break line\par
Public Const CLRBREAK = 9 ' Clear the device break line\par
\par
' PURGE function flags.\par
Public Const PURGE_TXABORT = &H1 ' Kill the pending/current writes to the comm port.\par
Public Const PURGE_RXABORT = &H2 ' Kill the pending/current reads to the comm port.\par
Public Const PURGE_TXCLEAR = &H4 ' Kill the transmit queue if there.\par
Public Const PURGE_RXCLEAR = &H8 ' Kill the typeahead buffer if there.\par
\par
Public Const LPTx = &H80 ' Set if ID is for LPT device\par
\par
' Modem Status Flags\par
Public Const MS_CTS_ON = &H10&\par
Public Const MS_DSR_ON = &H20&\par
Public Const MS_RING_ON = &H40&\par
Public Const MS_RLSD_ON = &H80&\par
\par
' WaitSoundState() Constants\par
Public Const S_QUEUEEMPTY = 0\par
Public Const S_THRESHOLD = 1\par
Public Const S_ALLTHRESHOLD = 2\par
\par
' Accent Modes\par
Public Const S_NORMAL = 0\par
Public Const S_LEGATO = 1\par
Public Const S_STACCATO = 2\par
\par
' SetSoundNoise() Sources\par
Public Const S_PERIOD512 = 0 ' Freq = N/512 high pitch, less coarse hiss\par
Public Const S_PERIOD1024 = 1 ' Freq = N/1024\par
Public Const S_PERIOD2048 = 2 ' Freq = N/2048 low pitch, more coarse hiss\par
Public Const S_PERIODVOICE = 3 ' Source is frequency from voice channel (3)\par
Public Const S_WHITE512 = 4 ' Freq = N/512 high pitch, less coarse hiss\par
Public Const S_WHITE1024 = 5 ' Freq = N/1024\par
Public Const S_WHITE2048 = 6 ' Freq = N/2048 low pitch, more coarse hiss\par
Public Const S_WHITEVOICE = 7 ' Source is frequency from voice channel (3)\par
\par
Public Const S_SERDVNA = (-1) ' Device not available\par
Public Const S_SEROFM = (-2) ' Out of memory\par
Public Const S_SERMACT = (-3) ' Music active\par
Public Const S_SERQFUL = (-4) ' Queue full\par
Public Const S_SERBDNT = (-5) ' Invalid note\par
Public Const S_SERDLN = (-6) ' Invalid note length\par
Public Const S_SERDCC = (-7) ' Invalid note count\par
Public Const S_SERDTP = (-8) ' Invalid tempo\par
Public Const S_SERDVL = (-9) ' Invalid volume\par
Public Const S_SERDMD = (-10) ' Invalid mode\par
Public Const S_SERDSH = (-11) ' Invalid shape\par
Public Const S_SERDPT = (-12) ' Invalid pitch\par
Public Const S_SERDFQ = (-13) ' Invalid frequency\par
Public Const S_SERDDR = (-14) ' Invalid duration\par
Public Const S_SERDSR = (-15) ' Invalid source\par
Public Const S_SERDST = (-16) ' Invalid state\par
\par
Public Const NMPWAIT_WAIT_FOREVER = &HFFFF\par
Public Const NMPWAIT_NOWAIT = &H1\par
Public Const NMPWAIT_USE_DEFAULT_WAIT = &H0\par
\par
Public Const SECTION_QUERY = &H1\par
Public Const SECTION_MAP_WRITE = &H2\par
Public Const SECTION_MAP_READ = &H4\par
Public Const SECTION_MAP_EXECUTE = &H8\par
Public Const SECTION_EXTEND_SIZE = &H10\par
Public Const SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE\par
\par
Public Const FILE_MAP_COPY = SECTION_QUERY\par
Public Const FILE_MAP_WRITE = SECTION_MAP_WRITE\par
Public Const FILE_MAP_READ = SECTION_MAP_READ\par
Public Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS\par
\par
' OpenFile() Flags\par
Public Const OF_READ = &H0\par
Public Const OF_WRITE = &H1\par
Public Const OF_READWRITE = &H2\par
Public Const OF_SHARE_COMPAT = &H0\par
Public Const OF_SHARE_EXCLUSIVE = &H10\par
Public Const OF_SHARE_DENY_WRITE = &H20\par
Public Const OF_SHARE_DENY_READ = &H30\par
Public Const OF_SHARE_DENY_NONE = &H40\par
Public Const OF_PARSE = &H100\par
Public Const OF_DELETE = &H200\par
Public Const OF_VERIFY = &H400\par
Public Const OF_CANCEL = &H800\par
Public Const OF_CREATE = &H1000\par
Public Const OF_PROMPT = &H2000\par
Public Const OF_EXIST = &H4000\par
Public Const OF_REOPEN = &H8000&\par
\par
Public Const OFS_MAXPATHNAME = 128\par
\par
' OpenFile() Structure\par
Type OFSTRUCT\par
cBytes As Byte\par
fFixedDisk As Byte\par
nErrCode As Integer\par
Reserved1 As Integer\par
Reserved2 As Integer\par
szPathName(OFS_MAXPATHNAME) As Byte\par
End Type\par
\par
Declare Function InterlockedIncrement Lib "kernel32" Alias "InterlockedIncrement" (lpAddend As Long) As Long\par
Declare Function InterlockedDecrement Lib "kernel32" Alias "InterlockedDecrement" (lpAddend As Long) As Long\par
Declare Function InterlockedExchange Lib "kernel32" Alias "InterlockedExchange" (Target As Long, ByVal Value As Long) As Long\par
\par
' Loader Routines\par
Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long\par
Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long\par
\par
Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String, ByVal lpCommandLine As String, lpProcessAttributes As SECURITY_ATTRIBUTES, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, lpEnvironment As Any, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long\par
\par
Declare Function SetProcessShutdownParameters Lib "kernel32" Alias "SetProcessShutdownParameters" (ByVal dwLevel As Long, ByVal dwFlags As Long) As Long\par
Declare Function GetProcessShutdownParameters Lib "kernel32" Alias "GetProcessShutdownParameters" (lpdwLevel As Long, lpdwFlags As Long) As Long\par
\par
Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String)\par
Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)\par
Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long\par
Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long\par
Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long\par
\par
Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long\par
Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long\par
\par
Public Const DONT_RESOLVE_DLL_REFERENCES = &H1\par
Public Const LOAD_LIBRARY_AS_DATAFILE = 2\par
Public Const LOAD_WITH_ALTERED_SEARCH_PATH = 8\par
\par
Declare Function LoadModule Lib "kernel32" Alias "LoadModule" (ByVal lpModuleName As String, lpParameterBlock As Any) As Long\par
Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Long) As Long\par
Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long\par
\par
Declare Sub DebugBreak Lib "kernel32" Alias "DebugBreak" ()\par
Declare Function ContinueDebugEvent Lib "kernel32" Alias "ContinueDebugEvent" (ByVal dwProcessId As Long, ByVal dwThreadId As Long, ByVal dwContinueStatus As Long) As Long\par
Declare Function DebugActiveProcess Lib "kernel32" Alias "DebugActiveProcess" (ByVal dwProcessId As Long) As Long\par
\par
Type CRITICAL_SECTION\par
\tab dummy As Long\par
End Type\par
\par
Declare Sub InitializeCriticalSection Lib "kernel32" Alias "InitializeCriticalSection" (lpCriticalSection As CRITICAL_SECTION)\par
\par
Declare Sub EnterCriticalSection Lib "kernel32" Alias "EnterCriticalSection" (lpCriticalSection As CRITICAL_SECTION)\par
Declare Sub LeaveCriticalSection Lib "kernel32" Alias "LeaveCriticalSection" (lpCriticalSection As CRITICAL_SECTION)\par
Declare Sub DeleteCriticalSection Lib "kernel32" Alias "DeleteCriticalSection" (lpCriticalSection As CRITICAL_SECTION)\par
Declare Function SetEvent Lib "kernel32" Alias "SetEvent" (ByVal hEvent As Long) As Long\par
Declare Function ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long\par
Declare Function PulseEvent Lib "kernel32" Alias "PulseEvent" (ByVal hEvent As Long) As Long\par
Declare Function ReleaseSemaphore Lib "kernel32" Alias "ReleaseSemaphore" (ByVal hSemaphore As Long, ByVal lReleaseCount As Long, lpPreviousCount As Long) As Long\par
Declare Function ReleaseMutex Lib "kernel32" Alias "ReleaseMutex" (ByVal hMutex As Long) As Long\par
Declare Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long\par
Declare Function WaitForMultipleObjects Lib "kernel32" Alias "WaitForMultipleObjects" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long\par
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)\par
Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String)\par
Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long\par
\par
Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long\par
\par
' GetTempFileName() Flags\par
'\par
Public Const TF_FORCEDRIVE = &H80\par
\par
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long\par
Declare Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long\par
Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long\par
Declare Function LockFile Lib "kernel32" Alias "LockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long) As Long\par
Declare Function UnlockFile Lib "kernel32" Alias "UnlockFile" (ByVal hFile As Long, ByVal dwFileOffsetLow As Long, ByVal dwFileOffsetHigh As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long) As Long\par
Declare Function LockFileEx Lib "kernel32" Alias "LockFileEx" (ByVal hFile As Long, ByVal dwFlags As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToLockLow As Long, ByVal nNumberOfBytesToLockHigh As Long, lpOverlapped As OVERLAPPED) As Long\par
\par
Public Const LOCKFILE_FAIL_IMMEDIATELY = &H1\par
Public Const LOCKFILE_EXCLUSIVE_LOCK = &H2\par
\par
Declare Function UnlockFileEx Lib "kernel32" Alias "UnlockFileEx" (ByVal hFile As Long, ByVal dwReserved As Long, ByVal nNumberOfBytesToUnlockLow As Long, ByVal nNumberOfBytesToUnlockHigh As Long, lpOverlapped As OVERLAPPED) As Long\par
\par
Type BY_HANDLE_FILE_INFORMATION\par
dwFileAttributes As Long\par
ftCreationTime As FILETIME\par
ftLastAccessTime As FILETIME\par
ftLastWriteTime As FILETIME\par
dwVolumeSerialNumber As Long\par
nFileSizeHigh As Long\par
nFileSizeLow As Long\par
nNumberOfLinks As Long\par
nFileIndexHigh As Long\par
nFileIndexLow As Long\par
End Type\par
\par
Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long\par
Declare Function GetFileType Lib "kernel32" Alias "GetFileType" (ByVal hFile As Long) As Long\par
Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long\par
Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long\par
Declare Function SetStdHandle Lib "kernel32" Alias "SetStdHandle" (ByVal nStdHandle As Long, ByVal nHandle As Long) As Long\par
Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long\par
Declare Function ReadFile Lib "kernel32" Alias "ReadFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long\par
Declare Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As Long) As Long\par
Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As OVERLAPPED) As Long\par
Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long\par
Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long\par
Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long\par
Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long\par
Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long\par
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long\par
Declare Function DuplicateHandle Lib "kernel32" Alias "DuplicateHandle" (ByVal hSourceProcessHandle As Long, ByVal hSourceHandle As Long, ByVal hTargetProcessHandle As Long, lpTargetHandle As Long, ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwOptions As Long) As Long\par
\par
Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long\par
\par
Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long\par
Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" (ByVal hMem As Long) As Long\par
Declare Function GlobalHandle Lib "kernel32" Alias "GlobalHandle" (wMem As Any) As Long\par
Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (ByVal hMem As Long) As Long\par
Declare Function GlobalReAlloc Lib "kernel32" Alias "GlobalReAlloc" (ByVal hMem As Long, ByVal dwBytes As Long, ByVal wFlags As Long) As Long\par
\par
Declare Function GlobalSize Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Long) As Long\par
Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Long) As Long\par
Declare Function GlobalFlags Lib "kernel32" Alias "GlobalFlags" (ByVal hMem As Long) As Long\par
Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)\par
\par
Public Const LNOTIFY_OUTOFMEM = 0\par
Public Const LNOTIFY_MOVE = 1\par
Public Const LNOTIFY_DISCARD = 2\par
\par
Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wFlags As Long, ByVal wBytes As Long) As Long\par
Declare Function LocalFree Lib "kernel32" Alias "LocalFree" (ByVal hMem As Long) As Long\par
Declare Function LocalHandle Lib "kernel32" Alias "LocalHandle" (wMem As Any) As Long\par
Declare Function LocalLock Lib "kernel32" Alias "LocalLock" (ByVal hMem As Long) As Long\par
Declare Function LocalReAlloc Lib "kernel32" Alias "LocalReAlloc" (ByVal hMem As Long, ByVal wBytes As Long, ByVal wFlags As Long) As Long\par
\par
Declare Function LocalSize Lib "kernel32" Alias "LocalSize" (ByVal hMem As Long) As Long\par
Declare Function LocalUnlock Lib "kernel32" Alias "LocalUnlock" (ByVal hMem As Long) As Long\par
Declare Function LocalFlags Lib "kernel32" Alias "LocalFlags" (ByVal hMem As Long) As Long\par
\par
Type MEMORY_BASIC_INFORMATION\par
BaseAddress as Long\par
AllocationBase as Long\par
AllocationProtect As Long\par
RegionSize As Long\par
State As Long\par
Protect As Long\par
lType As Long\par
End Type\par
\par
Declare Function FlushInstructionCache Lib "kernel32" Alias "FlushInstructionCache" (ByVal hProcess As Long, lpBaseAddress As Any, ByVal dwSize As Long) As Long\par
Declare Function VirtualAlloc Lib "kernel32" Alias "VirtualAlloc" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long\par
Declare Function VirtualFree Lib "kernel32" Alias "VirtualFree" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long\par
Declare Function VirtualProtect Lib "kernel32" Alias "VirtualProtect" (ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long\par
Declare Function VirtualQuery Lib "kernel32" Alias "VirtualQuery" (ByVal lpAddress As Long, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long\par
Declare Function VirtualProtectEx Lib "kernel32" Alias "VirtualProtectEx" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long\par
Declare Function VirtualQueryEx Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess As Long, ByVal lpAddress As Long, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long\par
Declare Function HeapCreate Lib "kernel32" Alias "HeapCreate" (ByVal flOptions As Long, ByVal dwInitialSize As Long, ByVal dwMaximumSize As Long) As Long\par
Declare Function HeapDestroy Lib "kernel32" Alias "HeapDestroy" (ByVal hHeap As Long) As Long\par
Declare Function HeapAlloc Lib "kernel32" Alias "HeapAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long\par
Declare Function HeapReAlloc Lib "kernel32" Alias "HeapReAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal lpMem As Long, ByVal dwBytes As Long) As Long\par
Declare Function HeapFree Lib "kernel32" Alias "HeapFree" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal lpMem As Long) As Long\par
Declare Function HeapSize Lib "kernel32" Alias "HeapSize" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal lpMem As Long) As Long\par
Declare Function GetProcessHeap Lib "kernel32" Alias "GetProcessHeap" () As Long\par
Declare Function GetProcessTimes Lib "kernel32" Alias "GetProcessTimes" (ByVal hProcess As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long\par
Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long\par
Declare Function GetCurrentProcess Lib "kernel32" Alias "GetCurrentProcess" () As Long\par
Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessId" () As Long\par
Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long)\par
Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long\par
Declare Function GetExitCodeProcess Lib "kernel32" Alias "GetExitCodeProcess" (ByVal hProcess As Long, lpExitCode As Long) As Long\par
\par
Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long\par
Declare Sub SetLastError Lib "kernel32" Alias "SetLastError" (ByVal dwErrCode As Long)\par
\par
Public Const SLE_ERROR = &H1\par
Public Const SLE_MINORERROR = &H2\par
Public Const SLE_WARNING = &H3\par
\par
Declare Sub SetLastErrorEx Lib "user32" Alias "SetLastErrorEx" (ByVal dwErrCode As Long, ByVal dwType As Long)\par
Declare Function GetOverlappedResult Lib "kernel32" Alias "GetOverlappedResult" (ByVal hFile As Long, lpOverlapped As OVERLAPPED, lpNumberOfBytesTransferred As Long, ByVal bWait As Long) As Long\par
\par
Public Const SEM_FAILCRITICALERRORS = &H1\par
Public Const SEM_NOGPFAULTERRORBOX = &H2\par
Public Const SEM_NOOPENFILEERRORBOX = &H8000&\par
\par
Declare Sub SetDebugErrorLevel Lib "user32" Alias "SetDebugErrorLevel" (ByVal dwLevel As Long)\par
Declare Function SetErrorMode Lib "kernel32" Alias "SetErrorMode" (ByVal wMode As Long) As Long\par
\par
Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long\par
Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long\par
Declare Function GetThreadContext Lib "kernel32" Alias "GetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long\par
Declare Function SetThreadContext Lib "kernel32" Alias "SetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long\par
Declare Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As Long) As Long\par
Declare Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As Long) As Long\par
\par
Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As Long, ByVal lpName As String, ByVal lpType As String) As Long\par
Declare Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Integer) As Long\par
Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long\par
Declare Function UpdateResource Lib "kernel32" Alias "UpdateResourceA" (ByVal hUpdate As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long, lpData As Any, ByVal cbData As Long) As Long\par
Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long\par
Declare Function LoadResource Lib "kernel32" Alias "LoadResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long\par
Declare Function LockResource Lib "kernel32" Alias "LockResource" (ByVal hResData As Long) As Long\par
Declare Function SizeofResource Lib "kernel32" Alias "SizeofResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long\par
\par
' Predefined Resource Types\par
Public Const RT_CURSOR = 1&\par
Public Const RT_BITMAP = 2&\par
Public Const RT_ICON = 3&\par
Public Const RT_MENU = 4&\par
Public Const RT_DIALOG = 5&\par
Public Const RT_STRING = 6&\par
Public Const RT_FONTDIR = 7&\par
Public Const RT_FONT = 8&\par
Public Const RT_ACCELERATOR = 9&\par
Public Const RT_RCDATA = 10&\par
Public Const RT_MESSAGETABLE = 11\par
Public Const RT_GROUP_CURSOR = 12\par
Public Const RT_GROUP_ICON = 14\par
Public Const RT_VERSION = 16 \par
Public Const RT_DLGINCLUDE = 17\par
\par
Declare Function InitAtomTable Lib "kernel32" Alias "InitAtomTable" (ByVal nSize As Long) As Long\par
Declare Function AddAtom Lib "kernel32" Alias "AddAtomA" (ByVal lpString As String) As Integer\par
Declare Function DeleteAtom Lib "kernel32" Alias "DeleteAtom" (ByVal nAtom As Integer) As Integer\par
Declare Function FindAtom Lib "kernel32" Alias "FindAtomA" (ByVal lpString As String) As Integer\par
Declare Function GetAtomName Lib "kernel32" Alias "GetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer\par
Declare Function GlobalDeleteAtom Lib "kernel32" Alias "GlobalDeleteAtom" (ByVal nAtom As Integer) As Integer\par
Declare Function GlobalFindAtom Lib "kernel32" Alias "GlobalFindAtomA" (ByVal lpString As String) As Integer\par
Declare Function GlobalGetAtomName Lib "kernel32" Alias "GlobalGetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
\par
' User Profile Routines\par
' NOTE: The lpKeyName argument for GetProfileString, WriteProfileString,\par
' GetPrivateProfileString, and WritePrivateProfileString can be either\par
' a string or NULL. This is why the argument is defined as "As Any".\par
' For example, to pass a string specify ByVal "wallpaper"\par
' To pass NULL specify ByVal 0&\par
' You can also pass NULL for the lpString argument for WriteProfileString\par
' and WritePrivateProfileString\par
' The above comment is from win32api.txt. For api32.txt, it has been changed to a string\par
' due to the ability to use vbNullString\par
Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long\par
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long\par
Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long\par
Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long\par
Declare Function WriteProfileSection Lib "kernel32" Alias "WriteProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String) As Long\par
Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long\par
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long\par
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As Any, ByVal lpFileName As String) As Long\par
Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long\par
Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long\par
\par
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long\par
Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long\par
Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectoryA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long\par
Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long\par
Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As LARGE_INTEGER, lpTotalNumberOfBytes As LARGE_INTEGER, lpTotalNumberOfFreeBytes As LARGE_INTEGER) As Long\par
Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long\par
Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long\par
Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long\par
Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, lpFilePart As Long) As Long\par
\par
Public Const DDD_RAW_TARGET_PATH = &H1\par
Public Const DDD_REMOVE_DEFINITION = &H2\par
Public Const DDD_EXACT_MATCH_ON_REMOVE = &H4\par
\par
Public Const MAX_PATH = 260\par
\par
Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long\par
Declare Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long\par
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long\par
Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long\par
Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long\par
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long\par
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long\par
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long\par
Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" (ByVal lpPath As String, ByVal lpFileName As String, ByVal lpExtension As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, lpFilePart As Long) As Long\par
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long\par
Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long\par
Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long\par
\par
Public Const MOVEFILE_REPLACE_EXISTING = &H1\par
Public Const MOVEFILE_COPY_ALLOWED = &H2\par
Public Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4\par
\par
Type EVENTLOGRECORD\par
Length as Long ' Length of full record\par
Reserved as Long ' Used by the service\par
RecordNumber as Long ' Absolute record number\par
TimeGenerated as Long ' Seconds since 1-1-1970\par
TimeWritten as Long 'Seconds since 1-1-1970\par
EventID as Long\par
EventType as Integer\par
NumStrings as Integer\par
EventCategory as Integer\par
ReservedFlags as Integer ' For use with paired events (auditing)\par
ClosingRecordNumber as Long 'For use with paired events (auditing)\par
StringOffset as Long ' Offset from beginning of record\par
UserSidLength as Long\par
UserSidOffset as Long\par
DataLength as Long\par
DataOffset as Long ' Offset from beginning of record\par
End Type\par
\par
Declare Function CreateNamedPipe Lib "kernel32" Alias "CreateNamedPipeA" (ByVal lpName As String, ByVal dwOpenMode As Long, ByVal dwPipeMode As Long, ByVal nMaxInstances As Long, ByVal nOutBufferSize As Long, ByVal nInBufferSize As Long, ByVal nDefaultTimeOut As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long\par
Declare Function GetNamedPipeHandleState Lib "kernel32" Alias "GetNamedPipeHandleStateA" (ByVal hNamedPipe As Long, lpState As Long, lpCurInstances As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long, ByVal lpUserName As String, ByVal nMaxUserNameSize As Long) As Long\par
Declare Function CallNamedPipe Lib "kernel32" Alias "CallNamedPipeA" (ByVal lpNamedPipeName As String, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, ByVal nTimeOut As Long) As Long\par
Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long\par
Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long\par
Declare Sub SetFileApisToOEM Lib "kernel32" Alias "SetFileApisToOEM" ()\par
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long\par
Declare Function ClearEventLog Lib "advapi32.dll" Alias "ClearEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long\par
Declare Function BackupEventLog Lib "advapi32.dll" Alias "BackupEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long\par
Declare Function CloseEventLog Lib "advapi32.dll" Alias "CloseEventLog" (ByVal hEventLog As Long) As Long\par
Declare Function DeregisterEventSource Lib "advapi32.dll" Alias "DeregisterEventSource" (ByVal hEventLog As Long) As Long\par
Declare Function GetNumberOfEventLogRecords Lib "advapi32.dll" Alias "GetNumberOfEventLogRecords" (ByVal hEventLog As Long, NumberOfRecords As Long) As Long\par
Declare Function GetOldestEventLogRecord Lib "advapi32.dll" Alias "GetOldestEventLogRecord" (ByVal hEventLog As Long, OldestRecord As Long) As Long\par
Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLogA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long\par
Declare Function RegisterEventSource Lib "advapi32.dll" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long\par
Declare Function OpenBackupEventLog Lib "advapi32.dll" Alias "OpenBackupEventLogA" (ByVal lpUNCServerName As String, ByVal lpFileName As String) As Long\par
Declare Function ReadEventLog Lib "advapi32.dll" Alias "ReadEventLogA" (ByVal hEventLog As Long, ByVal dwReadFlags As Long, ByVal dwRecordOffset As Long, lpBuffer As EVENTLOGRECORD, ByVal nNumberOfBytesToRead As Long, pnBytesRead As Long, pnMinNumberOfBytesNeeded As Long) As Long\par
Declare Function ReportEvent Lib "advapi32.dll" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, lpUserSid As Any, ByVal wNumStrings As Long, ByVal dwDataSize As Long, ByVal lpStrings As Long, lpRawData As Any) As Long\par
\par
' Security APIs\par
Public Const TokenUser = 1\par
Public Const TokenGroups = 2\par
Public Const TokenPrivileges = 3\par
Public Const TokenOwner = 4\par
Public Const TokenPrimaryGroup = 5\par
Public Const TokenDefaultDacl = 6\par
Public Const TokenSource = 7\par
Public Const TokenType = 8\par
Public Const TokenImpersonationLevel = 9\par
Public Const TokenStatistics = 10\par
\par
Type TOKEN_GROUPS\par
GroupCount As Long\par
Groups(ANYSIZE_ARRAY) As SID_AND_ATTRIBUTES\par
End Type\par
\par
Declare Function DuplicateToken Lib "advapi32.dll" Alias "DuplicateToken" (ByVal ExistingTokenHandle As Long, ImpersonationLevel As Integer, DuplicateTokenHandle As Long) As Long\par
Declare Function GetKernelObjectSecurity Lib "advapi32.dll" Alias "GetKernelObjectSecurity" (ByVal Handle As Long, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long\par
Declare Function ImpersonateNamedPipeClient Lib "advapi32.dll" Alias "ImpersonateNamedPipeClient" (ByVal hNamedPipe As Long) As Long\par
Declare Function ImpersonateSelf Lib "advapi32.dll" Alias "ImpersonateSelf" (ImpersonationLevel As Integer) As Long\par
Declare Function RevertToSelf Lib "advapi32.dll" Alias "RevertToSelf" () As Long\par
Declare Function AccessCheck Lib "advapi32.dll" Alias "AccessCheck" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, PrivilegeSet As PRIVILEGE_SET, PrivilegeSetLength As Long, GrantedAccess As Long, ByVal Status As Long) As Long\par
\par
Type TOKEN_PRIVILEGES\par
\tab PrivilegeCount As Long\par
\tab Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES\par
End Type\par
\par
Declare Function OpenProcessToken Lib "advapi32.dll" Alias "OpenProcessToken" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long\par
Declare Function OpenThreadToken Lib "advapi32.dll" Alias "OpenThreadToken" (ByVal ThreadHandle As Long, ByVal DesiredAccess As Long, ByVal OpenAsSelf As Long, TokenHandle As Long) As Long\par
\par
Declare Function GetTokenInformation Lib "advapi32.dll" Alias "GetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long, ReturnLength As Long) As Long\par
Declare Function SetTokenInformation Lib "advapi32.dll" Alias "SetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long) As Long\par
Declare Function AdjustTokenPrivileges Lib "advapi32.dll" Alias "AdjustTokenPrivileges" (ByVal TokenHandle As Long, ByVal DisableAllPrivileges As Long, NewState As TOKEN_PRIVILEGES, ByVal BufferLength As Long, PreviousState As TOKEN_PRIVILEGES, ReturnLength As Long) As Long\par
Declare Function AdjustTokenGroups Lib "advapi32.dll" Alias "AdjustTokenGroups" (ByVal TokenHandle As Long, ByVal ResetToDefault As Long, NewState As TOKEN_GROUPS, ByVal BufferLength As Long, PreviousState As TOKEN_GROUPS, ReturnLength As Long) As Long\par
Declare Function PrivilegeCheck Lib "advapi32.dll" Alias "PrivilegeCheck" (ByVal ClientToken As Long, RequiredPrivileges As PRIVILEGE_SET, ByVal pfResult As Long) As Long\par
Declare Function AccessCheckAndAuditAlarm Lib "advapi32.dll" Alias "AccessCheckAndAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, SecurityDescriptor As SECURITY_DESCRIPTOR, ByVal DesiredAccess As Long, GenericMapping As GENERIC_MAPPING, ByVal ObjectCreation As Long, GrantedAccess As Long, ByVal AccessStatus As Long, ByVal pfGenerateOnClose As Long) As Long\par
Declare Function ObjectOpenAuditAlarm Lib "advapi32.dll" Alias "ObjectOpenAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ObjectTypeName As String, ByVal ObjectName As String, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal ClientToken As Long, ByVal DesiredAccess As Long, ByVal GrantedAccess As Long, Privileges As PRIVILEGE_SET, ByVal ObjectCreation As Long, ByVal AccessGranted As Long, GenerateOnClose As Long) As Long\par
Declare Function ObjectPrivilegeAuditAlarm Lib "advapi32.dll" Alias "ObjectPrivilegeAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal ClientToken As Long, ByVal DesiredAccess As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long\par
Declare Function ObjectCloseAuditAlarm Lib "advapi32.dll" Alias "ObjectCloseAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal GenerateOnClose As Long) As Long\par
Declare Function PrivilegedServiceAuditAlarm Lib "advapi32.dll" Alias "PrivilegedServiceAuditAlarmA" (ByVal SubsystemName As String, ByVal ServiceName As String, ByVal ClientToken As Long, Privileges As PRIVILEGE_SET, ByVal AccessGranted As Long) As Long\par
Declare Function IsValidSid Lib "advapi32.dll" Alias "IsValidSid" (pSid As Any) As Long\par
Declare Function EqualSid Lib "advapi32.dll" Alias "EqualSid" (pSid1 As Any, pSid2 As Any) As Long\par
Declare Function EqualPrefixSid Lib "advapi32.dll" Alias "EqualPrefixSid" (pSid1 As Any, pSid2 As Any) As Long\par
Declare Function GetSidLengthRequired Lib "advapi32.dll" Alias "GetSidLengthRequired" (ByVal nSubAuthorityCount As Byte) As Long\par
Declare Function AllocateAndInitializeSid Lib "advapi32.dll" Alias "AllocateAndInitializeSid" (pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte, ByVal nSubAuthority0 As Long, ByVal nSubAuthority1 As Long, ByVal nSubAuthority2 As Long, ByVal nSubAuthority3 As Long, ByVal nSubAuthority4 As Long, ByVal nSubAuthority5 As Long, ByVal nSubAuthority6 As Long, ByVal nSubAuthority7 As Long, lpPSid As Long) As Long\par
Declare Sub FreeSid Lib "advapi32.dll" Alias "FreeSid" (pSid As Any)\par
Declare Function InitializeSid Lib "advapi32.dll" Alias "InitializeSid" (Sid As Any, pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte) As Long\par
Declare Function GetSidIdentifierAuthority Lib "advapi32.dll" Alias "GetSidIdentifierAuthority" (pSid As Any) As SID_IDENTIFIER_AUTHORITY\par
Declare Function GetSidSubAuthority Lib "advapi32.dll" Alias "GetSidSubAuthority" (pSid As Any, ByVal nSubAuthority As Long) As Long\par
Declare Function GetSidSubAuthorityCount Lib "advapi32.dll" Alias "GetSidSubAuthorityCount" (pSid As Any) As Byte\par
Declare Function GetLengthSid Lib "advapi32.dll" Alias "GetLengthSid" (pSid As Any) As Long\par
Declare Function CopySid Lib "advapi32.dll" Alias "CopySid" (ByVal nDestinationSidLength As Long, pDestinationSid As Any, pSourceSid As Any) As Long\par
Declare Function AreAllAccessesGranted Lib "advapi32.dll" Alias "AreAllAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long\par
Declare Function AreAnyAccessesGranted Lib "advapi32.dll" Alias "AreAnyAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long\par
Declare Sub MapGenericMask Lib "advapi32.dll" Alias "MapGenericMask" (AccessMask As Long, GenericMapping As GENERIC_MAPPING)\par
Declare Function IsValidAcl Lib "advapi32.dll" Alias "IsValidAcl" (pAcl As ACL) As Long\par
Declare Function InitializeAcl Lib "advapi32.dll" Alias "InitializeAcl" (pAcl As ACL, ByVal nAclLength As Long, ByVal dwAclRevision As Long) As Long\par
Declare Function GetAclInformation Lib "advapi32.dll" Alias "GetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long\par
Declare Function SetAclInformation Lib "advapi32.dll" Alias "SetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long\par
Declare Function AddAce Lib "advapi32.dll" Alias "AddAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwStartingAceIndex As Long, pAceList As Any, ByVal nAceListLength As Long) As Long\par
Declare Function DeleteAce Lib "advapi32.dll" Alias "DeleteAce" (pAcl As ACL, ByVal dwAceIndex As Long) As Long\par
Declare Function GetAce Lib "advapi32.dll" Alias "GetAce" (pAcl As ACL, ByVal dwAceIndex As Long, pAce As Any) As Long\par
Declare Function AddAccessAllowedAce Lib "advapi32.dll" Alias "AddAccessAllowedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long\par
Declare Function AddAccessDeniedAce Lib "advapi32.dll" Alias "AddAccessDeniedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long\par
Declare Function AddAuditAccessAce Lib "advapi32.dll" Alias "AddAuditAccessAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal dwAccessMask As Long, pSid As Any, ByVal bAuditSuccess As Long, ByVal bAuditFailure As Long) As Long\par
Declare Function FindFirstFreeAce Lib "advapi32.dll" Alias "FindFirstFreeAce" (pAcl As ACL, pAce As Long) As Long\par
Declare Function InitializeSecurityDescriptor Lib "advapi32.dll" Alias "InitializeSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal dwRevision As Long) As Long\par
Declare Function IsValidSecurityDescriptor Lib "advapi32.dll" Alias "IsValidSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long\par
Declare Function GetSecurityDescriptorLength Lib "advapi32.dll" Alias "GetSecurityDescriptorLength" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long\par
\par
Declare Function GetSecurityDescriptorControl Lib "advapi32.dll" Alias "GetSecurityDescriptorControl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pControl As Integer, lpdwRevision As Long) As Long\par
Declare Function SetSecurityDescriptorDacl Lib "advapi32.dll" Alias "SetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bDaclPresent As Long, pDacl As ACL, ByVal bDaclDefaulted As Long) As Long\par
Declare Function GetSecurityDescriptorDacl Lib "advapi32.dll" Alias "GetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, lpbDaclPresent As Long, pDacl As ACL, lpbDaclDefaulted As Long) As Long\par
Declare Function SetSecurityDescriptorSacl Lib "advapi32.dll" Alias "SetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal bSaclPresent As Long, pSacl As ACL, ByVal bSaclDefaulted As Long) As Long\par
Declare Function GetSecurityDescriptorSacl Lib "advapi32.dll" Alias "GetSecurityDescriptorSacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal lpbSaclPresent As Long, pSacl As ACL, ByVal lpbSaclDefaulted As Long) As Long\par
Declare Function SetSecurityDescriptorOwner Lib "advapi32.dll" Alias "SetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal bOwnerDefaulted As Long) As Long\par
Declare Function GetSecurityDescriptorOwner Lib "advapi32.dll" Alias "GetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal lpbOwnerDefaulted As Long) As Long\par
Declare Function SetSecurityDescriptorGroup Lib "advapi32.dll" Alias "SetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal bGroupDefaulted As Long) As Long\par
Declare Function GetSecurityDescriptorGroup Lib "advapi32.dll" Alias "GetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal lpbGroupDefaulted As Long) As Long\par
Declare Function CreatePrivateObjectSecurity Lib "advapi32.dll" Alias "CreatePrivateObjectSecurity" (ParentDescriptor As SECURITY_DESCRIPTOR, CreatorDescriptor As SECURITY_DESCRIPTOR, NewDescriptor As SECURITY_DESCRIPTOR, ByVal IsDirectoryObject As Long, ByVal Token As Long, GenericMapping As GENERIC_MAPPING) As Long\par
Declare Function SetPrivateObjectSecurity Lib "advapi32.dll" Alias "SetPrivateObjectSecurity" (ByVal SecurityInformation As Long, ModificationDescriptor As SECURITY_DESCRIPTOR, ObjectsSecurityDescriptor As SECURITY_DESCRIPTOR, GenericMapping As GENERIC_MAPPING, ByVal Token As Long) As Long\par
Declare Function GetPrivateObjectSecurity Lib "advapi32.dll" Alias "GetPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR, ByVal SecurityInformation As Long, ResultantDescriptor As SECURITY_DESCRIPTOR, ByVal DescriptorLength As Long, ReturnLength As Long) As Long\par
Declare Function DestroyPrivateObjectSecurity Lib "advapi32.dll" Alias "DestroyPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR) As Long\par
Declare Function MakeSelfRelativeSD Lib "advapi32.dll" Alias "MakeSelfRelativeSD" (pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwBufferLength As Long) As Long\par
Declare Function MakeAbsoluteSD Lib "advapi32.dll" Alias "MakeAbsoluteSD" (pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwAbsoluteSecurityDescriptorSize As Long, pDacl As ACL, lpdwDaclSize As Long, pSacl As ACL, lpdwSaclSize As Long, pOwner As Any, lpdwOwnerSize As Long, pPrimaryGroup As Any, lpdwPrimaryGroupSize As Long) As Long\par
Declare Function SetFileSecurity Lib "advapi32.dll" Alias "SetFileSecurityA" (ByVal lpFileName As String, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long\par
Declare Function GetFileSecurity Lib "advapi32.dll" Alias "GetFileSecurityA" (ByVal lpFileName As String, ByVal RequestedInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long\par
Declare Function SetKernelObjectSecurity Lib "advapi32.dll" Alias "SetKernelObjectSecurity" (ByVal Handle As Long, ByVal SecurityInformation As Long, SecurityDescriptor As SECURITY_DESCRIPTOR) As Long\par
Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Byte) As Long\par
Declare Function FindNextChangeNotification Lib "kernel32" Alias "FindNextChangeNotification" (ByVal hChangeHandle As Long) As Long\par
Declare Function FindCloseChangeNotification Lib "kernel32" Alias "FindCloseChangeNotification" (ByVal hChangeHandle As Long) As Long\par
Declare Function VirtualLock Lib "kernel32" Alias "VirtualLock" (lpAddress As Any, ByVal dwSize As Long) As Long\par
Declare Function VirtualUnlock Lib "kernel32" Alias "VirtualUnlock" (lpAddress As Any, ByVal dwSize As Long) As Long\par
Declare Function MapViewOfFileEx Lib "kernel32" Alias "MapViewOfFileEx" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long, lpBaseAddress As Any) As Long\par
Declare Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long\par
Declare Function GetPriorityClass Lib "kernel32" Alias "GetPriorityClass" (ByVal hProcess As Long) As Long\par
\par
Type CONTEXT\par
\tab FltF0 As Double\par
\tab FltF1 As Double\par
\tab FltF2 As Double\par
\tab FltF3 As Double\par
\tab FltF4 As Double\par
\tab FltF5 As Double\par
\tab FltF6 As Double\par
\tab FltF7 As Double\par
\tab FltF8 As Double\par
\tab FltF9 As Double\par
\tab FltF10 As Double\par
\tab FltF11 As Double\par
\tab FltF12 As Double\par
\tab FltF13 As Double\par
\tab FltF14 As Double\par
\tab FltF15 As Double\par
\tab FltF16 As Double\par
\tab FltF17 As Double\par
\tab FltF18 As Double\par
\tab FltF19 As Double\par
\tab FltF20 As Double\par
\tab FltF21 As Double\par
\tab FltF22 As Double\par
\tab FltF23 As Double\par
\tab FltF24 As Double\par
\tab FltF25 As Double\par
\tab FltF26 As Double\par
\tab FltF27 As Double\par
\tab FltF28 As Double\par
\tab FltF29 As Double\par
\tab FltF30 As Double\par
\tab FltF31 As Double\par
\par
\tab IntV0 As Double\par
\tab IntT0 As Double\par
\tab IntT1 As Double\par
\tab IntT2 As Double\par
\tab IntT3 As Double\par
\tab IntT4 As Double\par
\tab IntT5 As Double\par
\tab IntT6 As Double\par
\tab IntT7 As Double\par
\tab IntS0 As Double\par
\tab IntS1 As Double\par
\tab IntS2 As Double\par
\tab IntS3 As Double\par
\tab IntS4 As Double\par
\tab IntS5 As Double\par
\tab IntFp As Double\par
\tab IntA0 As Double\par
\tab IntA1 As Double\par
\tab IntA2 As Double\par
\tab IntA3 As Double\par
\tab IntA4 As Double\par
\tab IntA5 As Double\par
\tab IntT8 As Double\par
\tab IntT9 As Double\par
\tab IntT10 As Double\par
\tab IntT11 As Double\par
\tab IntRa As Double\par
\tab IntT12 As Double\par
\tab IntAt As Double\par
\tab IntGp As Double\par
\tab IntSp As Double\par
\tab IntZero As Double\par
\par
\tab Fpcr As Double\par
\tab SoftFpcr As Double\par
\par
\tab Fir As Double\par
\tab Psr As Long\par
\par
\tab ContextFlags As Long\par
\tab Fill(4) As Long\par
End Type\par
\par
Type EXCEPTION_POINTERS\par
pExceptionRecord As EXCEPTION_RECORD\par
ContextRecord As CONTEXT\par
End Type\par
\par
Type LDT_BYTES\tab ' Defined for use in LDT_ENTRY Type\par
\tab BaseMid As Byte\par
\tab Flags1 As Byte\par
\tab Flags2 As Byte\par
\tab BaseHi As Byte\par
End Type\par
\par
Type LDT_ENTRY\par
\tab LimitLow As Integer\par
\tab BaseLow As Integer\par
\tab HighWord As Long\tab ' Can use LDT_BYTES Type\par
End Type\par
\par
Declare Sub FatalExit Lib "kernel32" Alias "FatalExit" (ByVal code As Long)\par
Declare Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As Long\par
Declare Sub RaiseException Lib "kernel32" Alias "RaiseException" (ByVal dwExceptionCode As Long, ByVal dwExceptionFlags As Long, ByVal nNumberOfArguments As Long, lpArguments As Long)\par
Declare Function UnhandledExceptionFilter Lib "kernel32" Alias "UnhandledExceptionFilter" (ExceptionInfo As EXCEPTION_POINTERS) As Long\par
\par
Declare Function CreateThread Lib "kernel32" Alias "CreateThread" (lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long\par
Declare Function CreateRemoteThread Lib "kernel32" Alias "CreateRemoteThread" (ByVal hProcess As Long, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long\par
Declare Function GetCurrentThread Lib "kernel32" Alias "GetCurrentThread" () As Long\par
Declare Function GetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Long\par
Declare Function SetThreadPriority Lib "kernel32" Alias "SetThreadPriority" (ByVal hThread As Long, ByVal nPriority As Long) As Long\par
Declare Function GetThreadPriority Lib "kernel32" Alias "GetThreadPriority" (ByVal hThread As Long) As Long\par
Declare Function GetThreadTimes Lib "kernel32" Alias "GetThreadTimes" (ByVal hThread As Long, lpCreationTime As FILETIME, lpExitTime As FILETIME, lpKernelTime As FILETIME, lpUserTime As FILETIME) As Long\par
Declare Sub ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode As Long)\par
Declare Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long\par
Declare Function GetExitCodeThread Lib "kernel32" Alias "GetExitCodeThread" (ByVal hThread As Long, lpExitCode As Long) As Long\par
Declare Function GetThreadSelectorEntry Lib "kernel32" Alias "GetThreadSelectorEntry" (ByVal hThread As Long, ByVal dwSelector As Long, lpSelectorEntry As LDT_ENTRY) As Long\par
\par
' COMM declarations\par
Declare Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As Long, lpDCB As DCB) As Long\par
Declare Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long\par
Declare Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As Long, lpDCB As DCB) As Long\par
Declare Function GetCommTimeouts Lib "kernel32" Alias "GetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long\par
Declare Function PurgeComm Lib "kernel32" Alias "PurgeComm" (ByVal hFile As Long, ByVal dwFlags As Long) As Long\par
Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long\par
Declare Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long\par
Declare Function TransmitCommChar Lib "kernel32" Alias "TransmitCommChar" (ByVal nCid As Long, ByVal cChar As Byte) As Long\par
Declare Function SetCommBreak Lib "kernel32" Alias "SetCommBreak" (ByVal nCid As Long) As Long\par
Declare Function SetCommMask Lib "kernel32" Alias "SetCommMask" (ByVal hFile As Long, ByVal dwEvtMask As Long) As Long\par
Declare Function ClearCommBreak Lib "kernel32" Alias "ClearCommBreak" (ByVal nCid As Long) As Long\par
Declare Function ClearCommError Lib "kernel32" Alias "ClearCommError" (ByVal hFile As Long, lpErrors As Long, lpStat As COMSTAT) As Long\par
Declare Function SetupComm Lib "kernel32" Alias "SetupComm" (ByVal hFile As Long, ByVal dwInQueue As Long, ByVal dwOutQueue As Long) As Long\par
Declare Function EscapeCommFunction Lib "kernel32" Alias "EscapeCommFunction" (ByVal nCid As Long, ByVal nFunc As Long) As Long\par
Declare Function GetCommMask Lib "kernel32" Alias "GetCommMask" (ByVal hFile As Long, lpEvtMask As Long) As Long\par
Declare Function GetCommProperties Lib "kernel32" Alias "GetCommProperties" (ByVal hFile As Long, lpCommProp As COMMPROP) As Long\par
Declare Function GetCommModemStatus Lib "kernel32" Alias "GetCommModemStatus" (ByVal hFile As Long, lpModemStat As Long) As Long\par
Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long\par
\par
Declare Function SetTapePosition Lib "kernel32" Alias "SetTapePosition" (ByVal hDevice As Long, ByVal dwPositionMethod As Long, ByVal dwPartition As Long, ByVal dwOffsetLow As Long, ByVal dwOffsetHigh As Long, ByVal bimmediate As Long) As Long\par
Declare Function GetTapePosition Lib "kernel32" Alias "GetTapePosition" (ByVal hDevice As Long, ByVal dwPositionType As Long, lpdwPartition As Long, lpdwOffsetLow As Long, lpdwOffsetHigh As Long) As Long\par
Declare Function PrepareTape Lib "kernel32" Alias "PrepareTape" (ByVal hDevice As Long, ByVal dwOperation As Long, ByVal bimmediate As Long) As Long\par
Declare Function EraseTape Lib "kernel32" Alias "EraseTape" (ByVal hDevice As Long, ByVal dwEraseType As Long, ByVal bimmediate As Long) As Long\par
Declare Function CreateTapePartition Lib "kernel32" Alias "CreateTapePartition" (ByVal hDevice As Long, ByVal dwPartitionMethod As Long, ByVal dwCount As Long, ByVal dwSize As Long) As Long\par
Declare Function WriteTapemark Lib "kernel32" Alias "WriteTapemark" (ByVal hDevice As Long, ByVal dwTapemarkType As Long, ByVal dwTapemarkCount As Long, ByVal bimmediate As Long) As Long\par
Declare Function GetTapeStatus Lib "kernel32" Alias "GetTapeStatus" (ByVal hDevice As Long) As Long\par
Declare Function GetTapeParameters Lib "kernel32" Alias "GetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpdwSize As Long, lpTapeInformation As Any) As Long\par
\par
Public Const GET_TAPE_MEDIA_INFORMATION = 0\par
Public Const GET_TAPE_DRIVE_INFORMATION = 1\par
\par
Declare Function SetTapeParameters Lib "kernel32" Alias "SetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpTapeInformation As Any) As Long\par
\par
Public Const SET_TAPE_MEDIA_INFORMATION = 0\par
Public Const SET_TAPE_DRIVE_INFORMATION = 1\par
\par
Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long\par
\par
Declare Function MulDiv Lib "kernel32" Alias "MulDiv" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long\par
\par
Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME)\par
Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSystemTime As SYSTEMTIME) As Long\par
Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME)\par
Declare Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemTime As SYSTEMTIME) As Long\par
Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)\par
\par
Type TIME_ZONE_INFORMATION\par
Bias As Long\par
StandardName(31) As Integer\par
StandardDate As SYSTEMTIME\par
StandardBias As Long\par
DaylightName(31) As Integer\par
DaylightDate As SYSTEMTIME\par
DaylightBias As Long\par
End Type\par
\par
Declare Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long\par
Declare Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long\par
\par
' Routines to convert back and forth\par
' between system time and file time\par
\par
Declare Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long\par
Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long\par
Declare Function LocalFileTimeToFileTime Lib "kernel32" Alias "LocalFileTimeToFileTime" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long\par
Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long\par
Declare Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long\par
Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, lpFatDate As Integer, lpFatTime As Integer) As Long\par
Declare Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long\par
Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long\par
Declare Function FormatMessage Lib "kernel32" Alias "FormatMessageA" (ByVal dwFlags As Long, lpSource As Any, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As String, ByVal nSize As Long, Arguments As Long) As Long\par
\par
Public Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100\par
Public Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200\par
Public Const FORMAT_MESSAGE_FROM_STRING = &H400\par
Public Const FORMAT_MESSAGE_FROM_HMODULE = &H800\par
Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000\par
Public Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000\par
Public Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF\par
\par
Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long\par
Declare Function ConnectNamedPipe Lib "kernel32" Alias "ConnectNamedPipe" (ByVal hNamedPipe As Long, lpOverlapped As OVERLAPPED) As Long\par
Declare Function DisconnectNamedPipe Lib "kernel32" Alias "DisconnectNamedPipe" (ByVal hNamedPipe As Long) As Long\par
Declare Function SetNamedPipeHandleState Lib "kernel32" Alias "SetNamedPipeHandleState" (ByVal hNamedPipe As Long, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As Long\par
Declare Function GetNamedPipeInfo Lib "kernel32" Alias "GetNamedPipeInfo" (ByVal hNamedPipe As Long, lpFlags As Long, lpOutBufferSize As Long, lpInBufferSize As Long, lpMaxInstances As Long) As Long\par
Declare Function PeekNamedPipe Lib "kernel32" Alias "PeekNamedPipe" (ByVal hNamedPipe As Long, lpBuffer As Any, ByVal nBufferSize As Long, lpBytesRead As Long, lpTotalBytesAvail As Long, lpBytesLeftThisMessage As Long) As Long\par
Declare Function TransactNamedPipe Lib "kernel32" Alias "TransactNamedPipe" (ByVal hNamedPipe As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesRead As Long, lpOverlapped As OVERLAPPED) As Long\par
\par
Declare Function CreateMailslot Lib "kernel32" Alias "CreateMailslotA" (ByVal lpName As String, ByVal nMaxMessageSize As Long, ByVal lReadTimeout As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long\par
Declare Function GetMailslotInfo Lib "kernel32" Alias "GetMailslotInfo" (ByVal hMailslot As Long, lpMaxMessageSize As Long, lpNextSize As Long, lpMessageCount As Long, lpReadTimeout As Long) As Long\par
Declare Function SetMailslotInfo Lib "kernel32" Alias "SetMailslotInfo" (ByVal hMailslot As Long, ByVal lReadTimeout As Long) As Long\par
Declare Function MapViewOfFile Lib "kernel32" Alias "MapViewOfFile" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long\par
Declare Function FlushViewOfFile Lib "kernel32" Alias "FlushViewOfFile" (ByVal lpBaseAddress As Long, ByVal dwNumberOfBytesToFlush As Long) As Long\par
Declare Function UnmapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (ByVal lpBaseAddress As Long) As Long\par
\par
Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long\par
Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long\par
Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long\par
\par
Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long\par
Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long\par
Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long\par
Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long\par
Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long\par
Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long\par
\par
Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long\par
Declare Function hwrite Lib "kernel32" Alias "_hwrite" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long\par
\par
Declare Function TlsAlloc Lib "kernel32" Alias "TlsAlloc" () As Long\par
\par
Public Const TLS_OUT_OF_INDEXES = &HFFFF\par
\par
Declare Function TlsGetValue Lib "kernel32" Alias "TlsGetValue" (ByVal dwTlsIndex As Long) As Long\par
Declare Function TlsSetValue Lib "kernel32" Alias "TlsSetValue" (ByVal dwTlsIndex As Long, lpTlsValue As Any) As Long\par
Declare Function TlsFree Lib "kernel32" Alias "TlsFree" (ByVal dwTlsIndex As Long) As Long\par
Declare Function SleepEx Lib "kernel32" Alias "SleepEx" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long\par
Declare Function WaitForSingleObjectEx Lib "kernel32" Alias "WaitForSingleObjectEx" (ByVal hHandle As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long\par
Declare Function WaitForMultipleObjectsEx Lib "kernel32" Alias "WaitForMultipleObjectsEx" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long\par
Declare Function BackupRead Lib "kernel32" Alias "BackupRead" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Any) As Long\par
Declare Function BackupSeek Lib "kernel32" Alias "BackupSeek" (ByVal hFile As Long, ByVal dwLowBytesToSeek As Long, ByVal dwHighBytesToSeek As Long, lpdwLowByteSeeked As Long, lpdwHighByteSeeked As Long, lpContext As Long) As Long\par
Declare Function BackupWrite Lib "kernel32" Alias "BackupWrite" (ByVal hFile As Long, lpBuffer As Byte, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal bAbort As Long, ByVal bProcessSecurity As Long, lpContext As Long) As Long\par
\par
' Stream ID type\par
Type WIN32_STREAM_ID\par
dwStreamID As Long\par
dwStreamAttributes As Long\par
dwStreamSizeLow As Long\par
dwStreamSizeHigh As Long\par
dwStreamNameSize As Long\par
cStreamName As Byte\par
End Type\par
\par
' Stream IDs\par
Public Const BACKUP_DATA = &H1\par
Public Const BACKUP_EA_DATA = &H2\par
Public Const BACKUP_SECURITY_DATA = &H3\par
Public Const BACKUP_ALTERNATE_DATA = &H4\par
Public Const BACKUP_LINK = &H5\par
\par
' Stream Attributes\par
Public Const STREAM_MODIFIED_WHEN_READ = &H1\par
Public Const STREAM_CONTAINS_SECURITY = &H2\par
\par
' Dual Mode API below this line. Dual Mode Types also included.\par
\par
Public Const STARTF_USESHOWWINDOW = &H1\par
Public Const STARTF_USESIZE = &H2\par
Public Const STARTF_USEPOSITION = &H4\par
Public Const STARTF_USECOUNTCHARS = &H8\par
Public Const STARTF_USEFILLATTRIBUTE = &H10\par
Public Const STARTF_RUNFULLSCREEN = &H20 ' ignored for non-x86 platforms\par
Public Const STARTF_FORCEONFEEDBACK = &H40\par
Public Const STARTF_FORCEOFFFEEDBACK = &H80\par
Public Const STARTF_USESTDHANDLES = &H100\par
\par
Type STARTUPINFO\par
cb As Long\par
lpReserved As Long\par
lpDesktop As Long\par
lpTitle As Long\par
dwX As Long\par
dwY As Long\par
dwXSize As Long\par
dwYSize As Long\par
dwXCountChars As Long\par
dwYCountChars As Long\par
dwFillAttribute As Long\par
dwFlags As Long\par
wShowWindow As Integer\par
cbReserved2 As Integer\par
lpReserved2 As Long\par
hStdInput As Long\par
hStdOutput As Long\par
hStdError As Long\par
End Type\par
\par
Public Const SHUTDOWN_NORETRY = &H1\par
\par
Type WIN32_FIND_DATA\par
dwFileAttributes As Long\par
ftCreationTime As FILETIME\par
ftLastAccessTime As FILETIME\par
ftLastWriteTime As FILETIME\par
nFileSizeHigh As Long\par
nFileSizeLow As Long\par
dwReserved0 As Long\par
dwReserved1 As Long\par
cFileName As String * MAX_PATH\par
cAlternate As String * 14\par
End Type\par
\par
Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long\par
Declare Function OpenMutex Lib "kernel32" Alias "OpenMutexA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long\par
Declare Function CreateEvent Lib "kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal bInitialState As Long, ByVal lpName As String) As Long\par
Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long\par
Declare Function CreateSemaphore Lib "kernel32" Alias "CreateSemaphoreA" (lpSemaphoreAttributes As SECURITY_ATTRIBUTES, ByVal lInitialCount As Long, ByVal lMaximumCount As Long, ByVal lpName As String) As Long\par
Declare Function OpenSemaphore Lib "kernel32" Alias "OpenSemaphoreA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long\par
Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappingAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long\par
Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long\par
Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long\par
\par
Declare Function IsBadReadPtr Lib "kernel32" Alias "IsBadReadPtr" (lp As Any, ByVal ucb As Long) As Long\par
Declare Function IsBadWritePtr Lib "kernel32" Alias "IsBadWritePtr" (lp As Any, ByVal ucb As Long) As Long\par
Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As String, ByVal ucchMax As Long) As Long\par
Declare Function IsBadHugeReadPtr Lib "kernel32" Alias "IsBadHugeReadPtr" (lp As Any, ByVal ucb As Long) As Long\par
Declare Function IsBadHugeWritePtr Lib "kernel32" Alias "IsBadHugeWritePtr" (lp As Any, ByVal ucb As Long) As Long\par
\par
Declare Function LookupAccountSid Lib "advapi32.dll" Alias "LookupAccountSidA" (ByVal lpSystemName As String, Sid As Any, ByVal name As String, cbName As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long\par
\par
Declare Function LookupAccountName Lib "advapi32.dll" Alias "LookupAccountNameA" (ByVal lpSystemName As String, ByVal lpAccountName As String, Sid As Long, cbSid As Long, ByVal ReferencedDomainName As String, cbReferencedDomainName As Long, peUse As Integer) As Long\par
Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long\par
Declare Function LookupPrivilegeName Lib "advapi32.dll" Alias "LookupPrivilegeNameA" (ByVal lpSystemName As String, lpLuid As LARGE_INTEGER, ByVal lpName As String, cbName As Long) As Long\par
Declare Function LookupPrivilegeDisplayName Lib "advapi32.dll" Alias "LookupPrivilegeDisplayNameA" (ByVal lpSystemName As String, ByVal lpName As String, ByVal lpDisplayName As String, cbDisplayName As Long, lpLanguageID As Long) As Long\par
Declare Function AllocateLocallyUniqueId Lib "advapi32.dll" Alias "AllocateLocallyUniqueId" (Luid As LARGE_INTEGER) As Long\par
\par
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long\par
Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long\par
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long\par
\par
' Performance counter API's\par
Declare Function QueryPerformanceCounter Lib "kernel32" Alias "QueryPerformanceCounter" (lpPerformanceCount As LARGE_INTEGER) As Long\par
Declare Function QueryPerformanceFrequency Lib "kernel32" Alias "QueryPerformanceFrequency" (lpFrequency As LARGE_INTEGER) As Long\par
\par
' Abnormal termination codes\par
Public Const TC_NORMAL = 0\par
Public Const TC_HARDERR = 1\par
Public Const TC_GP_TRAP = 2\par
Public Const TC_SIGNAL = 3\par
\par
\par
' Procedure declarations, constant definitions, and macros\par
' for the NLS component\par
\par
' String Length Maximums\par
Public Const MAX_LEADBYTES = 12 ' 5 ranges, 2 bytes ea., 0 term.\par
\par
' MBCS and Unicode Translation Flags.\par
\par
Public Const MB_PRECOMPOSED = &H1 ' use precomposed chars\par
Public Const MB_COMPOSITE = &H2 ' use composite chars\par
Public Const MB_USEGLYPHCHARS = &H4 ' use glyph chars, not ctrl chars\par
\par
Public Const WC_DEFAULTCHECK = &H100 ' check for default char\par
Public Const WC_COMPOSITECHECK = &H200 ' convert composite to precomposed\par
Public Const WC_DISCARDNS = &H10 ' discard non-spacing chars\par
Public Const WC_SEPCHARS = &H20 ' generate separate chars\par
Public Const WC_DEFAULTCHAR = &H40 ' replace w/ default char\par
\par
' Character Type Flags.\par
Public Const CT_CTYPE1 = &H1 ' ctype 1 information\par
Public Const CT_CTYPE2 = &H2 ' ctype 2 information\par
Public Const CT_CTYPE3 = &H4 ' ctype 3 information\par
\par
' CType 1 Flag Bits.\par
Public Const C1_UPPER = &H1 ' upper case\par
Public Const C1_LOWER = &H2 ' lower case\par
Public Const C1_DIGIT = &H4 ' decimal digits\par
Public Const C1_SPACE = &H8 ' spacing characters\par
Public Const C1_PUNCT = &H10 ' punctuation characters\par
Public Const C1_CNTRL = &H20 ' control characters\par
Public Const C1_BLANK = &H40 ' blank characters\par
Public Const C1_XDIGIT = &H80 ' other digits\par
Public Const C1_ALPHA = &H100 ' any letter\par
\par
' CType 2 Flag Bits.\par
\par
Public Const C2_LEFTTORIGHT = &H1 ' left to right\par
Public Const C2_RIGHTTOLEFT = &H2 ' right to left\par
\par
Public Const C2_EUROPENUMBER = &H3 ' European number, digit\par
Public Const C2_EUROPESEPARATOR = &H4 ' European numeric separator\par
Public Const C2_EUROPETERMINATOR = &H5 ' European numeric terminator\par
Public Const C2_ARABICNUMBER = &H6 ' Arabic number\par
Public Const C2_COMMONSEPARATOR = &H7 ' common numeric separator\par
\par
Public Const C2_BLOCKSEPARATOR = &H8 ' block separator\par
Public Const C2_SEGMENTSEPARATOR = &H9 ' segment separator\par
Public Const C2_WHITESPACE = &HA ' white space\par
Public Const C2_OTHERNEUTRAL = &HB ' other neutrals\par
\par
Public Const C2_NOTAPPLICABLE = &H0 ' no implicit directionality\par
\par
' CType 3 Flag Bits.\par
Public Const C3_NONSPACING = &H1 ' nonspacing character\par
Public Const C3_DIACRITIC = &H2 ' diacritic mark\par
Public Const C3_VOWELMARK = &H4 ' vowel mark\par
Public Const C3_SYMBOL = &H8 ' symbols\par
\par
Public Const C3_NOTAPPLICABLE = &H0 ' ctype 3 is not applicable\par
\par
' String Flags.\par
Public Const NORM_IGNORECASE = &H1 ' ignore case\par
Public Const NORM_IGNORENONSPACE = &H2 ' ignore nonspacing chars\par
Public Const NORM_IGNORESYMBOLS = &H4 ' ignore symbols\par
\par
' Locale Independent Mapping Flags.\par
Public Const MAP_FOLDCZONE = &H10 ' fold compatibility zone chars\par
Public Const MAP_PRECOMPOSED = &H20 ' convert to precomposed chars\par
Public Const MAP_COMPOSITE = &H40 ' convert to composite chars\par
Public Const MAP_FOLDDIGITS = &H80 ' all digits to ASCII 0-9\par
\par
' Locale Dependent Mapping Flags.\par
Public Const LCMAP_LOWERCASE = &H100 ' lower case letters\par
Public Const LCMAP_UPPERCASE = &H200 ' upper case letters\par
Public Const LCMAP_SORTKEY = &H400 ' WC sort key (normalize)\par
Public Const LCMAP_BYTEREV = &H800 ' byte reversal\par
\par
' Sorting Flags.\par
Public Const SORT_STRINGSORT = &H1000 ' use string sort method\par
\par
' Code Page Default Values.\par
Public Const CP_ACP = 0 ' default to ANSI code page\par
Public Const CP_OEMCP = 1 ' default to OEM code page\par
\par
' Country Codes.\par
\par
Public Const CTRY_DEFAULT = 0\par
\par
Public Const CTRY_AUSTRALIA = 61 ' Australia\par
Public Const CTRY_AUSTRIA = 43 ' Austria\par
Public Const CTRY_BELGIUM = 32 ' Belgium\par
Public Const CTRY_BRAZIL = 55 ' Brazil\par
Public Const CTRY_CANADA = 2 ' Canada\par
Public Const CTRY_DENMARK = 45 ' Denmark\par
Public Const CTRY_FINLAND = 358 ' Finland\par
Public Const CTRY_FRANCE = 33 ' France\par
Public Const CTRY_GERMANY = 49 ' Germany\par
Public Const CTRY_ICELAND = 354 ' Iceland\par
Public Const CTRY_IRELAND = 353 ' Ireland\par
Public Const CTRY_ITALY = 39 ' Italy\par
Public Const CTRY_JAPAN = 81 ' Japan\par
Public Const CTRY_MEXICO = 52 ' Mexico\par
Public Const CTRY_NETHERLANDS = 31 ' Netherlands\par
Public Const CTRY_NEW_ZEALAND = 64 ' New Zealand\par
Public Const CTRY_NORWAY = 47 ' Norway\par
Public Const CTRY_PORTUGAL = 351 ' Portugal\par
Public Const CTRY_PRCHINA = 86 ' PR China\par
Public Const CTRY_SOUTH_KOREA = 82 ' South Korea\par
Public Const CTRY_SPAIN = 34 ' Spain\par
Public Const CTRY_SWEDEN = 46 ' Sweden\par
Public Const CTRY_SWITZERLAND = 41 ' Switzerland\par
Public Const CTRY_TAIWAN = 886 ' Taiwan\par
Public Const CTRY_UNITED_KINGDOM = 44 ' United Kingdom\par
Public Const CTRY_UNITED_STATES = 1 ' United States\par
\par
' Locale Types.\par
' These types are used for the GetLocaleInfoW NLS API routine.\par
\par
\par
' LOCALE_NOUSEROVERRIDE is also used in GetTimeFormatW and GetDateFormatW.\par
Public Const LOCALE_NOUSEROVERRIDE = &H80000000 ' do not use user overrides\par
\par
Public Const LOCALE_ILANGUAGE = &H1 ' language id\par
Public Const LOCALE_SLANGUAGE = &H2 ' localized name of language\par
Public Const LOCALE_SENGLANGUAGE = &H1001 ' English name of language\par
Public Const LOCALE_SABBREVLANGNAME = &H3 ' abbreviated language name\par
Public Const LOCALE_SNATIVELANGNAME = &H4 ' native name of language\par
Public Const LOCALE_ICOUNTRY = &H5 ' country code\par
Public Const LOCALE_SCOUNTRY = &H6 ' localized name of country\par
Public Const LOCALE_SENGCOUNTRY = &H1002 ' English name of country\par
Public Const LOCALE_SABBREVCTRYNAME = &H7 ' abbreviated country name\par
Public Const LOCALE_SNATIVECTRYNAME = &H8 ' native name of country\par
Public Const LOCALE_IDEFAULTLANGUAGE = &H9 ' default language id\par
Public Const LOCALE_IDEFAULTCOUNTRY = &HA ' default country code\par
Public Const LOCALE_IDEFAULTCODEPAGE = &HB ' default code page\par
\par
Public Const LOCALE_SLIST = &HC ' list item separator\par
Public Const LOCALE_IMEASURE = &HD ' 0 = metric, 1 = US\par
\par
Public Const LOCALE_SDECIMAL = &HE ' decimal separator\par
Public Const LOCALE_STHOUSAND = &HF ' thousand separator\par
Public Const LOCALE_SGROUPING = &H10 ' digit grouping\par
Public Const LOCALE_IDIGITS = &H11 ' number of fractional digits\par
Public Const LOCALE_ILZERO = &H12 ' leading zeros for decimal\par
Public Const LOCALE_SNATIVEDIGITS = &H13 ' native ascii 0-9\par
\par
Public Const LOCALE_SCURRENCY = &H14 ' local monetary symbol\par
Public Const LOCALE_SINTLSYMBOL = &H15 ' intl monetary symbol\par
Public Const LOCALE_SMONDECIMALSEP = &H16 ' monetary decimal separator\par
Public Const LOCALE_SMONTHOUSANDSEP = &H17 ' monetary thousand separator\par
Public Const LOCALE_SMONGROUPING = &H18 ' monetary grouping\par
Public Const LOCALE_ICURRDIGITS = &H19 ' # local monetary digits\par
Public Const LOCALE_IINTLCURRDIGITS = &H1A ' # intl monetary digits\par
Public Const LOCALE_ICURRENCY = &H1B ' positive currency mode\par
Public Const LOCALE_INEGCURR = &H1C ' negative currency mode\par
\par
Public Const LOCALE_SDATE = &H1D ' date separator\par
Public Const LOCALE_STIME = &H1E ' time separator\par
Public Const LOCALE_SSHORTDATE = &H1F ' short date format string\par
Public Const LOCALE_SLONGDATE = &H20 ' long date format string\par
Public Const LOCALE_STIMEFORMAT = &H1003 ' time format string\par
Public Const LOCALE_IDATE = &H21 ' short date format ordering\par
Public Const LOCALE_ILDATE = &H22 ' long date format ordering\par
Public Const LOCALE_ITIME = &H23 ' time format specifier\par
Public Const LOCALE_ICENTURY = &H24 ' century format specifier\par
Public Const LOCALE_ITLZERO = &H25 ' leading zeros in time field\par
Public Const LOCALE_IDAYLZERO = &H26 ' leading zeros in day field\par
Public Const LOCALE_IMONLZERO = &H27 ' leading zeros in month field\par
Public Const LOCALE_S1159 = &H28 ' AM designator\par
Public Const LOCALE_S2359 = &H29 ' PM designator\par
\par
Public Const LOCALE_SDAYNAME1 = &H2A ' long name for Monday\par
Public Const LOCALE_SDAYNAME2 = &H2B ' long name for Tuesday\par
Public Const LOCALE_SDAYNAME3 = &H2C ' long name for Wednesday\par
Public Const LOCALE_SDAYNAME4 = &H2D ' long name for Thursday\par
Public Const LOCALE_SDAYNAME5 = &H2E ' long name for Friday\par
Public Const LOCALE_SDAYNAME6 = &H2F ' long name for Saturday\par
Public Const LOCALE_SDAYNAME7 = &H30 ' long name for Sunday\par
Public Const LOCALE_SABBREVDAYNAME1 = &H31 ' abbreviated name for Monday\par
Public Const LOCALE_SABBREVDAYNAME2 = &H32 ' abbreviated name for Tuesday\par
Public Const LOCALE_SABBREVDAYNAME3 = &H33 ' abbreviated name for Wednesday\par
Public Const LOCALE_SABBREVDAYNAME4 = &H34 ' abbreviated name for Thursday\par
Public Const LOCALE_SABBREVDAYNAME5 = &H35 ' abbreviated name for Friday\par
Public Const LOCALE_SABBREVDAYNAME6 = &H36 ' abbreviated name for Saturday\par
Public Const LOCALE_SABBREVDAYNAME7 = &H37 ' abbreviated name for Sunday\par
Public Const LOCALE_SMONTHNAME1 = &H38 ' long name for January\par
Public Const LOCALE_SMONTHNAME2 = &H39 ' long name for February\par
Public Const LOCALE_SMONTHNAME3 = &H3A ' long name for March\par
Public Const LOCALE_SMONTHNAME4 = &H3B ' long name for April\par
Public Const LOCALE_SMONTHNAME5 = &H3C ' long name for May\par
Public Const LOCALE_SMONTHNAME6 = &H3D ' long name for June\par
Public Const LOCALE_SMONTHNAME7 = &H3E ' long name for July\par
Public Const LOCALE_SMONTHNAME8 = &H3F ' long name for August\par
Public Const LOCALE_SMONTHNAME9 = &H40 ' long name for September\par
Public Const LOCALE_SMONTHNAME10 = &H41 ' long name for October\par
Public Const LOCALE_SMONTHNAME11 = &H42 ' long name for November\par
Public Const LOCALE_SMONTHNAME12 = &H43 ' long name for December\par
Public Const LOCALE_SABBREVMONTHNAME1 = &H44 ' abbreviated name for January\par
Public Const LOCALE_SABBREVMONTHNAME2 = &H45 ' abbreviated name for February\par
Public Const LOCALE_SABBREVMONTHNAME3 = &H46 ' abbreviated name for March\par
Public Const LOCALE_SABBREVMONTHNAME4 = &H47 ' abbreviated name for April\par
Public Const LOCALE_SABBREVMONTHNAME5 = &H48 ' abbreviated name for May\par
Public Const LOCALE_SABBREVMONTHNAME6 = &H49 ' abbreviated name for June\par
Public Const LOCALE_SABBREVMONTHNAME7 = &H4A ' abbreviated name for July\par
Public Const LOCALE_SABBREVMONTHNAME8 = &H4B ' abbreviated name for August\par
Public Const LOCALE_SABBREVMONTHNAME9 = &H4C ' abbreviated name for September\par
Public Const LOCALE_SABBREVMONTHNAME10 = &H4D ' abbreviated name for October\par
Public Const LOCALE_SABBREVMONTHNAME11 = &H4E ' abbreviated name for November\par
Public Const LOCALE_SABBREVMONTHNAME12 = &H4F ' abbreviated name for December\par
Public Const LOCALE_SABBREVMONTHNAME13 = &H100F\par
\par
Public Const LOCALE_SPOSITIVESIGN = &H50 ' positive sign\par
Public Const LOCALE_SNEGATIVESIGN = &H51 ' negative sign\par
Public Const LOCALE_IPOSSIGNPOSN = &H52 ' positive sign position\par
Public Const LOCALE_INEGSIGNPOSN = &H53 ' negative sign position\par
Public Const LOCALE_IPOSSYMPRECEDES = &H54 ' mon sym precedes pos amt\par
Public Const LOCALE_IPOSSEPBYSPACE = &H55 ' mon sym sep by space from pos amt\par
Public Const LOCALE_INEGSYMPRECEDES = &H56 ' mon sym precedes neg amt\par
Public Const LOCALE_INEGSEPBYSPACE = &H57 ' mon sym sep by space from neg amt\par
\par
' Time Flags for GetTimeFormatW.\par
Public Const TIME_NOMINUTESORSECONDS = &H1 ' do not use minutes or seconds\par
Public Const TIME_NOSECONDS = &H2 ' do not use seconds\par
Public Const TIME_NOTIMEMARKER = &H4 ' do not use time marker\par
Public Const TIME_FORCE24HOURFORMAT = &H8 ' always use 24 hour format\par
\par
' Date Flags for GetDateFormatW.\par
Public Const DATE_SHORTDATE = &H1 ' use short date picture\par
Public Const DATE_LONGDATE = &H2 ' use long date picture\par
\par
\par
' Code Page Dependent APIs\par
\par
Declare Function IsValidCodePage Lib "kernel32" Alias "IsValidCodePage" (ByVal CodePage As Long) As Long\par
Declare Function GetACP Lib "kernel32" Alias "GetACP" () As Long\par
Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Long\par
Declare Function GetCPInfo Lib "kernel32" Alias "GetCPInfo" (ByVal CodePage As Long, lpCPInfo As CPINFO) As Long\par
Declare Function IsDBCSLeadByte Lib "kernel32" Alias "IsDBCSLeadByte" (ByVal bTestChar As Byte) As Long\par
Declare Function IsDBCSLeadByteEx Lib "kernel32" (ByVal codepage As Long, ByVal bTestChar As Byte) As Long\par
Declare Function MultiByteToWideChar Lib "kernel32" Alias "MultiByteToWideChar" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long\par
Declare Function WideCharToMultiByte Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long\par
\par
' Locale Dependent APIs\par
\par
Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (ByVal Locale As Long, ByVal dwCmpFlags As Long, ByVal lpString1 As String, ByVal cchCount1 As Long, ByVal lpString2 As String, ByVal cchCount2 As Long) As Long\par
Declare Function LCMapString Lib "kernel32" Alias "LCMapStringA" (ByVal Locale As Long, ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long\par
Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long\par
Declare Function GetTimeFormat Lib "kernel32" Alias "GetTimeFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpTime As SYSTEMTIME, ByVal lpFormat As String, ByVal lpTimeStr As String, ByVal cchTime As Long) As Long\par
Declare Function GetDateFormat Lib "kernel32" Alias "GetDateFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, lpDate As SYSTEMTIME, ByVal lpFormat As String, ByVal lpDateStr As String, ByVal cchDate As Long) As Long\par
Declare Function SetThreadLocale Lib "kernel32" Alias "SetThreadLocale" (ByVal Locale As Long) As Long\par
Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefaultLangID" () As Integer\par
Declare Function GetUserDefaultLangID Lib "kernel32" Alias "GetUserDefaultLangID" () As Integer\par
Declare Function GetSystemDefaultLCID Lib "kernel32" Alias "GetSystemDefaultLCID" () As Long\par
Declare Function GetUserDefaultLCID Lib "kernel32" Alias "GetUserDefaultLCID" () As Long\par
\par
' Locale Independent APIs\par
\par
Declare Function GetStringType Lib "kernel32" Alias "GetStringTypeA" (ByVal lcid As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Long) As Long\par
Declare Function FoldString Lib "kernel32" Alias "FoldStringA" (ByVal dwMapFlags As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, ByVal lpDestStr As String, ByVal cchDest As Long) As Long\par
\par
' *************************************************************************\par
' * *\par
' * winnls.h -- NLS procedure declarations, constant definitions and macros *\par
' * *\par
' * Copyright (c) 1991-1995, Microsoft Corp. All rights reserved. *\par
' * *\par
' **************************************************************************/\par
\par
' * Calendar Types.\par
' *\par
' * These types are used for the GetALTCalendarInfoW NLS API routine.\par
' */\par
Public Const MAX_DEFAULTCHAR = 2\par
Public Const CAL_ICALINTVALUE = &H1 ' calendar type\par
Public Const CAL_SCALNAME = &H2 ' native name of calendar\par
Public Const CAL_IYEAROFFSETRANGE = &H3 ' starting years of eras\par
Public Const CAL_SERASTRING = &H4 ' era name for IYearOffsetRanges\par
Public Const CAL_SSHORTDATE = &H5 ' Integer date format string\par
Public Const CAL_SLONGDATE = &H6 ' long date format string\par
Public Const CAL_SDAYNAME1 = &H7 ' native name for Monday\par
Public Const CAL_SDAYNAME2 = &H8 ' native name for Tuesday\par
Public Const CAL_SDAYNAME3 = &H9 ' native name for Wednesday\par
Public Const CAL_SDAYNAME4 = &HA ' native name for Thursday\par
Public Const CAL_SDAYNAME5 = &HB ' native name for Friday\par
Public Const CAL_SDAYNAME6 = &HC ' native name for Saturday\par
Public Const CAL_SDAYNAME7 = &HD ' native name for Sunday\par
Public Const CAL_SABBREVDAYNAME1 = &HE ' abbreviated name for Monday\par
Public Const CAL_SABBREVDAYNAME2 = &HF ' abbreviated name for Tuesday\par
Public Const CAL_SABBREVDAYNAME3 = &H10 ' abbreviated name for Wednesday\par
Public Const CAL_SABBREVDAYNAME4 = &H11 ' abbreviated name for Thursday\par
Public Const CAL_SABBREVDAYNAME5 = &H12 ' abbreviated name for Friday\par
Public Const CAL_SABBREVDAYNAME6 = &H13 ' abbreviated name for Saturday\par
Public Const CAL_SABBREVDAYNAME7 = &H14 ' abbreviated name for Sunday\par
Public Const CAL_SMONTHNAME1 = &H15 ' native name for January\par
Public Const CAL_SMONTHNAME2 = &H16 ' native name for February\par
Public Const CAL_SMONTHNAME3 = &H17 ' native name for March\par
Public Const CAL_SMONTHNAME4 = &H18 ' native name for April\par
Public Const CAL_SMONTHNAME5 = &H19 ' native name for May\par
Public Const CAL_SMONTHNAME6 = &H1A ' native name for June\par
Public Const CAL_SMONTHNAME7 = &H1B ' native name for July\par
Public Const CAL_SMONTHNAME8 = &H1C ' native name for August\par
Public Const CAL_SMONTHNAME9 = &H1D ' native name for September\par
Public Const CAL_SMONTHNAME10 = &H1E ' native name for October\par
Public Const CAL_SMONTHNAME11 = &H1F ' native name for November\par
Public Const CAL_SMONTHNAME12 = &H20 ' native name for December\par
Public Const CAL_SMONTHNAME13 = &H21 ' native name for 13th month (if any)\par
Public Const CAL_SABBREVMONTHNAME1 = &H22 ' abbreviated name for January\par
Public Const CAL_SABBREVMONTHNAME2 = &H23 ' abbreviated name for February\par
Public Const CAL_SABBREVMONTHNAME3 = &H24 ' abbreviated name for March\par
Public Const CAL_SABBREVMONTHNAME4 = &H25 ' abbreviated name for April\par
Public Const CAL_SABBREVMONTHNAME5 = &H26 ' abbreviated name for May\par
Public Const CAL_SABBREVMONTHNAME6 = &H27 ' abbreviated name for June\par
Public Const CAL_SABBREVMONTHNAME7 = &H28 ' abbreviated name for July\par
Public Const CAL_SABBREVMONTHNAME8 = &H29 ' abbreviated name for August\par
Public Const CAL_SABBREVMONTHNAME9 = &H2A ' abbreviated name for September\par
Public Const CAL_SABBREVMONTHNAME10 = &H2B ' abbreviated name for October\par
Public Const CAL_SABBREVMONTHNAME11 = &H2C ' abbreviated name for November\par
Public Const CAL_SABBREVMONTHNAME12 = &H2D ' abbreviated name for December\par
Public Const CAL_SABBREVMONTHNAME13 = &H2E ' abbreviated name for 13th month (if any)\par
\par
'\par
' * Calendar Enumeration Value.\par
' */\par
Public Const ENUM_ALL_CALENDARS = &HFFFF ' enumerate all calendars\par
'\par
' * Calendar ID Values.\par
' */\par
Public Const CAL_GREGORIAN = 1 ' Gregorian (localized) calendar\par
Public Const CAL_GREGORIAN_US = 2 ' Gregorian (U.S.) calendar\par
Public Const CAL_JAPAN = 3 ' Japanese Emperor Era calendar\par
Public Const CAL_TAIWAN = 4 ' Republic of China Era calendar\par
Public Const CAL_KOREA = 5 ' Korean Tangun Era calendar\par
\par
' *************************************************************************** Typedefs\par
' *\par
' * Define all types for the NLS component here.\par
' \\***************************************************************************/\par
'\par
' * CP Info.\par
' */\par
\par
Type CPINFO\par
MaxCharSize As Long ' max length (Byte) of a char\par
DefaultChar(MAX_DEFAULTCHAR-1) As Byte ' default character\par
LeadByte(MAX_LEADBYTES-1) As Byte ' lead byte ranges\par
End Type\par
\par
Type NUMBERFMT\par
NumDigits As Long ' number of decimal digits\par
LeadingZero As Long ' if leading zero in decimal fields\par
Grouping As Long ' group size left of decimal\par
lpDecimalSep As Long ' ptr to decimal separator string\par
lpThousandSep As Long ' ptr to thousand separator string\par
NegativeOrder As Long ' negative number ordering\par
End Type\par
'\par
' * Currency format.\par
' */\par
\par
Type CURRENCYFMT\par
NumDigits As Long ' number of decimal digits\par
LeadingZero As Long ' if leading zero in decimal fields\par
Grouping As Long ' group size left of decimal\par
lpDecimalSep As String ' ptr to decimal separator string\par
lpThousandSep As String ' ptr to thousand separator string\par
NegativeOrder As Long ' negative currency ordering\par
PositiveOrder As Long ' positive currency ordering\par
lpCurrencySymbol As String ' ptr to currency symbol string\par
End Type\par
\par
Declare Function EnumTimeFormats Lib "KERNEL32" Alias "EnumTimeFormatsA" (ByVal lpTimeFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long\par
Declare Function EnumDateFormats Lib "KERNEL32" Alias "EnumDateFormatsA" (ByVal lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long\par
Declare Function IsValidLocale Lib "KERNEL32" Alias "IsValidLocale" (ByVal Locale As Long, ByVal dwFlags As Long) As Long\par
Declare Function ConvertDefaultLocale Lib "KERNEL32" Alias "ConvertDefaultLocale" (ByVal Locale As Long) As Long\par
Declare Function GetThreadLocale Lib "KERNEL32" Alias "GetThreadLocale" () As Long\par
Declare Function EnumSystemLocales Lib "KERNEL32" Alias "EnumSystemLocalesA" (ByVal lpLocaleEnumProc As Long, ByVal dwFlags As Long) As Long\par
Declare Function EnumSystemCodePages Lib "KERNEL32" Alias "EnumSystemCodePagesA" (ByVal lpCodePageEnumProc As Long, ByVal dwFlags As Long) As Long\par
\par
' The following section contains the public data structures, data types,\par
' and procedures exported by the NT console subsystem.\par
\par
Type COORD\par
x As Integer\par
y As Integer\par
End Type\par
\par
Type SMALL_RECT\par
Left As Integer\par
Top As Integer\par
Right As Integer\par
Bottom As Integer\par
End Type\par
\par
Type KEY_EVENT_RECORD\par
bKeyDown As Long\par
wRepeatCount As Integer\par
wVirtualKeyCode As Integer\par
wVirtualScanCode As Integer\par
uChar As Integer\par
dwControlKeyState As Long\par
End Type\par
\par
' ControlKeyState flags\par
Public Const RIGHT_ALT_PRESSED = &H1 ' the right alt key is pressed.\par
Public Const LEFT_ALT_PRESSED = &H2 ' the left alt key is pressed.\par
Public Const RIGHT_CTRL_PRESSED = &H4 ' the right ctrl key is pressed.\par
Public Const LEFT_CTRL_PRESSED = &H8 ' the left ctrl key is pressed.\par
Public Const SHIFT_PRESSED = &H10 ' the shift key is pressed.\par
Public Const NUMLOCK_ON = &H20 ' the numlock light is on.\par
Public Const SCROLLLOCK_ON = &H40 ' the scrolllock light is on.\par
Public Const CAPSLOCK_ON = &H80 ' the capslock light is on.\par
Public Const ENHANCED_KEY = &H100 ' the key is enhanced.\par
\par
Type MOUSE_EVENT_RECORD\par
dwMousePosition As COORD\par
dwButtonState As Long\par
dwControlKeyState As Long\par
dwEventFlags As Long\par
End Type\par
\par
' ButtonState flags\par
Public Const FROM_LEFT_1ST_BUTTON_PRESSED = &H1\par
Public Const RIGHTMOST_BUTTON_PRESSED = &H2\par
Public Const FROM_LEFT_2ND_BUTTON_PRESSED = &H4\par
Public Const FROM_LEFT_3RD_BUTTON_PRESSED = &H8\par
Public Const FROM_LEFT_4TH_BUTTON_PRESSED = &H10\par
\par
' EventFlags\par
Public Const MOUSE_MOVED = &H1\par
Public Const DOUBLE_CLICK = &H2\par
\par
Type WINDOW_BUFFER_SIZE_RECORD\par
dwSize As COORD\par
End Type\par
\par
Type MENU_EVENT_RECORD\par
dwCommandId As Long\par
End Type\par
\par
Type FOCUS_EVENT_RECORD\par
bSetFocus As Long\par
End Type\par
\par
' EventType flags:\par
Public Const KEY_EVENT = &H1 ' Event contains key event record\par
Public Const mouse_eventC = &H2 ' Event contains mouse event record\par
Public Const WINDOW_BUFFER_SIZE_EVENT = &H4 ' Event contains window change event record\par
Public Const MENU_EVENT = &H8 ' Event contains menu event record\par
Public Const FOCUS_EVENT = &H10 ' event contains focus change\par
\par
Type CHAR_INFO\par
Char As Integer\par
Attributes As Integer\par
End Type\par
\par
' Attributes flags:\par
Public Const FOREGROUND_BLUE = &H1 ' text color contains blue.\par
Public Const FOREGROUND_GREEN = &H2 ' text color contains green.\par
Public Const FOREGROUND_RED = &H4 ' text color contains red.\par
Public Const FOREGROUND_INTENSITY = &H8 ' text color is intensified.\par
Public Const BACKGROUND_BLUE = &H10 ' background color contains blue.\par
Public Const BACKGROUND_GREEN = &H20 ' background color contains green.\par
Public Const BACKGROUND_RED = &H40 ' background color contains red.\par
Public Const BACKGROUND_INTENSITY = &H80 ' background color is intensified.\par
\par
Type CONSOLE_SCREEN_BUFFER_INFO\par
dwSize As COORD\par
dwCursorPosition As COORD\par
wAttributes As Integer\par
srWindow As SMALL_RECT\par
dwMaximumWindowSize As COORD\par
End Type\par
\par
Type CONSOLE_CURSOR_INFO\par
dwSize As Long\par
bVisible As Long\par
End Type\par
\par
Public Const CTRL_C_EVENT = 0\par
Public Const CTRL_BREAK_EVENT = 1\par
Public Const CTRL_CLOSE_EVENT = 2\par
' 3 is reserved!\par
' 4 is reserved!\par
Public Const CTRL_LOGOFF_EVENT = 5\par
Public Const CTRL_SHUTDOWN_EVENT = 6\par
\par
' Input Mode flags:\par
Public Const ENABLE_PROCESSED_INPUT = &H1\par
Public Const ENABLE_LINE_INPUT = &H2\par
Public Const ENABLE_ECHO_INPUT = &H4\par
Public Const ENABLE_WINDOW_INPUT = &H8\par
Public Const ENABLE_MOUSE_INPUT = &H10\par
\par
' Output Mode flags:\par
Public Const ENABLE_PROCESSED_OUTPUT = &H1\par
Public Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2\par
\par
Declare Function ReadConsoleOutput Lib "kernel32" Alias "ReadConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpReadRegion As SMALL_RECT) As Long\par
Declare Function WriteConsoleOutput Lib "kernel32" Alias "WriteConsoleOutputA" (ByVal hConsoleOutput As Long, lpBuffer As CHAR_INFO, dwBufferSize As COORD, dwBufferCoord As COORD, lpWriteRegion As SMALL_RECT) As Long\par
Declare Function ReadConsoleOutputCharacter Lib "kernel32" Alias "ReadConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfCharsRead As Long) As Long\par
Declare Function ReadConsoleOutputAttribute Lib "kernel32" Alias "ReadConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Long, ByVal nLength As Long, dwReadCoord As COORD, lpNumberOfAttrsRead As Long) As Long\par
Declare Function WriteConsoleOutputCharacter Lib "kernel32" Alias "WriteConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal lpCharacter As String, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long\par
\par
Declare Function WriteConsoleOutputAttribute Lib "kernel32" Alias "WriteConsoleOutputAttribute" (ByVal hConsoleOutput As Long, lpAttribute As Integer, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long\par
Declare Function FillConsoleOutputCharacter Lib "kernel32" Alias "FillConsoleOutputCharacterA" (ByVal hConsoleOutput As Long, ByVal cCharacter As Byte, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfCharsWritten As Long) As Long\par
Declare Function FillConsoleOutputAttribute Lib "kernel32" Alias "FillConsoleOutputAttribute" (ByVal hConsoleOutput As Long, ByVal wAttribute As Long, ByVal nLength As Long, dwWriteCoord As COORD, lpNumberOfAttrsWritten As Long) As Long\par
Declare Function GetConsoleMode Lib "kernel32" Alias "GetConsoleMode" (ByVal hConsoleHandle As Long, lpMode As Long) As Long\par
Declare Function GetNumberOfConsoleInputEvents Lib "kernel32" Alias "GetNumberOfConsoleInputEvents" (ByVal hConsoleInput As Long, lpNumberOfEvents As Long) As Long\par
Declare Function GetConsoleScreenBufferInfo Lib "kernel32" Alias "GetConsoleScreenBufferInfo" (ByVal hConsoleOutput As Long, lpConsoleScreenBufferInfo As CONSOLE_SCREEN_BUFFER_INFO) As Long\par
Declare Function GetLargestConsoleWindowSize Lib "kernel32" Alias "GetLargestConsoleWindowSize" (ByVal hConsoleOutput As Long) As COORD\par
Declare Function GetConsoleCursorInfo Lib "kernel32" Alias "GetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long\par
Declare Function GetNumberOfConsoleMouseButtons Lib "kernel32" Alias "GetNumberOfConsoleMouseButtons" (lpNumberOfMouseButtons As Long) As Long\par
Declare Function SetConsoleMode Lib "kernel32" Alias "SetConsoleMode" (ByVal hConsoleHandle As Long, ByVal dwMode As Long) As Long\par
Declare Function SetConsoleActiveScreenBuffer Lib "kernel32" Alias "SetConsoleActiveScreenBuffer" (ByVal hConsoleOutput As Long) As Long\par
Declare Function FlushConsoleInputBuffer Lib "kernel32" Alias "FlushConsoleInputBuffer" (ByVal hConsoleInput As Long) As Long\par
Declare Function SetConsoleScreenBufferSize Lib "kernel32" Alias "SetConsoleScreenBufferSize" (ByVal hConsoleOutput As Long, dwSize As COORD) As Long\par
Declare Function SetConsoleCursorPosition Lib "kernel32" Alias "SetConsoleCursorPosition" (ByVal hConsoleOutput As Long, dwCursorPosition As COORD) As Long\par
Declare Function SetConsoleCursorInfo Lib "kernel32" Alias "SetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long\par
Declare Function ScrollConsoleScreenBuffer Lib "kernel32" Alias "ScrollConsoleScreenBufferA" (ByVal hConsoleOutput As Long, lpScrollRectangle As SMALL_RECT, lpClipRectangle As SMALL_RECT, dwDestinationOrigin As COORD, lpFill As CHAR_INFO) As Long\par
Declare Function SetConsoleWindowInfo Lib "kernel32" Alias "SetConsoleWindowInfo" (ByVal hConsoleOutput As Long, ByVal bAbsolute As Long, lpConsoleWindow As SMALL_RECT) As Long\par
Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long\par
Declare Function SetConsoleCtrlHandler Lib "kernel32" Alias "SetConsoleCtrlHandler" (ByVal HandlerRoutine As Long, ByVal Add As Long) As Long\par
Declare Function GenerateConsoleCtrlEvent Lib "kernel32" Alias "GenerateConsoleCtrlEvent" (ByVal dwCtrlEvent As Long, ByVal dwProcessGroupId As Long) As Long\par
Declare Function AllocConsole Lib "kernel32" Alias "AllocConsole" () As Long\par
Declare Function FreeConsole Lib "kernel32" Alias "FreeConsole" () As Long\par
Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA" (ByVal lpConsoleTitle As String, ByVal nSize As Long) As Long\par
Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long\par
Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" (ByVal hConsoleInput As Long, lpBuffer As Any, ByVal nNumberOfCharsToRead As Long, lpNumberOfCharsRead As Long, lpReserved As Any) As Long\par
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, lpBuffer As Any, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long\par
\par
Public Const CONSOLE_TEXTMODE_BUFFER = 1\par
\par
Declare Function CreateConsoleScreenBuffer Lib "kernel32" Alias "CreateConsoleScreenBuffer" (ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwFlags As Long, lpScreenBufferData As Any) As Long\par
Declare Function GetConsoleCP Lib "kernel32" Alias "GetConsoleCP" () As Long\par
Declare Function SetConsoleCP Lib "kernel32" Alias "SetConsoleCP" (ByVal wCodePageID As Long) As Long\par
Declare Function GetConsoleOutputCP Lib "kernel32" Alias "GetConsoleOutputCP" () As Long\par
Declare Function SetConsoleOutputCP Lib "kernel32" Alias "SetConsoleOutputCP" (ByVal wCodePageID As Long) As Long\par
\par
\par
' -------------\par
' GDI Section\par
' -------------\par
\par
' Binary raster ops\par
Public Const R2_BLACK = 1 ' 0\par
Public Const R2_NOTMERGEPEN = 2 ' DPon\par
Public Const R2_MASKNOTPEN = 3 ' DPna\par
Public Const R2_NOTCOPYPEN = 4 ' PN\par
Public Const R2_MASKPENNOT = 5 ' PDna\par
Public Const R2_NOT = 6 ' Dn\par
Public Const R2_XORPEN = 7 ' DPx\par
Public Const R2_NOTMASKPEN = 8 ' DPan\par
Public Const R2_MASKPEN = 9 ' DPa\par
Public Const R2_NOTXORPEN = 10 ' DPxn\par
Public Const R2_NOP = 11 ' D\par
Public Const R2_MERGENOTPEN = 12 ' DPno\par
Public Const R2_COPYPEN = 13 ' P\par
Public Const R2_MERGEPENNOT = 14 ' PDno\par
Public Const R2_MERGEPEN = 15 ' DPo\par
Public Const R2_WHITE = 16 ' 1\par
Public Const R2_LAST = 16\par
\par
' Ternary raster operations\par
Public Const SRCCOPY = &HCC0020 ' (DWORD) dest = source\par
Public Const SRCPAINT = &HEE0086 ' (DWORD) dest = source OR dest\par
Public Const SRCAND = &H8800C6 ' (DWORD) dest = source AND dest\par
Public Const SRCINVERT = &H660046 ' (DWORD) dest = source XOR dest\par
Public Const SRCERASE = &H440328 ' (DWORD) dest = source AND (NOT dest )\par
Public Const NOTSRCCOPY = &H330008 ' (DWORD) dest = (NOT source)\par
Public Const NOTSRCERASE = &H1100A6 ' (DWORD) dest = (NOT src) AND (NOT dest)\par
Public Const MERGECOPY = &HC000CA ' (DWORD) dest = (source AND pattern)\par
Public Const MERGEPAINT = &HBB0226 ' (DWORD) dest = (NOT source) OR dest\par
Public Const PATCOPY = &HF00021 ' (DWORD) dest = pattern\par
Public Const PATPAINT = &HFB0A09 ' (DWORD) dest = DPSnoo\par
Public Const PATINVERT = &H5A0049 ' (DWORD) dest = pattern XOR dest\par
Public Const DSTINVERT = &H550009 ' (DWORD) dest = (NOT dest)\par
Public Const BLACKNESS = &H42 ' (DWORD) dest = BLACK\par
Public Const WHITENESS = &HFF0062 ' (DWORD) dest = WHITE\par
\par
Public Const GDI_ERROR = &HFFFF\par
Public Const HGDI_ERROR = &HFFFF\par
\par
' Region Flags\par
Public Const ERRORAPI = 0\par
Public Const NULLREGION = 1\par
Public Const SIMPLEREGION = 2\par
Public Const COMPLEXREGION = 3\par
\par
' CombineRgn() Styles\par
Public Const RGN_AND = 1\par
Public Const RGN_OR = 2\par
Public Const RGN_XOR = 3\par
Public Const RGN_DIFF = 4\par
Public Const RGN_COPY = 5\par
Public Const RGN_MIN = RGN_AND\par
Public Const RGN_MAX = RGN_COPY\par
\par
' StretchBlt() Modes\par
Public Const BLACKONWHITE = 1\par
Public Const WHITEONBLACK = 2\par
Public Const COLORONCOLOR = 3\par
Public Const HALFTONE = 4\par
Public Const MAXSTRETCHBLTMODE = 4\par
\par
' PolyFill() Modes\par
Public Const ALTERNATE = 1\par
Public Const WINDING = 2\par
Public Const POLYFILL_LAST = 2\par
\par
' Text Alignment Options\par
Public Const TA_NOUPDATECP = 0\par
Public Const TA_UPDATECP = 1\par
\par
Public Const TA_LEFT = 0\par
Public Const TA_RIGHT = 2\par
Public Const TA_CENTER = 6\par
\par
Public Const TA_TOP = 0\par
Public Const TA_BOTTOM = 8\par
Public Const TA_BASELINE = 24\par
Public Const TA_MASK = (TA_BASELINE + TA_CENTER + TA_UPDATECP)\par
\par
Public Const VTA_BASELINE = TA_BASELINE\par
Public Const VTA_LEFT = TA_BOTTOM\par
Public Const VTA_RIGHT = TA_TOP\par
Public Const VTA_CENTER = TA_CENTER\par
Public Const VTA_BOTTOM = TA_RIGHT\par
Public Const VTA_TOP = TA_LEFT\par
\par
Public Const ETO_GRAYED = 1\par
Public Const ETO_OPAQUE = 2\par
Public Const ETO_CLIPPED = 4\par
\par
Public Const ASPECT_FILTERING = &H1\par
\par
Public Const DCB_RESET = &H1\par
Public Const DCB_ACCUMULATE = &H2\par
Public Const DCB_DIRTY = DCB_ACCUMULATE\par
Public Const DCB_SET = (DCB_RESET Or DCB_ACCUMULATE)\par
Public Const DCB_ENABLE = &H4\par
Public Const DCB_DISABLE = &H8\par
\par
' Metafile Functions\par
Public Const META_SETBKCOLOR = &H201\par
Public Const META_SETBKMODE = &H102\par
Public Const META_SETMAPMODE = &H103\par
Public Const META_SETROP2 = &H104\par
Public Const META_SETRELABS = &H105\par
Public Const META_SETPOLYFILLMODE = &H106\par
Public Const META_SETSTRETCHBLTMODE = &H107\par
Public Const META_SETTEXTCHAREXTRA = &H108\par
Public Const META_SETTEXTCOLOR = &H209\par
Public Const META_SETTEXTJUSTIFICATION = &H20A\par
Public Const META_SETWINDOWORG = &H20B\par
Public Const META_SETWINDOWEXT = &H20C\par
Public Const META_SETVIEWPORTORG = &H20D\par
Public Const META_SETVIEWPORTEXT = &H20E\par
Public Const META_OFFSETWINDOWORG = &H20F\par
Public Const META_SCALEWINDOWEXT = &H410\par
Public Const META_OFFSETVIEWPORTORG = &H211\par
Public Const META_SCALEVIEWPORTEXT = &H412\par
Public Const META_LINETO = &H213\par
Public Const META_MOVETO = &H214\par
Public Const META_EXCLUDECLIPRECT = &H415\par
Public Const META_INTERSECTCLIPRECT = &H416\par
Public Const META_ARC = &H817\par
Public Const META_ELLIPSE = &H418\par
Public Const META_FLOODFILL = &H419\par
Public Const META_PIE = &H81A\par
Public Const META_RECTANGLE = &H41B\par
Public Const META_ROUNDRECT = &H61C\par
Public Const META_PATBLT = &H61D\par
Public Const META_SAVEDC = &H1E\par
Public Const META_SETPIXEL = &H41F\par
Public Const META_OFFSETCLIPRGN = &H220\par
Public Const META_TEXTOUT = &H521\par
Public Const META_BITBLT = &H922\par
Public Const META_STRETCHBLT = &HB23\par
Public Const META_POLYGON = &H324\par
Public Const META_POLYLINE = &H325\par
Public Const META_ESCAPE = &H626\par
Public Const META_RESTOREDC = &H127\par
Public Const META_FILLREGION = &H228\par
Public Const META_FRAMEREGION = &H429\par
Public Const META_INVERTREGION = &H12A\par
Public Const META_PAINTREGION = &H12B\par
Public Const META_SELECTCLIPREGION = &H12C\par
Public Const META_SELECTOBJECT = &H12D\par
Public Const META_SETTEXTALIGN = &H12E\par
Public Const META_CHORD = &H830\par
Public Const META_SETMAPPERFLAGS = &H231\par
Public Const META_EXTTEXTOUT = &HA32\par
Public Const META_SETDIBTODEV = &HD33\par
Public Const META_SELECTPALETTE = &H234\par
Public Const META_REALIZEPALETTE = &H35\par
Public Const META_ANIMATEPALETTE = &H436\par
Public Const META_SETPALENTRIES = &H37\par
Public Const META_POLYPOLYGON = &H538\par
Public Const META_RESIZEPALETTE = &H139\par
Public Const META_DIBBITBLT = &H940\par
Public Const META_DIBSTRETCHBLT = &HB41\par
Public Const META_DIBCREATEPATTERNBRUSH = &H142\par
Public Const META_STRETCHDIB = &HF43\par
Public Const META_EXTFLOODFILL = &H548\par
Public Const META_DELETEOBJECT = &H1F0\par
Public Const META_CREATEPALETTE = &HF7\par
Public Const META_CREATEPATTERNBRUSH = &H1F9\par
Public Const META_CREATEPENINDIRECT = &H2FA\par
Public Const META_CREATEFONTINDIRECT = &H2FB\par
Public Const META_CREATEBRUSHINDIRECT = &H2FC\par
Public Const META_CREATEREGION = &H6FF\par
\par
\par
' GDI Escapes\par
Public Const NEWFRAME = 1\par
Public Const AbortDocC = 2\par
Public Const NEXTBAND = 3\par
Public Const SETCOLORTABLE = 4\par
Public Const GETCOLORTABLE = 5\par
Public Const FLUSHOUTPUT = 6\par
Public Const DRAFTMODE = 7\par
Public Const QUERYESCSUPPORT = 8\par
Public Const SETABORTPROC_C = 9\par
Public Const StartDocC = 10\par
Public Const EndDocC = 11\par
Public Const GETPHYSPAGESIZE = 12\par
Public Const GETPRINTINGOFFSET = 13\par
Public Const GETSCALINGFACTOR = 14\par
Public Const MFCOMMENT = 15\par
Public Const GETPENWIDTH = 16\par
Public Const SETCOPYCOUNT = 17\par
Public Const SELECTPAPERSOURCE = 18\par
Public Const DEVICEDATA = 19\par
Public Const PASSTHROUGH = 19\par
Public Const GETTECHNOLGY = 20\par
Public Const GETTECHNOLOGY = 20\par
Public Const SETLINECAP = 21\par
Public Const SETLINEJOIN = 22\par
Public Const SetMiterLimitC = 23\par
Public Const BANDINFO = 24\par
Public Const DRAWPATTERNRECT = 25\par
Public Const GETVECTORPENSIZE = 26\par
Public Const GETVECTORBRUSHSIZE = 27\par
Public Const ENABLEDUPLEX = 28\par
Public Const GETSETPAPERBINS = 29\par
Public Const GETSETPRINTORIENT = 30\par
Public Const ENUMPAPERBINS = 31\par
Public Const SETDIBSCALING = 32\par
Public Const EPSPRINTING = 33\par
Public Const ENUMPAPERMETRICS = 34\par
Public Const GETSETPAPERMETRICS = 35\par
Public Const POSTSCRIPT_DATA = 37\par
Public Const POSTSCRIPT_IGNORE = 38\par
Public Const MOUSETRAILS = 39\par
Public Const GETDEVICEUNITS = 42\par
\par
Public Const GETEXTENDEDTEXTMETRICS = 256\par
Public Const GETEXTENTTABLE = 257\par
Public Const GETPAIRKERNTABLE = 258\par
Public Const GETTRACKKERNTABLE = 259\par
Public Const ExtTextOutC = 512\par
Public Const GETFACENAME = 513\par
Public Const DOWNLOADFACE = 514\par
Public Const ENABLERELATIVEWIDTHS = 768\par
Public Const ENABLEPAIRKERNING = 769\par
Public Const SETKERNTRACK = 770\par
Public Const SETALLJUSTVALUES = 771\par
Public Const SETCHARSET = 772\par
\par
Public Const StretchBltC = 2048\par
Public Const GETSETSCREENPARAMS = 3072\par
Public Const BEGIN_PATH = 4096\par
Public Const CLIP_TO_PATH = 4097\par
Public Const END_PATH = 4098\par
Public Const EXT_DEVICE_CAPS = 4099\par
Public Const RESTORE_CTM = 4100\par
Public Const SAVE_CTM = 4101\par
Public Const SET_ARC_DIRECTION = 4102\par
Public Const SET_BACKGROUND_COLOR = 4103\par
Public Const SET_POLY_MODE = 4104\par
Public Const SET_SCREEN_ANGLE = 4105\par
Public Const SET_SPREAD = 4106\par
Public Const TRANSFORM_CTM = 4107\par
Public Const SET_CLIP_BOX = 4108\par
Public Const SET_BOUNDS = 4109\par
Public Const SET_MIRROR_MODE = 4110\par
Public Const OPENCHANNEL = 4110\par
Public Const DOWNLOADHEADER = 4111\par
Public Const CLOSECHANNEL = 4112\par
Public Const POSTSCRIPT_PASSTHROUGH = 4115\par
Public Const ENCAPSULATED_POSTSCRIPT = 4116\par
\par
' Spooler Error Codes\par
Public Const SP_NOTREPORTED = &H4000\par
Public Const SP_ERROR = (-1)\par
Public Const SP_APPABORT = (-2)\par
Public Const SP_USERABORT = (-3)\par
Public Const SP_OUTOFDISK = (-4)\par
Public Const SP_OUTOFMEMORY = (-5)\par
\par
Public Const PR_JOBSTATUS = &H0\par
\par
' Object Definitions for EnumObjects()\par
Public Const OBJ_PEN = 1\par
Public Const OBJ_BRUSH = 2\par
Public Const OBJ_DC = 3\par
Public Const OBJ_METADC = 4\par
Public Const OBJ_PAL = 5\par
Public Const OBJ_FONT = 6\par
Public Const OBJ_BITMAP = 7\par
Public Const OBJ_REGION = 8\par
Public Const OBJ_METAFILE = 9\par
Public Const OBJ_MEMDC = 10\par
Public Const OBJ_EXTPEN = 11\par
Public Const OBJ_ENHMETADC = 12\par
Public Const OBJ_ENHMETAFILE = 13\par
\par
Declare Function EnumObjects Lib "gdi32" (ByVal hDC As Long, ByVal nObjectType As Long, ByVal lpObjectFunc As Long, ByVal lpData As Long) As Long\par
\par
' xform stuff\par
Public Const MWT_IDENTITY = 1\par
Public Const MWT_LEFTMULTIPLY = 2\par
Public Const MWT_RIGHTMULTIPLY = 3\par
\par
Public Const MWT_MIN = MWT_IDENTITY\par
Public Const MWT_MAX = MWT_RIGHTMULTIPLY\par
\par
Type XFORM\par
eM11 As Single\par
eM12 As Single\par
eM21 As Single\par
eM22 As Single\par
eDx As Single\par
eDy As Single\par
End Type\par
\par
' Bitmap Header Definition\par
Type BITMAP\par
bmType As Long\par
bmWidth As Long\par
bmHeight As Long\par
bmWidthBytes As Long\par
bmPlanes As Integer\par
bmBitsPixel As Integer\par
bmBits As Long\par
End Type\par
\par
Type RGBTRIPLE\par
rgbtBlue As Byte\par
rgbtGreen As Byte\par
rgbtRed As Byte\par
End Type\par
\par
Type RGBQUAD\par
rgbBlue As Byte\par
rgbGreen As Byte\par
rgbRed As Byte\par
rgbReserved As Byte\par
End Type\par
\par
' structures for defining DIBs\par
Type BITMAPCOREHEADER '12 bytes\par
bcSize As Long\par
bcWidth As Integer\par
bcHeight As Integer\par
bcPlanes As Integer\par
bcBitCount As Integer\par
End Type\par
\par
Type BITMAPINFOHEADER '40 bytes\par
biSize As Long\par
biWidth As Long\par
biHeight As Long\par
biPlanes As Integer\par
biBitCount As Integer\par
biCompression As Long\par
biSizeImage As Long\par
biXPelsPerMeter As Long\par
biYPelsPerMeter As Long\par
biClrUsed As Long\par
biClrImportant As Long\par
End Type\par
\par
' constants for the biCompression field\par
Public Const BI_RGB = 0&\par
Public Const BI_RLE8 = 1&\par
Public Const BI_RLE4 = 2&\par
Public Const BI_bitfields = 3&\par
\par
Type BITMAPINFO\par
bmiHeader As BITMAPINFOHEADER\par
bmiColors As RGBQUAD\par
End Type\par
\par
Type BITMAPCOREINFO\par
bmciHeader As BITMAPCOREHEADER\par
bmciColors As RGBTRIPLE\par
End Type\par
\par
Type BITMAPFILEHEADER\par
bfType As Integer\par
bfSize As Long\par
bfReserved1 As Integer\par
bfReserved2 As Integer\par
bfOffBits As Long\par
End Type\par
\par
\par
' Clipboard Metafile Picture Structure\par
Type HANDLETABLE\par
objectHandle(1) As Long\par
End Type\par
\par
Type METARECORD\par
rdSize As Long\par
rdFunction As Integer\par
rdParm(1) As Integer\par
End Type\par
\par
\par
Type METAFILEPICT\par
mm As Long\par
xExt As Long\par
yExt As Long\par
hMF As Long\par
End Type\par
\par
Type METAHEADER\par
mtType As Integer\par
mtHeaderSize As Integer\par
mtVersion As Integer\par
mtSize As Long\par
mtNoObjects As Integer\par
mtMaxRecord As Long\par
mtNoParameters As Integer\par
End Type\par
\par
Type METAFILEHEADER ' 22 bytes\par
key As Long\par
hmf As Integer\par
bbox As RECTS\par
inch As Integer\par
reserved As Long\par
checksum As Integer\par
End Type\par
\par
Type ENHMETARECORD\par
iType As Long\par
nSize As Long\par
dParm(1) As Long\par
End Type\par
\par
Type SIZEL\par
cx As Long\par
cy As Long\par
End Type\par
\par
Type ENHMETAHEADER\par
iType As Long\par
nSize As Long\par
rclBounds As RECTL\par
rclFrame As RECTL\par
dSignature As Long\par
nVersion As Long\par
nBytes As Long\par
nRecords As Long\par
nHandles As Integer\par
sReserved As Integer\par
nDescription As Long\par
offDescription As Long\par
nPalEntries As Long\par
szlDevice As SIZEL\par
szlMillimeters As SIZEL\par
End Type\par
\par
Type TEXTMETRIC\par
tmHeight As Long\par
tmAscent As Long\par
tmDescent As Long\par
tmInternalLeading As Long\par
tmExternalLeading As Long\par
tmAveCharWidth As Long\par
tmMaxCharWidth As Long\par
tmWeight As Long\par
tmOverhang As Long\par
tmDigitizedAspectX As Long\par
tmDigitizedAspectY As Long\par
tmFirstChar As Byte\par
tmLastChar As Byte\par
tmDefaultChar As Byte\par
tmBreakChar As Byte\par
tmItalic As Byte\par
tmUnderlined As Byte\par
tmStruckOut As Byte\par
tmPitchAndFamily As Byte\par
tmCharSet As Byte\par
End Type\par
\par
' ntmFlags field flags\par
Public Const NTM_REGULAR = &H40&\par
Public Const NTM_BOLD = &H20&\par
Public Const NTM_ITALIC = &H1&\par
Public Const NTM_UNDERSCORE = &H2&\par
Public Const NTM_NEGATIVE = &H4&\par
Public Const NTM_OUTLINE = &H8&\par
Public Const NTM_STRIKEOUT = &H10&\par
\par
' Structure passed to FONTENUMPROC\par
' NOTE: NEWTEXTMETRIC is the same as TEXTMETRIC plus 4 new fields\par
Type NEWTEXTMETRIC\par
tmHeight As Long\par
tmAscent As Long\par
tmDescent As Long\par
tmInternalLeading As Long\par
tmExternalLeading As Long\par
tmAveCharWidth As Long\par
tmMaxCharWidth As Long\par
tmWeight As Long\par
tmOverhang As Long\par
tmDigitizedAspectX As Long\par
tmDigitizedAspectY As Long\par
tmFirstChar As Byte\par
tmLastChar As Byte\par
tmDefaultChar As Byte\par
tmBreakChar As Byte\par
tmItalic As Byte\par
tmUnderlined As Byte\par
tmStruckOut As Byte\par
tmPitchAndFamily As Byte\par
tmCharSet As Byte\par
ntmFlags As Long\par
ntmSizeEM As Long\par
ntmCellHeight As Long\par
ntmAveWidth As Long\par
End Type\par
\par
' tmPitchAndFamily flags\par
Public Const TMPF_FIXED_PITCH = &H1\par
Public Const TMPF_VECTOR = &H2\par
Public Const TMPF_DEVICE = &H8\par
Public Const TMPF_TRUETYPE = &H4\par
\par
\par
' GDI Logical Objects:\par
\par
Type PELARRAY\par
paXCount As Long\par
paYCount As Long\par
paXExt As Long\par
paYExt As Long\par
paRGBs As Integer\par
End Type\par
\par
' Logical Brush (or Pattern)\par
Type LOGBRUSH\par
lbStyle As Long\par
lbColor As Long\par
lbHatch As Long\par
End Type\par
\par
' Logical Pen\par
Type LOGPEN\par
lopnStyle As Long\par
lopnWidth As POINTAPI\par
lopnColor As Long\par
End Type\par
\par
Type EXTLOGPEN\par
elpPenStyle As Long\par
elpWidth As Long\par
elpBrushStyle As Long\par
elpColor As Long\par
elpHatch As Long\par
elpNumEntries As Long\par
elpStyleEntry(1) As Long\par
End Type\par
\par
Type PALETTEENTRY\par
peRed As Byte\par
peGreen As Byte\par
peBlue As Byte\par
peFlags As Byte\par
End Type\par
\par
' Logical Palette\par
Type LOGPALETTE\par
palVersion As Integer\par
palNumEntries As Integer\par
palPalEntry(1) As PALETTEENTRY\par
End Type\par
\par
' Logical Font\par
Public Const LF_FACESIZE = 32\par
Public Const LF_FULLFACESIZE = 64\par
\par
Type LOGFONT\par
lfHeight As Long\par
lfWidth As Long\par
lfEscapement As Long\par
lfOrientation As Long\par
lfWeight As Long\par
lfItalic As Byte\par
lfUnderline As Byte\par
lfStrikeOut As Byte\par
lfCharSet As Byte\par
lfOutPrecision As Byte\par
lfClipPrecision As Byte\par
lfQuality As Byte\par
lfPitchAndFamily As Byte\par
lfFaceName(LF_FACESIZE-1) As Byte\par
End Type\par
\par
Type NONCLIENTMETRICS\par
cbSize As Long\par
iBorderWidth As Long\par
iScrollWidth As Long\par
iScrollHeight As Long\par
iCaptionWidth As Long\par
iCaptionHeight As Long\par
lfCaptionFont As LOGFONT\par
iSMCaptionWidth As Long\par
iSMCaptionHeight As Long\par
lfSMCaptionFont As LOGFONT\par
iMenuWidth As Long\par
iMenuHeight As Long\par
lfMenuFont As LOGFONT\par
lfStatusFont As LOGFONT\par
lfMessageFont As LOGFONT\par
End Type\par
\par
Type ENUMLOGFONT\par
elfLogFont As LOGFONT\par
elfFullName(LF_FULLFACESIZE-1) As Byte\par
elfStyle(LF_FACESIZE-1) As Byte\par
End Type\par
\par
Public Const OUT_DEFAULT_PRECIS = 0\par
Public Const OUT_STRING_PRECIS = 1\par
Public Const OUT_CHARACTER_PRECIS = 2\par
Public Const OUT_STROKE_PRECIS = 3\par
Public Const OUT_TT_PRECIS = 4\par
Public Const OUT_DEVICE_PRECIS = 5\par
Public Const OUT_RASTER_PRECIS = 6\par
Public Const OUT_TT_ONLY_PRECIS = 7\par
Public Const OUT_OUTLINE_PRECIS = 8\par
\par
Public Const CLIP_DEFAULT_PRECIS = 0\par
Public Const CLIP_CHARACTER_PRECIS = 1\par
Public Const CLIP_STROKE_PRECIS = 2\par
Public Const CLIP_MASK = &HF\par
Public Const CLIP_LH_ANGLES = 16\par
Public Const CLIP_TT_ALWAYS = 32\par
Public Const CLIP_EMBEDDED = 128\par
\par
Public Const DEFAULT_QUALITY = 0\par
Public Const DRAFT_QUALITY = 1\par
Public Const PROOF_QUALITY = 2\par
\par
Public Const DEFAULT_PITCH = 0\par
Public Const FIXED_PITCH = 1\par
Public Const VARIABLE_PITCH = 2\par
\par
Public Const ANSI_CHARSET = 0\par
Public Const DEFAULT_CHARSET = 1\par
Public Const SYMBOL_CHARSET = 2\par
Public Const SHIFTJIS_CHARSET = 128\par
Public Const HANGEUL_CHARSET = 129\par
Public Const CHINESEBIG5_CHARSET = 136\par
Public Const OEM_CHARSET = 255\par
\par
' Font Families\par
'\par
Public Const FF_DONTCARE = 0 ' Don't care or don't know.\par
Public Const FF_ROMAN = 16 ' Variable stroke width, serifed.\par
\par
' Times Roman, Century Schoolbook, etc.\par
Public Const FF_SWISS = 32 ' Variable stroke width, sans-serifed.\par
\par
' Helvetica, Swiss, etc.\par
Public Const FF_MODERN = 48 ' Constant stroke width, serifed or sans-serifed.\par
\par
' Pica, Elite, Courier, etc.\par
Public Const FF_SCRIPT = 64 ' Cursive, etc.\par
Public Const FF_DECORATIVE = 80 ' Old English, etc.\par
\par
' Font Weights\par
Public Const FW_DONTCARE = 0\par
Public Const FW_THIN = 100\par
Public Const FW_EXTRALIGHT = 200\par
Public Const FW_LIGHT = 300\par
Public Const FW_NORMAL = 400\par
Public Const FW_MEDIUM = 500\par
Public Const FW_SEMIBOLD = 600\par
Public Const FW_BOLD = 700\par
Public Const FW_EXTRABOLD = 800\par
Public Const FW_HEAVY = 900\par
\par
Public Const FW_ULTRALIGHT = FW_EXTRALIGHT\par
Public Const FW_REGULAR = FW_NORMAL\par
Public Const FW_DEMIBOLD = FW_SEMIBOLD\par
Public Const FW_ULTRABOLD = FW_EXTRABOLD\par
Public Const FW_BLACK = FW_HEAVY\par
\par
Public Const PANOSE_COUNT = 10\par
Public Const PAN_FAMILYTYPE_INDEX = 0\par
Public Const PAN_SERIFSTYLE_INDEX = 1\par
Public Const PAN_WEIGHT_INDEX = 2\par
Public Const PAN_PROPORTION_INDEX = 3\par
Public Const PAN_CONTRAST_INDEX = 4\par
Public Const PAN_STROKEVARIATION_INDEX = 5\par
Public Const PAN_ARMSTYLE_INDEX = 6\par
Public Const PAN_LETTERFORM_INDEX = 7\par
Public Const PAN_MIDLINE_INDEX = 8\par
Public Const PAN_XHEIGHT_INDEX = 9\par
\par
Public Const PAN_CULTURE_LATIN = 0\par
\par
Type PANOSE\par
ulculture As Long\par
bFamilyType As Byte\par
bSerifStyle As Byte\par
bWeight As Byte\par
bProportion As Byte\par
bContrast As Byte\par
bStrokeVariation As Byte\par
bArmStyle As Byte\par
bLetterform As Byte\par
bMidline As Byte\par
bXHeight As Byte\par
End Type\par
\par
Public Const PAN_ANY = 0 ' Any\par
Public Const PAN_NO_FIT = 1 ' No Fit\par
\par
Public Const PAN_FAMILY_TEXT_DISPLAY = 2 ' Text and Display\par
Public Const PAN_FAMILY_SCRIPT = 3 ' Script\par
Public Const PAN_FAMILY_DECORATIVE = 4 ' Decorative\par
Public Const PAN_FAMILY_PICTORIAL = 5 ' Pictorial\par
\par
Public Const PAN_SERIF_COVE = 2 ' Cove\par
Public Const PAN_SERIF_OBTUSE_COVE = 3 ' Obtuse Cove\par
Public Const PAN_SERIF_SQUARE_COVE = 4 ' Square Cove\par
Public Const PAN_SERIF_OBTUSE_SQUARE_COVE = 5 ' Obtuse Square Cove\par
Public Const PAN_SERIF_SQUARE = 6 ' Square\par
Public Const PAN_SERIF_THIN = 7 ' Thin\par
Public Const PAN_SERIF_BONE = 8 ' Bone\par
Public Const PAN_SERIF_EXAGGERATED = 9 ' Exaggerated\par
Public Const PAN_SERIF_TRIANGLE = 10 ' Triangle\par
Public Const PAN_SERIF_NORMAL_SANS = 11 ' Normal Sans\par
Public Const PAN_SERIF_OBTUSE_SANS = 12 ' Obtuse Sans\par
Public Const PAN_SERIF_PERP_SANS = 13 ' Prep Sans\par
Public Const PAN_SERIF_FLARED = 14 ' Flared\par
Public Const PAN_SERIF_ROUNDED = 15 ' Rounded\par
\par
Public Const PAN_WEIGHT_VERY_LIGHT = 2 ' Very Light\par
Public Const PAN_WEIGHT_LIGHT = 3 ' Light\par
Public Const PAN_WEIGHT_THIN = 4 ' Thin\par
Public Const PAN_WEIGHT_BOOK = 5 ' Book\par
Public Const PAN_WEIGHT_MEDIUM = 6 ' Medium\par
Public Const PAN_WEIGHT_DEMI = 7 ' Demi\par
Public Const PAN_WEIGHT_BOLD = 8 ' Bold\par
Public Const PAN_WEIGHT_HEAVY = 9 ' Heavy\par
Public Const PAN_WEIGHT_BLACK = 10 ' Black\par
Public Const PAN_WEIGHT_NORD = 11 ' Nord\par
\par
Public Const PAN_PROP_OLD_STYLE = 2 ' Old Style\par
Public Const PAN_PROP_MODERN = 3 ' Modern\par
Public Const PAN_PROP_EVEN_WIDTH = 4 ' Even Width\par
Public Const PAN_PROP_EXPANDED = 5 ' Expanded\par
Public Const PAN_PROP_CONDENSED = 6 ' Condensed\par
Public Const PAN_PROP_VERY_EXPANDED = 7 ' Very Expanded\par
Public Const PAN_PROP_VERY_CONDENSED = 8 ' Very Condensed\par
Public Const PAN_PROP_MONOSPACED = 9 ' Monospaced\par
\par
Public Const PAN_CONTRAST_NONE = 2 ' None\par
Public Const PAN_CONTRAST_VERY_LOW = 3 ' Very Low\par
Public Const PAN_CONTRAST_LOW = 4 ' Low\par
Public Const PAN_CONTRAST_MEDIUM_LOW = 5 ' Medium Low\par
Public Const PAN_CONTRAST_MEDIUM = 6 ' Medium\par
Public Const PAN_CONTRAST_MEDIUM_HIGH = 7 ' Mediim High\par
Public Const PAN_CONTRAST_HIGH = 8 ' High\par
Public Const PAN_CONTRAST_VERY_HIGH = 9 ' Very High\par
\par
Public Const PAN_STROKE_GRADUAL_DIAG = 2 ' Gradual/Diagonal\par
Public Const PAN_STROKE_GRADUAL_TRAN = 3 ' Gradual/Transitional\par
Public Const PAN_STROKE_GRADUAL_VERT = 4 ' Gradual/Vertical\par
Public Const PAN_STROKE_GRADUAL_HORZ = 5 ' Gradual/Horizontal\par
Public Const PAN_STROKE_RAPID_VERT = 6 ' Rapid/Vertical\par
Public Const PAN_STROKE_RAPID_HORZ = 7 ' Rapid/Horizontal\par
Public Const PAN_STROKE_INSTANT_VERT = 8 ' Instant/Vertical\par
\par
Public Const PAN_STRAIGHT_ARMS_HORZ = 2 ' Straight Arms/Horizontal\par
Public Const PAN_STRAIGHT_ARMS_WEDGE = 3 ' Straight Arms/Wedge\par
Public Const PAN_STRAIGHT_ARMS_VERT = 4 ' Straight Arms/Vertical\par
Public Const PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 ' Straight Arms/Single-Serif\par
Public Const PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 ' Straight Arms/Double-Serif\par
Public Const PAN_BENT_ARMS_HORZ = 7 ' Non-Straight Arms/Horizontal\par
Public Const PAN_BENT_ARMS_WEDGE = 8 ' Non-Straight Arms/Wedge\par
Public Const PAN_BENT_ARMS_VERT = 9 ' Non-Straight Arms/Vertical\par
Public Const PAN_BENT_ARMS_SINGLE_SERIF = 10 ' Non-Straight Arms/Single-Serif\par
Public Const PAN_BENT_ARMS_DOUBLE_SERIF = 11 ' Non-Straight Arms/Double-Serif\par
\par
Public Const PAN_LETT_NORMAL_CONTACT = 2 ' Normal/Contact\par
Public Const PAN_LETT_NORMAL_WEIGHTED = 3 ' Normal/Weighted\par
Public Const PAN_LETT_NORMAL_BOXED = 4 ' Normal/Boxed\par
Public Const PAN_LETT_NORMAL_FLATTENED = 5 ' Normal/Flattened\par
Public Const PAN_LETT_NORMAL_ROUNDED = 6 ' Normal/Rounded\par
Public Const PAN_LETT_NORMAL_OFF_CENTER = 7 ' Normal/Off Center\par
Public Const PAN_LETT_NORMAL_SQUARE = 8 ' Normal/Square\par
Public Const PAN_LETT_OBLIQUE_CONTACT = 9 ' Oblique/Contact\par
Public Const PAN_LETT_OBLIQUE_WEIGHTED = 10 ' Oblique/Weighted\par
Public Const PAN_LETT_OBLIQUE_BOXED = 11 ' Oblique/Boxed\par
Public Const PAN_LETT_OBLIQUE_FLATTENED = 12 ' Oblique/Flattened\par
Public Const PAN_LETT_OBLIQUE_ROUNDED = 13 ' Oblique/Rounded\par
Public Const PAN_LETT_OBLIQUE_OFF_CENTER = 14 ' Oblique/Off Center\par
Public Const PAN_LETT_OBLIQUE_SQUARE = 15 ' Oblique/Square\par
\par
Public Const PAN_MIDLINE_STANDARD_TRIMMED = 2 ' Standard/Trimmed\par
Public Const PAN_MIDLINE_STANDARD_POINTED = 3 ' Standard/Pointed\par
Public Const PAN_MIDLINE_STANDARD_SERIFED = 4 ' Standard/Serifed\par
Public Const PAN_MIDLINE_HIGH_TRIMMED = 5 ' High/Trimmed\par
Public Const PAN_MIDLINE_HIGH_POINTED = 6 ' High/Pointed\par
Public Const PAN_MIDLINE_HIGH_SERIFED = 7 ' High/Serifed\par
Public Const PAN_MIDLINE_CONSTANT_TRIMMED = 8 ' Constant/Trimmed\par
Public Const PAN_MIDLINE_CONSTANT_POINTED = 9 ' Constant/Pointed\par
Public Const PAN_MIDLINE_CONSTANT_SERIFED = 10 ' Constant/Serifed\par
Public Const PAN_MIDLINE_LOW_TRIMMED = 11 ' Low/Trimmed\par
Public Const PAN_MIDLINE_LOW_POINTED = 12 ' Low/Pointed\par
Public Const PAN_MIDLINE_LOW_SERIFED = 13 ' Low/Serifed\par
\par
Public Const PAN_XHEIGHT_CONSTANT_SMALL = 2 ' Constant/Small\par
Public Const PAN_XHEIGHT_CONSTANT_STD = 3 ' Constant/Standard\par
Public Const PAN_XHEIGHT_CONSTANT_LARGE = 4 ' Constant/Large\par
Public Const PAN_XHEIGHT_DUCKING_SMALL = 5 ' Ducking/Small\par
Public Const PAN_XHEIGHT_DUCKING_STD = 6 ' Ducking/Standard\par
Public Const PAN_XHEIGHT_DUCKING_LARGE = 7 ' Ducking/Large\par
\par
Public Const ELF_VENDOR_SIZE = 4\par
\par
Type EXTLOGFONT\par
elfLogFont As LOGFONT\par
elfFullName(LF_FULLFACESIZE-1) As Byte\par
elfStyle(LF_FACESIZE-1) As Byte\par
elfVersion As Long\par
elfStyleSize As Long\par
elfMatch As Long\par
elfReserved As Long\par
elfVendorId(ELF_VENDOR_SIZE-1) As Byte\par
elfCulture As Long\par
elfPanose As PANOSE\par
End Type\par
\par
Public Const ELF_VERSION = 0\par
Public Const ELF_CULTURE_LATIN = 0\par
\par
' EnumFonts Masks\par
Public Const RASTER_FONTTYPE = &H1\par
Public Const DEVICE_FONTTYPE = &H2\par
Public Const TRUETYPE_FONTTYPE = &H4\par
\par
' palette entry flags\par
Public Const PC_RESERVED = &H1 ' palette index used for animation\par
Public Const PC_EXPLICIT = &H2 ' palette index is explicit to device\par
Public Const PC_NOCOLLAPSE = &H4 ' do not match color to system palette\par
\par
' Background Modes\par
Public Const TRANSPARENT = 1\par
Public Const OPAQUE = 2\par
Public Const BKMODE_LAST = 2\par
\par
' Graphics Modes\par
Public Const GM_COMPATIBLE = 1\par
Public Const GM_ADVANCED = 2\par
Public Const GM_LAST = 2\par
\par
' PolyDraw and GetPath point types\par
Public Const PT_CLOSEFIGURE = &H1\par
Public Const PT_LINETO = &H2\par
Public Const PT_BEZIERTO = &H4\par
Public Const PT_MOVETO = &H6\par
\par
' Mapping Modes\par
Public Const MM_TEXT = 1\par
Public Const MM_LOMETRIC = 2\par
Public Const MM_HIMETRIC = 3\par
Public Const MM_LOENGLISH = 4\par
Public Const MM_HIENGLISH = 5\par
Public Const MM_TWIPS = 6\par
Public Const MM_ISOTROPIC = 7\par
Public Const MM_ANISOTROPIC = 8\par
\par
' Min and Max Mapping Mode values\par
Public Const MM_MIN = MM_TEXT\par
Public Const MM_MAX = MM_ANISOTROPIC\par
Public Const MM_MAX_FIXEDSCALE = MM_TWIPS\par
\par
' Coordinate Modes\par
Public Const ABSOLUTE = 1\par
Public Const RELATIVE = 2\par
\par
' Stock Logical Objects\par
Public Const WHITE_BRUSH = 0\par
Public Const LTGRAY_BRUSH = 1\par
Public Const GRAY_BRUSH = 2\par
Public Const DKGRAY_BRUSH = 3\par
Public Const BLACK_BRUSH = 4\par
Public Const NULL_BRUSH = 5\par
Public Const HOLLOW_BRUSH = NULL_BRUSH\par
Public Const WHITE_PEN = 6\par
Public Const BLACK_PEN = 7\par
Public Const NULL_PEN = 8\par
Public Const OEM_FIXED_FONT = 10\par
Public Const ANSI_FIXED_FONT = 11\par
Public Const ANSI_VAR_FONT = 12\par
Public Const SYSTEM_FONT = 13\par
Public Const DEVICE_DEFAULT_FONT = 14\par
Public Const DEFAULT_PALETTE = 15\par
Public Const SYSTEM_FIXED_FONT = 16\par
Public Const STOCK_LAST = 16\par
\par
Public Const CLR_INVALID = &HFFFF\par
\par
' Brush Styles\par
Public Const BS_SOLID = 0\par
Public Const BS_NULL = 1\par
Public Const BS_HOLLOW = BS_NULL\par
Public Const BS_HATCHED = 2\par
Public Const BS_PATTERN = 3\par
Public Const BS_INDEXED = 4\par
Public Const BS_DIBPATTERN = 5\par
Public Const BS_DIBPATTERNPT = 6\par
Public Const BS_PATTERN8X8 = 7\par
Public Const BS_DIBPATTERN8X8 = 8\par
\par
\par
' Hatch Styles\par
Public Const HS_HORIZONTAL = 0 ' -----\par
Public Const HS_VERTICAL = 1 ' |||||\par
Public Const HS_FDIAGONAL = 2 ' \\\\\\\\\\\par
Public Const HS_BDIAGONAL = 3 ' /////\par
Public Const HS_CROSS = 4 ' +++++\par
Public Const HS_DIAGCROSS = 5 ' xxxxx\par
Public Const HS_FDIAGONAL1 = 6\par
Public Const HS_BDIAGONAL1 = 7\par
Public Const HS_SOLID = 8\par
Public Const HS_DENSE1 = 9\par
Public Const HS_DENSE2 = 10\par
Public Const HS_DENSE3 = 11\par
Public Const HS_DENSE4 = 12\par
Public Const HS_DENSE5 = 13\par
Public Const HS_DENSE6 = 14\par
Public Const HS_DENSE7 = 15\par
Public Const HS_DENSE8 = 16\par
Public Const HS_NOSHADE = 17\par
Public Const HS_HALFTONE = 18\par
Public Const HS_SOLIDCLR = 19\par
Public Const HS_DITHEREDCLR = 20\par
Public Const HS_SOLIDTEXTCLR = 21\par
Public Const HS_DITHEREDTEXTCLR = 22\par
Public Const HS_SOLIDBKCLR = 23\par
Public Const HS_DITHEREDBKCLR = 24\par
Public Const HS_API_MAX = 25\par
\par
' Pen Styles\par
Public Const PS_SOLID = 0\par
Public Const PS_DASH = 1 ' -------\par
Public Const PS_DOT = 2 ' .......\par
Public Const PS_DASHDOT = 3 ' _._._._\par
Public Const PS_DASHDOTDOT = 4 ' _.._.._\par
Public Const PS_NULL = 5\par
Public Const PS_INSIDEFRAME = 6\par
Public Const PS_USERSTYLE = 7\par
Public Const PS_ALTERNATE = 8\par
Public Const PS_STYLE_MASK = &HF\par
\par
Public Const PS_ENDCAP_ROUND = &H0\par
Public Const PS_ENDCAP_SQUARE = &H100\par
Public Const PS_ENDCAP_FLAT = &H200\par
Public Const PS_ENDCAP_MASK = &HF00\par
\par
Public Const PS_JOIN_ROUND = &H0\par
Public Const PS_JOIN_BEVEL = &H1000\par
Public Const PS_JOIN_MITER = &H2000\par
Public Const PS_JOIN_MASK = &HF000&\par
\par
Public Const PS_COSMETIC = &H0\par
Public Const PS_GEOMETRIC = &H10000\par
Public Const PS_TYPE_MASK = &HF0000\par
\par
Public Const AD_COUNTERCLOCKWISE = 1\par
Public Const AD_CLOCKWISE = 2\par
\par
' Device Parameters for GetDeviceCaps()\par
Public Const DRIVERVERSION = 0 ' Device driver version\par
Public Const TECHNOLOGY = 2 ' Device classification\par
Public Const HORZSIZE = 4 ' Horizontal size in millimeters\par
Public Const VERTSIZE = 6 ' Vertical size in millimeters\par
Public Const HORZRES = 8 ' Horizontal width in pixels\par
Public Const VERTRES = 10 ' Vertical width in pixels\par
Public Const BITSPIXEL = 12 ' Number of bits per pixel\par
Public Const PLANES = 14 ' Number of planes\par
Public Const NUMBRUSHES = 16 ' Number of brushes the device has\par
Public Const NUMPENS = 18 ' Number of pens the device has\par
Public Const NUMMARKERS = 20 ' Number of markers the device has\par
Public Const NUMFONTS = 22 ' Number of fonts the device has\par
Public Const NUMCOLORS = 24 ' Number of colors the device supports\par
Public Const PDEVICESIZE = 26 ' Size required for device descriptor\par
Public Const CURVECAPS = 28 ' Curve capabilities\par
Public Const LINECAPS = 30 ' Line capabilities\par
Public Const POLYGONALCAPS = 32 ' Polygonal capabilities\par
Public Const TEXTCAPS = 34 ' Text capabilities\par
Public Const CLIPCAPS = 36 ' Clipping capabilities\par
Public Const RASTERCAPS = 38 ' Bitblt capabilities\par
Public Const ASPECTX = 40 ' Length of the X leg\par
Public Const ASPECTY = 42 ' Length of the Y leg\par
Public Const ASPECTXY = 44 ' Length of the hypotenuse\par
\par
Public Const LOGPIXELSX = 88 ' Logical pixels/inch in X\par
Public Const LOGPIXELSY = 90 ' Logical pixels/inch in Y\par
\par
Public Const SIZEPALETTE = 104 ' Number of entries in physical palette\par
Public Const NUMRESERVED = 106 ' Number of reserved entries in palette\par
Public Const COLORRES = 108 ' Actual color resolution\par
\par
' Printing related DeviceCaps. These replace the appropriate Escapes\par
Public Const PHYSICALWIDTH = 110 ' Physical Width in device units\par
Public Const PHYSICALHEIGHT = 111 ' Physical Height in device units\par
Public Const PHYSICALOFFSETX = 112 ' Physical Printable Area x margin\par
Public Const PHYSICALOFFSETY = 113 ' Physical Printable Area y margin\par
Public Const SCALINGFACTORX = 114 ' Scaling factor x\par
Public Const SCALINGFACTORY = 115 ' Scaling factor y\par
\par
' Device Capability Masks:\par
\par
' Device Technologies\par
Public Const DT_PLOTTER = 0 ' Vector plotter\par
Public Const DT_RASDISPLAY = 1 ' Raster display\par
Public Const DT_RASPRINTER = 2 ' Raster printer\par
Public Const DT_RASCAMERA = 3 ' Raster camera\par
Public Const DT_CHARSTREAM = 4 ' Character-stream, PLP\par
Public Const DT_METAFILE = 5 ' Metafile, VDM\par
Public Const DT_DISPFILE = 6 ' Display-file\par
\par
' Curve Capabilities\par
Public Const CC_NONE = 0 ' Curves not supported\par
Public Const CC_CIRCLES = 1 ' Can do circles\par
Public Const CC_PIE = 2 ' Can do pie wedges\par
Public Const CC_CHORD = 4 ' Can do chord arcs\par
Public Const CC_ELLIPSES = 8 ' Can do ellipese\par
Public Const CC_WIDE = 16 ' Can do wide lines\par
Public Const CC_STYLED = 32 ' Can do styled lines\par
Public Const CC_WIDESTYLED = 64 ' Can do wide styled lines\par
Public Const CC_INTERIORS = 128 ' Can do interiors\par
Public Const CC_ROUNDRECT = 256 '\par
\par
' Line Capabilities\par
Public Const LC_NONE = 0 ' Lines not supported\par
Public Const LC_POLYLINE = 2 ' Can do polylines\par
Public Const LC_MARKER = 4 ' Can do markers\par
Public Const LC_POLYMARKER = 8 ' Can do polymarkers\par
Public Const LC_WIDE = 16 ' Can do wide lines\par
Public Const LC_STYLED = 32 ' Can do styled lines\par
Public Const LC_WIDESTYLED = 64 ' Can do wide styled lines\par
Public Const LC_INTERIORS = 128 ' Can do interiors\par
\par
' Polygonal Capabilities\par
Public Const PC_NONE = 0 ' Polygonals not supported\par
Public Const PC_POLYGON = 1 ' Can do polygons\par
Public Const PC_RECTANGLE = 2 ' Can do rectangles\par
Public Const PC_WINDPOLYGON = 4 ' Can do winding polygons\par
Public Const PC_TRAPEZOID = 4 ' Can do trapezoids\par
Public Const PC_SCANLINE = 8 ' Can do scanlines\par
Public Const PC_WIDE = 16 ' Can do wide borders\par
Public Const PC_STYLED = 32 ' Can do styled borders\par
Public Const PC_WIDESTYLED = 64 ' Can do wide styled borders\par
Public Const PC_INTERIORS = 128 ' Can do interiors\par
\par
' Polygonal Capabilities\par
Public Const CP_NONE = 0 ' No clipping of output\par
Public Const CP_RECTANGLE = 1 ' Output clipped to rects\par
Public Const CP_REGION = 2 '\par
\par
' Text Capabilities\par
Public Const TC_OP_CHARACTER = &H1 ' Can do OutputPrecision CHARACTER\par
Public Const TC_OP_STROKE = &H2 ' Can do OutputPrecision STROKE\par
Public Const TC_CP_STROKE = &H4 ' Can do ClipPrecision STROKE\par
Public Const TC_CR_90 = &H8 ' Can do CharRotAbility 90\par
Public Const TC_CR_ANY = &H10 ' Can do CharRotAbility ANY\par
Public Const TC_SF_X_YINDEP = &H20 ' Can do ScaleFreedom X_YINDEPENDENT\par
Public Const TC_SA_DOUBLE = &H40 ' Can do ScaleAbility DOUBLE\par
Public Const TC_SA_INTEGER = &H80 ' Can do ScaleAbility INTEGER\par
Public Const TC_SA_CONTIN = &H100 ' Can do ScaleAbility CONTINUOUS\par
Public Const TC_EA_DOUBLE = &H200 ' Can do EmboldenAbility DOUBLE\par
Public Const TC_IA_ABLE = &H400 ' Can do ItalisizeAbility ABLE\par
Public Const TC_UA_ABLE = &H800 ' Can do UnderlineAbility ABLE\par
Public Const TC_SO_ABLE = &H1000 ' Can do StrikeOutAbility ABLE\par
Public Const TC_RA_ABLE = &H2000 ' Can do RasterFontAble ABLE\par
Public Const TC_VA_ABLE = &H4000 ' Can do VectorFontAble ABLE\par
Public Const TC_RESERVED = &H8000&\par
Public Const TC_SCROLLBLT = &H10000 ' do text scroll with blt\par
\par
' Raster Capabilities\par
Public Const RC_NONE = 0\par
Public Const RC_BITBLT = 1 ' Can do standard BLT.\par
Public Const RC_BANDING = 2 ' Device requires banding support\par
Public Const RC_SCALING = 4 ' Device requires scaling support\par
Public Const RC_BITMAP64 = 8 ' Device can support >64K bitmap\par
Public Const RC_GDI20_OUTPUT = &H10 ' has 2.0 output calls\par
Public Const RC_GDI20_STATE = &H20\par
Public Const RC_SAVEBITMAP = &H40\par
Public Const RC_DI_BITMAP = &H80 ' supports DIB to memory\par
Public Const RC_PALETTE = &H100 ' supports a palette\par
Public Const RC_DIBTODEV = &H200 ' supports DIBitsToDevice\par
Public Const RC_BIGFONT = &H400 ' supports >64K fonts\par
Public Const RC_STRETCHBLT = &H800 ' supports StretchBlt\par
Public Const RC_FLOODFILL = &H1000 ' supports FloodFill\par
Public Const RC_STRETCHDIB = &H2000 ' supports StretchDIBits\par
Public Const RC_OP_DX_OUTPUT = &H4000\par
Public Const RC_DEVBITS = &H8000&\par
\par
' DIB color table identifiers\par
Public Const DIB_RGB_COLORS = 0 ' color table in RGBs\par
Public Const DIB_PAL_COLORS = 1 ' color table in palette indices\par
Public Const DIB_PAL_INDICES = 2 ' No color table indices into surf palette\par
Public Const DIB_PAL_PHYSINDICES = 2 ' No color table indices into surf palette\par
Public Const DIB_PAL_LOGINDICES = 4 ' No color table indices into DC palette\par
\par
' constants for Get/SetSystemPaletteUse()\par
Public Const SYSPAL_ERROR = 0\par
Public Const SYSPAL_STATIC = 1\par
Public Const SYSPAL_NOSTATIC = 2\par
\par
' constants for CreateDIBitmap\par
Public Const CBM_CREATEDIB = &H2 ' create DIB bitmap\par
Public Const CBM_INIT = &H4 ' initialize bitmap\par
\par
' ExtFloodFill style flags\par
Public Const FLOODFILLBORDER = 0\par
Public Const FLOODFILLSURFACE = 1\par
\par
' size of a device name string\par
Public Const CCHDEVICENAME = 32\par
\par
' size of a form name string\par
Public Const CCHFORMNAME = 32\par
\par
Type DEVMODE\par
dmDeviceName As String * CCHDEVICENAME\par
dmSpecVersion As Integer\par
dmDriverVersion As Integer\par
dmSize As Integer\par
dmDriverExtra As Integer\par
dmFields As Long\par
dmOrientation As Integer\par
dmPaperSize As Integer\par
dmPaperLength As Integer\par
dmPaperWidth As Integer\par
dmScale As Integer\par
dmCopies As Integer\par
dmDefaultSource As Integer\par
dmPrintQuality As Integer\par
dmColor As Integer\par
dmDuplex As Integer\par
dmYResolution As Integer\par
dmTTOption As Integer\par
dmCollate As Integer\par
dmFormName As String * CCHFORMNAME\par
dmLogPizels As Integer\par
dmBitsPerPel As Long\par
dmPelsWidth As Long\par
dmPelsHeight As Long\par
dmDisplayFlags As Long\par
dmDisplayFrequency As Long\par
\tab dmICMMethod As Long\par
\tab dmICMIntent As Long\par
\tab dmMediaType As Long\par
\tab dmDitherType As Long\par
\tab dmReserved1 As Long\par
\tab dmReserved2 As Long\par
\par
End Type\par
\par
' current version of specification\par
Public Const DM_SPECVERSION = &H320\par
\par
' field selection bits\par
Public Const DM_ORIENTATION = &H1&\par
Public Const DM_PAPERSIZE = &H2&\par
Public Const DM_PAPERLENGTH = &H4&\par
Public Const DM_PAPERWIDTH = &H8&\par
Public Const DM_SCALE = &H10&\par
Public Const DM_COPIES = &H100&\par
Public Const DM_DEFAULTSOURCE = &H200&\par
Public Const DM_PRINTQUALITY = &H400&\par
Public Const DM_COLOR = &H800&\par
Public Const DM_DUPLEX = &H1000&\par
Public Const DM_YRESOLUTION = &H2000&\par
Public Const DM_TTOPTION = &H4000&\par
Public Const DM_COLLATE = &H8000&\par
Public Const DM_FORMNAME = &H10000\par
\par
' orientation selections\par
Public Const DMORIENT_PORTRAIT = 1\par
Public Const DMORIENT_LANDSCAPE = 2\par
\par
' paper selections\par
Public Const DMPAPER_LETTER = 1\par
Public Const DMPAPER_FIRST = DMPAPER_LETTER\par
' Letter 8 1/2 x 11 in\par
Public Const DMPAPER_LETTERSMALL = 2 ' Letter Small 8 1/2 x 11 in\par
Public Const DMPAPER_TABLOID = 3 ' Tabloid 11 x 17 in\par
Public Const DMPAPER_LEDGER = 4 ' Ledger 17 x 11 in\par
Public Const DMPAPER_LEGAL = 5 ' Legal 8 1/2 x 14 in\par
Public Const DMPAPER_STATEMENT = 6 ' Statement 5 1/2 x 8 1/2 in\par
Public Const DMPAPER_EXECUTIVE = 7 ' Executive 7 1/4 x 10 1/2 in\par
Public Const DMPAPER_A3 = 8 ' A3 297 x 420 mm\par
Public Const DMPAPER_A4 = 9 ' A4 210 x 297 mm\par
Public Const DMPAPER_A4SMALL = 10 ' A4 Small 210 x 297 mm\par
Public Const DMPAPER_A5 = 11 ' A5 148 x 210 mm\par
Public Const DMPAPER_B4 = 12 ' B4 250 x 354\par
Public Const DMPAPER_B5 = 13 ' B5 182 x 257 mm\par
Public Const DMPAPER_FOLIO = 14 ' Folio 8 1/2 x 13 in\par
Public Const DMPAPER_QUARTO = 15 ' Quarto 215 x 275 mm\par
Public Const DMPAPER_10X14 = 16 ' 10x14 in\par
Public Const DMPAPER_11X17 = 17 ' 11x17 in\par
Public Const DMPAPER_NOTE = 18 ' Note 8 1/2 x 11 in\par
Public Const DMPAPER_ENV_9 = 19 ' Envelope #9 3 7/8 x 8 7/8\par
Public Const DMPAPER_ENV_10 = 20 ' Envelope #10 4 1/8 x 9 1/2\par
Public Const DMPAPER_ENV_11 = 21 ' Envelope #11 4 1/2 x 10 3/8\par
Public Const DMPAPER_ENV_12 = 22 ' Envelope #12 4 \\276 x 11\par
Public Const DMPAPER_ENV_14 = 23 ' Envelope #14 5 x 11 1/2\par
Public Const DMPAPER_CSHEET = 24 ' C size sheet\par
Public Const DMPAPER_DSHEET = 25 ' D size sheet\par
Public Const DMPAPER_ESHEET = 26 ' E size sheet\par
Public Const DMPAPER_ENV_DL = 27 ' Envelope DL 110 x 220mm\par
Public Const DMPAPER_ENV_C5 = 28 ' Envelope C5 162 x 229 mm\par
Public Const DMPAPER_ENV_C3 = 29 ' Envelope C3 324 x 458 mm\par
Public Const DMPAPER_ENV_C4 = 30 ' Envelope C4 229 x 324 mm\par
Public Const DMPAPER_ENV_C6 = 31 ' Envelope C6 114 x 162 mm\par
Public Const DMPAPER_ENV_C65 = 32 ' Envelope C65 114 x 229 mm\par
Public Const DMPAPER_ENV_B4 = 33 ' Envelope B4 250 x 353 mm\par
Public Const DMPAPER_ENV_B5 = 34 ' Envelope B5 176 x 250 mm\par
Public Const DMPAPER_ENV_B6 = 35 ' Envelope B6 176 x 125 mm\par
Public Const DMPAPER_ENV_ITALY = 36 ' Envelope 110 x 230 mm\par
Public Const DMPAPER_ENV_MONARCH = 37 ' Envelope Monarch 3.875 x 7.5 in\par
Public Const DMPAPER_ENV_PERSONAL = 38 ' 6 3/4 Envelope 3 5/8 x 6 1/2 in\par
Public Const DMPAPER_FANFOLD_US = 39 ' US Std Fanfold 14 7/8 x 11 in\par
Public Const DMPAPER_FANFOLD_STD_GERMAN = 40 ' German Std Fanfold 8 1/2 x 12 in\par
Public Const DMPAPER_FANFOLD_LGL_GERMAN = 41 ' German Legal Fanfold 8 1/2 x 13 in\par
\par
Public Const DMPAPER_LAST = DMPAPER_FANFOLD_LGL_GERMAN\par
\par
Public Const DMPAPER_USER = 256\par
\par
' bin selections\par
Public Const DMBIN_UPPER = 1\par
Public Const DMBIN_FIRST = DMBIN_UPPER\par
\par
Public Const DMBIN_ONLYONE = 1\par
Public Const DMBIN_LOWER = 2\par
Public Const DMBIN_MIDDLE = 3\par
Public Const DMBIN_MANUAL = 4\par
Public Const DMBIN_ENVELOPE = 5\par
Public Const DMBIN_ENVMANUAL = 6\par
Public Const DMBIN_AUTO = 7\par
Public Const DMBIN_TRACTOR = 8\par
Public Const DMBIN_SMALLFMT = 9\par
Public Const DMBIN_LARGEFMT = 10\par
Public Const DMBIN_LARGECAPACITY = 11\par
Public Const DMBIN_CASSETTE = 14\par
Public Const DMBIN_LAST = DMBIN_CASSETTE\par
\par
Public Const DMBIN_USER = 256 ' device specific bins start here\par
\par
' print qualities\par
Public Const DMRES_DRAFT = (-1)\par
Public Const DMRES_LOW = (-2)\par
Public Const DMRES_MEDIUM = (-3)\par
Public Const DMRES_HIGH = (-4)\par
\par
' color enable/disable for color printers\par
Public Const DMCOLOR_MONOCHROME = 1\par
Public Const DMCOLOR_COLOR = 2\par
\par
' duplex enable\par
Public Const DMDUP_SIMPLEX = 1\par
Public Const DMDUP_VERTICAL = 2\par
Public Const DMDUP_HORIZONTAL = 3\par
\par
' TrueType options\par
Public Const DMTT_BITMAP = 1 ' print TT fonts as graphics\par
Public Const DMTT_DOWNLOAD = 2 ' download TT fonts as soft fonts\par
Public Const DMTT_SUBDEV = 3 ' substitute device fonts for TT fonts\par
\par
' Collation selections\par
Public Const DMCOLLATE_FALSE = 0\par
Public Const DMCOLLATE_TRUE = 1\par
\par
' DEVMODE dmDisplayFlags flags\par
\par
Public Const DM_GRAYSCALE = &H1\par
Public Const DM_INTERLACED = &H2\par
\par
' GetRegionData/ExtCreateRegion\par
\par
Public Const RDH_RECTANGLES = 1\par
\par
Type RGNDATAHEADER\par
dwSize As Long\par
iType As Long\par
nCount As Long\par
nRgnSize As Long\par
rcBound As Rect\par
End Type\par
\par
Type RGNDATA\par
rdh As RGNDATAHEADER\par
Buffer(1) As Rect\par
End Type\par
\par
Type ABC\par
abcA As Long\par
abcB As Long\par
abcC As Long\par
End Type\par
\par
Type ABCFLOAT\par
abcfA As single\par
abcfB As single\par
abcfC As single\par
End Type\par
\par
Type OUTLINETEXTMETRIC\par
otmSize As Long\par
otmTextMetrics As TEXTMETRIC\par
otmFiller As Byte\par
otmPanoseNumber As PANOSE\par
otmfsSelection As Long\par
otmfsType As Long\par
otmsCharSlopeRise As Long\par
otmsCharSlopeRun As Long\par
otmItalicAngle As Long\par
otmEMSquare As Long\par
otmAscent As Long\par
otmDescent As Long\par
otmLineGap As Long\par
otmsCapEmHeight As Long\par
otmsXHeight As Long\par
otmrcFontBox As Rect\par
otmMacAscent As Long\par
otmMacDescent As Long\par
otmMacLineGap As Long\par
otmusMinimumPPEM As Long\par
otmptSubscriptSize As POINTAPI\par
otmptSubscriptOffset As POINTAPI\par
otmptSuperscriptSize As POINTAPI\par
otmptSuperscriptOffset As POINTAPI\par
otmsStrikeoutSize As Long\par
otmsStrikeoutPosition As Long\par
otmsUnderscorePosition As Long\par
otmsUnderscoreSize As Long\par
otmpFamilyName As String\par
otmpFaceName As String\par
otmpStyleName As String\par
otmpFullName As String\par
End Type\par
\par
Type POLYTEXT\par
x As Long\par
y As Long\par
n As Long\par
lpStr As String\par
uiFlags As Long\par
rcl As Rect\par
pdx As Long\par
End Type\par
\par
Type FIXED\par
fract As Integer\par
Value As Integer\par
End Type\par
\par
Type MAT2\par
eM11 As FIXED\par
eM12 As FIXED\par
eM21 As FIXED\par
eM22 As FIXED\par
End Type\par
\par
Type GLYPHMETRICS\par
gmBlackBoxX As Long\par
gmBlackBoxY As Long\par
gmptGlyphOrigin As POINTAPI\par
gmCellIncX As Integer\par
gmCellIncY As Integer\par
End Type\par
\par
\par
' GetGlyphOutline constants\par
Public Const GGO_METRICS = 0\par
Public Const GGO_BITMAP = 1\par
Public Const GGO_NATIVE = 2\par
\par
Public Const TT_POLYGON_TYPE = 24\par
\par
Public Const TT_PRIM_LINE = 1\par
Public Const TT_PRIM_QSPLINE = 2\par
\par
Type POINTFX\par
x As FIXED\par
y As FIXED\par
End Type\par
\par
Type TTPOLYCURVE\par
wType As Integer\par
cpfx As Integer\par
apfx As POINTFX\par
End Type\par
\par
Type TTPOLYGONHEADER\par
cb As Long\par
dwType As Long\par
pfxStart As POINTFX\par
End Type\par
\par
Type RASTERIZER_STATUS\par
nSize As Integer\par
wFlags As Integer\par
nLanguageID As Integer\par
End Type\par
\par
' bits defined in wFlags of RASTERIZER_STATUS\par
Public Const TT_AVAILABLE = &H1\par
Public Const TT_ENABLED = &H2\par
\par
Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long\par
\par
Declare Function AnimatePalette Lib "gdi32" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteColors As PALETTEENTRY) As Long\par
Declare Function Arc Lib "gdi32" Alias "Arc" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long\par
Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long\par
Declare Function CancelDC Lib "gdi32" Alias "CancelDC" (ByVal hdc As Long) As Long\par
Declare Function Chord Lib "gdi32" Alias "Chord" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long\par
Declare Function CloseMetaFile Lib "gdi32" Alias "CloseMetaFile" (ByVal hMF As Long) As Long\par
Declare Function CombineRgn Lib "gdi32" Alias "CombineRgn" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long\par
Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" (ByVal hMF As Long, ByVal lpFileName As String) As Long\par
\par
Declare Function CreateBitmap Lib "gdi32" Alias "CreateBitmap" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long\par
Declare Function CreateBitmapIndirect Lib "gdi32" Alias "CreateBitmapIndirect" (lpBitmap As BITMAP) As Long\par
Declare Function CreateBrushIndirect Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long\par
Declare Function CreateCompatibleBitmap Lib "gdi32" Alias "CreateCompatibleBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
Declare Function CreateDiscardableBitmap Lib "gdi32" Alias "CreateDiscardableBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
\par
Declare Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As Long) As Long\par
Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long\par
Declare Function CreateDCBynum Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, ByVal lpInitData As Long) As Long\par
\par
Declare Function CreateDIBitmap Lib "gdi32" Alias "CreateDIBitmap" (ByVal hdc As Long, lpInfoHeader As BITMAPINFOHEADER, ByVal dwUsage As Long, lpInitBits As Any, lpInitInfo As BITMAPINFO, ByVal wUsage As Long) As Long\par
Declare Function CreateDIBPatternBrush Lib "gdi32" Alias "CreateDIBPatternBrush" (ByVal hPackedDIB As Long, ByVal wUsage As Long) As Long\par
Declare Function CreateDIBPatternBrushPt Lib "gdi32" Alias "CreateDIBPatternBrushPt" (lpPackedDIB As Any, ByVal iUsage As Long) As Long\par
Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long\par
Declare Function CreateEllipticRgn Lib "gdi32" Alias "CreateEllipticRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
\par
Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long\par
Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W2 As Long, ByVal I As Long, ByVal u As Long, ByVal S As Long, ByVal C As Long, ByVal OP As Long, ByVal CP As Long, ByVal Q As Long, ByVal PAF As Long, ByVal F As String) As Long\par
\par
Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long) As Long\par
Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long\par
Declare Function CreateICBynum Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As Long) As Long\par
\par
Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpString As String) As Long\par
\par
Declare Function CreatePalette Lib "gdi32" Alias "CreatePalette" (lpLogPalette As LOGPALETTE) As Long\par
Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long\par
Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect" (lpLogPen As LOGPEN) As Long\par
Declare Function CreateRectRgn Lib "gdi32" Alias "CreateRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As RECT) As Long\par
Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long\par
Declare Function CreatePatternBrush Lib "gdi32" Alias "CreatePatternBrush" (ByVal hBitmap As Long) As Long\par
Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long\par
Declare Function CreateScalableFontResource Lib "gdi32" Alias "CreateScalableFontResourceA" (ByVal fHidden As Long, ByVal lpszResourceFile As String, ByVal lpszFontFile As String, ByVal lpszCurrentPath As String) As Long\par
Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long\par
\par
Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long\par
Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long\par
Declare Function DeleteMetaFile Lib "gdi32" Alias "DeleteMetaFile" (ByVal hMF As Long) As Long\par
\par
' mode selections for the device mode function\par
Public Const DM_UPDATE = 1\par
Public Const DM_COPY = 2\par
Public Const DM_PROMPT = 4\par
Public Const DM_MODIFY = 8\par
\par
Public Const DM_IN_BUFFER = DM_MODIFY\par
Public Const DM_IN_PROMPT = DM_PROMPT\par
Public Const DM_OUT_BUFFER = DM_COPY\par
Public Const DM_OUT_DEFAULT = DM_UPDATE\par
\par
' device capabilities indices\par
Public Const DC_FIELDS = 1\par
Public Const DC_PAPERS = 2\par
Public Const DC_PAPERSIZE = 3\par
Public Const DC_MINEXTENT = 4\par
Public Const DC_MAXEXTENT = 5\par
Public Const DC_BINS = 6\par
Public Const DC_DUPLEX = 7\par
Public Const DC_SIZE = 8\par
Public Const DC_EXTRA = 9\par
Public Const DC_VERSION = 10\par
Public Const DC_DRIVER = 11\par
Public Const DC_BINNAMES = 12\par
Public Const DC_ENUMRESOLUTIONS = 13\par
Public Const DC_FILEDEPENDENCIES = 14\par
Public Const DC_TRUETYPE = 15\par
Public Const DC_PAPERNAMES = 16\par
Public Const DC_ORIENTATION = 17\par
Public Const DC_COPIES = 18\par
\par
' bit fields of the return value (DWORD) for DC_TRUETYPE\par
Public Const DCTT_BITMAP = &H1&\par
Public Const DCTT_DOWNLOAD = &H2&\par
Public Const DCTT_SUBDEV = &H4&\par
\par
Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, ByVal lpDevMode As Long) As Long\par
\par
Declare Function Ellipse Lib "gdi32" Alias "Ellipse" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
\par
Declare Function EqualRgn Lib "gdi32" Alias "EqualRgn" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long\par
Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, lpInData As Any, lpOutData As Any) As Long\par
Declare Function ExtEscape Lib "gdi32" Alias "ExtEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String, ByVal cbOutput As Long, ByVal lpszOutData As String) As Long\par
Declare Function DrawEscape Lib "gdi32" Alias "DrawEscape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal cbInput As Long, ByVal lpszInData As String) As Long\par
Declare Function ExcludeClipRect Lib "gdi32" Alias "ExcludeClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function ExtCreateRegion Lib "gdi32" Alias "ExtCreateRegion" (lpXform As xform, ByVal nCount As Long, lpRgnData As RGNDATA) As Long\par
Declare Function ExtFloodFill Lib "gdi32" Alias "ExtFloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long, ByVal wFillType As Long) As Long\par
Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long\par
Declare Function FrameRgn Lib "gdi32" Alias "FrameRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
Declare Function FloodFill Lib "gdi32" Alias "FloodFill" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long\par
Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As Long) As Long\par
Declare Function GetAspectRatioFilterEx Lib "gdi32" Alias "GetAspectRatioFilterEx" (ByVal hdc As Long, lpAspectRatio As SIZE) As Long\par
Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long\par
Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As Long) As Long\par
Declare Function GetBitmapBits Lib "gdi32" Alias "GetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long\par
Declare Function GetBitmapDimensionEx Lib "gdi32" Alias "GetBitmapDimensionEx" (ByVal hBitmap As Long, lpDimension As SIZE) As Long\par
Declare Function GetBoundsRect Lib "gdi32" Alias "GetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long\par
\par
Declare Function GetCharWidth Lib "gdi32" Alias "GetCharWidthA" (ByVal hdc As Long, ByVal wFirstChar As Long, ByVal wLastChar As Long, lpBuffer As Long) As Long\par
Declare Function GetCharWidth32 Lib "gdi32" Alias "GetCharWidth32A" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpBuffer As Long) As Long\par
Declare Function GetCharWidthFloat Lib "gdi32" Alias "GetCharWidthFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, pxBuffer As Single) As Long\par
\par
Declare Function GetCharABCWidths Lib "gdi32" Alias "GetCharABCWidthsA" (ByVal hdc As Long, ByVal uFirstChar As Long, ByVal uLastChar As Long, lpabc As ABC) As Long\par
Declare Function GetCharABCWidthsFloat Lib "gdi32" Alias "GetCharABCWidthsFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpABCF As ABCFLOAT) As Long\par
\par
Declare Function GetClipBox Lib "gdi32" Alias "GetClipBox" (ByVal hdc As Long, lpRect As RECT) As Long\par
Declare Function GetClipRgn Lib "gdi32" Alias "GetClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long\par
Declare Function GetMetaRgn Lib "gdi32" Alias "GetMetaRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long\par
Declare Function GetCurrentObject Lib "gdi32" Alias "GetCurrentObject" (ByVal hdc As Long, ByVal uObjectType As Long) As Long\par
Declare Function GetCurrentPositionEx Lib "gdi32" Alias "GetCurrentPositionEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long\par
Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long\par
Declare Function GetDIBits Lib "gdi32" Alias "GetDIBits" (ByVal aHDC As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long\par
Declare Function GetFontData Lib "gdi32" (ByVal hdc As Long, ByVal dwTable As Long, ByVal dwOffset As Long, lpvBuffer As Any, ByVal cbData As Long) As Long\par
Declare Function GetGlyphOutline Lib "gdi32" Alias "GetGlyphOutlineA" (ByVal hdc As Long, ByVal uChar As Long, ByVal fuFormat As Long, lpgm As GLYPHMETRICS, ByVal cbBuffer As Long, lpBuffer As Any, lpmat2 As MAT2) As Long\par
Declare Function GetGraphicsMode Lib "gdi32" Alias "GetGraphicsMode" (ByVal hdc As Long) As Long\par
Declare Function GetMapMode Lib "gdi32" Alias "GetMapMode" (ByVal hdc As Long) As Long\par
Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx" (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long\par
Declare Function GetMetaFile Lib "gdi32" Alias "GetMetaFileA" (ByVal lpFileName As String) As Long\par
Declare Function GetNearestColor Lib "gdi32" Alias "GetNearestColor" (ByVal hdc As Long, ByVal crColor As Long) As Long\par
Declare Function GetNearestPaletteIndex Lib "gdi32" Alias "GetNearestPaletteIndex" (ByVal hPalette As Long, ByVal crColor As Long) As Long\par
Declare Function GetObjectType Lib "gdi32" Alias "GetObjectType" (ByVal hgdiobj As Long) As Long\par
\par
Declare Function GetOutlineTextMetrics Lib "gdi32" Alias "GetOutlineTextMetricsA" (ByVal hdc As Long, ByVal cbData As Long, lpotm As OUTLINETEXTMETRIC) As Long\par
\par
Declare Function GetPaletteEntries Lib "gdi32" Alias "GetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long\par
Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function GetPolyFillMode Lib "gdi32" Alias "GetPolyFillMode" (ByVal hdc As Long) As Long\par
Declare Function GetRasterizerCaps Lib "gdi32" Alias "GetRasterizerCaps" (lpraststat As RASTERIZER_STATUS, ByVal cb As Long) As Long\par
Declare Function GetRegionData Lib "gdi32" (ByVal hRgn As Long, ByVal dwCount As Long, lpRgnData As RgnData) As Long\par
Declare Function GetRgnBox Lib "gdi32" Alias "GetRgnBox" (ByVal hRgn As Long, lpRect As RECT) As Long\par
Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long) As Long\par
Declare Function GetStretchBltMode Lib "gdi32" Alias "GetStretchBltMode" (ByVal hdc As Long) As Long\par
Declare Function GetSystemPaletteEntries Lib "gdi32" Alias "GetSystemPaletteEntries" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long\par
Declare Function GetSystemPaletteUse Lib "gdi32" Alias "GetSystemPaletteUse" (ByVal hdc As Long) As Long\par
Declare Function GetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long) As Long\par
Declare Function GetTextAlign Lib "gdi32" Alias "GetTextAlign" (ByVal hdc As Long) As Long\par
Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long\par
\par
Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE) As Long\par
Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) As Long\par
Declare Function GetTextExtentExPoint Lib "gdi32" Alias "GetTextExtentExPointA" (ByVal hdc As Long, ByVal lpszStr As String, ByVal cchString As Long, ByVal nMaxExtent As Long, lpnFit As Long, alpDx As Long, lpSize As SIZE) As Long\par
\par
Declare Function GetViewportExtEx Lib "gdi32" Alias "GetViewportExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long\par
Declare Function GetViewportOrgEx Lib "gdi32" Alias "GetViewportOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long\par
Declare Function GetWindowExtEx Lib "gdi32" Alias "GetWindowExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long\par
Declare Function GetWindowOrgEx Lib "gdi32" Alias "GetWindowOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long\par
\par
Declare Function IntersectClipRect Lib "gdi32" Alias "IntersectClipRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function InvertRgn Lib "gdi32" Alias "InvertRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long\par
Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function MaskBlt Lib "gdi32" Alias "MaskBlt" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long, ByVal dwRop As Long) As Long\par
Declare Function PlgBlt Lib "gdi32" Alias "PlgBlt" (ByVal hdcDest As Long, lpPoint As POINTAPI, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hbmMask As Long, ByVal xMask As Long, ByVal yMask As Long) As Long\par
\par
Declare Function OffsetClipRgn Lib "gdi32" Alias "OffsetClipRgn" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function OffsetRgn Lib "gdi32" Alias "OffsetRgn" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function PatBlt Lib "gdi32" Alias "PatBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal dwRop As Long) As Long\par
Declare Function Pie Lib "gdi32" Alias "Pie" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long\par
Declare Function PlayMetaFile Lib "gdi32" Alias "PlayMetaFile" (ByVal hdc As Long, ByVal hMF As Long) As Long\par
Declare Function PaintRgn Lib "gdi32" Alias "PaintRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long\par
Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long\par
Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function PtVisible Lib "gdi32" Alias "PtVisible" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long\par
Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long\par
Declare Function Rectangle Lib "gdi32" Alias "Rectangle" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function RestoreDC Lib "gdi32" Alias "RestoreDC" (ByVal hdc As Long, ByVal nSavedDC As Long) As Long\par
Declare Function ResetDC Lib "gdi32" Alias "ResetDCA" (ByVal hdc As Long, lpInitData As Byte) As Long\par
Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long\par
Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long\par
Declare Function RoundRect Lib "gdi32" Alias "RoundRect" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long\par
Declare Function ResizePalette Lib "gdi32" Alias "ResizePalette" (ByVal hPalette As Long, ByVal nNumEntries As Long) As Long\par
\par
Declare Function SaveDC Lib "gdi32" Alias "SaveDC" (ByVal hdc As Long) As Long\par
Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long\par
Declare Function ExtSelectClipRgn Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal fnMode As Long) As Long\par
Declare Function SetMetaRgn Lib "gdi32" Alias "SetMetaRgn" (ByVal hdc As Long) As Long\par
Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long\par
Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long\par
Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long\par
Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long\par
Declare Function SetBitmapBits Lib "gdi32" Alias "SetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long\par
\par
Declare Function SetBoundsRect Lib "gdi32" Alias "SetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long\par
Declare Function SetDIBits Lib "gdi32" Alias "SetDIBits" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long\par
Declare Function SetDIBitsToDevice Lib "gdi32" Alias "SetDIBitsToDevice" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal Scan As Long, ByVal NumScans As Long, Bits As Any, BitsInfo As BITMAPINFO, ByVal wUsage As Long) As Long\par
Declare Function SetMapperFlags Lib "gdi32" Alias "SetMapperFlags" (ByVal hdc As Long, ByVal dwFlag As Long) As Long\par
Declare Function SetGraphicsMode Lib "gdi32" Alias "SetGraphicsMode" (ByVal hdc As Long, ByVal iMode As Long) As Long\par
Declare Function SetMapMode Lib "gdi32" Alias "SetMapMode" (ByVal hdc As Long, ByVal nMapMode As Long) As Long\par
Declare Function SetMetaFileBitsEx Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, lpData As Byte) As Long\par
Declare Function SetPaletteEntries Lib "gdi32" Alias "SetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long\par
Declare Function SetPixel Lib "gdi32" Alias "SetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long\par
Declare Function SetPixelV Lib "gdi32" Alias "SetPixelV" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long\par
Declare Function SetPolyFillMode Lib "gdi32" Alias "SetPolyFillMode" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As Long\par
Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long\par
Declare Function SetRectRgn Lib "gdi32" Alias "SetRectRgn" (ByVal hRgn As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long\par
Declare Function SetROP2 Lib "gdi32" Alias "SetROP2" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long\par
Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long\par
Declare Function SetSystemPaletteUse Lib "gdi32" Alias "SetSystemPaletteUse" (ByVal hdc As Long, ByVal wUsage As Long) As Long\par
Declare Function SetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long\par
Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long\par
Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long\par
Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long\par
Declare Function UpdateColors Lib "gdi32" Alias "UpdateColors" (ByVal hdc As Long) As Long\par
\par
Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Long, ByVal lpProcName As String) As Long\par
\par
Declare Function PlayMetaFileRecord Lib "gdi32" Alias "PlayMetaFileRecord" (ByVal hdc As Long, ByVal lpHandletable As Long, lpMetaRecord As METARECORD, ByVal nHandles As Long) As Long\par
\par
Declare Function CloseEnhMetaFile Lib "gdi32" Alias "CloseEnhMetaFile" (ByVal hdc As Long) As Long\par
Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long\par
Declare Function CreateEnhMetaFile Lib "gdi32" Alias "CreateEnhMetaFileA" (ByVal hdcRef As Long, ByVal lpFileName As String, lpRect As RECT, ByVal lpDescription As String) As Long\par
Declare Function DeleteEnhMetaFile Lib "gdi32" Alias "DeleteEnhMetaFile" (ByVal hemf As Long) As Long\par
Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long, ByVal lpData As Long, lpRect As RECT) As Long\par
Declare Function EnumMetaFile Lib "gdi32" (ByVal hDC As Long, ByVal hMF As Long, ByVal lpCallbackFunc As Long, ByVal lpClientData As Long) As Long\par
Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal lpszMetaFile As String) As Long\par
Declare Function GetEnhMetaFileBits Lib "gdi32" Alias "GetEnhMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte) As Long\par
Declare Function GetEnhMetaFileDescription Lib "gdi32" Alias "GetEnhMetaFileDescriptionA" (ByVal hemf As Long, ByVal cchBuffer As Long, ByVal lpszDescription As String) As Long\par
Declare Function GetEnhMetaFileHeader Lib "gdi32" Alias "GetEnhMetaFileHeader" (ByVal hemf As Long, ByVal cbBuffer As Long, lpemh As ENHMETAHEADER) As Long\par
Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As Long, lppe As PALETTEENTRY) As Long\par
Declare Function GetWinMetaFileBits Lib "gdi32" Alias "GetWinMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal fnMapMode As Long, ByVal hdcRef As Long) As Long\par
Declare Function PlayEnhMetaFile Lib "gdi32" Alias "PlayEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, lpRect As RECT) As Long\par
Declare Function PlayEnhMetaFileRecord Lib "gdi32" Alias "PlayEnhMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpEnhMetaRecord As ENHMETARECORD, ByVal nHandles As Long) As Long\par
Declare Function SetEnhMetaFileBits Lib "gdi32" Alias "SetEnhMetaFileBits" (ByVal cbBuffer As Long, lpData As Byte) As Long\par
Declare Function SetWinMetaFileBits Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal hdcRef As Long, lpmfp As METAFILEPICT) As Long\par
Declare Function GdiComment Lib "gdi32" Alias "GdiComment" (ByVal hdc As Long, ByVal cbSize As Long, lpData As Any) As Long\par
\par
Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long\par
\par
Declare Function AngleArc Lib "gdi32" Alias "AngleArc" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Single, ByVal eSweepAngle As Single) As Long\par
Declare Function PolyPolyline Lib "gdi32" Alias "PolyPolyline" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long\par
Declare Function GetWorldTransform Lib "gdi32" Alias "GetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long\par
Declare Function SetWorldTransform Lib "gdi32" Alias "SetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long\par
Declare Function ModifyWorldTransform Lib "gdi32" Alias "ModifyWorldTransform" (ByVal hdc As Long, lpXform As xform, ByVal iMode As Long) As Long\par
Declare Function CombineTransform Lib "gdi32" Alias "CombineTransform" (lpxformResult As xform, lpxform1 As xform, lpxform2 As xform) As Long\par
\par
' Flags value for COLORADJUSTMENT\par
Public Const CA_NEGATIVE = &H1\par
Public Const CA_LOG_FILTER = &H2\par
\par
' IlluminantIndex values\par
Public Const ILLUMINANT_DEVICE_DEFAULT = 0\par
Public Const ILLUMINANT_A = 1\par
Public Const ILLUMINANT_B = 2\par
Public Const ILLUMINANT_C = 3\par
Public Const ILLUMINANT_D50 = 4\par
Public Const ILLUMINANT_D55 = 5\par
Public Const ILLUMINANT_D65 = 6\par
Public Const ILLUMINANT_D75 = 7\par
Public Const ILLUMINANT_F2 = 8\par
Public Const ILLUMINANT_MAX_INDEX = ILLUMINANT_F2\par
\par
Public Const ILLUMINANT_TUNGSTEN = ILLUMINANT_A\par
Public Const ILLUMINANT_DAYLIGHT = ILLUMINANT_C\par
Public Const ILLUMINANT_FLUORESCENT = ILLUMINANT_F2\par
Public Const ILLUMINANT_NTSC = ILLUMINANT_C\par
\par
' Min and max for RedGamma, GreenGamma, BlueGamma\par
Public Const RGB_GAMMA_MIN = 2500 'words\par
Public Const RGB_GAMMA_MAX = 65000\par
\par
' Min and max for ReferenceBlack and ReferenceWhite\par
Public Const REFERENCE_WHITE_MIN = 6000 'words\par
Public Const REFERENCE_WHITE_MAX = 10000\par
Public Const REFERENCE_BLACK_MIN = 0\par
Public Const REFERENCE_BLACK_MAX = 4000\par
\par
' Min and max for Contrast, Brightness, Colorfulness, RedGreenTint\par
Public Const COLOR_ADJ_MIN = -100 'shorts\par
Public Const COLOR_ADJ_MAX = 100\par
\par
Type COLORADJUSTMENT\par
caSize As Integer\par
caFlags As Integer\par
caIlluminantIndex As Integer\par
caRedGamma As Integer\par
caGreenGamma As Integer\par
caBlueGamma As Integer\par
caReferenceBlack As Integer\par
caReferenceWhite As Integer\par
caContrast As Integer\par
caBrightness As Integer\par
caColorfulness As Integer\par
caRedGreenTint As Integer\par
End Type\par
\par
Declare Function SetColorAdjustment Lib "gdi32" Alias "SetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long\par
Declare Function GetColorAdjustment Lib "gdi32" Alias "GetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long\par
Declare Function CreateHalftonePalette Lib "gdi32" Alias "CreateHalftonePalette" (ByVal hdc As Long) As Long\par
\par
Type DOCINFO\par
cbSize As Long\par
lpszDocName As String\par
lpszOutput As String\par
End Type\par
\par
Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long\par
Declare Function StartPage Lib "gdi32" Alias "StartPage" (ByVal hdc As Long) As Long\par
Declare Function EndPage Lib "gdi32" Alias "EndPage" (ByVal hdc As Long) As Long\par
Declare Function EndDocAPI Lib "gdi32" Alias "EndDoc" (ByVal hdc As Long) As Long\par
Declare Function AbortDoc Lib "gdi32" Alias "AbortDoc" (ByVal hdc As Long) As Long\par
\par
Declare Function AbortPath Lib "gdi32" Alias "AbortPath" (ByVal hdc As Long) As Long\par
Declare Function ArcTo Lib "gdi32" Alias "ArcTo" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long, ByVal X4 As Long, ByVal Y4 As Long) As Long\par
Declare Function BeginPath Lib "gdi32" Alias "BeginPath" (ByVal hdc As Long) As Long\par
Declare Function CloseFigure Lib "gdi32" Alias "CloseFigure" (ByVal hdc As Long) As Long\par
Declare Function EndPath Lib "gdi32" Alias "EndPath" (ByVal hdc As Long) As Long\par
Declare Function FillPath Lib "gdi32" Alias "FillPath" (ByVal hdc As Long) As Long\par
Declare Function FlattenPath Lib "gdi32" Alias "FlattenPath" (ByVal hdc As Long) As Long\par
Declare Function GetPath Lib "gdi32" Alias "GetPath" (ByVal hdc As Long, lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long\par
Declare Function PathToRegion Lib "gdi32" Alias "PathToRegion" (ByVal hdc As Long) As Long\par
Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long, lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long\par
Declare Function SelectClipPath Lib "gdi32" Alias "SelectClipPath" (ByVal hdc As Long, ByVal iMode As Long) As Long\par
Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long\par
Declare Function SetMiterLimit Lib "gdi32" Alias "SetMiterLimit" (ByVal hdc As Long, ByVal eNewLimit As Single, peOldLimit As Single) As Long\par
Declare Function StrokeAndFillPath Lib "gdi32" Alias "StrokeAndFillPath" (ByVal hdc As Long) As Long\par
Declare Function StrokePath Lib "gdi32" Alias "StrokePath" (ByVal hdc As Long) As Long\par
Declare Function WidenPath Lib "gdi32" Alias "WidenPath" (ByVal hdc As Long) As Long\par
Declare Function ExtCreatePen Lib "gdi32" Alias "ExtCreatePen" (ByVal dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal dwStyleCount As Long, lpStyle As Any) As Long\par
Declare Function GetMiterLimit Lib "gdi32" Alias "GetMiterLimit" (ByVal hdc As Long, peLimit As Single) As Long\par
Declare Function GetArcDirection Lib "gdi32" Alias "GetArcDirection" (ByVal hdc As Long) As Long\par
\par
Declare Function GetObjectAPI Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long\par
Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long\par
Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long\par
Declare Function ExtTextOut Lib "gdi32" Alias "ExtTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal wOptions As Long, lpRect As Rect, ByVal lpString As String, ByVal nCount As Long, lpDx As Long) As Long\par
Declare Function PolyTextOut Lib "gdi32" Alias "PolyTextOutA" (ByVal hdc As Long, pptxt As POLYTEXT, cStrings As Long) As Long\par
\par
Declare Function CreatePolygonRgn Lib "gdi32" Alias "CreatePolygonRgn" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long\par
Declare Function DPtoLP Lib "gdi32" Alias "DPtoLP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long\par
Declare Function LPtoDP Lib "gdi32" Alias "LPtoDP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long\par
Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long\par
Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long\par
\par
Declare Function PolyBezier Lib "gdi32" Alias "PolyBezier" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long\par
Declare Function PolyBezierTo Lib "gdi32" Alias "PolyBezierTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long\par
Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long\par
\par
Declare Function SetViewportExtEx Lib "gdi32" Alias "SetViewportExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long\par
Declare Function SetViewportOrgEx Lib "gdi32" Alias "SetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long\par
Declare Function SetWindowOrgEx Lib "gdi32" Alias "SetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long\par
Declare Function SetWindowExtEx Lib "gdi32" Alias "SetWindowExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long\par
\par
Declare Function OffsetViewportOrgEx Lib "gdi32" Alias "OffsetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long\par
Declare Function OffsetWindowOrgEx Lib "gdi32" Alias "OffsetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long\par
Declare Function ScaleWindowExtEx Lib "gdi32" Alias "ScaleWindowExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long\par
Declare Function ScaleViewportExtEx Lib "gdi32" Alias "ScaleViewportExtEx" (ByVal hdc As Long, ByVal nXnum As Long, ByVal nXdenom As Long, ByVal nYnum As Long, ByVal nYdenom As Long, lpSize As SIZE) As Long\par
Declare Function SetBitmapDimensionEx Lib "gdi32" Alias "SetBitmapDimensionEx" (ByVal hbm As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long\par
Declare Function SetBrushOrgEx Lib "gdi32" Alias "SetBrushOrgEx" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As POINTAPI) As Long\par
\par
Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long\par
\par
Public Const FONTMAPPER_MAX = 10\par
\par
Type KERNINGPAIR\par
wFirst As Integer\par
wSecond As Integer\par
iKernAmount As Long\par
End Type\par
\par
Declare Function GetKerningPairs Lib "gdi32" Alias "GetKerningPairsA" (ByVal hdc As Long, ByVal cPairs As Long, lpkrnpair As KERNINGPAIR) As Long\par
\par
Declare Function GetDCOrgEx Lib "gdi32" Alias "GetDCOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long\par
Declare Function UnrealizeObject Lib "gdi32" Alias "UnrealizeObject" (ByVal hObject As Long) As Long\par
\par
Declare Function GdiFlush Lib "gdi32" Alias "GdiFlush" () As Long\par
Declare Function GdiSetBatchLimit Lib "gdi32" Alias "GdiSetBatchLimit" (ByVal dwLimit As Long) As Long\par
Declare Function GdiGetBatchLimit Lib "gdi32" Alias "GdiGetBatchLimit" () As Long\par
\par
' Enhanced metafile constants\par
\par
Public Const ENHMETA_SIGNATURE = &H464D4520\par
\par
' Stock object flag used in the object handle\par
' index in the enhanced metafile records.\par
' E.g. The object handle index (META_STOCK_OBJECT Or BLACK_BRUSH)\par
' represents the stock object BLACK_BRUSH.\par
\par
Public Const ENHMETA_STOCK_OBJECT = &H80000000\par
\par
' Enhanced metafile record types.\par
\par
Public Const EMR_HEADER = 1\par
Public Const EMR_POLYBEZIER = 2\par
Public Const EMR_POLYGON = 3\par
Public Const EMR_POLYLINE = 4\par
Public Const EMR_POLYBEZIERTO = 5\par
Public Const EMR_POLYLINETO = 6\par
Public Const EMR_POLYPOLYLINE = 7\par
Public Const EMR_POLYPOLYGON = 8\par
Public Const EMR_SETWINDOWEXTEX = 9\par
Public Const EMR_SETWINDOWORGEX = 10\par
Public Const EMR_SETVIEWPORTEXTEX = 11\par
Public Const EMR_SETVIEWPORTORGEX = 12\par
Public Const EMR_SETBRUSHORGEX = 13\par
Public Const EMR_EOF = 14\par
Public Const EMR_SETPIXELV = 15\par
Public Const EMR_SETMAPPERFLAGS = 16\par
Public Const EMR_SETMAPMODE = 17\par
Public Const EMR_SETBKMODE = 18\par
Public Const EMR_SETPOLYFILLMODE = 19\par
Public Const EMR_SETROP2 = 20\par
Public Const EMR_SETSTRETCHBLTMODE = 21\par
Public Const EMR_SETTEXTALIGN = 22\par
Public Const EMR_SETCOLORADJUSTMENT = 23\par
Public Const EMR_SETTEXTCOLOR = 24\par
Public Const EMR_SETBKCOLOR = 25\par
Public Const EMR_OFFSETCLIPRGN = 26\par
Public Const EMR_MOVETOEX = 27\par
Public Const EMR_SETMETARGN = 28\par
Public Const EMR_EXCLUDECLIPRECT = 29\par
Public Const EMR_INTERSECTCLIPRECT = 30\par
Public Const EMR_SCALEVIEWPORTEXTEX = 31\par
Public Const EMR_SCALEWINDOWEXTEX = 32\par
Public Const EMR_SAVEDC = 33\par
Public Const EMR_RESTOREDC = 34\par
Public Const EMR_SETWORLDTRANSFORM = 35\par
Public Const EMR_MODIFYWORLDTRANSFORM = 36\par
Public Const EMR_SELECTOBJECT = 37\par
Public Const EMR_CREATEPEN = 38\par
Public Const EMR_CREATEBRUSHINDIRECT = 39\par
Public Const EMR_DELETEOBJECT = 40\par
Public Const EMR_ANGLEARC = 41\par
Public Const EMR_ELLIPSE = 42\par
Public Const EMR_RECTANGLE = 43\par
Public Const EMR_ROUNDRECT = 44\par
Public Const EMR_ARC = 45\par
Public Const EMR_CHORD = 46\par
Public Const EMR_PIE = 47\par
Public Const EMR_SELECTPALETTE = 48\par
Public Const EMR_CREATEPALETTE = 49\par
Public Const EMR_SETPALETTEENTRIES = 50\par
Public Const EMR_RESIZEPALETTE = 51\par
Public Const EMR_REALIZEPALETTE = 52\par
Public Const EMR_EXTFLOODFILL = 53\par
Public Const EMR_LINETO = 54\par
Public Const EMR_ARCTO = 55\par
Public Const EMR_POLYDRAW = 56\par
Public Const EMR_SETARCDIRECTION = 57\par
Public Const EMR_SETMITERLIMIT = 58\par
Public Const EMR_BEGINPATH = 59\par
Public Const EMR_ENDPATH = 60\par
Public Const EMR_CLOSEFIGURE = 61\par
Public Const EMR_FILLPATH = 62\par
Public Const EMR_STROKEANDFILLPATH = 63\par
Public Const EMR_STROKEPATH = 64\par
Public Const EMR_FLATTENPATH = 65\par
Public Const EMR_WIDENPATH = 66\par
Public Const EMR_SELECTCLIPPATH = 67\par
Public Const EMR_ABORTPATH = 68\par
\par
Public Const EMR_GDICOMMENT = 70\par
Public Const EMR_FILLRGN = 71\par
Public Const EMR_FRAMERGN = 72\par
Public Const EMR_INVERTRGN = 73\par
Public Const EMR_PAINTRGN = 74\par
Public Const EMR_EXTSELECTCLIPRGN = 75\par
Public Const EMR_BITBLT = 76\par
Public Const EMR_STRETCHBLT = 77\par
Public Const EMR_MASKBLT = 78\par
Public Const EMR_PLGBLT = 79\par
Public Const EMR_SETDIBITSTODEVICE = 80\par
Public Const EMR_STRETCHDIBITS = 81\par
Public Const EMR_EXTCREATEFONTINDIRECTW = 82\par
Public Const EMR_EXTTEXTOUTA = 83\par
Public Const EMR_EXTTEXTOUTW = 84\par
Public Const EMR_POLYBEZIER16 = 85\par
Public Const EMR_POLYGON16 = 86\par
Public Const EMR_POLYLINE16 = 87\par
Public Const EMR_POLYBEZIERTO16 = 88\par
Public Const EMR_POLYLINETO16 = 89\par
Public Const EMR_POLYPOLYLINE16 = 90\par
Public Const EMR_POLYPOLYGON16 = 91\par
Public Const EMR_POLYDRAW16 = 92\par
Public Const EMR_CREATEMONOBRUSH = 93\par
Public Const EMR_CREATEDIBPATTERNBRUSHPT = 94\par
Public Const EMR_EXTCREATEPEN = 95\par
Public Const EMR_POLYTEXTOUTA = 96\par
Public Const EMR_POLYTEXTOUTW = 97\par
\par
Public Const EMR_MIN = 1\par
Public Const EMR_MAX = 97\par
\par
Type emr\par
iType As Long\par
nSize As Long\par
End Type\par
\par
Type emrtext\par
ptlReference As POINTL\par
nchars As Long\par
offString As Long\par
fOptions As Long\par
rcl As RECTL\par
offDx As Long\par
End Type\par
\par
Type EMRABORTPATH\par
pEmr As emr\par
End Type\par
\par
Type EMRBEGINPATH\par
pEmr As emr\par
End Type\par
\par
Type EMRENDPATH\par
pEmr As emr\par
End Type\par
\par
Type EMRCLOSEFIGURE\par
pEmr As emr\par
End Type\par
\par
Type EMRFLATTENPATH\par
pEmr As emr\par
End Type\par
\par
Type EMRWIDENPATH\par
pEmr As emr\par
End Type\par
\par
Type EMRSETMETARGN\par
pEmr As emr\par
End Type\par
\par
Type EMREMRSAVEDC\par
pEmr As emr\par
End Type\par
\par
Type EMRREALIZEPALETTE\par
pEmr As emr\par
End Type\par
\par
Type EMRSELECTCLIPPATH\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETBKMODE\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETMAPMODE\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETPOLYFILLMODE\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETROP2\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETSTRETCHBLTMODE\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETTEXTALIGN\par
pEmr As emr\par
iMode As Long\par
End Type\par
\par
Type EMRSETMITERLIMIT\par
pEmr As emr\par
eMiterLimit As Single\par
End Type\par
\par
Type EMRRESTOREDC\par
pEmr As emr\par
iRelative As Long\par
End Type\par
\par
Type EMRSETARCDIRECTION\par
pEmr As emr\par
iArcDirection As Long\par
End Type\par
\par
Type EMRSETMAPPERFLAGS\par
pEmr As emr\par
dwFlags As Long\par
End Type\par
\par
Type EMRSETTEXTCOLOR\par
pEmr As emr\par
crColor As Long\par
End Type\par
\par
Type EMRSETBKCOLOR\par
pEmr As emr\par
crColor As Long\par
End Type\par
\par
Type EMRSELECTOBJECT\par
pEmr As emr\par
ihObject As Long\par
End Type\par
\par
Type EMRDELETEOBJECT\par
pEmr As emr\par
ihObject As Long\par
End Type\par
\par
Type EMRSELECTPALETTE\par
pEmr As emr\par
ihPal As Long\par
End Type\par
\par
Type EMRRESIZEPALETTE\par
pEmr As emr\par
ihPal As Long\par
cEntries As Long\par
End Type\par
\par
Type EMRSETPALETTEENTRIES\par
pEmr As emr\par
ihPal As Long\par
iStart As Long\par
cEntries As Long\par
aPalEntries(1) As PALETTEENTRY\par
End Type\par
\par
Type EMRSETCOLORADJUSTMENT\par
pEmr As emr\par
ColorAdjustment As ColorAdjustment\par
End Type\par
\par
Type EMRGDICOMMENT\par
pEmr As emr\par
cbData As Long\par
Data(1) As Integer\par
End Type\par
\par
Type EMREOF\par
pEmr As emr\par
nPalEntries As Long\par
offPalEntries As Long\par
nSizeLast As Long\par
End Type\par
\par
Type EMRLINETO\par
pEmr As emr\par
ptl As POINTL\par
End Type\par
\par
Type EMRMOVETOEX\par
pEmr As emr\par
ptl As POINTL\par
End Type\par
\par
Type EMROFFSETCLIPRGN\par
pEmr As emr\par
ptlOffset As POINTL\par
End Type\par
\par
Type EMRFILLPATH\par
pEmr As emr\par
rclBounds As RECTL\par
End Type\par
\par
Type EMRSTROKEANDFILLPATH\par
pEmr As emr\par
rclBounds As RECTL\par
End Type\par
\par
Type EMRSTROKEPATH\par
pEmr As emr\par
rclBounds As RECTL\par
End Type\par
\par
Type EMREXCLUDECLIPRECT\par
pEmr As emr\par
rclClip As RECTL\par
End Type\par
\par
Type EMRINTERSECTCLIPRECT\par
pEmr As emr\par
rclClip As RECTL\par
End Type\par
\par
Type EMRSETVIEWPORTORGEX\par
pEmr As emr\par
ptlOrigin As POINTL\par
End Type\par
\par
Type EMRSETWINDOWORGEX\par
pEmr As emr\par
ptlOrigin As POINTL\par
End Type\par
\par
Type EMRSETBRUSHORGEX\par
pEmr As emr\par
ptlOrigin As POINTL\par
End Type\par
\par
Type EMRSETVIEWPORTEXTEX\par
pEmr As emr\par
szlExtent As SIZEL\par
End Type\par
\par
Type EMRSETWINDOWEXTEX\par
pEmr As emr\par
szlExtent As SIZEL\par
End Type\par
\par
Type EMRSCALEVIEWPORTEXTEX\par
pEmr As emr\par
xNum As Long\par
xDenom As Long\par
yNum As Long\par
yDemon As Long\par
End Type\par
\par
Type EMRSCALEWINDOWEXTEX\par
pEmr As emr\par
xNum As Long\par
xDenom As Long\par
yNum As Long\par
yDemon As Long\par
End Type\par
\par
Type EMRSETWORLDTRANSFORM\par
pEmr As emr\par
xform As XFORM\par
End Type\par
\par
Type EMRMODIFYWORLDTRANSFORM\par
pEmr As emr\par
xform As XFORM\par
iMode As Long\par
End Type\par
\par
Type EMRSETPIXELV\par
pEmr As emr\par
ptlPixel As POINTL\par
crColor As Long\par
End Type\par
\par
Type EMREXTFLOODFILL\par
pEmr As emr\par
ptlStart As POINTL\par
crColor As Long\par
iMode As Long\par
End Type\par
\par
Type EMRELLIPSE\par
pEmr As emr\par
rclBox As RECTL\par
End Type\par
\par
Type EMRRECTANGLE\par
pEmr As emr\par
rclBox As RECTL\par
End Type\par
\par
Type EMRROUNDRECT\par
pEmr As emr\par
rclBox As RECTL\par
szlCorner As SIZEL\par
End Type\par
\par
Type EMRARC\par
pEmr As emr\par
rclBox As RECTL\par
ptlStart As POINTL\par
ptlEnd As POINTL\par
End Type\par
\par
Type EMRARCTO\par
pEmr As emr\par
rclBox As RECTL\par
ptlStart As POINTL\par
ptlEnd As POINTL\par
End Type\par
\par
Type EMRCHORD\par
pEmr As emr\par
rclBox As RECTL\par
ptlStart As POINTL\par
ptlEnd As POINTL\par
End Type\par
\par
Type EMRPIE\par
pEmr As emr\par
rclBox As RECTL\par
ptlStart As POINTL\par
ptlEnd As POINTL\par
End Type\par
\par
Type EMRANGLEARC\par
pEmr As emr\par
ptlCenter As POINTL\par
nRadius As Long\par
eStartAngle As Single\par
eSweepAngle As Single\par
End Type\par
\par
Type EMRPOLYLINE\par
pEmr As emr\par
rclBounds As RECTL\par
cptl As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYBEZIER\par
pEmr As emr\par
rclBounds As RECTL\par
cptl As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYGON\par
pEmr As emr\par
rclBounds As RECTL\par
cptl As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYBEZIERTO\par
pEmr As emr\par
rclBounds As RECTL\par
cptl As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYLINE16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPOLYBEZIER16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPOLYGON16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPLOYBEZIERTO16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPOLYLINETO16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPOLYDRAW\par
pEmr As emr\par
rclBounds As RECTL\par
cptl As Long\par
aptl(1) As POINTL\par
abTypes(1) As Integer\par
End Type\par
\par
Type EMRPOLYDRAW16\par
pEmr As emr\par
rclBounds As RECTL\par
cpts As Long\par
apts(1) As POINTS\par
abTypes(1) As Integer\par
End Type\par
\par
Type EMRPOLYPOLYLINE\par
pEmr As emr\par
rclBounds As RECTL\par
nPolys As Long\par
cptl As Long\par
aPolyCounts(1) As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYPOLYGON\par
pEmr As emr\par
rclBounds As RECTL\par
nPolys As Long\par
cptl As Long\par
aPolyCounts(1) As Long\par
aptl(1) As POINTL\par
End Type\par
\par
Type EMRPOLYPOLYLINE16\par
pEmr As emr\par
rclBounds As RECTL\par
nPolys As Long\par
cpts As Long\par
aPolyCounts(1) As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRPOLYPOLYGON16\par
pEmr As emr\par
rclBounds As RECTL\par
nPolys As Long\par
cpts As Long\par
aPolyCounts(1) As Long\par
apts(1) As POINTS\par
End Type\par
\par
Type EMRINVERTRGN\par
pEmr As emr\par
rclBounds As RECTL\par
cbRgnData As Long\par
RgnData(1) As Integer\par
End Type\par
\par
Type EMRPAINTRGN\par
pEmr As emr\par
rclBounds As RECTL\par
cbRgnData As Long\par
RgnData(1) As Integer\par
End Type\par
\par
Type EMRFILLRGN\par
pEmr As emr\par
rclBounds As RECTL\par
cbRgnData As Long\par
ihBrush As Long\par
RgnData(1) As Integer\par
End Type\par
\par
Type EMRFRAMERGN\par
pEmr As emr\par
rclBounds As RECTL\par
cbRgnData As Long\par
ihBrush As Long\par
szlStroke As SIZEL\par
RgnData(1) As Integer\par
End Type\par
\par
Type EMREXTSELECTCLIPRGN\par
pEmr As emr\par
cbRgnData As Long\par
iMode As Long\par
RgnData(1) As Integer\par
End Type\par
\par
Type EMREXTTEXTOUT\par
pEmr As emr\par
rclBounds As RECTL\par
iGraphicsMode As Long\par
exScale As Single\par
eyScale As Single\par
emrtext As emrtext\par
End Type\par
\par
Type EMRBITBLT\par
pEmr As emr\par
rclBounds As RECTL\par
xDest As Long\par
yDest As Long\par
cxDest As Long\par
cyDest As Long\par
dwRop As Long\par
xSrc As Long\par
ySrc As Long\par
xformSrc As xform\par
crBkColorSrc As Long\par
iUsageSrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
End Type\par
\par
Type EMRSTRETCHBLT\par
pEmr As emr\par
rclBounds As RECTL\par
xDest As Long\par
yDest As Long\par
cxDest As Long\par
cyDest As Long\par
dwRop As Long\par
xSrc As Long\par
ySrc As Long\par
xformSrc As xform\par
crBkColorSrc As Long\par
iUsageSrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
cxSrc As Long\par
cySrc As Long\par
End Type\par
\par
Type EMRMASKBLT\par
pEmr As emr\par
rclBounds As RECTL\par
xDest As Long\par
yDest As Long\par
cxDest As Long\par
cyDest As Long\par
dwRop As Long\par
xSrc2 As Long\par
cyDest2 As Long\par
dwRop2 As Long\par
xSrc As Long\par
ySrc As Long\par
xformSrc As XFORM\par
crBkColorSrc As Long\par
iUsageSrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
xMask As Long\par
yMask As Long\par
iUsageMask As Long\par
offBmiMask As Long\par
cbBmiMask As Long\par
offBitsMask As Long\par
cbBitsMask As Long\par
End Type\par
\par
Type EMRPLGBLT\par
pEmr As emr\par
rclBounds As RECTL\par
aptlDest(3) As POINTL\par
xSrc As Long\par
ySrc As Long\par
cxSrc As Long\par
cySrc As Long\par
xformSrc As XFORM\par
crBkColorSrc As Long\par
iUsageSrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
xMask As Long\par
yMask As Long\par
iUsageMask As Long\par
offBmiMask As Long\par
cbBmiMask As Long\par
offBitsMask As Long\par
cbBitsMask As Long\par
End Type\par
\par
Type EMRSETDIBITSTODEVICE\par
pEmr As emr\par
rclBounds As RECTL\par
xDest As Long\par
yDest As Long\par
xSrc As Long\par
ySrc As Long\par
cxSrc As Long\par
cySrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
iUsageSrc As Long\par
iStartScan As Long\par
cScans As Long\par
End Type\par
\par
Type EMRSTRETCHDIBITS\par
pEmr As emr\par
rclBounds As RECTL\par
xDest As Long\par
yDest As Long\par
xSrc As Long\par
ySrc As Long\par
cxSrc As Long\par
cySrc As Long\par
offBmiSrc As Long\par
cbBmiSrc As Long\par
offBitsSrc As Long\par
cbBitsSrc As Long\par
iUsageSrc As Long\par
dwRop As Long\par
cxDest As Long\par
cyDest As Long\par
End Type\par
\par
Type EMREXTCREATEFONTINDIRECT\par
pEmr As emr\par
ihFont As Long\par
elfw As EXTLOGFONT\par
End Type\par
\par
Type EMRCREATEPALETTE\par
pEmr As emr\par
ihPal As Long\par
lgpl As LOGPALETTE\par
End Type\par
\par
Type EMRCREATEPEN\par
pEmr As emr\par
ihPen As Long\par
lopn As LOGPEN\par
End Type\par
\par
Type EMREXTCREATEPEN\par
pEmr As emr\par
ihPen As Long\par
offBmi As Long\par
cbBmi As Long\par
offBits As Long\par
cbBits As Long\par
elp As EXTLOGPEN\par
End Type\par
\par
Type EMRCREATEBRUSHINDIRECT\par
pEmr As emr\par
ihBrush As Long\par
lb As LOGBRUSH\par
End Type\par
\par
Type EMRCREATEMONOBRUSH\par
pEmr As emr\par
ihBrush As Long\par
iUsage As Long\par
offBmi As Long\par
cbBmi As Long\par
offBits As Long\par
cbBits As Long\par
End Type\par
\par
Type EMRCREATEDIBPATTERNBRUSHPT\par
pEmr As emr\par
ihBursh As Long\par
iUsage As Long\par
offBmi As Long\par
cbBmi As Long\par
offBits As Long\par
cbBits As Long\par
End Type\par
\par
' new wingdi\par
' *************************************************************************\par
' * *\par
' * wingdi.h -- GDI procedure declarations, constant definitions and macros *\par
' * *\par
' * Copyright (c) 1985-1995, Microsoft Corp. All rights reserved. *\par
' * *\par
' **************************************************************************/\par
\par
' StretchBlt() Modes\par
Public Const STRETCH_ANDSCANS = 1\par
Public Const STRETCH_ORSCANS = 2\par
Public Const STRETCH_DELETESCANS = 3\par
Public Const STRETCH_HALFTONE = 4\par
\par
Type BITMAPV4HEADER\par
bV4Size As Long\par
bV4Width As Long\par
bV4Height As Long\par
bV4Planes As Integer\par
bV4BitCount As Integer\par
bV4V4Compression As Long\par
bV4SizeImage As Long\par
bV4XPelsPerMeter As Long\par
bV4YPelsPerMeter As Long\par
bV4ClrUsed As Long\par
bV4ClrImportant As Long\par
bV4RedMask As Long\par
bV4GreenMask As Long\par
bV4BlueMask As Long\par
bV4AlphaMask As Long\par
bV4CSType As Long\par
bV4Endpoints As Long\par
bV4GammaRed As Long\par
bV4GammaGreen As Long\par
bV4GammaBlue As Long\par
End Type\par
\par
Type FONTSIGNATURE\par
fsUsb(4) As Long\par
fsCsb(2) As Long\par
End Type\par
\par
Type CHARSETINFO\par
ciCharset As Long\par
ciACP As Long\par
fs As FONTSIGNATURE\par
End Type\par
\par
Public Const TCI_SRCCHARSET = 1\par
Public Const TCI_SRCCODEPAGE = 2\par
Public Const TCI_SRCFONTSIG = 3\par
\par
Type LOCALESIGNATURE\par
lsUsb(4) As Long\par
lsCsbDefault(2) As Long\par
lsCsbSupported(2) As Long\par
End Type\par
\par
Type NEWTEXTMETRICEX\par
ntmTm As NEWTEXTMETRIC\par
ntmFontSig As FONTSIGNATURE\par
End Type\par
\par
Type ENUMLOGFONTEX\par
elfLogFont As LOGFONT\par
elfFullName(LF_FULLFACESIZE) As Byte\par
elfStyle(LF_FACESIZE) As Byte\par
elfScript(LF_FACESIZE) As Byte\par
End Type\par
\par
Public Const MONO_FONT = 8\par
Public Const JOHAB_CHARSET = 130\par
Public Const HEBREW_CHARSET = 177\par
Public Const ARABIC_CHARSET = 178\par
Public Const GREEK_CHARSET = 161\par
Public Const TURKISH_CHARSET = 162\par
Public Const THAI_CHARSET = 222\par
Public Const EASTEUROPE_CHARSET = 238\par
Public Const RUSSIAN_CHARSET = 204\par
\par
Public Const MAC_CHARSET = 77\par
Public Const BALTIC_CHARSET = 186\par
\par
Public Const FS_LATIN1 = &H1&\par
Public Const FS_LATIN2 = &H2&\par
Public Const FS_CYRILLIC = &H4&\par
Public Const FS_GREEK = &H8&\par
Public Const FS_TURKISH = &H10&\par
Public Const FS_HEBREW = &H20&\par
Public Const FS_ARABIC = &H40&\par
Public Const FS_BALTIC = &H80&\par
Public Const FS_THAI = &H10000\par
Public Const FS_JISJAPAN = &H20000\par
Public Const FS_CHINESESIMP = &H40000\par
Public Const FS_WANSUNG = &H80000\par
Public Const FS_CHINESETRAD = &H100000\par
Public Const FS_JOHAB = &H200000\par
Public Const FS_SYMBOL = &H80000000\par
Public Const DEFAULT_GUI_FONT = 17\par
' current version of specification\par
Public Const DM_RESERVED1 = &H800000\par
Public Const DM_RESERVED2 = &H1000000\par
Public Const DM_ICMMETHOD = &H2000000\par
Public Const DM_ICMINTENT = &H4000000\par
Public Const DM_MEDIATYPE = &H8000000\par
Public Const DM_DITHERTYPE = &H10000000\par
Public Const DMPAPER_ISO_B4 = 42 ' B4 (ISO) 250 x 353 mm\par
Public Const DMPAPER_JAPANESE_POSTCARD = 43 ' Japanese Postcard 100 x 148 mm\par
Public Const DMPAPER_9X11 = 44 ' 9 x 11 in\par
Public Const DMPAPER_10X11 = 45 ' 10 x 11 in\par
Public Const DMPAPER_15X11 = 46 ' 15 x 11 in\par
Public Const DMPAPER_ENV_INVITE = 47 ' Envelope Invite 220 x 220 mm\par
Public Const DMPAPER_RESERVED_48 = 48 ' RESERVED--DO NOT USE\par
Public Const DMPAPER_RESERVED_49 = 49 ' RESERVED--DO NOT USE\par
Public Const DMPAPER_LETTER_EXTRA = 50 ' Letter Extra 9 \\275 x 12 in\par
Public Const DMPAPER_LEGAL_EXTRA = 51 ' Legal Extra 9 \\275 x 15 in\par
Public Const DMPAPER_TABLOID_EXTRA = 52 ' Tabloid Extra 11.69 x 18 in\par
Public Const DMPAPER_A4_EXTRA = 53 ' A4 Extra 9.27 x 12.69 in\par
Public Const DMPAPER_LETTER_TRANSVERSE = 54 ' Letter Transverse 8 \\275 x 11 in\par
Public Const DMPAPER_A4_TRANSVERSE = 55 ' A4 Transverse 210 x 297 mm\par
Public Const DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 ' Letter Extra Transverse 9\\275 x 12 in\par
Public Const DMPAPER_A_PLUS = 57 ' SuperA/SuperA/A4 227 x 356 mm\par
Public Const DMPAPER_B_PLUS = 58 ' SuperB/SuperB/A3 305 x 487 mm\par
Public Const DMPAPER_LETTER_PLUS = 59 ' Letter Plus 8.5 x 12.69 in\par
Public Const DMPAPER_A4_PLUS = 60 ' A4 Plus 210 x 330 mm\par
Public Const DMPAPER_A5_TRANSVERSE = 61 ' A5 Transverse 148 x 210 mm\par
Public Const DMPAPER_B5_TRANSVERSE = 62 ' B5 (JIS) Transverse 182 x 257 mm\par
Public Const DMPAPER_A3_EXTRA = 63 ' A3 Extra 322 x 445 mm\par
Public Const DMPAPER_A5_EXTRA = 64 ' A5 Extra 174 x 235 mm\par
Public Const DMPAPER_B5_EXTRA = 65 ' B5 (ISO) Extra 201 x 276 mm\par
Public Const DMPAPER_A2 = 66 ' A2 420 x 594 mm\par
Public Const DMPAPER_A3_TRANSVERSE = 67 ' A3 Transverse 297 x 420 mm\par
Public Const DMPAPER_A3_EXTRA_TRANSVERSE = 68 ' A3 Extra Transverse 322 x 445 mm\par
Public Const DMTT_DOWNLOAD_OUTLINE = 4 ' download TT fonts as outline soft fonts\par
\par
' ICM methods\par
Public Const DMICMMETHOD_NONE = 1 ' ICM disabled\par
Public Const DMICMMETHOD_SYSTEM = 2 ' ICM handled by system\par
Public Const DMICMMETHOD_DRIVER = 3 ' ICM handled by driver\par
Public Const DMICMMETHOD_DEVICE = 4 ' ICM handled by device\par
Public Const DMICMMETHOD_USER = 256 ' Device-specific methods start here\par
\par
' ICM Intents\par
Public Const DMICM_SATURATE = 1 ' Maximize color saturation\par
Public Const DMICM_CONTRAST = 2 ' Maximize color contrast\par
Public Const DMICM_COLORMETRIC = 3 ' Use specific color metric\par
Public Const DMICM_USER = 256 ' Device-specific intents start here\par
\par
' Media types\par
Public Const DMMEDIA_STANDARD = 1 ' Standard paper\par
Public Const DMMEDIA_GLOSSY = 2 ' Glossy paper\par
Public Const DMMEDIA_TRANSPARENCY = 3 ' Transparency\par
\par
Public Const DMMEDIA_USER = 256 ' Device-specific media start here\par
\par
' Dither types\par
Public Const DMDITHER_NONE = 1 ' No dithering\par
Public Const DMDITHER_COARSE = 2 ' Dither with a coarse brush\par
Public Const DMDITHER_FINE = 3 ' Dither with a fine brush\par
Public Const DMDITHER_LINEART = 4 ' LineArt dithering\par
Public Const DMDITHER_GRAYSCALE = 5 ' Device does grayscaling\par
Public Const DMDITHER_USER = 256 ' Device-specific dithers start here\par
Public Const GGO_GRAY2_BITMAP = 4\par
Public Const GGO_GRAY4_BITMAP = 5\par
Public Const GGO_GRAY8_BITMAP = 6\par
Public Const GGO_GLYPH_INDEX = &H80\par
Public Const GCP_DBCS = &H1\par
Public Const GCP_REORDER = &H2\par
Public Const GCP_USEKERNING = &H8\par
Public Const GCP_GLYPHSHAPE = &H10\par
Public Const GCP_LIGATE = &H20\par
Public Const GCP_DIACRITIC = &H100\par
Public Const GCP_KASHIDA = &H400\par
Public Const GCP_ERROR = &H8000&\par
Public Const FLI_MASK = &H103B\par
Public Const GCP_JUSTIFY = &H10000\par
Public Const GCP_NODIACRITICS = &H20000\par
Public Const FLI_GLYPHS = &H40000\par
Public Const GCP_CLASSIN = &H80000\par
Public Const GCP_MAXEXTENT = &H100000\par
Public Const GCP_JUSTIFYIN = &H200000\par
Public Const GCP_DISPLAYZWG = &H400000\par
Public Const GCP_SYMSWAPOFF = &H800000\par
Public Const GCP_NUMERICOVERRIDE = &H1000000\par
Public Const GCP_NEUTRALOVERRIDE = &H2000000\par
Public Const GCP_NUMERICSLATIN = &H4000000\par
Public Const GCP_NUMERICSLOCAL = &H8000000\par
Public Const GCPCLASS_LATIN = 1\par
Public Const GCPCLASS_HEBREW = 2\par
Public Const GCPCLASS_ARABIC = 2\par
Public Const GCPCLASS_NEUTRAL = 3\par
Public Const GCPCLASS_LOCALNUMBER = 4\par
Public Const GCPCLASS_LATINNUMBER = 5\par
Public Const GCPCLASS_LATINNUMERICTERMINATOR = 6\par
Public Const GCPCLASS_LATINNUMERICSEPARATOR = 7\par
Public Const GCPCLASS_NUMERICSEPARATOR = 8\par
Public Const GCPCLASS_PREBOUNDRTL = &H80\par
Public Const GCPCLASS_PREBOUNDLTR = &H40\par
\par
\par
\par
Type GCP_RESULTS\par
lStructSize As Long\par
lpOutString As String\par
lpOrder As Long\par
lpDX As Long\par
lpCaretPos As Long\par
lpClass As String\par
lpGlyphs As String\par
nGlyphs As Long\par
nMaxFit As Long\par
End Type\par
\par
Public Const DC_BINADJUST = 19\par
Public Const DC_EMF_COMPLIANT = 20\par
Public Const DC_DATATYPE_PRODUCED = 21\par
Public Const DC_COLLATE = 22\par
\par
Public Const DCTT_DOWNLOAD_OUTLINE = &H8&\par
\par
' return values for DC_BINADJUST\par
Public Const DCBA_FACEUPNONE = &H0\par
Public Const DCBA_FACEUPCENTER = &H1\par
Public Const DCBA_FACEUPLEFT = &H2\par
Public Const DCBA_FACEUPRIGHT = &H3\par
Public Const DCBA_FACEDOWNNONE = &H100\par
Public Const DCBA_FACEDOWNCENTER = &H101\par
Public Const DCBA_FACEDOWNLEFT = &H102\par
Public Const DCBA_FACEDOWNRIGHT = &H103\par
\par
Declare Function EnumFontFamilies Lib "gdi32" Alias "EnumFontFamiliesA" (ByVal hdc As Long, ByVal lpszFamily As String, ByVal lpEnumFontFamProc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumFontFamiliesEx Lib "gdi32" Alias "EnumFontFamiliesExA" (ByVal hdc As Long, lpLogFont As LOGFONT, ByVal lpEnumFontProc As Long, ByVal lParam As Long, ByVal dw As Long) As Long\par
Declare Function GetTextCharset Lib "gdi32" Alias "GetTextCharset" (ByVal hdc As Long) As Long\par
Declare Function GetTextCharsetInfo Lib "gdi32" Alias "GetTextCharsetInfo" (ByVal hdc As Long, lpSig As FONTSIGNATURE, ByVal dwFlags As Long) As Long\par
\par
Declare Function TranslateCharsetInfo Lib "gdi32" Alias "TranslateCharsetInfo" (lpSrc As Long, lpcs As CHARSETINFO, ByVal dwFlags As Long) As Long\par
Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long\par
Declare Function GetCharacterPlacement Lib "gdi32" Alias "GetCharacterPlacementA" (ByVal hdc As Long, ByVal lpsz As String, ByVal n1 As Long, ByVal n2 As Long, lpGcpResults As GCP_RESULTS, ByVal dw As Long) As Long\par
\par
Public Const ICM_OFF = 1\par
Public Const ICM_ON = 2\par
Public Const ICM_QUERY = 3\par
\par
Type CIEXYZ\par
\tab ciexyzX As Long\par
\tab ciexyzY As Long\par
\tab ciexyzZ As Long\par
End Type\par
\par
Type CIEXYZTRIPLE\par
ciexyzRed As CIEXYZ\par
ciexyzGreen As CIEXYZ\par
ciexyBlue As CIEXYZ\par
End Type\par
\par
Type LOGCOLORSPACE\par
lcsSignature As Long\par
lcsVersion As Long\par
lcsSize As Long\par
lcsCSType As Long\par
lcsIntent As Long\par
lcsEndPoints As CIEXYZTRIPLE\par
lcsGammaRed As Long\par
lcsGammaGreen As Long\par
lcsGammaBlue As Long\par
lcsFileName As String * MAX_PATH\par
End Type\par
\par
Declare Function SetICMMode Lib "gdi32" Alias "SetICMMode" (ByVal hdc As Long, ByVal n As Long) As Long\par
Declare Function CheckColorsInGamut Lib "gdi32" Alias "CheckColorsInGamut" (ByVal hdc As Long, lpv As Any, lpv2 As Any, ByVal dw As Long) As Long\par
Declare Function GetLogColorSpace Lib "gdi32" Alias "GetLogColorSpaceA" (ByVal hcolorspace As Long, lplogcolorspace As LOGCOLORSPACE, ByVal dw As Long) As Long\par
Declare Function GetColorSpace Lib "gdi32" Alias "GetColorSpace" (ByVal hdc As Long) As Long\par
\par
Declare Function CreateColorSpace Lib "gdi32" Alias "CreateColorSpaceA" (lplogcolorspace As LOGCOLORSPACE) As Long\par
\par
Declare Function SetColorSpace Lib "gdi32" Alias "SetColorSpace" (ByVal hdc As Long, ByVal hcolorspace As Long) As Long\par
Declare Function DeleteColorSpace Lib "gdi32" Alias "DeleteColorSpace" (ByVal hcolorspace As Long) As Long\par
Declare Function GetICMProfile Lib "gdi32" Alias "GetICMProfileA" (ByVal hdc As Long, ByVal dw As Long, ByVal lpStr As String) As Long\par
Declare Function SetICMProfile Lib "gdi32" Alias "SetICMProfileA" (ByVal hdc As Long, ByVal lpStr As String) As Long\par
Declare Function GetDeviceGammaRamp Lib "gdi32" Alias "GetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long\par
Declare Function SetDeviceGammaRamp Lib "gdi32" Alias "SetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long\par
Declare Function ColorMatchToTarget Lib "gdi32" Alias "ColorMatchToTarget" (ByVal hdc As Long, ByVal hdc2 As Long, ByVal dw As Long) As Long\par
\par
Declare Function EnumICMProfiles Lib "gdi32" Alias "EnumICMProfilesA" (ByVal hdc As Long, ByVal icmEnumProc As Long, ByVal lParam As Long) As Long\par
\par
Public Const EMR_SETICMMODE = 98\par
Public Const EMR_CREATECOLORSPACE = 99\par
Public Const EMR_SETCOLORSPACE = 100\par
Public Const EMR_DELETECOLORSPACE = 101\par
\par
Type EMRSELECTCOLORSPACE\par
pEmr As emr\par
ihCS As Long ' ColorSpace handle index\par
End Type\par
\par
Type EMRCREATECOLORSPACE\par
pEmr As emr\par
ihCS As Long ' ColorSpace handle index\par
lcs As LOGCOLORSPACE\par
End Type\par
\par
\par
' --------------\par
' USER Section\par
' --------------\par
\par
' Scroll Bar Constants\par
Public Const SB_HORZ = 0\par
Public Const SB_VERT = 1\par
Public Const SB_CTL = 2\par
Public Const SB_BOTH = 3\par
\par
' Scroll Bar Commands\par
Public Const SB_LINEUP = 0\par
Public Const SB_LINELEFT = 0\par
Public Const SB_LINEDOWN = 1\par
Public Const SB_LINERIGHT = 1\par
Public Const SB_PAGEUP = 2\par
Public Const SB_PAGELEFT = 2\par
Public Const SB_PAGEDOWN = 3\par
Public Const SB_PAGERIGHT = 3\par
Public Const SB_THUMBPOSITION = 4\par
Public Const SB_THUMBTRACK = 5\par
Public Const SB_TOP = 6\par
Public Const SB_LEFT = 6\par
Public Const SB_BOTTOM = 7\par
Public Const SB_RIGHT = 7\par
Public Const SB_ENDSCROLL = 8\par
\par
' ShowWindow() Commands\par
Public Const SW_HIDE = 0\par
Public Const SW_SHOWNORMAL = 1\par
Public Const SW_NORMAL = 1\par
Public Const SW_SHOWMINIMIZED = 2\par
Public Const SW_SHOWMAXIMIZED = 3\par
Public Const SW_MAXIMIZE = 3\par
Public Const SW_SHOWNOACTIVATE = 4\par
Public Const SW_SHOW = 5\par
Public Const SW_MINIMIZE = 6\par
Public Const SW_SHOWMINNOACTIVE = 7\par
Public Const SW_SHOWNA = 8\par
Public Const SW_RESTORE = 9\par
Public Const SW_SHOWDEFAULT = 10\par
Public Const SW_MAX = 10\par
\par
' Old ShowWindow() Commands\par
Public Const HIDE_WINDOW = 0\par
Public Const SHOW_OPENWINDOW = 1\par
Public Const SHOW_ICONWINDOW = 2\par
Public Const SHOW_FULLSCREEN = 3\par
Public Const SHOW_OPENNOACTIVATE = 4\par
\par
' Identifiers for the WM_SHOWWINDOW message\par
Public Const SW_PARENTCLOSING = 1\par
Public Const SW_OTHERZOOM = 2\par
Public Const SW_PARENTOPENING = 3\par
Public Const SW_OTHERUNZOOM = 4\par
\par
' WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags\par
Public Const KF_EXTENDED = &H100\par
Public Const KF_DLGMODE = &H800\par
Public Const KF_MENUMODE = &H1000\par
Public Const KF_ALTDOWN = &H2000\par
Public Const KF_REPEAT = &H4000\par
Public Const KF_UP = &H8000&\par
\par
' Virtual Keys, Standard Set\par
Public Const VK_LBUTTON = &H1\par
Public Const VK_RBUTTON = &H2\par
Public Const VK_CANCEL = &H3\par
Public Const VK_MBUTTON = &H4 ' NOT contiguous with L RBUTTON\par
\par
Public Const VK_BACK = &H8\par
Public Const VK_TAB = &H9\par
\par
Public Const VK_CLEAR = &HC\par
Public Const VK_RETURN = &HD\par
\par
Public Const VK_SHIFT = &H10\par
Public Const VK_CONTROL = &H11\par
Public Const VK_MENU = &H12\par
Public Const VK_PAUSE = &H13\par
Public Const VK_CAPITAL = &H14\par
\par
Public Const VK_ESCAPE = &H1B\par
\par
Public Const VK_SPACE = &H20\par
Public Const VK_PRIOR = &H21\par
Public Const VK_NEXT = &H22\par
Public Const VK_END = &H23\par
Public Const VK_HOME = &H24\par
Public Const VK_LEFT = &H25\par
Public Const VK_UP = &H26\par
Public Const VK_RIGHT = &H27\par
Public Const VK_DOWN = &H28\par
Public Const VK_SELECT = &H29\par
Public Const VK_PRINT = &H2A\par
Public Const VK_EXECUTE = &H2B\par
Public Const VK_SNAPSHOT = &H2C\par
Public Const VK_INSERT = &H2D\par
Public Const VK_DELETE = &H2E\par
Public Const VK_HELP = &H2F\par
\par
' VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'\par
' VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '9'\par
\par
Public Const VK_NUMPAD0 = &H60\par
Public Const VK_NUMPAD1 = &H61\par
Public Const VK_NUMPAD2 = &H62\par
Public Const VK_NUMPAD3 = &H63\par
Public Const VK_NUMPAD4 = &H64\par
Public Const VK_NUMPAD5 = &H65\par
Public Const VK_NUMPAD6 = &H66\par
Public Const VK_NUMPAD7 = &H67\par
Public Const VK_NUMPAD8 = &H68\par
Public Const VK_NUMPAD9 = &H69\par
Public Const VK_MULTIPLY = &H6A\par
Public Const VK_ADD = &H6B\par
Public Const VK_SEPARATOR = &H6C\par
Public Const VK_SUBTRACT = &H6D\par
Public Const VK_DECIMAL = &H6E\par
Public Const VK_DIVIDE = &H6F\par
Public Const VK_F1 = &H70\par
Public Const VK_F2 = &H71\par
Public Const VK_F3 = &H72\par
Public Const VK_F4 = &H73\par
Public Const VK_F5 = &H74\par
Public Const VK_F6 = &H75\par
Public Const VK_F7 = &H76\par
Public Const VK_F8 = &H77\par
Public Const VK_F9 = &H78\par
Public Const VK_F10 = &H79\par
Public Const VK_F11 = &H7A\par
Public Const VK_F12 = &H7B\par
Public Const VK_F13 = &H7C\par
Public Const VK_F14 = &H7D\par
Public Const VK_F15 = &H7E\par
Public Const VK_F16 = &H7F\par
Public Const VK_F17 = &H80\par
Public Const VK_F18 = &H81\par
Public Const VK_F19 = &H82\par
Public Const VK_F20 = &H83\par
Public Const VK_F21 = &H84\par
Public Const VK_F22 = &H85\par
Public Const VK_F23 = &H86\par
Public Const VK_F24 = &H87\par
\par
Public Const VK_NUMLOCK = &H90\par
Public Const VK_SCROLL = &H91\par
\par
'\par
' VK_L VK_R - left and right Alt, Ctrl and Shift virtual keys.\par
' Used only as parameters to GetAsyncKeyState() and GetKeyState().\par
' No other API or message will distinguish left and right keys in this way.\par
' /\par
Public Const VK_LSHIFT = &HA0\par
Public Const VK_RSHIFT = &HA1\par
Public Const VK_LCONTROL = &HA2\par
Public Const VK_RCONTROL = &HA3\par
Public Const VK_LMENU = &HA4\par
Public Const VK_RMENU = &HA5\par
\par
Public Const VK_ATTN = &HF6\par
Public Const VK_CRSEL = &HF7\par
Public Const VK_EXSEL = &HF8\par
Public Const VK_EREOF = &HF9\par
Public Const VK_PLAY = &HFA\par
Public Const VK_ZOOM = &HFB\par
Public Const VK_NONAME = &HFC\par
Public Const VK_PA1 = &HFD\par
Public Const VK_OEM_CLEAR = &HFE\par
\par
' SetWindowsHook() codes\par
Public Const WH_MIN = (-1)\par
Public Const WH_MSGFILTER = (-1)\par
Public Const WH_JOURNALRECORD = 0\par
Public Const WH_JOURNALPLAYBACK = 1\par
Public Const WH_KEYBOARD = 2\par
Public Const WH_GETMESSAGE = 3\par
Public Const WH_CALLWNDPROC = 4\par
Public Const WH_CBT = 5\par
Public Const WH_SYSMSGFILTER = 6\par
Public Const WH_MOUSE = 7\par
Public Const WH_HARDWARE = 8\par
Public Const WH_DEBUG = 9\par
Public Const WH_SHELL = 10\par
Public Const WH_FOREGROUNDIDLE = 11\par
Public Const WH_MAX = 11\par
\par
' Hook Codes\par
Public Const HC_ACTION = 0\par
Public Const HC_GETNEXT = 1\par
Public Const HC_SKIP = 2\par
Public Const HC_NOREMOVE = 3\par
Public Const HC_NOREM = HC_NOREMOVE\par
Public Const HC_SYSMODALON = 4\par
Public Const HC_SYSMODALOFF = 5\par
\par
' CBT Hook Codes\par
Public Const HCBT_MOVESIZE = 0\par
Public Const HCBT_MINMAX = 1\par
Public Const HCBT_QS = 2\par
Public Const HCBT_CREATEWND = 3\par
Public Const HCBT_DESTROYWND = 4\par
Public Const HCBT_ACTIVATE = 5\par
Public Const HCBT_CLICKSKIPPED = 6\par
Public Const HCBT_KEYSKIPPED = 7\par
Public Const HCBT_SYSCOMMAND = 8\par
Public Const HCBT_SETFOCUS = 9\par
\par
' HCBT_ACTIVATE structure pointed to by lParam\par
Type CBTACTIVATESTRUCT\par
fMouse As Long\par
hWndActive As Long\par
End Type\par
\par
' WH_MSGFILTER Filter Proc Codes\par
Public Const MSGF_DIALOGBOX = 0\par
Public Const MSGF_MESSAGEBOX = 1\par
Public Const MSGF_MENU = 2\par
Public Const MSGF_MOVE = 3\par
Public Const MSGF_SIZE = 4\par
Public Const MSGF_SCROLLBAR = 5\par
Public Const MSGF_NEXTWINDOW = 6\par
Public Const MSGF_MAINLOOP = 8\par
Public Const MSGF_MAX = 8\par
Public Const MSGF_USER = 4096\par
\par
Public Const HSHELL_WINDOWCREATED = 1\par
Public Const HSHELL_WINDOWDESTROYED = 2\par
Public Const HSHELL_ACTIVATESHELLWINDOW = 3\par
\par
' Message Structure used in Journaling\par
Type EVENTMSG\par
message As Long\par
paramL As Long\par
paramH As Long\par
time As Long\par
hwnd As Long\par
End Type\par
\par
Type CWPSTRUCT\par
lParam As Long\par
wParam As Integer\par
message As Long\par
hwnd As Long\par
End Type\par
\par
Type DEBUGHOOKINFO\par
hModuleHook As Long\par
Reserved As Long\par
lParam As Long\par
wParam As Long\par
code As Long\par
End Type\par
\par
\par
Type MOUSEHOOKSTRUCT\par
pt As POINTAPI\par
hwnd As Long\par
wHitTestCode As Long\par
dwExtraInfo As Long\par
End Type\par
\par
' Keyboard Layout API\par
Public Const HKL_PREV = 0\par
Public Const HKL_NEXT = 1\par
\par
Public Const KLF_ACTIVATE = &H1\par
Public Const KLF_SUBSTITUTE_OK = &H2\par
Public Const KLF_UNLOADPREVIOUS = &H4\par
Public Const KLF_REORDER = &H8\par
\par
' Size of KeyboardLayoutName (number of characters), including nul terminator\par
Public Const KL_NAMELENGTH = 9\par
\par
Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long\par
Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long\par
Declare Function UnloadKeyboardLayout Lib "user32" Alias "UnloadKeyboardLayout" (ByVal HKL As Long) As Long\par
Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long\par
\par
' Desktop-specific access flags\par
Public Const DESKTOP_READOBJECTS = &H1&\par
Public Const DESKTOP_CREATEWINDOW = &H2&\par
Public Const DESKTOP_CREATEMENU = &H4&\par
Public Const DESKTOP_HOOKCONTROL = &H8&\par
Public Const DESKTOP_JOURNALRECORD = &H10&\par
Public Const DESKTOP_JOURNALPLAYBACK = &H20&\par
Public Const DESKTOP_ENUMERATE = &H40&\par
Public Const DESKTOP_WRITEOBJECTS = &H80&\par
\par
Declare Function GetThreadDesktop Lib "user32" Alias "GetThreadDesktop" (ByVal dwThread As Long) As Long\par
\par
' Windowstation-specific access flags\par
Public Const WINSTA_ENUMDESKTOPS = &H1&\par
Public Const WINSTA_READATTRIBUTES = &H2&\par
Public Const WINSTA_ACCESSCLIPBOARD = &H4&\par
Public Const WINSTA_CREATEDESKTOP = &H8&\par
Public Const WINSTA_WRITEATTRIBUTES = &H10&\par
Public Const WINSTA_ACCESSPUBLICATOMS = &H20&\par
Public Const WINSTA_EXITWINDOWS = &H40&\par
Public Const WINSTA_ENUMERATE = &H100&\par
Public Const WINSTA_READSCREEN = &H200&\par
\par
Declare Function GetProcessWindowStation Lib "user32" Alias "GetProcessWindowStation" () As Long\par
Declare Function SetUserObjectSecurity Lib "user32" Alias "SetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR) As Long\par
Declare Function GetUserObjectSecurity Lib "user32" Alias "GetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR, ByVal nLength As Long, lpnLengthNeeded As Long) As Long\par
\par
' Message structure\par
\par
' Window field offsets for GetWindowLong() and GetWindowWord()\par
Public Const GWL_WNDPROC = (-4)\par
Public Const GWL_HINSTANCE = (-6)\par
Public Const GWL_HWNDPARENT = (-8)\par
Public Const GWL_STYLE = (-16)\par
Public Const GWL_EXSTYLE = (-20)\par
Public Const GWL_USERDATA = (-21)\par
Public Const GWL_ID = (-12)\par
\par
' Class field offsets for GetClassLong() and GetClassWord()\par
Public Const GCL_MENUNAME = (-8)\par
Public Const GCL_HBRBACKGROUND = (-10)\par
Public Const GCL_HCURSOR = (-12)\par
Public Const GCL_HICON = (-14)\par
Public Const GCL_HMODULE = (-16)\par
Public Const GCL_CBWNDEXTRA = (-18)\par
Public Const GCL_CBCLSEXTRA = (-20)\par
Public Const GCL_WNDPROC = (-24)\par
Public Const GCL_STYLE = (-26)\par
Public Const GCW_ATOM = (-32)\par
\par
' Window Messages\par
Public Const WM_NULL = &H0\par
Public Const WM_CREATE = &H1\par
Public Const WM_DESTROY = &H2\par
Public Const WM_MOVE = &H3\par
Public Const WM_SIZE = &H5\par
\par
Public Const WM_ACTIVATE = &H6\par
'\par
' WM_ACTIVATE state values\par
\par
Public Const WA_INACTIVE = 0\par
Public Const WA_ACTIVE = 1\par
Public Const WA_CLICKACTIVE = 2\par
\par
Public Const WM_SETFOCUS = &H7\par
Public Const WM_KILLFOCUS = &H8\par
Public Const WM_ENABLE = &HA\par
Public Const WM_SETREDRAW = &HB\par
Public Const WM_SETTEXT = &HC\par
Public Const WM_GETTEXT = &HD\par
Public Const WM_GETTEXTLENGTH = &HE\par
Public Const WM_PAINT = &HF\par
Public Const WM_CLOSE = &H10\par
Public Const WM_QUERYENDSESSION = &H11\par
Public Const WM_QUIT = &H12\par
Public Const WM_QUERYOPEN = &H13\par
Public Const WM_ERASEBKGND = &H14\par
Public Const WM_SYSCOLORCHANGE = &H15\par
Public Const WM_ENDSESSION = &H16\par
Public Const WM_SHOWWINDOW = &H18\par
Public Const WM_WININICHANGE = &H1A\par
Public Const WM_DEVMODECHANGE = &H1B\par
Public Const WM_ACTIVATEAPP = &H1C\par
Public Const WM_FONTCHANGE = &H1D\par
Public Const WM_TIMECHANGE = &H1E\par
Public Const WM_CANCELMODE = &H1F\par
Public Const WM_SETCURSOR = &H20\par
Public Const WM_MOUSEACTIVATE = &H21\par
Public Const WM_CHILDACTIVATE = &H22\par
Public Const WM_QUEUESYNC = &H23\par
\par
Public Const WM_GETMINMAXINFO = &H24\par
\par
Type MINMAXINFO\par
ptReserved As POINTAPI\par
ptMaxSize As POINTAPI\par
ptMaxPosition As POINTAPI\par
ptMinTrackSize As POINTAPI\par
ptMaxTrackSize As POINTAPI\par
End Type\par
\par
Public Const WM_PAINTICON = &H26\par
Public Const WM_ICONERASEBKGND = &H27\par
Public Const WM_NEXTDLGCTL = &H28\par
Public Const WM_SPOOLERSTATUS = &H2A\par
Public Const WM_DRAWITEM = &H2B\par
Public Const WM_MEASUREITEM = &H2C\par
Public Const WM_DELETEITEM = &H2D\par
Public Const WM_VKEYTOITEM = &H2E\par
Public Const WM_CHARTOITEM = &H2F\par
Public Const WM_SETFONT = &H30\par
Public Const WM_GETFONT = &H31\par
Public Const WM_SETHOTKEY = &H32\par
Public Const WM_GETHOTKEY = &H33\par
Public Const WM_QUERYDRAGICON = &H37\par
Public Const WM_COMPAREITEM = &H39\par
Public Const WM_COMPACTING = &H41\par
Public Const WM_OTHERWINDOWCREATED = &H42 ' no longer suported\par
Public Const WM_OTHERWINDOWDESTROYED = &H43 ' no longer suported\par
Public Const WM_COMMNOTIFY = &H44 ' no longer suported\par
\par
' notifications passed in low word of lParam on WM_COMMNOTIFY messages\par
Public Const CN_RECEIVE = &H1\par
Public Const CN_TRANSMIT = &H2\par
Public Const CN_EVENT = &H4\par
\par
Public Const WM_WINDOWPOSCHANGING = &H46\par
Public Const WM_WINDOWPOSCHANGED = &H47\par
\par
Public Const WM_POWER = &H48\par
'\par
' wParam for WM_POWER window message and DRV_POWER driver notification\par
\par
Public Const PWR_OK = 1\par
Public Const PWR_FAIL = (-1)\par
Public Const PWR_SUSPENDREQUEST = 1\par
Public Const PWR_SUSPENDRESUME = 2\par
Public Const PWR_CRITICALRESUME = 3\par
\par
Public Const WM_COPYDATA = &H4A\par
Public Const WM_CANCELJOURNAL = &H4B\par
\par
Type COPYDATASTRUCT\par
dwData As Long\par
cbData As Long\par
lpData As Long\par
End Type\par
\par
Public Const WM_NCCREATE = &H81\par
Public Const WM_NCDESTROY = &H82\par
Public Const WM_NCCALCSIZE = &H83\par
Public Const WM_NCHITTEST = &H84\par
Public Const WM_NCPAINT = &H85\par
Public Const WM_NCACTIVATE = &H86\par
Public Const WM_GETDLGCODE = &H87\par
Public Const WM_NCMOUSEMOVE = &HA0\par
Public Const WM_NCLBUTTONDOWN = &HA1\par
Public Const WM_NCLBUTTONUP = &HA2\par
Public Const WM_NCLBUTTONDBLCLK = &HA3\par
Public Const WM_NCRBUTTONDOWN = &HA4\par
Public Const WM_NCRBUTTONUP = &HA5\par
Public Const WM_NCRBUTTONDBLCLK = &HA6\par
Public Const WM_NCMBUTTONDOWN = &HA7\par
Public Const WM_NCMBUTTONUP = &HA8\par
Public Const WM_NCMBUTTONDBLCLK = &HA9\par
\par
Public Const WM_KEYFIRST = &H100\par
Public Const WM_KEYDOWN = &H100\par
Public Const WM_KEYUP = &H101\par
Public Const WM_CHAR = &H102\par
Public Const WM_DEADCHAR = &H103\par
Public Const WM_SYSKEYDOWN = &H104\par
Public Const WM_SYSKEYUP = &H105\par
Public Const WM_SYSCHAR = &H106\par
Public Const WM_SYSDEADCHAR = &H107\par
Public Const WM_KEYLAST = &H108\par
Public Const WM_INITDIALOG = &H110\par
Public Const WM_COMMAND = &H111\par
Public Const WM_SYSCOMMAND = &H112\par
Public Const WM_TIMER = &H113\par
Public Const WM_HSCROLL = &H114\par
Public Const WM_VSCROLL = &H115\par
Public Const WM_INITMENU = &H116\par
Public Const WM_INITMENUPOPUP = &H117\par
Public Const WM_MENUSELECT = &H11F\par
Public Const WM_MENUCHAR = &H120\par
Public Const WM_ENTERIDLE = &H121\par
\par
Public Const WM_CTLCOLORMSGBOX = &H132\par
Public Const WM_CTLCOLOREDIT = &H133\par
Public Const WM_CTLCOLORLISTBOX = &H134\par
Public Const WM_CTLCOLORBTN = &H135\par
Public Const WM_CTLCOLORDLG = &H136\par
Public Const WM_CTLCOLORSCROLLBAR = &H137\par
Public Const WM_CTLCOLORSTATIC = &H138\par
\par
Public Const WM_MOUSEFIRST = &H200\par
Public Const WM_MOUSEMOVE = &H200\par
Public Const WM_LBUTTONDOWN = &H201\par
Public Const WM_LBUTTONUP = &H202\par
Public Const WM_LBUTTONDBLCLK = &H203\par
Public Const WM_RBUTTONDOWN = &H204\par
Public Const WM_RBUTTONUP = &H205\par
Public Const WM_RBUTTONDBLCLK = &H206\par
Public Const WM_MBUTTONDOWN = &H207\par
Public Const WM_MBUTTONUP = &H208\par
Public Const WM_MBUTTONDBLCLK = &H209\par
Public Const WM_MOUSELAST = &H209\par
\par
Public Const WM_PARENTNOTIFY = &H210\par
Public Const WM_ENTERMENULOOP = &H211\par
Public Const WM_EXITMENULOOP = &H212\par
Public Const WM_MDICREATE = &H220\par
Public Const WM_MDIDESTROY = &H221\par
Public Const WM_MDIACTIVATE = &H222\par
Public Const WM_MDIRESTORE = &H223\par
Public Const WM_MDINEXT = &H224\par
Public Const WM_MDIMAXIMIZE = &H225\par
Public Const WM_MDITILE = &H226\par
Public Const WM_MDICASCADE = &H227\par
Public Const WM_MDIICONARRANGE = &H228\par
Public Const WM_MDIGETACTIVE = &H229\par
Public Const WM_MDISETMENU = &H230\par
Public Const WM_DROPFILES = &H233\par
Public Const WM_MDIREFRESHMENU = &H234\par
\par
\par
Public Const WM_CUT = &H300\par
Public Const WM_COPY = &H301\par
Public Const WM_PASTE = &H302\par
Public Const WM_CLEAR = &H303\par
Public Const WM_UNDO = &H304\par
Public Const WM_RENDERFORMAT = &H305\par
Public Const WM_RENDERALLFORMATS = &H306\par
Public Const WM_DESTROYCLIPBOARD = &H307\par
Public Const WM_DRAWCLIPBOARD = &H308\par
Public Const WM_PAINTCLIPBOARD = &H309\par
Public Const WM_VSCROLLCLIPBOARD = &H30A\par
Public Const WM_SIZECLIPBOARD = &H30B\par
Public Const WM_ASKCBFORMATNAME = &H30C\par
Public Const WM_CHANGECBCHAIN = &H30D\par
Public Const WM_HSCROLLCLIPBOARD = &H30E\par
Public Const WM_QUERYNEWPALETTE = &H30F\par
Public Const WM_PALETTEISCHANGING = &H310\par
Public Const WM_PALETTECHANGED = &H311\par
Public Const WM_HOTKEY = &H312\par
\par
Public Const WM_PENWINFIRST = &H380\par
Public Const WM_PENWINLAST = &H38F\par
\par
' NOTE: All Message Numbers below 0x0400 are RESERVED.\par
\par
' Private Window Messages Start Here:\par
Public Const WM_USER = &H400\par
\par
' WM_SYNCTASK Commands\par
Public Const ST_BEGINSWP = 0\par
Public Const ST_ENDSWP = 1\par
\par
' WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes\par
Public Const HTERROR = (-2)\par
Public Const HTTRANSPARENT = (-1)\par
Public Const HTNOWHERE = 0\par
Public Const HTCLIENT = 1\par
Public Const HTCAPTION = 2\par
Public Const HTSYSMENU = 3\par
Public Const HTGROWBOX = 4\par
Public Const HTSIZE = HTGROWBOX\par
Public Const HTMENU = 5\par
Public Const HTHSCROLL = 6\par
Public Const HTVSCROLL = 7\par
Public Const HTMINBUTTON = 8\par
Public Const HTMAXBUTTON = 9\par
Public Const HTLEFT = 10\par
Public Const HTRIGHT = 11\par
Public Const HTTOP = 12\par
Public Const HTTOPLEFT = 13\par
Public Const HTTOPRIGHT = 14\par
Public Const HTBOTTOM = 15\par
Public Const HTBOTTOMLEFT = 16\par
Public Const HTBOTTOMRIGHT = 17\par
Public Const HTBORDER = 18\par
Public Const HTREDUCE = HTMINBUTTON\par
Public Const HTZOOM = HTMAXBUTTON\par
Public Const HTSIZEFIRST = HTLEFT\par
Public Const HTSIZELAST = HTBOTTOMRIGHT\par
\par
' SendMessageTimeout values\par
Public Const SMTO_NORMAL = &H0\par
Public Const SMTO_BLOCK = &H1\par
Public Const SMTO_ABORTIFHUNG = &H2\par
\par
' WM_MOUSEACTIVATE Return Codes\par
Public Const MA_ACTIVATE = 1\par
Public Const MA_ACTIVATEANDEAT = 2\par
Public Const MA_NOACTIVATE = 3\par
Public Const MA_NOACTIVATEANDEAT = 4\par
\par
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long\par
\par
' WM_SIZE message wParam values\par
Public Const SIZE_RESTORED = 0\par
Public Const SIZE_MINIMIZED = 1\par
Public Const SIZE_MAXIMIZED = 2\par
Public Const SIZE_MAXSHOW = 3\par
Public Const SIZE_MAXHIDE = 4\par
\par
' Obsolete constant names\par
Public Const SIZENORMAL = SIZE_RESTORED\par
Public Const SIZEICONIC = SIZE_MINIMIZED\par
Public Const SIZEFULLSCREEN = SIZE_MAXIMIZED\par
Public Const SIZEZOOMSHOW = SIZE_MAXSHOW\par
Public Const SIZEZOOMHIDE = SIZE_MAXHIDE\par
\par
' WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam\par
Type WINDOWPOS\par
hwnd As Long\par
hWndInsertAfter As Long\par
x As Long\par
y As Long\par
cx As Long\par
cy As Long\par
flags As Long\par
End Type\par
\par
' WM_NCCALCSIZE return flags\par
Public Const WVR_ALIGNTOP = &H10\par
Public Const WVR_ALIGNLEFT = &H20\par
Public Const WVR_ALIGNBOTTOM = &H40\par
Public Const WVR_ALIGNRIGHT = &H80\par
Public Const WVR_HREDRAW = &H100\par
Public Const WVR_VREDRAW = &H200\par
Public Const WVR_REDRAW = (WVR_HREDRAW Or WVR_VREDRAW)\par
Public Const WVR_VALIDRECTS = &H400\par
\par
' Key State Masks for Mouse Messages\par
Public Const MK_LBUTTON = &H1\par
Public Const MK_RBUTTON = &H2\par
Public Const MK_SHIFT = &H4\par
Public Const MK_CONTROL = &H8\par
Public Const MK_MBUTTON = &H10\par
\par
' Window Styles\par
Public Const WS_OVERLAPPED = &H0&\par
Public Const WS_POPUP = &H80000000\par
Public Const WS_CHILD = &H40000000\par
Public Const WS_MINIMIZE = &H20000000\par
Public Const WS_VISIBLE = &H10000000\par
Public Const WS_DISABLED = &H8000000\par
Public Const WS_CLIPSIBLINGS = &H4000000\par
Public Const WS_CLIPCHILDREN = &H2000000\par
Public Const WS_MAXIMIZE = &H1000000\par
Public Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME\par
Public Const WS_BORDER = &H800000\par
Public Const WS_DLGFRAME = &H400000\par
Public Const WS_VSCROLL = &H200000\par
Public Const WS_HSCROLL = &H100000\par
Public Const WS_SYSMENU = &H80000\par
Public Const WS_THICKFRAME = &H40000\par
Public Const WS_GROUP = &H20000\par
Public Const WS_TABSTOP = &H10000\par
\par
Public Const WS_MINIMIZEBOX = &H20000\par
Public Const WS_MAXIMIZEBOX = &H10000\par
\par
Public Const WS_TILED = WS_OVERLAPPED\par
Public Const WS_ICONIC = WS_MINIMIZE\par
Public Const WS_SIZEBOX = WS_THICKFRAME\par
Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)\par
Public Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW\par
\par
'\par
' Common Window Styles\par
' /\par
\par
\par
Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)\par
\par
Public Const WS_CHILDWINDOW = (WS_CHILD)\par
\par
' Extended Window Styles\par
Public Const WS_EX_DLGMODALFRAME = &H1&\par
Public Const WS_EX_NOPARENTNOTIFY = &H4&\par
Public Const WS_EX_TOPMOST = &H8&\par
Public Const WS_EX_ACCEPTFILES = &H10&\par
Public Const WS_EX_TRANSPARENT = &H20&\par
\par
' Class styles\par
Public Const CS_VREDRAW = &H1\par
Public Const CS_HREDRAW = &H2\par
Public Const CS_KEYCVTWINDOW = &H4\par
Public Const CS_DBLCLKS = &H8\par
Public Const CS_OWNDC = &H20\par
Public Const CS_CLASSDC = &H40\par
Public Const CS_PARENTDC = &H80\par
Public Const CS_NOKEYCVT = &H100\par
Public Const CS_NOCLOSE = &H200\par
Public Const CS_SAVEBITS = &H800\par
Public Const CS_BYTEALIGNCLIENT = &H1000\par
Public Const CS_BYTEALIGNWINDOW = &H2000\par
Public Const CS_PUBLICCLASS = &H4000\par
\par
' Predefined Clipboard Formats\par
Public Const CF_TEXT = 1\par
Public Const CF_BITMAP = 2\par
Public Const CF_METAFILEPICT = 3\par
Public Const CF_SYLK = 4\par
Public Const CF_DIF = 5\par
Public Const CF_TIFF = 6\par
Public Const CF_OEMTEXT = 7\par
Public Const CF_DIB = 8\par
Public Const CF_PALETTE = 9\par
Public Const CF_PENDATA = 10\par
Public Const CF_RIFF = 11\par
Public Const CF_WAVE = 12\par
Public Const CF_UNICODETEXT = 13\par
Public Const CF_ENHMETAFILE = 14\par
\par
Public Const CF_OWNERDISPLAY = &H80\par
Public Const CF_DSPTEXT = &H81\par
Public Const CF_DSPBITMAP = &H82\par
Public Const CF_DSPMETAFILEPICT = &H83\par
Public Const CF_DSPENHMETAFILE = &H8E\par
\par
' "Private" formats don't get GlobalFree()'d\par
Public Const CF_PRIVATEFIRST = &H200\par
Public Const CF_PRIVATELAST = &H2FF\par
\par
' "GDIOBJ" formats do get DeleteObject()'d\par
Public Const CF_GDIOBJFIRST = &H300\par
Public Const CF_GDIOBJLAST = &H3FF\par
\par
' Defines for the fVirt field of the Accelerator table structure.\par
Public Const FVIRTKEY = True ' Assumed to be == TRUE\par
Public Const FNOINVERT = &H2\par
Public Const FSHIFT = &H4\par
Public Const FCONTROL = &H8\par
Public Const FALT = &H10\par
\par
Type ACCEL\par
fVirt As Byte\par
key As Integer\par
cmd As Integer\par
End Type\par
\par
Type PAINTSTRUCT\par
hdc As Long\par
fErase As Long\par
rcPaint As Rect\par
fRestore As Long\par
fIncUpdate As Long\par
rgbReserved(31) As Byte\par
End Type\par
\par
Type CREATESTRUCT\par
lpCreateParams As Long\par
hInstance As Long\par
hMenu As Long\par
hWndParent As Long\par
cy As Long\par
cx As Long\par
y As Long\par
x As Long\par
style As Long\par
lpszName As String\par
lpszClass As String\par
ExStyle As Long\par
End Type\par
\par
' HCBT_CREATEWND parameters pointed to by lParam\par
Type CBT_CREATEWND\par
lpcs As CREATESTRUCT\par
hWndInsertAfter As Long\par
End Type\par
\par
Type WINDOWPLACEMENT\par
Length As Long\par
flags As Long\par
showCmd As Long\par
ptMinPosition As POINTAPI\par
ptMaxPosition As POINTAPI\par
rcNormalPosition As RECT\par
End Type\par
\par
Public Const WPF_SETMINPOSITION = &H1\par
Public Const WPF_RESTORETOMAXIMIZED = &H2\par
\par
' Owner draw control types\par
Public Const ODT_MENU = 1\par
Public Const ODT_LISTBOX = 2\par
Public Const ODT_COMBOBOX = 3\par
Public Const ODT_BUTTON = 4\par
\par
' Owner draw actions\par
Public Const ODA_DRAWENTIRE = &H1\par
Public Const ODA_SELECT = &H2\par
Public Const ODA_FOCUS = &H4\par
\par
' Owner draw state\par
Public Const ODS_SELECTED = &H1\par
Public Const ODS_GRAYED = &H2\par
Public Const ODS_DISABLED = &H4\par
Public Const ODS_CHECKED = &H8\par
Public Const ODS_FOCUS = &H10\par
\par
' MEASUREITEMSTRUCT for ownerdraw\par
Type MEASUREITEMSTRUCT\par
CtlType As Long\par
CtlID As Long\par
itemID As Long\par
itemWidth As Long\par
itemHeight As Long\par
itemData As Long\par
End Type\par
\par
' DRAWITEMSTRUCT for ownerdraw\par
Type DRAWITEMSTRUCT\par
CtlType As Long\par
CtlID As Long\par
itemID As Long\par
itemAction As Long\par
itemState As Long\par
hwndItem As Long\par
hdc As Long\par
rcItem As Rect\par
itemData As Long\par
End Type\par
\par
' DELETEITEMSTRUCT for ownerdraw\par
Type DELETEITEMSTRUCT\par
CtlType As Long\par
CtlID As Long\par
itemID As Long\par
hwndItem As Long\par
itemData As Long\par
End Type\par
\par
' COMPAREITEMSTRUCT for ownerdraw sorting\par
Type COMPAREITEMSTRUCT\par
CtlType As Long\par
CtlID As Long\par
hwndItem As Long\par
itemID1 As Long\par
itemData1 As Long\par
itemID2 As Long\par
itemData2 As Long\par
End Type\par
\par
' Message Function Templates\par
Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long\par
Declare Function TranslateMessage Lib "user32" Alias "TranslateMessage" (lpMsg As MSG) As Long\par
Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long\par
Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long\par
\par
' PeekMessage() Options\par
Public Const PM_NOREMOVE = &H0\par
Public Const PM_REMOVE = &H1\par
Public Const PM_NOYIELD = &H2\par
\par
Declare Function RegisterHotKey Lib "user32" Alias "RegisterHotKey" (ByVal hwnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long\par
Declare Function UnregisterHotKey Lib "user32" Alias "UnregisterHotKey" (ByVal hwnd As Long, ByVal id As Long) As Long\par
\par
Public Const MOD_ALT = &H1\par
Public Const MOD_CONTROL = &H2\par
Public Const MOD_SHIFT = &H4\par
\par
Public Const IDHOT_SNAPWINDOW = (-1) ' SHIFT-PRINTSCRN\par
Public Const IDHOT_SNAPDESKTOP = (-2) ' PRINTSCRN\par
\par
Public Const EWX_LOGOFF = 0\par
Public Const EWX_SHUTDOWN = 1\par
Public Const EWX_REBOOT = 2\par
Public Const EWX_FORCE = 4\par
\par
Public Const READAPI = 0 ' Flags for _lopen\par
Public Const WRITEAPI = 1\par
Public Const READ_WRITE = 2\par
\par
Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long\par
Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long\par
\par
Declare Function SwapMouseButton Lib "user32" Alias "SwapMouseButton" (ByVal bSwap As Long) As Long\par
Declare Function GetMessagePos Lib "user32" Alias "GetMessagePos" () As Long\par
Declare Function GetMessageTime Lib "user32" Alias "GetMessageTime" () As Long\par
Declare Function GetMessageExtraInfo Lib "user32" Alias "GetMessageExtraInfo" () As Long\par
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long\par
Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long\par
Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long\par
Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long\par
Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long\par
Declare Function PostMessageBynum Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function PostMessageByString Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long\par
Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
\par
' Special HWND value for use with PostMessage and SendMessage\par
Public Const HWND_BROADCAST = -1\par
\par
\par
Type WNDCLASS\par
style As Long\par
lpfnwndproc As Long\par
cbClsextra As Long\par
cbWndExtra2 As Long\par
hInstance As Long\par
hIcon As Long\par
hCursor As Long\par
hbrBackground As Long\par
lpszMenuName As Long\par
lpszClassName As Long\par
End Type\par
\par
Type WNDCLASSEX\par
\tab cbSize As Long\par
style As Long\par
lpfnwndproc As Long\par
cbClsextra As Long\par
cbWndExtra2 As Long\par
hInstance As Long\par
hIcon As Long\par
hCursor As Long\par
hbrBackground As Long\par
lpszMenuName As Long\par
lpszClassName As Long\par
\tab hIconSm As Long\par
End Type\par
\par
\par
Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long\par
Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lReply As Long) As Long\par
Declare Function WaitMessage Lib "user32" Alias "WaitMessage" () As Long\par
Declare Function WaitForInputIdle Lib "user32" Alias "WaitForInputIdle" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long\par
Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long\par
Declare Sub PostQuitMessage Lib "user32" Alias "PostQuitMessage" (ByVal nExitCode As Long)\par
Declare Function InSendMessage Lib "user32" Alias "InSendMessage" () As Long\par
\par
Declare Function GetDoubleClickTime Lib "user32" Alias "GetDoubleClickTime" () As Long\par
Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime" (ByVal wCount As Long) As Long\par
Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long\par
Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long\par
Declare Function GetClassInfo Lib "user32" Alias "GetClassInfoA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS) As Long\par
\par
Public Const CW_USEDEFAULT = &H80000000\par
Public Const HWND_DESKTOP = 0\par
\par
Declare Function CreateWindow Lib "user32" Alias "CreateWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long\par
Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long\par
Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long) As Long\par
Declare Function IsMenu Lib "user32" Alias "IsMenu" (ByVal hMenu As Long) As Long\par
Declare Function IsChild Lib "user32" Alias "IsChild" (ByVal hWndParent As Long, ByVal hwnd As Long) As Long\par
Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long\par
\par
Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long\par
Declare Function FlashWindow Lib "user32" Alias "FlashWindow" (ByVal hwnd As Long, ByVal bInvert As Long) As Long\par
Declare Function ShowOwnedPopups Lib "user32" Alias "ShowOwnedPopups" (ByVal hwnd As Long, ByVal fShow As Long) As Long\par
\par
Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long) As Long\par
Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long\par
Declare Function MoveWindow Lib "user32" Alias "MoveWindow" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long\par
Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long\par
Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long\par
Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long\par
\par
Declare Function BeginDeferWindowPos Lib "user32" Alias "BeginDeferWindowPos" (ByVal nNumWindows As Long) As Long\par
Declare Function DeferWindowPos Lib "user32" Alias "DeferWindowPos" (ByVal hWinPosInfo As Long, ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long\par
Declare Function EndDeferWindowPos Lib "user32" Alias "EndDeferWindowPos" (ByVal hWinPosInfo As Long) As Long\par
\par
Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal hwnd As Long) As Long\par
Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long\par
Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long\par
Declare Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As Long) As Long\par
Declare Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As Long) As Long\par
\par
' SetWindowPos Flags\par
Public Const SWP_NOSIZE = &H1\par
Public Const SWP_NOMOVE = &H2\par
Public Const SWP_NOZORDER = &H4\par
Public Const SWP_NOREDRAW = &H8\par
Public Const SWP_NOACTIVATE = &H10\par
Public Const SWP_FRAMECHANGED = &H20 ' The frame changed: send WM_NCCALCSIZE\par
Public Const SWP_SHOWWINDOW = &H40\par
Public Const SWP_HIDEWINDOW = &H80\par
Public Const SWP_NOCOPYBITS = &H100\par
Public Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering\par
\par
Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED\par
Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER\par
\par
' SetWindowPos() hwndInsertAfter values\par
Public Const HWND_TOP = 0\par
Public Const HWND_BOTTOM = 1\par
Public Const HWND_TOPMOST = -1\par
Public Const HWND_NOTOPMOST = -2\par
\par
Type DLGTEMPLATE\par
style As Long\par
dwExtendedStyle As Long\par
cdit As Integer\par
x As Integer\par
y As Integer\par
cx As Integer\par
cy As Integer\par
End Type\par
\par
Type DLGITEMTEMPLATE\par
style As Long\par
dwExtendedStyle As Long\par
x As Integer\par
y As Integer\par
cx As Integer\par
cy As Integer\par
id As Integer\par
End Type\par
\par
Declare Function EndDialog Lib "user32" Alias "EndDialog" (ByVal hDlg As Long, ByVal nResult As Long) As Long\par
Declare Function GetDlgItem Lib "user32" Alias "GetDlgItem" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long\par
Declare Function SetDlgItemInt Lib "user32" Alias "SetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wValue As Long, ByVal bSigned As Long) As Long\par
Declare Function GetDlgItemInt Lib "user32" Alias "GetDlgItemInt" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpTranslated As Long, ByVal bSigned As Long) As Long\par
Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long\par
Declare Function GetDlgItemText Lib "user32" Alias "GetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long\par
Declare Function CheckDlgButton Lib "user32" (ByVal hDlg As Long, ByVal nIDButton As Long, ByVal wCheck As Long) As Long\par
Declare Function CheckRadioButton Lib "user32" (ByVal hDlg As Long, ByVal nIDFirstButton As Long, ByVal nIDLastButton As Long, ByVal nIDCheckButton As Long) As Long\par
Declare Function IsDlgButtonChecked Lib "user32" Alias "IsDlgButtonChecked" (ByVal hDlg As Long, ByVal nIDButton As Long) As Long\par
Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function GetNextDlgGroupItem Lib "user32" Alias "GetNextDlgGroupItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long\par
Declare Function GetNextDlgTabItem Lib "user32" Alias "GetNextDlgTabItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long\par
Declare Function GetDlgCtrlID Lib "user32" Alias "GetDlgCtrlID" (ByVal hwnd As Long) As Long\par
Declare Function GetDialogBaseUnits Lib "user32" Alias "GetDialogBaseUnits" () As Long\par
Declare Function DefDlgProc Lib "user32" Alias "DefDlgProcA" (ByVal hDlg As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
\par
Public Const DLGWINDOWEXTRA = 30 ' Window extra bytes needed for private dialog classes\par
\par
Declare Function CallMsgFilter Lib "user32" Alias "CallMsgFilterA" (lpMsg As MSG, ByVal ncode As Long) As Long\par
\par
' Clipboard Manager Functions\par
Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long\par
Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long\par
Declare Function GetClipboardOwner Lib "user32" Alias "GetClipboardOwner" () As Long\par
Declare Function SetClipboardViewer Lib "user32" Alias "SetClipboardViewer" (ByVal hwnd As Long) As Long\par
Declare Function GetClipboardViewer Lib "user32" Alias "GetClipboardViewer" () As Long\par
Declare Function ChangeClipboardChain Lib "user32" Alias "ChangeClipboardChain" (ByVal hwnd As Long, ByVal hWndNext As Long) As Long\par
Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long\par
Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long\par
Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long\par
Declare Function CountClipboardFormats Lib "user32" Alias "CountClipboardFormats" () As Long\par
Declare Function EnumClipboardFormats Lib "user32" Alias "EnumClipboardFormats" (ByVal wFormat As Long) As Long\par
Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long\par
Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long\par
Declare Function IsClipboardFormatAvailable Lib "user32" Alias "IsClipboardFormatAvailable" (ByVal wFormat As Long) As Long\par
Declare Function GetPriorityClipboardFormat Lib "user32" Alias "GetPriorityClipboardFormat" (lpPriorityList As Long, ByVal nCount As Long) As Long\par
Declare Function GetOpenClipboardWindow Lib "user32" Alias "GetOpenClipboardWindow" () As Long\par
Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long\par
Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long\par
Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long\par
Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long\par
Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As Long\par
Declare Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long\par
Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As Long\par
Declare Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long\par
Declare Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As String) As Long\par
Declare Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As String, ByVal lpszCurrent As String) As Long\par
\par
' Language dependent Routines\par
Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long\par
Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long\par
Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long\par
Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long\par
\par
Declare Function SetFocusAPI Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long\par
Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long\par
Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long\par
\par
' Keyboard Information Routines\par
Declare Function GetKBCodePage Lib "user32" Alias "GetKBCodePage" () As Long\par
Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer\par
Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer\par
Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long\par
Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long\par
Declare Function GetKeyboardType Lib "user32" Alias "GetKeyboardType" (ByVal nTypeFlag As Long) As Long\par
Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long\par
\par
Declare Function ToAscii Lib "user32" Alias "ToAscii" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Integer, ByVal fuState As Long) As Long\par
Declare Function ToUnicode Lib "user32" Alias "ToUnicode" (ByVal wVirtKey As Long, ByVal wScanCode As Long, lpKeyState As Byte, ByVal pwszBuff As String, ByVal cchBuff As Long, ByVal wFlags As Long) As Long\par
\par
Declare Function OemKeyScan Lib "user32" Alias "OemKeyScan" (ByVal wOemChar As Integer) As Long\par
Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar As Byte) As Integer\par
\par
Public Const KEYEVENTF_EXTENDEDKEY = &H1\par
Public Const KEYEVENTF_KEYUP = &H2\par
\par
Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)\par
\par
Public Const MOUSEEVENTF_MOVE = &H1 ' mouse move\par
Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down\par
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up\par
Public Const MOUSEEVENTF_RIGHTDOWN = &H8 ' right button down\par
Public Const MOUSEEVENTF_RIGHTUP = &H10 ' right button up\par
Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 ' middle button down\par
Public Const MOUSEEVENTF_MIDDLEUP = &H40 ' middle button up\par
Public Const MOUSEEVENTF_ABSOLUTE = &H8000& ' absolute move\par
\par
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)\par
Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long\par
\par
Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long\par
Declare Function GetQueueStatus Lib "user32" Alias "GetQueueStatus" (ByVal fuFlags As Long) As Long\par
Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Long\par
Declare Function SetCapture Lib "user32" Alias "SetCapture" (ByVal hwnd As Long) As Long\par
Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long\par
\par
Declare Function MsgWaitForMultipleObjects Lib "user32" Alias "MsgWaitForMultipleObjects" (ByVal nCount As Long, pHandles As Long, ByVal fWaitAll As Long, ByVal dwMilliseconds As Long, ByVal dwWakeMask As Long) As Long\par
\par
' GetQueueStatus flags\par
Public Const QS_KEY = &H1\par
Public Const QS_MOUSEMOVE = &H2\par
Public Const QS_MOUSEBUTTON = &H4\par
Public Const QS_POSTMESSAGE = &H8\par
Public Const QS_TIMER = &H10\par
Public Const QS_PAINT = &H20\par
Public Const QS_SENDMESSAGE = &H40\par
Public Const QS_HOTKEY = &H80\par
\par
Public Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)\par
\par
Public Const QS_INPUT = (QS_MOUSE Or QS_KEY)\par
\par
Public Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY)\par
\par
Public Const QS_ALLINPUT = (QS_SENDMESSAGE Or QS_PAINT Or QS_TIMER Or QS_POSTMESSAGE Or QS_MOUSEBUTTON Or QS_MOUSEMOVE Or QS_HOTKEY Or QS_KEY)\par
\par
' Windows Functions\par
Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long\par
\par
Declare Function IsWindowUnicode Lib "user32" Alias "IsWindowUnicode" (ByVal hwnd As Long) As Long\par
\par
Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long\par
Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long\par
\par
Declare Function LoadAccelerators Lib "user32" Alias "LoadAcceleratorsA" (ByVal hInstance As Long, ByVal lpTableName As String) As Long\par
Declare Function CreateAcceleratorTable Lib "user32" Alias "CreateAcceleratorTableA" (lpaccl As ACCEL, ByVal cEntries As Long) As Long\par
Declare Function DestroyAcceleratorTable Lib "user32" Alias "DestroyAcceleratorTable" (ByVal haccel As Long) As Long\par
Declare Function CopyAcceleratorTable Lib "user32" Alias "CopyAcceleratorTableA" (ByVal hAccelSrc As Long, lpAccelDst As ACCEL, ByVal cAccelEntries As Long) As Long\par
Declare Function TranslateAccelerator Lib "user32" Alias "TranslateAcceleratorA" (ByVal hwnd As Long, ByVal hAccTable As Long, lpMsg As MSG) As Long\par
\par
' GetSystemMetrics() codes\par
Public Const SM_CXSCREEN = 0\par
Public Const SM_CYSCREEN = 1\par
Public Const SM_CXVSCROLL = 2\par
Public Const SM_CYHSCROLL = 3\par
Public Const SM_CYCAPTION = 4\par
Public Const SM_CXBORDER = 5\par
Public Const SM_CYBORDER = 6\par
Public Const SM_CXDLGFRAME = 7\par
Public Const SM_CYDLGFRAME = 8\par
Public Const SM_CYVTHUMB = 9\par
Public Const SM_CXHTHUMB = 10\par
Public Const SM_CXICON = 11\par
Public Const SM_CYICON = 12\par
Public Const SM_CXCURSOR = 13\par
Public Const SM_CYCURSOR = 14\par
Public Const SM_CYMENU = 15\par
Public Const SM_CXFULLSCREEN = 16\par
Public Const SM_CYFULLSCREEN = 17\par
Public Const SM_CYKANJIWINDOW = 18\par
Public Const SM_MOUSEPRESENT = 19\par
Public Const SM_CYVSCROLL = 20\par
Public Const SM_CXHSCROLL = 21\par
Public Const SM_DEBUG = 22\par
Public Const SM_SWAPBUTTON = 23\par
Public Const SM_RESERVED1 = 24\par
Public Const SM_RESERVED2 = 25\par
Public Const SM_RESERVED3 = 26\par
Public Const SM_RESERVED4 = 27\par
Public Const SM_CXMIN = 28\par
Public Const SM_CYMIN = 29\par
Public Const SM_CXSIZE = 30\par
Public Const SM_CYSIZE = 31\par
Public Const SM_CXFRAME = 32\par
Public Const SM_CYFRAME = 33\par
Public Const SM_CXMINTRACK = 34\par
Public Const SM_CYMINTRACK = 35\par
Public Const SM_CXDOUBLECLK = 36\par
Public Const SM_CYDOUBLECLK = 37\par
Public Const SM_CXICONSPACING = 38\par
Public Const SM_CYICONSPACING = 39\par
Public Const SM_MENUDROPALIGNMENT = 40\par
Public Const SM_PENWINDOWS = 41\par
Public Const SM_DBCSENABLED = 42\par
Public Const SM_CMOUSEBUTTONS = 43\par
Public Const SM_CMETRICS = 44\par
Public Const SM_ARRANGE = 56\par
Public Const SM_CLEANBOOT = 67\par
Public Const SM_CXDRAG = 68\par
Public Const SM_CXEDGE = 45\par
Public Const SM_CXFIXEDFRAME = SM_CXDLGFRAME\par
Public Const SM_CXMAXIMIZED = 61\par
Public Const SM_CXMAXTRACK = 59\par
Public Const SM_CXMENUCHECK = 71\par
Public Const SM_CXMENUSIZE = 54\par
Public Const SM_CXMINIMIZED = 57\par
Public Const SM_CXMINSPACING = 47\par
Public Const SM_CXSIZEFRAME = SM_CXFRAME\par
Public Const SM_CXSMICON = 49\par
Public Const SM_CXSMSIZE = 52\par
Public Const SM_CYDRAG = 69\par
Public Const SM_CYEDGE = 46\par
Public Const SM_CYFIXEDFRAME = SM_CYDLGFRAME\par
Public Const SM_CYMAXIMIZED = 62\par
Public Const SM_CYMAXTRACK = 60\par
Public Const SM_CYMENUCHECK = 72\par
Public Const SM_CYMENUSIZE = 55\par
Public Const SM_CYMINIMIZED = 58\par
Public Const SM_CYMINSPACING = 48\par
Public Const SM_CYSIZEFRAME = SM_CYFRAME\par
Public Const SM_CYSMCAPTION = 51\par
Public Const SM_CYSMICON = 50\par
Public Const SM_CYSMSIZE = 53\par
Public Const SM_MIDEASTENABLED = 74\par
Public Const SM_NETWORK = 63\par
Public Const SM_SECURE = 44\par
Public Const SM_SLOWMACHINE = 73\par
\par
Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long\par
\par
Declare Function LoadMenu Lib "user32" Alias "LoadMenuA" (ByVal hInstance As Long, ByVal lpString As String) As Long\par
Declare Function LoadMenuIndirect Lib "user32" Alias "LoadMenuIndirectA" (ByVal lpMenuTemplate As Long) As Long\par
Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long\par
Declare Function SetMenu Lib "user32" Alias "SetMenu" (ByVal hwnd As Long, ByVal hMenu As Long) As Long\par
Declare Function HiliteMenuItem Lib "user32" Alias "HiliteMenuItem" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal wIDHiliteItem As Long, ByVal wHilite As Long) As Long\par
Declare Function GetMenuString Lib "user32" Alias "GetMenuStringA" (ByVal hMenu As Long, ByVal wIDItem As Long, ByVal lpString As String, ByVal nMaxCount As Long, ByVal wFlag As Long) As Long\par
Declare Function GetMenuState Lib "user32" Alias "GetMenuState" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long\par
Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long\par
Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long\par
Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long\par
Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long\par
Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long\par
Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long\par
Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long\par
Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Long, ByVal nPos As Long) As Long\par
Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long\par
Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long\par
\par
Declare Function InsertMenu Lib "user32" Alias "InsertMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long\par
Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As String) As Long\par
Declare Function AppendMenuBynum Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Long) As Long\par
Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long\par
Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As String) As Long\par
Declare Function ModifyMenuBynum Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Long) As Long\par
Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long\par
Declare Function SetMenuItemBitmaps Lib "user32" Alias "SetMenuItemBitmaps" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long\par
Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long\par
Declare Function TrackPopupMenu Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, lprc As Rect) As Long\par
Declare Function TrackPopupMenuBynum Lib "user32" Alias "TrackPopupMenu" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal x As Long, ByVal y As Long, ByVal nReserved As Long, ByVal hwnd As Long, ByVal lprc As Long) As Long\par
\par
' Flags for TrackPopupMenu\par
Public Const TPM_LEFTBUTTON = &H0&\par
Public Const TPM_RIGHTBUTTON = &H2&\par
Public Const TPM_LEFTALIGN = &H0&\par
Public Const TPM_CENTERALIGN = &H4&\par
Public Const TPM_RIGHTALIGN = &H8&\par
\par
Declare Function DrawIcon Lib "user32" Alias "DrawIcon" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long\par
\par
' DrawText() Format Flags\par
Public Const DT_TOP = &H0\par
Public Const DT_LEFT = &H0\par
Public Const DT_CENTER = &H1\par
Public Const DT_RIGHT = &H2\par
Public Const DT_VCENTER = &H4\par
Public Const DT_BOTTOM = &H8\par
Public Const DT_WORDBREAK = &H10\par
Public Const DT_SINGLELINE = &H20\par
Public Const DT_EXPANDTABS = &H40\par
Public Const DT_TABSTOP = &H80\par
Public Const DT_NOCLIP = &H100\par
Public Const DT_EXTERNALLEADING = &H200\par
Public Const DT_CALCRECT = &H400\par
Public Const DT_NOPREFIX = &H800\par
Public Const DT_INTERNAL = &H1000\par
\par
Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long\par
Declare Function TabbedTextOut Lib "user32" Alias "TabbedTextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long, ByVal nTabOrigin As Long) As Long\par
Declare Function GetTabbedTextExtent Lib "user32" Alias "GetTabbedTextExtentA" (ByVal hdc As Long, ByVal lpString As String, ByVal nCount As Long, ByVal nTabPositions As Long, lpnTabStopPositions As Long) As Long\par
\par
Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long\par
Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long\par
Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long\par
Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long\par
Declare Function WindowFromDC Lib "user32" Alias "WindowFromDC" (ByVal hdc As Long) As Long\par
\par
Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long\par
Declare Function GetDCEx Lib "user32" Alias "GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long\par
\par
Public Const DCX_WINDOW = &H1&\par
Public Const DCX_CACHE = &H2&\par
Public Const DCX_NORESETATTRS = &H4&\par
Public Const DCX_CLIPCHILDREN = &H8&\par
Public Const DCX_CLIPSIBLINGS = &H10&\par
Public Const DCX_PARENTCLIP = &H20&\par
\par
Public Const DCX_EXCLUDERGN = &H40&\par
Public Const DCX_INTERSECTRGN = &H80&\par
\par
Public Const DCX_EXCLUDEUPDATE = &H100&\par
Public Const DCX_INTERSECTUPDATE = &H200&\par
\par
Public Const DCX_LOCKWINDOWUPDATE = &H400&\par
\par
Public Const DCX_NORECOMPUTE = &H100000\par
Public Const DCX_VALIDATE = &H200000\par
\par
Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long\par
Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long\par
\par
Declare Function BeginPaint Lib "user32" Alias "BeginPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long\par
Declare Function EndPaint Lib "user32" Alias "EndPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long\par
Declare Function GetUpdateRect Lib "user32" Alias "GetUpdateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long\par
Declare Function GetUpdateRgn Lib "user32" Alias "GetUpdateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal fErase As Long) As Long\par
Declare Function ExcludeUpdateRgn Lib "user32" Alias "ExcludeUpdateRgn" (ByVal hdc As Long, ByVal hwnd As Long) As Long\par
Declare Function InvalidateRect Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long\par
Declare Function InvalidateRectBynum Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, ByVal lpRect As Long, ByVal bErase As Long) As Long\par
Declare Function ValidateRect Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, lpRect As RECT) As Long\par
Declare Function ValidateRectBynum Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, ByVal lpRect As Long) As Long\par
Declare Function InvalidateRgn Lib "user32" Alias "InvalidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bErase As Long) As Long\par
Declare Function ValidateRgn Lib "user32" Alias "ValidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long) As Long\par
\par
Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long\par
\par
Public Const RDW_INVALIDATE = &H1\par
Public Const RDW_INTERNALPAINT = &H2\par
Public Const RDW_ERASE = &H4\par
\par
Public Const RDW_VALIDATE = &H8\par
Public Const RDW_NOINTERNALPAINT = &H10\par
Public Const RDW_NOERASE = &H20\par
\par
Public Const RDW_NOCHILDREN = &H40\par
Public Const RDW_ALLCHILDREN = &H80\par
\par
Public Const RDW_UPDATENOW = &H100\par
Public Const RDW_ERASENOW = &H200\par
\par
Public Const RDW_FRAME = &H400\par
Public Const RDW_NOFRAME = &H800\par
\par
Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock As Long) As Long\par
\par
Declare Function ScrollWindow Lib "user32" Alias "ScrollWindow" (ByVal hWnd As Long, ByVal XAmount As Long, ByVal YAmount As Long, lpRect As RECT, lpClipRect As RECT) As Long\par
Declare Function ScrollDC Lib "user32" Alias "ScrollDC" (ByVal hdc As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT) As Long\par
Declare Function ScrollWindowEx Lib "user32" Alias "ScrollWindowEx" (ByVal hwnd As Long, ByVal dx As Long, ByVal dy As Long, lprcScroll As RECT, lprcClip As RECT, ByVal hrgnUpdate As Long, lprcUpdate As RECT, ByVal fuScroll As Long) As Long\par
\par
Public Const SW_SCROLLCHILDREN = &H1\par
Public Const SW_INVALIDATE = &H2\par
Public Const SW_ERASE = &H4\par
\par
Declare Function SetScrollPos Lib "user32" Alias "SetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nPos As Long, ByVal bRedraw As Long) As Long\par
Declare Function GetScrollPos Lib "user32" Alias "GetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long) As Long\par
Declare Function SetScrollRange Lib "user32" Alias "SetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, ByVal nMinPos As Long, ByVal nMaxPos As Long, ByVal bRedraw As Long) As Long\par
Declare Function GetScrollRange Lib "user32" Alias "GetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long\par
Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long\par
Declare Function EnableScrollBar Lib "user32" Alias "EnableScrollBar" (ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long\par
\par
' EnableScrollBar() flags\par
Public Const ESB_ENABLE_BOTH = &H0\par
Public Const ESB_DISABLE_BOTH = &H3\par
\par
Public Const ESB_DISABLE_LEFT = &H1\par
Public Const ESB_DISABLE_RIGHT = &H2\par
\par
Public Const ESB_DISABLE_UP = &H1\par
Public Const ESB_DISABLE_DOWN = &H2\par
\par
Public Const ESB_DISABLE_LTUP = ESB_DISABLE_LEFT\par
Public Const ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT\par
\par
Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long\par
Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long\par
Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hwnd As Long, ByVal lpString As String) As Long\par
\par
Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long\par
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long\par
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long\par
\par
Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Long, lpRect As RECT) As Long\par
Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long\par
Declare Function AdjustWindowRect Lib "user32" (lpRect As RECT, ByVal dwStyle As Long, ByVal bMenu As Long) As Long\par
Declare Function AdjustWindowRectEx Lib "user32" Alias "AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByVal bMenu As Long, ByVal dwEsStyle As Long) As Long\par
\par
' MessageBox() Flags\par
Public Const MB_OK = &H0&\par
Public Const MB_OKCANCEL = &H1&\par
Public Const MB_ABORTRETRYIGNORE = &H2&\par
Public Const MB_YESNOCANCEL = &H3&\par
Public Const MB_YESNO = &H4&\par
Public Const MB_RETRYCANCEL = &H5&\par
\par
Public Const MB_ICONHAND = &H10&\par
Public Const MB_ICONQUESTION = &H20&\par
Public Const MB_ICONEXCLAMATION = &H30&\par
Public Const MB_ICONASTERISK = &H40&\par
\par
Public Const MB_ICONINFORMATION = MB_ICONASTERISK\par
Public Const MB_ICONSTOP = MB_ICONHAND\par
\par
Public Const MB_DEFBUTTON1 = &H0&\par
Public Const MB_DEFBUTTON2 = &H100&\par
Public Const MB_DEFBUTTON3 = &H200&\par
\par
Public Const MB_APPLMODAL = &H0&\par
Public Const MB_SYSTEMMODAL = &H1000&\par
Public Const MB_TASKMODAL = &H2000&\par
\par
Public Const MB_NOFOCUS = &H8000&\par
Public Const MB_SETFOREGROUND = &H10000\par
Public Const MB_DEFAULT_DESKTOP_ONLY = &H20000\par
\par
Public Const MB_TYPEMASK = &HF&\par
Public Const MB_ICONMASK = &HF0&\par
Public Const MB_DEFMASK = &HF00&\par
Public Const MB_MODEMASK = &H3000&\par
Public Const MB_MISCMASK = &HC000&\par
\par
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long\par
Declare Function MessageBoxEx Lib "user32" Alias "MessageBoxExA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long, ByVal wLanguageId As Long) As Long\par
Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long\par
\par
Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long\par
Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long\par
Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As Long) As Long\par
Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long\par
Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As RECT) As Long\par
Declare Function ClipCursorBynum Lib "user32" Alias "ClipCursor" (ByVal lpRect As Long) As Long\par
Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long\par
Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) As Long\par
\par
Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
Declare Function GetCaretBlinkTime Lib "user32" Alias "GetCaretBlinkTime" () As Long\par
Declare Function SetCaretBlinkTime Lib "user32" Alias "SetCaretBlinkTime" (ByVal wMSeconds As Long) As Long\par
Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long\par
Declare Function HideCaret Lib "user32" Alias "HideCaret" (ByVal hwnd As Long) As Long\par
Declare Function ShowCaret Lib "user32" Alias "ShowCaret" (ByVal hwnd As Long) As Long\par
Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Long, ByVal y As Long) As Long\par
Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI) As Long\par
\par
Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long\par
Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long\par
\par
Declare Function MapWindowPoints Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long\par
Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal X As Long, ByVal Y As Long) As Long\par
Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWnd As Long, ByVal X As Long, ByVal Y As Long) As Long\par
\par
' Color Types\par
Public Const CTLCOLOR_MSGBOX = 0\par
Public Const CTLCOLOR_EDIT = 1\par
Public Const CTLCOLOR_LISTBOX = 2\par
Public Const CTLCOLOR_BTN = 3\par
Public Const CTLCOLOR_DLG = 4\par
Public Const CTLCOLOR_SCROLLBAR = 5\par
Public Const CTLCOLOR_STATIC = 6\par
Public Const CTLCOLOR_MAX = 8 ' three bits max\par
\par
Public Const COLOR_SCROLLBAR = 0\par
Public Const COLOR_BACKGROUND = 1\par
Public Const COLOR_ACTIVECAPTION = 2\par
Public Const COLOR_INACTIVECAPTION = 3\par
Public Const COLOR_MENU = 4\par
Public Const COLOR_WINDOW = 5\par
Public Const COLOR_WINDOWFRAME = 6\par
Public Const COLOR_MENUTEXT = 7\par
Public Const COLOR_WINDOWTEXT = 8\par
Public Const COLOR_CAPTIONTEXT = 9\par
Public Const COLOR_ACTIVEBORDER = 10\par
Public Const COLOR_INACTIVEBORDER = 11\par
Public Const COLOR_APPWORKSPACE = 12\par
Public Const COLOR_HIGHLIGHT = 13\par
Public Const COLOR_HIGHLIGHTTEXT = 14\par
Public Const COLOR_BTNFACE = 15\par
Public Const COLOR_BTNSHADOW = 16\par
Public Const COLOR_GRAYTEXT = 17\par
Public Const COLOR_BTNTEXT = 18\par
Public Const COLOR_INACTIVECAPTIONTEXT = 19\par
Public Const COLOR_BTNHIGHLIGHT = 20\par
\par
Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex As Long) As Long\par
Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long\par
\par
Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long\par
Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long\par
Declare Function FrameRect Lib "user32" Alias "FrameRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long\par
Declare Function InvertRect Lib "user32" Alias "InvertRect" (ByVal hdc As Long, lpRect As RECT) As Long\par
Declare Function SetRect Lib "user32" Alias "SetRect" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long\par
Declare Function SetRectEmpty Lib "user32" Alias "SetRectEmpty" (lpRect As RECT) As Long\par
Declare Function CopyRect Lib "user32" Alias "CopyRect" (lpDestRect As RECT, lpSourceRect As RECT) As Long\par
Declare Function InflateRect Lib "user32" Alias "InflateRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function IntersectRect Lib "user32" Alias "IntersectRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long\par
Declare Function UnionRect Lib "user32" Alias "UnionRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long\par
Declare Function SubtractRect Lib "user32" Alias "SubtractRect" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Long\par
Declare Function OffsetRect Lib "user32" Alias "OffsetRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long\par
Declare Function IsRectEmpty Lib "user32" Alias "IsRectEmpty" (lpRect As RECT) As Long\par
Declare Function EqualRect Lib "user32" Alias "EqualRect" (lpRect1 As RECT, lpRect2 As RECT) As Long\par
Declare Function PtInRect Lib "user32" Alias "PtInRect" (lpRect As RECT, ByVal ptx As Long, ByVal pty As Long) As Long\par
\par
Declare Function GetWindowWord Lib "user32" Alias "GetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer\par
Declare Function SetWindowWord Lib "user32" Alias "SetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long\par
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long\par
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long\par
Declare Function GetClassWord Lib "user32" Alias "GetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Long\par
Declare Function SetClassWord Lib "user32" Alias "SetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long\par
Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long\par
Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long\par
Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long\par
\par
Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long\par
Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long\par
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long\par
\par
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long\par
Declare Function GetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long\par
Declare Function GetNextWindow Lib "user32" Alias "GetNextWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long\par
\par
Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long\par
\par
Declare Function GetLastActivePopup Lib "user32" Alias "GetLastActivePopup" (ByVal hwndOwnder As Long) As Long\par
\par
' GetWindow() Constants\par
Public Const GW_HWNDFIRST = 0\par
Public Const GW_HWNDLAST = 1\par
Public Const GW_HWNDNEXT = 2\par
Public Const GW_HWNDPREV = 3\par
Public Const GW_OWNER = 4\par
Public Const GW_CHILD = 5\par
Public Const GW_MAX = 5\par
\par
Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam&) As Long\par
Declare Function EnumThreadWindows Lib "user32" (ByVal dwThreadID As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long\par
Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long\par
Declare Function UnhookWindowsHookEx Lib "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As Long) As Long\par
Declare Function CallNextHookEx Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Integer, lParam As Any) As Long\par
\par
' Menu flags for Add/Check/EnableMenuItem()\par
Public Const MF_INSERT = &H0&\par
Public Const MF_CHANGE = &H80&\par
Public Const MF_APPEND = &H100&\par
Public Const MF_DELETE = &H200&\par
Public Const MF_REMOVE = &H1000&\par
\par
Public Const MF_BYCOMMAND = &H0&\par
Public Const MF_BYPOSITION = &H400&\par
\par
Public Const MF_SEPARATOR = &H800&\par
\par
Public Const MF_ENABLED = &H0&\par
Public Const MF_GRAYED = &H1&\par
Public Const MF_DISABLED = &H2&\par
\par
Public Const MF_UNCHECKED = &H0&\par
Public Const MF_CHECKED = &H8&\par
Public Const MF_USECHECKBITMAPS = &H200&\par
\par
Public Const MF_STRING = &H0&\par
Public Const MF_BITMAP = &H4&\par
Public Const MF_OWNERDRAW = &H100&\par
\par
Public Const MF_POPUP = &H10&\par
Public Const MF_MENUBARBREAK = &H20&\par
Public Const MF_MENUBREAK = &H40&\par
\par
Public Const MF_UNHILITE = &H0&\par
Public Const MF_HILITE = &H80&\par
\par
Public Const MF_SYSMENU = &H2000&\par
Public Const MF_HELP = &H4000&\par
Public Const MF_MOUSESELECT = &H8000&\par
\par
' Menu item resource format\par
Type MENUITEMTEMPLATEHEADER\par
versionNumber As Integer\par
offset As Integer\par
End Type\par
\par
Type MENUITEMTEMPLATE\par
mtOption As Integer\par
mtID As Integer\par
mtString As Byte\par
End Type\par
\par
Public Const MF_END = &H80\par
\par
' System Menu Command Values\par
Public Const SC_SIZE = &HF000&\par
Public Const SC_MOVE = &HF010&\par
Public Const SC_MINIMIZE = &HF020&\par
Public Const SC_MAXIMIZE = &HF030&\par
Public Const SC_NEXTWINDOW = &HF040&\par
Public Const SC_PREVWINDOW = &HF050&\par
Public Const SC_CLOSE = &HF060&\par
Public Const SC_VSCROLL = &HF070&\par
Public Const SC_HSCROLL = &HF080&\par
Public Const SC_MOUSEMENU = &HF090&\par
Public Const SC_KEYMENU = &HF100&\par
Public Const SC_ARRANGE = &HF110&\par
Public Const SC_RESTORE = &HF120&\par
Public Const SC_TASKLIST = &HF130&\par
Public Const SC_SCREENSAVE = &HF140&\par
Public Const SC_HOTKEY = &HF150&\par
\par
' Obsolete names\par
Public Const SC_ICON = SC_MINIMIZE\par
Public Const SC_ZOOM = SC_MAXIMIZE\par
\par
' Resource Loading Routines\par
Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long\par
Declare Function LoadBitmapBynum Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As Long) As Long\par
Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long\par
Declare Function LoadCursorBynum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long\par
Declare Function CreateCursor Lib "user32" Alias "CreateCursor" (ByVal hInstance As Long, ByVal nXhotspot As Long, ByVal nYhotspot As Long, ByVal nWidth As Long, ByVal nHeight As Long, lpANDbitPlane As Any, lpXORbitPlane As Any) As Long\par
Declare Function DestroyCursor Lib "user32" Alias "DestroyCursor" (ByVal hCursor As Long) As Long\par
Declare Function CopyCursor Lib "user32" Alias "CopyCursor" (ByVal hcur As Long) As Long\par
\par
' Standard Cursor IDs\par
Public Const IDC_ARROW = 32512&\par
Public Const IDC_IBEAM = 32513&\par
Public Const IDC_WAIT = 32514&\par
Public Const IDC_CROSS = 32515&\par
Public Const IDC_UPARROW = 32516&\par
Public Const IDC_SIZE = 32640&\par
Public Const IDC_ICON = 32641&\par
Public Const IDC_SIZENWSE = 32642&\par
Public Const IDC_SIZENESW = 32643&\par
Public Const IDC_SIZEWE = 32644&\par
Public Const IDC_SIZENS = 32645&\par
Public Const IDC_SIZEALL = 32646&\par
Public Const IDC_NO = 32648&\par
Public Const IDC_APPSTARTING = 32650&\par
\par
Type ICONINFO\par
fIcon As Long\par
xHotspot As Long\par
yHotspot As Long\par
hbmMask As Long\par
hbmColor As Long\par
End Type\par
\par
Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long\par
Declare Function LoadIconBynum Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As Long) As Long\par
Declare Function CreateIcon Lib "user32" Alias "CreateIcon" (ByVal hInstance As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Byte, ByVal nBitsPixel As Byte, lpANDbits As Byte, lpXORbits As Byte) As Long\par
Declare Function DestroyIcon Lib "user32" Alias "DestroyIcon" (ByVal hIcon As Long) As Long\par
Declare Function LookupIconIdFromDirectory Lib "user32" Alias "LookupIconIdFromDirectory" (presbits As Byte, ByVal fIcon As Long) As Long\par
Declare Function CreateIconFromResource Lib "user32" Alias "CreateIconFromResource" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long) As Long\par
Declare Function CreateIconFromResourceEx Lib "user32" Alias "CreateIconFromResourceEx" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long, ByVal cxDesired As Long, ByVal cyDesired As Long, ByVal uFlags As Long) As Long\par
Declare Function CreateIconIndirect Lib "user32" Alias "CreateIconIndirect" (piconinfo As ICONINFO) As Long\par
Declare Function CopyIcon Lib "user32" Alias "CopyIcon" (ByVal hIcon As Long) As Long\par
Declare Function GetIconInfo Lib "user32" Alias "GetIconInfo" (ByVal hIcon As Long, piconinfo As ICONINFO) As Long\par
\par
' OEM Resource Ordinal Numbers\par
Public Const OBM_CLOSE = 32754\par
Public Const OBM_UPARROW = 32753\par
Public Const OBM_DNARROW = 32752\par
Public Const OBM_RGARROW = 32751\par
Public Const OBM_LFARROW = 32750\par
Public Const OBM_REDUCE = 32749\par
Public Const OBM_ZOOM = 32748\par
Public Const OBM_RESTORE = 32747\par
Public Const OBM_REDUCED = 32746\par
Public Const OBM_ZOOMD = 32745\par
Public Const OBM_RESTORED = 32744\par
Public Const OBM_UPARROWD = 32743\par
Public Const OBM_DNARROWD = 32742\par
Public Const OBM_RGARROWD = 32741\par
Public Const OBM_LFARROWD = 32740\par
Public Const OBM_MNARROW = 32739\par
Public Const OBM_COMBO = 32738\par
Public Const OBM_UPARROWI = 32737\par
Public Const OBM_DNARROWI = 32736\par
Public Const OBM_RGARROWI = 32735\par
Public Const OBM_LFARROWI = 32734\par
\par
Public Const OBM_OLD_CLOSE = 32767\par
Public Const OBM_SIZE = 32766\par
Public Const OBM_OLD_UPARROW = 32765\par
Public Const OBM_OLD_DNARROW = 32764\par
Public Const OBM_OLD_RGARROW = 32763\par
Public Const OBM_OLD_LFARROW = 32762\par
Public Const OBM_BTSIZE = 32761\par
Public Const OBM_CHECK = 32760\par
Public Const OBM_CHECKBOXES = 32759\par
Public Const OBM_BTNCORNERS = 32758\par
Public Const OBM_OLD_REDUCE = 32757\par
Public Const OBM_OLD_ZOOM = 32756\par
Public Const OBM_OLD_RESTORE = 32755\par
\par
Public Const OCR_NORMAL = 32512\par
Public Const OCR_IBEAM = 32513\par
Public Const OCR_WAIT = 32514\par
Public Const OCR_CROSS = 32515\par
Public Const OCR_UP = 32516\par
Public Const OCR_SIZE = 32640\par
Public Const OCR_ICON = 32641\par
Public Const OCR_SIZENWSE = 32642\par
Public Const OCR_SIZENESW = 32643\par
Public Const OCR_SIZEWE = 32644\par
Public Const OCR_SIZENS = 32645\par
Public Const OCR_SIZEALL = 32646\par
Public Const OCR_ICOCUR = 32647\par
Public Const OCR_NO = 32648 ' not in win3.1\par
\par
Public Const OIC_SAMPLE = 32512\par
Public Const OIC_HAND = 32513\par
Public Const OIC_QUES = 32514\par
Public Const OIC_BANG = 32515\par
Public Const OIC_NOTE = 32516\par
\par
Public Const ORD_LANGDRIVER = 1 ' The ordinal number for the entry point of\par
' language drivers.\par
\par
' Standard Icon IDs\par
Public Const IDI_APPLICATION = 32512&\par
Public Const IDI_HAND = 32513&\par
Public Const IDI_QUESTION = 32514&\par
Public Const IDI_EXCLAMATION = 32515&\par
Public Const IDI_ASTERISK = 32516&\par
\par
Declare Function LoadString Lib "user32" Alias "LoadStringA" (ByVal hInstance As Long, ByVal wID As Long, ByVal lpBuffer As String, ByVal nBufferMax As Long) As Long\par
\par
' Dialog Box Command IDs\par
Public Const IDOK = 1\par
Public Const IDCANCEL = 2\par
Public Const IDABORT = 3\par
Public Const IDRETRY = 4\par
Public Const IDIGNORE = 5\par
Public Const IDYES = 6\par
Public Const IDNO = 7\par
\par
' Control Manager Structures and Definitions\par
\par
' Edit Control Styles\par
Public Const ES_LEFT = &H0&\par
Public Const ES_CENTER = &H1&\par
Public Const ES_RIGHT = &H2&\par
Public Const ES_MULTILINE = &H4&\par
Public Const ES_UPPERCASE = &H8&\par
Public Const ES_LOWERCASE = &H10&\par
Public Const ES_PASSWORD = &H20&\par
Public Const ES_AUTOVSCROLL = &H40&\par
Public Const ES_AUTOHSCROLL = &H80&\par
Public Const ES_NOHIDESEL = &H100&\par
Public Const ES_OEMCONVERT = &H400&\par
Public Const ES_READONLY = &H800&\par
Public Const ES_WANTRETURN = &H1000&\par
Public Const ES_NUMBER = &H2000&\par
\par
' Edit Control Notification Codes\par
Public Const EN_SETFOCUS = &H100\par
Public Const EN_KILLFOCUS = &H200\par
Public Const EN_CHANGE = &H300\par
Public Const EN_UPDATE = &H400\par
Public Const EN_ERRSPACE = &H500\par
Public Const EN_MAXTEXT = &H501\par
Public Const EN_HSCROLL = &H601\par
Public Const EN_VSCROLL = &H602\par
\par
' Edit Control Messages\par
Public Const EM_GETSEL = &HB0\par
Public Const EM_SETSEL = &HB1\par
Public Const EM_GETRECT = &HB2\par
Public Const EM_SETRECT = &HB3\par
Public Const EM_SETRECTNP = &HB4\par
Public Const EM_SCROLL = &HB5\par
Public Const EM_LINESCROLL = &HB6\par
Public Const EM_SCROLLCARET = &HB7\par
Public Const EM_GETMODIFY = &HB8\par
Public Const EM_SETMODIFY = &HB9\par
Public Const EM_GETLINECOUNT = &HBA\par
Public Const EM_LINEINDEX = &HBB\par
Public Const EM_SETHANDLE = &HBC\par
Public Const EM_GETHANDLE = &HBD\par
Public Const EM_GETTHUMB = &HBE\par
Public Const EM_LINELENGTH = &HC1\par
Public Const EM_REPLACESEL = &HC2\par
Public Const EM_GETLINE = &HC4\par
Public Const EM_LIMITTEXT = &HC5\par
Public Const EM_CANUNDO = &HC6\par
Public Const EM_UNDO = &HC7\par
Public Const EM_FMTLINES = &HC8\par
Public Const EM_LINEFROMCHAR = &HC9\par
Public Const EM_SETTABSTOPS = &HCB\par
Public Const EM_SETPASSWORDCHAR = &HCC\par
Public Const EM_EMPTYUNDOBUFFER = &HCD\par
Public Const EM_GETFIRSTVISIBLELINE = &HCE\par
Public Const EM_SETREADONLY = &HCF\par
Public Const EM_SETWORDBREAKPROC = &HD0\par
Public Const EM_GETWORDBREAKPROC = &HD1\par
Public Const EM_GETPASSWORDCHAR = &HD2\par
\par
' EDITWORDBREAKPROC code values\par
Public Const WB_LEFT = 0\par
Public Const WB_RIGHT = 1\par
Public Const WB_ISDELIMITER = 2\par
\par
' Button Control Styles\par
Public Const BS_PUSHBUTTON = &H0&\par
Public Const BS_DEFPUSHBUTTON = &H1&\par
Public Const BS_CHECKBOX = &H2&\par
Public Const BS_AUTOCHECKBOX = &H3&\par
Public Const BS_RADIOBUTTON = &H4&\par
Public Const BS_3STATE = &H5&\par
Public Const BS_AUTO3STATE = &H6&\par
Public Const BS_GROUPBOX = &H7&\par
Public Const BS_USERBUTTON = &H8&\par
Public Const BS_AUTORADIOBUTTON = &H9&\par
Public Const BS_OWNERDRAW = &HB&\par
Public Const BS_LEFTTEXT = &H20&\par
\par
' New button styles for Windows 95\par
Public Const BS_TEXT = 0&\par
Public Const BS_ICON = &H40&\par
Public Const BS_BITMAP = &H80&\par
Public Const BS_LEFT = &H0100&\par
Public Const BS_RIGHT = &H0200&\par
Public Const BS_CENTER = &H0300&\par
Public Const BS_TOP = &H0400&\par
Public Const BS_BOTTOM = &H0800&\par
Public Const BS_VCENTER = &H0C00&\par
Public Const BS_PUSHLIKE = &H1000&\par
Public Const BS_MULTILINE = &H2000&\par
Public Const BS_NOTIFY = &H4000&\par
Public Const BS_FLAT = &H8000&\par
Public Const BS_RIGHTBUTTON = &H20&\par
\par
' User Button Notification Codes\par
Public Const BN_CLICKED = 0\par
Public Const BN_PAINT = 1\par
Public Const BN_HILITE = 2\par
Public Const BN_UNHILITE = 3\par
Public Const BN_DISABLE = 4\par
Public Const BN_DOUBLECLICKED = 5\par
\par
' Button Control Messages\par
Public Const BM_GETCHECK = &HF0\par
Public Const BM_SETCHECK = &HF1\par
Public Const BM_GETSTATE = &HF2\par
Public Const BM_SETSTATE = &HF3\par
Public Const BM_SETSTYLE = &HF4\par
\par
' Static Control Constants\par
Public Const SS_LEFT = &H0&\par
Public Const SS_CENTER = &H1&\par
Public Const SS_RIGHT = &H2&\par
Public Const SS_ICON = &H3&\par
Public Const SS_BLACKRECT = &H4&\par
Public Const SS_GRAYRECT = &H5&\par
Public Const SS_WHITERECT = &H6&\par
Public Const SS_BLACKFRAME = &H7&\par
Public Const SS_GRAYFRAME = &H8&\par
Public Const SS_WHITEFRAME = &H9&\par
Public Const SS_USERITEM = &HA&\par
Public Const SS_SIMPLE = &HB&\par
Public Const SS_LEFTNOWORDWRAP = &HC&\par
Public Const SS_OWNERDRAW = &H0D&\par
Public Const SS_ENHMETAFILE = &H0F&\par
Public Const SS_ETCHEDHORZ = &H0010&\par
Public Const SS_ETCHEDVERT = &H0011&\par
Public Const SS_ETCHEDFRAME = &H0012&\par
Public Const SS_TYPEMASK = &H001F&\par
Public Const SS_NOPREFIX = &H0080&\par
Public Const SS_NOTIFY = &H0100&\par
Public Const SS_CENTERIMAGE = &H0200&\par
Public Const SS_RIGHTJUST = &H0400&\par
Public Const SS_REALSIZEIMAGE = &H0800&\par
Public Const SS_SUNKEN = &H1000&\par
\par
' Static Control Mesages\par
Public Const STM_SETICON = &H170\par
Public Const STM_GETICON = &H171\par
Public Const STM_MSGMAX = &H172\par
\par
Public Const WC_DIALOG = 8002&\par
\par
' Get/SetWindowWord/Long offsets for use with WC_DIALOG windows\par
Public Const DWL_MSGRESULT = 0\par
Public Const DWL_DLGPROC = 4\par
Public Const DWL_USER = 8\par
\par
' Dialog Manager Routines\par
Declare Function IsDialogMessage Lib "user32" Alias "IsDialogMessageA" (ByVal hDlg As Long, lpMsg As MSG) As Long\par
Declare Function MapDialogRect Lib "user32" Alias "MapDialogRect" (ByVal hDlg As Long, lpRect As RECT) As Long\par
Declare Function DlgDirList Lib "user32" Alias "DlgDirListA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDListBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long\par
\par
' DlgDirList, DlgDirListComboBox flags values\par
Public Const DDL_READWRITE = &H0\par
Public Const DDL_READONLY = &H1\par
Public Const DDL_HIDDEN = &H2\par
Public Const DDL_SYSTEM = &H4\par
Public Const DDL_DIRECTORY = &H10\par
Public Const DDL_ARCHIVE = &H20\par
\par
Public Const DDL_POSTMSGS = &H2000\par
Public Const DDL_DRIVES = &H4000\par
Public Const DDL_EXCLUSIVE = &H8000&\par
\par
Declare Function DlgDirSelectEx Lib "user32" Alias "DlgDirSelectExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idListBox As Long) As Long\par
Declare Function DlgDirListComboBox Lib "user32" Alias "DlgDirListComboBoxA" (ByVal hDlg As Long, ByVal lpPathSpec As String, ByVal nIDComboBox As Long, ByVal nIDStaticPath As Long, ByVal wFileType As Long) As Long\par
Declare Function DlgDirSelectComboBoxEx Lib "user32" Alias "DlgDirSelectComboBoxExA" (ByVal hWndDlg As Long, ByVal lpszPath As String, ByVal cbPath As Long, ByVal idComboBox As Long) As Long\par
\par
' Dialog Styles\par
Public Const DS_ABSALIGN = &H1&\par
Public Const DS_SYSMODAL = &H2&\par
Public Const DS_LOCALEDIT = &H20 ' Edit items get Local storage.\par
Public Const DS_SETFONT = &H40 ' User specified font for Dlg controls\par
Public Const DS_MODALFRAME = &H80 ' Can be combined with WS_CAPTION\par
Public Const DS_NOIDLEMSG = &H100 ' WM_ENTERIDLE message will not be sent\par
Public Const DS_SETFOREGROUND = &H200 ' not in win3.1\par
Public Const DS_3DLOOK = &H04&\par
Public Const DS_FIXEDSYS = &H08&\par
Public Const DS_NOFAILCREATE = &H10&\par
Public Const DS_CONTROL =&H0400&\par
Public Const DS_CENTER = &H0800&\par
Public Const DS_CENTERMOUSE = &H1000&\par
Public Const DS_CONTEXTHELP = &H2000&\par
\par
Public Const DM_GETDEFID = WM_USER + 0\par
Public Const DM_SETDEFID = WM_USER + 1\par
Public Const DC_HASDEFID = &H534 '0x534B\par
\par
' Dialog Codes\par
Public Const DLGC_WANTARROWS = &H1 ' Control wants arrow keys\par
Public Const DLGC_WANTTAB = &H2 ' Control wants tab keys\par
Public Const DLGC_WANTALLKEYS = &H4 ' Control wants all keys\par
Public Const DLGC_WANTMESSAGE = &H4 ' Pass message to control\par
Public Const DLGC_HASSETSEL = &H8 ' Understands EM_SETSEL message\par
Public Const DLGC_DEFPUSHBUTTON = &H10 ' Default pushbutton\par
Public Const DLGC_UNDEFPUSHBUTTON = &H20 ' Non-default pushbutton\par
Public Const DLGC_RADIOBUTTON = &H40 ' Radio button\par
Public Const DLGC_WANTCHARS = &H80 ' Want WM_CHAR messages\par
Public Const DLGC_STATIC = &H100 ' Static item: don't include\par
Public Const DLGC_BUTTON = &H2000 ' Button item: can be checked\par
\par
Public Const LB_CTLCODE = 0&\par
\par
' Listbox Return Values\par
Public Const LB_OKAY = 0\par
Public Const LB_ERR = (-1)\par
Public Const LB_ERRSPACE = (-2)\par
\par
' The idStaticPath parameter to DlgDirList can have the following values\par
' ORed if the list box should show other details of the files along with\par
' the name of the files;\par
' all other details also will be returned\par
\par
' Listbox Notification Codes\par
Public Const LBN_ERRSPACE = (-2)\par
Public Const LBN_SELCHANGE = 1\par
Public Const LBN_DBLCLK = 2\par
Public Const LBN_SELCANCEL = 3\par
Public Const LBN_SETFOCUS = 4\par
Public Const LBN_KILLFOCUS = 5\par
\par
' Listbox messages\par
Public Const LB_ADDSTRING = &H180\par
Public Const LB_INSERTSTRING = &H181\par
Public Const LB_DELETESTRING = &H182\par
Public Const LB_SELITEMRANGEEX = &H183\par
Public Const LB_RESETCONTENT = &H184\par
Public Const LB_SETSEL = &H185\par
Public Const LB_SETCURSEL = &H186\par
Public Const LB_GETSEL = &H187\par
Public Const LB_GETCURSEL = &H188\par
Public Const LB_GETTEXT = &H189\par
Public Const LB_GETTEXTLEN = &H18A\par
Public Const LB_GETCOUNT = &H18B\par
Public Const LB_SELECTSTRING = &H18C\par
Public Const LB_DIR = &H18D\par
Public Const LB_GETTOPINDEX = &H18E\par
Public Const LB_FINDSTRING = &H18F\par
Public Const LB_GETSELCOUNT = &H190\par
Public Const LB_GETSELITEMS = &H191\par
Public Const LB_SETTABSTOPS = &H192\par
Public Const LB_GETHORIZONTALEXTENT = &H193\par
Public Const LB_SETHORIZONTALEXTENT = &H194\par
Public Const LB_SETCOLUMNWIDTH = &H195\par
Public Const LB_ADDFILE = &H196\par
Public Const LB_SETTOPINDEX = &H197\par
Public Const LB_GETITEMRECT = &H198\par
Public Const LB_GETITEMDATA = &H199\par
Public Const LB_SETITEMDATA = &H19A\par
Public Const LB_SELITEMRANGE = &H19B\par
Public Const LB_SETANCHORINDEX = &H19C\par
Public Const LB_GETANCHORINDEX = &H19D\par
Public Const LB_SETCARETINDEX = &H19E\par
Public Const LB_GETCARETINDEX = &H19F\par
Public Const LB_SETITEMHEIGHT = &H1A0\par
Public Const LB_GETITEMHEIGHT = &H1A1\par
Public Const LB_FINDSTRINGEXACT = &H1A2\par
Public Const LB_SETLOCALE = &H1A5\par
Public Const LB_GETLOCALE = &H1A6\par
Public Const LB_SETCOUNT = &H1A7\par
Public Const LB_MSGMAX = &H1A8\par
\par
' Listbox Styles\par
Public Const LBS_NOTIFY = &H1&\par
Public Const LBS_SORT = &H2&\par
Public Const LBS_NOREDRAW = &H4&\par
Public Const LBS_MULTIPLESEL = &H8&\par
Public Const LBS_OWNERDRAWFIXED = &H10&\par
Public Const LBS_OWNERDRAWVARIABLE = &H20&\par
Public Const LBS_HASSTRINGS = &H40&\par
Public Const LBS_USETABSTOPS = &H80&\par
Public Const LBS_NOINTEGRALHEIGHT = &H100&\par
Public Const LBS_MULTICOLUMN = &H200&\par
Public Const LBS_WANTKEYBOARDINPUT = &H400&\par
Public Const LBS_EXTENDEDSEL = &H800&\par
Public Const LBS_DISABLENOSCROLL = &H1000&\par
Public Const LBS_NODATA = &H2000&\par
Public Const LBS_NOSEL = &H4000&\par
Public Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL Or WS_BORDER)\par
\par
' Combo Box return Values\par
Public Const CB_OKAY = 0\par
Public Const CB_ERR = (-1)\par
Public Const CB_ERRSPACE = (-2)\par
\par
' Combo Box Notification Codes\par
Public Const CBN_ERRSPACE = (-1)\par
Public Const CBN_SELCHANGE = 1\par
Public Const CBN_DBLCLK = 2\par
Public Const CBN_SETFOCUS = 3\par
Public Const CBN_KILLFOCUS = 4\par
Public Const CBN_EDITCHANGE = 5\par
Public Const CBN_EDITUPDATE = 6\par
Public Const CBN_DROPDOWN = 7\par
Public Const CBN_CLOSEUP = 8\par
Public Const CBN_SELENDOK = 9\par
Public Const CBN_SELENDCANCEL = 10\par
\par
' Combo Box styles\par
Public Const CBS_SIMPLE = &H1&\par
Public Const CBS_DROPDOWN = &H2&\par
Public Const CBS_DROPDOWNLIST = &H3&\par
Public Const CBS_OWNERDRAWFIXED = &H10&\par
Public Const CBS_OWNERDRAWVARIABLE = &H20&\par
Public Const CBS_AUTOHSCROLL = &H40&\par
Public Const CBS_OEMCONVERT = &H80&\par
Public Const CBS_SORT = &H100&\par
Public Const CBS_HASSTRINGS = &H200&\par
Public Const CBS_NOINTEGRALHEIGHT = &H400&\par
Public Const CBS_DISABLENOSCROLL = &H800&\par
Public Const CBS_UPPERCASE = &H2000&\par
Public Const CBS_LOWERCASE = &H4000&\par
\par
' Combo Box messages\par
Public Const CB_GETEDITSEL = &H140\par
Public Const CB_LIMITTEXT = &H141\par
Public Const CB_SETEDITSEL = &H142\par
Public Const CB_ADDSTRING = &H143\par
Public Const CB_DELETESTRING = &H144\par
Public Const CB_DIR = &H145\par
Public Const CB_GETCOUNT = &H146\par
Public Const CB_GETCURSEL = &H147\par
Public Const CB_GETLBTEXT = &H148\par
Public Const CB_GETLBTEXTLEN = &H149\par
Public Const CB_INSERTSTRING = &H14A\par
Public Const CB_RESETCONTENT = &H14B\par
Public Const CB_FINDSTRING = &H14C\par
Public Const CB_SELECTSTRING = &H14D\par
Public Const CB_SETCURSEL = &H14E\par
Public Const CB_SHOWDROPDOWN = &H14F\par
Public Const CB_GETITEMDATA = &H150\par
Public Const CB_SETITEMDATA = &H151\par
Public Const CB_GETDROPPEDCONTROLRECT = &H152\par
Public Const CB_SETITEMHEIGHT = &H153\par
Public Const CB_GETITEMHEIGHT = &H154\par
Public Const CB_SETEXTENDEDUI = &H155\par
Public Const CB_GETEXTENDEDUI = &H156\par
Public Const CB_GETDROPPEDSTATE = &H157\par
Public Const CB_FINDSTRINGEXACT = &H158\par
Public Const CB_SETLOCALE = &H159\par
Public Const CB_GETLOCALE = &H15A\par
Public Const CB_MSGMAX = &H15B\par
\par
' Scroll Bar Styles\par
Public Const SBS_HORZ = &H0&\par
Public Const SBS_VERT = &H1&\par
Public Const SBS_TOPALIGN = &H2&\par
Public Const SBS_LEFTALIGN = &H2&\par
Public Const SBS_BOTTOMALIGN = &H4&\par
Public Const SBS_RIGHTALIGN = &H4&\par
Public Const SBS_SIZEBOXTOPLEFTALIGN = &H2&\par
Public Const SBS_SIZEBOXBOTTOMRIGHTALIGN = &H4&\par
Public Const SBS_SIZEBOX = &H8&\par
Public Const SBS_SIZEGRIP = &H0010&\par
\par
' Scroll bar messages\par
Public Const SBM_SETPOS = &HE0 ' not in win3.1\par
Public Const SBM_GETPOS = &HE1 ' not in win3.1\par
Public Const SBM_SETRANGE = &HE2 ' not in win3.1\par
Public Const SBM_SETRANGEREDRAW = &HE6 ' not in win3.1\par
Public Const SBM_GETRANGE = &HE3 ' not in win3.1\par
Public Const SBM_ENABLE_ARROWS = &HE4 ' not in win3.1\par
\par
Public Const MDIS_ALLCHILDSTYLES = &H1\par
\par
' wParam values for WM_MDITILE and WM_MDICASCADE messages.\par
Public Const MDITILE_VERTICAL = &H0\par
Public Const MDITILE_HORIZONTAL = &H1\par
Public Const MDITILE_SKIPDISABLED = &H2\par
\par
Type MDICREATESTRUCT\par
szClass As String\par
szTitle As String\par
hOwner As Long\par
x As Long\par
y As Long\par
cx As Long\par
cy As Long\par
style As Long\par
lParam As Long\par
End Type\par
\par
Type CLIENTCREATESTRUCT\par
hWindowMenu As Long\par
idFirstChild As Long\par
End Type\par
\par
Declare Function DefFrameProc Lib "user32" Alias "DefFrameProcA" (ByVal hwnd As Long, ByVal hWndMDIClient As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function DefMDIChildProc Lib "user32" Alias "DefMDIChildProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
\par
Declare Function TranslateMDISysAccel Lib "user32" Alias "TranslateMDISysAccel" (ByVal hWndClient As Long, lpMsg As MSG) As Long\par
\par
Declare Function ArrangeIconicWindows Lib "user32" Alias "ArrangeIconicWindows" (ByVal hwnd As Long) As Long\par
\par
Declare Function CreateMDIWindow Lib "user32" Alias "CreateMDIWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hInstance As Long, ByVal lParam As Long) As Long\par
\par
' Help engine section.\par
\par
Type MULTIKEYHELP\par
mkSize As Long\par
mkKeylist As Byte\par
szKeyphrase As String * 253 ' Array length is arbitrary; may be changed\par
End Type\par
\par
Type HELPWININFO\par
wStructSize As Long\par
x As Long\par
y As Long\par
dx As Long\par
dy As Long\par
wMax As Long\par
rgchMember As String * 2\par
End Type\par
\par
' Commands to pass WinHelp()\par
Public Const HELP_CONTEXT = &H1 ' Display topic in ulTopic\par
Public Const HELP_QUIT = &H2 ' Terminate help\par
Public Const HELP_INDEX = &H3 ' Display index\par
Public Const HELP_CONTENTS = &H3&\par
Public Const HELP_HELPONHELP = &H4 ' Display help on using help\par
Public Const HELP_SETINDEX = &H5 ' Set current Index for multi index help\par
Public Const HELP_SETCONTENTS = &H5&\par
Public Const HELP_CONTEXTPOPUP = &H8&\par
Public Const HELP_FORCEFILE = &H9&\par
Public Const HELP_KEY = &H101 ' Display topic for keyword in offabData\par
Public Const HELP_COMMAND = &H102&\par
Public Const HELP_PARTIALKEY = &H105&\par
Public Const HELP_MULTIKEY = &H201&\par
Public Const HELP_SETWINPOS = &H203&\par
\par
Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Long) As Long\par
\par
' Parameter for SystemParametersInfo()\par
Public Const SPI_GETBEEP = 1\par
Public Const SPI_SETBEEP = 2\par
Public Const SPI_GETMOUSE = 3\par
Public Const SPI_SETMOUSE = 4\par
Public Const SPI_GETBORDER = 5\par
Public Const SPI_SETBORDER = 6\par
Public Const SPI_GETKEYBOARDSPEED = 10\par
Public Const SPI_SETKEYBOARDSPEED = 11\par
Public Const SPI_LANGDRIVER = 12\par
Public Const SPI_ICONHORIZONTALSPACING = 13\par
Public Const SPI_GETSCREENSAVETIMEOUT = 14\par
Public Const SPI_SETSCREENSAVETIMEOUT = 15\par
Public Const SPI_GETSCREENSAVEACTIVE = 16\par
Public Const SPI_SETSCREENSAVEACTIVE = 17\par
Public Const SPI_GETGRIDGRANULARITY = 18\par
Public Const SPI_SETGRIDGRANULARITY = 19\par
Public Const SPI_SETDESKWALLPAPER = 20\par
Public Const SPI_SETDESKPATTERN = 21\par
Public Const SPI_GETKEYBOARDDELAY = 22\par
Public Const SPI_SETKEYBOARDDELAY = 23\par
Public Const SPI_ICONVERTICALSPACING = 24\par
Public Const SPI_GETICONTITLEWRAP = 25\par
Public Const SPI_SETICONTITLEWRAP = 26\par
Public Const SPI_GETMENUDROPALIGNMENT = 27\par
Public Const SPI_SETMENUDROPALIGNMENT = 28\par
Public Const SPI_SETDOUBLECLKWIDTH = 29\par
Public Const SPI_SETDOUBLECLKHEIGHT = 30\par
Public Const SPI_GETICONTITLELOGFONT = 31\par
Public Const SPI_SETDOUBLECLICKTIME = 32\par
Public Const SPI_SETMOUSEBUTTONSWAP = 33\par
Public Const SPI_SETICONTITLELOGFONT = 34\par
Public Const SPI_GETFASTTASKSWITCH = 35\par
Public Const SPI_SETFASTTASKSWITCH = 36\par
Public Const SPI_SETDRAGFULLWINDOWS = 37\par
Public Const SPI_GETDRAGFULLWINDOWS = 38\par
Public Const SPI_GETNONCLIENTMETRICS = 41\par
Public Const SPI_SETNONCLIENTMETRICS = 42\par
Public Const SPI_GETMINIMIZEDMETRICS = 43\par
Public Const SPI_SETMINIMIZEDMETRICS = 44\par
Public Const SPI_GETICONMETRICS = 45\par
Public Const SPI_SETICONMETRICS = 46\par
Public Const SPI_SETWORKAREA = 47\par
Public Const SPI_GETWORKAREA = 48\par
Public Const SPI_SETPENWINDOWS = 49\par
Public Const SPI_GETFILTERKEYS = 50\par
Public Const SPI_SETFILTERKEYS = 51\par
Public Const SPI_GETTOGGLEKEYS = 52\par
Public Const SPI_SETTOGGLEKEYS = 53\par
Public Const SPI_GETMOUSEKEYS = 54\par
Public Const SPI_SETMOUSEKEYS = 55\par
Public Const SPI_GETSHOWSOUNDS = 56\par
Public Const SPI_SETSHOWSOUNDS = 57\par
Public Const SPI_GETSTICKYKEYS = 58\par
Public Const SPI_SETSTICKYKEYS = 59\par
Public Const SPI_GETACCESSTIMEOUT = 60\par
Public Const SPI_SETACCESSTIMEOUT = 61\par
Public Const SPI_GETSERIALKEYS = 62\par
Public Const SPI_SETSERIALKEYS = 63\par
Public Const SPI_GETSOUNDSENTRY = 64\par
Public Const SPI_SETSOUNDSENTRY = 65\par
Public Const SPI_GETHIGHCONTRAST = 66\par
Public Const SPI_SETHIGHCONTRAST = 67\par
Public Const SPI_GETKEYBOARDPREF = 68\par
Public Const SPI_SETKEYBOARDPREF = 69\par
Public Const SPI_GETSCREENREADER = 70\par
Public Const SPI_SETSCREENREADER = 71\par
Public Const SPI_GETANIMATION = 72\par
Public Const SPI_SETANIMATION = 73\par
Public Const SPI_GETFONTSMOOTHING = 74\par
Public Const SPI_SETFONTSMOOTHING = 75\par
Public Const SPI_SETDRAGWIDTH = 76\par
Public Const SPI_SETDRAGHEIGHT = 77\par
Public Const SPI_SETHANDHELD = 78\par
Public Const SPI_GETLOWPOWERTIMEOUT = 79\par
Public Const SPI_GETPOWEROFFTIMEOUT = 80\par
Public Const SPI_SETLOWPOWERTIMEOUT = 81\par
Public Const SPI_SETPOWEROFFTIMEOUT = 82\par
Public Const SPI_GETLOWPOWERACTIVE = 83\par
Public Const SPI_GETPOWEROFFACTIVE = 84\par
Public Const SPI_SETLOWPOWERACTIVE = 85\par
Public Const SPI_SETPOWEROFFACTIVE = 86\par
Public Const SPI_SETCURSORS = 87\par
Public Const SPI_SETICONS = 88\par
Public Const SPI_GETDEFAULTINPUTLANG = 89\par
Public Const SPI_SETDEFAULTINPUTLANG = 90\par
Public Const SPI_SETLANGTOGGLE = 91\par
Public Const SPI_GETWINDOWSEXTENSION = 92\par
Public Const SPI_SETMOUSETRAILS = 93\par
Public Const SPI_GETMOUSETRAILS = 94\par
Public Const SPI_SCREENSAVERRUNNING = 97\par
\par
' SystemParametersInfo flags\par
Public Const SPIF_UPDATEINIFILE = &H1\par
Public Const SPIF_SENDWININICHANGE = &H2\par
\par
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long\par
Declare Function SystemParametersInfoByval Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long\par
\par
' DDE window messages\par
Public Const WM_DDE_FIRST = &H3E0\par
Public Const WM_DDE_INITIATE = (WM_DDE_FIRST)\par
Public Const WM_DDE_TERMINATE = (WM_DDE_FIRST + 1)\par
Public Const WM_DDE_ADVISE = (WM_DDE_FIRST + 2)\par
Public Const WM_DDE_UNADVISE = (WM_DDE_FIRST + 3)\par
Public Const WM_DDE_ACK = (WM_DDE_FIRST + 4)\par
Public Const WM_DDE_DATA = (WM_DDE_FIRST + 5)\par
Public Const WM_DDE_REQUEST = (WM_DDE_FIRST + 6)\par
Public Const WM_DDE_POKE = (WM_DDE_FIRST + 7)\par
Public Const WM_DDE_EXECUTE = (WM_DDE_FIRST + 8)\par
Public Const WM_DDE_LAST = (WM_DDE_FIRST + 8)\par
\par
' ***************************************************************************** *\par
' * dde.h - Dynamic Data Exchange structures and definitions *\par
' * *\par
' * Copyright (c) 1993-1995, Microsoft Corp. All rights reserved *\par
' * *\par
' \\*****************************************************************************/\par
\par
\par
' ----------------------------------------------------------------------------\par
' DDEACK structure\par
' \par
' Structure of wStatus (LOWORD(lParam)) in WM_DDE_ACK message\par
' sent in response to a WM_DDE_DATA, WM_DDE_REQUEST, WM_DDE_POKE,\par
' WM_DDE_ADVISE, or WM_DDE_UNADVISE message.\par
' \par
' ----------------------------------------------------------------------------*/\par
\par
Type DDEACK\par
bAppReturnCode As Integer\par
Reserved As Integer\par
fbusy As Integer\par
fack As Integer\par
End Type\par
\par
' ----------------------------------------------------------------------------\par
' DDEADVISE structure\par
'\par
' WM_DDE_ADVISE parameter structure for hOptions (LOWORD(lParam))\par
'\par
' ----------------------------------------------------------------------------*/\par
\par
Type DDEADVISE\par
Reserved As Integer\par
fDeferUpd As Integer\par
fAckReq As Integer\par
cfFormat As Integer\par
End Type\par
\par
\par
' ----------------------------------------------------------------------------\par
' DDEDATA structure\par
'\par
' WM_DDE_DATA parameter structure for hData (LOWORD(lParam)).\par
' The actual size of this structure depends on the size of\par
' the Value array.\par
'\par
' ----------------------------------------------------------------------------*/\par
\par
Type DDEDATA\par
unused As Integer\par
fresponse As Integer\par
fRelease As Integer\par
Reserved As Integer\par
fAckReq As Integer\par
cfFormat As Integer\par
Value(1) As Byte\par
End Type\par
\par
\par
' ----------------------------------------------------------------------------\par
' DDEPOKE structure\par
'\par
' WM_DDE_POKE parameter structure for hData (LOWORD(lParam)).\par
' The actual size of this structure depends on the size of\par
' the Value array.\par
'\par
' ----------------------------------------------------------------------------*/\par
\par
Type DDEPOKE\par
unused As Integer\par
fRelease As Integer\par
fReserved As Integer\par
cfFormat As Integer\par
Value(1) As Byte\par
End Type\par
\par
' ----------------------------------------------------------------------------\par
' The following typedef's were used in previous versions of the Windows SDK.\par
' They are still valid. The above typedef's define exactly the same structures\par
' as those below. The above typedef names are recommended, however, as they\par
' are more meaningful.\par
\par
' Note that the DDEPOKE structure typedef'ed in earlier versions of DDE.H did\par
' not correctly define the bit positions.\par
' ----------------------------------------------------------------------------*/\par
\par
Type DDELN\par
unused As Integer\par
fRelease As Integer\par
fDeferUpd As Integer\par
fAckReq As Integer\par
cfFormat As Integer\par
End Type\par
\par
Type DDEUP\par
unused As Integer\par
fAck As Integer\par
fRelease As Integer\par
fReserved As Integer\par
fAckReq As Integer\par
cfFormat As Integer\par
rgb(1) As Byte\par
End Type\par
\par
Declare Function DdeSetQualityOfService Lib "user32" Alias "DdeSetQualityOfService" (ByVal hWndClient As Long, pqosNew As SECURITY_QUALITY_OF_SERVICE, pqosPrev As SECURITY_QUALITY_OF_SERVICE) As Long\par
Declare Function ImpersonateDdeClientWindow Lib "user32" Alias "ImpersonateDdeClientWindow" (ByVal hWndClient As Long, ByVal hWndServer As Long) As Long\par
Declare Function PackDDElParam Lib "user32" Alias "PackDDElParam" (ByVal msg As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long\par
Declare Function UnpackDDElParam Lib "user32" Alias "UnpackDDElParam" (ByVal msg As Long, ByVal lParam As Long, puiLo As Long, puiHi As Long) As Long\par
Declare Function FreeDDElParam Lib "user32" Alias "FreeDDElParam" (ByVal msg As Long, ByVal lParam As Long) As Long\par
Declare Function ReuseDDElParam Lib "user32" Alias "ReuseDDElParam" (ByVal lParam As Long, ByVal msgIn As Long, ByVal msgOut As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long\par
\par
Type HSZPAIR\par
hszSvc As Long\par
hszTopic As Long\par
End Type\par
\par
'//\par
'// Quality Of Service\par
'//\par
\par
Type SECURITY_QUALITY_OF_SERVICE\par
Length As Long\par
Impersonationlevel As Integer\par
ContextTrackingMode As Integer\par
EffectiveOnly As Long\par
End Type\par
\par
Type CONVCONTEXT\par
cb As Long\par
wFlags As Long\par
wCountryID As Long\par
iCodePage As Long\par
dwLangID As Long\par
dwSecurity As Long\par
qos As SECURITY_QUALITY_OF_SERVICE\par
End Type\par
\par
Type CONVINFO\par
cb As Long\par
hUser As Long\par
hConvPartner As Long\par
hszSvcPartner As Long\par
hszServiceReq As Long\par
hszTopic As Long\par
hszItem As Long\par
wFmt As Long\par
wType As Long\par
wStatus As Long\par
wConvst As Long\par
wLastError As Long\par
hConvList As Long\par
ConvCtxt As CONVCONTEXT\par
hwnd As Long\par
hwndPartner As Long\par
End Type\par
\par
' conversation states (usState)\par
Public Const XST_NULL = 0 ' quiescent states\par
Public Const XST_INCOMPLETE = 1\par
Public Const XST_CONNECTED = 2\par
Public Const XST_INIT1 = 3 ' mid-initiation states\par
Public Const XST_INIT2 = 4\par
Public Const XST_REQSENT = 5 ' active conversation states\par
Public Const XST_DATARCVD = 6\par
Public Const XST_POKESENT = 7\par
Public Const XST_POKEACKRCVD = 8\par
Public Const XST_EXECSENT = 9\par
Public Const XST_EXECACKRCVD = 10\par
Public Const XST_ADVSENT = 11\par
Public Const XST_UNADVSENT = 12\par
Public Const XST_ADVACKRCVD = 13\par
Public Const XST_UNADVACKRCVD = 14\par
Public Const XST_ADVDATASENT = 15\par
Public Const XST_ADVDATAACKRCVD = 16\par
\par
' used in LOWORD(dwData1) of XTYP_ADVREQ callbacks...\par
Public Const CADV_LATEACK = &HFFFF\par
\par
' conversation status bits (fsStatus)\par
Public Const ST_CONNECTED = &H1\par
Public Const ST_ADVISE = &H2\par
Public Const ST_ISLOCAL = &H4\par
Public Const ST_BLOCKED = &H8\par
Public Const ST_CLIENT = &H10\par
Public Const ST_TERMINATED = &H20\par
Public Const ST_INLIST = &H40\par
Public Const ST_BLOCKNEXT = &H80\par
Public Const ST_ISSELF = &H100\par
\par
' DDE constants for wStatus field\par
Public Const DDE_FACK = &H8000&\par
Public Const DDE_FBUSY = &H4000\par
Public Const DDE_FDEFERUPD = &H4000\par
Public Const DDE_FACKREQ = &H8000&\par
Public Const DDE_FRELEASE = &H2000\par
Public Const DDE_FREQUESTED = &H1000\par
Public Const DDE_FAPPSTATUS = &HFF\par
Public Const DDE_FNOTPROCESSED = &H0\par
\par
Public Const DDE_FACKRESERVED = (Not (DDE_FACK Or DDE_FBUSY Or DDE_FAPPSTATUS))\par
Public Const DDE_FADVRESERVED = (Not (DDE_FACKREQ Or DDE_FDEFERUPD))\par
Public Const DDE_FDATRESERVED = (Not (DDE_FACKREQ Or DDE_FRELEASE Or DDE_FREQUESTED))\par
Public Const DDE_FPOKRESERVED = (Not (DDE_FRELEASE))\par
\par
' message filter hook types\par
Public Const MSGF_DDEMGR = &H8001&\par
\par
' codepage constants\par
Public Const CP_WINANSI = 1004 ' default codepage for windows old DDE convs.\par
Public Const CP_WINUNICODE = 1200\par
\par
' transaction types\par
Public Const XTYPF_NOBLOCK = &H2 ' CBR_BLOCK will not work\par
Public Const XTYPF_NODATA = &H4 ' DDE_FDEFERUPD\par
Public Const XTYPF_ACKREQ = &H8 ' DDE_FACKREQ\par
\par
Public Const XCLASS_MASK = &HFC00\par
Public Const XCLASS_BOOL = &H1000\par
Public Const XCLASS_DATA = &H2000\par
Public Const XCLASS_FLAGS = &H4000\par
Public Const XCLASS_NOTIFICATION = &H8000&\par
\par
Public Const XTYP_ERROR = (&H0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
Public Const XTYP_ADVDATA = (&H10 Or XCLASS_FLAGS)\par
Public Const XTYP_ADVREQ = (&H20 Or XCLASS_DATA Or XTYPF_NOBLOCK)\par
Public Const XTYP_ADVSTART = (&H30 Or XCLASS_BOOL)\par
Public Const XTYP_ADVSTOP = (&H40 Or XCLASS_NOTIFICATION)\par
Public Const XTYP_EXECUTE = (&H50 Or XCLASS_FLAGS)\par
Public Const XTYP_CONNECT = (&H60 Or XCLASS_BOOL Or XTYPF_NOBLOCK)\par
Public Const XTYP_CONNECT_CONFIRM = (&H70 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
Public Const XTYP_XACT_COMPLETE = (&H80 Or XCLASS_NOTIFICATION)\par
Public Const XTYP_POKE = (&H90 Or XCLASS_FLAGS)\par
Public Const XTYP_REGISTER = (&HA0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
Public Const XTYP_REQUEST = (&HB0 Or XCLASS_DATA)\par
Public Const XTYP_DISCONNECT = (&HC0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
Public Const XTYP_UNREGISTER = (&HD0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
Public Const XTYP_WILDCONNECT = (&HE0 Or XCLASS_DATA Or XTYPF_NOBLOCK)\par
\par
Public Const XTYP_MASK = &HF0\par
Public Const XTYP_SHIFT = 4 ' shift to turn XTYP_ into an index\par
\par
' Timeout constants\par
Public Const TIMEOUT_ASYNC = &HFFFF\par
\par
' Transaction ID constants\par
Public Const QID_SYNC = &HFFFF\par
\par
' public strings used in DDE\par
Public Const SZDDESYS_TOPIC = "System"\par
Public Const SZDDESYS_ITEM_TOPICS = "Topics"\par
Public Const SZDDESYS_ITEM_SYSITEMS = "SysItems"\par
Public Const SZDDESYS_ITEM_RTNMSG = "ReturnMessage"\par
Public Const SZDDESYS_ITEM_STATUS = "Status"\par
Public Const SZDDESYS_ITEM_FORMATS = "Formats"\par
Public Const SZDDESYS_ITEM_HELP = "Help"\par
Public Const SZDDE_ITEM_ITEMLIST = "TopicItemList"\par
\par
Public Const CBR_BLOCK = &HFFFF\par
\par
' Callback filter flags for use with standard apps.\par
Public Const CBF_FAIL_SELFCONNECTIONS = &H1000\par
Public Const CBF_FAIL_CONNECTIONS = &H2000\par
Public Const CBF_FAIL_ADVISES = &H4000\par
Public Const CBF_FAIL_EXECUTES = &H8000&\par
Public Const CBF_FAIL_POKES = &H10000\par
Public Const CBF_FAIL_REQUESTS = &H20000\par
Public Const CBF_FAIL_ALLSVRXACTIONS = &H3F000\par
\par
Public Const CBF_SKIP_CONNECT_CONFIRMS = &H40000\par
Public Const CBF_SKIP_REGISTRATIONS = &H80000\par
Public Const CBF_SKIP_UNREGISTRATIONS = &H100000\par
Public Const CBF_SKIP_DISCONNECTS = &H200000\par
Public Const CBF_SKIP_ALLNOTIFICATIONS = &H3C0000\par
\par
' Application command flags\par
Public Const APPCMD_CLIENTONLY = &H10&\par
Public Const APPCMD_FILTERINITS = &H20&\par
Public Const APPCMD_MASK = &HFF0&\par
\par
' Application classification flags\par
Public Const APPCLASS_STANDARD = &H0&\par
Public Const APPCLASS_MASK = &HF&\par
\par
Declare Function DdeUninitialize Lib "user32" Alias "DdeUninitialize" (ByVal idInst As Long) As Long\par
\par
' conversation enumeration functions\par
Declare Function DdeConnectList Lib "user32" Alias "DdeConnectList" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, ByVal hConvList As Long, pCC As CONVCONTEXT) As Long\par
Declare Function DdeQueryNextServer Lib "user32" Alias "DdeQueryNextServer" (ByVal hConvList As Long, ByVal hConvPrev As Long) As Long\par
Declare Function DdeDisconnectList Lib "user32" Alias "DdeDisconnectList" (ByVal hConvList As Long) As Long\par
\par
' conversation control functions\par
Declare Function DdeConnect Lib "user32" Alias "DdeConnect" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As CONVCONTEXT) As Long\par
Declare Function DdeDisconnect Lib "user32" Alias "DdeDisconnect" (ByVal hConv As Long) As Long\par
Declare Function DdeReconnect Lib "user32" Alias "DdeReconnect" (ByVal hConv As Long) As Long\par
Declare Function DdeQueryConvInfo Lib "user32" Alias "DdeQueryConvInfo" (ByVal hConv As Long, ByVal idTransaction As Long, pConvInfo As CONVINFO) As Long\par
Declare Function DdeSetUserHandle Lib "user32" Alias "DdeSetUserHandle" (ByVal hConv As Long, ByVal id As Long, ByVal hUser As Long) As Long\par
Declare Function DdeAbandonTransaction Lib "user32" Alias "DdeAbandonTransaction" (ByVal idInst As Long, ByVal hConv As Long, ByVal idTransaction As Long) As Long\par
\par
' app server interface functions\par
Declare Function DdePostAdvise Lib "user32" Alias "DdePostAdvise" (ByVal idInst As Long, ByVal hszTopic As Long, ByVal hszItem As Long) As Long\par
Declare Function DdeEnableCallback Lib "user32" Alias "DdeEnableCallback" (ByVal idInst As Long, ByVal hConv As Long, ByVal wCmd As Long) As Long\par
Declare Function DdeImpersonateClient Lib "user32" Alias "DdeImpersonateClient" (ByVal hConv As Long) As Long\par
\par
Public Const EC_ENABLEALL = 0\par
Public Const EC_ENABLEONE = ST_BLOCKNEXT\par
Public Const EC_DISABLE = ST_BLOCKED\par
Public Const EC_QUERYWAITING = 2\par
\par
Declare Function DdeNameService Lib "user32" Alias "DdeNameService" (ByVal idInst As Long, ByVal hsz1 As Long, ByVal hsz2 As Long, ByVal afCmd As Long) As Long\par
\par
Public Const DNS_REGISTER = &H1\par
Public Const DNS_UNREGISTER = &H2\par
Public Const DNS_FILTERON = &H4\par
Public Const DNS_FILTEROFF = &H8\par
\par
' app client interface functions\par
Declare Function DdeClientTransaction Lib "user32" Alias "DdeClientTransaction" (pData As Byte, ByVal cbData As Long, ByVal hConv As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal wType As Long, ByVal dwTimeout As Long, pdwResult As Long) As Long\par
\par
' data transfer functions\par
Declare Function DdeCreateDataHandle Lib "user32" Alias "DdeCreateDataHandle" (ByVal idInst As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long, ByVal hszItem As Long, ByVal wFmt As Long, ByVal afCmd As Long) As Long\par
Declare Function DdeAddData Lib "user32" (ByVal hData As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long) As Long\par
Declare Function DdeGetData Lib "user32" (ByVal hData As Long, pDst As Byte, ByVal cbMax As Long, ByVal cbOff As Long) As Long\par
Declare Function DdeAccessData Lib "user32" (ByVal hData As Long, pcbDataSize As Long) As Long\par
Declare Function DdeUnaccessData Lib "user32" (ByVal hData As Long) As Long\par
Declare Function DdeFreeDataHandle Lib "user32" Alias "DdeFreeDataHandle" (ByVal hData As Long) As Long\par
\par
Public Const HDATA_APPOWNED = &H1\par
\par
Declare Function DdeGetLastError Lib "user32" Alias "DdeGetLastError" (ByVal idInst As Long) As Long\par
\par
Public Const DMLERR_NO_ERROR = 0 ' must be 0\par
\par
Public Const DMLERR_FIRST = &H4000\par
\par
Public Const DMLERR_ADVACKTIMEOUT = &H4000\par
Public Const DMLERR_BUSY = &H4001\par
Public Const DMLERR_DATAACKTIMEOUT = &H4002\par
Public Const DMLERR_DLL_NOT_INITIALIZED = &H4003\par
Public Const DMLERR_DLL_USAGE = &H4004\par
Public Const DMLERR_EXECACKTIMEOUT = &H4005\par
Public Const DMLERR_INVALIDPARAMETER = &H4006\par
Public Const DMLERR_LOW_MEMORY = &H4007\par
Public Const DMLERR_MEMORY_ERROR = &H4008\par
Public Const DMLERR_NOTPROCESSED = &H4009\par
Public Const DMLERR_NO_CONV_ESTABLISHED = &H400A\par
Public Const DMLERR_POKEACKTIMEOUT = &H400B\par
Public Const DMLERR_POSTMSG_FAILED = &H400C\par
Public Const DMLERR_REENTRANCY = &H400D\par
Public Const DMLERR_SERVER_DIED = &H400E\par
Public Const DMLERR_SYS_ERROR = &H400F\par
Public Const DMLERR_UNADVACKTIMEOUT = &H4010\par
Public Const DMLERR_UNFOUND_QUEUE_ID = &H4011\par
\par
Public Const DMLERR_LAST = &H4011\par
\par
Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long\par
\par
Declare Function DdeQueryString Lib "user32" Alias "DdeQueryStringA" (ByVal idInst As Long, ByVal hsz As Long, ByVal psz As String, ByVal cchMax As Long, ByVal iCodePage As Long) As Long\par
\par
Declare Function DdeFreeStringHandle Lib "user32" Alias "DdeFreeStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long\par
Declare Function DdeKeepStringHandle Lib "user32" Alias "DdeKeepStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long\par
Declare Function DdeCmpStringHandles Lib "user32" Alias "DdeCmpStringHandles" (ByVal hsz1 As Long, ByVal hsz2 As Long) As Long\par
\par
Type DDEML_MSG_HOOK_DATA ' new for NT\par
uiLo As Long ' unpacked lo and hi parts of lParam\par
uiHi As Long\par
cbData As Long ' amount of data in message, if any. May be > than 32 bytes.\par
Data(8) As Long ' data peeking by DDESPY is limited to 32 bytes.\par
End Type\par
\par
Type MONMSGSTRUCT\par
cb As Long\par
hwndTo As Long\par
dwTime As Long\par
htask As Long\par
wMsg As Long\par
wParam As Long\par
lParam As Long\par
dmhd As DDEML_MSG_HOOK_DATA ' new for NT\par
End Type\par
\par
Type MONCBSTRUCT\par
cb As Long\par
dwTime As Long\par
htask As Long\par
dwRet As Long\par
wType As Long\par
wFmt As Long\par
hConv As Long\par
hsz1 As Long\par
hsz2 As Long\par
hData As Long\par
dwData1 As Long\par
dwData2 As Long\par
cc As CONVCONTEXT ' new for NT for XTYP_CONNECT callbacks\par
cbData As Long ' new for NT for data peeking\par
Data(8) As Long ' new for NT for data peeking\par
End Type\par
\par
Type MONHSZSTRUCT\par
cb As Long\par
fsAction As Long ' MH_ value\par
dwTime As Long\par
hsz As Long\par
htask As Long\par
str As Byte\par
End Type\par
\par
Public Const MH_CREATE = 1\par
Public Const MH_KEEP = 2\par
Public Const MH_DELETE = 3\par
Public Const MH_CLEANUP = 4\par
\par
Type MONERRSTRUCT\par
cb As Long\par
wLastError As Long\par
dwTime As Long\par
htask As Long\par
End Type\par
\par
Type MONLINKSTRUCT\par
cb As Long\par
dwTime As Long\par
htask As Long\par
fEstablished As Long\par
fNoData As Long\par
hszSvc As Long\par
hszTopic As Long\par
hszItem As Long\par
wFmt As Long\par
fServer As Long\par
hConvServer As Long\par
hConvClient As Long\par
End Type\par
\par
Type MONCONVSTRUCT\par
cb As Long\par
fConnect As Long\par
dwTime As Long\par
htask As Long\par
hszSvc As Long\par
hszTopic As Long\par
hConvClient As Long ' Globally unique value != apps local hConv\par
hConvServer As Long ' Globally unique value != apps local hConv\par
End Type\par
\par
Public Const MAX_MONITORS = 4\par
Public Const APPCLASS_MONITOR = &H1&\par
Public Const XTYP_MONITOR = (&HF0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)\par
\par
' Callback filter flags for use with MONITOR apps - 0 implies no monitor callbacks\par
Public Const MF_HSZ_INFO = &H1000000\par
Public Const MF_SENDMSGS = &H2000000\par
Public Const MF_POSTMSGS = &H4000000\par
Public Const MF_CALLBACKS = &H8000000\par
Public Const MF_ERRORS = &H10000000\par
Public Const MF_LINKS = &H20000000\par
Public Const MF_CONV = &H40000000\par
\par
Public Const MF_MASK = &HFF000000\par
\par
' -----------------------------------------\par
' Win32 API error code definitions\par
' -----------------------------------------\par
' This section contains the error code definitions for the Win32 API functions.\par
\par
' NO_ERROR\par
Public Const NO_ERROR = 0 ' dderror\par
\par
' The configuration registry database operation completed successfully.\par
Public Const ERROR_SUCCESS = 0&\par
\par
' Incorrect function.\par
Public Const ERROR_INVALID_FUNCTION = 1 ' dderror\par
\par
' The system cannot find the file specified.\par
Public Const ERROR_FILE_NOT_FOUND = 2&\par
\par
' The system cannot find the path specified.\par
Public Const ERROR_PATH_NOT_FOUND = 3&\par
\par
' The system cannot open the file.\par
Public Const ERROR_TOO_MANY_OPEN_FILES = 4&\par
\par
' Access is denied.\par
Public Const ERROR_ACCESS_DENIED = 5&\par
\par
' The handle is invalid.\par
Public Const ERROR_INVALID_HANDLE = 6&\par
\par
' The storage control blocks were destroyed.\par
Public Const ERROR_ARENA_TRASHED = 7&\par
\par
' Not enough storage is available to process this command.\par
Public Const ERROR_NOT_ENOUGH_MEMORY = 8 ' dderror\par
\par
' The storage control block address is invalid.\par
Public Const ERROR_INVALID_BLOCK = 9&\par
\par
' The environment is incorrect.\par
Public Const ERROR_BAD_ENVIRONMENT = 10&\par
\par
' An attempt was made to load a program with an\par
' incorrect format.\par
Public Const ERROR_BAD_FORMAT = 11&\par
\par
' The access code is invalid.\par
Public Const ERROR_INVALID_ACCESS = 12&\par
\par
' The data is invalid.\par
Public Const ERROR_INVALID_DATA = 13&\par
\par
' Not enough storage is available to complete this operation.\par
Public Const ERROR_OUTOFMEMORY = 14&\par
\par
' The system cannot find the drive specified.\par
Public Const ERROR_INVALID_DRIVE = 15&\par
\par
' The directory cannot be removed.\par
Public Const ERROR_CURRENT_DIRECTORY = 16&\par
\par
' The system cannot move the file\par
' to a different disk drive.\par
Public Const ERROR_NOT_SAME_DEVICE = 17&\par
\par
' There are no more files.\par
Public Const ERROR_NO_MORE_FILES = 18&\par
\par
' The media is write protected.\par
Public Const ERROR_WRITE_PROTECT = 19&\par
\par
' The system cannot find the device specified.\par
Public Const ERROR_BAD_UNIT = 20&\par
\par
' The device is not ready.\par
Public Const ERROR_NOT_READY = 21&\par
\par
' The device does not recognize the command.\par
Public Const ERROR_BAD_COMMAND = 22&\par
\par
' Data error (cyclic redundancy check)\par
Public Const ERROR_CRC = 23&\par
\par
' The program issued a command but the\par
' command length is incorrect.\par
Public Const ERROR_BAD_LENGTH = 24&\par
\par
' The drive cannot locate a specific\par
' area or track on the disk.\par
Public Const ERROR_SEEK = 25&\par
\par
' The specified disk or diskette cannot be accessed.\par
Public Const ERROR_NOT_DOS_DISK = 26&\par
\par
' The drive cannot find the sector requested.\par
Public Const ERROR_SECTOR_NOT_FOUND = 27&\par
\par
' The printer is out of paper.\par
Public Const ERROR_OUT_OF_PAPER = 28&\par
\par
' The system cannot write to the specified device.\par
Public Const ERROR_WRITE_FAULT = 29&\par
\par
' The system cannot read from the specified device.\par
Public Const ERROR_READ_FAULT = 30&\par
\par
' A device attached to the system is not functioning.\par
Public Const ERROR_GEN_FAILURE = 31&\par
\par
' The process cannot access the file because\par
' it is being used by another process.\par
Public Const ERROR_SHARING_VIOLATION = 32&\par
\par
' The process cannot access the file because\par
' another process has locked a portion of the file.\par
Public Const ERROR_LOCK_VIOLATION = 33&\par
\par
' The wrong diskette is in the drive.\par
' Insert %2 (Volume Serial Number: %3)\par
' into drive %1.\par
Public Const ERROR_WRONG_DISK = 34&\par
\par
' Too many files opened for sharing.\par
Public Const ERROR_SHARING_BUFFER_EXCEEDED = 36&\par
\par
' Reached end of file.\par
Public Const ERROR_HANDLE_EOF = 38&\par
\par
' The disk is full.\par
Public Const ERROR_HANDLE_DISK_FULL = 39&\par
\par
' The network request is not supported.\par
Public Const ERROR_NOT_SUPPORTED = 50&\par
\par
' The remote computer is not available.\par
Public Const ERROR_REM_NOT_LIST = 51&\par
\par
' A duplicate name exists on the network.\par
Public Const ERROR_DUP_NAME = 52&\par
\par
' The network path was not found.\par
Public Const ERROR_BAD_NETPATH = 53&\par
\par
' The network is busy.\par
Public Const ERROR_NETWORK_BUSY = 54&\par
\par
' The specified network resource or device is no longer\par
' available.\par
Public Const ERROR_DEV_NOT_EXIST = 55 ' dderror\par
\par
' The network BIOS command limit has been reached.\par
Public Const ERROR_TOO_MANY_CMDS = 56&\par
\par
' A network adapter hardware error occurred.\par
Public Const ERROR_ADAP_HDW_ERR = 57&\par
\par
' The specified server cannot perform the requested\par
' operation.\par
Public Const ERROR_BAD_NET_RESP = 58&\par
\par
' An unexpected network error occurred.\par
Public Const ERROR_UNEXP_NET_ERR = 59&\par
\par
' The remote adapter is not compatible.\par
Public Const ERROR_BAD_REM_ADAP = 60&\par
\par
' The printer queue is full.\par
Public Const ERROR_PRINTQ_FULL = 61&\par
\par
' Space to store the file waiting to be printed is\par
' not available on the server.\par
Public Const ERROR_NO_SPOOL_SPACE = 62&\par
\par
' Your file waiting to be printed was deleted.\par
Public Const ERROR_PRINT_CANCELLED = 63&\par
\par
' The specified network name is no longer available.\par
Public Const ERROR_NETNAME_DELETED = 64&\par
\par
' Network access is denied.\par
Public Const ERROR_NETWORK_ACCESS_DENIED = 65&\par
\par
' The network resource type is not correct.\par
Public Const ERROR_BAD_DEV_TYPE = 66&\par
\par
' The network name cannot be found.\par
Public Const ERROR_BAD_NET_NAME = 67&\par
\par
' The name limit for the local computer network\par
' adapter card was exceeded.\par
Public Const ERROR_TOO_MANY_NAMES = 68&\par
\par
' The network BIOS session limit was exceeded.\par
Public Const ERROR_TOO_MANY_SESS = 69&\par
\par
' The remote server has been paused or is in the\par
' process of being started.\par
Public Const ERROR_SHARING_PAUSED = 70&\par
\par
' The network request was not accepted.\par
Public Const ERROR_REQ_NOT_ACCEP = 71&\par
\par
' The specified printer or disk device has been paused.\par
Public Const ERROR_REDIR_PAUSED = 72&\par
\par
' The file exists.\par
Public Const ERROR_FILE_EXISTS = 80&\par
\par
' The directory or file cannot be created.\par
Public Const ERROR_CANNOT_MAKE = 82&\par
\par
' Fail on INT 24\par
Public Const ERROR_FAIL_I24 = 83&\par
\par
' Storage to process this request is not available.\par
Public Const ERROR_OUT_OF_STRUCTURES = 84&\par
\par
' The local device name is already in use.\par
Public Const ERROR_ALREADY_ASSIGNED = 85&\par
\par
' The specified network password is not correct.\par
Public Const ERROR_INVALID_PASSWORD = 86&\par
\par
' The parameter is incorrect.\par
Public Const ERROR_INVALID_PARAMETER = 87 ' dderror\par
\par
' A write fault occurred on the network.\par
Public Const ERROR_NET_WRITE_FAULT = 88&\par
\par
' The system cannot start another process at\par
' this time.\par
Public Const ERROR_NO_PROC_SLOTS = 89&\par
\par
' Cannot create another system semaphore.\par
Public Const ERROR_TOO_MANY_SEMAPHORES = 100&\par
\par
' The exclusive semaphore is owned by another process.\par
Public Const ERROR_EXCL_SEM_ALREADY_OWNED = 101&\par
\par
' The semaphore is set and cannot be closed.\par
Public Const ERROR_SEM_IS_SET = 102&\par
\par
' The semaphore cannot be set again.\par
Public Const ERROR_TOO_MANY_SEM_REQUESTS = 103&\par
\par
' Cannot request exclusive semaphores at interrupt time.\par
Public Const ERROR_INVALID_AT_INTERRUPT_TIME = 104&\par
\par
' The previous ownership of this semaphore has ended.\par
Public Const ERROR_SEM_OWNER_DIED = 105&\par
\par
' Insert the diskette for drive %1.\par
Public Const ERROR_SEM_USER_LIMIT = 106&\par
\par
' Program stopped because alternate diskette was not inserted.\par
Public Const ERROR_DISK_CHANGE = 107&\par
\par
' The disk is in use or locked by\par
' another process.\par
Public Const ERROR_DRIVE_LOCKED = 108&\par
\par
' The pipe has been ended.\par
Public Const ERROR_BROKEN_PIPE = 109&\par
\par
' The system cannot open the\par
' device or file specified.\par
Public Const ERROR_OPEN_FAILED = 110&\par
\par
' The file name is too long.\par
Public Const ERROR_BUFFER_OVERFLOW = 111&\par
\par
' There is not enough space on the disk.\par
Public Const ERROR_DISK_FULL = 112&\par
\par
' No more internal file identifiers available.\par
Public Const ERROR_NO_MORE_SEARCH_HANDLES = 113&\par
\par
' The target internal file identifier is incorrect.\par
Public Const ERROR_INVALID_TARGET_HANDLE = 114&\par
\par
' The IOCTL call made by the application program is\par
' not correct.\par
Public Const ERROR_INVALID_CATEGORY = 117&\par
\par
' The verify-on-write switch parameter value is not\par
' correct.\par
Public Const ERROR_INVALID_VERIFY_SWITCH = 118&\par
\par
' The system does not support the command requested.\par
Public Const ERROR_BAD_DRIVER_LEVEL = 119&\par
\par
' This function is only valid in Windows NT mode.\par
Public Const ERROR_CALL_NOT_IMPLEMENTED = 120&\par
\par
' The semaphore timeout period has expired.\par
Public Const ERROR_SEM_TIMEOUT = 121&\par
\par
' The data area passed to a system call is too\par
' small.\par
Public Const ERROR_INSUFFICIENT_BUFFER = 122 ' dderror\par
\par
' The filename, directory name, or volume label syntax is incorrect.\par
Public Const ERROR_INVALID_NAME = 123&\par
\par
' The system call level is not correct.\par
Public Const ERROR_INVALID_LEVEL = 124&\par
\par
' The disk has no volume label.\par
Public Const ERROR_NO_VOLUME_LABEL = 125&\par
\par
' The specified module could not be found.\par
Public Const ERROR_MOD_NOT_FOUND = 126&\par
\par
' The specified procedure could not be found.\par
Public Const ERROR_PROC_NOT_FOUND = 127&\par
\par
' There are no child processes to wait for.\par
Public Const ERROR_WAIT_NO_CHILDREN = 128&\par
\par
' The %1 application cannot be run in Windows NT mode.\par
Public Const ERROR_CHILD_NOT_COMPLETE = 129&\par
\par
' Attempt to use a file handle to an open disk partition for an\par
' operation other than raw disk I/O.\par
Public Const ERROR_DIRECT_ACCESS_HANDLE = 130&\par
\par
' An attempt was made to move the file pointer before the beginning of the file.\par
Public Const ERROR_NEGATIVE_SEEK = 131&\par
\par
' The file pointer cannot be set on the specified device or file.\par
Public Const ERROR_SEEK_ON_DEVICE = 132&\par
\par
' A JOIN or SUBST command\par
' cannot be used for a drive that\par
' contains previously joined drives.\par
Public Const ERROR_IS_JOIN_TARGET = 133&\par
\par
' An attempt was made to use a\par
' JOIN or SUBST command on a drive that has\par
' already been joined.\par
Public Const ERROR_IS_JOINED = 134&\par
\par
' An attempt was made to use a\par
' JOIN or SUBST command on a drive that has\par
' already been substituted.\par
Public Const ERROR_IS_SUBSTED = 135&\par
\par
' The system tried to delete\par
' the JOIN of a drive that is not joined.\par
Public Const ERROR_NOT_JOINED = 136&\par
\par
' The system tried to delete the\par
' substitution of a drive that is not substituted.\par
Public Const ERROR_NOT_SUBSTED = 137&\par
\par
' The system tried to join a drive\par
' to a directory on a joined drive.\par
Public Const ERROR_JOIN_TO_JOIN = 138&\par
\par
' The system tried to substitute a\par
' drive to a directory on a substituted drive.\par
Public Const ERROR_SUBST_TO_SUBST = 139&\par
\par
' The system tried to join a drive to\par
' a directory on a substituted drive.\par
Public Const ERROR_JOIN_TO_SUBST = 140&\par
\par
' The system tried to SUBST a drive\par
' to a directory on a joined drive.\par
Public Const ERROR_SUBST_TO_JOIN = 141&\par
\par
' The system cannot perform a JOIN or SUBST at this time.\par
Public Const ERROR_BUSY_DRIVE = 142&\par
\par
' The system cannot join or substitute a\par
' drive to or for a directory on the same drive.\par
Public Const ERROR_SAME_DRIVE = 143&\par
\par
' The directory is not a subdirectory of the root directory.\par
Public Const ERROR_DIR_NOT_ROOT = 144&\par
\par
' The directory is not empty.\par
Public Const ERROR_DIR_NOT_EMPTY = 145&\par
\par
' The path specified is being used in\par
' a substitute.\par
Public Const ERROR_IS_SUBST_PATH = 146&\par
\par
' Not enough resources are available to\par
' process this command.\par
Public Const ERROR_IS_JOIN_PATH = 147&\par
\par
' The path specified cannot be used at this time.\par
Public Const ERROR_PATH_BUSY = 148&\par
\par
' An attempt was made to join\par
' or substitute a drive for which a directory\par
' on the drive is the target of a previous\par
' substitute.\par
Public Const ERROR_IS_SUBST_TARGET = 149&\par
\par
' System trace information was not specified in your\par
' CONFIG.SYS file, or tracing is disallowed.\par
Public Const ERROR_SYSTEM_TRACE = 150&\par
\par
' The number of specified semaphore events for\par
' DosMuxSemWait is not correct.\par
Public Const ERROR_INVALID_EVENT_COUNT = 151&\par
\par
' DosMuxSemWait did not execute; too many semaphores\par
' are already set.\par
Public Const ERROR_TOO_MANY_MUXWAITERS = 152&\par
\par
' The DosMuxSemWait list is not correct.\par
Public Const ERROR_INVALID_LIST_FORMAT = 153&\par
\par
' The volume label you entered exceeds the\par
' 11 character limit. The first 11 characters were written\par
' to disk. Any characters that exceeded the 11 character limit\par
' were automatically deleted.\par
Public Const ERROR_LABEL_TOO_LONG = 154&\par
\par
' Cannot create another thread.\par
Public Const ERROR_TOO_MANY_TCBS = 155&\par
\par
' The recipient process has refused the signal.\par
Public Const ERROR_SIGNAL_REFUSED = 156&\par
\par
' The segment is already discarded and cannot be locked.\par
Public Const ERROR_DISCARDED = 157&\par
\par
' The segment is already unlocked.\par
Public Const ERROR_NOT_LOCKED = 158&\par
\par
' The address for the thread ID is not correct.\par
Public Const ERROR_BAD_THREADID_ADDR = 159&\par
\par
' The argument string passed to DosExecPgm is not correct.\par
Public Const ERROR_BAD_ARGUMENTS = 160&\par
\par
' The specified path is invalid.\par
Public Const ERROR_BAD_PATHNAME = 161&\par
\par
' A signal is already pending.\par
Public Const ERROR_SIGNAL_PENDING = 162&\par
\par
' No more threads can be created in the system.\par
Public Const ERROR_MAX_THRDS_REACHED = 164&\par
\par
' Unable to lock a region of a file.\par
Public Const ERROR_LOCK_FAILED = 167&\par
\par
' The requested resource is in use.\par
Public Const ERROR_BUSY = 170&\par
\par
' A lock request was not outstanding for the supplied cancel region.\par
Public Const ERROR_CANCEL_VIOLATION = 173&\par
\par
' The file system does not support atomic changes to the lock type.\par
Public Const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174&\par
\par
' The system detected a segment number that was not correct.\par
Public Const ERROR_INVALID_SEGMENT_NUMBER = 180&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_ORDINAL = 182&\par
\par
' Cannot create a file when that file already exists.\par
Public Const ERROR_ALREADY_EXISTS = 183&\par
\par
' The flag passed is not correct.\par
Public Const ERROR_INVALID_FLAG_NUMBER = 186&\par
\par
' The specified system semaphore name was not found.\par
Public Const ERROR_SEM_NOT_FOUND = 187&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_STARTING_CODESEG = 188&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_STACKSEG = 189&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_MODULETYPE = 190&\par
\par
' Cannot run %1 in Windows NT mode.\par
Public Const ERROR_INVALID_EXE_SIGNATURE = 191&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_EXE_MARKED_INVALID = 192&\par
\par
' %1 is not a valid Windows NT application.\par
Public Const ERROR_BAD_EXE_FORMAT = 193&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_ITERATED_DATA_EXCEEDS_64k = 194&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_MINALLOCSIZE = 195&\par
\par
' The operating system cannot run this\par
' application program.\par
Public Const ERROR_DYNLINK_FROM_INVALID_RING = 196&\par
\par
' The operating system is not presently\par
' configured to run this application.\par
Public Const ERROR_IOPL_NOT_ENABLED = 197&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INVALID_SEGDPL = 198&\par
\par
' The operating system cannot run this\par
' application program.\par
Public Const ERROR_AUTODATASEG_EXCEEDS_64k = 199&\par
\par
' The code segment cannot be greater than or equal to 64KB.\par
Public Const ERROR_RING2SEG_MUST_BE_MOVABLE = 200&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201&\par
\par
' The operating system cannot run %1.\par
Public Const ERROR_INFLOOP_IN_RELOC_CHAIN = 202&\par
\par
' The system could not find the environment\par
' option that was entered.\par
Public Const ERROR_ENVVAR_NOT_FOUND = 203&\par
\par
' No process in the command subtree has a\par
' signal handler.\par
Public Const ERROR_NO_SIGNAL_SENT = 205&\par
\par
' The filename or extension is too long.\par
Public Const ERROR_FILENAME_EXCED_RANGE = 206&\par
\par
' The ring 2 stack is in use.\par
Public Const ERROR_RING2_STACK_IN_USE = 207&\par
\par
' The Global filename characters, or ?, are entered\par
' incorrectly or too many Global filename characters are specified.\par
Public Const ERROR_META_EXPANSION_TOO_LONG = 208&\par
\par
' The signal being posted is not correct.\par
Public Const ERROR_INVALID_SIGNAL_NUMBER = 209&\par
\par
' The signal handler cannot be set.\par
Public Const ERROR_THREAD_1_INACTIVE = 210&\par
\par
' The segment is locked and cannot be reallocated.\par
Public Const ERROR_LOCKED = 212&\par
\par
' Too many dynamic link modules are attached to this\par
' program or dynamic link module.\par
Public Const ERROR_TOO_MANY_MODULES = 214&\par
\par
' Can't nest calls to LoadModule.\par
Public Const ERROR_NESTING_NOT_ALLOWED = 215&\par
\par
' The pipe state is invalid.\par
Public Const ERROR_BAD_PIPE = 230&\par
\par
' All pipe instances are busy.\par
Public Const ERROR_PIPE_BUSY = 231&\par
\par
' The pipe is being closed.\par
Public Const ERROR_NO_DATA = 232&\par
\par
' No process is on the other end of the pipe.\par
Public Const ERROR_PIPE_NOT_CONNECTED = 233&\par
\par
' More data is available.\par
Public Const ERROR_MORE_DATA = 234 ' dderror\par
\par
' The session was cancelled.\par
Public Const ERROR_VC_DISCONNECTED = 240&\par
\par
' The specified extended attribute name was invalid.\par
Public Const ERROR_INVALID_EA_NAME = 254&\par
\par
' The extended attributes are inconsistent.\par
Public Const ERROR_EA_LIST_INCONSISTENT = 255&\par
\par
' No more data is available.\par
Public Const ERROR_NO_MORE_ITEMS = 259&\par
\par
' The Copy API cannot be used.\par
Public Const ERROR_CANNOT_COPY = 266&\par
\par
' The directory name is invalid.\par
Public Const ERROR_DIRECTORY = 267&\par
\par
' The extended attributes did not fit in the buffer.\par
Public Const ERROR_EAS_DIDNT_FIT = 275&\par
\par
' The extended attribute file on the mounted file system is corrupt.\par
Public Const ERROR_EA_FILE_CORRUPT = 276&\par
\par
' The extended attribute table file is full.\par
Public Const ERROR_EA_TABLE_FULL = 277&\par
\par
' The specified extended attribute handle is invalid.\par
Public Const ERROR_INVALID_EA_HANDLE = 278&\par
\par
' The mounted file system does not support extended attributes.\par
Public Const ERROR_EAS_NOT_SUPPORTED = 282&\par
\par
' Attempt to release mutex not owned by caller.\par
Public Const ERROR_NOT_OWNER = 288&\par
\par
' Too many posts were made to a semaphore.\par
Public Const ERROR_TOO_MANY_POSTS = 298&\par
\par
' The system cannot find message for message number 0x%1\par
' in message file for %2.\par
Public Const ERROR_MR_MID_NOT_FOUND = 317&\par
\par
' Attempt to access invalid address.\par
Public Const ERROR_INVALID_ADDRESS = 487&\par
\par
' Arithmetic result exceeded 32 bits.\par
Public Const ERROR_ARITHMETIC_OVERFLOW = 534&\par
\par
' There is a process on other end of the pipe.\par
Public Const ERROR_PIPE_CONNECTED = 535&\par
\par
' Waiting for a process to open the other end of the pipe.\par
Public Const ERROR_PIPE_LISTENING = 536&\par
\par
' Access to the extended attribute was denied.\par
Public Const ERROR_EA_ACCESS_DENIED = 994&\par
\par
' The I/O operation has been aborted because of either a thread exit\par
' or an application request.\par
Public Const ERROR_OPERATION_ABORTED = 995&\par
\par
' Overlapped I/O event is not in a signalled state.\par
Public Const ERROR_IO_INCOMPLETE = 996&\par
\par
' Overlapped I/O operation is in progress.\par
Public Const ERROR_IO_PENDING = 997 ' dderror\par
\par
' Invalid access to memory location.\par
Public Const ERROR_NOACCESS = 998&\par
\par
' Error performing inpage operation.\par
Public Const ERROR_SWAPERROR = 999&\par
\par
' Recursion too deep, stack overflowed.\par
Public Const ERROR_STACK_OVERFLOW = 1001&\par
\par
' The window cannot act on the sent message.\par
Public Const ERROR_INVALID_MESSAGE = 1002&\par
\par
' Cannot complete this function.\par
Public Const ERROR_CAN_NOT_COMPLETE = 1003&\par
\par
' Invalid flags.\par
Public Const ERROR_INVALID_FLAGS = 1004&\par
\par
' The volume does not contain a recognized file system.\par
' Please make sure that all required file system drivers are loaded and that the\par
' volume is not corrupt.\par
Public Const ERROR_UNRECOGNIZED_VOLUME = 1005&\par
\par
' The volume for a file has been externally altered such that the\par
' opened file is no longer valid.\par
Public Const ERROR_FILE_INVALID = 1006&\par
\par
' The requested operation cannot be performed in full-screen mode.\par
Public Const ERROR_FULLSCREEN_MODE = 1007&\par
\par
' An attempt was made to reference a token that does not exist.\par
Public Const ERROR_NO_TOKEN = 1008&\par
\par
' The configuration registry database is corrupt.\par
Public Const ERROR_BADDB = 1009&\par
\par
' The configuration registry key is invalid.\par
Public Const ERROR_BADKEY = 1010&\par
\par
' The configuration registry key could not be opened.\par
Public Const ERROR_CANTOPEN = 1011&\par
\par
' The configuration registry key could not be read.\par
Public Const ERROR_CANTREAD = 1012&\par
\par
' The configuration registry key could not be written.\par
Public Const ERROR_CANTWRITE = 1013&\par
\par
' One of the files in the Registry database had to be recovered\par
' by use of a log or alternate copy. The recovery was successful.\par
Public Const ERROR_REGISTRY_RECOVERED = 1014&\par
\par
' The Registry is corrupt. The structure of one of the files that contains\par
' Registry data is corrupt, or the system's image of the file in memory\par
' is corrupt, or the file could not be recovered because the alternate\par
' copy or log was absent or corrupt.\par
Public Const ERROR_REGISTRY_CORRUPT = 1015&\par
\par
' An I/O operation initiated by the Registry failed unrecoverably.\par
' The Registry could not read in, or write out, or flush, one of the files\par
' that contain the system's image of the Registry.\par
Public Const ERROR_REGISTRY_IO_FAILED = 1016&\par
\par
' The system has attempted to load or restore a file into the Registry, but the\par
' specified file is not in a Registry file format.\par
Public Const ERROR_NOT_REGISTRY_FILE = 1017&\par
\par
' Illegal operation attempted on a Registry key which has been marked for deletion.\par
Public Const ERROR_KEY_DELETED = 1018&\par
\par
' System could not allocate the required space in a Registry log.\par
Public Const ERROR_NO_LOG_SPACE = 1019&\par
\par
' Cannot create a symbolic link in a Registry key that already\par
' has subkeys or values.\par
Public Const ERROR_KEY_HAS_CHILDREN = 1020&\par
\par
' Cannot create a stable subkey under a volatile parent key.\par
Public Const ERROR_CHILD_MUST_BE_VOLATILE = 1021&\par
\par
' A notify change request is being completed and the information\par
' is not being returned in the caller's buffer. The caller now\par
' needs to enumerate the files to find the changes.\par
Public Const ERROR_NOTIFY_ENUM_DIR = 1022&\par
\par
' A stop control has been sent to a service which other running services\par
' are dependent on.\par
Public Const ERROR_DEPENDENT_SERVICES_RUNNING = 1051&\par
\par
' The requested control is not valid for this service\par
Public Const ERROR_INVALID_SERVICE_CONTROL = 1052&\par
\par
' The service did not respond to the start or control request in a timely\par
' fashion.\par
Public Const ERROR_SERVICE_REQUEST_TIMEOUT = 1053&\par
\par
' A thread could not be created for the service.\par
Public Const ERROR_SERVICE_NO_THREAD = 1054&\par
\par
' The service database is locked.\par
Public Const ERROR_SERVICE_DATABASE_LOCKED = 1055&\par
\par
' An instance of the service is already running.\par
Public Const ERROR_SERVICE_ALREADY_RUNNING = 1056&\par
\par
' The account name is invalid or does not exist.\par
Public Const ERROR_INVALID_SERVICE_ACCOUNT = 1057&\par
\par
' The specified service is disabled and cannot be started.\par
Public Const ERROR_SERVICE_DISABLED = 1058&\par
\par
' Circular service dependency was specified.\par
Public Const ERROR_CIRCULAR_DEPENDENCY = 1059&\par
\par
' The specified service does not exist as an installed service.\par
Public Const ERROR_SERVICE_DOES_NOT_EXIST = 1060&\par
\par
' The service cannot accept control messages at this time.\par
Public Const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061&\par
\par
' The service has not been started.\par
Public Const ERROR_SERVICE_NOT_ACTIVE = 1062&\par
\par
' The service process could not connect to the service controller.\par
Public Const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063&\par
\par
' An exception occurred in the service when handling the control request.\par
Public Const ERROR_EXCEPTION_IN_SERVICE = 1064&\par
\par
' The database specified does not exist.\par
Public Const ERROR_DATABASE_DOES_NOT_EXIST = 1065&\par
\par
' The service has returned a service-specific error code.\par
Public Const ERROR_SERVICE_SPECIFIC_ERROR = 1066&\par
\par
' The process terminated unexpectedly.\par
Public Const ERROR_PROCESS_ABORTED = 1067&\par
\par
' The dependency service or group failed to start.\par
Public Const ERROR_SERVICE_DEPENDENCY_FAIL = 1068&\par
\par
' The service did not start due to a logon failure.\par
Public Const ERROR_SERVICE_LOGON_FAILED = 1069&\par
\par
' After starting, the service hung in a start-pending state.\par
Public Const ERROR_SERVICE_START_HANG = 1070&\par
\par
' The specified service database lock is invalid.\par
Public Const ERROR_INVALID_SERVICE_LOCK = 1071&\par
\par
' The specified service has been marked for deletion.\par
Public Const ERROR_SERVICE_MARKED_FOR_DELETE = 1072&\par
\par
' The specified service already exists.\par
Public Const ERROR_SERVICE_EXISTS = 1073&\par
\par
' The system is currently running with the last-known-good configuration.\par
Public Const ERROR_ALREADY_RUNNING_LKG = 1074&\par
\par
' The dependency service does not exist or has been marked for\par
' deletion.\par
Public Const ERROR_SERVICE_DEPENDENCY_DELETED = 1075&\par
\par
' The current boot has already been accepted for use as the\par
' last-known-good control set.\par
Public Const ERROR_BOOT_ALREADY_ACCEPTED = 1076&\par
\par
' No attempts to start the service have been made since the last boot.\par
Public Const ERROR_SERVICE_NEVER_STARTED = 1077&\par
\par
' The name is already in use as either a service name or a service display\par
' name.\par
Public Const ERROR_DUPLICATE_SERVICE_NAME = 1078&\par
\par
' The physical end of the tape has been reached.\par
Public Const ERROR_END_OF_MEDIA = 1100&\par
\par
' A tape access reached a filemark.\par
Public Const ERROR_FILEMARK_DETECTED = 1101&\par
\par
' Beginning of tape or partition was encountered.\par
Public Const ERROR_BEGINNING_OF_MEDIA = 1102&\par
\par
' A tape access reached the end of a set of files.\par
Public Const ERROR_SETMARK_DETECTED = 1103&\par
\par
' No more data is on the tape.\par
Public Const ERROR_NO_DATA_DETECTED = 1104&\par
\par
' Tape could not be partitioned.\par
Public Const ERROR_PARTITION_FAILURE = 1105&\par
\par
' When accessing a new tape of a multivolume partition, the current\par
' blocksize is incorrect.\par
Public Const ERROR_INVALID_BLOCK_LENGTH = 1106&\par
\par
' Tape partition information could not be found when loading a tape.\par
Public Const ERROR_DEVICE_NOT_PARTITIONED = 1107&\par
\par
' Unable to lock the media eject mechanism.\par
Public Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108&\par
\par
' Unable to unload the media.\par
Public Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109&\par
\par
' Media in drive may have changed.\par
Public Const ERROR_MEDIA_CHANGED = 1110&\par
\par
' The I/O bus was reset.\par
Public Const ERROR_BUS_RESET = 1111&\par
\par
' No media in drive.\par
Public Const ERROR_NO_MEDIA_IN_DRIVE = 1112&\par
\par
' No mapping for the Unicode character exists in the target multi-byte code page.\par
Public Const ERROR_NO_UNICODE_TRANSLATION = 1113&\par
\par
' A dynamic link library (DLL) initialization routine failed.\par
Public Const ERROR_DLL_INIT_FAILED = 1114&\par
\par
' A system shutdown is in progress.\par
Public Const ERROR_SHUTDOWN_IN_PROGRESS = 1115&\par
\par
' Unable to abort the system shutdown because no shutdown was in progress.\par
Public Const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116&\par
\par
' The request could not be performed because of an I/O device error.\par
Public Const ERROR_IO_DEVICE = 1117&\par
\par
' No serial device was successfully initialized. The serial driver will unload.\par
Public Const ERROR_SERIAL_NO_DEVICE = 1118&\par
\par
' Unable to open a device that was sharing an interrupt request (IRQ)\par
' with other devices. At least one other device that uses that IRQ\par
' was already opened.\par
Public Const ERROR_IRQ_BUSY = 1119&\par
\par
' A serial I/O operation was completed by another write to the serial port.\par
' (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)\par
Public Const ERROR_MORE_WRITES = 1120&\par
\par
' A serial I/O operation completed because the time-out period expired.\par
' (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)\par
Public Const ERROR_COUNTER_TIMEOUT = 1121&\par
\par
' No ID address mark was found on the floppy disk.\par
Public Const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122&\par
\par
' Mismatch between the floppy disk sector ID field and the floppy disk\par
' controller track address.\par
Public Const ERROR_FLOPPY_WRONG_CYLINDER = 1123&\par
\par
' The floppy disk controller reported an error that is not recognized\par
' by the floppy disk driver.\par
Public Const ERROR_FLOPPY_UNKNOWN_ERROR = 1124&\par
\par
' The floppy disk controller returned inconsistent results in its registers.\par
Public Const ERROR_FLOPPY_BAD_REGISTERS = 1125&\par
\par
' While accessing the hard disk, a recalibrate operation failed, even after retries.\par
Public Const ERROR_DISK_RECALIBRATE_FAILED = 1126&\par
\par
' While accessing the hard disk, a disk operation failed even after retries.\par
Public Const ERROR_DISK_OPERATION_FAILED = 1127&\par
\par
' While accessing the hard disk, a disk controller reset was needed, but\par
' even that failed.\par
Public Const ERROR_DISK_RESET_FAILED = 1128&\par
\par
' Physical end of tape encountered.\par
Public Const ERROR_EOM_OVERFLOW = 1129&\par
\par
' Not enough server storage is available to process this command.\par
Public Const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130&\par
\par
' A potential deadlock condition has been detected.\par
Public Const ERROR_POSSIBLE_DEADLOCK = 1131&\par
\par
' The base address or the file offset specified does not have the proper\par
' alignment.\par
Public Const ERROR_MAPPED_ALIGNMENT = 1132&\par
\par
' NEW for Win32\par
Public Const ERROR_INVALID_PIXEL_FORMAT = 2000\par
Public Const ERROR_BAD_DRIVER = 2001\par
Public Const ERROR_INVALID_WINDOW_STYLE = 2002\par
Public Const ERROR_METAFILE_NOT_SUPPORTED = 2003\par
Public Const ERROR_TRANSFORM_NOT_SUPPORTED = 2004\par
Public Const ERROR_CLIPPING_NOT_SUPPORTED = 2005\par
Public Const ERROR_UNKNOWN_PRINT_MONITOR = 3000\par
Public Const ERROR_PRINTER_DRIVER_IN_USE = 3001\par
Public Const ERROR_SPOOL_FILE_NOT_FOUND = 3002\par
Public Const ERROR_SPL_NO_STARTDOC = 3003\par
Public Const ERROR_SPL_NO_ADDJOB = 3004\par
Public Const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005\par
Public Const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006\par
Public Const ERROR_WINS_INTERNAL = 4000\par
Public Const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001\par
Public Const ERROR_STATIC_INIT = 4002\par
Public Const ERROR_INC_BACKUP = 4003\par
Public Const ERROR_FULL_BACKUP = 4004\par
Public Const ERROR_REC_NON_EXISTENT = 4005\par
Public Const ERROR_RPL_NOT_ALLOWED = 4006\par
Public Const SEVERITY_SUCCESS = 0\par
Public Const SEVERITY_ERROR = 1\par
Public Const FACILITY_NT_BIT = &H10000000\par
Public Const NOERROR = 0\par
Public Const E_UNEXPECTED = &H8000FFFF\par
Public Const E_NOTIMPL = &H80004001\par
Public Const E_OUTOFMEMORY = &H8007000E\par
Public Const E_INVALIDARG = &H80070057\par
Public Const E_NOINTERFACE = &H80004002\par
Public Const E_POINTER = &H80004003\par
Public Const E_HANDLE = &H80070006\par
Public Const E_ABORT = &H80004004\par
Public Const E_FAIL = &H80004005\par
Public Const E_ACCESSDENIED = &H80070005\par
Public Const CO_E_INIT_TLS = &H80004006\par
Public Const CO_E_INIT_SHARED_ALLOCATOR = &H80004007\par
Public Const CO_E_INIT_MEMORY_ALLOCATOR = &H80004008\par
Public Const CO_E_INIT_CLASS_CACHE = &H80004009\par
Public Const CO_E_INIT_RPC_CHANNEL = &H8000400A\par
Public Const CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B\par
Public Const CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C\par
Public Const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D\par
Public Const CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E\par
Public Const CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F\par
Public Const CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010\par
Public Const CO_E_INIT_SCM_EXEC_FAILURE = &H80004011\par
Public Const CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012\par
Public Const S_OK = &H0\par
Public Const S_FALSE = &H1\par
Public Const OLE_E_FIRST = &H80040000\par
Public Const OLE_E_LAST = &H800400FF\par
Public Const OLE_S_FIRST = &H40000\par
Public Const OLE_S_LAST = &H400FF\par
Public Const OLE_E_OLEVERB = &H80040000\par
Public Const OLE_E_ADVF = &H80040001\par
Public Const OLE_E_ENUM_NOMORE = &H80040002\par
Public Const OLE_E_ADVISENOTSUPPORTED = &H80040003\par
Public Const OLE_E_NOCONNECTION = &H80040004\par
Public Const OLE_E_NOTRUNNING = &H80040005\par
Public Const OLE_E_NOCACHE = &H80040006\par
Public Const OLE_E_BLANK = &H80040007\par
Public Const OLE_E_CLASSDIFF = &H80040008\par
Public Const OLE_E_CANT_GETMONIKER = &H80040009\par
Public Const OLE_E_CANT_BINDTOSOURCE = &H8004000A\par
Public Const OLE_E_STATIC = &H8004000B\par
Public Const OLE_E_PROMPTSAVECANCELLED = &H8004000C\par
Public Const OLE_E_INVALIDRECT = &H8004000D\par
Public Const OLE_E_WRONGCOMPOBJ = &H8004000E\par
Public Const OLE_E_INVALIDHWND = &H8004000F\par
Public Const OLE_E_NOT_INPLACEACTIVE = &H80040010\par
Public Const OLE_E_CANTCONVERT = &H80040011\par
Public Const OLE_E_NOSTORAGE = &H80040012\par
Public Const DV_E_FORMATETC = &H80040064\par
Public Const DV_E_DVTARGETDEVICE = &H80040065\par
Public Const DV_E_STGMEDIUM = &H80040066\par
Public Const DV_E_STATDATA = &H80040067\par
Public Const DV_E_LINDEX = &H80040068\par
Public Const DV_E_TYMED = &H80040069\par
Public Const DV_E_CLIPFORMAT = &H8004006A\par
Public Const DV_E_DVASPECT = &H8004006B\par
Public Const DV_E_DVTARGETDEVICE_SIZE = &H8004006C\par
Public Const DV_E_NOIVIEWOBJECT = &H8004006D\par
Public Const DRAGDROP_E_FIRST = &H80040100\par
Public Const DRAGDROP_E_LAST = &H8004010F\par
Public Const DRAGDROP_S_FIRST = &H40100\par
Public Const DRAGDROP_S_LAST = &H4010F\par
Public Const DRAGDROP_E_NOTREGISTERED = &H80040100\par
Public Const DRAGDROP_E_ALREADYREGISTERED = &H80040101\par
Public Const DRAGDROP_E_INVALIDHWND = &H80040102\par
Public Const CLASSFACTORY_E_FIRST = &H80040110\par
Public Const CLASSFACTORY_E_LAST = &H8004011F\par
Public Const CLASSFACTORY_S_FIRST = &H40110\par
Public Const CLASSFACTORY_S_LAST = &H4011F\par
Public Const CLASS_E_NOAGGREGATION = &H80040110\par
Public Const CLASS_E_CLASSNOTAVAILABLE = &H80040111\par
Public Const MARSHAL_E_FIRST = &H80040120\par
Public Const MARSHAL_E_LAST = &H8004012F\par
Public Const MARSHAL_S_FIRST = &H40120\par
Public Const MARSHAL_S_LAST = &H4012F\par
Public Const DATA_E_FIRST = &H80040130\par
Public Const DATA_E_LAST = &H8004013F\par
Public Const DATA_S_FIRST = &H40130\par
Public Const DATA_S_LAST = &H4013F\par
Public Const VIEW_E_FIRST = &H80040140\par
Public Const VIEW_E_LAST = &H8004014F\par
Public Const VIEW_S_FIRST = &H40140\par
Public Const VIEW_S_LAST = &H4014F\par
Public Const VIEW_E_DRAW = &H80040140\par
Public Const REGDB_E_FIRST = &H80040150\par
Public Const REGDB_E_LAST = &H8004015F\par
Public Const REGDB_S_FIRST = &H40150\par
Public Const REGDB_S_LAST = &H4015F\par
Public Const REGDB_E_READREGDB = &H80040150\par
Public Const REGDB_E_WRITEREGDB = &H80040151\par
Public Const REGDB_E_KEYMISSING = &H80040152\par
Public Const REGDB_E_INVALIDVALUE = &H80040153\par
Public Const REGDB_E_CLASSNOTREG = &H80040154\par
Public Const REGDB_E_IIDNOTREG = &H80040155\par
Public Const CACHE_E_FIRST = &H80040170\par
Public Const CACHE_E_LAST = &H8004017F\par
Public Const CACHE_S_FIRST = &H40170\par
Public Const CACHE_S_LAST = &H4017F\par
Public Const CACHE_E_NOCACHE_UPDATED = &H80040170\par
Public Const OLEOBJ_E_FIRST = &H80040180\par
Public Const OLEOBJ_E_LAST = &H8004018F\par
Public Const OLEOBJ_S_FIRST = &H40180\par
Public Const OLEOBJ_S_LAST = &H4018F\par
Public Const OLEOBJ_E_NOVERBS = &H80040180\par
Public Const OLEOBJ_E_INVALIDVERB = &H80040181\par
Public Const CLIENTSITE_E_FIRST = &H80040190\par
Public Const CLIENTSITE_E_LAST = &H8004019F\par
Public Const CLIENTSITE_S_FIRST = &H40190\par
Public Const CLIENTSITE_S_LAST = &H4019F\par
Public Const INPLACE_E_NOTUNDOABLE = &H800401A0\par
Public Const INPLACE_E_NOTOOLSPACE = &H800401A1\par
Public Const INPLACE_E_FIRST = &H800401A0\par
Public Const INPLACE_E_LAST = &H800401AF\par
Public Const INPLACE_S_FIRST = &H401A0\par
Public Const INPLACE_S_LAST = &H401AF\par
Public Const ENUM_E_FIRST = &H800401B0\par
Public Const ENUM_E_LAST = &H800401BF\par
Public Const ENUM_S_FIRST = &H401B0\par
Public Const ENUM_S_LAST = &H401BF\par
Public Const CONVERT10_E_FIRST = &H800401C0\par
Public Const CONVERT10_E_LAST = &H800401CF\par
Public Const CONVERT10_S_FIRST = &H401C0\par
Public Const CONVERT10_S_LAST = &H401CF\par
Public Const CONVERT10_E_OLESTREAM_GET = &H800401C0\par
Public Const CONVERT10_E_OLESTREAM_PUT = &H800401C1\par
Public Const CONVERT10_E_OLESTREAM_FMT = &H800401C2\par
Public Const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3\par
Public Const CONVERT10_E_STG_FMT = &H800401C4\par
Public Const CONVERT10_E_STG_NO_STD_STREAM = &H800401C5\par
Public Const CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6\par
Public Const CLIPBRD_E_FIRST = &H800401D0\par
Public Const CLIPBRD_E_LAST = &H800401DF\par
Public Const CLIPBRD_S_FIRST = &H401D0\par
Public Const CLIPBRD_S_LAST = &H401DF\par
Public Const CLIPBRD_E_CANT_OPEN = &H800401D0\par
Public Const CLIPBRD_E_CANT_EMPTY = &H800401D1\par
Public Const CLIPBRD_E_CANT_SET = &H800401D2\par
Public Const CLIPBRD_E_BAD_DATA = &H800401D3\par
Public Const CLIPBRD_E_CANT_CLOSE = &H800401D4\par
Public Const MK_E_FIRST = &H800401E0\par
Public Const MK_E_LAST = &H800401EF\par
Public Const MK_S_FIRST = &H401E0\par
Public Const MK_S_LAST = &H401EF\par
Public Const MK_E_CONNECTMANUALLY = &H800401E0\par
Public Const MK_E_EXCEEDEDDEADLINE = &H800401E1\par
Public Const MK_E_NEEDGENERIC = &H800401E2\par
Public Const MK_E_UNAVAILABLE = &H800401E3\par
Public Const MK_E_SYNTAX = &H800401E4\par
Public Const MK_E_NOOBJECT = &H800401E5\par
Public Const MK_E_INVALIDEXTENSION = &H800401E6\par
Public Const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7\par
Public Const MK_E_NOTBINDABLE = &H800401E8\par
Public Const MK_E_NOTBOUND = &H800401E9\par
Public Const MK_E_CANTOPENFILE = &H800401EA\par
Public Const MK_E_MUSTBOTHERUSER = &H800401EB\par
Public Const MK_E_NOINVERSE = &H800401EC\par
Public Const MK_E_NOSTORAGE = &H800401ED\par
Public Const MK_E_NOPREFIX = &H800401EE\par
Public Const MK_E_ENUMERATION_FAILED = &H800401EF\par
Public Const CO_E_FIRST = &H800401F0\par
Public Const CO_E_LAST = &H800401FF\par
Public Const CO_S_FIRST = &H401F0\par
Public Const CO_S_LAST = &H401FF\par
Public Const CO_E_NOTINITIALIZED = &H800401F0\par
Public Const CO_E_ALREADYINITIALIZED = &H800401F1\par
Public Const CO_E_CANTDETERMINECLASS = &H800401F2\par
Public Const CO_E_CLASSSTRING = &H800401F3\par
Public Const CO_E_IIDSTRING = &H800401F4\par
Public Const CO_E_APPNOTFOUND = &H800401F5\par
Public Const CO_E_APPSINGLEUSE = &H800401F6\par
Public Const CO_E_ERRORINAPP = &H800401F7\par
Public Const CO_E_DLLNOTFOUND = &H800401F8\par
Public Const CO_E_ERRORINDLL = &H800401F9\par
Public Const CO_E_WRONGOSFORAPP = &H800401FA\par
Public Const CO_E_OBJNOTREG = &H800401FB\par
Public Const CO_E_OBJISREG = &H800401FC\par
Public Const CO_E_OBJNOTCONNECTED = &H800401FD\par
Public Const CO_E_APPDIDNTREG = &H800401FE\par
Public Const CO_E_RELEASED = &H800401FF\par
Public Const OLE_S_USEREG = &H40000\par
Public Const OLE_S_STATIC = &H40001\par
Public Const OLE_S_MAC_CLIPFORMAT = &H40002\par
Public Const DRAGDROP_S_DROP = &H40100\par
Public Const DRAGDROP_S_CANCEL = &H40101\par
Public Const DRAGDROP_S_USEDEFAULTCURSORS = &H40102\par
Public Const DATA_S_SAMEFORMATETC = &H40130\par
Public Const VIEW_S_ALREADY_FROZEN = &H40140\par
Public Const CACHE_S_FORMATETC_NOTSUPPORTED = &H40170\par
Public Const CACHE_S_SAMECACHE = &H40171\par
Public Const CACHE_S_SOMECACHES_NOTUPDATED = &H40172\par
Public Const OLEOBJ_S_INVALIDVERB = &H40180\par
Public Const OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181\par
Public Const OLEOBJ_S_INVALIDHWND = &H40182\par
Public Const INPLACE_S_TRUNCATED = &H401A0\par
Public Const CONVERT10_S_NO_PRESENTATION = &H401C0\par
Public Const MK_S_REDUCED_TO_SELF = &H401E2\par
Public Const MK_S_ME = &H401E4\par
Public Const MK_S_HIM = &H401E5\par
Public Const MK_S_US = &H401E6\par
Public Const MK_S_MONIKERALREADYREGISTERED = &H401E7\par
Public Const CO_E_CLASS_CREATE_FAILED = &H80080001\par
Public Const CO_E_SCM_ERROR = &H80080002\par
Public Const CO_E_SCM_RPC_FAILURE = &H80080003\par
Public Const CO_E_BAD_PATH = &H80080004\par
Public Const CO_E_SERVER_EXEC_FAILURE = &H80080005\par
Public Const CO_E_OBJSRV_RPC_FAILURE = &H80080006\par
Public Const MK_E_NO_NORMALIZED = &H80080007\par
Public Const CO_E_SERVER_STOPPING = &H80080008\par
Public Const MEM_E_INVALID_ROOT = &H80080009\par
Public Const MEM_E_INVALID_LINK = &H80080010\par
Public Const MEM_E_INVALID_SIZE = &H80080011\par
Public Const DISP_E_UNKNOWNINTERFACE = &H80020001\par
Public Const DISP_E_MEMBERNOTFOUND = &H80020003\par
Public Const DISP_E_PARAMNOTFOUND = &H80020004\par
Public Const DISP_E_TYPEMISMATCH = &H80020005\par
Public Const DISP_E_UNKNOWNNAME = &H80020006\par
Public Const DISP_E_NONAMEDARGS = &H80020007\par
Public Const DISP_E_BADVARTYPE = &H80020008\par
Public Const DISP_E_EXCEPTION = &H80020009\par
Public Const DISP_E_OVERFLOW = &H8002000A\par
Public Const DISP_E_BADINDEX = &H8002000B\par
Public Const DISP_E_UNKNOWNLCID = &H8002000C\par
Public Const DISP_E_ARRAYISLOCKED = &H8002000D\par
Public Const DISP_E_BADPARAMCOUNT = &H8002000E\par
Public Const DISP_E_PARAMNOTOPTIONAL = &H8002000F\par
Public Const DISP_E_BADCALLEE = &H80020010\par
Public Const DISP_E_NOTACOLLECTION = &H80020011\par
Public Const TYPE_E_BUFFERTOOSMALL = &H80028016\par
Public Const TYPE_E_INVDATAREAD = &H80028018\par
Public Const TYPE_E_UNSUPFORMAT = &H80028019\par
Public Const TYPE_E_REGISTRYACCESS = &H8002801C\par
Public Const TYPE_E_LIBNOTREGISTERED = &H8002801D\par
Public Const TYPE_E_UNDEFINEDTYPE = &H80028027\par
Public Const TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028\par
Public Const TYPE_E_INVALIDSTATE = &H80028029\par
Public Const TYPE_E_WRONGTYPEKIND = &H8002802A\par
Public Const TYPE_E_ELEMENTNOTFOUND = &H8002802B\par
Public Const TYPE_E_AMBIGUOUSNAME = &H8002802C\par
Public Const TYPE_E_NAMECONFLICT = &H8002802D\par
Public Const TYPE_E_UNKNOWNLCID = &H8002802E\par
Public Const TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F\par
Public Const TYPE_E_BADMODULEKIND = &H800288BD\par
Public Const TYPE_E_SIZETOOBIG = &H800288C5\par
Public Const TYPE_E_DUPLICATEID = &H800288C6\par
Public Const TYPE_E_INVALIDID = &H800288CF\par
Public Const TYPE_E_TYPEMISMATCH = &H80028CA0\par
Public Const TYPE_E_OUTOFBOUNDS = &H80028CA1\par
Public Const TYPE_E_IOERROR = &H80028CA2\par
Public Const TYPE_E_CANTCREATETMPFILE = &H80028CA3\par
Public Const TYPE_E_CANTLOADLIBRARY = &H80029C4A\par
Public Const TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83\par
Public Const TYPE_E_CIRCULARTYPE = &H80029C84\par
Public Const STG_E_INVALIDFUNCTION = &H80030001\par
Public Const STG_E_FILENOTFOUND = &H80030002\par
Public Const STG_E_PATHNOTFOUND = &H80030003\par
Public Const STG_E_TOOMANYOPENFILES = &H80030004\par
Public Const STG_E_ACCESSDENIED = &H80030005\par
Public Const STG_E_INVALIDHANDLE = &H80030006\par
Public Const STG_E_INSUFFICIENTMEMORY = &H80030008\par
Public Const STG_E_INVALIDPOINTER = &H80030009\par
Public Const STG_E_NOMOREFILES = &H80030012\par
Public Const STG_E_DISKISWRITEPROTECTED = &H80030013\par
Public Const STG_E_SEEKERROR = &H80030019\par
Public Const STG_E_WRITEFAULT = &H8003001D\par
Public Const STG_E_READFAULT = &H8003001E\par
Public Const STG_E_SHAREVIOLATION = &H80030020\par
Public Const STG_E_LOCKVIOLATION = &H80030021\par
Public Const STG_E_FILEALREADYEXISTS = &H80030050\par
Public Const STG_E_INVALIDPARAMETER = &H80030057\par
Public Const STG_E_MEDIUMFULL = &H80030070\par
Public Const STG_E_ABNORMALAPIEXIT = &H800300FA\par
Public Const STG_E_INVALIDHEADER = &H800300FB\par
Public Const STG_E_INVALIDNAME = &H800300FC\par
Public Const STG_E_UNKNOWN = &H800300FD\par
Public Const STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE\par
Public Const STG_E_INVALIDFLAG = &H800300FF\par
Public Const STG_E_INUSE = &H80030100\par
Public Const STG_E_NOTCURRENT = &H80030101\par
Public Const STG_E_REVERTED = &H80030102\par
Public Const STG_E_CANTSAVE = &H80030103\par
Public Const STG_E_OLDFORMAT = &H80030104\par
Public Const STG_E_OLDDLL = &H80030105\par
Public Const STG_E_SHAREREQUIRED = &H80030106\par
Public Const STG_E_NOTFILEBASEDSTORAGE = &H80030107\par
Public Const STG_E_EXTANTMARSHALLINGS = &H80030108\par
Public Const STG_S_CONVERTED = &H30200\par
Public Const RPC_E_CALL_REJECTED = &H80010001\par
Public Const RPC_E_CALL_CANCELED = &H80010002\par
Public Const RPC_E_CANTPOST_INSENDCALL = &H80010003\par
Public Const RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004\par
Public Const RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005\par
Public Const RPC_E_CONNECTION_TERMINATED = &H80010006\par
Public Const RPC_E_SERVER_DIED = &H80010007\par
Public Const RPC_E_CLIENT_DIED = &H80010008\par
Public Const RPC_E_INVALID_DATAPACKET = &H80010009\par
Public Const RPC_E_CANTTRANSMIT_CALL = &H8001000A\par
Public Const RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B\par
Public Const RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C\par
Public Const RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D\par
Public Const RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E\par
Public Const RPC_E_INVALID_DATA = &H8001000F\par
Public Const RPC_E_INVALID_PARAMETER = &H80010010\par
Public Const RPC_E_CANTCALLOUT_AGAIN = &H80010011\par
Public Const RPC_E_SERVER_DIED_DNE = &H80010012\par
Public Const RPC_E_SYS_CALL_FAILED = &H80010100\par
Public Const RPC_E_OUT_OF_RESOURCES = &H80010101\par
Public Const RPC_E_ATTEMPTED_MULTITHREAD = &H80010102\par
Public Const RPC_E_NOT_REGISTERED = &H80010103\par
Public Const RPC_E_FAULT = &H80010104\par
Public Const RPC_E_SERVERFAULT = &H80010105\par
Public Const RPC_E_CHANGED_MODE = &H80010106\par
Public Const RPC_E_INVALIDMETHOD = &H80010107\par
Public Const RPC_E_DISCONNECTED = &H80010108\par
Public Const RPC_E_RETRY = &H80010109\par
Public Const RPC_E_SERVERCALL_RETRYLATER = &H8001010A\par
Public Const RPC_E_SERVERCALL_REJECTED = &H8001010B\par
Public Const RPC_E_INVALID_CALLDATA = &H8001010C\par
Public Const RPC_E_CANTCALLOUT_ININPUTSYNCCALL = &H8001010D\par
Public Const RPC_E_WRONG_THREAD = &H8001010E\par
Public Const RPC_E_THREAD_NOT_INIT = &H8001010F\par
Public Const RPC_E_UNEXPECTED = &H8001FFFF\par
\par
\par
' /////////////////////////\par
' //\par
' Winnet32 Status Codes //\par
' //\par
' /////////////////////////\par
\par
' The specified username is invalid.\par
Public Const ERROR_BAD_USERNAME = 2202&\par
\par
' This network connection does not exist.\par
Public Const ERROR_NOT_CONNECTED = 2250&\par
\par
' This network connection has files open or requests pending.\par
Public Const ERROR_OPEN_FILES = 2401&\par
\par
' The device is in use by an active process and cannot be disconnected.\par
Public Const ERROR_DEVICE_IN_USE = 2404&\par
\par
' The specified device name is invalid.\par
Public Const ERROR_BAD_DEVICE = 1200&\par
\par
' The device is not currently connected but it is a remembered connection.\par
Public Const ERROR_CONNECTION_UNAVAIL = 1201&\par
\par
' An attempt was made to remember a device that had previously been remembered.\par
Public Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&\par
\par
' No network provider accepted the given network path.\par
Public Const ERROR_NO_NET_OR_BAD_PATH = 1203&\par
\par
' The specified network provider name is invalid.\par
Public Const ERROR_BAD_PROVIDER = 1204&\par
\par
' Unable to open the network connection profile.\par
Public Const ERROR_CANNOT_OPEN_PROFILE = 1205&\par
\par
' The network connection profile is corrupt.\par
Public Const ERROR_BAD_PROFILE = 1206&\par
\par
' Cannot enumerate a non-container.\par
Public Const ERROR_NOT_CONTAINER = 1207&\par
\par
' An extended error has occurred.\par
Public Const ERROR_EXTENDED_ERROR = 1208&\par
\par
' The format of the specified group name is invalid.\par
Public Const ERROR_INVALID_GROUPNAME = 1209&\par
\par
' The format of the specified computer name is invalid.\par
Public Const ERROR_INVALID_COMPUTERNAME = 1210&\par
\par
' The format of the specified event name is invalid.\par
Public Const ERROR_INVALID_EVENTNAME = 1211&\par
\par
' The format of the specified domain name is invalid.\par
Public Const ERROR_INVALID_DOMAINNAME = 1212&\par
\par
' The format of the specified service name is invalid.\par
Public Const ERROR_INVALID_SERVICENAME = 1213&\par
\par
' The format of the specified network name is invalid.\par
Public Const ERROR_INVALID_NETNAME = 1214&\par
\par
' The format of the specified share name is invalid.\par
Public Const ERROR_INVALID_SHARENAME = 1215&\par
\par
' The format of the specified password is invalid.\par
Public Const ERROR_INVALID_PASSWORDNAME = 1216&\par
\par
' The format of the specified message name is invalid.\par
Public Const ERROR_INVALID_MESSAGENAME = 1217&\par
\par
' The format of the specified message destination is invalid.\par
Public Const ERROR_INVALID_MESSAGEDEST = 1218&\par
\par
' The credentials supplied conflict with an existing set of credentials.\par
Public Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219&\par
\par
' An attempt was made to establish a session to a Lan Manager server, but there\par
' are already too many sessions established to that server.\par
Public Const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220&\par
\par
' The workgroup or domain name is already in use by another computer on the\par
' network.\par
Public Const ERROR_DUP_DOMAINNAME = 1221&\par
\par
' The network is not present or not started.\par
Public Const ERROR_NO_NETWORK = 1222&\par
\par
\par
' /////////////////////////\par
' //\par
' Security Status Codes //\par
' //\par
' /////////////////////////\par
\par
' Not all privileges referenced are assigned to the caller.\par
Public Const ERROR_NOT_ALL_ASSIGNED = 1300&\par
\par
' Some mapping between account names and security IDs was not done.\par
Public Const ERROR_SOME_NOT_MAPPED = 1301&\par
\par
' No system quota limits are specifically set for this account.\par
Public Const ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302&\par
\par
' No encryption key is available. A well-known encryption key was returned.\par
Public Const ERROR_LOCAL_USER_SESSION_KEY = 1303&\par
\par
' The NT password is too complex to be converted to a LAN Manager\par
' password. The LAN Manager password returned is a NULL string.\par
Public Const ERROR_NULL_LM_PASSWORD = 1304&\par
\par
' The revision level is unknown.\par
Public Const ERROR_UNKNOWN_REVISION = 1305&\par
\par
' Indicates two revision levels are incompatible.\par
Public Const ERROR_REVISION_MISMATCH = 1306&\par
\par
' This security ID may not be assigned as the owner of this object.\par
Public Const ERROR_INVALID_OWNER = 1307&\par
\par
' This security ID may not be assigned as the primary group of an object.\par
Public Const ERROR_INVALID_PRIMARY_GROUP = 1308&\par
\par
' An attempt has been made to operate on an impersonation token\par
' by a thread that is not currently impersonating a client.\par
Public Const ERROR_NO_IMPERSONATION_TOKEN = 1309&\par
\par
' The group may not be disabled.\par
Public Const ERROR_CANT_DISABLE_MANDATORY = 1310&\par
\par
' There are currently no logon servers available to service the logon\par
' request.\par
Public Const ERROR_NO_LOGON_SERVERS = 1311&\par
\par
' A specified logon session does not exist. It may already have\par
' been terminated.\par
Public Const ERROR_NO_SUCH_LOGON_SESSION = 1312&\par
\par
' A specified privilege does not exist.\par
Public Const ERROR_NO_SUCH_PRIVILEGE = 1313&\par
\par
' A required privilege is not held by the client.\par
Public Const ERROR_PRIVILEGE_NOT_HELD = 1314&\par
\par
' The name provided is not a properly formed account name.\par
Public Const ERROR_INVALID_ACCOUNT_NAME = 1315&\par
\par
' The specified user already exists.\par
Public Const ERROR_USER_EXISTS = 1316&\par
\par
' The specified user does not exist.\par
Public Const ERROR_NO_SUCH_USER = 1317&\par
\par
' The specified group already exists.\par
Public Const ERROR_GROUP_EXISTS = 1318&\par
\par
' The specified group does not exist.\par
Public Const ERROR_NO_SUCH_GROUP = 1319&\par
\par
' Either the specified user account is already a member of the specified\par
' group, or the specified group cannot be deleted because it contains\par
' a member.\par
Public Const ERROR_MEMBER_IN_GROUP = 1320&\par
\par
' The specified user account is not a member of the specified group account.\par
Public Const ERROR_MEMBER_NOT_IN_GROUP = 1321&\par
\par
' The last remaining administration account cannot be disabled\par
' or deleted.\par
Public Const ERROR_LAST_ADMIN = 1322&\par
\par
' Unable to update the password. The value provided as the current\par
' password is incorrect.\par
Public Const ERROR_WRONG_PASSWORD = 1323&\par
\par
' Unable to update the password. The value provided for the new password\par
' contains values that are not allowed in passwords.\par
Public Const ERROR_ILL_FORMED_PASSWORD = 1324&\par
\par
' Unable to update the password because a password update rule has been\par
' violated.\par
Public Const ERROR_PASSWORD_RESTRICTION = 1325&\par
\par
' Logon failure: unknown user name or bad password.\par
Public Const ERROR_LOGON_FAILURE = 1326&\par
\par
' Logon failure: user account restriction.\par
Public Const ERROR_ACCOUNT_RESTRICTION = 1327&\par
\par
' Logon failure: account logon time restriction violation.\par
Public Const ERROR_INVALID_LOGON_HOURS = 1328&\par
\par
' Logon failure: user not allowed to log on to this computer.\par
Public Const ERROR_INVALID_WORKSTATION = 1329&\par
\par
' Logon failure: the specified account password has expired.\par
Public Const ERROR_PASSWORD_EXPIRED = 1330&\par
\par
' Logon failure: account currently disabled.\par
Public Const ERROR_ACCOUNT_DISABLED = 1331&\par
\par
' No mapping between account names and security IDs was done.\par
Public Const ERROR_NONE_MAPPED = 1332&\par
\par
' Too many local user identifiers (LUIDs) were requested at one time.\par
Public Const ERROR_TOO_MANY_LUIDS_REQUESTED = 1333&\par
\par
' No more local user identifiers (LUIDs) are available.\par
Public Const ERROR_LUIDS_EXHAUSTED = 1334&\par
\par
' The subauthority part of a security ID is invalid for this particular use.\par
Public Const ERROR_INVALID_SUB_AUTHORITY = 1335&\par
\par
' The access control list (ACL) structure is invalid.\par
Public Const ERROR_INVALID_ACL = 1336&\par
\par
' The security ID structure is invalid.\par
Public Const ERROR_INVALID_SID = 1337&\par
\par
' The security descriptor structure is invalid.\par
Public Const ERROR_INVALID_SECURITY_DESCR = 1338&\par
\par
' The inherited access control list (ACL) or access control entry (ACE)\par
' could not be built.\par
Public Const ERROR_BAD_INHERITANCE_ACL = 1340&\par
\par
' The server is currently disabled.\par
Public Const ERROR_SERVER_DISABLED = 1341&\par
\par
' The server is currently enabled.\par
Public Const ERROR_SERVER_NOT_DISABLED = 1342&\par
\par
' The value provided was an invalid value for an identifier authority.\par
Public Const ERROR_INVALID_ID_AUTHORITY = 1343&\par
\par
' No more memory is available for security information updates.\par
Public Const ERROR_ALLOTTED_SPACE_EXCEEDED = 1344&\par
\par
' The specified attributes are invalid, or incompatible with the\par
' attributes for the group as a whole.\par
Public Const ERROR_INVALID_GROUP_ATTRIBUTES = 1345&\par
\par
' Either a required impersonation level was not provided, or the\par
' provided impersonation level is invalid.\par
Public Const ERROR_BAD_IMPERSONATION_LEVEL = 1346&\par
\par
' Cannot open an anonymous level security token.\par
Public Const ERROR_CANT_OPEN_ANONYMOUS = 1347&\par
\par
' The validation information class requested was invalid.\par
Public Const ERROR_BAD_VALIDATION_CLASS = 1348&\par
\par
' The type of the token is inappropriate for its attempted use.\par
Public Const ERROR_BAD_TOKEN_TYPE = 1349&\par
\par
' Unable to perform a security operation on an object\par
' which has no associated security.\par
Public Const ERROR_NO_SECURITY_ON_OBJECT = 1350&\par
\par
' Indicates a Windows NT Advanced Server could not be contacted or that\par
' objects within the domain are protected such that necessary\par
' information could not be retrieved.\par
Public Const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351&\par
\par
' The security account manager (SAM) or local security\par
' authority (LSA) server was in the wrong state to perform\par
' the security operation.\par
Public Const ERROR_INVALID_SERVER_STATE = 1352&\par
\par
' The domain was in the wrong state to perform the security operation.\par
Public Const ERROR_INVALID_DOMAIN_STATE = 1353&\par
\par
' This operation is only allowed for the Primary Domain Controller of the domain.\par
Public Const ERROR_INVALID_DOMAIN_ROLE = 1354&\par
\par
' The specified domain did not exist.\par
Public Const ERROR_NO_SUCH_DOMAIN = 1355&\par
\par
' The specified domain already exists.\par
Public Const ERROR_DOMAIN_EXISTS = 1356&\par
\par
' An attempt was made to exceed the limit on the number of domains per server.\par
Public Const ERROR_DOMAIN_LIMIT_EXCEEDED = 1357&\par
\par
' Unable to complete the requested operation because of either a\par
' catastrophic media failure or a data structure corruption on the disk.\par
Public Const ERROR_INTERNAL_DB_CORRUPTION = 1358&\par
\par
' The security account database contains an internal inconsistency.\par
Public Const ERROR_INTERNAL_ERROR = 1359&\par
\par
' Generic access types were contained in an access mask which should\par
' already be mapped to non-generic types.\par
Public Const ERROR_GENERIC_NOT_MAPPED = 1360&\par
\par
' A security descriptor is not in the right format (absolute or self-relative).\par
Public Const ERROR_BAD_DESCRIPTOR_FORMAT = 1361&\par
\par
' The requested action is restricted for use by logon processes\par
' only. The calling process has not registered as a logon process.\par
Public Const ERROR_NOT_LOGON_PROCESS = 1362&\par
\par
' Cannot start a new logon session with an ID that is already in use.\par
Public Const ERROR_LOGON_SESSION_EXISTS = 1363&\par
\par
' A specified authentication package is unknown.\par
Public Const ERROR_NO_SUCH_PACKAGE = 1364&\par
\par
' The logon session is not in a state that is consistent with the\par
' requested operation.\par
Public Const ERROR_BAD_LOGON_SESSION_STATE = 1365&\par
\par
' The logon session ID is already in use.\par
Public Const ERROR_LOGON_SESSION_COLLISION = 1366&\par
\par
' A logon request contained an invalid logon type value.\par
Public Const ERROR_INVALID_LOGON_TYPE = 1367&\par
\par
' Unable to impersonate via a named pipe until data has been read\par
' from that pipe.\par
Public Const ERROR_CANNOT_IMPERSONATE = 1368&\par
\par
' The transaction state of a Registry subtree is incompatible with the\par
' requested operation.\par
Public Const ERROR_RXACT_INVALID_STATE = 1369&\par
\par
' An internal security database corruption has been encountered.\par
Public Const ERROR_RXACT_COMMIT_FAILURE = 1370&\par
\par
' Cannot perform this operation on built-in accounts.\par
Public Const ERROR_SPECIAL_ACCOUNT = 1371&\par
\par
' Cannot perform this operation on this built-in special group.\par
Public Const ERROR_SPECIAL_GROUP = 1372&\par
\par
' Cannot perform this operation on this built-in special user.\par
Public Const ERROR_SPECIAL_USER = 1373&\par
\par
' The user cannot be removed from a group because the group\par
' is currently the user's primary group.\par
Public Const ERROR_MEMBERS_PRIMARY_GROUP = 1374&\par
\par
' The token is already in use as a primary token.\par
Public Const ERROR_TOKEN_ALREADY_IN_USE = 1375&\par
\par
' The specified local group does not exist.\par
Public Const ERROR_NO_SUCH_ALIAS = 1376&\par
\par
' The specified account name is not a member of the local group.\par
Public Const ERROR_MEMBER_NOT_IN_ALIAS = 1377&\par
\par
' The specified account name is already a member of the local group.\par
Public Const ERROR_MEMBER_IN_ALIAS = 1378&\par
\par
' The specified local group already exists.\par
Public Const ERROR_ALIAS_EXISTS = 1379&\par
\par
' Logon failure: the user has not been granted the requested\par
' logon type at this computer.\par
Public Const ERROR_LOGON_NOT_GRANTED = 1380&\par
\par
' The maximum number of secrets that may be stored in a single system has been\par
' exceeded.\par
Public Const ERROR_TOO_MANY_SECRETS = 1381&\par
\par
' The length of a secret exceeds the maximum length allowed.\par
Public Const ERROR_SECRET_TOO_LONG = 1382&\par
\par
' The local security authority database contains an internal inconsistency.\par
Public Const ERROR_INTERNAL_DB_ERROR = 1383&\par
\par
' During a logon attempt, the user's security context accumulated too many\par
' security IDs.\par
Public Const ERROR_TOO_MANY_CONTEXT_IDS = 1384&\par
\par
' Logon failure: the user has not been granted the requested logon type\par
' at this computer.\par
Public Const ERROR_LOGON_TYPE_NOT_GRANTED = 1385&\par
\par
' A cross-encrypted password is necessary to change a user password.\par
Public Const ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386&\par
\par
' A new member could not be added to a local group because the member does\par
' not exist.\par
Public Const ERROR_NO_SUCH_MEMBER = 1387&\par
\par
' A new member could not be added to a local group because the member has the\par
' wrong account type.\par
Public Const ERROR_INVALID_MEMBER = 1388&\par
\par
' Too many security IDs have been specified.\par
Public Const ERROR_TOO_MANY_SIDS = 1389&\par
\par
' A cross-encrypted password is necessary to change this user password.\par
Public Const ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390&\par
\par
' Indicates an ACL contains no inheritable components\par
Public Const ERROR_NO_INHERITANCE = 1391&\par
\par
' The file or directory is corrupt and non-readable.\par
Public Const ERROR_FILE_CORRUPT = 1392&\par
\par
' The disk structure is corrupt and non-readable.\par
Public Const ERROR_DISK_CORRUPT = 1393&\par
\par
' There is no user session key for the specified logon session.\par
Public Const ERROR_NO_USER_SESSION_KEY = 1394&\par
\par
' End of security error codes\par
\par
\par
' /////////////////////////\par
' //\par
' WinUser Error Codes //\par
' //\par
' /////////////////////////\par
\par
' Invalid window handle.\par
Public Const ERROR_INVALID_WINDOW_HANDLE = 1400&\par
\par
' Invalid menu handle.\par
Public Const ERROR_INVALID_MENU_HANDLE = 1401&\par
\par
' Invalid cursor handle.\par
Public Const ERROR_INVALID_CURSOR_HANDLE = 1402&\par
\par
' Invalid accelerator table handle.\par
Public Const ERROR_INVALID_ACCEL_HANDLE = 1403&\par
\par
' Invalid hook handle.\par
Public Const ERROR_INVALID_HOOK_HANDLE = 1404&\par
\par
' Invalid handle to a multiple-window position structure.\par
Public Const ERROR_INVALID_DWP_HANDLE = 1405&\par
\par
' Cannot create a top-level child window.\par
Public Const ERROR_TLW_WITH_WSCHILD = 1406&\par
\par
' Cannot find window class.\par
Public Const ERROR_CANNOT_FIND_WND_CLASS = 1407&\par
\par
' Invalid window, belongs to other thread.\par
Public Const ERROR_WINDOW_OF_OTHER_THREAD = 1408&\par
\par
' Hot key is already registered.\par
Public Const ERROR_HOTKEY_ALREADY_REGISTERED = 1409&\par
\par
' Class already exists.\par
Public Const ERROR_CLASS_ALREADY_EXISTS = 1410&\par
\par
' Class does not exist.\par
Public Const ERROR_CLASS_DOES_NOT_EXIST = 1411&\par
\par
' Class still has open windows.\par
Public Const ERROR_CLASS_HAS_WINDOWS = 1412&\par
\par
' Invalid index.\par
Public Const ERROR_INVALID_INDEX = 1413&\par
\par
' Invalid icon handle.\par
Public Const ERROR_INVALID_ICON_HANDLE = 1414&\par
\par
' Using private DIALOG window words.\par
Public Const ERROR_PRIVATE_DIALOG_INDEX = 1415&\par
\par
' The listbox identifier was not found.\par
Public Const ERROR_LISTBOX_ID_NOT_FOUND = 1416&\par
\par
' No wildcards were found.\par
Public Const ERROR_NO_WILDCARD_CHARACTERS = 1417&\par
\par
' Thread does not have a clipboard open.\par
Public Const ERROR_CLIPBOARD_NOT_OPEN = 1418&\par
\par
' Hot key is not registered.\par
Public Const ERROR_HOTKEY_NOT_REGISTERED = 1419&\par
\par
' The window is not a valid dialog window.\par
Public Const ERROR_WINDOW_NOT_DIALOG = 1420&\par
\par
' Control ID not found.\par
Public Const ERROR_CONTROL_ID_NOT_FOUND = 1421&\par
\par
' Invalid message for a combo box because it does not have an edit control.\par
Public Const ERROR_INVALID_COMBOBOX_MESSAGE = 1422&\par
\par
' The window is not a combo box.\par
Public Const ERROR_WINDOW_NOT_COMBOBOX = 1423&\par
\par
' Height must be less than 256.\par
Public Const ERROR_INVALID_EDIT_HEIGHT = 1424&\par
\par
' Invalid device context (DC) handle.\par
Public Const ERROR_DC_NOT_FOUND = 1425&\par
\par
' Invalid hook procedure type.\par
Public Const ERROR_INVALID_HOOK_FILTER = 1426&\par
\par
' Invalid hook procedure.\par
Public Const ERROR_INVALID_FILTER_PROC = 1427&\par
\par
' Cannot set non-local hook without a module handle.\par
Public Const ERROR_HOOK_NEEDS_HMOD = 1428&\par
\par
' This hook procedure can only be set Globally.\par
'\par
Public Const ERROR_PUBLIC_ONLY_HOOK = 1429&\par
\par
' The journal hook procedure is already installed.\par
Public Const ERROR_JOURNAL_HOOK_SET = 1430&\par
\par
' The hook procedure is not installed.\par
Public Const ERROR_HOOK_NOT_INSTALLED = 1431&\par
\par
' Invalid message for single-selection listbox.\par
Public Const ERROR_INVALID_LB_MESSAGE = 1432&\par
\par
' LB_SETCOUNT sent to non-lazy listbox.\par
Public Const ERROR_SETCOUNT_ON_BAD_LB = 1433&\par
\par
' This list box does not support tab stops.\par
Public Const ERROR_LB_WITHOUT_TABSTOPS = 1434&\par
\par
' Cannot destroy object created by another thread.\par
Public Const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435&\par
\par
' Child windows cannot have menus.\par
Public Const ERROR_CHILD_WINDOW_MENU = 1436&\par
\par
' The window does not have a system menu.\par
Public Const ERROR_NO_SYSTEM_MENU = 1437&\par
\par
' Invalid message box style.\par
Public Const ERROR_INVALID_MSGBOX_STYLE = 1438&\par
\par
' Invalid system-wide (SPI_) parameter.\par
Public Const ERROR_INVALID_SPI_VALUE = 1439&\par
\par
' Screen already locked.\par
Public Const ERROR_SCREEN_ALREADY_LOCKED = 1440&\par
\par
' All handles to windows in a multiple-window position structure must\par
' have the same parent.\par
Public Const ERROR_HWNDS_HAVE_DIFF_PARENT = 1441&\par
\par
' The window is not a child window.\par
Public Const ERROR_NOT_CHILD_WINDOW = 1442&\par
\par
' Invalid GW_ command.\par
Public Const ERROR_INVALID_GW_COMMAND = 1443&\par
\par
' Invalid thread identifier.\par
Public Const ERROR_INVALID_THREAD_ID = 1444&\par
\par
' Cannot process a message from a window that is not a multiple document\par
' interface (MDI) window.\par
Public Const ERROR_NON_MDICHILD_WINDOW = 1445&\par
\par
' Popup menu already active.\par
Public Const ERROR_POPUP_ALREADY_ACTIVE = 1446&\par
\par
' The window does not have scroll bars.\par
Public Const ERROR_NO_SCROLLBARS = 1447&\par
\par
' Scroll bar range cannot be greater than 0x7FFF.\par
Public Const ERROR_INVALID_SCROLLBAR_RANGE = 1448&\par
\par
' Cannot show or remove the window in the way specified.\par
Public Const ERROR_INVALID_SHOWWIN_COMMAND = 1449&\par
\par
' End of WinUser error codes\par
\par
\par
' /////////////////////////\par
' //\par
' Eventlog Status Codes //\par
' //\par
' /////////////////////////\par
\par
' The event log file is corrupt.\par
Public Const ERROR_EVENTLOG_FILE_CORRUPT = 1500&\par
\par
' No event log file could be opened, so the event logging service did not start.\par
Public Const ERROR_EVENTLOG_CANT_START = 1501&\par
\par
' The event log file is full.\par
Public Const ERROR_LOG_FILE_FULL = 1502&\par
\par
' The event log file has changed between reads.\par
Public Const ERROR_EVENTLOG_FILE_CHANGED = 1503&\par
\par
' End of eventlog error codes\par
\par
\par
' /////////////////////////\par
' //\par
' RPC Status Codes //\par
' //\par
' /////////////////////////\par
\par
' The string binding is invalid.\par
Public Const RPC_S_INVALID_STRING_BINDING = 1700&\par
\par
' The binding handle is not the correct type.\par
Public Const RPC_S_WRONG_KIND_OF_BINDING = 1701&\par
\par
' The binding handle is invalid.\par
Public Const RPC_S_INVALID_BINDING = 1702&\par
\par
' The RPC protocol sequence is not supported.\par
Public Const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703&\par
\par
' The RPC protocol sequence is invalid.\par
Public Const RPC_S_INVALID_RPC_PROTSEQ = 1704&\par
\par
' The string universal unique identifier (UUID) is invalid.\par
Public Const RPC_S_INVALID_STRING_UUID = 1705&\par
\par
' The endpoint format is invalid.\par
Public Const RPC_S_INVALID_ENDPOINT_FORMAT = 1706&\par
\par
' The network address is invalid.\par
Public Const RPC_S_INVALID_NET_ADDR = 1707&\par
\par
' No endpoint was found.\par
Public Const RPC_S_NO_ENDPOINT_FOUND = 1708&\par
\par
' The timeout value is invalid.\par
Public Const RPC_S_INVALID_TIMEOUT = 1709&\par
\par
' The object universal unique identifier (UUID) was not found.\par
Public Const RPC_S_OBJECT_NOT_FOUND = 1710&\par
\par
' The object universal unique identifier (UUID) has already been registered.\par
Public Const RPC_S_ALREADY_REGISTERED = 1711&\par
\par
' The type universal unique identifier (UUID) has already been registered.\par
Public Const RPC_S_TYPE_ALREADY_REGISTERED = 1712&\par
\par
' The RPC server is already listening.\par
Public Const RPC_S_ALREADY_LISTENING = 1713&\par
\par
' No protocol sequences have been registered.\par
Public Const RPC_S_NO_PROTSEQS_REGISTERED = 1714&\par
\par
' The RPC server is not listening.\par
Public Const RPC_S_NOT_LISTENING = 1715&\par
\par
' The manager type is unknown.\par
Public Const RPC_S_UNKNOWN_MGR_TYPE = 1716&\par
\par
' The interface is unknown.\par
Public Const RPC_S_UNKNOWN_IF = 1717&\par
\par
' There are no bindings.\par
Public Const RPC_S_NO_BINDINGS = 1718&\par
\par
' There are no protocol sequences.\par
Public Const RPC_S_NO_PROTSEQS = 1719&\par
\par
' The endpoint cannot be created.\par
Public Const RPC_S_CANT_CREATE_ENDPOINT = 1720&\par
\par
' Not enough resources are available to complete this operation.\par
Public Const RPC_S_OUT_OF_RESOURCES = 1721&\par
\par
' The RPC server is unavailable.\par
Public Const RPC_S_SERVER_UNAVAILABLE = 1722&\par
\par
' The RPC server is too busy to complete this operation.\par
Public Const RPC_S_SERVER_TOO_BUSY = 1723&\par
\par
' The network options are invalid.\par
Public Const RPC_S_INVALID_NETWORK_OPTIONS = 1724&\par
\par
' There is not a remote procedure call active in this thread.\par
Public Const RPC_S_NO_CALL_ACTIVE = 1725&\par
\par
' The remote procedure call failed.\par
Public Const RPC_S_CALL_FAILED = 1726&\par
\par
' The remote procedure call failed and did not execute.\par
Public Const RPC_S_CALL_FAILED_DNE = 1727&\par
\par
' A remote procedure call (RPC) protocol error occurred.\par
Public Const RPC_S_PROTOCOL_ERROR = 1728&\par
\par
' The transfer syntax is not supported by the RPC server.\par
Public Const RPC_S_UNSUPPORTED_TRANS_SYN = 1730&\par
\par
' The universal unique identifier (UUID) type is not supported.\par
Public Const RPC_S_UNSUPPORTED_TYPE = 1732&\par
\par
' The tag is invalid.\par
Public Const RPC_S_INVALID_TAG = 1733&\par
\par
' The array bounds are invalid.\par
Public Const RPC_S_INVALID_BOUND = 1734&\par
\par
' The binding does not contain an entry name.\par
Public Const RPC_S_NO_ENTRY_NAME = 1735&\par
\par
' The name syntax is invalid.\par
Public Const RPC_S_INVALID_NAME_SYNTAX = 1736&\par
\par
' The name syntax is not supported.\par
Public Const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737&\par
\par
' No network address is available to use to construct a universal\par
' unique identifier (UUID).\par
Public Const RPC_S_UUID_NO_ADDRESS = 1739&\par
\par
' The endpoint is a duplicate.\par
Public Const RPC_S_DUPLICATE_ENDPOINT = 1740&\par
\par
' The authentication type is unknown.\par
Public Const RPC_S_UNKNOWN_AUTHN_TYPE = 1741&\par
\par
' The maximum number of calls is too small.\par
Public Const RPC_S_MAX_CALLS_TOO_SMALL = 1742&\par
\par
' The string is too long.\par
Public Const RPC_S_STRING_TOO_LONG = 1743&\par
\par
' The RPC protocol sequence was not found.\par
Public Const RPC_S_PROTSEQ_NOT_FOUND = 1744&\par
\par
' The procedure number is out of range.\par
Public Const RPC_S_PROCNUM_OUT_OF_RANGE = 1745&\par
\par
' The binding does not contain any authentication information.\par
Public Const RPC_S_BINDING_HAS_NO_AUTH = 1746&\par
\par
' The authentication service is unknown.\par
Public Const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747&\par
\par
' The authentication level is unknown.\par
Public Const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748&\par
\par
' The security context is invalid.\par
Public Const RPC_S_INVALID_AUTH_IDENTITY = 1749&\par
\par
' The authorization service is unknown.\par
Public Const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750&\par
\par
' The entry is invalid.\par
Public Const EPT_S_INVALID_ENTRY = 1751&\par
\par
' The server endpoint cannot perform the operation.\par
Public Const EPT_S_CANT_PERFORM_OP = 1752&\par
\par
' There are no more endpoints available from the endpoint mapper.\par
Public Const EPT_S_NOT_REGISTERED = 1753&\par
\par
' No interfaces have been exported.\par
Public Const RPC_S_NOTHING_TO_EXPORT = 1754&\par
\par
' The entry name is incomplete.\par
Public Const RPC_S_INCOMPLETE_NAME = 1755&\par
\par
' The version option is invalid.\par
Public Const RPC_S_INVALID_VERS_OPTION = 1756&\par
\par
' There are no more members.\par
Public Const RPC_S_NO_MORE_MEMBERS = 1757&\par
\par
' There is nothing to unexport.\par
Public Const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758&\par
\par
' The interface was not found.\par
Public Const RPC_S_INTERFACE_NOT_FOUND = 1759&\par
\par
' The entry already exists.\par
Public Const RPC_S_ENTRY_ALREADY_EXISTS = 1760&\par
\par
' The entry is not found.\par
Public Const RPC_S_ENTRY_NOT_FOUND = 1761&\par
\par
' The name service is unavailable.\par
Public Const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762&\par
\par
' The network address family is invalid.\par
Public Const RPC_S_INVALID_NAF_ID = 1763&\par
\par
' The requested operation is not supported.\par
Public Const RPC_S_CANNOT_SUPPORT = 1764&\par
\par
' No security context is available to allow impersonation.\par
Public Const RPC_S_NO_CONTEXT_AVAILABLE = 1765&\par
\par
' An internal error occurred in a remote procedure call (RPC).\par
Public Const RPC_S_INTERNAL_ERROR = 1766&\par
\par
' The RPC server attempted an integer division by zero.'\par
Public Const RPC_S_ZERO_DIVIDE = 1767&\par
\par
' An addressing error occurred in the RPC server.\par
Public Const RPC_S_ADDRESS_ERROR = 1768&\par
\par
' A floating-point operation at the RPC server caused a division by zero.\par
Public Const RPC_S_FP_DIV_ZERO = 1769&\par
\par
' A floating-point underflow occurred at the RPC server.\par
Public Const RPC_S_FP_UNDERFLOW = 1770&\par
\par
' A floating-point overflow occurred at the RPC server.\par
Public Const RPC_S_FP_OVERFLOW = 1771&\par
\par
' The list of RPC servers available for the binding of auto handles\par
' has been exhausted.\par
Public Const RPC_X_NO_MORE_ENTRIES = 1772&\par
\par
' Unable to open the character translation table file.\par
Public Const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773&\par
\par
' The file containing the character translation table has fewer than\par
' 512 bytes.\par
Public Const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774&\par
\par
' A null context handle was passed from the client to the host during\par
' a remote procedure call.\par
Public Const RPC_X_SS_IN_NULL_CONTEXT = 1775&\par
\par
' The context handle changed during a remote procedure call.\par
Public Const RPC_X_SS_CONTEXT_DAMAGED = 1777&\par
\par
' The binding handles passed to a remote procedure call do not match.\par
Public Const RPC_X_SS_HANDLES_MISMATCH = 1778&\par
\par
' The stub is unable to get the remote procedure call handle.\par
Public Const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779&\par
\par
' A null reference pointer was passed to the stub.\par
Public Const RPC_X_NULL_REF_POINTER = 1780&\par
\par
' The enumeration value is out of range.\par
Public Const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781&\par
\par
' The byte count is too small.\par
Public Const RPC_X_BYTE_COUNT_TOO_SMALL = 1782&\par
\par
' The stub received bad data.\par
Public Const RPC_X_BAD_STUB_DATA = 1783&\par
\par
' The supplied user buffer is not valid for the requested operation.\par
Public Const ERROR_INVALID_USER_BUFFER = 1784&\par
\par
' The disk media is not recognized. It may not be formatted.\par
Public Const ERROR_UNRECOGNIZED_MEDIA = 1785&\par
\par
' The workstation does not have a trust secret.\par
Public Const ERROR_NO_TRUST_LSA_SECRET = 1786&\par
\par
' The SAM database on the Windows NT Advanced Server does not have a computer\par
' account for this workstation trust relationship.\par
Public Const ERROR_NO_TRUST_SAM_ACCOUNT = 1787&\par
\par
' The trust relationship between the primary domain and the trusted\par
' domain failed.\par
Public Const ERROR_TRUSTED_DOMAIN_FAILURE = 1788&\par
\par
' The trust relationship between this workstation and the primary\par
' domain failed.\par
Public Const ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789&\par
\par
' The network logon failed.\par
Public Const ERROR_TRUST_FAILURE = 1790&\par
\par
' A remote procedure call is already in progress for this thread.\par
Public Const RPC_S_CALL_IN_PROGRESS = 1791&\par
\par
' An attempt was made to logon, but the network logon service was not started.\par
Public Const ERROR_NETLOGON_NOT_STARTED = 1792&\par
\par
' The user's account has expired.\par
Public Const ERROR_ACCOUNT_EXPIRED = 1793&\par
\par
' The redirector is in use and cannot be unloaded.\par
Public Const ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794&\par
\par
' The specified printer driver is already installed.\par
Public Const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795&\par
\par
' The specified port is unknown.\par
Public Const ERROR_UNKNOWN_PORT = 1796&\par
\par
' The printer driver is unknown.\par
Public Const ERROR_UNKNOWN_PRINTER_DRIVER = 1797&\par
\par
' The print processor is unknown.\par
'\par
Public Const ERROR_UNKNOWN_PRINTPROCESSOR = 1798&\par
\par
' The specified separator file is invalid.\par
Public Const ERROR_INVALID_SEPARATOR_FILE = 1799&\par
\par
' The specified priority is invalid.\par
Public Const ERROR_INVALID_PRIORITY = 1800&\par
\par
' The printer name is invalid.\par
Public Const ERROR_INVALID_PRINTER_NAME = 1801&\par
\par
' The printer already exists.\par
Public Const ERROR_PRINTER_ALREADY_EXISTS = 1802&\par
\par
' The printer command is invalid.\par
Public Const ERROR_INVALID_PRINTER_COMMAND = 1803&\par
\par
' The specified datatype is invalid.\par
Public Const ERROR_INVALID_DATATYPE = 1804&\par
\par
' The Environment specified is invalid.\par
Public Const ERROR_INVALID_ENVIRONMENT = 1805&\par
\par
' There are no more bindings.\par
Public Const RPC_S_NO_MORE_BINDINGS = 1806&\par
\par
' The account used is an interdomain trust account. Use your Global user account or local user account to access this server.\par
Public Const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807&\par
\par
' The account used is a Computer Account. Use your Global user account or local user account to access this server.\par
Public Const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808&\par
\par
' The account used is an server trust account. Use your Global user account or local user account to access this server.\par
Public Const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809&\par
\par
' The name or security ID (SID) of the domain specified is inconsistent\par
' with the trust information for that domain.\par
Public Const ERROR_DOMAIN_TRUST_INCONSISTENT = 1810&\par
\par
' The server is in use and cannot be unloaded.\par
Public Const ERROR_SERVER_HAS_OPEN_HANDLES = 1811&\par
\par
' The specified image file did not contain a resource section.\par
Public Const ERROR_RESOURCE_DATA_NOT_FOUND = 1812&\par
\par
' The specified resource type can not be found in the image file.\par
Public Const ERROR_RESOURCE_TYPE_NOT_FOUND = 1813&\par
\par
' The specified resource name can not be found in the image file.\par
Public Const ERROR_RESOURCE_NAME_NOT_FOUND = 1814&\par
\par
' The specified resource language ID cannot be found in the image file.\par
Public Const ERROR_RESOURCE_LANG_NOT_FOUND = 1815&\par
\par
' Not enough quota is available to process this command.\par
Public Const ERROR_NOT_ENOUGH_QUOTA = 1816&\par
\par
' The group member was not found.\par
Public Const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898&\par
\par
' The endpoint mapper database could not be created.\par
Public Const EPT_S_CANT_CREATE = 1899&\par
\par
' The object universal unique identifier (UUID) is the nil UUID.\par
Public Const RPC_S_INVALID_OBJECT = 1900&\par
\par
' The specified time is invalid.\par
Public Const ERROR_INVALID_TIME = 1901&\par
\par
' The specified Form name is invalid.\par
Public Const ERROR_INVALID_FORM_NAME = 1902&\par
\par
' The specified Form size is invalid\par
Public Const ERROR_INVALID_FORM_SIZE = 1903&\par
\par
' The specified Printer handle is already being waited on\par
Public Const ERROR_ALREADY_WAITING = 1904&\par
\par
' The specified Printer has been deleted\par
Public Const ERROR_PRINTER_DELETED = 1905&\par
\par
' The state of the Printer is invalid\par
Public Const ERROR_INVALID_PRINTER_STATE = 1906&\par
\par
' The list of servers for this workgroup is not currently available\par
Public Const ERROR_NO_BROWSER_SERVERS_FOUND = 6118&\par
\par
\par
' -------------------------\par
' MMSystem Section\par
' -------------------------\par
\par
' This section defines all the support for Multimedia applications\par
\par
' general constants\par
Public Const MAXPNAMELEN = 32 ' max product name length (including NULL)\par
Public Const MAXERRORLENGTH = 128 ' max error text length (including final NULL)\par
\par
Type smpte\par
hour As Byte\par
min As Byte\par
sec As Byte\par
frame As Byte\par
fps As Byte\par
dummy As Byte\par
pad(2) As Byte\par
End Type\par
\par
Type midi\par
songptrpos As Long\par
End Type\par
\par
Type MMTIME\par
wType As Long\par
u As Long\par
End Type\par
\par
' values for wType field in MMTIME struct\par
Public Const TIME_MS = &H1 ' time in Milliseconds\par
Public Const TIME_SAMPLES = &H2 ' number of wave samples\par
Public Const TIME_BYTES = &H4 ' current byte offset\par
Public Const TIME_SMPTE = &H8 ' SMPTE time\par
Public Const TIME_MIDI = &H10 ' MIDI time\par
\par
' Multimedia Window Messages\par
Public Const MM_JOY1MOVE = &H3A0 ' joystick\par
Public Const MM_JOY2MOVE = &H3A1\par
Public Const MM_JOY1ZMOVE = &H3A2\par
Public Const MM_JOY2ZMOVE = &H3A3\par
Public Const MM_JOY1BUTTONDOWN = &H3B5\par
Public Const MM_JOY2BUTTONDOWN = &H3B6\par
Public Const MM_JOY1BUTTONUP = &H3B7\par
Public Const MM_JOY2BUTTONUP = &H3B8\par
\par
Public Const MM_MCINOTIFY = &H3B9 ' MCI\par
Public Const MM_MCISYSTEM_STRING = &H3CA\par
\par
Public Const MM_WOM_OPEN = &H3BB ' waveform output\par
Public Const MM_WOM_CLOSE = &H3BC\par
Public Const MM_WOM_DONE = &H3BD\par
\par
Public Const MM_WIM_OPEN = &H3BE ' waveform input\par
Public Const MM_WIM_CLOSE = &H3BF\par
Public Const MM_WIM_DATA = &H3C0\par
\par
Public Const MM_MIM_OPEN = &H3C1 ' MIDI input\par
Public Const MM_MIM_CLOSE = &H3C2\par
Public Const MM_MIM_DATA = &H3C3\par
Public Const MM_MIM_LONGDATA = &H3C4\par
Public Const MM_MIM_ERROR = &H3C5\par
Public Const MM_MIM_LONGERROR = &H3C6\par
\par
Public Const MM_MOM_OPEN = &H3C7 ' MIDI output\par
Public Const MM_MOM_CLOSE = &H3C8\par
Public Const MM_MOM_DONE = &H3C9\par
\par
' String resource number bases (internal use)\par
\par
Public Const MMSYSERR_BASE = 0\par
Public Const WAVERR_BASE = 32\par
Public Const MIDIERR_BASE = 64\par
Public Const TIMERR_BASE = 96 ' was 128, changed to match Win 31 Sonic\par
Public Const JOYERR_BASE = 160\par
Public Const MCIERR_BASE = 256\par
\par
Public Const MCI_STRING_OFFSET = 512 ' if this number is changed you MUST\par
' alter the MCI_DEVTYPE_... list below\par
Public Const MCI_VD_OFFSET = 1024\par
Public Const MCI_CD_OFFSET = 1088\par
Public Const MCI_WAVE_OFFSET = 1152\par
Public Const MCI_SEQ_OFFSET = 1216\par
\par
' General error return values\par
Public Const MMSYSERR_NOERROR = 0 ' no error\par
Public Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1) ' unspecified error\par
Public Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2) ' device ID out of range\par
Public Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3) ' driver failed enable\par
Public Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4) ' device already allocated\par
Public Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5) ' device handle is invalid\par
Public Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6) ' no device driver present\par
Public Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7) ' memory allocation error\par
Public Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8) ' function isn't supported\par
Public Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9) ' error value out of range\par
Public Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) ' invalid flag passed\par
Public Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) ' invalid parameter passed\par
Public Const MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12) ' handle being used\par
' simultaneously on another\par
' thread (eg callback)\par
Public Const MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE + 13) ' "Specified alias not found in WIN.INI\par
Public Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 13) ' last error in range\par
Public Const MM_MOM_POSITIONCB = &H3CA ' Callback for MEVT_POSITIONCB\par
Public Const MM_MCISIGNAL = &H3CB\par
Public Const MM_MIM_MOREDATA = &H3CC ' MIM_DONE w/ pending events\par
Public Const MIDICAPS_STREAM = &H8 ' driver supports midiStreamOut directly\par
\par
\par
Type MIDIEVENT\par
dwDeltaTime As Long ' Ticks since last event\par
dwStreamID As Long ' Reserved; must be zero\par
dwEvent As Long ' Event type and parameters\par
dwParms(1) As Long ' Parameters if this is a long event\par
End Type\par
\par
Type MIDISTRMBUFFVER\par
dwVersion As Long ' Stream buffer format version\par
dwMid As Long ' Manufacturer ID as defined in MMREG.H\par
dwOEMVersion As Long ' Manufacturer version for custom ext\par
End Type\par
\par
' Type codes which go in the high byte of the event DWORD of a stream buffer\par
\par
' Type codes 00-7F contain parameters within the low 24 bits\par
' Type codes 80-FF contain a length of their parameter in the low 24\par
' bits, followed by their parameter data in the buffer. The event\par
' DWORD contains the exact byte length; the parm data itself must be\par
' padded to be an even multiple of 4 Byte long.\par
'\par
\par
Public Const MEVT_F_SHORT = &H0&\par
Public Const MEVT_F_LONG = &H80000000\par
Public Const MEVT_F_CALLBACK = &H40000000\par
Public Const MIDISTRM_ERROR = -2\par
\par
'\par
' Structures and defines for midiStreamProperty\par
'\par
Public Const MIDIPROP_SET = &H80000000\par
Public Const MIDIPROP_GET = &H40000000\par
\par
' These are intentionally both non-zero so the app cannot accidentally\par
' leave the operation off and happen to appear to work due to default\par
' action.\par
\par
Public Const MIDIPROP_TIMEDIV = &H1&\par
Public Const MIDIPROP_TEMPO = &H2&\par
\par
Type MIDIPROPTIMEDIV\par
cbStruct As Long\par
dwTimeDiv As Long\par
End Type\par
\par
Type MIDIPROPTEMPO\par
cbStruct As Long\par
dwTempo As Long\par
End Type\par
\par
\par
' MIDI function prototypes *\par
\par
' ***************************************************************************\par
\par
' Mixer Support\par
\par
' **************************************************************************\par
\par
Public Const MIXER_SHORT_NAME_CHARS = 16\par
Public Const MIXER_LONG_NAME_CHARS = 64\par
\par
'\par
' MMRESULT error return values specific to the mixer API\par
'\par
'\par
Public Const MIXERR_BASE = 1024\par
Public Const MIXERR_INVALLINE = (MIXERR_BASE + 0)\par
Public Const MIXERR_INVALCONTROL = (MIXERR_BASE + 1)\par
Public Const MIXERR_INVALVALUE = (MIXERR_BASE + 2)\par
Public Const MIXERR_LASTERROR = (MIXERR_BASE + 2)\par
\par
\par
Public Const MIXER_OBJECTF_HANDLE = &H80000000\par
Public Const MIXER_OBJECTF_MIXER = &H0&\par
Public Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER)\par
Public Const MIXER_OBJECTF_WAVEOUT = &H10000000\par
Public Const MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEOUT)\par
Public Const MIXER_OBJECTF_WAVEIN = &H20000000\par
Public Const MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEIN)\par
Public Const MIXER_OBJECTF_MIDIOUT = &H30000000\par
Public Const MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIOUT)\par
Public Const MIXER_OBJECTF_MIDIIN = &H40000000\par
Public Const MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIIN)\par
Public Const MIXER_OBJECTF_AUX = &H50000000\par
\par
Declare Function mixerGetNumDevs Lib "winmm.dll" Alias "mixerGetNumDevs" () As Long\par
\par
Type MIXERCAPS\par
wMid As Integer ' manufacturer id\par
wPid As Integer ' product id\par
vDriverVersion As Long ' version of the driver\par
szPname As String * MAXPNAMELEN ' product name\par
fdwSupport As Long ' misc. support bits\par
cDestinations As Long ' count of destinations\par
End Type\par
\par
Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long\par
Declare Function mixerOpen Lib "winmm.dll" Alias "mixerOpen" (phmx As Long, ByVal uMxId As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long\par
Declare Function mixerClose Lib "winmm.dll" Alias "mixerClose" (ByVal hmx As Long) As Long\par
Declare Function mixerMessage Lib "winmm.dll" Alias "mixerMessage" (ByVal hmx As Long, ByVal uMsg As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long\par
\par
Type Target ' for use in MIXERLINE and others (embedded structure)\par
\par
dwType As Long ' MIXERLINE_TARGETTYPE_xxxx\par
dwDeviceID As Long ' target device ID of device type\par
wMid As Integer ' of target device\par
wPid As Integer ' "\par
vDriverVersion As Long ' "\par
szPname As String * MAXPNAMELEN\par
End Type\par
\par
Type MIXERLINE\par
cbStruct As Long ' size of MIXERLINE structure\par
dwDestination As Long ' zero based destination index\par
dwSource As Long ' zero based source index (if source)\par
dwLineID As Long ' unique line id for mixer device\par
fdwLine As Long ' state/information about line\par
dwUser As Long ' driver specific information\par
dwComponentType As Long ' component type line connects to\par
cChannels As Long ' number of channels line supports\par
cConnections As Long ' number of connections (possible)\par
cControls As Long ' number of controls at this line\par
szShortName As String * MIXER_SHORT_NAME_CHARS\par
szName As String * MIXER_LONG_NAME_CHARS\par
lpTarget As Target\par
End Type\par
\par
' MIXERLINE.fdwLine\par
\par
Public Const MIXERLINE_LINEF_ACTIVE = &H1&\par
Public Const MIXERLINE_LINEF_DISCONNECTED = &H8000&\par
Public Const MIXERLINE_LINEF_SOURCE = &H80000000\par
\par
' MIXERLINE.dwComponentType\par
\par
' component types for destinations and sources\par
\par
Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&\par
Public Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)\par
Public Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)\par
\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)\par
Public Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)\par
\par
\par
'\par
' MIXERLINE.Target.dwType\par
'\par
'\par
Public Const MIXERLINE_TARGETTYPE_UNDEFINED = 0\par
Public Const MIXERLINE_TARGETTYPE_WAVEOUT = 1\par
Public Const MIXERLINE_TARGETTYPE_WAVEIN = 2\par
Public Const MIXERLINE_TARGETTYPE_MIDIOUT = 3\par
Public Const MIXERLINE_TARGETTYPE_MIDIIN = 4\par
Public Const MIXERLINE_TARGETTYPE_AUX = 5\par
\par
Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long\par
Public Const MIXER_GETLINEINFOF_DESTINATION = &H0&\par
Public Const MIXER_GETLINEINFOF_SOURCE = &H1&\par
Public Const MIXER_GETLINEINFOF_LINEID = &H2&\par
Public Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&\par
Public Const MIXER_GETLINEINFOF_TARGETTYPE = &H4&\par
Public Const MIXER_GETLINEINFOF_QUERYMASK = &HF&\par
\par
Declare Function mixerGetID Lib "winmm.dll" Alias "mixerGetID" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long\par
\par
' MIXERCONTROL\par
\par
Type MIXERCONTROL\par
cbStruct As Long ' size in Byte of MIXERCONTROL\par
dwControlID As Long ' unique control id for mixer device\par
dwControlType As Long ' MIXERCONTROL_CONTROLTYPE_xxx\par
fdwControl As Long ' MIXERCONTROL_CONTROLF_xxx\par
cMultipleItems As Long ' if MIXERCONTROL_CONTROLF_MULTIPLE set\par
szShortName As String * MIXER_SHORT_NAME_CHARS\par
szName As String * MIXER_LONG_NAME_CHARS\par
Bounds As Double\par
Metrics As Long\par
End Type\par
'\par
' MIXERCONTROL.fdwControl\par
\par
Public Const MIXERCONTROL_CONTROLF_UNIFORM = &H1&\par
Public Const MIXERCONTROL_CONTROLF_MULTIPLE = &H2&\par
Public Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000\par
\par
' MIXERCONTROL_CONTROLTYPE_xxx building block defines\par
\par
Public Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000\par
Public Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0&\par
Public Const MIXERCONTROL_CT_CLASS_METER = &H10000000\par
Public Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000\par
Public Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000\par
Public Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000\par
Public Const MIXERCONTROL_CT_CLASS_FADER = &H50000000\par
Public Const MIXERCONTROL_CT_CLASS_TIME = &H60000000\par
Public Const MIXERCONTROL_CT_CLASS_LIST = &H70000000\par
Public Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000\par
Public Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&\par
Public Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000\par
Public Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&\par
Public Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0&\par
Public Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000\par
Public Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0&\par
Public Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000\par
Public Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000\par
Public Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0&\par
Public Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000\par
Public Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000\par
Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000\par
Public Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 ' in 10ths\par
Public Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000 ' in 10ths\par
'\par
' Commonly used control types for specifying MIXERCONTROL.dwControlType\par
'\par
Public Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM)\par
Public Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN)\par
Public Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_UNSIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN)\par
Public Const MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2)\par
Public Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3)\par
Public Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4)\par
Public Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5)\par
Public Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BUTTON Or MIXERCONTROL_CT_UNITS_BOOLEAN)\par
Public Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_DECIBELS)\par
Public Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_SIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_UNSIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_PERCENT)\par
Public Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or MIXERCONTROL_CT_UNITS_SIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2)\par
Public Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2)\par
Public Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3)\par
Public Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4)\par
Public Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_SINGLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)\par
Public Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_MULTIPLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)\par
Public Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1)\par
Public Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MICROSECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)\par
Public Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MILLISECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)\par
'\par
' MIXERLINECONTROLS\par
'\par
Type MIXERLINECONTROLS\par
cbStruct As Long ' size in Byte of MIXERLINECONTROLS\par
dwLineID As Long ' line id (from MIXERLINE.dwLineID)\par
' MIXER_GETLINECONTROLSF_ONEBYID or\par
dwControl As Long ' MIXER_GETLINECONTROLSF_ONEBYTYPE\par
cControls As Long ' count of controls pmxctrl points to\par
cbmxctrl As Long ' size in Byte of _one_ MIXERCONTROL\par
pamxctrl As MIXERCONTROL ' pointer to first MIXERCONTROL array\par
End Type\par
\par
Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long\par
\par
Public Const MIXER_GETLINECONTROLSF_ALL = &H0&\par
Public Const MIXER_GETLINECONTROLSF_ONEBYID = &H1&\par
Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&\par
Public Const MIXER_GETLINECONTROLSF_QUERYMASK = &HF&\par
\par
Type MIXERCONTROLDETAILS\par
cbStruct As Long ' size in Byte of MIXERCONTROLDETAILS\par
dwControlID As Long ' control id to get/set details on\par
cChannels As Long ' number of channels in paDetails array\par
item As Long ' hwndOwner or cMultipleItems\par
cbDetails As Long ' size of _one_ details_XX struct\par
paDetails As Long ' pointer to array of details_XX structs\par
End Type\par
\par
' MIXER_GETCONTROLDETAILSF_LISTTEXT\par
\par
Type MIXERCONTROLDETAILS_LISTTEXT\par
dwParam1 As Long\par
dwParam2 As Long\par
szName As String * MIXER_LONG_NAME_CHARS\par
End Type\par
\par
' MIXER_GETCONTROLDETAILSF_VALUE\par
\par
Type MIXERCONTROLDETAILS_BOOLEAN\par
fValue As Long\par
End Type\par
\par
Type MIXERCONTROLDETAILS_SIGNED\par
lValue As Long\par
End Type\par
\par
Type MIXERCONTROLDETAILS_UNSIGNED\par
dwValue As Long\par
End Type\par
\par
Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long\par
\par
Public Const MIXER_GETCONTROLDETAILSF_VALUE = &H0&\par
Public Const MIXER_GETCONTROLDETAILSF_LISTTEXT = &H1&\par
Public Const MIXER_GETCONTROLDETAILSF_QUERYMASK = &HF&\par
\par
Declare Function mixerSetControlDetails Lib "winmm.dll" Alias "mixerSetControlDetails" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long\par
\par
Public Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&\par
Public Const MIXER_SETCONTROLDETAILSF_CUSTOM = &H1&\par
Public Const MIXER_SETCONTROLDETAILSF_QUERYMASK = &HF&\par
\par
' constants used with JOYINFOEX\par
Public Const JOY_BUTTON5 = &H10&\par
Public Const JOY_BUTTON6 = &H20&\par
Public Const JOY_BUTTON7 = &H40&\par
Public Const JOY_BUTTON8 = &H80&\par
Public Const JOY_BUTTON9 = &H100&\par
Public Const JOY_BUTTON10 = &H200&\par
Public Const JOY_BUTTON11 = &H400&\par
Public Const JOY_BUTTON12 = &H800&\par
Public Const JOY_BUTTON13 = &H1000&\par
Public Const JOY_BUTTON14 = &H2000&\par
Public Const JOY_BUTTON15 = &H4000&\par
Public Const JOY_BUTTON16 = &H8000&\par
Public Const JOY_BUTTON17 = &H10000\par
Public Const JOY_BUTTON18 = &H20000\par
Public Const JOY_BUTTON19 = &H40000\par
Public Const JOY_BUTTON20 = &H80000\par
Public Const JOY_BUTTON21 = &H100000\par
Public Const JOY_BUTTON22 = &H200000\par
Public Const JOY_BUTTON23 = &H400000\par
Public Const JOY_BUTTON24 = &H800000\par
Public Const JOY_BUTTON25 = &H1000000\par
Public Const JOY_BUTTON26 = &H2000000\par
Public Const JOY_BUTTON27 = &H4000000\par
Public Const JOY_BUTTON28 = &H8000000\par
Public Const JOY_BUTTON29 = &H10000000\par
Public Const JOY_BUTTON30 = &H20000000\par
Public Const JOY_BUTTON31 = &H40000000\par
Public Const JOY_BUTTON32 = &H80000000\par
\par
' constants used with JOYINFOEX structure\par
Public Const JOY_POVCENTERED = -1\par
Public Const JOY_POVFORWARD = 0\par
Public Const JOY_POVRIGHT = 9000\par
Public Const JOY_POVBACKWARD = 18000\par
Public Const JOY_POVLEFT = 27000\par
Public Const JOY_RETURNX = &H1&\par
Public Const JOY_RETURNY = &H2&\par
Public Const JOY_RETURNZ = &H4&\par
Public Const JOY_RETURNR = &H8&\par
Public Const JOY_RETURNU = &H10 ' axis 5\par
Public Const JOY_RETURNV = &H20 ' axis 6\par
Public Const JOY_RETURNPOV = &H40&\par
Public Const JOY_RETURNBUTTONS = &H80&\par
Public Const JOY_RETURNRAWDATA = &H100&\par
Public Const JOY_RETURNPOVCTS = &H200&\par
Public Const JOY_RETURNCENTERED = &H400&\par
Public Const JOY_USEDEADZONE = &H800&\par
Public Const 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)\par
Public Const JOY_CAL_READALWAYS = &H10000\par
Public Const JOY_CAL_READXYONLY = &H20000\par
Public Const JOY_CAL_READ3 = &H40000\par
Public Const JOY_CAL_READ4 = &H80000\par
Public Const JOY_CAL_READXONLY = &H100000\par
Public Const JOY_CAL_READYONLY = &H200000\par
Public Const JOY_CAL_READ5 = &H400000\par
Public Const JOY_CAL_READ6 = &H800000\par
Public Const JOY_CAL_READZONLY = &H1000000\par
Public Const JOY_CAL_READRONLY = &H2000000\par
Public Const JOY_CAL_READUONLY = &H4000000\par
Public Const JOY_CAL_READVONLY = &H8000000\par
\par
Declare Function joyGetPos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long\par
Declare Function joyGetPosEx Lib "winmm.dll" Alias "joyGetPosEx" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long\par
Public Const WAVE_FORMAT_QUERY = &H1\par
Public Const SND_PURGE = &H40 ' purge non-static events for task\par
Public Const SND_APPLICATION = &H80 ' look for application specific association\par
Public Const WAVE_MAPPED = &H4\par
Public Const WAVE_FORMAT_DIRECT = &H8\par
Public Const WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY Or WAVE_FORMAT_DIRECT)\par
Public Const MIM_MOREDATA = MM_MIM_MOREDATA\par
Public Const MOM_POSITIONCB = MM_MOM_POSITIONCB\par
\par
' flags for dwFlags parm of midiInOpen()\par
Public Const MIDI_IO_STATUS = &H20&\par
\par
Declare Function midiStreamOpen Lib "winmm.dll" Alias "midiStreamOpen" (phms As Long, puDeviceID As Long, ByVal cMidi As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal fdwOpen As Long) As Long\par
Declare Function midiStreamClose Lib "winmm.dll" Alias "midiStreamClose" (ByVal hms As Long) As Long\par
\par
Declare Function midiStreamProperty Lib "winmm.dll" Alias "midiStreamProperty" (ByVal hms As Long, lppropdata As Byte, ByVal dwProperty As Long) As Long\par
Declare Function midiStreamPosition Lib "winmm.dll" Alias "midiStreamPosition" (ByVal hms As Long, lpmmt As MMTIME, ByVal cbmmt As Long) As Long\par
Declare Function midiStreamOut Lib "winmm.dll" Alias "midiStreamOut" (ByVal hms As Long, pmh As MIDIHDR, ByVal cbmh As Long) As Long\par
Declare Function midiStreamPause Lib "winmm.dll" Alias "midiStreamPause" (ByVal hms As Long) As Long\par
Declare Function midiStreamRestart Lib "winmm.dll" Alias "midiStreamRestart" (ByVal hms As Long) As Long\par
Declare Function midiStreamStop Lib "winmm.dll" Alias "midiStreamStop" (ByVal hms As Long) As Long\par
Declare Function midiConnect Lib "winmm.dll" Alias "midiConnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long\par
Declare Function midiDisconnect Lib "winmm.dll" Alias "midiDisconnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long\par
\par
Type JOYINFOEX\par
dwSize As Long ' size of structure\par
dwFlags As Long ' flags to indicate what to return\par
dwXpos As Long ' x position\par
dwYpos As Long ' y position\par
dwZpos As Long ' z position\par
dwRpos As Long ' rudder/4th axis position\par
dwUpos As Long ' 5th axis position\par
dwVpos As Long ' 6th axis position\par
dwButtons As Long ' button states\par
dwButtonNumber As Long ' current button number pressed\par
dwPOV As Long ' point of view state\par
dwReserved1 As Long ' reserved for communication between winmm driver\par
dwReserved2 As Long ' reserved for future expansion\par
End Type\par
' Installable driver support\par
\par
' Driver messages\par
Public Const DRV_LOAD = &H1\par
Public Const DRV_ENABLE = &H2\par
Public Const DRV_OPEN = &H3\par
Public Const DRV_CLOSE = &H4\par
Public Const DRV_DISABLE = &H5\par
Public Const DRV_FREE = &H6\par
Public Const DRV_CONFIGURE = &H7\par
Public Const DRV_QUERYCONFIGURE = &H8\par
Public Const DRV_INSTALL = &H9\par
Public Const DRV_REMOVE = &HA\par
Public Const DRV_EXITSESSION = &HB\par
Public Const DRV_POWER = &HF\par
Public Const DRV_RESERVED = &H800\par
Public Const DRV_USER = &H4000\par
\par
Type DRVCONFIGINFO\par
dwDCISize As Long\par
lpszDCISectionName As String\par
lpszDCIAliasName As String\par
dnDevNode As Long\par
End Type\par
\par
' Supported return values for DRV_CONFIGURE message\par
Public Const DRVCNF_CANCEL = &H0\par
Public Const DRVCNF_OK = &H1\par
Public Const DRVCNF_RESTART = &H2\par
\par
' return values from DriverProc() function\par
Public Const DRV_CANCEL = DRVCNF_CANCEL\par
Public Const DRV_OK = DRVCNF_OK\par
Public Const DRV_RESTART = DRVCNF_RESTART\par
\par
Declare Function CloseDriver Lib "winmm.dll" Alias "CloseDriver" (ByVal hDriver As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long\par
Declare Function OpenDriver Lib "winmm.dll" Alias "OpenDriverA" (ByVal szDriverName As String, ByVal szSectionName As String, ByVal lParam2 As Long) As Long\par
Declare Function SendDriverMessage Lib "winmm.dll" Alias "SendDriverMessage" (ByVal hDriver As Long, ByVal message As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long\par
Declare Function DrvGetModuleHandle Lib "winmm.dll" Alias "DrvGetModuleHandle" (ByVal hDriver As Long) As Long\par
Declare Function GetDriverModuleHandle Lib "winmm.dll" Alias "GetDriverModuleHandle" (ByVal hDriver As Long) As Long\par
Declare Function DefDriverProc Lib "winmm.dll" Alias "DefDriverProc" (ByVal dwDriverIdentifier As Long, ByVal hdrvr As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long\par
\par
Public Const DRV_MCI_FIRST = DRV_RESERVED\par
Public Const DRV_MCI_LAST = DRV_RESERVED + &HFFF\par
\par
' Driver callback support\par
\par
' flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and\par
' midiOutOpen() to specify the type of the dwCallback parameter.\par
Public Const CALLBACK_TYPEMASK = &H70000 ' callback type mask\par
Public Const CALLBACK_NULL = &H0 ' no callback\par
Public Const CALLBACK_WINDOW = &H10000 ' dwCallback is a HWND\par
Public Const CALLBACK_TASK = &H20000 ' dwCallback is a HTASK\par
Public Const CALLBACK_FUNCTION = &H30000 ' dwCallback is a FARPROC\par
\par
' manufacturer IDs\par
Public Const MM_MICROSOFT = 1 ' Microsoft Corp.\par
\par
' product IDs\par
Public Const MM_MIDI_MAPPER = 1 ' MIDI Mapper\par
Public Const MM_WAVE_MAPPER = 2 ' Wave Mapper\par
\par
Public Const MM_SNDBLST_MIDIOUT = 3 ' Sound Blaster MIDI output port\par
Public Const MM_SNDBLST_MIDIIN = 4 ' Sound Blaster MIDI input port\par
Public Const MM_SNDBLST_SYNTH = 5 ' Sound Blaster internal synthesizer\par
Public Const MM_SNDBLST_WAVEOUT = 6 ' Sound Blaster waveform output\par
Public Const MM_SNDBLST_WAVEIN = 7 ' Sound Blaster waveform input\par
\par
Public Const MM_ADLIB = 9 ' Ad Lib-compatible synthesizer\par
\par
Public Const MM_MPU401_MIDIOUT = 10 ' MPU401-compatible MIDI output port\par
Public Const MM_MPU401_MIDIIN = 11 ' MPU401-compatible MIDI input port\par
\par
Public Const MM_PC_JOYSTICK = 12 ' Joystick adapter\par
\par
Declare Function mmsystemGetVersion Lib "winmm.dll" Alias "mmsystemGetVersion" () As Long\par
Declare Sub OutputDebugStr Lib "winmm.dll" Alias "OutputDebugStr" (ByVal lpszOutputString As String)\par
\par
Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long\par
\par
' flag values for uFlags parameter\par
Public Const SND_SYNC = &H0 ' play synchronously (default)\par
Public Const SND_ASYNC = &H1 ' play asynchronously\par
\par
Public Const SND_NODEFAULT = &H2 ' silence not default, if sound not found\par
\par
Public Const SND_MEMORY = &H4 ' lpszSoundName points to a memory file\par
Public Const SND_ALIAS = &H10000 ' name is a WIN.INI [sounds] entry\par
Public Const SND_FILENAME = &H20000 ' name is a file name\par
Public Const SND_RESOURCE = &H40004 ' name is a resource name or atom\par
Public Const SND_ALIAS_ID = &H110000 ' name is a WIN.INI [sounds] entry identifier\par
\par
Public Const SND_ALIAS_START = 0 ' must be > 4096 to keep strings in same section of resource file\par
\par
Public Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound\par
Public Const SND_NOSTOP = &H10 ' don't stop any currently playing sound\par
Public Const SND_VALID = &H1F ' valid flags / ;Internal /\par
\par
Public Const SND_NOWAIT = &H2000 ' don't wait if the driver is busy\par
\par
Public Const SND_VALIDFLAGS = &H17201F ' Set of valid flag bits. Anything outside\par
' this range will raise an error\par
Public Const SND_RESERVED = &HFF000000 ' In particular these flags are reserved\par
\par
Public Const SND_TYPE_MASK = &H170007\par
\par
Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long\par
\par
' waveform audio error return values\par
Public Const WAVERR_BADFORMAT = (WAVERR_BASE + 0) ' unsupported wave format\par
Public Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1) ' still something playing\par
Public Const WAVERR_UNPREPARED = (WAVERR_BASE + 2) ' header not prepared\par
Public Const WAVERR_SYNC = (WAVERR_BASE + 3) ' device is synchronous\par
Public Const WAVERR_LASTERROR = (WAVERR_BASE + 3) ' last error in range\par
\par
' wave callback messages\par
Public Const WOM_OPEN = MM_WOM_OPEN\par
Public Const WOM_CLOSE = MM_WOM_CLOSE\par
Public Const WOM_DONE = MM_WOM_DONE\par
Public Const WIM_OPEN = MM_WIM_OPEN\par
Public Const WIM_CLOSE = MM_WIM_CLOSE\par
Public Const WIM_DATA = MM_WIM_DATA\par
\par
' device ID for wave device mapper\par
Public Const WAVE_MAPPER = -1&\par
\par
' flags for dwFlags parameter in waveOutOpen() and waveInOpen()\par
\par
Public Const WAVE_ALLOWSYNC = &H2\par
Public Const WAVE_VALID = &H3 ' ;Internal\par
\par
Type WAVEHDR\par
lpData As String\par
dwBufferLength As Long\par
dwBytesRecorded As Long\par
dwUser As Long\par
dwFlags As Long\par
dwLoops As Long\par
lpNext As Long\par
Reserved As Long\par
End Type\par
\par
' flags for dwFlags field of WAVEHDR\par
Public Const WHDR_DONE = &H1 ' done bit\par
Public Const WHDR_PREPARED = &H2 ' set if this header has been prepared\par
Public Const WHDR_BEGINLOOP = &H4 ' loop start block\par
Public Const WHDR_ENDLOOP = &H8 ' loop end block\par
Public Const WHDR_INQUEUE = &H10 ' reserved for driver\par
Public Const WHDR_VALID = &H1F ' valid flags / ;Internal /\par
\par
Type WAVEOUTCAPS\par
wMid As Integer\par
wPid As Integer\par
vDriverVersion As Long\par
szPname As String * MAXPNAMELEN\par
dwFormats As Long\par
wChannels As Integer\par
\tab\tab wReserved As Integer\par
dwSupport As Long\par
End Type\par
\par
' flags for dwSupport field of WAVEOUTCAPS\par
Public Const WAVECAPS_PITCH = &H1 ' supports pitch control\par
Public Const WAVECAPS_PLAYBACKRATE = &H2 ' supports playback rate control\par
Public Const WAVECAPS_VOLUME = &H4 ' supports volume control\par
Public Const WAVECAPS_LRVOLUME = &H8 ' separate left-right volume control\par
Public Const WAVECAPS_SYNC = &H10\par
\par
Type WAVEINCAPS\par
wMid As Integer\par
wPid As Integer\par
vDriverVersion As Long\par
szPname As String * MAXPNAMELEN\par
dwFormats As Long\par
wChannels As Integer\par
\tab\tab wReserved As Integer\par
End Type\par
\par
' defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS\par
Public Const WAVE_INVALIDFORMAT = &H0 ' invalid format\par
Public Const WAVE_FORMAT_1M08 = &H1 ' 11.025 kHz, Mono, 8-bit\par
Public Const WAVE_FORMAT_1S08 = &H2 ' 11.025 kHz, Stereo, 8-bit\par
Public Const WAVE_FORMAT_1M16 = &H4 ' 11.025 kHz, Mono, 16-bit\par
Public Const WAVE_FORMAT_1S16 = &H8 ' 11.025 kHz, Stereo, 16-bit\par
Public Const WAVE_FORMAT_2M08 = &H10 ' 22.05 kHz, Mono, 8-bit\par
Public Const WAVE_FORMAT_2S08 = &H20 ' 22.05 kHz, Stereo, 8-bit\par
Public Const WAVE_FORMAT_2M16 = &H40 ' 22.05 kHz, Mono, 16-bit\par
Public Const WAVE_FORMAT_2S16 = &H80 ' 22.05 kHz, Stereo, 16-bit\par
Public Const WAVE_FORMAT_4M08 = &H100 ' 44.1 kHz, Mono, 8-bit\par
Public Const WAVE_FORMAT_4S08 = &H200 ' 44.1 kHz, Stereo, 8-bit\par
Public Const WAVE_FORMAT_4M16 = &H400 ' 44.1 kHz, Mono, 16-bit\par
Public Const WAVE_FORMAT_4S16 = &H800 ' 44.1 kHz, Stereo, 16-bit\par
\par
' flags for wFormatTag field of WAVEFORMAT\par
Public Const WAVE_FORMAT_PCM = 1 ' Needed in resource files so outside #ifndef RC_INVOKED\par
\par
Type WAVEFORMAT\par
wFormatTag As Integer\par
nChannels As Integer\par
nSamplesPerSec As Long\par
nAvgBytesPerSec As Long\par
nBlockAlign As Integer\par
End Type\par
\par
Type PCMWAVEFORMAT\par
wf As WAVEFORMAT\par
wBitsPerSample As Integer\par
End Type\par
\par
Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias "waveOutGetNumDevs" () As Long\par
Declare Function waveOutGetDevCaps Lib "winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function waveOutGetVolume Lib "winmm.dll" Alias "waveOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long\par
Declare Function waveOutSetVolume Lib "winmm.dll" Alias "waveOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long\par
\par
Declare Function waveOutGetErrorText Lib "winmm.dll" Alias "waveOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long\par
\par
Declare Function waveOutOpen Lib "winmm.dll" Alias "waveOutOpen" (lphWaveOut As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long\par
Declare Function waveOutClose Lib "winmm.dll" Alias "waveOutClose" (ByVal hWaveOut As Long) As Long\par
Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveOutUnprepareHeader Lib "winmm.dll" Alias "waveOutUnprepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveOutWrite Lib "winmm.dll" Alias "waveOutWrite" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveOutPause Lib "winmm.dll" Alias "waveOutPause" (ByVal hWaveOut As Long) As Long\par
Declare Function waveOutRestart Lib "winmm.dll" Alias "waveOutRestart" (ByVal hWaveOut As Long) As Long\par
Declare Function waveOutReset Lib "winmm.dll" Alias "waveOutReset" (ByVal hWaveOut As Long) As Long\par
Declare Function waveOutBreakLoop Lib "winmm.dll" Alias "waveOutBreakLoop" (ByVal hWaveOut As Long) As Long\par
Declare Function waveOutGetPosition Lib "winmm.dll" Alias "waveOutGetPosition" (ByVal hWaveOut As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long\par
Declare Function waveOutGetPitch Lib "winmm.dll" Alias "waveOutGetPitch" (ByVal hWaveOut As Long, lpdwPitch As Long) As Long\par
Declare Function waveOutSetPitch Lib "winmm.dll" Alias "waveOutSetPitch" (ByVal hWaveOut As Long, ByVal dwPitch As Long) As Long\par
Declare Function waveOutGetPlaybackRate Lib "winmm.dll" Alias "waveOutGetPlaybackRate" (ByVal hWaveOut As Long, lpdwRate As Long) As Long\par
Declare Function waveOutSetPlaybackRate Lib "winmm.dll" Alias "waveOutSetPlaybackRate" (ByVal hWaveOut As Long, ByVal dwRate As Long) As Long\par
Declare Function waveOutGetID Lib "winmm.dll" Alias "waveOutGetID" (ByVal hWaveOut As Long, lpuDeviceID As Long) As Long\par
Declare Function waveOutMessage Lib "winmm.dll" Alias "waveOutMessage" (ByVal hWaveOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
Declare Function waveInGetNumDevs Lib "winmm.dll" Alias "waveInGetNumDevs" () As Long\par
\par
Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long\par
\par
Declare Function waveInOpen Lib "winmm.dll" Alias "waveInOpen" (lphWaveIn As Long, ByVal uDeviceID As Long, lpFormat As WAVEFORMAT, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long\par
Declare Function waveInClose Lib "winmm.dll" Alias "waveInClose" (ByVal hWaveIn As Long) As Long\par
Declare Function waveInPrepareHeader Lib "winmm.dll" Alias "waveInPrepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveInUnprepareHeader Lib "winmm.dll" Alias "waveInUnprepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveInAddBuffer Lib "winmm.dll" Alias "waveInAddBuffer" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long\par
Declare Function waveInStart Lib "winmm.dll" Alias "waveInStart" (ByVal hWaveIn As Long) As Long\par
Declare Function waveInStop Lib "winmm.dll" Alias "waveInStop" (ByVal hWaveIn As Long) As Long\par
Declare Function waveInReset Lib "winmm.dll" Alias "waveInReset" (ByVal hWaveIn As Long) As Long\par
Declare Function waveInGetPosition Lib "winmm.dll" Alias "waveInGetPosition" (ByVal hWaveIn As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long\par
Declare Function waveInGetID Lib "winmm.dll" Alias "waveInGetID" (ByVal hWaveIn As Long, lpuDeviceID As Long) As Long\par
Declare Function waveInMessage Lib "winmm.dll" Alias "waveInMessage" (ByVal hWaveIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
\par
' MIDI error return values\par
Public Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0) ' header not prepared\par
Public Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1) ' still something playing\par
Public Const MIDIERR_NOMAP = (MIDIERR_BASE + 2) ' no current map\par
Public Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3) ' hardware is still busy\par
Public Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4) ' port no longer connected\par
Public Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5) ' invalid setup\par
Public Const MIDIERR_LASTERROR = (MIDIERR_BASE + 5) ' last error in range\par
\par
' MIDI callback messages\par
Public Const MIM_OPEN = MM_MIM_OPEN\par
Public Const MIM_CLOSE = MM_MIM_CLOSE\par
Public Const MIM_DATA = MM_MIM_DATA\par
Public Const MIM_LONGDATA = MM_MIM_LONGDATA\par
Public Const MIM_ERROR = MM_MIM_ERROR\par
Public Const MIM_LONGERROR = MM_MIM_LONGERROR\par
Public Const MOM_OPEN = MM_MOM_OPEN\par
Public Const MOM_CLOSE = MM_MOM_CLOSE\par
Public Const MOM_DONE = MM_MOM_DONE\par
\par
' device ID for MIDI mapper\par
Public Const MIDIMAPPER = (-1) ' Cannot be cast to DWORD as RC complains\par
Public Const MIDI_MAPPER = -1&\par
\par
' flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()\par
Public Const MIDI_CACHE_ALL = 1\par
Public Const MIDI_CACHE_BESTFIT = 2\par
Public Const MIDI_CACHE_QUERY = 3\par
Public Const MIDI_UNCACHE = 4\par
Public Const MIDI_CACHE_VALID = (MIDI_CACHE_ALL Or MIDI_CACHE_BESTFIT Or MIDI_CACHE_QUERY Or MIDI_UNCACHE) ' ;Internal\par
\par
Type MIDIOUTCAPS\par
wMid As Integer\par
wPid As Integer\par
vDriverVersion As Long\par
szPname As String * MAXPNAMELEN\par
wTechnology As Integer\par
wVoices As Integer\par
wNotes As Integer\par
wChannelMask As Integer\par
dwSupport As Long\par
End Type\par
\par
' flags for wTechnology field of MIDIOUTCAPS structure\par
Public Const MOD_MIDIPORT = 1 ' output port\par
Public Const MOD_SYNTH = 2 ' generic internal synth\par
Public Const MOD_SQSYNTH = 3 ' square wave internal synth\par
Public Const MOD_FMSYNTH = 4 ' FM internal synth\par
Public Const MOD_MAPPER = 5 ' MIDI mapper\par
\par
' flags for dwSupport field of MIDIOUTCAPS\par
Public Const MIDICAPS_VOLUME = &H1 ' supports volume control\par
Public Const MIDICAPS_LRVOLUME = &H2 ' separate left-right volume control\par
Public Const MIDICAPS_CACHE = &H4\par
\par
Type MIDIINCAPS\par
wMid As Integer\par
wPid As Integer\par
vDriverVersion As Long\par
szPname As String * MAXPNAMELEN\par
End Type\par
\par
Type MIDIHDR\par
lpData As String\par
dwBufferLength As Long\par
dwBytesRecorded As Long\par
dwUser As Long\par
dwFlags As Long\par
lpNext As Long\par
Reserved As Long\par
End Type\par
\par
' flags for dwFlags field of MIDIHDR structure\par
Public Const MHDR_DONE = &H1 ' done bit\par
Public Const MHDR_PREPARED = &H2 ' set if header prepared\par
Public Const MHDR_INQUEUE = &H4 ' reserved for driver\par
Public Const MHDR_VALID = &H7 ' valid flags / ;Internal /\par
\par
Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function midiOutGetVolume Lib "winmm.dll" Alias "midiOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long\par
Declare Function midiOutSetVolume Lib "winmm.dll" Alias "midiOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long\par
\par
Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long\par
\par
Declare Function midiOutOpen Lib "winmm.dll" Alias "midiOutOpen" (lphMidiOut As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long\par
Declare Function midiOutClose Lib "winmm.dll" Alias "midiOutClose" (ByVal hMidiOut As Long) As Long\par
Declare Function midiOutPrepareHeader Lib "winmm.dll" Alias "midiOutPrepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiOutUnprepareHeader Lib "winmm.dll" Alias "midiOutUnprepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiOutShortMsg Lib "winmm.dll" Alias "midiOutShortMsg" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long\par
Declare Function midiOutLongMsg Lib "winmm.dll" Alias "midiOutLongMsg" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiOutReset Lib "winmm.dll" Alias "midiOutReset" (ByVal hMidiOut As Long) As Long\par
Declare Function midiOutCachePatches Lib "winmm.dll" Alias "midiOutCachePatches" (ByVal hMidiOut As Long, ByVal uBank As Long, lpPatchArray As Long, ByVal uFlags As Long) As Long\par
Declare Function midiOutCacheDrumPatches Lib "winmm.dll" Alias "midiOutCacheDrumPatches" (ByVal hMidiOut As Long, ByVal uPatch As Long, lpKeyArray As Long, ByVal uFlags As Long) As Long\par
Declare Function midiOutGetID Lib "winmm.dll" Alias "midiOutGetID" (ByVal hMidiOut As Long, lpuDeviceID As Long) As Long\par
Declare Function midiOutMessage Lib "winmm.dll" Alias "midiOutMessage" (ByVal hMidiOut As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
Declare Function midiInGetNumDevs Lib "winmm.dll" Alias "midiInGetNumDevs" () As Long\par
\par
Declare Function midiInGetDevCaps Lib "winmm.dll" Alias "midiInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIINCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function midiInGetErrorText Lib "winmm.dll" Alias "midiInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long\par
\par
Declare Function midiInOpen Lib "winmm.dll" Alias "midiInOpen" (lphMidiIn As Long, ByVal uDeviceID As Long, ByVal dwCallback As Long, ByVal dwInstance As Long, ByVal dwFlags As Long) As Long\par
Declare Function midiInClose Lib "winmm.dll" Alias "midiInClose" (ByVal hMidiIn As Long) As Long\par
Declare Function midiInPrepareHeader Lib "winmm.dll" Alias "midiInPrepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiInUnprepareHeader Lib "winmm.dll" Alias "midiInUnprepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiInAddBuffer Lib "winmm.dll" Alias "midiInAddBuffer" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long\par
Declare Function midiInStart Lib "winmm.dll" Alias "midiInStart" (ByVal hMidiIn As Long) As Long\par
Declare Function midiInStop Lib "winmm.dll" Alias "midiInStop" (ByVal hMidiIn As Long) As Long\par
Declare Function midiInReset Lib "winmm.dll" Alias "midiInReset" (ByVal hMidiIn As Long) As Long\par
Declare Function midiInGetID Lib "winmm.dll" Alias "midiInGetID" (ByVal hMidiIn As Long, lpuDeviceID As Long) As Long\par
Declare Function midiInMessage Lib "winmm.dll" Alias "midiInMessage" (ByVal hMidiIn As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
\par
' device ID for aux device mapper\par
Public Const AUX_MAPPER = -1&\par
\par
Type AUXCAPS\par
wMid As Integer\par
wPid As Integer\par
vDriverVersion As Long\par
szPname As String * MAXPNAMELEN\par
wTechnology As Integer\par
dwSupport As Long\par
End Type\par
\par
' flags for wTechnology field in AUXCAPS structure\par
Public Const AUXCAPS_CDAUDIO = 1 ' audio from internal CD-ROM drive\par
Public Const AUXCAPS_AUXIN = 2 ' audio from auxiliary input jacks\par
\par
' flags for dwSupport field in AUXCAPS structure\par
Public Const AUXCAPS_VOLUME = &H1 ' supports volume control\par
Public Const AUXCAPS_LRVOLUME = &H2 ' separate left-right volume control\par
\par
Declare Function auxGetNumDevs Lib "winmm.dll" Alias "auxGetNumDevs" () As Long\par
Declare Function auxGetDevCaps Lib "winmm.dll" Alias "auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function auxSetVolume Lib "winmm.dll" Alias "auxSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long\par
Declare Function auxGetVolume Lib "winmm.dll" Alias "auxGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long\par
Declare Function auxOutMessage Lib "winmm.dll" Alias "auxOutMessage" (ByVal uDeviceID As Long, ByVal msg As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
\par
' timer error return values\par
Public Const TIMERR_NOERROR = (0) ' no error\par
Public Const TIMERR_NOCANDO = (TIMERR_BASE + 1) ' request not completed\par
Public Const TIMERR_STRUCT = (TIMERR_BASE + 33) ' time struct size\par
\par
' flags for wFlags parameter of timeSetEvent() function\par
Public Const TIME_ONESHOT = 0 ' program timer for single event\par
Public Const TIME_PERIODIC = 1 ' program for continuous periodic event\par
\par
Type TIMECAPS\par
wPeriodMin As Long\par
wPeriodMax As Long\par
End Type\par
\par
Declare Function timeGetSystemTime Lib "winmm.dll" Alias "timeGetSystemTime" (lpTime As MMTIME, ByVal uSize As Long) As Long\par
Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long\par
Declare Function timeSetEvent Lib "winmm.dll" Alias "timeSetEvent" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long\par
Declare Function timeKillEvent Lib "winmm.dll" Alias "timeKillEvent" (ByVal uID As Long) As Long\par
Declare Function timeGetDevCaps Lib "winmm.dll" Alias "timeGetDevCaps" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long\par
Declare Function timeBeginPeriod Lib "winmm.dll" Alias "timeBeginPeriod" (ByVal uPeriod As Long) As Long\par
Declare Function timeEndPeriod Lib "winmm.dll" Alias "timeEndPeriod" (ByVal uPeriod As Long) As Long\par
\par
' joystick error return values\par
Public Const JOYERR_NOERROR = (0) ' no error\par
Public Const JOYERR_PARMS = (JOYERR_BASE + 5) ' bad parameters\par
Public Const JOYERR_NOCANDO = (JOYERR_BASE + 6) ' request not completed\par
Public Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7) ' joystick is unplugged\par
\par
' constants used with JOYINFO structure and MM_JOY messages\par
Public Const JOY_BUTTON1 = &H1\par
Public Const JOY_BUTTON2 = &H2\par
Public Const JOY_BUTTON3 = &H4\par
Public Const JOY_BUTTON4 = &H8\par
Public Const JOY_BUTTON1CHG = &H100\par
Public Const JOY_BUTTON2CHG = &H200\par
Public Const JOY_BUTTON3CHG = &H400\par
Public Const JOY_BUTTON4CHG = &H800\par
\par
' joystick ID constants\par
Public Const JOYSTICKID1 = 0\par
Public Const JOYSTICKID2 = 1\par
\par
Type JOYCAPS\par
wMid As Integer\par
wPid As Integer\par
szPname As String * MAXPNAMELEN\par
wXmin As Integer\par
wXmax As Integer\par
wYmin As Integer\par
wYmax As Integer\par
wZmin As Integer\par
wZmax As Integer\par
wNumButtons As Integer\par
wPeriodMin As Integer\par
wPeriodMax As Integer\par
End Type\par
\par
Type JOYINFO\par
wXpos As Integer\par
wYpos As Integer\par
wZpos As Integer\par
wButtons As Integer\par
End Type\par
\par
Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long\par
\par
Declare Function joyGetNumDevs Lib "winmm.dll" () As Long\par
Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long\par
Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long\par
Declare Function joySetCapture Lib "winmm.dll" Alias "joySetCapture" (ByVal hwnd As Long, ByVal uID As Long, ByVal uPeriod As Long, ByVal bChanged As Long) As Long\par
Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long\par
\par
' MMIO error return values\par
Public Const MMIOERR_BASE = 256\par
Public Const MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1) ' file not found\par
Public Const MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2) ' out of memory\par
Public Const MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3) ' cannot open\par
Public Const MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4) ' cannot close\par
Public Const MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5) ' cannot read\par
Public Const MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6) ' cannot write\par
Public Const MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7) ' cannot seek\par
Public Const MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8) ' cannot expand file\par
Public Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9) ' chunk not found\par
Public Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10) ' file is unbuffered\par
\par
' MMIO constants\par
Public Const CFSEPCHAR = "+" ' compound file name separator char.\par
\par
Type MMIOINFO\par
dwFlags As Long\par
fccIOProc As Long\par
pIOProc As Long\par
wErrorRet As Long\par
htask As Long\par
cchBuffer As Long\par
pchBuffer As String\par
pchNext As String\par
pchEndRead As String\par
pchEndWrite As String\par
lBufOffset As Long\par
lDiskOffset As Long\par
adwInfo(4) As Long\par
dwReserved1 As Long\par
dwReserved2 As Long\par
hmmio As Long\par
End Type\par
\par
Public Const MMIO_RWMODE = &H3 ' mask to get bits used for opening\par
' file for reading/writing/both\par
Public Const MMIO_SHAREMODE = &H70 ' file sharing mode number\par
\par
' constants for dwFlags field of MMIOINFO\par
Public Const MMIO_CREATE = &H1000 ' create new file (or truncate file)\par
Public Const MMIO_PARSE = &H100 ' parse new file returning path\par
Public Const MMIO_DELETE = &H200 ' create new file (or truncate file)\par
Public Const MMIO_EXIST = &H4000 ' checks for existence of file\par
Public Const MMIO_ALLOCBUF = &H10000 ' mmioOpen() should allocate a buffer\par
Public Const MMIO_GETTEMP = &H20000 ' mmioOpen() should retrieve temp name\par
\par
Public Const MMIO_DIRTY = &H10000000 ' I/O buffer is dirty\par
' MMIO_DIRTY is also used in the <dwFlags> field of MMCKINFO structure\par
\par
Public Const MMIO_OPEN_VALID = &H3FFFF ' valid flags for mmioOpen / ;Internal /\par
\par
' read/write mode numbers (bit field MMIO_RWMODE)\par
Public Const MMIO_READ = &H0 ' open file for reading only\par
Public Const MMIO_WRITE = &H1 ' open file for writing only\par
Public Const MMIO_READWRITE = &H2 ' open file for reading and writing\par
\par
' share mode numbers (bit field MMIO_SHAREMODE)\par
Public Const MMIO_COMPAT = &H0 ' compatibility mode\par
Public Const MMIO_EXCLUSIVE = &H10 ' exclusive-access mode\par
Public Const MMIO_DENYWRITE = &H20 ' deny writing to other processes\par
Public Const MMIO_DENYREAD = &H30 ' deny reading to other processes\par
Public Const MMIO_DENYNONE = &H40 ' deny nothing to other processes\par
\par
' flags for other functions\par
Public Const MMIO_FHOPEN = &H10 ' mmioClose(): keep file handle open\par
Public Const MMIO_EMPTYBUF = &H10 ' mmioFlush(): empty the I/O buffer\par
Public Const MMIO_TOUPPER = &H10 ' mmioStringToFOURCC(): cvt. to u-case\par
Public Const MMIO_INSTALLPROC = &H10000 ' mmioInstallIOProc(): install MMIOProc\par
Public Const MMIO_PUBLICPROC = &H10000000 ' mmioInstallIOProc: install Globally\par
Public Const MMIO_UNICODEPROC = &H1000000 ' mmioInstallIOProc(): Unicode MMIOProc\par
Public Const MMIO_REMOVEPROC = &H20000 ' mmioInstallIOProc(): remove MMIOProc\par
Public Const MMIO_FINDPROC = &H40000 ' mmioInstallIOProc(): find an MMIOProc\par
Public Const MMIO_FINDCHUNK = &H10 ' mmioDescend(): find a chunk by ID\par
Public Const MMIO_FINDRIFF = &H20 ' mmioDescend(): find a LIST chunk\par
Public Const MMIO_FINDLIST = &H40 ' mmioDescend(): find a RIFF chunk\par
Public Const MMIO_CREATERIFF = &H20 ' mmioCreateChunk(): make a LIST chunk\par
Public Const MMIO_CREATELIST = &H40 ' mmioCreateChunk(): make a RIFF chunk\par
\par
Public Const MMIO_VALIDPROC = &H11070000 ' valid for mmioInstallIOProc / ;Internal /\par
\par
' message numbers for MMIOPROC I/O procedure functions\par
Public Const MMIOM_READ = MMIO_READ ' read (must equal MMIO_READ!)\par
Public Const MMIOM_WRITE = MMIO_WRITE ' write (must equal MMIO_WRITE!)\par
Public Const MMIOM_SEEK = 2 ' seek to a new position in file\par
Public Const MMIOM_OPEN = 3 ' open file\par
Public Const MMIOM_CLOSE = 4 ' close file\par
Public Const MMIOM_WRITEFLUSH = 5 ' write and flush\par
Public Const MMIOM_RENAME = 6 ' rename specified file\par
Public Const MMIOM_USER = &H8000& ' beginning of user-defined messages\par
\par
' flags for mmioSeek()\par
Public Const SEEK_SET = 0 ' seek to an absolute position\par
Public Const SEEK_CUR = 1 ' seek relative to current position\par
Public Const SEEK_END = 2 ' seek relative to end of file\par
\par
' other constants\par
Public Const MMIO_DEFAULTBUFFER = 8192 ' default buffer size\par
\par
Type MMCKINFO\par
ckid As Long\par
ckSize As Long\par
fccType As Long\par
dwDataOffset As Long\par
dwFlags As Long\par
End Type\par
\par
Declare Function mmioStringToFOURCC Lib "winmm.dll" Alias "mmioStringToFOURCCA" (ByVal sz As String, ByVal uFlags As Long) As Long\par
\par
Declare Function mmioOpen Lib "winmm.dll" Alias "mmioOpenA" (ByVal szFileName As String, lpmmioinfo As MMIOINFO, ByVal dwOpenFlags As Long) As Long\par
\par
Declare Function mmioRename Lib "winmm.dll" Alias "mmioRenameA" (ByVal szFileName As String, ByVal SzNewFileName As String, lpmmioinfo As MMIOINFO, ByVal dwRenameFlags As Long) As Long\par
\par
Declare Function mmioClose Lib "winmm.dll" Alias "mmioClose" (ByVal hmmio As Long, ByVal uFlags As Long) As Long\par
Declare Function mmioRead Lib "winmm.dll" Alias "mmioRead" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long\par
Declare Function mmioWrite Lib "winmm.dll" Alias "mmioWrite" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long\par
Declare Function mmioSeek Lib "winmm.dll" Alias "mmioSeek" (ByVal hmmio As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long\par
Declare Function mmioGetInfo Lib "winmm.dll" Alias "mmioGetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long\par
Declare Function mmioSetInfo Lib "winmm.dll" Alias "mmioSetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long\par
Declare Function mmioSetBuffer Lib "winmm.dll" Alias "mmioSetBuffer" (ByVal hmmio As Long, ByVal pchBuffer As String, ByVal cchBuffer As Long, ByVal uFlags As Long) As Long\par
Declare Function mmioFlush Lib "winmm.dll" Alias "mmioFlush" (ByVal hmmio As Long, ByVal uFlags As Long) As Long\par
Declare Function mmioAdvance Lib "winmm.dll" Alias "mmioAdvance" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long\par
Declare Function mmioSendMessage Lib "winmm.dll" Alias "mmioSendMessage" (ByVal hmmio As Long, ByVal uMsg As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long\par
\par
Declare Function mmioDescend Lib "winmm.dll" Alias "mmioDescend" (ByVal hmmio As Long, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Long) As Long\par
Declare Function mmioAscend Lib "winmm.dll" Alias "mmioAscend" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long\par
Declare Function mmioCreateChunk Lib "winmm.dll" Alias "mmioCreateChunk" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long\par
\par
' MCI functions\par
\par
Declare Function mciSendCommand Lib "winmm.dll" Alias "mciSendCommandA" (ByVal wDeviceID As Long, ByVal uMessage As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Long) As Long\par
\par
Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long\par
\par
Declare Function mciGetCreatorTask Lib "winmm.dll" Alias "mciGetCreatorTask" (ByVal wDeviceID As Long) As Long\par
\par
Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long\par
\par
Declare Function mciGetDeviceIDFromElementID Lib "winmm.dll" Alias "mciGetDeviceIDFromElementIDA" (ByVal dwElementID As Long, ByVal lpstrType As String) As Long\par
\par
Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long\par
\par
Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long\par
\par
' MCI error return values\par
Public Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1)\par
Public Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3)\par
Public Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5)\par
Public Const MCIERR_HARDWARE = (MCIERR_BASE + 6)\par
Public Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7)\par
Public Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8)\par
Public Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9)\par
Public Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10)\par
Public Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11)\par
Public Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12)\par
Public Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13)\par
Public Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14)\par
Public Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15)\par
Public Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16)\par
Public Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17)\par
Public Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18)\par
Public Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19)\par
Public Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20)\par
Public Const MCIERR_INTERNAL = (MCIERR_BASE + 21)\par
Public Const MCIERR_DRIVER = (MCIERR_BASE + 22)\par
Public Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23)\par
Public Const MCIERR_MULTIPLE = (MCIERR_BASE + 24)\par
Public Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25)\par
Public Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26)\par
Public Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28)\par
Public Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30)\par
Public Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31)\par
Public Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32)\par
Public Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33)\par
Public Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34)\par
Public Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35)\par
Public Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36)\par
Public Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37)\par
Public Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38)\par
Public Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39)\par
Public Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40)\par
Public Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41)\par
Public Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42)\par
Public Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43)\par
Public Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44)\par
Public Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45)\par
Public Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46)\par
Public Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47)\par
Public Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48)\par
Public Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49)\par
Public Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50)\par
Public Const MCIERR_GET_CD = (MCIERR_BASE + 51)\par
Public Const MCIERR_SET_CD = (MCIERR_BASE + 52)\par
Public Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53)\par
Public Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54)\par
Public Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55)\par
Public Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56)\par
\par
Public Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64)\par
Public Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65)\par
Public Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66)\par
Public Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67)\par
Public Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68)\par
Public Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69)\par
Public Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70)\par
Public Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71)\par
Public Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72)\par
Public Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73)\par
\par
Public Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80)\par
Public Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81)\par
Public Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82)\par
Public Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83)\par
Public Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84)\par
Public Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85)\par
Public Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86)\par
Public Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87)\par
\par
Public Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90)\par
Public Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91)\par
Public Const MCIERR_FILE_READ = (MCIERR_BASE + 92)\par
Public Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93)\par
\par
' All custom device driver errors must be >= this value\par
Public Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256)\par
\par
' Message numbers must be in the range between MCI_FIRST and MCI_LAST\par
\par
Public Const MCI_FIRST = &H800\par
' Messages 0x801 and 0x802 are reserved\par
Public Const MCI_OPEN = &H803\par
Public Const MCI_CLOSE = &H804\par
Public Const MCI_ESCAPE = &H805\par
Public Const MCI_PLAY = &H806\par
Public Const MCI_SEEK = &H807\par
Public Const MCI_STOP = &H808\par
Public Const MCI_PAUSE = &H809\par
Public Const MCI_INFO = &H80A\par
Public Const MCI_GETDEVCAPS = &H80B\par
Public Const MCI_SPIN = &H80C\par
Public Const MCI_SET = &H80D\par
Public Const MCI_STEP = &H80E\par
Public Const MCI_RECORD = &H80F\par
Public Const MCI_SYSINFO = &H810\par
Public Const MCI_BREAK = &H811\par
Public Const MCI_SOUND = &H812\par
Public Const MCI_SAVE = &H813\par
Public Const MCI_STATUS = &H814\par
\par
Public Const MCI_CUE = &H830\par
\par
Public Const MCI_REALIZE = &H840\par
Public Const MCI_WINDOW = &H841\par
Public Const MCI_PUT = &H842\par
Public Const MCI_WHERE = &H843\par
Public Const MCI_FREEZE = &H844\par
Public Const MCI_UNFREEZE = &H845\par
\par
Public Const MCI_LOAD = &H850\par
Public Const MCI_CUT = &H851\par
Public Const MCI_COPY = &H852\par
Public Const MCI_PASTE = &H853\par
Public Const MCI_UPDATE = &H854\par
Public Const MCI_RESUME = &H855\par
Public Const MCI_DELETE = &H856\par
\par
Public Const MCI_LAST = &HFFF\par
\par
' the next 0x400 message ID's are reserved for custom drivers\par
' all custom MCI command messages must be >= than this value\par
Public Const MCI_USER_MESSAGES = (&H400 + MCI_FIRST)\par
Public Const MCI_ALL_DEVICE_ID = - 1 ' Matches all MCI devices\par
\par
' constants for predefined MCI device types\par
Public Const MCI_DEVTYPE_VCR = 513\par
Public Const MCI_DEVTYPE_VIDEODISC = 514\par
Public Const MCI_DEVTYPE_OVERLAY = 515\par
Public Const MCI_DEVTYPE_CD_AUDIO = 516\par
Public Const MCI_DEVTYPE_DAT = 517\par
Public Const MCI_DEVTYPE_SCANNER = 518\par
Public Const MCI_DEVTYPE_ANIMATION = 519\par
Public Const MCI_DEVTYPE_DIGITAL_VIDEO = 520\par
Public Const MCI_DEVTYPE_OTHER = 521\par
Public Const MCI_DEVTYPE_WAVEFORM_AUDIO = 522\par
Public Const MCI_DEVTYPE_SEQUENCER = 523\par
\par
Public Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR\par
Public Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER\par
\par
Public Const MCI_DEVTYPE_FIRST_USER = &H1000\par
\par
' return values for 'status mode' command\par
Public Const MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12)\par
Public Const MCI_MODE_STOP = (MCI_STRING_OFFSET + 13)\par
Public Const MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14)\par
Public Const MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15)\par
Public Const MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16)\par
Public Const MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17)\par
Public Const MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18)\par
\par
' constants used in 'set time format' and 'status time format' commands\par
Public Const MCI_FORMAT_MILLISECONDS = 0\par
Public Const MCI_FORMAT_HMS = 1\par
Public Const MCI_FORMAT_MSF = 2\par
Public Const MCI_FORMAT_FRAMES = 3\par
Public Const MCI_FORMAT_SMPTE_24 = 4\par
Public Const MCI_FORMAT_SMPTE_25 = 5\par
Public Const MCI_FORMAT_SMPTE_30 = 6\par
Public Const MCI_FORMAT_SMPTE_30DROP = 7\par
Public Const MCI_FORMAT_BYTES = 8\par
Public Const MCI_FORMAT_SAMPLES = 9\par
Public Const MCI_FORMAT_TMSF = 10\par
\par
' Flags for wParam of the MM_MCINOTIFY message\par
Public Const MCI_NOTIFY_SUCCESSFUL = &H1\par
Public Const MCI_NOTIFY_SUPERSEDED = &H2\par
Public Const MCI_NOTIFY_ABORTED = &H4\par
Public Const MCI_NOTIFY_FAILURE = &H8\par
\par
' common flags for dwFlags parameter of MCI command messages\par
Public Const MCI_NOTIFY = &H1&\par
Public Const MCI_WAIT = &H2&\par
Public Const MCI_FROM = &H4&\par
Public Const MCI_TO = &H8&\par
Public Const MCI_TRACK = &H10&\par
\par
' flags for dwFlags parameter of MCI_OPEN command message\par
Public Const MCI_OPEN_SHAREABLE = &H100&\par
Public Const MCI_OPEN_ELEMENT = &H200&\par
Public Const MCI_OPEN_ALIAS = &H400&\par
Public Const MCI_OPEN_ELEMENT_ID = &H800&\par
Public Const MCI_OPEN_TYPE_ID = &H1000&\par
Public Const MCI_OPEN_TYPE = &H2000&\par
\par
' flags for dwFlags parameter of MCI_SEEK command message\par
Public Const MCI_SEEK_TO_START = &H100&\par
Public Const MCI_SEEK_TO_END = &H200&\par
\par
' flags for dwFlags parameter of MCI_STATUS command message\par
Public Const MCI_STATUS_ITEM = &H100&\par
Public Const MCI_STATUS_START = &H200&\par
\par
' flags for dwItem field of the MCI_STATUS_PARMS parameter block\par
Public Const MCI_STATUS_LENGTH = &H1&\par
Public Const MCI_STATUS_POSITION = &H2&\par
Public Const MCI_STATUS_NUMBER_OF_TRACKS = &H3&\par
Public Const MCI_STATUS_MODE = &H4&\par
Public Const MCI_STATUS_MEDIA_PRESENT = &H5&\par
Public Const MCI_STATUS_TIME_FORMAT = &H6&\par
Public Const MCI_STATUS_READY = &H7&\par
Public Const MCI_STATUS_CURRENT_TRACK = &H8&\par
\par
' flags for dwFlags parameter of MCI_INFO command message\par
Public Const MCI_INFO_PRODUCT = &H100&\par
Public Const MCI_INFO_FILE = &H200&\par
\par
' flags for dwFlags parameter of MCI_GETDEVCAPS command message\par
Public Const MCI_GETDEVCAPS_ITEM = &H100&\par
\par
' flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block\par
Public Const MCI_GETDEVCAPS_CAN_RECORD = &H1&\par
Public Const MCI_GETDEVCAPS_HAS_AUDIO = &H2&\par
Public Const MCI_GETDEVCAPS_HAS_VIDEO = &H3&\par
Public Const MCI_GETDEVCAPS_DEVICE_TYPE = &H4&\par
Public Const MCI_GETDEVCAPS_USES_FILES = &H5&\par
Public Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6&\par
Public Const MCI_GETDEVCAPS_CAN_EJECT = &H7&\par
Public Const MCI_GETDEVCAPS_CAN_PLAY = &H8&\par
Public Const MCI_GETDEVCAPS_CAN_SAVE = &H9&\par
\par
' flags for dwFlags parameter of MCI_SYSINFO command message\par
Public Const MCI_SYSINFO_QUANTITY = &H100&\par
Public Const MCI_SYSINFO_OPEN = &H200&\par
Public Const MCI_SYSINFO_NAME = &H400&\par
Public Const MCI_SYSINFO_INSTALLNAME = &H800&\par
\par
' flags for dwFlags parameter of MCI_SET command message\par
Public Const MCI_SET_DOOR_OPEN = &H100&\par
Public Const MCI_SET_DOOR_CLOSED = &H200&\par
Public Const MCI_SET_TIME_FORMAT = &H400&\par
Public Const MCI_SET_AUDIO = &H800&\par
Public Const MCI_SET_VIDEO = &H1000&\par
Public Const MCI_SET_ON = &H2000&\par
Public Const MCI_SET_OFF = &H4000&\par
\par
' flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS\par
Public Const MCI_SET_AUDIO_ALL = &H4001&\par
Public Const MCI_SET_AUDIO_LEFT = &H4002&\par
Public Const MCI_SET_AUDIO_RIGHT = &H4003&\par
\par
' flags for dwFlags parameter of MCI_BREAK command message\par
Public Const MCI_BREAK_KEY = &H100&\par
Public Const MCI_BREAK_HWND = &H200&\par
Public Const MCI_BREAK_OFF = &H400&\par
\par
' flags for dwFlags parameter of MCI_RECORD command message\par
Public Const MCI_RECORD_INSERT = &H100&\par
Public Const MCI_RECORD_OVERWRITE = &H200&\par
\par
' flags for dwFlags parameter of MCI_SOUND command message\par
Public Const MCI_SOUND_NAME = &H100&\par
\par
' flags for dwFlags parameter of MCI_SAVE command message\par
Public Const MCI_SAVE_FILE = &H100&\par
\par
' flags for dwFlags parameter of MCI_LOAD command message\par
Public Const MCI_LOAD_FILE = &H100&\par
\par
Type MCI_GENERIC_PARMS\par
dwCallback As Long\par
End Type\par
\par
Type MCI_OPEN_PARMS\par
dwCallback As Long\par
wDeviceID As Long\par
lpstrDeviceType As String\par
lpstrElementName As String\par
lpstrAlias As String\par
End Type\par
\par
Type MCI_PLAY_PARMS\par
dwCallback As Long\par
dwFrom As Long\par
dwTo As Long\par
End Type\par
\par
Type MCI_SEEK_PARMS\par
dwCallback As Long\par
dwTo As Long\par
End Type\par
\par
Type MCI_STATUS_PARMS\par
dwCallback As Long\par
dwReturn As Long\par
dwItem As Long\par
dwTrack As Integer\par
End Type\par
\par
Type MCI_INFO_PARMS\par
dwCallback As Long\par
lpstrReturn As String\par
dwRetSize As Long\par
End Type\par
\par
Type MCI_GETDEVCAPS_PARMS\par
dwCallback As Long\par
dwReturn As Long\par
dwIten As Long\par
End Type\par
\par
Type MCI_SYSINFO_PARMS\par
dwCallback As Long\par
lpstrReturn As String\par
dwRetSize As Long\par
dwNumber As Long\par
wDeviceType As Long\par
End Type\par
\par
Type MCI_SET_PARMS\par
dwCallback As Long\par
dwTimeFormat As Long\par
dwAudio As Long\par
End Type\par
\par
Type MCI_BREAK_PARMS\par
dwCallback As Long\par
nVirtKey As Long\par
hwndBreak As Long\par
End Type\par
\par
Type MCI_SOUND_PARMS\par
dwCallback As Long\par
lpstrSoundName As String\par
End Type\par
\par
Type MCI_SAVE_PARMS\par
dwCallback As Long\par
lpFileName As String\par
End Type\par
\par
Type MCI_LOAD_PARMS\par
dwCallback As Long\par
lpFileName As String\par
End Type\par
\par
Type MCI_RECORD_PARMS\par
dwCallback As Long\par
dwFrom As Long\par
dwTo As Long\par
End Type\par
\par
Public Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1)\par
\par
' return ID's for videodisc MCI_GETDEVCAPS command\par
\par
' flag for dwReturn field of MCI_STATUS_PARMS\par
' MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)\par
Public Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2)\par
Public Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3)\par
Public Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4)\par
\par
Public Const MCI_VD_FORMAT_TRACK = &H4001\par
\par
' flags for dwFlags parameter of MCI_PLAY command message\par
Public Const MCI_VD_PLAY_REVERSE = &H10000\par
Public Const MCI_VD_PLAY_FAST = &H20000\par
Public Const MCI_VD_PLAY_SPEED = &H40000\par
Public Const MCI_VD_PLAY_SCAN = &H80000\par
Public Const MCI_VD_PLAY_SLOW = &H100000\par
\par
' flag for dwFlags parameter of MCI_SEEK command message\par
Public Const MCI_VD_SEEK_REVERSE = &H10000\par
\par
' flags for dwItem field of MCI_STATUS_PARMS parameter block\par
Public Const MCI_VD_STATUS_SPEED = &H4002&\par
Public Const MCI_VD_STATUS_FORWARD = &H4003&\par
Public Const MCI_VD_STATUS_MEDIA_TYPE = &H4004&\par
Public Const MCI_VD_STATUS_SIDE = &H4005&\par
Public Const MCI_VD_STATUS_DISC_SIZE = &H4006&\par
\par
' flags for dwFlags parameter of MCI_GETDEVCAPS command message\par
Public Const MCI_VD_GETDEVCAPS_CLV = &H10000\par
Public Const MCI_VD_GETDEVCAPS_CAV = &H20000\par
\par
Public Const MCI_VD_SPIN_UP = &H10000\par
Public Const MCI_VD_SPIN_DOWN = &H20000\par
\par
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block\par
Public Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002&\par
Public Const MCI_VD_GETDEVCAPS_FAST_RATE = &H4003&\par
Public Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004&\par
Public Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005&\par
\par
' flags for the dwFlags parameter of MCI_STEP command message\par
Public Const MCI_VD_STEP_FRAMES = &H10000\par
Public Const MCI_VD_STEP_REVERSE = &H20000\par
\par
' flag for the MCI_ESCAPE command message\par
Public Const MCI_VD_ESCAPE_STRING = &H100&\par
\par
Type MCI_VD_PLAY_PARMS\par
dwCallback As Long\par
dwFrom As Long\par
dwTo As Long\par
dwSpeed As Long\par
End Type\par
\par
Type MCI_VD_STEP_PARMS\par
dwCallback As Long\par
dwFrames As Long\par
End Type\par
\par
Type MCI_VD_ESCAPE_PARMS\par
dwCallback As Long\par
lpstrCommand As String\par
End Type\par
\par
Public Const MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0)\par
Public Const MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1)\par
\par
' flags for the dwFlags parameter of MCI_OPEN command message\par
Public Const MCI_WAVE_OPEN_BUFFER = &H10000\par
\par
' flags for the dwFlags parameter of MCI_SET command message\par
Public Const MCI_WAVE_SET_FORMATTAG = &H10000\par
Public Const MCI_WAVE_SET_CHANNELS = &H20000\par
Public Const MCI_WAVE_SET_SAMPLESPERSEC = &H40000\par
Public Const MCI_WAVE_SET_AVGBYTESPERSEC = &H80000\par
Public Const MCI_WAVE_SET_BLOCKALIGN = &H100000\par
Public Const MCI_WAVE_SET_BITSPERSAMPLE = &H200000\par
\par
' flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages\par
Public Const MCI_WAVE_INPUT = &H400000\par
Public Const MCI_WAVE_OUTPUT = &H800000\par
\par
' flags for the dwItem field of MCI_STATUS_PARMS parameter block\par
Public Const MCI_WAVE_STATUS_FORMATTAG = &H4001&\par
Public Const MCI_WAVE_STATUS_CHANNELS = &H4002&\par
Public Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003&\par
Public Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004&\par
Public Const MCI_WAVE_STATUS_BLOCKALIGN = &H4005&\par
Public Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006&\par
Public Const MCI_WAVE_STATUS_LEVEL = &H4007&\par
\par
' flags for the dwFlags parameter of MCI_SET command message\par
Public Const MCI_WAVE_SET_ANYINPUT = &H4000000\par
Public Const MCI_WAVE_SET_ANYOUTPUT = &H8000000\par
\par
' flags for the dwFlags parameter of MCI_GETDEVCAPS command message\par
Public Const MCI_WAVE_GETDEVCAPS_INPUTS = &H4001&\par
Public Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002&\par
\par
Type MCI_WAVE_OPEN_PARMS\par
dwCallback As Long\par
wDeviceID As Long\par
lpstrDeviceType As String\par
lpstrElementName As String\par
lpstrAlias As String\par
dwBufferSeconds As Long\par
End Type\par
\par
Type MCI_WAVE_DELETE_PARMS\par
dwCallback As Long\par
dwFrom As Long\par
dwTo As Long\par
End Type\par
\par
Type MCI_WAVE_SET_PARMS\par
dwCallback As Long\par
dwTimeFormat As Long\par
dwAudio As Long\par
wInput As Long\par
wOutput As Long\par
wFormatTag As Integer\par
wReserved2 As Integer\par
nChannels As Integer\par
wReserved3 As Integer\par
nSamplesPerSec As Long\par
nAvgBytesPerSec As Long\par
nBlockAlign As Integer\par
wReserved4 As Integer\par
wBitsPerSample As Integer\par
wReserved5 As Integer\par
End Type\par
\par
' flags for the dwReturn field of MCI_STATUS_PARMS parameter block\par
' MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE)\par
Public Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET)\par
Public Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET)\par
Public Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET)\par
Public Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET)\par
Public Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET)\par
\par
' flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block\par
' MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)\par
Public Const MCI_SEQ_FORMAT_SONGPTR = &H4001\par
Public Const MCI_SEQ_FILE = &H4002\par
Public Const MCI_SEQ_MIDI = &H4003\par
Public Const MCI_SEQ_SMPTE = &H4004\par
Public Const MCI_SEQ_NONE = 65533\par
\par
Public Const MCI_SEQ_MAPPER = 65535\par
\par
' flags for the dwItem field of MCI_STATUS_PARMS parameter block\par
Public Const MCI_SEQ_STATUS_TEMPO = &H4002&\par
Public Const MCI_SEQ_STATUS_PORT = &H4003&\par
Public Const MCI_SEQ_STATUS_SLAVE = &H4007&\par
Public Const MCI_SEQ_STATUS_MASTER = &H4008&\par
Public Const MCI_SEQ_STATUS_OFFSET = &H4009&\par
Public Const MCI_SEQ_STATUS_DIVTYPE = &H400A&\par
\par
' flags for the dwFlags parameter of MCI_SET command message\par
Public Const MCI_SEQ_SET_TEMPO = &H10000\par
Public Const MCI_SEQ_SET_PORT = &H20000\par
Public Const MCI_SEQ_SET_SLAVE = &H40000\par
Public Const MCI_SEQ_SET_MASTER = &H80000\par
Public Const MCI_SEQ_SET_OFFSET = &H1000000\par
\par
Type MCI_SEQ_SET_PARMS\par
dwCallback As Long\par
dwTimeFormat As Long\par
dwAudio As Long\par
dwTempo As Long\par
dwPort As Long\par
dwSlave As Long\par
dwMaster As Long\par
dwOffset As Long\par
End Type\par
\par
' flags for dwFlags parameter of MCI_OPEN command message\par
Public Const MCI_ANIM_OPEN_WS = &H10000\par
Public Const MCI_ANIM_OPEN_PARENT = &H20000\par
Public Const MCI_ANIM_OPEN_NOSTATIC = &H40000\par
\par
' flags for dwFlags parameter of MCI_PLAY command message\par
Public Const MCI_ANIM_PLAY_SPEED = &H10000\par
Public Const MCI_ANIM_PLAY_REVERSE = &H20000\par
Public Const MCI_ANIM_PLAY_FAST = &H40000\par
Public Const MCI_ANIM_PLAY_SLOW = &H80000\par
Public Const MCI_ANIM_PLAY_SCAN = &H100000\par
\par
' flags for dwFlags parameter of MCI_STEP command message\par
Public Const MCI_ANIM_STEP_REVERSE = &H10000\par
Public Const MCI_ANIM_STEP_FRAMES = &H20000\par
\par
' flags for dwItem field of MCI_STATUS_PARMS parameter block\par
Public Const MCI_ANIM_STATUS_SPEED = &H4001&\par
Public Const MCI_ANIM_STATUS_FORWARD = &H4002&\par
Public Const MCI_ANIM_STATUS_HWND = &H4003&\par
Public Const MCI_ANIM_STATUS_HPAL = &H4004&\par
Public Const MCI_ANIM_STATUS_STRETCH = &H4005&\par
\par
' flags for the dwFlags parameter of MCI_INFO command message\par
Public Const MCI_ANIM_INFO_TEXT = &H10000\par
\par
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block\par
Public Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001&\par
Public Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002&\par
Public Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003&\par
Public Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004&\par
Public Const MCI_ANIM_GETDEVCAPS_PALETTES = &H4006&\par
Public Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007&\par
Public Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008&\par
\par
' flags for the MCI_REALIZE command message\par
Public Const MCI_ANIM_REALIZE_NORM = &H10000\par
Public Const MCI_ANIM_REALIZE_BKGD = &H20000\par
\par
' flags for dwFlags parameter of MCI_WINDOW command message\par
Public Const MCI_ANIM_WINDOW_HWND = &H10000\par
Public Const MCI_ANIM_WINDOW_STATE = &H40000\par
Public Const MCI_ANIM_WINDOW_TEXT = &H80000\par
Public Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000\par
Public Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000\par
\par
' flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block\par
' MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)\par
Public Const MCI_ANIM_WINDOW_DEFAULT = &H0&\par
\par
' flags for dwFlags parameter of MCI_PUT command message\par
Public Const MCI_ANIM_RECT = &H10000\par
Public Const MCI_ANIM_PUT_SOURCE = &H20000 ' also MCI_WHERE\par
Public Const MCI_ANIM_PUT_DESTINATION = &H40000 ' also MCI_WHERE\par
\par
' flags for dwFlags parameter of MCI_WHERE command message\par
Public Const MCI_ANIM_WHERE_SOURCE = &H20000\par
Public Const MCI_ANIM_WHERE_DESTINATION = &H40000\par
\par
' flags for dwFlags parameter of MCI_UPDATE command message\par
Public Const MCI_ANIM_UPDATE_HDC = &H20000\par
\par
Type MCI_ANIM_OPEN_PARMS\par
dwCallback As Long\par
wDeviceID As Long\par
lpstrDeviceType As String\par
lpstrElementName As String\par
lpstrAlias As String\par
dwStyle As Long\par
hWndParent As Long\par
End Type\par
\par
Type MCI_ANIM_PLAY_PARMS\par
dwCallback As Long\par
dwFrom As Long\par
dwTo As Long\par
dwSpeed As Long\par
End Type\par
\par
Type MCI_ANIM_STEP_PARMS\par
dwCallback As Long\par
dwFrames As Long\par
End Type\par
\par
Type MCI_ANIM_WINDOW_PARMS\par
dwCallback As Long\par
hwnd As Long\par
nCmdShow As Long\par
lpstrText As String\par
End Type\par
\par
Type MCI_ANIM_RECT_PARMS\par
dwCallback As Long\par
rc As Rect\par
End Type\par
\par
Type MCI_ANIM_UPDATE_PARMS\par
dwCallback As Long\par
rc As Rect\par
hdc As Long\par
End Type\par
\par
' flags for dwFlags parameter of MCI_OPEN command message\par
Public Const MCI_OVLY_OPEN_WS = &H10000\par
Public Const MCI_OVLY_OPEN_PARENT = &H20000\par
\par
' flags for dwFlags parameter of MCI_STATUS command message\par
Public Const MCI_OVLY_STATUS_HWND = &H4001&\par
Public Const MCI_OVLY_STATUS_STRETCH = &H4002&\par
\par
' flags for dwFlags parameter of MCI_INFO command message\par
Public Const MCI_OVLY_INFO_TEXT = &H10000\par
\par
' flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block\par
Public Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001&\par
Public Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002&\par
Public Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003&\par
\par
' flags for dwFlags parameter of MCI_WINDOW command message\par
Public Const MCI_OVLY_WINDOW_HWND = &H10000\par
Public Const MCI_OVLY_WINDOW_STATE = &H40000\par
Public Const MCI_OVLY_WINDOW_TEXT = &H80000\par
Public Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000\par
Public Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000\par
\par
' flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block\par
Public Const MCI_OVLY_WINDOW_DEFAULT = &H0&\par
\par
' flags for dwFlags parameter of MCI_PUT command message\par
Public Const MCI_OVLY_RECT = &H10000\par
Public Const MCI_OVLY_PUT_SOURCE = &H20000\par
Public Const MCI_OVLY_PUT_DESTINATION = &H40000\par
Public Const MCI_OVLY_PUT_FRAME = &H80000\par
Public Const MCI_OVLY_PUT_VIDEO = &H100000\par
\par
' flags for dwFlags parameter of MCI_WHERE command message\par
Public Const MCI_OVLY_WHERE_SOURCE = &H20000\par
Public Const MCI_OVLY_WHERE_DESTINATION = &H40000\par
Public Const MCI_OVLY_WHERE_FRAME = &H80000\par
Public Const MCI_OVLY_WHERE_VIDEO = &H100000\par
\par
Type MCI_OVLY_OPEN_PARMS\par
dwCallback As Long\par
wDeviceID As Long\par
lpstrDeviceType As String\par
lpstrElementName As String\par
lpstrAlias As String\par
dwStyle As Long\par
hWndParent As Long\par
End Type\par
\par
Type MCI_OVLY_WINDOW_PARMS\par
dwCallback As Long\par
hwnd As Long\par
nCmdShow As Long\par
lpstrText As String\par
End Type\par
\par
Type MCI_OVLY_RECT_PARMS\par
dwCallback As Long\par
rc As Rect\par
End Type\par
\par
Type MCI_OVLY_SAVE_PARMS\par
dwCallback As Long\par
lpFileName As String\par
rc As Rect\par
End Type\par
\par
Type MCI_OVLY_LOAD_PARMS\par
dwCallback As Long\par
lpFileName As String\par
rc As Rect\par
End Type\par
\par
Public Const CAPS1 = 94 ' other caps\par
Public Const C1_TRANSPARENT = &H1 ' new raster cap\par
Public Const NEWTRANSPARENT = 3 ' use with SetBkMode()\par
\par
Public Const QUERYROPSUPPORT = 40 ' use to determine ROP support\par
\par
Public Const SELECTDIB = 41 ' DIB.DRV select dib escape\par
\par
' ----------------\par
' shell association database management functions\par
' -----------------\par
\par
' error values for ShellExecute() beyond the regular WinExec() codes\par
Public Const SE_ERR_SHARE = 26\par
Public Const SE_ERR_ASSOCINCOMPLETE = 27\par
Public Const SE_ERR_DDETIMEOUT = 28\par
Public Const SE_ERR_DDEFAIL = 29\par
Public Const SE_ERR_DDEBUSY = 30\par
Public Const SE_ERR_NOASSOC = 31\par
\par
' -------------\par
' Print APIs\par
' -------------\par
\par
Type PRINTER_INFO_1\par
flags As Long\par
pDescription As Long\par
pName As Long\par
pComment As Long\par
End Type\par
\par
Type PRINTER_INFO_2\par
pServerName As Long\par
pPrinterName As Long\par
pShareName As Long\par
pPortName As Long\par
pDriverName As Long\par
pComment As Long\par
pLocation As Long\par
pDevMode As Long\tab ' Pointer to DEVMODE\par
pSepFile As Long\par
pPrintProcessor As Long\par
pDatatype As Long\par
pParameters As Long\par
pSecurityDescriptor As Long ' Pointer to SECURITY_DESCRIPTOR\par
Attributes As Long\par
Priority As Long\par
DefaultPriority As Long\par
StartTime As Long\par
UntilTime As Long\par
Status As Long\par
cJobs As Long\par
AveragePPM As Long\par
End Type\par
\par
Type PRINTER_INFO_3\par
pSecurityDescriptor As Long ' Pointer to SECURITY_DESCRIPTOR\par
End Type\par
\par
Public Const PRINTER_CONTROL_PAUSE = 1\par
Public Const PRINTER_CONTROL_RESUME = 2\par
Public Const PRINTER_CONTROL_PURGE = 3\par
\par
Public Const PRINTER_STATUS_PAUSED = &H1\par
Public Const PRINTER_STATUS_ERROR = &H2\par
Public Const PRINTER_STATUS_PENDING_DELETION = &H4\par
Public Const PRINTER_STATUS_PAPER_JAM = &H8\par
Public Const PRINTER_STATUS_PAPER_OUT = &H10\par
Public Const PRINTER_STATUS_MANUAL_FEED = &H20\par
Public Const PRINTER_STATUS_PAPER_PROBLEM = &H40\par
Public Const PRINTER_STATUS_OFFLINE = &H80\par
Public Const PRINTER_STATUS_IO_ACTIVE = &H100\par
Public Const PRINTER_STATUS_BUSY = &H200\par
Public Const PRINTER_STATUS_PRINTING = &H400\par
Public Const PRINTER_STATUS_OUTPUT_BIN_FULL = &H800\par
Public Const PRINTER_STATUS_NOT_AVAILABLE = &H1000\par
Public Const PRINTER_STATUS_WAITING = &H2000\par
Public Const PRINTER_STATUS_PROCESSING = &H4000\par
Public Const PRINTER_STATUS_INITIALIZING = &H8000&\par
Public Const PRINTER_STATUS_WARMING_UP = &H10000\par
Public Const PRINTER_STATUS_TONER_LOW = &H20000\par
Public Const PRINTER_STATUS_NO_TONER = &H40000\par
Public Const PRINTER_STATUS_PAGE_PUNT = &H80000\par
Public Const PRINTER_STATUS_USER_INTERVENTION = &H100000\par
Public Const PRINTER_STATUS_OUT_OF_MEMORY = &H200000\par
Public Const PRINTER_STATUS_DOOR_OPEN = &H400000\par
\par
Public Const PRINTER_ATTRIBUTE_QUEUED = &H1\par
Public Const PRINTER_ATTRIBUTE_DIRECT = &H2\par
Public Const PRINTER_ATTRIBUTE_DEFAULT = &H4\par
Public Const PRINTER_ATTRIBUTE_SHARED = &H8\par
Public Const PRINTER_ATTRIBUTE_NETWORK = &H10\par
Public Const PRINTER_ATTRIBUTE_HIDDEN = &H20\par
Public Const PRINTER_ATTRIBUTE_LOCAL = &H40\par
\par
Public Const NO_PRIORITY = 0\par
Public Const MAX_PRIORITY = 99\par
Public Const MIN_PRIORITY = 1\par
Public Const DEF_PRIORITY = 1\par
\par
Type JOB_INFO_1\par
JobId As Long\par
pPrinterName As Long\par
pMachineName As Long\par
pUserName As Long\par
pDocument As Long\par
pDatatype As Long\par
pStatus As Long\par
Status As Long\par
Priority As Long\par
Position As Long\par
TotalPages As Long\par
PagesPrinted As Long\par
Submitted As SYSTEMTIME\par
End Type\par
\par
Type JOB_INFO_2\par
JobId As Long\par
pPrinterName As Long\par
pMachineName As Long\par
pUserName As Long\par
pDocument As Long\par
pNotifyName As Long\par
pDatatype As Long\par
pPrintProcessor As Long\par
pParameters As Long\par
pDriverName As Long\par
pDevMode As DEVMODE\par
pStatus As Long\par
pSecurityDescriptor As SECURITY_DESCRIPTOR\par
Status As Long\par
Priority As Long\par
Position As Long\par
StartTime As Long\par
UntilTime As Long\par
TotalPages As Long\par
Size As Long\par
Submitted As SYSTEMTIME\par
time As Long\par
PagesPrinted As Long\par
End Type\par
\par
Public Const JOB_CONTROL_PAUSE = 1\par
Public Const JOB_CONTROL_RESUME = 2\par
Public Const JOB_CONTROL_CANCEL = 3\par
Public Const JOB_CONTROL_RESTART = 4\par
\par
Public Const JOB_STATUS_PAUSED = &H1\par
Public Const JOB_STATUS_ERROR = &H2\par
Public Const JOB_STATUS_DELETING = &H4\par
Public Const JOB_STATUS_SPOOLING = &H8\par
Public Const JOB_STATUS_PRINTING = &H10\par
Public Const JOB_STATUS_OFFLINE = &H20\par
Public Const JOB_STATUS_PAPEROUT = &H40\par
Public Const JOB_STATUS_PRINTED = &H80\par
\par
Public Const JOB_POSITION_UNSPECIFIED = 0\par
\par
Type ADDJOB_INFO_1\par
Path As Long\par
JobId As Long\par
End Type\par
\par
Type DRIVER_INFO_1\par
pName As Long\par
End Type\par
\par
Type DRIVER_INFO_2\par
cVersion As Long\par
pName As Long\par
pEnvironment As Long\par
pDriverPath As Long\par
pDataFile As Long\par
pConfigFile As Long\par
End Type\par
\par
Type DOC_INFO_1\par
pDocName As Long\par
pOutputFile As Long\par
pDatatype As Long\par
End Type\par
\par
Type FORM_INFO_1\par
\tab\tab Flags As Long\par
pName As Long\par
Size As SIZEL\par
ImageableArea As RECTL\par
End Type\par
\par
Public Const FORM_BUILTIN = &H1\par
\par
Type PRINTPROCESSOR_INFO_1\par
pName As Long\par
End Type\par
\par
Type PORT_INFO_1\par
pName As Long\par
End Type\par
\par
Type MONITOR_INFO_1\par
pName As Long\par
End Type\par
\par
Type MONITOR_INFO_2\par
pName As Long\par
pEnvironment As Long\par
pDLLName As Long\par
End Type\par
\par
Type DATATYPES_INFO_1\par
pName As Long\par
End Type\par
\par
Type PRINTER_DEFAULTS\par
pDatatype As Long\par
pDevMode As Long\par
DesiredAccess As Long\par
End Type\par
\par
Type PRINTER_INFO_4\par
\tab pPrinterName As Long\par
\tab pServerName As Long\par
\tab Attributes As Long\par
End Type\par
\par
Type PRINTER_INFO_5\par
pPrinterName As Long\par
pPortName As Long\par
Attributes As Long\par
DeviceNotSelectedTimeout As Long\par
TransmissionRetryTimeout As Long\par
End Type\par
\par
Public Const PRINTER_CONTROL_SET_STATUS = 4\par
Public Const PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400\par
Public Const PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800\par
Public Const JOB_CONTROL_DELETE = 5\par
Public Const JOB_STATUS_USER_INTERVENTION = &H10000\par
\par
Type DRIVER_INFO_3\par
cVersion As Long\par
pName As Long ' QMS 810\par
pEnvironment As Long ' Win32 x86\par
pDriverPath As Long ' c:\\drivers\\pscript.dll\par
pDataFile As Long ' c:\\drivers\\QMS810.PPD\par
pConfigFile As Long ' c:\\drivers\\PSCRPTUI.DLL\par
pHelpFile As Long ' c:\\drivers\\PSCRPTUI.HLP\par
pDependentFiles As Long '\par
pMonitorName As Long ' "PJL monitor"\par
pDefaultDataType As Long ' "EMF"\par
End Type\par
\par
Type DOC_INFO_2\par
pDocName As Long\par
pOutputFile As Long\par
pDatatype As Long\par
dwMode As Long\par
JobId As Long\par
End Type\par
\par
Public Const DI_CHANNEL = 1 ' start direct read/write channel,\par
Public Const DI_READ_SPOOL_JOB = 3\par
\par
Type PORT_INFO_2\par
pPortName As Long\par
pMonitorName As Long\par
pDescription As Long\par
fPortType As Long\par
Reserved As Long\par
End Type\par
\par
Public Const PORT_TYPE_WRITE = &H1\par
Public Const PORT_TYPE_READ = &H2\par
Public Const PORT_TYPE_REDIRECTED = &H4\par
Public Const PORT_TYPE_NET_ATTACHED = &H8\par
\par
Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" (ByVal flags As Long, ByVal name As String, ByVal Level As Long, pPrinterEnum As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
\par
Declare Function EnumPrinterPropertySheets Lib "winspool.drv" Alias "EnumPrinterPropertySheets" (hPrinter As Long, hwnd As Long, lpfnAdd As Long, ByVal lParam As Long) As Long\par
\par
Public Const PRINTER_ENUM_DEFAULT = &H1\par
Public Const PRINTER_ENUM_LOCAL = &H2\par
Public Const PRINTER_ENUM_CONNECTIONS = &H4\par
Public Const PRINTER_ENUM_FAVORITE = &H4\par
Public Const PRINTER_ENUM_NAME = &H8\par
Public Const PRINTER_ENUM_REMOTE = &H10\par
Public Const PRINTER_ENUM_SHARED = &H20\par
Public Const PRINTER_ENUM_NETWORK = &H40\par
\par
Public Const PRINTER_ENUM_EXPAND = &H4000\par
Public Const PRINTER_ENUM_CONTAINER = &H8000&\par
\par
Public Const PRINTER_ENUM_ICONMASK = &HFF0000\par
Public Const PRINTER_ENUM_ICON1 = &H10000\par
Public Const PRINTER_ENUM_ICON2 = &H20000\par
Public Const PRINTER_ENUM_ICON3 = &H40000\par
Public Const PRINTER_ENUM_ICON4 = &H80000\par
Public Const PRINTER_ENUM_ICON5 = &H100000\par
Public Const PRINTER_ENUM_ICON6 = &H200000\par
Public Const PRINTER_ENUM_ICON7 = &H400000\par
Public Const PRINTER_ENUM_ICON8 = &H800000\par
\par
Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long\par
Declare Function ResetPrinter Lib "winspool.drv" Alias "ResetPrinterA" (ByVal hPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long\par
Declare Function SetJob Lib "winspool.drv" Alias "SetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal Command As Long) As Long\par
Declare Function GetJob Lib "winspool.drv" Alias "GetJobA" (ByVal hPrinter As Long, ByVal JobId As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long\par
Declare Function EnumJobs Lib "winspool.drv" Alias "EnumJobsA" (ByVal hPrinter As Long, ByVal FirstJob As Long, ByVal NoJobs As Long, ByVal Level As Long, pJob As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName As String, ByVal Level As Long, pPrinter As Byte) As Long\par
Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverA" (ByVal pName As String, ByVal Level As Long, pDriverInfor As Byte) As Long\par
Declare Function EnumPrinterDrivers Lib "winspool.drv" Alias "EnumPrinterDriversA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
Declare Function GetPrinterDriver Lib "winspool.drv" Alias "GetPrinterDriverA" (ByVal hPrinter As Long, ByVal pEnvironment As String, ByVal Level As Long, pDriverInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long\par
Declare Function GetPrinterDriverDirectory Lib "winspool.drv" Alias "GetPrinterDriverDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pDriverDirectory As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long\par
Declare Function DeletePrinterDriver Lib "winspool.drv" Alias "DeletePrinterDriverA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pDriverName As String) As Long\par
\par
Declare Function AddPrintProcessor Lib "winspool.drv" Alias "AddPrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPathName As String, ByVal pPrintProcessorName As String) As Long\par
Declare Function EnumPrintProcessors Lib "winspool.drv" Alias "EnumPrintProcessorsA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, pPrintProcessorInfo As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
Declare Function GetPrintProcessorDirectory Lib "winspool.drv" Alias "GetPrintProcessorDirectoryA" (ByVal pName As String, ByVal pEnvironment As String, ByVal Level As Long, ByVal pPrintProcessorInfo As String, ByVal cdBuf As Long, pcbNeeded As Long) As Long\par
Declare Function EnumPrintProcessorDatatypes Lib "winspool.drv" Alias "EnumPrintProcessorDatatypesA" (ByVal pName As String, ByVal pPrintProcessorName As String, ByVal Level As Long, pDatatypes As Byte, ByVal cdBuf As Long, pcbNeeded As Long, pcRetruned As Long) As Long\par
Declare Function DeletePrintProcessor Lib "winspool.drv" Alias "DeletePrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProcessorName As String) As Long\par
\par
Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As Byte) As Long\par
Declare Function StartPagePrinter Lib "winspool.drv" Alias "StartPagePrinter" (ByVal hPrinter As Long) As Long\par
Declare Function WritePrinter Lib "winspool.drv" Alias "WritePrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long\par
Declare Function EndPagePrinter Lib "winspool.drv" Alias "EndPagePrinter" (ByVal hPrinter As Long) As Long\par
Declare Function AbortPrinter Lib "winspool.drv" Alias "AbortPrinter" (ByVal hPrinter As Long) As Long\par
Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long\par
Declare Function EndDocPrinter Lib "winspool.drv" Alias "EndDocPrinter" (ByVal hPrinter As Long) As Long\par
\par
Declare Function AddJob Lib "winspool.drv" Alias "AddJobA" (ByVal hPrinter As Long, ByVal Level As Long, pData As Byte, ByVal cdBuf As Long, pcbNeeded As Long) As Long\par
Declare Function ScheduleJob Lib "winspool.drv" Alias "ScheduleJob" (ByVal hPrinter As Long, ByVal JobId As Long) As Long\par
Declare Function PrinterProperties Lib "winspool.drv" Alias "PrinterProperties" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long\par
Declare Function DocumentProperties Lib "winspool.drv" Alias "DocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, ByVal pDevModeOutput As Long, ByVal pDevModeInput As Long, ByVal fMode As Long) As Long\par
Declare Function AdvancedDocumentProperties Lib "winspool.drv" Alias "AdvancedDocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, ByVal pDevModeOutput As Long, ByVal pDevModeInput As Long) As Long\par
\par
Declare Function GetPrinterData Lib "winspool.drv" Alias "GetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, pType As Long, pData As Byte, ByVal nSize As Long, pcbNeeded As Long) As Long\par
Declare Function SetPrinterData Lib "winspool.drv" Alias "SetPrinterDataA" (ByVal hPrinter As Long, ByVal pValueName As String, ByVal dwType As Long, pData As Byte, ByVal cbData As Long) As Long\par
Declare Function WaitForPrinterChange Lib "winspool.drv" Alias "WaitForPrinterChange" (ByVal hPrinter As Long, ByVal flags As Long) As Long\par
\par
Public Const PRINTER_CHANGE_ADD_PRINTER = &H1\par
Public Const PRINTER_CHANGE_SET_PRINTER = &H2\par
Public Const PRINTER_CHANGE_DELETE_PRINTER = &H4\par
Public Const PRINTER_CHANGE_PRINTER = &HFF\par
Public Const PRINTER_CHANGE_ADD_JOB = &H100\par
Public Const PRINTER_CHANGE_SET_JOB = &H200\par
Public Const PRINTER_CHANGE_DELETE_JOB = &H400\par
Public Const PRINTER_CHANGE_WRITE_JOB = &H800\par
Public Const PRINTER_CHANGE_JOB = &HFF00&\par
Public Const PRINTER_CHANGE_ADD_FORM = &H10000\par
Public Const PRINTER_CHANGE_SET_FORM = &H20000\par
Public Const PRINTER_CHANGE_DELETE_FORM = &H40000\par
Public Const PRINTER_CHANGE_FORM = &H70000\par
Public Const PRINTER_CHANGE_ADD_PORT = &H100000\par
Public Const PRINTER_CHANGE_CONFIGURE_PORT = &H200000\par
Public Const PRINTER_CHANGE_DELETE_PORT = &H400000\par
Public Const PRINTER_CHANGE_PORT = &H700000\par
Public Const PRINTER_CHANGE_ADD_PRINT_PROCESSOR = &H1000000\par
Public Const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = &H4000000\par
Public Const PRINTER_CHANGE_PRINT_PROCESSOR = &H7000000\par
Public Const PRINTER_CHANGE_ADD_PRINTER_DRIVER = &H10000000\par
Public Const PRINTER_CHANGE_DELETE_PRINTER_DRIVER = &H40000000\par
Public Const PRINTER_CHANGE_PRINTER_DRIVER = &H70000000\par
Public Const PRINTER_CHANGE_TIMEOUT = &H80000000\par
Public Const PRINTER_CHANGE_ALL = &H7777FFFF\par
\par
Declare Function PrinterMessageBox Lib "winspool.drv" Alias "PrinterMessageBoxA" (ByVal hPrinter As Long, ByVal error As Long, ByVal hwnd As Long, ByVal pText As String, ByVal pCaption As String, ByVal dwType As Long) As Long\par
\par
Public Const PRINTER_ERROR_INFORMATION = &H80000000\par
Public Const PRINTER_ERROR_WARNING = &H40000000\par
Public Const PRINTER_ERROR_SEVERE = &H20000000\par
\par
Public Const PRINTER_ERROR_OUTOFPAPER = &H1\par
Public Const PRINTER_ERROR_JAM = &H2\par
Public Const PRINTER_ERROR_OUTOFTONER = &H4\par
\par
Declare Function ClosePrinter Lib "winspool.drv" Alias "ClosePrinter" (ByVal hPrinter As Long) As Long\par
Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As FORM_INFO_1) As Long\par
Declare Function DeleteForm Lib "winspool.drv" Alias "DeleteFormA" (ByVal hPrinter As Long, ByVal pFormName As String) As Long\par
Declare Function GetForm Lib "winspool.drv" Alias "GetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long) As Long\par
Declare Function SetForm Lib "winspool.drv" Alias "SetFormA" (ByVal hPrinter As Long, ByVal pFormName As String, ByVal Level As Long, pForm As Byte) As Long\par
Declare Function EnumForms Lib "winspool.drv" Alias "EnumFormsA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
\par
Declare Function EnumMonitors Lib "winspool.drv" Alias "EnumMonitorsA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte) As Long\par
Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long\par
\par
Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, lpbPorts As Byte, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long\par
Declare Function AddPort Lib "winspool.drv" Alias "AddPortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String) As Long\par
Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long\par
Declare Function DeletePort Lib "winspool.drv" Alias "DeletePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long\par
\par
Declare Function AddPrinterConnection Lib "winspool.drv" Alias "AddPrinterConnectionA" (ByVal pName As String) As Long\par
Declare Function DeletePrinterConnection Lib "winspool.drv" Alias "DeletePrinterConnectionA" (ByVal pName As String) As Long\par
Declare Function ConnectToPrinterDlg Lib "winspool.drv" Alias "ConnectToPrinterDlg" (ByVal hwnd As Long, ByVal flags As Long) As Long\par
\par
Type PROVIDOR_INFO_1\par
pName As Long\par
pEnvironment As Long\par
pDLLName As Long\par
End Type\par
\par
Declare Function AddPrintProvidor Lib "winspool.drv" Alias "AddPrintProvidorA" (ByVal pName As String, ByVal Level As Long, pProvidorInfo As Byte) As Long\par
Declare Function DeletePrintProvidor Lib "winspool.drv" Alias "DeletePrintProvidorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProvidorName As String) As Long\par
\par
Public Const SERVER_ACCESS_ADMINISTER = &H1\par
Public Const SERVER_ACCESS_ENUMERATE = &H2\par
\par
Public Const PRINTER_ACCESS_ADMINISTER = &H4\par
Public Const PRINTER_ACCESS_USE = &H8\par
\par
Public Const JOB_ACCESS_ADMINISTER = &H10\par
\par
' Access rights for print servers\par
\par
Public Const SERVER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE)\par
Public Const SERVER_READ = (STANDARD_RIGHTS_READ Or SERVER_ACCESS_ENUMERATE)\par
Public Const SERVER_WRITE = (STANDARD_RIGHTS_WRITE Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE)\par
Public Const SERVER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or SERVER_ACCESS_ENUMERATE)\par
\par
' Access rights for printers\par
Public Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)\par
Public Const PRINTER_READ = (STANDARD_RIGHTS_READ Or PRINTER_ACCESS_USE)\par
Public Const PRINTER_WRITE = (STANDARD_RIGHTS_WRITE Or PRINTER_ACCESS_USE)\par
Public Const PRINTER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or PRINTER_ACCESS_USE)\par
\par
' Access rights for jobs\par
Public Const JOB_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or JOB_ACCESS_ADMINISTER)\par
Public Const JOB_READ = (STANDARD_RIGHTS_READ Or JOB_ACCESS_ADMINISTER)\par
Public Const JOB_WRITE = (STANDARD_RIGHTS_WRITE Or JOB_ACCESS_ADMINISTER)\par
Public Const JOB_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or JOB_ACCESS_ADMINISTER)\par
\par
' Windows Network support\par
\par
' RESOURCE ENUMERATION\par
\par
Public Const RESOURCE_CONNECTED = &H1\par
Public Const RESOURCE_PUBLICNET = &H2\par
Public Const RESOURCE_REMEMBERED = &H3\par
\par
Public Const RESOURCETYPE_ANY = &H0\par
Public Const RESOURCETYPE_DISK = &H1\par
Public Const RESOURCETYPE_PRINT = &H2\par
Public Const RESOURCETYPE_UNKNOWN = &HFFFF\par
\par
Public Const RESOURCEUSAGE_CONNECTABLE = &H1\par
Public Const RESOURCEUSAGE_CONTAINER = &H2\par
Public Const RESOURCEUSAGE_RESERVED = &H80000000\par
\par
Public Const RESOURCEDISPLAYTYPE_GENERIC = &H0\par
Public Const RESOURCEDISPLAYTYPE_DOMAIN = &H1\par
Public Const RESOURCEDISPLAYTYPE_SERVER = &H2\par
Public Const RESOURCEDISPLAYTYPE_SHARE = &H3\par
Public Const RESOURCEDISPLAYTYPE_FILE = &H4\par
Public Const RESOURCEDISPLAYTYPE_GROUP = &H5\par
\par
Type NETRESOURCE\par
dwScope As Long\par
dwType As Long\par
dwDisplayType As Long\par
dwUsage As Long\par
lpLocalName As Long\par
lpRemoteName As Long\par
lpComment As Long\par
lpProvider As Long\par
End Type\par
\par
Public Const CONNECT_UPDATE_PROFILE = &H1\par
\par
Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long\par
Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long\par
Declare Function WNetAddConnection3 Lib "mpr.dll" Alias "WNetAddConnection3A" (ByVal hwnd As Long, lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long\par
Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long\par
Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long\par
Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long\par
Declare Function WNetOpenEnum Lib "mpr.dll" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long\par
Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long\par
Declare Function WNetCloseEnum Lib "mpr.dll" Alias "WNetCloseEnum" (ByVal hEnum As Long) As Long\par
\par
Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long\par
\par
Declare Function WNetConnectionDialog Lib "mpr.dll" Alias "WNetConnectionDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long\par
Declare Function WNetDisconnectDialog Lib "mpr.dll" Alias "WNetDisconnectDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long\par
\par
Declare Function WNetGetLastError Lib "mpr.dll" Alias "WNetGetLastErrorA" (lpError As Long, ByVal lpErrorBuf As String, ByVal nErrorBufSize As Long, ByVal lpNameBuf As String, ByVal nNameBufSize As Long) As Long\par
Declare Function WNetGetResourceInformation Lib "mpr.dll" Alias "WNetGetResourceInformationA" (lpNetResource As NETRESOURCE, lpBuffer As Any, lpBufferSize As Long, lpSystem As Long) As Long\par
Declare Function WNetGetResourceParent Lib "mpr.dll" Alias "WNetGetResourceParentA" (lpNetResource As NETRESOURCE, lpBuffer As Any, lpBufferSize As Long) As Long\par
Declare Function WNetGetUniversalName Lib "mpr.dll" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long\par
\par
Public Const UNIVERSAL_NAME_INFO_LEVEL = 1\par
Public Const REMOTE_NAME_INFO_LEVEL = 2\par
\par
Type REMOTE_NAME_INFO\par
\tab lpUniversalName As Long\par
lpConnectionName As Long\par
lpRemainingPath As Long\par
End Type\par
\par
\par
' Status Codes\par
\par
' This section is provided for backward compatibility. Use of the ERROR_\par
' codes is preferred. The WN_ error codes may not be available in future\par
' releases.\par
\par
' General\par
\par
Public Const WN_SUCCESS = NO_ERROR\par
Public Const WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED\par
Public Const WN_NET_ERROR = ERROR_UNEXP_NET_ERR\par
Public Const WN_MORE_DATA = ERROR_MORE_DATA\par
Public Const WN_BAD_POINTER = ERROR_INVALID_ADDRESS\par
Public Const WN_BAD_VALUE = ERROR_INVALID_PARAMETER\par
Public Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD\par
Public Const WN_ACCESS_DENIED = ERROR_ACCESS_DENIED\par
Public Const WN_FUNCTION_BUSY = ERROR_BUSY\par
Public Const WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR\par
Public Const WN_BAD_USER = ERROR_BAD_USERNAME\par
Public Const WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY\par
Public Const WN_NO_NETWORK = ERROR_NO_NETWORK\par
Public Const WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR\par
\par
' Connection\par
\par
Public Const WN_NOT_CONNECTED = ERROR_NOT_CONNECTED\par
Public Const WN_OPEN_FILES = ERROR_OPEN_FILES\par
Public Const WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE\par
Public Const WN_BAD_NETNAME = ERROR_BAD_NET_NAME\par
Public Const WN_BAD_LOCALNAME = ERROR_BAD_DEVICE\par
Public Const WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED\par
Public Const WN_DEVICE_ERROR = ERROR_GEN_FAILURE\par
Public Const WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL\par
Public Const WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH\par
Public Const WN_BAD_PROVIDER = ERROR_BAD_PROVIDER\par
Public Const WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE\par
Public Const WN_BAD_PROFILE = ERROR_BAD_PROFILE\par
\par
' Enumeration\par
\par
Public Const WN_BAD_HANDLE = ERROR_INVALID_HANDLE\par
Public Const WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS\par
Public Const WN_NOT_CONTAINER = ERROR_NOT_CONTAINER\par
\par
Public Const WN_NO_ERROR = NO_ERROR\par
\par
' This section contains the definitions\par
' for portable NetBIOS 3.0 support.\par
\par
Public Const NCBNAMSZ = 16 ' absolute length of a net name\par
Public Const MAX_LANA = 254 ' lana's in range 0 to MAX_LANA\par
\par
Type NCB\par
ncb_command As Byte\par
ncb_retcode As Byte\par
ncb_lsn As Byte\par
ncb_num As Byte\par
ncb_buffer As Long\par
ncb_length As Integer\par
ncb_callname As String * NCBNAMSZ\par
ncb_name As String * NCBNAMSZ\par
ncb_rto As Byte\par
ncb_sto As Byte\par
ncb_post As Long\par
ncb_lana_num As Byte\par
ncb_cmd_cplt As Byte\par
ncb_reserve(9) As Byte ' Reserved, must be 0\par
ncb_event As Long\par
End Type\par
\par
\par
Type ADAPTER_STATUS\par
adapter_address(5) As Byte\par
rev_major As Byte\par
reserved0 As Byte\par
adapter_type As Byte\par
rev_minor As Byte\par
duration As Integer\par
frmr_recv As Integer\par
frmr_xmit As Integer\par
iframe_recv_err As Integer\par
xmit_aborts As Integer\par
xmit_success As Long\par
recv_success As Long\par
iframe_xmit_err As Integer\par
recv_buff_unavail As Integer\par
t1_timeouts As Integer\par
ti_timeouts As Integer\par
Reserved1 As Long\par
free_ncbs As Integer\par
max_cfg_ncbs As Integer\par
max_ncbs As Integer\par
xmit_buf_unavail As Integer\par
max_dgram_size As Integer\par
pending_sess As Integer\par
max_cfg_sess As Integer\par
max_sess As Integer\par
max_sess_pkt_size As Integer\par
name_count As Integer\par
End Type\par
\par
Type NAME_BUFFER\par
name As String * NCBNAMSZ\par
name_num As Integer\par
name_flags As Integer\par
End Type\par
\par
' values for name_flags bits.\par
\par
Public Const NAME_FLAGS_MASK = &H87\par
\par
Public Const GROUP_NAME = &H80\par
Public Const UNIQUE_NAME = &H0\par
\par
Public Const REGISTERING = &H0\par
Public Const REGISTERED = &H4\par
Public Const DEREGISTERED = &H5\par
Public Const DUPLICATE = &H6\par
Public Const DUPLICATE_DEREG = &H7\par
\par
Type SESSION_HEADER\par
sess_name As Integer\par
num_sess As Integer\par
rcv_dg_outstanding As Integer\par
rcv_any_outstanding As Integer\par
End Type\par
\par
Type SESSION_BUFFER\par
lsn As Integer\par
State As Integer\par
local_name As String * NCBNAMSZ\par
remote_name As String * NCBNAMSZ\par
rcvs_outstanding As Integer\par
sends_outstanding As Integer\par
End Type\par
\par
' Values for state\par
Public Const LISTEN_OUTSTANDING = &H1\par
Public Const CALL_PENDING = &H2\par
Public Const SESSION_ESTABLISHED = &H3\par
Public Const HANGUP_PENDING = &H4\par
Public Const HANGUP_COMPLETE = &H5\par
Public Const SESSION_ABORTED = &H6\par
\par
Type LANA_ENUM\par
Length As Integer\par
lana(MAX_LANA) As Integer\par
End Type\par
\par
Type FIND_NAME_HEADER\par
node_count As Integer\par
Reserved As Integer\par
unique_group As Integer\par
End Type\par
\par
Type FIND_NAME_BUFFER\par
Length As Integer\par
access_control As Integer\par
frame_control As Integer\par
destination_addr(6) As Integer\par
source_addr(6) As Integer\par
routing_info(18) As Integer\par
End Type\par
\par
Type ACTION_HEADER\par
transport_id As Long\par
action_code As Integer\par
Reserved As Integer\par
End Type\par
\par
' Values for transport_id\par
Public Const ALL_TRANSPORTS = "M\\0\\0\\0"\par
Public Const MS_NBF = "MNBF"\par
\par
' NCB Command codes\par
Public Const NCBCALL = &H10 ' NCB CALL\par
Public Const NCBLISTEN = &H11 ' NCB LISTEN\par
Public Const NCBHANGUP = &H12 ' NCB HANG UP\par
Public Const NCBSEND = &H14 ' NCB SEND\par
Public Const NCBRECV = &H15 ' NCB RECEIVE\par
Public Const NCBRECVANY = &H16 ' NCB RECEIVE ANY\par
Public Const NCBCHAINSEND = &H17 ' NCB CHAIN SEND\par
Public Const NCBDGSEND = &H20 ' NCB SEND DATAGRAM\par
Public Const NCBDGRECV = &H21 ' NCB RECEIVE DATAGRAM\par
Public Const NCBDGSENDBC = &H22 ' NCB SEND BROADCAST DATAGRAM\par
Public Const NCBDGRECVBC = &H23 ' NCB RECEIVE BROADCAST DATAGRAM\par
Public Const NCBADDNAME = &H30 ' NCB ADD NAME\par
Public Const NCBDELNAME = &H31 ' NCB DELETE NAME\par
Public Const NCBRESET = &H32 ' NCB RESET\par
Public Const NCBASTAT = &H33 ' NCB ADAPTER STATUS\par
Public Const NCBSSTAT = &H34 ' NCB SESSION STATUS\par
Public Const NCBCANCEL = &H35 ' NCB CANCEL\par
Public Const NCBADDGRNAME = &H36 ' NCB ADD GROUP NAME\par
Public Const NCBENUM = &H37 ' NCB ENUMERATE LANA NUMBERS\par
Public Const NCBUNLINK = &H70 ' NCB UNLINK\par
Public Const NCBSENDNA = &H71 ' NCB SEND NO ACK\par
Public Const NCBCHAINSENDNA = &H72 ' NCB CHAIN SEND NO ACK\par
Public Const NCBLANSTALERT = &H73 ' NCB LAN STATUS ALERT\par
Public Const NCBACTION = &H77 ' NCB ACTION\par
Public Const NCBFINDNAME = &H78 ' NCB FIND NAME\par
Public Const NCBTRACE = &H79 ' NCB TRACE\par
\par
Public Const ASYNCH = &H80 ' high bit set == asynchronous\par
\par
' NCB Return codes\par
Public Const NRC_GOODRET = &H0 ' good return\par
' also returned when ASYNCH request accepted\par
Public Const NRC_BUFLEN = &H1 ' illegal buffer length\par
Public Const NRC_ILLCMD = &H3 ' illegal command\par
Public Const NRC_CMDTMO = &H5 ' command timed out\par
Public Const NRC_INCOMP = &H6 ' message incomplete, issue another command\par
Public Const NRC_BADDR = &H7 ' illegal buffer address\par
Public Const NRC_SNUMOUT = &H8 ' session number out of range\par
Public Const NRC_NORES = &H9 ' no resource available\par
Public Const NRC_SCLOSED = &HA ' session closed\par
Public Const NRC_CMDCAN = &HB ' command cancelled\par
Public Const NRC_DUPNAME = &HD ' duplicate name\par
Public Const NRC_NAMTFUL = &HE ' name table full\par
Public Const NRC_ACTSES = &HF ' no deletions, name has active sessions\par
Public Const NRC_LOCTFUL = &H11 ' local session table full\par
Public Const NRC_REMTFUL = &H12 ' remote session table full\par
Public Const NRC_ILLNN = &H13 ' illegal name number\par
Public Const NRC_NOCALL = &H14 ' no callname\par
Public Const NRC_NOWILD = &H15 ' cannot put in NCB_NAME\par
Public Const NRC_INUSE = &H16 ' name in use on remote adapter\par
Public Const NRC_NAMERR = &H17 ' name deleted\par
Public Const NRC_SABORT = &H18 ' session ended abnormally\par
Public Const NRC_NAMCONF = &H19 ' name conflict detected\par
Public Const NRC_IFBUSY = &H21 ' interface busy, IRET before retrying\par
Public Const NRC_TOOMANY = &H22 ' too many commands outstanding, retry later\par
Public Const NRC_BRIDGE = &H23 ' ncb_lana_num field invalid\par
Public Const NRC_CANOCCR = &H24 ' command completed while cancel occurring\par
Public Const NRC_CANCEL = &H26 ' command not valid to cancel\par
Public Const NRC_DUPENV = &H30 ' name defined by anther local process\par
Public Const NRC_ENVNOTDEF = &H34 ' environment undefined. RESET required\par
Public Const NRC_OSRESNOTAV = &H35 ' required OS resources exhausted\par
Public Const NRC_MAXAPPS = &H36 ' max number of applications exceeded\par
Public Const NRC_NOSAPS = &H37 ' no saps available for netbios\par
Public Const NRC_NORESOURCES = &H38 ' requested resources are not available\par
Public Const NRC_INVADDRESS = &H39 ' invalid ncb address or length > segment\par
Public Const NRC_INVDDID = &H3B ' invalid NCB DDID\par
Public Const NRC_LOCKFAIL = &H3C ' lock of user area failed\par
Public Const NRC_OPENERR = &H3F ' NETBIOS not loaded\par
Public Const NRC_SYSTEM = &H40 ' system error\par
\par
Public Const NRC_PENDING = &HFF ' asynchronous command is not yet finished\par
\par
Declare Function Netbios Lib "netapi32.dll" Alias "Netbios" (pncb As NCB) As Byte\par
\par
' Legal values for expression in except().\par
Public Const EXCEPTION_EXECUTE_HANDLER = 1\par
Public Const EXCEPTION_CONTINUE_SEARCH = 0\par
Public Const EXCEPTION_CONTINUE_EXECUTION = -1\par
\par
' UI dialog constants and types\par
\par
' ----Constants--------------------------------------------------------------\par
Public Const ctlFirst = &H400\par
Public Const ctlLast = &H4FF\par
' Push buttons\par
Public Const psh1 = &H400\par
Public Const psh2 = &H401\par
Public Const psh3 = &H402\par
Public Const psh4 = &H403\par
Public Const psh5 = &H404\par
Public Const psh6 = &H405\par
Public Const psh7 = &H406\par
Public Const psh8 = &H407\par
Public Const psh9 = &H408\par
Public Const psh10 = &H409\par
Public Const psh11 = &H40A\par
Public Const psh12 = &H40B\par
Public Const psh13 = &H40C\par
Public Const psh14 = &H40D\par
Public Const psh15 = &H40E\par
Public Const pshHelp = psh15\par
Public Const psh16 = &H40F\par
' Checkboxes\par
Public Const chx1 = &H410\par
Public Const chx2 = &H411\par
Public Const chx3 = &H412\par
Public Const chx4 = &H413\par
Public Const chx5 = &H414\par
Public Const chx6 = &H415\par
Public Const chx7 = &H416\par
Public Const chx8 = &H417\par
Public Const chx9 = &H418\par
Public Const chx10 = &H419\par
Public Const chx11 = &H41A\par
Public Const chx12 = &H41B\par
Public Const chx13 = &H41C\par
Public Const chx14 = &H41D\par
Public Const chx15 = &H41E\par
Public Const chx16 = &H41D\par
' Radio buttons\par
Public Const rad1 = &H420\par
Public Const rad2 = &H421\par
Public Const rad3 = &H422\par
Public Const rad4 = &H423\par
Public Const rad5 = &H424\par
Public Const rad6 = &H425\par
Public Const rad7 = &H426\par
Public Const rad8 = &H427\par
Public Const rad9 = &H428\par
Public Const rad10 = &H429\par
Public Const rad11 = &H42A\par
Public Const rad12 = &H42B\par
Public Const rad13 = &H42C\par
Public Const rad14 = &H42D\par
Public Const rad15 = &H42E\par
Public Const rad16 = &H42F\par
' Groups, frames, rectangles, and icons\par
Public Const grp1 = &H430\par
Public Const grp2 = &H431\par
Public Const grp3 = &H432\par
Public Const grp4 = &H433\par
Public Const frm1 = &H434\par
Public Const frm2 = &H435\par
Public Const frm3 = &H436\par
Public Const frm4 = &H437\par
Public Const rct1 = &H438\par
Public Const rct2 = &H439\par
Public Const rct3 = &H43A\par
Public Const rct4 = &H43B\par
Public Const ico1 = &H43C\par
Public Const ico2 = &H43D\par
Public Const ico3 = &H43E\par
Public Const ico4 = &H43F\par
' Static text\par
Public Const stc1 = &H440\par
Public Const stc2 = &H441\par
Public Const stc3 = &H442\par
Public Const stc4 = &H443\par
Public Const stc5 = &H444\par
Public Const stc6 = &H445\par
Public Const stc7 = &H446\par
Public Const stc8 = &H447\par
Public Const stc9 = &H448\par
Public Const stc10 = &H449\par
Public Const stc11 = &H44A\par
Public Const stc12 = &H44B\par
Public Const stc13 = &H44C\par
Public Const stc14 = &H44D\par
Public Const stc15 = &H44E\par
Public Const stc16 = &H44F\par
Public Const stc17 = &H450\par
Public Const stc18 = &H451\par
Public Const stc19 = &H452\par
Public Const stc20 = &H453\par
Public Const stc21 = &H454\par
Public Const stc22 = &H455\par
Public Const stc23 = &H456\par
Public Const stc24 = &H457\par
Public Const stc25 = &H458\par
Public Const stc26 = &H459\par
Public Const stc27 = &H45A\par
Public Const stc28 = &H45B\par
Public Const stc29 = &H45C\par
Public Const stc30 = &H45D\par
Public Const stc31 = &H45E\par
Public Const stc32 = &H45F\par
' Listboxes\par
Public Const lst1 = &H460\par
Public Const lst2 = &H461\par
Public Const lst3 = &H462\par
Public Const lst4 = &H463\par
Public Const lst5 = &H464\par
Public Const lst6 = &H465\par
Public Const lst7 = &H466\par
Public Const lst8 = &H467\par
Public Const lst9 = &H468\par
Public Const lst10 = &H469\par
Public Const lst11 = &H46A\par
Public Const lst12 = &H46B\par
Public Const lst13 = &H46C\par
Public Const lst14 = &H46D\par
Public Const lst15 = &H46E\par
Public Const lst16 = &H46F\par
' Combo boxes\par
Public Const cmb1 = &H470\par
Public Const cmb2 = &H471\par
Public Const cmb3 = &H472\par
Public Const cmb4 = &H473\par
Public Const cmb5 = &H474\par
Public Const cmb6 = &H475\par
Public Const cmb7 = &H476\par
Public Const cmb8 = &H477\par
Public Const cmb9 = &H478\par
Public Const cmb10 = &H479\par
Public Const cmb11 = &H47A\par
Public Const cmb12 = &H47B\par
Public Const cmb13 = &H47C\par
Public Const cmb14 = &H47D\par
Public Const cmb15 = &H47E\par
Public Const cmb16 = &H47F\par
' Edit controls\par
Public Const edt1 = &H480\par
Public Const edt2 = &H481\par
Public Const edt3 = &H482\par
Public Const edt4 = &H483\par
Public Const edt5 = &H484\par
Public Const edt6 = &H485\par
Public Const edt7 = &H486\par
Public Const edt8 = &H487\par
Public Const edt9 = &H488\par
Public Const edt10 = &H489\par
Public Const edt11 = &H48A\par
Public Const edt12 = &H48B\par
Public Const edt13 = &H48C\par
Public Const edt14 = &H48D\par
Public Const edt15 = &H48E\par
Public Const edt16 = &H48F\par
' Scroll bars\par
Public Const scr1 = &H490\par
Public Const scr2 = &H491\par
Public Const scr3 = &H492\par
Public Const scr4 = &H493\par
Public Const scr5 = &H494\par
Public Const scr6 = &H495\par
Public Const scr7 = &H496\par
Public Const scr8 = &H497\par
\par
Public Const FILEOPENORD = 1536\par
Public Const MULTIFILEOPENORD = 1537\par
Public Const PRINTDLGORD = 1538\par
Public Const PRNSETUPDLGORD = 1539\par
Public Const FINDDLGORD = 1540\par
Public Const REPLACEDLGORD = 1541\par
Public Const FONTDLGORD = 1542\par
Public Const FORMATDLGORD31 = 1543\par
Public Const FORMATDLGORD30 = 1544\par
\par
Type CRGB\par
bRed As Byte\par
bGreen As Byte\par
bBlue As Byte\par
bExtra As Byte\par
End Type\par
\par
' -----------------\par
' ADVAPI32\par
' -----------------\par
\par
' function prototypes, constants, and type definitions\par
' for Windows 32-bit Registry API\par
\par
Public Const HKEY_CLASSES_ROOT = &H80000000\par
Public Const HKEY_CURRENT_USER = &H80000001\par
Public Const HKEY_LOCAL_MACHINE = &H80000002\par
Public Const HKEY_USERS = &H80000003\par
Public Const HKEY_PERFORMANCE_DATA = &H80000004\par
\par
' Registry API prototypes\par
\par
Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long\par
Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long\par
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long\par
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long\par
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long\par
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long\par
Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long\par
Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long\par
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long\par
Declare Function RegFlushKey Lib "advapi32.dll" Alias "RegFlushKey" (ByVal hKey As Long) As Long\par
Declare Function RegGetKeySecurity Lib "advapi32.dll" Alias "RegGetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR, lpcbSecurityDescriptor As Long) As Long\par
Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long\par
Declare Function RegNotifyChangeKeyValue Lib "advapi32.dll" Alias "RegNotifyChangeKeyValue" (ByVal hKey As Long, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long, ByVal hEvent As Long, ByVal fAsynchronus As Long) As Long\par
Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long\par
Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long\par
Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, ByVal lpReserved As Long, lpcSubKeys As Long, lpcbMaxSubKeyLen As Long, lpcbMaxClassLen As Long, lpcValues As Long, lpcbMaxValueNameLen As Long, lpcbMaxValueLen As Long, lpcbSecurityDescriptor As Long, lpftLastWriteTime As FILETIME) As Long\par
Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long\par
Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long\par
Declare Function RegReplaceKey Lib "advapi32.dll" Alias "RegReplaceKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpNewFile As String, ByVal lpOldFile As String) As Long\par
Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long\par
Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long\par
Declare Function RegSetKeySecurity Lib "advapi32.dll" Alias "RegSetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long\par
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long\par
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long\par
Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long\par
Declare Function InitiateSystemShutdown Lib "advapi32.dll" Alias "InitiateSystemShutdownA" (ByVal lpMachineName As String, ByVal lpMessage As String, ByVal dwTimeout As Long, ByVal bForceAppsClosed As Long, ByVal bRebootAfterShutdown As Long) As Long\par
Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long\par
\par
' Service database names\par
Public Const SERVICES_ACTIVE_DATABASE = "ServicesActive"\par
Public Const SERVICES_FAILED_DATABASE = "ServicesFailed"\par
\par
' Value to indicate no change to an optional parameter\par
Public Const SERVICE_NO_CHANGE = &HFFFF\par
\par
' Service State -- for Enum Requests (Bit Mask)\par
Public Const SERVICE_ACTIVE = &H1\par
Public Const SERVICE_INACTIVE = &H2\par
Public Const SERVICE_STATE_ALL = (SERVICE_ACTIVE Or SERVICE_INACTIVE)\par
\par
' Controls\par
Public Const SERVICE_CONTROL_STOP = &H1\par
Public Const SERVICE_CONTROL_PAUSE = &H2\par
Public Const SERVICE_CONTROL_CONTINUE = &H3\par
Public Const SERVICE_CONTROL_INTERROGATE = &H4\par
Public Const SERVICE_CONTROL_SHUTDOWN = &H5\par
\par
' Service State -- for CurrentState\par
Public Const SERVICE_STOPPED = &H1\par
Public Const SERVICE_START_PENDING = &H2\par
Public Const SERVICE_STOP_PENDING = &H3\par
Public Const SERVICE_RUNNING = &H4\par
Public Const SERVICE_CONTINUE_PENDING = &H5\par
Public Const SERVICE_PAUSE_PENDING = &H6\par
Public Const SERVICE_PAUSED = &H7\par
\par
' Controls Accepted (Bit Mask)\par
Public Const SERVICE_ACCEPT_STOP = &H1\par
Public Const SERVICE_ACCEPT_PAUSE_CONTINUE = &H2\par
Public Const SERVICE_ACCEPT_SHUTDOWN = &H4\par
\par
' Service Control Manager object specific access types\par
Public Const SC_MANAGER_CONNECT = &H1\par
Public Const SC_MANAGER_CREATE_SERVICE = &H2\par
Public Const SC_MANAGER_ENUMERATE_SERVICE = &H4\par
Public Const SC_MANAGER_LOCK = &H8\par
Public Const SC_MANAGER_QUERY_LOCK_STATUS = &H10\par
Public Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20\par
\par
Public Const SC_MANAGER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SC_MANAGER_CONNECT Or SC_MANAGER_CREATE_SERVICE Or SC_MANAGER_ENUMERATE_SERVICE Or SC_MANAGER_LOCK Or SC_MANAGER_QUERY_LOCK_STATUS Or SC_MANAGER_MODIFY_BOOT_CONFIG)\par
\par
' Service object specific access type\par
Public Const SERVICE_QUERY_CONFIG = &H1\par
Public Const SERVICE_CHANGE_CONFIG = &H2\par
Public Const SERVICE_QUERY_STATUS = &H4\par
Public Const SERVICE_ENUMERATE_DEPENDENTS = &H8\par
Public Const SERVICE_START = &H10\par
Public Const SERVICE_STOP = &H20\par
Public Const SERVICE_PAUSE_CONTINUE = &H40\par
Public Const SERVICE_INTERROGATE = &H80\par
Public Const SERVICE_USER_DEFINED_CONTROL = &H100\par
\par
Public Const SERVICE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVICE_QUERY_CONFIG Or SERVICE_CHANGE_CONFIG Or SERVICE_QUERY_STATUS Or SERVICE_ENUMERATE_DEPENDENTS Or SERVICE_START Or SERVICE_STOP Or SERVICE_PAUSE_CONTINUE Or SERVICE_INTERROGATE Or SERVICE_USER_DEFINED_CONTROL)\par
\par
\par
Type SERVICE_STATUS\par
dwServiceType As Long\par
dwCurrentState As Long\par
dwControlsAccepted As Long\par
dwWin32ExitCode As Long\par
dwServiceSpecificExitCode As Long\par
dwCheckPoint As Long\par
dwWaitHint As Long\par
End Type\par
\par
Type ENUM_SERVICE_STATUS\par
lpServiceName As String\par
lpDisplayName As String\par
ServiceStatus As SERVICE_STATUS\par
End Type\par
\par
Type QUERY_SERVICE_LOCK_STATUS\par
fIsLocked As Long\par
lpLockOwner As String\par
dwLockDuration As Long\par
End Type\par
\par
Type QUERY_SERVICE_CONFIG\par
dwServiceType As Long\par
dwStartType As Long\par
dwErrorControl As Long\par
lpBinaryPathName As String\par
lpLoadOrderGroup As String\par
dwTagId As Long\par
lpDependencies As String\par
lpServiceStartName As String\par
lpDisplayName As String\par
End Type\par
\par
Type SERVICE_TABLE_ENTRY\par
lpServiceName As String\par
lpServiceProc As Long\par
End Type\par
\par
\par
' ++ BUILD Version: 0010 ' Increment this if a change has global effects\par
' Copyright (c) 1995 Microsoft Corporation\par
' Module Name:\par
' winsvc.h\par
' Abstract:\par
' Header file for the Service Control Manager\par
' Environment:\par
' User Mode - Win32\par
' --*/\par
'\par
' Constants\par
\par
' Character to designate that a name is a group\par
'\par
Public Const SC_GROUP_IDENTIFIER = "+"\par
\par
' Prototype for the Service Control Handler Function\par
\par
' /////////////////////////////////////////////////////////////////////////\par
' API Function Prototypes\par
' /////////////////////////////////////////////////////////////////////////\par
\par
Declare Function ChangeServiceConfig Lib "advapi32.dll" Alias "ChangeServiceConfigA" (ByVal hService As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lpServiceStartName As String, ByVal lpPassword As String, ByVal lpDisplayName As String) As Long\par
Declare Function CloseServiceHandle Lib "advapi32.dll" Alias "CloseServiceHandle" (ByVal hSCObject As Long) As Long\par
Declare Function ControlService Lib "advapi32.dll" Alias "ControlService" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long\par
Declare Function CreateService Lib "advapi32.dll" Alias "CreateServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, ByVal dwDesiredAccess As Long, ByVal dwServiceType As Long, ByVal dwStartType As Long, ByVal dwErrorControl As Long, ByVal lpBinaryPathName As String, ByVal lpLoadOrderGroup As String, lpdwTagId As Long, ByVal lpDependencies As String, ByVal lp As String, ByVal lpPassword As String) As Long\par
Declare Function DeleteService Lib "advapi32.dll" Alias "DeleteService" (ByVal hService As Long) As Long\par
Declare Function EnumDependentServices Lib "advapi32.dll" Alias "EnumDependentServicesA" (ByVal hService As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long) As Long\par
Declare Function EnumServicesStatus Lib "advapi32.dll" Alias "EnumServicesStatusA" (ByVal hSCManager As Long, ByVal dwServiceType As Long, ByVal dwServiceState As Long, lpServices As ENUM_SERVICE_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long, lpServicesReturned As Long, lpResumeHandle As Long) As Long\par
Declare Function GetServiceKeyName Lib "advapi32.dll" Alias "GetServiceKeyNameA" (ByVal hSCManager As Long, ByVal lpDisplayName As String, ByVal lpServiceName As String, lpcchBuffer As Long) As Long\par
Declare Function GetServiceDisplayName Lib "advapi32.dll" Alias "GetServiceDisplayNameA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal lpDisplayName As String, lpcchBuffer As Long) As Long\par
Declare Function LockServiceDatabase Lib "advapi32.dll" Alias "LockServiceDatabase" (ByVal hSCManager As Long) As Long\par
Declare Function NotifyBootConfigStatus Lib "advapi32.dll" Alias "NotifyBootConfigStatus" (ByVal BootAcceptable As Long) As Long\par
Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long\par
Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long\par
Declare Function QueryServiceConfig Lib "advapi32.dll" Alias "QueryServiceConfigA" (ByVal hService As Long, lpServiceConfig As QUERY_SERVICE_CONFIG, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long\par
Declare Function QueryServiceLockStatus Lib "advapi32.dll" Alias "QueryServiceLockStatusA" (ByVal hSCManager As Long, lpLockStatus As QUERY_SERVICE_LOCK_STATUS, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long\par
Declare Function QueryServiceObjectSecurity Lib "advapi32.dll" Alias "QueryServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any, ByVal cbBufSize As Long, pcbBytesNeeded As Long) As Long\par
Declare Function QueryServiceStatus Lib "advapi32.dll" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long\par
Declare Function RegisterServiceCtrlHandler Lib "advapi32.dll" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long\par
Declare Function SetServiceObjectSecurity Lib "advapi32.dll" Alias "SetServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any) As Long\par
Declare Function SetServiceStatus Lib "advapi32.dll" Alias "SetServiceStatus" (ByVal hServiceStatus As Long, lpServiceStatus As SERVICE_STATUS) As Long\par
Declare Function StartServiceCtrlDispatcher Lib "advapi32.dll" Alias "StartServiceCtrlDispatcherA" (lpServiceStartTable As SERVICE_TABLE_ENTRY) As Long\par
Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long\par
Declare Function UnlockServiceDatabase Lib "advapi32.dll" Alias "UnlockServiceDatabase" (ScLock As Any) As Long\par
\par
Type LARGE_INTEGER\par
lowpart As Long\par
highpart As Long\par
End Type\par
\par
\par
' Section for Performance Monitor data\par
\par
Public Const PERF_DATA_VERSION = 1\par
Public Const PERF_DATA_REVISION = 1\par
\par
Type PERF_DATA_BLOCK\par
Signature As String * 4\par
LittleEndian As Long\par
Version As Long\par
Revision As Long\par
TotalByteLength As Long\par
HeaderLength As Long\par
NumObjectTypes As Long\par
DefaultObject As Long\par
SystemTime As SYSTEMTIME\par
PerfTime As LARGE_INTEGER\par
PerfFreq As LARGE_INTEGER\par
PerTime100nSec As LARGE_INTEGER\par
SystemNameLength As Long\par
SystemNameOffset As Long\par
End Type\par
\par
Type PERF_OBJECT_TYPE\par
TotalByteLength As Long\par
DefinitionLength As Long\par
HeaderLength As Long\par
ObjectNameTitleIndex As Long\par
ObjectNameTitle As String\par
ObjectHelpTitleIndex As Long\par
ObjectHelpTitle As String\par
DetailLevel As Long\par
NumCounters As Long\par
DefaultCounter As Long\par
NumInstances As Long\par
CodePage As Long\par
PerfTime As LARGE_INTEGER\par
PerfFreq As LARGE_INTEGER\par
End Type\par
\par
Public Const PERF_NO_INSTANCES = -1 ' no instances\par
\par
' The counter type is the "or" of the following values as described below\par
'\par
' select one of the following to indicate the counter's data size\par
Public Const PERF_SIZE_DWORD = &H0\par
Public Const PERF_SIZE_LARGE = &H100\par
Public Const PERF_SIZE_ZERO = &H200 ' for Zero Length fields\par
Public Const PERF_SIZE_VARIABLE_LEN = &H300 ' length is in CounterLength field of Counter Definition struct\par
\par
' select one of the following values to indicate the counter field usage\par
Public Const PERF_TYPE_NUMBER = &H0 ' a number (not a counter)\par
Public Const PERF_TYPE_COUNTER = &H400 ' an increasing numeric value\par
Public Const PERF_TYPE_TEXT = &H800 ' a text field\par
Public Const PERF_TYPE_ZERO = &HC00 ' displays a zero\par
\par
' If the PERF_TYPE_NUMBER field was selected, then select one of the\par
' following to describe the Number\par
Public Const PERF_NUMBER_HEX = &H0 ' display as HEX value\par
Public Const PERF_NUMBER_DECIMAL = &H10000 ' display as a decimal integer\par
Public Const PERF_NUMBER_DEC_1000 = &H20000 ' display as a decimal/1000\par
'\par
' If the PERF_TYPE_COUNTER value was selected then select one of the\par
' following to indicate the type of counter\par
Public Const PERF_COUNTER_VALUE = &H0 ' display counter value\par
Public Const PERF_COUNTER_RATE = &H10000 ' divide ctr / delta time\par
Public Const PERF_COUNTER_FRACTION = &H20000 ' divide ctr / base\par
Public Const PERF_COUNTER_BASE = &H30000 ' base value used in fractions\par
Public Const PERF_COUNTER_ELAPSED = &H40000 ' subtract counter from current time\par
Public Const PERF_COUNTER_QUEUELEN = &H50000 ' Use Queuelen processing func.\par
Public Const PERF_COUNTER_HISTOGRAM = &H60000 ' Counter begins or ends a histogram\par
\par
' If the PERF_TYPE_TEXT value was selected, then select one of the\par
' following to indicate the type of TEXT data.\par
Public Const PERF_TEXT_UNICODE = &H0 ' type of text in text field\par
Public Const PERF_TEXT_ASCII = &H10000 ' ASCII using the CodePage field\par
\par
' Timer SubTypes\par
Public Const PERF_TIMER_TICK = &H0 ' use system perf. freq for base\par
Public Const PERF_TIMER_100NS = &H100000 ' use 100 NS timer time base units\par
Public Const PERF_OBJECT_TIMER = &H200000 ' use the object timer freq\par
\par
' Any types that have calculations performed can use one or more of\par
' the following calculation modification flags listed here\par
Public Const PERF_DELTA_COUNTER = &H400000 ' compute difference first\par
Public Const PERF_DELTA_BASE = &H800000 ' compute base diff as well\par
Public Const PERF_INVERSE_COUNTER = &H1000000 ' show as 1.00-value (assumes:\par
Public Const PERF_MULTI_COUNTER = &H2000000 ' sum of multiple instances\par
\par
' Select one of the following values to indicate the display suffix (if any)\par
Public Const PERF_DISPLAY_NO_SUFFIX = &H0 ' no suffix\par
Public Const PERF_DISPLAY_PER_SEC = &H10000000 ' "/sec"\par
Public Const PERF_DISPLAY_PERCENT = &H20000000 ' "%"\par
Public Const PERF_DISPLAY_SECONDS = &H30000000 ' "secs"\par
Public Const PERF_DISPLAY_NOSHOW = &H40000000 ' value is not displayed\par
\par
' Predefined counter types\par
\par
' 32-bit Counter. Divide delta by delta time. Display suffix: "/sec"\par
Public Const 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)\par
\par
' 64-bit Timer. Divide delta by delta time. Display suffix: "%"\par
Public Const 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)\par
\par
' Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix.\par
Public Const 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)\par
\par
' 64-bit Counter. Divide delta by delta time. Display Suffix: "/sec"\par
Public Const 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)\par
\par
' Indicates the counter is not a counter but rather Unicode text Display as text.\par
Public Const PERF_COUNTER_TEXT = (PERF_SIZE_VARIABLE_LEN Or PERF_TYPE_TEXT Or PERF_TEXT_UNICODE Or PERF_DISPLAY_NO_SUFFIX)\par
\par
' Indicates the data is a counter which should not be\par
' time averaged on display (such as an error counter on a serial line)\par
' Display as is. No Display Suffix.\par
Public Const PERF_COUNTER_RAWCOUNT = (PERF_SIZE_DWORD Or PERF_TYPE_NUMBER Or PERF_NUMBER_DECIMAL Or PERF_DISPLAY_NO_SUFFIX)\par
\par
' A count which is either 1 or 0 on each sampling interrupt (% busy)\par
' Divide delta by delta base. Display Suffix: "%"\par
Public Const 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)\par
\par
' A count which is sampled on each sampling interrupt (queue length)\par
' Divide delta by delta time. No Display Suffix.\par
Public Const 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)\par
\par
' A label: no data is associated with this counter (it has 0 length)\par
' Do not display.\par
Public Const PERF_COUNTER_NODATA = (PERF_SIZE_ZERO Or PERF_DISPLAY_NOSHOW)\par
\par
' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer)\par
' Display 100 - delta divided by delta time. Display suffix: "%"\par
Public Const 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)\par
\par
' The divisor for a sample, used with the previous counter to form a\par
' sampled %. You must check for >0 before dividing by this! This\par
' counter will directly follow the numerator counter. It should not\par
' be displayed to the user.\par
Public Const 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\par
\par
' A timer which, when divided by an average base, produces a time\par
' in seconds which is the average time of some operation. This\par
' timer times total operations, and the base is the number of opera-\par
' tions. Display Suffix: "sec"\par
Public Const PERF_AVERAGE_TIMER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_SECONDS)\par
\par
' Used as the denominator in the computation of time or count\par
' averages. Must directly follow the numerator counter. Not dis-\par
' played to the user.\par
Public Const 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\par
\par
' A bulk count which, when divided (typically) by the number of\par
' operations, gives (typically) the number of bytes per operation.\par
' No Display Suffix.\par
Public Const PERF_AVERAGE_BULK = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_NOSHOW)\par
\par
' 64-bit Timer in 100 nsec units. Display delta divided by\par
' delta time. Display suffix: "%"\par
Public Const 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)\par
\par
' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer)\par
' Display 100 - delta divided by delta time. Display suffix: "%"\par
Public Const 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)\par
\par
' 64-bit Timer. Divide delta by delta time. Display suffix: "%"\par
' Timer for multiple instances, so result can exceed 100%.\par
Public Const 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)\par
\par
' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer)\par
' Display 100 _MULTI_BASE - delta divided by delta time.\par
' Display suffix: "%" Timer for multiple instances, so result\par
' can exceed 100%. Followed by a counter of type _MULTI_BASE.\par
Public Const 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)\par
\par
' Number of instances to which the preceding _MULTI_..._INV counter\par
' applies. Used as a factor to get the percentage.\par
Public Const PERF_COUNTER_MULTI_BASE = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_BASE Or PERF_MULTI_COUNTER Or PERF_DISPLAY_NOSHOW)\par
\par
' 64-bit Timer in 100 nsec units. Display delta divided by delta time.\par
' Display suffix: "%" Timer for multiple instances, so result can exceed 100%.\par
Public Const 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)\par
\par
' 64-bit Timer inverse (e.g., idle is measured, but display busy As Integer)\par
' Display 100 _MULTI_BASE - delta divided by delta time.\par
' Display suffix: "%" Timer for multiple instances, so result\par
' can exceed 100%. Followed by a counter of type _MULTI_BASE.\par
Public Const 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)\par
\par
' Indicates the data is a fraction of the following counter which\par
' should not be time averaged on display (such as free space over\par
' total space.) Display as is. Display the quotient as "%".\par
Public Const PERF_RAW_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_PERCENT)\par
\par
' Indicates the data is a base for the preceding counter which should\par
' not be time averaged on display (such as free space over total space.)\par
Public Const 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\par
\par
' The data collected in this counter is actually the start time of the\par
' item being measured. For display, this data is subtracted from the\par
' sample time to yield the elapsed time as the difference between the two.\par
' In the definition below, the PerfTime field of the Object contains\par
' the sample time as indicated by the PERF_OBJECT_TIMER bit and the\par
' difference is scaled by the PerfFreq of the Object to convert the time\par
' units into seconds.\par
Public Const PERF_ELAPSED_TIME = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_ELAPSED Or PERF_OBJECT_TIMER Or PERF_DISPLAY_SECONDS)\par
\par
' The following counter type can be used with the preceding types to\par
' define a range of values to be displayed in a histogram.\par
Public Const PERF_COUNTER_HISTOGRAM_TYPE = &H80000000 ' Counter begins or ends a histogram\par
\par
' The following are used to determine the level of detail associated\par
' with the counter. The user will be setting the level of detail\par
' that should be displayed at any given time.\par
Public Const PERF_DETAIL_NOVICE = 100 ' The uninformed can understand it\par
Public Const PERF_DETAIL_ADVANCED = 200 ' For the advanced user\par
Public Const PERF_DETAIL_EXPERT = 300 ' For the expert user\par
Public Const PERF_DETAIL_WIZARD = 400 ' For the system designer\par
\par
Type PERF_COUNTER_DEFINITION\par
ByteLength As Long\par
CounterNameTitleIndex As Long\par
CounterNameTitle As String\par
CounterHelpTitleIndex As Long\par
CounterHelpTitle As String\par
DefaultScale As Long\par
DetailLevel As Long\par
CounterType As Long\par
CounterSize As Long\par
CounterOffset As Long\par
End Type\par
\par
Public Const PERF_NO_UNIQUE_ID = -1\par
\par
Type PERF_INSTANCE_DEFINITION\par
ByteLength As Long\par
ParentObjectTitleIndex As Long\par
ParentObjectInstance As Long\par
UniqueID As Long\par
NameOffset As Long\par
NameLength As Long\par
End Type\par
\par
Type PERF_COUNTER_BLOCK\par
ByteLength As Long\par
End Type\par
\par
Public Const CDERR_DIALOGFAILURE = &HFFFF\par
\par
Public Const CDERR_GENERALCODES = &H0\par
Public Const CDERR_STRUCTSIZE = &H1\par
Public Const CDERR_INITIALIZATION = &H2\par
Public Const CDERR_NOTEMPLATE = &H3\par
Public Const CDERR_NOHINSTANCE = &H4\par
Public Const CDERR_LOADSTRFAILURE = &H5\par
Public Const CDERR_FINDRESFAILURE = &H6\par
Public Const CDERR_LOADRESFAILURE = &H7\par
Public Const CDERR_LOCKRESFAILURE = &H8\par
Public Const CDERR_MEMALLOCFAILURE = &H9\par
Public Const CDERR_MEMLOCKFAILURE = &HA\par
Public Const CDERR_NOHOOK = &HB\par
Public Const CDERR_REGISTERMSGFAIL = &HC\par
\par
Public Const PDERR_PRINTERCODES = &H1000\par
Public Const PDERR_SETUPFAILURE = &H1001\par
Public Const PDERR_PARSEFAILURE = &H1002\par
Public Const PDERR_RETDEFFAILURE = &H1003\par
Public Const PDERR_LOADDRVFAILURE = &H1004\par
Public Const PDERR_GETDEVMODEFAIL = &H1005\par
Public Const PDERR_INITFAILURE = &H1006\par
Public Const PDERR_NODEVICES = &H1007\par
Public Const PDERR_NODEFAULTPRN = &H1008\par
Public Const PDERR_DNDMMISMATCH = &H1009\par
Public Const PDERR_CREATEICFAILURE = &H100A\par
Public Const PDERR_PRINTERNOTFOUND = &H100B\par
Public Const PDERR_DEFAULTDIFFERENT = &H100C\par
\par
Public Const CFERR_CHOOSEFONTCODES = &H2000\par
Public Const CFERR_NOFONTS = &H2001\par
Public Const CFERR_MAXLESSTHANMIN = &H2002\par
\par
Public Const FNERR_FILENAMECODES = &H3000\par
Public Const FNERR_SUBCLASSFAILURE = &H3001\par
Public Const FNERR_INVALIDFILENAME = &H3002\par
Public Const FNERR_BUFFERTOOSMALL = &H3003\par
\par
Public Const FRERR_FINDREPLACECODES = &H4000\par
Public Const FRERR_BUFFERLENGTHZERO = &H4001\par
\par
Public Const CCERR_CHOOSECOLORCODES = &H5000\par
\par
\par
' public interface to LZEXP?.LIB\par
\par
' LZEXPAND error return codes\par
Public Const LZERROR_BADINHANDLE = (-1) ' invalid input handle\par
Public Const LZERROR_BADOUTHANDLE = (-2) ' invalid output handle\par
Public Const LZERROR_READ = (-3) ' corrupt compressed file format\par
Public Const LZERROR_WRITE = (-4) ' out of space for output file\par
Public Const LZERROR_PUBLICLOC = (-5) ' insufficient memory for LZFile struct\par
Public Const LZERROR_GLOBLOCK = (-6) ' bad Global handle\par
Public Const LZERROR_BADVALUE = (-7) ' input parameter out of range\par
Public Const LZERROR_UNKNOWNALG = (-8) ' compression algorithm not recognized\par
\par
Declare Function LZCopy Lib "lz32.dll" Alias "LZCopy" (ByVal hfSource As Long, ByVal hfDest As Long) As Long\par
Declare Function LZInit Lib "lz32.dll" Alias "LZInit" (ByVal hfSrc As Long) As Long\par
Declare Function GetExpandedName Lib "lz32.dll" Alias "GetExpandedNameA" (ByVal lpszSource As String, ByVal lpszBuffer As String) As Long\par
Declare Function LZOpenFile Lib "lz32.dll" Alias "LZOpenFileA" (ByVal lpszFile As String, lpOf As OFSTRUCT, ByVal style As Long) As Long\par
Declare Function LZSeek Lib "lz32.dll" Alias "LZSeek" (ByVal hfFile As Long, ByVal lOffset As Long, ByVal nOrigin As Long) As Long\par
Declare Function LZRead Lib "lz32.dll" Alias "LZRead" (ByVal hfFile As Long, ByVal lpvBuf As String, ByVal cbread As Long) As Long\par
Declare Sub LZClose Lib "lz32.dll" Alias "LZClose" (ByVal hfFile As Long)\par
\par
' ********************************************************************\par
' IMM.H - Input Method Manager definitions\par
'\par
' Copyright (c) 1993-1995 Microsoft Corporation\par
' ********************************************************************\par
\par
Public Const VK_PROCESSKEY = &HE5\par
\par
Type COMPOSITIONFORM\par
dwStyle As Long\par
ptCurrentPos As POINTAPI\par
rcArea As Rect\par
End Type\par
\par
Type CANDIDATEFORM\par
dwIndex As Long\par
dwStyle As Long\par
ptCurrentPos As POINTAPI\par
rcArea As Rect\par
End Type\par
\par
Type CANDIDATELIST\par
dwSize As Long\par
dwStyle As Long\par
dwCount As Long\par
dwSelection As Long\par
dwPageStart As Long\par
dwPageSize As Long\par
dwOffset(1) As Long\par
End Type\par
\par
Public Const STYLE_DESCRIPTION_SIZE = 32\par
\par
Type STYLEBUF\par
dwStyle As Long\par
szDescription As String * STYLE_DESCRIPTION_SIZE\par
End Type\par
' prototype of IMM API\par
\par
Declare Function ImmInstallIME Lib "imm32.dll" Alias "ImmInstallIMEA" (ByVal lpszIMEFileName As String, ByVal lpszLayoutText As String) As Long\par
Declare Function ImmGetDefaultIMEWnd Lib "imm32.dll" Alias "ImmGetDefaultIMEWnd" (ByVal hwnd As Long) As Long\par
Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long\par
Declare Function ImmGetIMEFileName Lib "imm32.dll" Alias "ImmGetIMEFileNameA" (ByVal hkl As Long, ByVal lpStr As String, ByVal uBufLen As Long) As Long\par
Declare Function ImmGetProperty Lib "imm32.dll" Alias "ImmGetProperty" (ByVal hkl As Long, ByVal dw As Long) As Long\par
Declare Function ImmIsIME Lib "imm32.dll" Alias "ImmIsIME" (ByVal hkl As Long) As Long\par
Declare Function ImmSimulateHotKey Lib "imm32.dll" Alias "ImmSimulateHotKey" (ByVal hwnd As Long, ByVal dw As Long) As Long\par
Declare Function ImmCreateContext Lib "imm32.dll" Alias "ImmCreateContext" () As Long\par
Declare Function ImmDestroyContext Lib "imm32.dll" Alias "ImmDestroyContext" (ByVal himc As Long) As Long\par
Declare Function ImmGetContext Lib "imm32.dll" Alias "ImmGetContext" (ByVal hwnd As Long) As Long\par
Declare Function ImmReleaseContext Lib "imm32.dll" Alias "ImmReleaseContext" (ByVal hwnd As Long, ByVal himc As Long) As Long\par
Declare Function ImmAssociateContext Lib "imm32.dll" Alias "ImmAssociateContext" (ByVal hwnd As Long, ByVal himc As Long) As Long\par
Declare Function ImmGetCompositionString Lib "imm32.dll" Alias "ImmGetCompositionStringA" (ByVal himc As Long, ByVal dw As Long, lpv As Any, ByVal dw2 As Long) As Long\par
Declare Function ImmSetCompositionString Lib "imm32.dll" Alias "ImmSetCompositionStringA" (ByVal himc As Long, ByVal dwIndex As Long, lpComp As Any, ByVal dw As Long, lpRead As Any, ByVal dw2 As Long) As Long\par
Declare Function ImmGetCandidateListCount Lib "imm32.dll" Alias "ImmGetCandidateListCountA" (ByVal himc As Long, lpdwListCount As Long) As Long\par
Declare Function ImmGetCandidateList Lib "imm32.dll" Alias "ImmGetCandidateListA" (ByVal himc As Long, ByVal deIndex As Long, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long) As Long\par
Declare Function ImmGetGuideLine Lib "imm32.dll" Alias "ImmGetGuideLineA" (ByVal himc As Long, ByVal dwIndex As Long, ByVal lpStr As String, ByVal dwBufLen As Long) As Long\par
Declare Function ImmGetConversionStatus Lib "imm32.dll" Alias "ImmGetConversionStatus" (ByVal himc As Long, lpdw As Long, lpdw2 As Long) As Long\par
Declare Function ImmSetConversionStatus Lib "imm32.dll" Alias "ImmSetConversionStatus" (ByVal himc As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long\par
Declare Function ImmGetOpenStatus Lib "imm32.dll" Alias "ImmGetOpenStatus" (ByVal himc As Long) As Long\par
Declare Function ImmSetOpenStatus Lib "imm32.dll" Alias "ImmSetOpenStatus" (ByVal himc As Long, ByVal b As Long) As Long\par
Declare Function ImmGetCompositionFont Lib "imm32.dll" Alias "ImmGetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long\par
Declare Function ImmSetCompositionFont Lib "imm32.dll" Alias "ImmSetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long\par
Declare Function ImmConfigureIME Lib "imm32.dll" Alias "ImmConfigureIME" (ByVal hkl As Long, ByVal hwnd As Long, ByVal dw As Long) As Long\par
Declare Function ImmEscape Lib "imm32.dll" Alias "ImmEscapeA" (ByVal hkl As Long, ByVal himc As Long, ByVal un As Long, lpv As Any) As Long\par
Declare Function ImmGetConversionList Lib "imm32.dll" Alias "ImmGetConversionListA" (ByVal hkl As Long, ByVal himc As Long, ByVal lpsz As String, lpCandidateList As CANDIDATELIST, ByVal dwBufLen As Long, ByVal uFlag As Long) As Long\par
Declare Function ImmNotifyIME Lib "imm32.dll" Alias "ImmNotifyIME" (ByVal himc As Long, ByVal dwAction As Long, ByVal dwIndex As Long, ByVal dwValue As Long) As Long\par
Declare Function ImmGetStatusWindowPos Lib "imm32.dll" Alias "ImmGetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long\par
Declare Function ImmSetStatusWindowPos Lib "imm32.dll" Alias "ImmSetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long\par
Declare Function ImmGetCompositionWindow Lib "imm32.dll" Alias "ImmGetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long\par
Declare Function ImmSetCompositionWindow Lib "imm32.dll" Alias "ImmSetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long\par
Declare Function ImmGetCandidateWindow Lib "imm32.dll" Alias "ImmGetCandidateWindow" (ByVal himc As Long, ByVal dw As Long, lpCandidateForm As CANDIDATEFORM) As Long\par
Declare Function ImmSetCandidateWindow Lib "imm32.dll" Alias "ImmSetCandidateWindow" (ByVal himc As Long, lpCandidateForm As CANDIDATEFORM) As Long\par
Declare Function ImmIsUIMessage Lib "imm32.dll" Alias "ImmIsUIMessageA" (ByVal hwnd As Long, ByVal un As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long\par
Declare Function ImmGetVirtualKey Lib "imm32.dll" Alias "ImmGetVirtualKey" (ByVal hwnd As Long) As Long\par
Declare Function ImmRegisterWord Lib "imm32.dll" Alias "ImmRegisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String) As Long\par
Declare Function ImmUnregisterWord Lib "imm32.dll" Alias "ImmUnregisterWordA" (ByVal hkl As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszUnregister As String) As Long\par
Declare Function ImmGetRegisterWordStyle Lib "imm32.dll" Alias "ImmGetRegisterWordStyleA" (ByVal hkl As Long, ByVal nItem As Long, lpStyleBuf As STYLEBUF) As Long\par
Declare Function ImmEnumRegisterWord Lib "imm32.dll" Alias "ImmEnumRegisterWordA" (ByVal hkl As Long, ByVal RegisterWordEnumProc As Long, ByVal lpszReading As String, ByVal dw As Long, ByVal lpszRegister As String, lpv As Any) As Long\par
' the IME related messages\par
Public Const WM_CONVERTREQUESTEX = &H108\par
Public Const WM_IME_STARTCOMPOSITION = &H10D\par
Public Const WM_IME_ENDCOMPOSITION = &H10E\par
Public Const WM_IME_COMPOSITION = &H10F\par
Public Const WM_IME_KEYLAST = &H10F\par
\par
Public Const WM_IME_SETCONTEXT = &H281\par
Public Const WM_IME_NOTIFY = &H282\par
Public Const WM_IME_CONTROL = &H283\par
Public Const WM_IME_COMPOSITIONFULL = &H284\par
Public Const WM_IME_SELECT = &H285\par
Public Const WM_IME_CHAR = &H286\par
\par
Public Const WM_IME_KEYDOWN = &H290\par
Public Const WM_IME_KEYUP = &H291\par
\par
' wParam for WM_IME_CONTROL\par
Public Const IMC_GETCANDIDATEPOS = &H7\par
Public Const IMC_SETCANDIDATEPOS = &H8\par
Public Const IMC_GETCOMPOSITIONFONT = &H9\par
Public Const IMC_SETCOMPOSITIONFONT = &HA\par
Public Const IMC_GETCOMPOSITIONWINDOW = &HB\par
Public Const IMC_SETCOMPOSITIONWINDOW = &HC\par
Public Const IMC_GETSTATUSWINDOWPOS = &HF\par
Public Const IMC_SETSTATUSWINDOWPOS = &H10\par
Public Const IMC_CLOSESTATUSWINDOW = &H21\par
Public Const IMC_OPENSTATUSWINDOW = &H22\par
\par
\par
' wParam for WM_IME_CONTROL to the soft keyboard\par
' dwAction for ImmNotifyIME\par
Public Const NI_OPENCANDIDATE = &H10\par
Public Const NI_CLOSECANDIDATE = &H11\par
Public Const NI_SELECTCANDIDATESTR = &H12\par
Public Const NI_CHANGECANDIDATELIST = &H13\par
Public Const NI_FINALIZECONVERSIONRESULT = &H14\par
Public Const NI_COMPOSITIONSTR = &H15\par
Public Const NI_SETCANDIDATE_PAGESTART = &H16\par
Public Const NI_SETCANDIDATE_PAGESIZE = &H17\par
\par
' lParam for WM_IME_SETCONTEXT\par
Public Const ISC_SHOWUICANDIDATEWINDOW = &H1\par
Public Const ISC_SHOWUICOMPOSITIONWINDOW = &H80000000\par
Public Const ISC_SHOWUIGUIDELINE = &H40000000\par
Public Const ISC_SHOWUIALLCANDIDATEWINDOW = &HF\par
Public Const ISC_SHOWUIALL = &HC000000F\par
\par
' dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR\par
Public Const CPS_COMPLETE = &H1\par
Public Const CPS_CONVERT = &H2\par
Public Const CPS_REVERT = &H3\par
Public Const CPS_CANCEL = &H4\par
\par
' Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F\par
Public Const IME_CHOTKEY_IME_NONIME_TOGGLE = &H10\par
Public Const IME_CHOTKEY_SHAPE_TOGGLE = &H11\par
Public Const IME_CHOTKEY_SYMBOL_TOGGLE = &H12\par
\par
' Windows for Japanese Edition hot key ID from 0x30 - 0x4F\par
Public Const IME_JHOTKEY_CLOSE_OPEN = &H30\par
\par
' Windows for Korean Edition hot key ID from 0x50 - 0x6F\par
Public Const IME_KHOTKEY_SHAPE_TOGGLE = &H50\par
Public Const IME_KHOTKEY_HANJACONVERT = &H51\par
Public Const IME_KHOTKEY_ENGLISH = &H52\par
\par
' Windows for Tranditional Chinese Edition hot key ID from 0x70 - 0x8F\par
Public Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70\par
Public Const IME_THOTKEY_SHAPE_TOGGLE = &H71\par
Public Const IME_THOTKEY_SYMBOL_TOGGLE = &H72\par
\par
' direct switch hot key ID from 0x100 - 0x11F\par
Public Const IME_HOTKEY_DSWITCH_FIRST = &H100\par
Public Const IME_HOTKEY_DSWITCH_LAST = &H11F\par
\par
' IME private hot key from 0x200 - 0x21F\par
Public Const IME_ITHOTKEY_RESEND_RESULTSTR = &H200\par
Public Const IME_ITHOTKEY_PREVIOUS_COMPOSITION = &H201\par
Public Const IME_ITHOTKEY_UISTYLE_TOGGLE = &H202\par
\par
' parameter of ImmGetCompositionString\par
Public Const GCS_COMPREADSTR = &H1\par
Public Const GCS_COMPREADATTR = &H2\par
Public Const GCS_COMPREADCLAUSE = &H4\par
Public Const GCS_COMPSTR = &H8\par
Public Const GCS_COMPATTR = &H10\par
Public Const GCS_COMPCLAUSE = &H20\par
Public Const GCS_CURSORPOS = &H80\par
Public Const GCS_DELTASTART = &H100\par
Public Const GCS_RESULTREADSTR = &H200\par
Public Const GCS_RESULTREADCLAUSE = &H400\par
Public Const GCS_RESULTSTR = &H800\par
Public Const GCS_RESULTCLAUSE = &H1000\par
\par
' style bit flags for WM_IME_COMPOSITION\par
Public Const CS_INSERTCHAR = &H2000\par
Public Const CS_NOMOVECARET = &H4000\par
\par
' bits of fdwInit of INPUTCONTEXT\par
' IME property bits\par
Public Const IME_PROP_AT_CARET = &H10000\par
Public Const IME_PROP_SPECIAL_UI = &H20000\par
Public Const IME_PROP_CANDLIST_START_FROM_1 = &H40000\par
Public Const IME_PROP_UNICODE = &H80000\par
\par
' IME UICapability bits\par
Public Const UI_CAP_2700 = &H1\par
Public Const UI_CAP_ROT90 = &H2\par
Public Const UI_CAP_ROTANY = &H4\par
\par
' ImmSetCompositionString Capability bits\par
Public Const SCS_CAP_COMPSTR = &H1\par
Public Const SCS_CAP_MAKEREAD = &H2\par
\par
' IME WM_IME_SELECT inheritance Capability bits\par
Public Const SELECT_CAP_CONVERSION = &H1\par
Public Const SELECT_CAP_SENTENCE = &H2\par
\par
' ID for deIndex of ImmGetGuideLine\par
Public Const GGL_LEVEL = &H1\par
Public Const GGL_INDEX = &H2\par
Public Const GGL_STRING = &H3\par
Public Const GGL_PRIVATE = &H4\par
\par
' ID for dwLevel of GUIDELINE Structure\par
Public Const GL_LEVEL_NOGUIDELINE = &H0\par
Public Const GL_LEVEL_FATAL = &H1\par
Public Const GL_LEVEL_ERROR = &H2\par
Public Const GL_LEVEL_WARNING = &H3\par
Public Const GL_LEVEL_INFORMATION = &H4\par
\par
' ID for dwIndex of GUIDELINE Structure\par
Public Const GL_ID_UNKNOWN = &H0\par
Public Const GL_ID_NOMODULE = &H1\par
Public Const GL_ID_NODICTIONARY = &H10\par
Public Const GL_ID_CANNOTSAVE = &H11\par
Public Const GL_ID_NOCONVERT = &H20\par
Public Const GL_ID_TYPINGERROR = &H21\par
Public Const GL_ID_TOOMANYSTROKE = &H22\par
Public Const GL_ID_READINGCONFLICT = &H23\par
Public Const GL_ID_INPUTREADING = &H24\par
Public Const GL_ID_INPUTRADICAL = &H25\par
Public Const GL_ID_INPUTCODE = &H26\par
Public Const GL_ID_INPUTSYMBOL = &H27\par
Public Const GL_ID_CHOOSECANDIDATE = &H28\par
Public Const GL_ID_REVERSECONVERSION = &H29\par
Public Const GL_ID_PRIVATE_FIRST = &H8000&\par
Public Const GL_ID_PRIVATE_LAST = &HFFFF&\par
\par
' ID for dwIndex of ImmGetProperty\par
Public Const IGP_PROPERTY = &H4\par
Public Const IGP_CONVERSION = &H8\par
Public Const IGP_SENTENCE = &HC\par
Public Const IGP_UI = &H10\par
Public Const IGP_SETCOMPSTR = &H14\par
Public Const IGP_SELECT = &H18\par
\par
' dwIndex for ImmSetCompositionString API\par
Public Const SCS_SETSTR = (GCS_COMPREADSTR Or GCS_COMPSTR)\par
Public Const SCS_CHANGEATTR = (GCS_COMPREADATTR Or GCS_COMPATTR)\par
Public Const SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE Or GCS_COMPCLAUSE)\par
\par
' attribute for COMPOSITIONSTRING Structure\par
Public Const ATTR_INPUT = &H0\par
Public Const ATTR_TARGET_CONVERTED = &H1\par
Public Const ATTR_CONVERTED = &H2\par
Public Const ATTR_TARGET_NOTCONVERTED = &H3\par
Public Const ATTR_INPUT_ERROR = &H4\par
\par
' bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW\par
Public Const CFS_DEFAULT = &H0\par
Public Const CFS_RECT = &H1\par
Public Const CFS_POINT = &H2\par
Public Const CFS_SCREEN = &H4\par
Public Const CFS_FORCE_POSITION = &H20\par
Public Const CFS_CANDIDATEPOS = &H40\par
Public Const CFS_EXCLUDE = &H80\par
\par
' conversion direction for ImmGetConversionList\par
Public Const GCL_CONVERSION = &H1\par
Public Const GCL_REVERSECONVERSION = &H2\par
Public Const GCL_REVERSE_LENGTH = &H3\par
\par
' bit field for conversion mode\par
Public Const IME_CMODE_ALPHANUMERIC = &H0\par
Public Const IME_CMODE_NATIVE = &H1\par
Public Const IME_CMODE_CHINESE = IME_CMODE_NATIVE\par
Public Const IME_CMODE_HANGEUL = IME_CMODE_NATIVE\par
Public Const IME_CMODE_JAPANESE = IME_CMODE_NATIVE\par
Public Const IME_CMODE_KATAKANA = &H2 ' only effect under IME_CMODE_NATIVE\par
Public Const IME_CMODE_LANGUAGE = &H3\par
Public Const IME_CMODE_FULLSHAPE = &H8\par
Public Const IME_CMODE_ROMAN = &H10\par
Public Const IME_CMODE_CHARCODE = &H20\par
Public Const IME_CMODE_HANJACONVERT = &H40\par
Public Const IME_CMODE_SOFTKBD = &H80\par
Public Const IME_CMODE_NOCONVERSION = &H100\par
Public Const IME_CMODE_EUDC = &H200\par
Public Const IME_CMODE_SYMBOL = &H400\par
\par
Public Const IME_SMODE_NONE = &H0\par
Public Const IME_SMODE_PLAURALCLAUSE = &H1\par
Public Const IME_SMODE_SINGLECONVERT = &H2\par
Public Const IME_SMODE_AUTOMATIC = &H4\par
Public Const IME_SMODE_PHRASEPREDICT = &H8\par
\par
' style of candidate\par
Public Const IME_CAND_UNKNOWN = &H0\par
Public Const IME_CAND_READ = &H1\par
Public Const IME_CAND_CODE = &H2\par
Public Const IME_CAND_MEANING = &H3\par
Public Const IME_CAND_RADICAL = &H4\par
Public Const IME_CAND_STROKE = &H5\par
\par
' wParam of report message WM_IME_NOTIFY\par
Public Const IMN_CLOSESTATUSWINDOW = &H1\par
Public Const IMN_OPENSTATUSWINDOW = &H2\par
Public Const IMN_CHANGECANDIDATE = &H3\par
Public Const IMN_CLOSECANDIDATE = &H4\par
Public Const IMN_OPENCANDIDATE = &H5\par
Public Const IMN_SETCONVERSIONMODE = &H6\par
Public Const IMN_SETSENTENCEMODE = &H7\par
Public Const IMN_SETOPENSTATUS = &H8\par
Public Const IMN_SETCANDIDATEPOS = &H9\par
Public Const IMN_SETCOMPOSITIONFONT = &HA\par
Public Const IMN_SETCOMPOSITIONWINDOW = &HB\par
Public Const IMN_SETSTATUSWINDOWPOS = &HC\par
Public Const IMN_GUIDELINE = &HD\par
Public Const IMN_PRIVATE = &HE\par
\par
' error code of ImmGetCompositionString\par
Public Const IMM_ERROR_NODATA = (-1)\par
Public Const IMM_ERROR_GENERAL = (-2)\par
\par
' dialog mode of ImmConfigureIME\par
Public Const IME_CONFIG_GENERAL = 1\par
Public Const IME_CONFIG_REGISTERWORD = 2\par
Public Const IME_CONFIG_SELECTDICTIONARY = 3\par
\par
' dialog mode of ImmEscape\par
Public Const IME_ESC_QUERY_SUPPORT = &H3\par
Public Const IME_ESC_RESERVED_FIRST = &H4\par
Public Const IME_ESC_RESERVED_LAST = &H7FF\par
Public Const IME_ESC_PRIVATE_FIRST = &H800\par
Public Const IME_ESC_PRIVATE_LAST = &HFFF\par
Public Const IME_ESC_SEQUENCE_TO_INTERNAL = &H1001\par
Public Const IME_ESC_GET_EUDC_DICTIONARY = &H1003\par
Public Const IME_ESC_SET_EUDC_DICTIONARY = &H1004\par
Public Const IME_ESC_MAX_KEY = &H1005\par
Public Const IME_ESC_IME_NAME = &H1006\par
Public Const IME_ESC_SYNC_HOTKEY = &H1007\par
Public Const IME_ESC_HANJA_MODE = &H1008\par
\par
' style of word registration\par
Public Const IME_REGWORD_STYLE_EUDC = &H1\par
Public Const IME_REGWORD_STYLE_USER_FIRST = &H80000000\par
Public Const IME_REGWORD_STYLE_USER_LAST = &HFFFF\par
\par
' type of soft keyboard\par
' for Windows Tranditional Chinese Edition\par
Public Const SOFTKEYBOARD_TYPE_T1 = &H1\par
' for Windows Simplified Chinese Edition\par
Public Const SOFTKEYBOARD_TYPE_C1 = &H2\par
\par
\par
\par
' ***********************************************************************\par
' * *\par
' * mcx.h -- This module defines the 32-Bit Windows MCX APIs *\par
' * *\par
' * Copyright (c) 1990-1995, Microsoft Corp. All rights reserved. *\par
' * *\par
' ************************************************************************/\par
\par
\par
Type MODEMDEVCAPS\par
dwActualSize As Long\par
dwRequiredSize As Long\par
dwDevSpecificOffset As Long\par
dwDevSpecificSize As Long\par
\par
' product and version identification\par
dwModemProviderVersion As Long\par
dwModemManufacturerOffset As Long\par
dwModemManufacturerSize As Long\par
dwModemModelOffset As Long\par
dwModemModelSize As Long\par
dwModemVersionOffset As Long\par
dwModemVersionSize As Long\par
\par
' local option capabilities\par
dwDialOptions As Long ' bitmap of supported values\par
dwCallSetupFailTimer As Long ' maximum in seconds\par
dwInactivityTimeout As Long ' maximum in seconds\par
dwSpeakerVolume As Long ' bitmap of supported values\par
dwSpeakerMode As Long ' bitmap of supported values\par
dwModemOptions As Long ' bitmap of supported values\par
dwMaxDTERate As Long ' maximum value in bit/s\par
dwMaxDCERate As Long ' maximum value in bit/s\par
\par
' Variable portion for proprietary expansion\par
abVariablePortion(1) As Byte\par
End Type\par
\par
Type MODEMSETTINGS\par
dwActualSize As Long\par
dwRequiredSize As Long\par
dwDevSpecificOffset As Long\par
dwDevSpecificSize As Long\par
\par
' static local options (read/write)\par
dwCallSetupFailTimer As Long ' seconds\par
dwInactivityTimeout As Long ' seconds\par
dwSpeakerVolume As Long ' level\par
dwSpeakerMode As Long ' mode\par
dwPreferredModemOptions As Long ' bitmap\par
\par
' negotiated options (read only) for current or last call\par
dwNegotiatedModemOptions As Long ' bitmap\par
dwNegotiatedDCERate As Long ' bit/s\par
\par
' Variable portion for proprietary expansion\par
abVariablePortion(1) As Byte\par
End Type\par
\par
' Dial Options\par
Public Const DIALOPTION_BILLING = &H40 ' Supports wait for bong "$"\par
Public Const DIALOPTION_QUIET = &H80 ' Supports wait for quiet "@"\par
Public Const DIALOPTION_DIALTONE = &H100 ' Supports wait for dial tone "W"\par
\par
' SpeakerVolume for MODEMDEVCAPS\par
Public Const MDMVOLFLAG_LOW = &H1\par
Public Const MDMVOLFLAG_MEDIUM = &H2\par
Public Const MDMVOLFLAG_HIGH = &H4\par
\par
' SpeakerVolume for MODEMSETTINGS\par
Public Const MDMVOL_LOW = &H0\par
Public Const MDMVOL_MEDIUM = &H1\par
Public Const MDMVOL_HIGH = &H2\par
\par
' SpeakerMode for MODEMDEVCAPS\par
Public Const MDMSPKRFLAG_OFF = &H1\par
Public Const MDMSPKRFLAG_DIAL = &H2\par
Public Const MDMSPKRFLAG_ON = &H4\par
Public Const MDMSPKRFLAG_CALLSETUP = &H8\par
\par
' SpeakerMode for MODEMSETTINGS\par
Public Const MDMSPKR_OFF = &H0\par
Public Const MDMSPKR_DIAL = &H1\par
Public Const MDMSPKR_ON = &H2\par
Public Const MDMSPKR_CALLSETUP = &H3\par
\par
' Modem Options\par
Public Const MDM_COMPRESSION = &H1\par
Public Const MDM_ERROR_CONTROL = &H2\par
Public Const MDM_FORCED_EC = &H4\par
Public Const MDM_CELLULAR = &H8\par
Public Const MDM_FLOWCONTROL_HARD = &H10\par
Public Const MDM_FLOWCONTROL_SOFT = &H20\par
Public Const MDM_CCITT_OVERRIDE = &H40\par
Public Const MDM_SPEED_ADJUST = &H80\par
Public Const MDM_TONE_DIAL = &H100\par
Public Const MDM_BLIND_DIAL = &H200\par
Public Const MDM_V23_OVERRIDE = &H400\par
\par
\par
\par
' ***************************************************************************** *\par
' * shellapi.h - SHELL.DLL functions, types, and definitions *\par
' * *\par
' * Copyright (c) 1992-1995, Microsoft Corp. All rights reserved *\par
' * *\par
' \\*****************************************************************************/\par
\par
Declare Function DragQueryFile Lib "shell32.dll" Alias "DragQueryFileA" (ByVal HDROP As Long, ByVal UINT As Long, ByVal lpStr As String, ByVal ch As Long) As Long\par
Declare Function DragQueryPoint Lib "shell32.dll" Alias "DragQueryPoint" (ByVal HDROP As Long, lpPoint As POINTAPI) As Long\par
Declare Sub DragFinish Lib "shell32.dll" Alias "DragFinish" (ByVal hDrop As Long)\par
Declare Sub DragAcceptFiles Lib "shell32.dll" Alias "DragAcceptFiles" (ByVal hwnd As Long, ByVal fAccept As Long)\par
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long\par
Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long\par
\par
Declare Function ShellAbout Lib "shell32.dll" Alias "ShellAboutA" (ByVal hwnd As Long, ByVal szApp As String, ByVal szOtherStuff As String, ByVal hIcon As Long) As Long\par
Declare Function DuplicateIcon Lib "shell32.dll" Alias "DuplicateIcon" (ByVal hInst As Long, ByVal hIcon As Long) As Long\par
Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociateIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Integer) As Long\par
Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long\par
\par
Type DRAGINFO\par
uSize As Long ' init with sizeof(DRAGINFO)\par
pt As POINTAPI\par
fNC As Long\par
lpFileList As Long\par
grfKeyState As Long\par
End Type\par
\par
' // AppBar stuff\par
\par
Public Const ABM_NEW = &H0\par
Public Const ABM_REMOVE = &H1\par
Public Const ABM_QUERYPOS = &H2\par
Public Const ABM_SETPOS = &H3\par
Public Const ABM_GETSTATE = &H4\par
Public Const ABM_GETTASKBARPOS = &H5\par
Public Const ABM_ACTIVATE = &H6 ' lParam == TRUE/FALSE means activate/deactivate\par
Public Const ABM_GETAUTOHIDEBAR = &H7\par
Public Const ABM_SETAUTOHIDEBAR = &H8 ' this can fail at any time. MUST check the result\par
' lParam = TRUE/FALSE Set/Unset\par
' uEdge = what edge\par
Public Const ABM_WINDOWPOSCHANGED = &H9\par
\par
\par
' these are put in the wparam of callback messages\par
Public Const ABN_STATECHANGE = &H0\par
Public Const ABN_POSCHANGED = &H1\par
Public Const ABN_FULLSCREENAPP = &H2\par
Public Const ABN_WINDOWARRANGE = &H3 ' lParam == TRUE means hide\par
\par
' flags for get state\par
\par
Public Const ABS_AUTOHIDE = &H1\par
Public Const ABS_ALWAYSONTOP = &H2\par
Public Const ABE_LEFT = 0\par
Public Const ABE_TOP = 1\par
Public Const ABE_RIGHT = 2\par
Public Const ABE_BOTTOM = 3\par
\par
Type APPBARDATA\par
cbSize As Long\par
hwnd As Long\par
uCallbackMessage As Long\par
uEdge As Long\par
rc As Rect\par
lParam As Long ' message specific\par
End Type\par
\par
Declare Function SHAppBarMessage Lib "shell32.dll" Alias "SHAppBarMessage" (ByVal dwMessage As Long, pData As APPBARDATA) As Long\par
\par
' // EndAppBar\par
\par
Declare Function DoEnvironmentSubst Lib "shell32.dll" Alias "DoEnvironmentSubstA" (ByVal szString As String, ByVal cbString As Long) As Long\par
Declare Function FindEnvironmentString Lib "shell32.dll" Alias "FindEnvironmentStringA" (ByVal szEnvVar As String) As String\par
\par
Public Const EIRESID = -1\par
\par
Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long\par
\par
' // Shell File Operations\par
\par
Public Const FO_MOVE = &H1\par
Public Const FO_COPY = &H2\par
Public Const FO_DELETE = &H3\par
Public Const FO_RENAME = &H4\par
Public Const FOF_MULTIDESTFILES = &H1\par
Public Const FOF_CONFIRMMOUSE = &H2\par
Public Const FOF_SILENT = &H4 ' don't create progress/report\par
Public Const FOF_RENAMEONCOLLISION = &H8\par
Public Const FOF_NOCONFIRMATION = &H10 ' Don't prompt the user.\par
Public Const FOF_WANTMAPPINGHANDLE = &H20 ' Fill in SHFILEOPSTRUCT.hNameMappings\par
' Must be freed using SHFreeNameMappings\par
Public Const FOF_ALLOWUNDO = &H40\par
Public Const FOF_FILESONLY = &H80 ' on *.*, do only files\par
Public Const FOF_SIMPLEPROGRESS = &H100 ' means don't show names of files\par
Public Const FOF_NOCONFIRMMKDIR = &H200 ' don't confirm making any needed dirs\par
\par
Public Const PO_DELETE = &H13 ' printer is being deleted\par
Public Const PO_RENAME = &H14 ' printer is being renamed\par
Public Const PO_PORTCHANGE = &H20 ' port this printer connected to is being changed\par
' if this id is set, the strings received by\par
' the copyhook are a doubly-null terminated\par
' list of strings. The first is the printer\par
' name and the second is the printer port.\par
Public Const PO_REN_PORT = &H34 ' PO_RENAME and PO_PORTCHANGE at same time.\par
\par
' no POF_ flags currently defined\par
\par
' implicit parameters are:\par
' if pFrom or pTo are unqualified names the current directories are\par
' taken from the global current drive/directory settings managed\par
' by Get/SetCurrentDrive/Directory\par
'\par
' the global confirmation settings\par
\par
Type SHFILEOPSTRUCT\par
hwnd As Long\par
wFunc As Long\par
pFrom As String\par
pTo As String\par
fFlags As Integer\tab ' Note alignment warning\par
fAnyOperationsAborted As Long\par
hNameMappings As Long\par
lpszProgressTitle As Long ' Alignment warning!!\par
End Type\par
\par
Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long\par
\par
Declare Sub SHFreeNameMappings Lib "shell32.dll" Alias "SHFreeNameMappings" (ByVal hNameMappings As Long)\par
\par
Type SHNAMEMAPPING\par
pszOldPath As String\par
pszNewPath As String\par
cchOldPath As Long\par
cchNewPath As Long\par
End Type\par
\par
' // End Shell File Operations\par
\par
' // Begin ShellExecuteEx and family\par
\par
' ShellExecute() and ShellExecuteEx() error codes\par
\par
' regular WinExec() codes\par
Public Const SE_ERR_FNF = 2 ' file not found\par
Public Const SE_ERR_PNF = 3 ' path not found\par
Public Const SE_ERR_ACCESSDENIED = 5 ' access denied\par
Public Const SE_ERR_OOM = 8 ' out of memory\par
Public Const SE_ERR_DLLNOTFOUND = 32\par
\par
\par
' Note CLASSKEY overrides CLASSNAME\par
Public Const SEE_MASK_CLASSNAME = &H1\par
Public Const SEE_MASK_CLASSKEY = &H3\par
' Note INVOKEIDLIST overrides IDLIST\par
Public Const SEE_MASK_IDLIST = &H4\par
Public Const SEE_MASK_INVOKEIDLIST = &HC\par
Public Const SEE_MASK_ICON = &H10\par
Public Const SEE_MASK_HOTKEY = &H20\par
Public Const SEE_MASK_NOCLOSEPROCESS = &H40\par
Public Const SEE_MASK_CONNECTNETDRV = &H80\par
Public Const SEE_MASK_FLAG_DDEWAIT = &H100\par
Public Const SEE_MASK_DOENVSUBST = &H200\par
Public Const SEE_MASK_FLAG_NO_UI = &H400\par
\par
Type SHELLEXECUTEINFO\par
cbSize As Long\par
fMask As Long\par
hwnd As Long\par
lpVerb As String\par
lpFile As String\par
lpParameters As String\par
lpDirectory As String\par
nShow As Long\par
hInstApp As Long\par
' Optional fields\par
lpIDList As Long\par
lpClass As String\par
hkeyClass As Long\par
dwHotKey As Long\par
hIcon As Long\par
hProcess As Long\par
End Type\par
\par
Declare Sub WinExecError Lib "shell32.dll" Alias "WinExecErrorA" (ByVal hwnd As Long, ByVal error As Long, ByVal lpstrFileName As String, ByVal lpstrTitle As String)\par
\par
' // End ShellExecuteEx and family\par
\par
' // Tray notification definitions\par
\par
Type NOTIFYICONDATA\par
cbSize As Long\par
hwnd As Long\par
uID As Long\par
uFlags As Long\par
uCallbackMessage As Long\par
hIcon As Long\par
szTip As String * 64\par
End Type\par
\par
Public Const NIM_ADD = &H0\par
Public Const NIM_MODIFY = &H1\par
Public Const NIM_DELETE = &H2\par
\par
Public Const NIF_MESSAGE = &H1\par
Public Const NIF_ICON = &H2\par
Public Const NIF_TIP = &H4\par
\par
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long\par
\par
' // End Tray Notification Icons\par
\par
' // Begin SHGetFileInfo\par
\par
' * The SHGetFileInfo API provides an easy way to get attributes\par
' * for a file given a pathname.\par
' *\par
' * PARAMETERS\par
' *\par
' * pszPath file name to get info about\par
' * dwFileAttributes file attribs, only used with SHGFI_USEFILEATTRIBUTES\par
' * psfi place to return file info\par
' * cbFileInfo size of structure\par
' * uFlags flags\par
' *\par
' * RETURN\par
' * TRUE if things worked\par
' */\par
\par
Type SHFILEINFO\par
hIcon As Long ' out: icon\par
iIcon As Long ' out: icon index\par
dwAttributes As Long ' out: SFGAO_ flags\par
szDisplayName As String * MAX_PATH ' out: display name (or path)\par
szTypeName As String * 80 ' out: type name\par
End Type\par
\par
Public Const SHGFI_ICON = &H100 ' get icon\par
Public Const SHGFI_DISPLAYNAME = &H200 ' get display name\par
Public Const SHGFI_TYPENAME = &H400 ' get type name\par
Public Const SHGFI_ATTRIBUTES = &H800 ' get attributes\par
Public Const SHGFI_ICONLOCATION = &H1000 ' get icon location\par
Public Const SHGFI_EXETYPE = &H2000 ' return exe type\par
Public Const SHGFI_SYSICONINDEX = &H4000 ' get system icon index\par
Public Const SHGFI_LINKOVERLAY = &H8000& ' put a link overlay on icon\par
Public Const SHGFI_SELECTED = &H10000 ' show icon in selected state\par
Public Const SHGFI_LARGEICON = &H0 ' get large icon\par
Public Const SHGFI_SMALLICON = &H1 ' get small icon\par
Public Const SHGFI_OPENICON = &H2 ' get open icon\par
Public Const SHGFI_SHELLICONSIZE = &H4 ' get shell size icon\par
Public Const SHGFI_PIDL = &H8 ' pszPath is a pidl\par
Public Const SHGFI_USEFILEATTRIBUTES = &H10 ' use passed dwFileAttribute\par
\par
Declare Function SHGetFileInfo Lib "shell32.dll" Alias "SHGetFileInfoA" (ByVal pszPath As String, ByVal dwFileAttributes As Long, psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long\par
\par
Declare Function SHGetNewLinkInfo Lib "shell32.dll" Alias "SHGetNewLinkInfoA" (ByVal pszLinkto As String, ByVal pszDir As String, ByVal pszName As String, pfMustCopy As Long, ByVal uFlags As Long) As Long\par
\par
Public Const SHGNLI_PIDL = &H1 ' pszLinkTo is a pidl\par
Public Const SHGNLI_PREFIXNAME = &H2 ' Make name "Shortcut to xxx"\par
\par
' // End SHGetFileInfo\par
\par
\par
' Copyright (C) 1993 - 1995 Microsoft Corporation\par
\par
' Module Name:\par
\par
' winperf.h\par
\par
' Abstract:\par
\par
' Header file for the Performance Monitor data.\par
\par
' This file contains the definitions of the data structures returned\par
' by the Configuration Registry in response to a request for\par
' performance data. This file is used by both the Configuration\par
' Registry and the Performance Monitor to define their interface.\par
' The complete interface is described here, except for the name\par
' of the node to query in the registry. It is\par
\par
' HKEY_PERFORMANCE_DATA.\par
\par
' By querying that node with a subkey of "Global" the caller will\par
' retrieve the structures described here.\par
\par
' There is no need to RegOpenKey() the reserved handle HKEY_PERFORMANCE_DATA,\par
' but the caller should RegCloseKey() the handle so that network transports\par
' and drivers can be removed or installed (which cannot happen while\par
' they are open for monitoring.) Remote requests must first\par
' RegConnectRegistry().\par
\par
' --*/\par
\par
' Data structure definitions.\par
\par
' In order for data to be returned through the Configuration Registry\par
' in a system-independent fashion, it must be self-describing.\par
\par
' In the following, all offsets are in bytes.\par
\par
'\par
' Data is returned through the Configuration Registry in a\par
' a data block which begins with a _PERF_DATA_BLOCK structure.\par
'\par
\par
' The _PERF_DATA_BLOCK structure is followed by NumObjectTypes of\par
' data sections, one for each type of object measured. Each object\par
' type section begins with a _PERF_OBJECT_TYPE structure.\par
\par
\par
' ***************************************************************************** *\par
' * winver.h - Version management functions, types, and definitions *\par
' * *\par
' * Include file for VER.DLL. This library is *\par
' * designed to allow version stamping of Windows executable files*\par
' * and of special .VER files for DOS executable files. *\par
' * *\par
' * Copyright (c) 1993, Microsoft Corp. All rights reserved *\par
' * *\par
' \\*****************************************************************************/\par
\par
' ----- Symbols -----\par
Public Const VS_VERSION_INFO = 1\par
Public Const VS_USER_DEFINED = 100\par
\par
' ----- VS_VERSION.dwFileFlags -----\par
Public Const VS_FFI_SIGNATURE = &HFEEF04BD\par
Public Const VS_FFI_STRUCVERSION = &H10000\par
Public Const VS_FFI_FILEFLAGSMASK = &H3F&\par
\par
' ----- VS_VERSION.dwFileFlags -----\par
Public Const VS_FF_DEBUG = &H1&\par
Public Const VS_FF_PRERELEASE = &H2&\par
Public Const VS_FF_PATCHED = &H4&\par
Public Const VS_FF_PRIVATEBUILD = &H8&\par
Public Const VS_FF_INFOINFERRED = &H10&\par
Public Const VS_FF_SPECIALBUILD = &H20&\par
\par
' ----- VS_VERSION.dwFileOS -----\par
Public Const VOS_UNKNOWN = &H0&\par
Public Const VOS_DOS = &H10000\par
Public Const VOS_OS216 = &H20000\par
Public Const VOS_OS232 = &H30000\par
Public Const VOS_NT = &H40000\par
\par
Public Const VOS__BASE = &H0&\par
Public Const VOS__WINDOWS16 = &H1&\par
Public Const VOS__PM16 = &H2&\par
Public Const VOS__PM32 = &H3&\par
Public Const VOS__WINDOWS32 = &H4&\par
\par
Public Const VOS_DOS_WINDOWS16 = &H10001\par
Public Const VOS_DOS_WINDOWS32 = &H10004\par
Public Const VOS_OS216_PM16 = &H20002\par
Public Const VOS_OS232_PM32 = &H30003\par
Public Const VOS_NT_WINDOWS32 = &H40004\par
\par
' ----- VS_VERSION.dwFileType -----\par
Public Const VFT_UNKNOWN = &H0&\par
Public Const VFT_APP = &H1&\par
Public Const VFT_DLL = &H2&\par
Public Const VFT_DRV = &H3&\par
Public Const VFT_FONT = &H4&\par
Public Const VFT_VXD = &H5&\par
Public Const VFT_STATIC_LIB = &H7&\par
\par
' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV -----\par
Public Const VFT2_UNKNOWN = &H0&\par
Public Const VFT2_DRV_PRINTER = &H1&\par
Public Const VFT2_DRV_KEYBOARD = &H2&\par
Public Const VFT2_DRV_LANGUAGE = &H3&\par
Public Const VFT2_DRV_DISPLAY = &H4&\par
Public Const VFT2_DRV_MOUSE = &H5&\par
Public Const VFT2_DRV_NETWORK = &H6&\par
Public Const VFT2_DRV_SYSTEM = &H7&\par
Public Const VFT2_DRV_INSTALLABLE = &H8&\par
Public Const VFT2_DRV_SOUND = &H9&\par
Public Const VFT2_DRV_COMM = &HA&\par
Public Const VFT2_DRV_INPUTMETHOD = &HB&\par
\par
' ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT -----\par
Public Const VFT2_FONT_RASTER = &H1&\par
Public Const VFT2_FONT_VECTOR = &H2&\par
Public Const VFT2_FONT_TRUETYPE = &H3&\par
\par
' ----- VerFindFile() flags -----\par
Public Const VFFF_ISSHAREDFILE = &H1\par
\par
Public Const VFF_CURNEDEST = &H1\par
Public Const VFF_FILEINUSE = &H2\par
Public Const VFF_BUFFTOOSMALL = &H4\par
\par
' ----- VerInstallFile() flags -----\par
Public Const VIFF_FORCEINSTALL = &H1\par
Public Const VIFF_DONTDELETEOLD = &H2\par
\par
Public Const VIF_TEMPFILE = &H1&\par
Public Const VIF_MISMATCH = &H2&\par
Public Const VIF_SRCOLD = &H4&\par
\par
Public Const VIF_DIFFLANG = &H8&\par
Public Const VIF_DIFFCODEPG = &H10&\par
Public Const VIF_DIFFTYPE = &H20&\par
\par
Public Const VIF_WRITEPROT = &H40&\par
Public Const VIF_FILEINUSE = &H80&\par
Public Const VIF_OUTOFSPACE = &H100&\par
Public Const VIF_ACCESSVIOLATION = &H200&\par
Public Const VIF_SHARINGVIOLATION = &H400&\par
Public Const VIF_CANNOTCREATE = &H800&\par
Public Const VIF_CANNOTDELETE = &H1000&\par
Public Const VIF_CANNOTRENAME = &H2000&\par
Public Const VIF_CANNOTDELETECUR = &H4000&\par
Public Const VIF_OUTOFMEMORY = &H8000&\par
\par
Public Const VIF_CANNOTREADSRC = &H10000\par
Public Const VIF_CANNOTREADDST = &H20000\par
Public Const VIF_BUFFTOOSMALL = &H40000\par
\par
' ----- Types and structures -----\par
\par
Type VS_FIXEDFILEINFO\par
dwSignature As Long\par
dwStrucVersion As Long ' e.g. 0x00000042 = "0.42"\par
dwFileVersionMS As Long ' e.g. 0x00030075 = "3.75"\par
dwFileVersionLS As Long ' e.g. 0x00000031 = "0.31"\par
dwProductVersionMS As Long ' e.g. 0x00030010 = "3.10"\par
dwProductVersionLS As Long ' e.g. 0x00000031 = "0.31"\par
dwFileFlagsMask As Long ' = 0x3F for version "0.42"\par
dwFileFlags As Long ' e.g. VFF_DEBUG Or VFF_PRERELEASE\par
dwFileOS As Long ' e.g. VOS_DOS_WINDOWS16\par
dwFileType As Long ' e.g. VFT_DRIVER\par
dwFileSubtype As Long ' e.g. VFT2_DRV_KEYBOARD\par
dwFileDateMS As Long ' e.g. 0\par
dwFileDateLS As Long ' e.g. 0\par
End Type\par
\par
' ----- Function prototypes -----\par
\par
Declare Function VerFindFile Lib "version.dll" Alias "VerFindFileA" (ByVal uFlags As Long, ByVal szFileName As String, ByVal szWinDir As String, ByVal szAppDir As String, ByVal szCurDir As String, lpuCurDirLen As Long, ByVal szDestDir As String, lpuDestDirLen As Long) As Long\par
Declare Function VerInstallFile Lib "version.dll" Alias "VerInstallFileA" (ByVal uFlags As Long, ByVal szSrcFileName As String, ByVal szDestFileName As String, ByVal szSrcDir As String, ByVal szDestDir As String, ByVal szCurDir As String, ByVal szTmpFile As String, lpuTmpFileLen As Long) As Long\par
\par
' Returns size of version info in Bytes\par
Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long\par
\par
' Read version info into buffer\par
' /* Length of buffer for info *\par
' /* Information from GetFileVersionSize *\par
' /* Filename of version stamped file *\par
Declare Function GetFileVersionInfo Lib "version.dll" Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, ByVal dwLen As Long, lpData As Byte) As Long\par
Declare Function VerLanguageName Lib "version.dll" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long\par
Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValueA" (pBlock As Byte, ByVal lpSubBlock As String, lpBuffer As Long, puLen As Long) As Long\par
\par
' ***********************************************************************\par
' * *\par
' * winbase.h -- This module defines the 32-Bit Windows Base APIs *\par
' * *\par
' * Copyright (c) 1990-1995, Microsoft Corp. All rights reserved. *\par
' * *\par
' ************************************************************************/\par
Type ICONMETRICS\par
\tab cbSize As Long\par
\tab iHorzSpacing As Long\par
\tab iVertSpacing As Long\par
\tab iTitleWrap As Long\par
\tab lfFont As LOGFONT\par
End Type\par
\par
Type HELPINFO\par
\tab cbSize As Long\par
\tab iContextType As Long\par
\tab iCtrlId As Long\par
\tab hItemHandle As Long\par
\tab dwContextId As Long\par
\tab MousePos As POINTAPI\par
End Type\par
\par
Type ANIMATIONINFO\par
\tab cbSize As Long\par
\tab iMinAnimate As Long\par
End Type\par
\par
Type MINIMIZEDMETRICS\par
\tab cbSize As Long\par
\tab iWidth As Long\par
\tab iHorzGap As Long\par
\tab iVertGap As Long\par
\tab iArrange As Long\par
End Type\par
\par
' Define API decoration for direct importing of DLL references.\par
Declare Function HeapValidate Lib "kernel32" Alias "HeapValidate" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal lpMem As Long) As Long\par
Declare Function HeapCompact Lib "kernel32" Alias "HeapCompact" (ByVal hHeap As Long, ByVal dwFlags As Long) As Long\par
\par
Public Const PROCESS_HEAP_REGION = &H1\par
Public Const PROCESS_HEAP_UNCOMMITTED_RANGE = &H2\par
Public Const PROCESS_HEAP_ENTRY_BUSY = &H4\par
Public Const PROCESS_HEAP_ENTRY_MOVEABLE = &H10\par
Public Const PROCESS_HEAP_ENTRY_DDESHARE = &H20\par
\par
Declare Function HeapLock Lib "kernel32" Alias "HeapLock" (ByVal hHeap As Long) As Long\par
Declare Function HeapUnlock Lib "kernel32" Alias "HeapUnlock" (ByVal hHeap As Long) As Long\par
\par
' GetBinaryType return values.\par
\par
Public Const SCS_32BIT_BINARY = 0\par
Public Const SCS_DOS_BINARY = 1\par
Public Const SCS_WOW_BINARY = 2\par
Public Const SCS_PIF_BINARY = 3\par
Public Const SCS_POSIX_BINARY = 4\par
Public Const SCS_OS216_BINARY = 5\par
\par
Declare Function GetBinaryType Lib "kernel32" Alias "GetBinaryTypeA" (ByVal lpApplicationName As String, lpBinaryType As Long) As Long\par
\par
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long\par
Declare Function GetProcessAffinityMask Lib "kernel32" Alias "GetProcessAffinityMask" (ByVal hProcess As Long, lpProcessAffinityMask As Long, SystemAffinityMask As Long) As Long\par
\par
' Logon Support APIs\par
\par
Public Const LOGON32_LOGON_INTERACTIVE = 2\par
Public Const LOGON32_LOGON_BATCH = 4\par
Public Const LOGON32_LOGON_SERVICE = 5\par
\par
Public Const LOGON32_PROVIDER_DEFAULT = 0\par
Public Const LOGON32_PROVIDER_WINNT35 = 1\par
\par
Declare Function LogonUser Lib "kernel32" Alias "LogonUserA" (ByVal lpszUsername As String, ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Long, ByVal dwLogonProvider As Long, phToken As Long) As Long\par
\par
Declare Function ImpersonateLoggedOnUser Lib "kernel32" Alias "ImpersonateLoggedOnUser" (ByVal hToken As Long) As Long\par
Declare Function CreateProcessAsUser Lib "kernel32" Alias "CreateProcessAsUserA" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String,lpProcessAttributes As SECURITY_ATTRIBUTES,lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long\par
\par
' Performance counter API's\par
\par
Type OSVERSIONINFO\par
dwOSVersionInfoSize As Long\par
dwMajorVersion As Long\par
dwMinorVersion As Long\par
dwBuildNumber As Long\par
dwPlatformId As Long\par
szCSDVersion As String * 128 ' Maintenance string for PSS usage\par
End Type\par
\par
' dwPlatformId defines:\par
'\par
Public Const VER_PLATFORM_WIN32s = 0\par
Public Const VER_PLATFORM_WIN32_WINDOWS = 1\par
Public Const VER_PLATFORM_WIN32_NT = 2\par
\par
Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long\par
\par
' Power Management APIs\par
\par
Public Const AC_LINE_OFFLINE = &H0\par
Public Const AC_LINE_ONLINE = &H1\par
Public Const AC_LINE_BACKUP_POWER = &H2\par
Public Const AC_LINE_UNKNOWN = &HFF\par
Public Const BATTERY_FLAG_HIGH = &H1\par
Public Const BATTERY_FLAG_LOW = &H2\par
Public Const BATTERY_FLAG_CRITICAL = &H4\par
Public Const BATTERY_FLAG_CHARGING = &H8\par
Public Const BATTERY_FLAG_NO_BATTERY = &H80\par
Public Const BATTERY_FLAG_UNKNOWN = &HFF\par
Public Const BATTERY_PERCENTAGE_UNKNOWN = &HFF\par
Public Const BATTERY_LIFE_UNKNOWN = &HFFFF\par
\par
Type SYSTEM_POWER_STATUS\par
ACLineStatus As Byte\par
BatteryFlag As Byte\par
BatteryLifePercent As Byte\par
Reserved1 As Byte\par
BatteryLifeTime As Long\par
BatteryFullLifeTime As Long\par
End Type\par
\par
Declare Function GetSystemPowerStatus Lib "kernel32" Alias "GetSystemPowerStatus" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long\par
Declare Function SetSystemPowerState Lib "kernel32" Alias "SetSystemPowerState" (ByVal fSuspend As Long, ByVal fForce As Long) As Long\par
\par
' * commdlg.h -- This module defines the 32-Bit Common Dialog APIs *\par
\par
Type OPENFILENAME\par
lStructSize As Long\par
hwndOwner As Long\par
hInstance As Long\par
lpstrFilter As String\par
lpstrCustomFilter As String\par
nMaxCustFilter As Long\par
nFilterIndex As Long\par
lpstrFile As String\par
nMaxFile As Long\par
lpstrFileTitle As String\par
nMaxFileTitle As Long\par
lpstrInitialDir As String\par
lpstrTitle As String\par
flags As Long\par
nFileOffset As Integer\par
nFileExtension As Integer\par
lpstrDefExt As String\par
lCustData As Long\par
lpfnHook As Long\par
lpTemplateName As String\par
End Type\par
\par
Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long\par
\par
Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long\par
\par
Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer\par
\par
Public Const OFN_READONLY = &H1\par
Public Const OFN_OVERWRITEPROMPT = &H2\par
Public Const OFN_HIDEREADONLY = &H4\par
Public Const OFN_NOCHANGEDIR = &H8\par
Public Const OFN_SHOWHELP = &H10\par
Public Const OFN_ENABLEHOOK = &H20\par
Public Const OFN_ENABLETEMPLATE = &H40\par
Public Const OFN_ENABLETEMPLATEHANDLE = &H80\par
Public Const OFN_NOVALIDATE = &H100\par
Public Const OFN_ALLOWMULTISELECT = &H200\par
Public Const OFN_EXTENSIONDIFFERENT = &H400\par
Public Const OFN_PATHMUSTEXIST = &H800\par
Public Const OFN_FILEMUSTEXIST = &H1000\par
Public Const OFN_CREATEPROMPT = &H2000\par
Public Const OFN_SHAREAWARE = &H4000\par
Public Const OFN_NOREADONLYRETURN = &H8000&\par
Public Const OFN_NOTESTFILECREATE = &H10000\par
Public Const OFN_NONETWORKBUTTON = &H20000\par
Public Const OFN_NOLONGNAMES = &H40000 ' force no long names for 4.x modules\par
Public Const OFN_EXPLORER = &H80000 ' new look commdlg\par
Public Const OFN_NODEREFERENCELINKS = &H100000\par
Public Const OFN_LONGNAMES = &H200000 ' force long names for 3.x modules\par
\par
Public Const OFN_SHAREFALLTHROUGH = 2\par
Public Const OFN_SHARENOWARN = 1\par
Public Const OFN_SHAREWARN = 0\par
\par
Type NMHDR\par
hwndFrom As Long\par
idfrom As Long\par
code As Long\par
End Type\par
\par
Type OFNOTIFY\par
hdr As NMHDR\par
lpOFN As OPENFILENAME\par
pszFile As String ' May be NULL\par
End Type\par
\par
Public Const CDM_FIRST = (WM_USER + 100)\par
Public Const CDM_LAST = (WM_USER + 200)\par
Public Const CDM_GETSPEC = (CDM_FIRST + &H0)\par
Public Const CDM_GETFILEPATH = (CDM_FIRST + &H1)\par
Public Const CDM_GETFOLDERPATH = (CDM_FIRST + &H2)\par
Public Const CDM_GETFOLDERIDLIST = (CDM_FIRST + &H3)\par
Public Const CDM_SETCONTROLTEXT = (CDM_FIRST + &H4)\par
Public Const CDM_HIDECONTROL = (CDM_FIRST + &H5)\par
Public Const CDM_SETDEFEXT = (CDM_FIRST + &H6)\par
\par
Type CHOOSECOLOR\par
lStructSize As Long\par
hwndOwner As Long\par
hInstance As Long\par
rgbResult As Long\par
lpCustColors As Long\par
flags As Long\par
lCustData As Long\par
lpfnHook As Long\par
lpTemplateName As String\par
End Type\par
\par
Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long\par
\par
Public Const CC_RGBINIT = &H1\par
Public Const CC_FULLOPEN = &H2\par
Public Const CC_PREVENTFULLOPEN = &H4\par
Public Const CC_SHOWHELP = &H8\par
Public Const CC_ENABLEHOOK = &H10\par
Public Const CC_ENABLETEMPLATE = &H20\par
Public Const CC_ENABLETEMPLATEHANDLE = &H40\par
Public Const CC_SOLIDCOLOR = &H80\par
Public Const CC_ANYCOLOR = &H100\par
\par
Type FINDREPLACE\par
lStructSize As Long ' size of this struct 0x20\par
hwndOwner As Long ' handle to owner's window\par
hInstance As Long ' instance handle of.EXE that\par
' contains cust. dlg. template\par
flags As Long ' one or more of the FR_??\par
lpstrFindWhat As String ' ptr. to search string\par
lpstrReplaceWith As String ' ptr. to replace string\par
wFindWhatLen As Integer ' size of find buffer\par
wReplaceWithLen As Integer ' size of replace buffer\par
lCustData As Long ' data passed to hook fn.\par
lpfnHook As Long ' ptr. to hook fn. or NULL\par
lpTemplateName As String ' custom template name\par
End Type\par
\par
Public Const FR_DOWN = &H1\par
Public Const FR_WHOLEWORD = &H2\par
Public Const FR_MATCHCASE = &H4\par
Public Const FR_FINDNEXT = &H8\par
Public Const FR_REPLACE = &H10\par
Public Const FR_REPLACEALL = &H20\par
Public Const FR_DIALOGTERM = &H40\par
Public Const FR_SHOWHELP = &H80\par
Public Const FR_ENABLEHOOK = &H100\par
Public Const FR_ENABLETEMPLATE = &H200\par
Public Const FR_NOUPDOWN = &H400\par
Public Const FR_NOMATCHCASE = &H800\par
Public Const FR_NOWHOLEWORD = &H1000\par
Public Const FR_ENABLETEMPLATEHANDLE = &H2000\par
Public Const FR_HIDEUPDOWN = &H4000\par
Public Const FR_HIDEMATCHCASE = &H8000&\par
Public Const FR_HIDEWHOLEWORD = &H10000\par
\par
Declare Function FindText Lib "comdlg32.dll" Alias "FindTextA " (pFindreplace As FINDREPLACE) As Long\par
\par
Declare Function ReplaceText Lib "comdlg32.dll" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE) As Long\par
\par
Type CHOOSEFONT\par
lStructSize As Long\par
hwndOwner As Long ' caller's window handle\par
hdc As Long ' printer DC/IC or NULL\par
lpLogFont As LOGFONT ' ptr. to a LOGFONT struct\par
iPointSize As Long ' 10 * size in points of selected font\par
flags As Long ' enum. type flags\par
rgbColors As Long ' returned text color\par
lCustData As Long ' data passed to hook fn.\par
lpfnHook As Long ' ptr. to hook function\par
lpTemplateName As String ' custom template name\par
hInstance As Long ' instance handle of.EXE that\par
' contains cust. dlg. template\par
lpszStyle As String ' return the style field here\par
' must be LF_FACESIZE or bigger\par
nFontType As Integer ' same value reported to the EnumFonts\par
' call back with the extra FONTTYPE_\par
' bits added\par
MISSING_ALIGNMENT As Integer\par
nSizeMin As Long ' minimum pt size allowed &\par
nSizeMax As Long ' max pt size allowed if\par
' CF_LIMITSIZE is used\par
End Type\par
\par
Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As CHOOSEFONT) As Long\par
\par
Public Const CF_SCREENFONTS = &H1\par
Public Const CF_PRINTERFONTS = &H2\par
Public Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)\par
Public Const CF_SHOWHELP = &H4&\par
Public Const CF_ENABLEHOOK = &H8&\par
Public Const CF_ENABLETEMPLATE = &H10&\par
Public Const CF_ENABLETEMPLATEHANDLE = &H20&\par
Public Const CF_INITTOLOGFONTSTRUCT = &H40&\par
Public Const CF_USESTYLE = &H80&\par
Public Const CF_EFFECTS = &H100&\par
Public Const CF_APPLY = &H200&\par
Public Const CF_ANSIONLY = &H400&\par
Public Const CF_SCRIPTSONLY = CF_ANSIONLY\par
Public Const CF_NOVECTORFONTS = &H800&\par
Public Const CF_NOOEMFONTS = CF_NOVECTORFONTS\par
Public Const CF_NOSIMULATIONS = &H1000&\par
Public Const CF_LIMITSIZE = &H2000&\par
Public Const CF_FIXEDPITCHONLY = &H4000&\par
Public Const CF_WYSIWYG = &H8000& ' must also have CF_SCREENFONTS CF_PRINTERFONTS\par
Public Const CF_FORCEFONTEXIST = &H10000\par
Public Const CF_SCALABLEONLY = &H20000\par
Public Const CF_TTONLY = &H40000\par
Public Const CF_NOFACESEL = &H80000\par
Public Const CF_NOSTYLESEL = &H100000\par
Public Const CF_NOSIZESEL = &H200000\par
Public Const CF_SELECTSCRIPT = &H400000\par
Public Const CF_NOSCRIPTSEL = &H800000\par
Public Const CF_NOVERTFONTS = &H1000000\par
\par
Public Const SIMULATED_FONTTYPE = &H8000&\par
Public Const PRINTER_FONTTYPE = &H4000\par
Public Const SCREEN_FONTTYPE = &H2000\par
Public Const BOLD_FONTTYPE = &H100\par
Public Const ITALIC_FONTTYPE = &H200\par
Public Const REGULAR_FONTTYPE = &H400\par
\par
Public Const WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1)\par
Public Const WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101)\par
Public Const WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102)\par
\par
Public Const LBSELCHSTRING = "commdlg_LBSelChangedNotify"\par
Public Const SHAREVISTRING = "commdlg_ShareViolation"\par
Public Const FILEOKSTRING = "commdlg_FileNameOK"\par
Public Const COLOROKSTRING = "commdlg_ColorOK"\par
Public Const SETRGBSTRING = "commdlg_SetRGBColor"\par
Public Const HELPMSGSTRING = "commdlg_help"\par
Public Const FINDMSGSTRING = "commdlg_FindReplace"\par
\par
Public Const CD_LBSELNOITEMS = -1\par
Public Const CD_LBSELCHANGE = 0\par
Public Const CD_LBSELSUB = 1\par
Public Const CD_LBSELADD = 2\par
\par
Type PRINTDLG\par
lStructSize As Long\par
hwndOwner As Long\par
hDevMode As Long\par
hDevNames As Long\par
hdc As Long\par
flags As Long\par
nFromPage As Integer\par
nToPage As Integer\par
nMinPage As Integer\par
nMaxPage As Integer\par
nCopies As Integer\par
hInstance As Long\par
lCustData As Long\par
lpfnPrintHook As Long\par
lpfnSetupHook As Long\par
lpPrintTemplateName As String\par
lpSetupTemplateName As String\par
hPrintTemplate As Long\par
hSetupTemplate As Long\par
End Type\par
\par
Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG) As Long\par
\par
Public Const PD_ALLPAGES = &H0\par
Public Const PD_SELECTION = &H1\par
Public Const PD_PAGENUMS = &H2\par
Public Const PD_NOSELECTION = &H4\par
Public Const PD_NOPAGENUMS = &H8\par
Public Const PD_COLLATE = &H10\par
Public Const PD_PRINTTOFILE = &H20\par
Public Const PD_PRINTSETUP = &H40\par
Public Const PD_NOWARNING = &H80\par
Public Const PD_RETURNDC = &H100\par
Public Const PD_RETURNIC = &H200\par
Public Const PD_RETURNDEFAULT = &H400\par
Public Const PD_SHOWHELP = &H800\par
Public Const PD_ENABLEPRINTHOOK = &H1000\par
Public Const PD_ENABLESETUPHOOK = &H2000\par
Public Const PD_ENABLEPRINTTEMPLATE = &H4000\par
Public Const PD_ENABLESETUPTEMPLATE = &H8000&\par
Public Const PD_ENABLEPRINTTEMPLATEHANDLE = &H10000\par
Public Const PD_ENABLESETUPTEMPLATEHANDLE = &H20000\par
Public Const PD_USEDEVMODECOPIES = &H40000\par
Public Const PD_USEDEVMODECOPIESANDCOLLATE = &H40000\par
Public Const PD_DISABLEPRINTTOFILE = &H80000\par
Public Const PD_HIDEPRINTTOFILE = &H100000\par
Public Const PD_NONETWORKBUTTON = &H200000\par
\par
Type DEVNAMES\par
wDriverOffset As Integer\par
wDeviceOffset As Integer\par
wOutputOffset As Integer\par
wDefault As Integer\par
End Type\par
\par
Public Const DN_DEFAULTPRN = &H1\par
\par
Declare Function CommDlgExtendedError Lib "comdlg32.dll" Alias "CommDlgExtendedError" () As Long\par
\par
Public Const WM_PSD_PAGESETUPDLG = (WM_USER)\par
Public Const WM_PSD_FULLPAGERECT = (WM_USER + 1)\par
Public Const WM_PSD_MINMARGINRECT = (WM_USER + 2)\par
Public Const WM_PSD_MARGINRECT = (WM_USER + 3)\par
Public Const WM_PSD_GREEKTEXTRECT = (WM_USER + 4)\par
Public Const WM_PSD_ENVSTAMPRECT = (WM_USER + 5)\par
Public Const WM_PSD_YAFULLPAGERECT = (WM_USER + 6)\par
\par
Type PAGESETUPDLG\par
lStructSize As Long\par
hwndOwner As Long\par
hDevMode As Long\par
hDevNames As Long\par
flags As Long\par
ptPaperSize As POINTAPI\par
rtMinMargin As Rect\par
rtMargin As Rect\par
hInstance As Long\par
lCustData As Long\par
lpfnPageSetupHook As Long\par
lpfnPagePaintHook As Long\par
lpPageSetupTemplateName As String\par
hPageSetupTemplate As Long\par
End Type\par
\par
Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PAGESETUPDLG) As Long\par
\par
Public Const PSD_DEFAULTMINMARGINS = &H0 ' default (printer's)\par
Public Const PSD_INWININIINTLMEASURE = &H0 ' 1st of 4 possible\par
\par
Public Const PSD_MINMARGINS = &H1 ' use caller's\par
Public Const PSD_MARGINS = &H2 ' use caller's\par
Public Const PSD_INTHOUSANDTHSOFINCHES = &H4 ' 2nd of 4 possible\par
Public Const PSD_INHUNDREDTHSOFMILLIMETERS = &H8 ' 3rd of 4 possible\par
Public Const PSD_DISABLEMARGINS = &H10\par
Public Const PSD_DISABLEPRINTER = &H20\par
Public Const PSD_NOWARNING = &H80 ' must be same as PD_*\par
Public Const PSD_DISABLEORIENTATION = &H100\par
Public Const PSD_RETURNDEFAULT = &H400 ' must be same as PD_*\par
Public Const PSD_DISABLEPAPER = &H200\par
Public Const PSD_SHOWHELP = &H800 ' must be same as PD_*\par
Public Const PSD_ENABLEPAGESETUPHOOK = &H2000 ' must be same as PD_*\par
Public Const PSD_ENABLEPAGESETUPTEMPLATE = &H8000& ' must be same as PD_*\par
Public Const PSD_ENABLEPAGESETUPTEMPLATEHANDLE = &H20000 ' must be same as PD_*\par
Public Const PSD_ENABLEPAGEPAINTHOOK = &H40000\par
Public Const PSD_DISABLEPAGEPAINTING = &H80000\par
\par
\par
' New Windows 95 functions\par
\par
Declare Function DrawAnimatedRects Lib "user32" (ByVal hWnd As Long, ByVal idAni As Long, lprcFrom As RECT, lprcTo As RECT) As Long\par
Declare Function ChildWindowFromPointEx Lib "user32" (ByVal hWndParent As Long, ByVal ptx As Long, ByVal pty As Long, ByVal uFlags As Long) As Long\par
Declare Function TileWindows Lib "user32" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As RECT, ByVal cKids As Long, lpKids As Long) As Integer\par
Declare Function CascadeWindows Lib "user32" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As RECT, ByVal cKids As Long, lpKids As Long) As Integer\par
Declare Function DrawCaption Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long, lprc As RECT, ByVal wFlags As Long) As Long\par
Declare Function GetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long) As Long\par
Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long\par
Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName As String, ByVal lpWindowName As String) As Long\par
Declare Function GetClassInfoEx Lib "user32" Alias "GetClassInfoExA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClassEx As WNDCLASSEX) As Long\par
Declare Function SetWindowContextHelpId Lib "user32" (ByVal hWnd As Long, ByVal dwContextHelpId As Long) As Long\par
Declare Function GetWindowContextHelpId Lib "user32" (ByVal hWnd As Long) As Long\par
Declare Function ShowWindowAsync Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long\par
\par
' Late Additions\par
\par
Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer\par
Declare Function SetServiceBits Lib "advapi32.dll" Alias "SetServiceBits" (ByVal hServiceStatus As Long, ByVal dwServiceBits As Long, ByVal bSetBitsOn As Long, ByVal bUpdateImmediately As Long) As Long\par
Declare Function CopyLZFile Lib "lz32.dll" Alias "CopyLZFile" (ByVal n1 As Long, ByVal n2 As Long) As Long\par
Declare Function LZStart Lib "lz32.dll" Alias "LZStart" () As Long\par
Declare Sub LZDone Lib "lz32.dll" Alias "LZDone" ()\par
Declare Function mciGetYieldProc Lib "winmm.dll" Alias "mciGetYieldProc" (ByVal mciId As Long, pdwYieldData As Long) As Long\par
Declare Function mciSetYieldProc Lib "winmm.dll" Alias "mciSetYieldProc" (ByVal mciId As Long, ByVal fpYieldProc As Long, ByVal dwYieldData As Long) As Long\par
Declare Function midiOutGetNumDevs Lib "winmm.dll" Alias "midiOutGetNumDevs" () As Integer\par
Declare Function mmioInstallIOProcA Lib "winmm.dll" Alias "mmioInstallIOProcA" (ByVal fccIOProc As Long, ByVal pIOProc As Long, ByVal dwFlags As Long) As Long\par
Declare Function CommandLineToArgv Lib "shell32" Alias "CommandLineToArgvW" (ByVal lpCmdLine As String, pNumArgs As Integer) As Long\par
Declare Function IsTextUnicode Lib "advapi32.dll" Alias "IsTextUnicode" (lpBuffer As Any, ByVal cb As Long, lpi As Long) As Long\par
Declare Function NotifyChangeEventLog Lib "advapi32.dll" Alias "NotifyChangeEventLog" (ByVal hEventLog As Long, ByVal hEvent As Long) As Long\par
Declare Function SetThreadToken Lib "advapi32.dll" Alias "SetThreadToken" (Thread As Long, ByVal Token As Long) As Long\par
\par
Type COMMCONFIG\par
dwSize As Long\par
wVersion As Integer\par
wReserved As Integer\par
dcbx As DCB\par
dwProviderSubType As Long\par
dwProviderOffset As Long\par
dwProviderSize As Long\par
wcProviderData As Byte\par
End Type\par
\par
Declare Function CommConfigDialog Lib "kernel32" Alias "CommConfigDialogA" (ByVal lpszName As String, ByVal hWnd As Long, lpCC As COMMCONFIG) As Long\par
Declare Function CreateIoCompletionPort Lib "kernel32" Alias "CreateIoCompletionPort" (ByVal FileHandle As Long, ByVal ExistingCompletionPort As Long, ByVal CompletionKey As Long, ByVal NumberOfConcurrentThreads As Long) As Long\par
Declare Function DisableThreadLibraryCalls Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule As Long) As Long\par
Declare Function EnumResourceLanguages Lib "kernel32" Alias "EnumResourceLanguagesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumResourceNames Lib "kernel32" Alias "EnumResourceNamesA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumResourceTypes Lib "kernel32" Alias "EnumResourceTypesA" (ByVal hModule As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function FreeEnvironmentStrings Lib "kernel32" Alias "FreeEnvironmentStringsA" (ByVal lpsz As Long) As Long\par
\par
Declare Sub FreeLibraryAndExitThread Lib "kernel32" Alias "FreeLibraryAndExitThread" (ByVal hLibModule As Long, ByVal dwExitCode As Long)\par
Declare Function FreeResource Lib "kernel32" Alias "FreeResource" (ByVal hResData As Long) As Long\par
Declare Function GetCommConfig Lib "kernel32" Alias "GetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, lpdwSize As Long) As Long\par
Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long\par
Declare Function GetDefaultCommConfig Lib "kernel32" Alias "GetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, lpdwSize As Long) As Long\par
Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long\par
Declare Function GetProcessHeaps Lib "kernel32" Alias "GetProcessHeaps" (ByVal NumberOfHeaps As Long, ProcessHeaps As Long) As Long\par
Declare Function GetProcessWorkingSetSize Lib "kernel32" Alias "GetProcessWorkingSetSize" (ByVal hProcess As Long, lpMinimumWorkingSetSize As Long, lpMaximumWorkingSetSize As Long) As Long\par
Declare Function GetQueuedCompletionStatus Lib "kernel32" Alias "GetQueuedCompletionStatus" (ByVal CompletionPort As Long, lpNumberOfBytesTransferred As Long, lpCompletionKey As Long, lpOverlapped As Long, ByVal dwMilliseconds As Long) As Long\par
Declare Function GetSystemTimeAdjustment Lib "kernel32" Alias "GetSystemTimeAdjustment" (lpTimeAdjustment As Long, lpTimeIncrement As Long, lpTimeAdjustmentDisabled As Long) As Long\par
\par
Declare Function GlobalCompact Lib "kernel32" Alias "GlobalCompact" (ByVal dwMinFree As Long) As Long\par
Declare Sub GlobalFix Lib "kernel32" Alias "GlobalFix" (ByVal hMem As Long)\par
Declare Sub GlobalUnfix Lib "kernel32" Alias "GlobalUnfix" (ByVal hMem As Long)\par
Declare Function GlobalWire Lib "kernel32" Alias "GlobalWire" (ByVal hMem As Long) As Long\par
Declare Function GlobalUnWire Lib "kernel32" Alias "GlobalUnWire" (ByVal hMem As Long) As Long\par
\par
Declare Function IsBadCodePtr Lib "kernel32" Alias "IsBadCodePtr" (ByVal lpfn As Long) As Long\par
Declare Function LocalCompact Lib "kernel32" Alias "LocalCompact" (ByVal uMinFree As Long) As Long\par
Declare Function LocalShrink Lib "kernel32" Alias "LocalShrink" (ByVal hMem As Long, ByVal cbNewSize As Long) As Long\par
Declare Function ReadFileEx Lib "kernel32" Alias "ReadFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long\par
\par
Declare Function SetCommConfig Lib "kernel32" Alias "SetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long\par
Declare Function SetDefaultCommConfig Lib "kernel32" Alias "SetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long\par
Declare Sub SetFileApisToANSI Lib "kernel32" Alias "SetFileApisToANSI" ()\par
Declare Function SetHandleInformation Lib "kernel32" Alias "SetHandleInformation" (ByVal hObject As Long, ByVal dwMask As Long, ByVal dwFlags As Long) As Long\par
Declare Function SetProcessWorkingSetSize Lib "kernel32" Alias "SetProcessWorkingSetSize" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Long\par
\par
Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long\par
Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As String, ByVal iMaxLength As Long) As Long\par
Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long\par
Declare Function SetSystemTimeAdjustment Lib "kernel32" Alias "SetSystemTimeAdjustment" (ByVal dwTimeAdjustment As Long, ByVal bTimeAdjustmentDisabled As Long) As Long\par
Declare Function SetThreadAffinityMask Lib "kernel32" Alias "SetThreadAffinityMask" (ByVal hThread As Long, ByVal dwThreadAffinityMask As Long) As Long\par
Declare Function SetUnhandledExceptionFilter Lib "kernel32" Alias "SetUnhandledExceptionFilter" (ByVal lpTopLevelExceptionFilter As Long) As Long\par
Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" (lpTimeZoneInformation As TIME_ZONE_INFORMATION, lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long\par
Declare Function WriteFileEx Lib "kernel32" Alias "WriteFileEx" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpOverlapped As OVERLAPPED, ByVal lpCompletionRoutine As Long) As Long\par
\par
Type PIXELFORMATDESCRIPTOR\par
nSize As Integer\par
nVersion As Integer\par
dwFlags As Long\par
iPixelType As Byte\par
cColorBits As Byte\par
cRedBits As Byte\par
cRedShift As Byte\par
cGreenBits As Byte\par
cGreenShift As Byte\par
cBlueBits As Byte\par
cBlueShift As Byte\par
cAlphaBits As Byte\par
cAlphaShift As Byte\par
cAccumBits As Byte\par
cAccumRedBits As Byte\par
cAccumGreenBits As Byte\par
cAccumBlueBits As Byte\par
cAccumAlphaBits As Byte\par
cDepthBits As Byte\par
cStencilBits As Byte\par
cAuxBuffers As Byte\par
iLayerType As Byte\par
bReserved As Byte\par
dwLayerMask As Long\par
dwVisibleMask As Long\par
dwDamageMask As Long\par
End Type\par
\par
Declare Function ChoosePixelFormat Lib "gdi32" Alias "ChoosePixelFormat" (ByVal hDC As Long, pPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long\par
Declare Function CreateDIBSection Lib "gdi32" Alias "CreateDIBSection" (ByVal hDC As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long\par
Declare Function DescribePixelFormat Lib "gdi32" Alias "DescribePixelFormat" (ByVal hDC As Long, ByVal n As Long, ByVal un As Long, lpPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long\par
Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hDC As Long) As Long\par
Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long\par
\par
Declare Function FixBrushOrgEx Lib "gdi32" Alias "FixBrushOrgEx" (ByVal hDC As Long, ByVal n1 As Long, ByVal n2 As Long, lpPoint As POINTAPI) As Long\par
Declare Function GetBrushOrgEx Lib "gdi32" Alias "GetBrushOrgEx" (ByVal hDC As Long, lpPoint As POINTAPI) As Long\par
Declare Function GetDIBColorTable Lib "gdi32" Alias "GetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pRGBQuad As RGBQUAD) As Long\par
Declare Function GetPixelFormat Lib "gdi32" Alias "GetPixelFormat" (ByVal hDC As Long) As Long\par
Declare Function LineDDA Lib "gdi32" Alias "LineDDA" (ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal lpLineDDAProc As Long, ByVal lParam As Long) As Long\par
\par
Declare Function SetAbortProc Lib "gdi32" Alias "SetAbortProc" (ByVal hDC As Long, ByVal lpAbortProc As Long) As Long\par
Declare Function SetDIBColorTable Lib "gdi32" Alias "SetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long\par
Declare Function SetPixelFormat Lib "gdi32" Alias "SetPixelFormat" (ByVal hDC As Long, ByVal n As Long, pcPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long\par
Declare Function SwapBuffers Lib "gdi32" Alias "SwapBuffers" (ByVal hDC As Long) As Long\par
Declare Function EnumCalendarInfo Lib "kernel32" Alias "EnumCalendarInfoA" (ByVal lpCalInfoEnumProc As Long, ByVal Locale As Long, ByVal Calendar As Long, ByVal CalType As Long) As Long\par
Declare Function GetCurrencyFormat Lib "kernel32" Alias "GetCurrencyFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As CURRENCYFMT, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long) As Long\par
Declare Function GetCurrencyFormatBynum Lib "kernel32" Alias "GetCurrencyFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, ByVal lpFormat As Long, ByVal lpCurrencyStr As String, ByVal cchCurrency As Long) As Long\par
Declare Function GetNumberFormat Lib "kernel32" Alias "GetNumberFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, lpFormat As NUMBERFMT, ByVal lpNumberStr As String, ByVal cchNumber As Long) As Long\par
Declare Function GetNumberFormatBynum Lib "kernel32" Alias "GetNumberFormatA" (ByVal Locale As Long, ByVal dwFlags As Long, ByVal lpValue As String, ByVal lpFormat As Long, ByVal lpNumberStr As String, ByVal cchNumber As Long) As Long\par
Declare Function GetStringTypeEx Lib "kernel32" Alias "GetStringTypeExA" (ByVal Locale As Long, ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long\par
Declare Function GetStringTypeW Lib "kernel32" Alias "GetStringTypeW" (ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long\par
Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long\par
\par
Declare Function DeletePrinter Lib "winspool.drv" Alias "DeletePrinter" (ByVal hPrinter As Long) As Long\par
Declare Function FindClosePrinterChangeNotification Lib "winspool.drv" Alias "FindClosePrinterChangeNotification" (ByVal hChange As Long) As Long\par
Declare Function FindFirstPrinterChangeNotification Lib "winspool.drv" Alias "FindFirstPrinterChangeNotification" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, pPrinterNotifyOptions As Byte) As Long\par
Declare Function FindNextPrinterChangeNotification Lib "winspool.drv" Alias "FindNextPrinterChangeNotification" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As Long, ppPrinterNotifyInfo As Long) As Long\par
Declare Function FreePrinterNotifyInfo Lib "winspool.drv" (ByVal addr As Long) As Long\par
Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Byte, ByVal cbBuf As Long, pcbNeeded As Long) As Long\par
Declare Function SetPrinter Lib "winspool.drv" Alias "SetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Byte, ByVal Command As Long) As Long\par
\par
Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long\par
Declare Function ChangeMenu Lib "user32" Alias "ChangeMenuA" (ByVal hMenu As Long, ByVal cmd As Long, ByVal lpszNewItem As String, ByVal cmdInsert As Long, ByVal flags As Long) As Long\par
Declare Function CheckMenuRadioItem Lib "user32" Alias "CheckMenuRadioItem" (ByVal hMenu As Long, ByVal un1 As Long, ByVal un2 As Long, ByVal un3 As Long, ByVal un4 As Long) As Long\par
Declare Function CloseDesktop Lib "user32" Alias "CloseDesktop" (ByVal hDesktop As Long) As Long\par
Declare Function CloseWindowStation Lib "user32" Alias "CloseWindowStation" (ByVal hWinSta As Long) As Long\par
\par
Declare Function CopyImage Lib "user32" Alias "CopyImage" (ByVal handle As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long\par
Declare Function CreateDesktop Lib "user32" Alias "CreateDesktopA" (ByVal lpszDesktop As String, ByVal lpszDevice As String, pDevmode As DEVMODE, ByVal dwFlags As Long, ByVal dwDesiredAccess As Long, lpsa As SECURITY_ATTRIBUTES) As Long\par
Declare Function CreateDialogIndirectParam Lib "user32" Alias "CreateDialogIndirectParamA" (ByVal hInstance As Long, lpTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long\par
Declare Function CreateDialogParam Lib "user32" Alias "CreateDialogParamA" (ByVal hInstance As Long, ByVal lpName As String, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal lParamInit As Long) As Long\par
Declare Function DialogBoxIndirectParam Lib "user32" Alias "DialogBoxIndirectParamA" (ByVal hInstance As Long, hDialogTemplate As DLGTEMPLATE, ByVal hWndParent As Long, ByVal lpDialogFunc As Long, ByVal dwInitParam As Long) As Long\par
\par
Declare Function DragDetect Lib "user32" Alias "DragDetect" (ByVal hWnd As Long, ByVal ptx As Long, ByVal pty As Long) As Long\par
Declare Function DragObject Lib "user32" Alias "DragObject" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal un As Long, ByVal dw As Long, ByVal hCursor As Long) As Long\par
Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long\par
Declare Function DrawFrameControl Lib "user32" Alias "DrawFrameControl" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long\par
Declare Function DrawIconEx Lib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long\par
Declare Function DrawState Lib "user32" Alias "DrawStateA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpDrawStateProc As Long, ByVal lParam As Long, ByVal wParam As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal n3 As Long, ByVal n4 As Long, ByVal un As Long) As Long\par
\par
Type DRAWTEXTPARAMS\par
\tab cbSize As Long\par
\tab iTabLength As Long\par
\tab iLeftMargin As Long\par
\tab iRightMargin As Long\par
\tab uiLengthDrawn As Long\par
End Type\par
\par
Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, lpDrawTextParams As DRAWTEXTPARAMS) As Long\par
Declare Function EnumDesktops Lib "user32" Alias "EnumDesktopsA" (ByVal hwinsta As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumDesktopWindows Lib "user32" Alias "EnumDesktopWindows" (ByVal hDesktop As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long\par
Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
Declare Function EnumProps Lib "user32" Alias "EnumPropsA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long) As Long\par
Declare Function EnumWindowStations Lib "user32" Alias "EnumWindowStationsA" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long\par
\par
Declare Function GetKeyboardLayoutList Lib "user32" Alias "GetKeyboardLayoutList" (ByVal nBuff As Long, lpList As Long) As Long\par
Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout As Long) As Long\par
Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long\par
Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long\par
\par
Type MENUITEMINFO\par
cbSize As Long\par
fMask As Long\par
fType As Long\par
fState As Long\par
wID As Long\par
hSubMenu As Long\par
hbmpChecked As Long\par
hbmpUnchecked As Long\par
dwItemData As Long\par
dwTypeData As Long\par
cch As Long\par
End Type\par
\par
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bypos As Long, lpMenuItemInfo As MENUITEMINFO) As Long\par
Declare Function GetMenuItemRect Lib "user32" Alias "GetMenuItemRect" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long\par
\par
Type SCROLLINFO\par
\tab cbSize As Long\par
\tab fMask As Long\par
\tab nMin As Long\par
\tab nMax As Long\par
\tab nPage As Long\par
\tab nPos As Long\par
\tab nTrackPos As Long\par
End Type\par
\par
Declare Function GetScrollInfo Lib "user32" Alias "GetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long\par
Declare Function GetSysColorBrush Lib "user32" Alias "GetSysColorBrush" (ByVal nIndex As Long) As Long\par
Declare Function GetUserObjectInformation Lib "user32" Alias "GetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long, lpnLengthNeeded As Long) As Long\par
Declare Function GrayString Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As Long, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
Declare Function GrayStringByString Lib "user32" Alias "GrayStringA" (ByVal hDC As Long, ByVal hBrush As Long, ByVal lpOutputFunc As Long, ByVal lpData As String, ByVal nCount As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long\par
Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bypos As Long, lpcMenuItemInfo As MENUITEMINFO) As Long\par
Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long\par
Declare Function LoadImage Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As String, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long\par
Declare Function LoadImageBynum Lib "user32" Alias "LoadImageA" (ByVal hInst As Long, ByVal lpsz As Long, ByVal un1 As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal un2 As Long) As Long\par
Declare Function LookupIconIdFromDirectoryEx Lib "user32" Alias "LookupIconIdFromDirectoryEx" (presbits As Byte, ByVal fIcon As Long, ByVal cxDesired As Long, ByVal cyDesired As Long, ByVal Flags As Long) As Long\par
Declare Function MapVirtualKeyEx Lib "user32" Alias "MapVirtualKeyExA" (ByVal uCode As Long, ByVal uMapType As Long, ByVal dwhkl As Long) As Long\par
Declare Function MenuItemFromPoint Lib "user32" Alias "MenuItemFromPoint" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal ptx As Long, ByVal pty As Long) As Long\par
\par
Type MSGBOXPARAMS\par
\tab cbSize As Long\par
\tab hwndOwner As Long\par
\tab hInstance As Long\par
\tab lpszText As String\par
\tab lpszCaption As String\par
\tab dwStyle As Long\par
\tab lpszIcon As String\par
\tab dwContextHelpId As Long\par
\tab lpfnMsgBoxCallback As Long\par
\tab dwLanguageId As Long\par
End Type\par
\par
Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long\par
Declare Function OpenDesktop Lib "user32" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As Long, ByVal dwDesiredAccess As Long) As Long\par
Declare Function OpenInputDesktop Lib "user32" Alias "OpenInputDesktop" (ByVal dwFlags As Long, ByVal fInherit As Long, ByVal dwDesiredAccess As Long) As Long\par
Declare Function OpenWindowStation Lib "user32" Alias "OpenWindowStationA" (ByVal lpszWinSta As String, ByVal fInherit As Long, ByVal dwDesiredAccess As Long) As Long\par
Declare Function PaintDesktop Lib "user32" Alias "PaintDesktop" (ByVal hdc As Long) As Long\par
\par
\par
Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" (pcWndClassEx As WNDCLASSEX) As Integer\par
Declare Function SetMenuContextHelpId Lib "user32" Alias "SetMenuContextHelpId" (ByVal hMenu As Long, ByVal dw As Long) As Long\par
Declare Function SetMenuDefaultItem Lib "user32" Alias "SetMenuDefaultItem" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long\par
Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bypos As Long, lpcMenuItemInfo As MENUITEMINFO) As Long\par
Declare Function SetMessageExtraInfo Lib "user32" Alias "SetMessageExtraInfo" (ByVal lParam As Long) As Long\par
Declare Function SetMessageQueue Lib "user32" Alias "SetMessageQueue" (ByVal cMessagesMax As Long) As Long\par
Declare Function SetProcessWindowStation Lib "user32" Alias "SetProcessWindowStation" (ByVal hWinSta As Long) As Long\par
Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpcScrollInfo As SCROLLINFO, ByVal bool As Long) As Long\par
Declare Function SetSystemCursor Lib "user32" Alias "SetSystemCursor" (ByVal hcur As Long, ByVal id As Long) As Long\par
Declare Function SetThreadDesktop Lib "user32" Alias "SetThreadDesktop" (ByVal hDesktop As Long) As Long\par
Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long\par
Declare Function SetUserObjectInformation Lib "user32" Alias "SetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long) As Long\par
Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByVal pfnFilterProc As Long) As Long\par
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long\par
Declare Function SwitchDesktop Lib "user32" Alias "SwitchDesktop" (ByVal hDesktop As Long) As Long\par
Declare Function ToAsciiEx Lib "user32" Alias "ToAsciiEx" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpKeyState As Byte, lpChar As Integer, ByVal uFlags As Long, ByVal dwhkl As Long) As Long\par
\par
Type TPMPARAMS\par
cbSize As Long\par
rcExclude As Rect\par
End Type\par
\par
Declare Function TrackPopupMenuEx Lib "user32" Alias "TrackPopupMenuEx" (ByVal hMenu As Long, ByVal un As Long, ByVal n1 As Long, ByVal n2 As Long, ByVal hWnd As Long, lpTPMParams As TPMPARAMS) As Long\par
Declare Function UnhookWindowsHook Lib "user32" Alias "UnhookWindowsHook" (ByVal nCode As Long, ByVal pfnFilterProc As Long) As Long\par
Declare Function VkKeyScanEx Lib "user32" Alias "VkKeyScanExA" (ByVal ch As Byte, ByVal dwhkl As Long) As Integer\par
Declare Function WNetGetUniversalName Lib "mpr.dll" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long\par
\par
' New constants\par
Public Const ANTIALIASED_QUALITY = 4\par
Public Const BDR_INNER = &HC\par
Public Const BDR_OUTER = &H3\par
Public Const BDR_RAISED = &H5\par
Public Const BDR_RAISEDINNER = &H4\par
Public Const BDR_RAISEDOUTER = &H1\par
Public Const BDR_SUNKEN = &HA\par
Public Const BDR_SUNKENINNER = &H8\par
Public Const BDR_SUNKENOUTER = &H2\par
Public Const BF_ADJUST = &H2000\par
Public Const BF_BOTTOM = &H8\par
Public Const BF_BOTTOMLEFT = &H9\par
Public Const BF_BOTTOMRIGHT = &HC\par
Public Const BF_DIAGONAL = &H10\par
Public Const BF_FLAT = &H4000\par
Public Const BF_LEFT = &H1\par
Public Const BF_MIDDLE = &H800\par
Public Const BF_MONO = &H8000&\par
Public Const BF_RECT = &HF\par
Public Const BF_RIGHT = &H4\par
Public Const BF_SOFT = &H1000\par
Public Const BF_TOP = &H2\par
Public Const BF_TOPLEFT = &H3\par
Public Const BF_TOPRIGHT = &H6\par
Public Const BM_CLICK = &HF5\par
Public Const BM_GETIMAGE = &HF6\par
Public Const BM_SETIMAGE = &HF7\par
Public Const BN_DBLCLK = BN_DOUBLECLICKED\par
Public Const BN_KILLFOCUS = 7\par
Public Const BN_PUSHED = BN_HILITE\par
Public Const BN_SETFOCUS = 6\par
Public Const BN_UNPUSHED = BN_UNHILITE\par
Public Const BROADCAST_QUERY_DENY = &H424D5144\par
Public Const BSF_FLUSHDISK = &H4\par
Public Const BSF_FORCEIFHUNG = &H20\par
Public Const BSF_IGNORECURRENTTASK = &H2\par
Public Const BSF_NOHANG = &H8\par
Public Const BSF_NOTIMEOUTIFNOTHUNG = &H40\par
Public Const BSF_POSTMESSAGE = &H10\par
Public Const BSF_QUERY = &H1\par
Public Const BSM_ALLCOMPONENTS = &H0\par
Public Const BSM_APPLICATIONS = &H8\par
Public Const BSM_INSTALLABLEDRIVERS = &H4\par
Public Const BSM_NETDRIVER = &H2\par
Public Const BSM_VXDS = &H1\par
Public Const BST_CHECKED = &H1\par
Public Const BST_FOCUS = &H8\par
Public Const BST_INDETERMINATE = &H2\par
Public Const BST_PUSHED = &H4\par
Public Const BST_UNCHECKED = &H0\par
Public Const CB_GETDROPPEDWIDTH = &H15F\par
Public Const CB_GETHORIZONTALEXTENT = &H15D\par
Public Const CB_GETTOPINDEX = &H15B\par
Public Const CB_INITSTORAGE = &H161\par
Public Const CB_SETDROPPEDWIDTH = &H160\par
Public Const CB_SETHORIZONTALEXTENT = &H15E\par
Public Const CB_SETTOPINDEX = &H15C\par
Public Const CF_HDROP = 15\par
Public Const CF_LOCALE = 16\par
Public Const CF_MAX = 17\par
Public Const CM_IN_GAMUT = 0\par
Public Const DFCS_BUTTONPUSH = &H10\par
Public Const DFCS_ADJUSTRECT = &H2000\par
Public Const CM_OUT_OF_GAMUT = 255\par
Public Const COLOR_3DDKSHADOW = 21\par
Public Const COLOR_3DFACE = COLOR_BTNFACE\par
Public Const COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT\par
Public Const COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT\par
Public Const COLOR_3DLIGHT = 22\par
Public Const COLOR_3DSHADOW = COLOR_BTNSHADOW\par
Public Const COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT\par
Public Const COLOR_DESKTOP = COLOR_BACKGROUND\par
Public Const COLOR_INFOBK = 24\par
Public Const COLOR_INFOTEXT = 23\par
Public Const CONNECT_CURRENT_MEDIA = &H200\par
Public Const CONNECT_LOCALDRIVE = &H100\par
Public Const CONNECT_REDIRECT = &H80\par
Public Const CONNECT_REFCOUNT = &H40\par
Public Const CS_IME = &H10000\par
Public Const DBWF_LPARAMPOINTER = &H8000&\par
Public Const DC_ACTIVE = &H1\par
Public Const DC_ICON = &H4\par
Public Const DC_INBUTTON = &H10\par
Public Const DC_MANUFACTURER = 23\par
Public Const DC_MODEL = 24\par
Public Const DC_SMALLCAP = &H2\par
Public Const DC_TEXT = &H8\par
Public Const DC_CAPTION = DC_ICON Or DC_TEXT\par
Public Const DC_NC = DC_CAPTION\par
Public Const DFC_BUTTON = 4\par
Public Const DFC_CAPTION = 1\par
Public Const DFC_MENU = 2\par
Public Const DFC_SCROLL = 3\par
Public Const DFCS_BUTTON3STATE = &H8\par
Public Const DFCS_BUTTONCHECK = &H0\par
Public Const DFCS_BUTTONRADIO = &H4\par
Public Const DFCS_BUTTONRADIOIMAGE = &H1\par
Public Const DFCS_BUTTONRADIOMASK = &H2\par
Public Const DFCS_BUTTONPUSH = &H10\par
Public Const DFCS_CAPTIONCLOSE = &H0\par
Public Const DFCS_CAPTIONHELP = &H4\par
Public Const DFCS_CAPTIONMAX = &H2\par
Public Const DFCS_CAPTIONMIN = &H1\par
Public Const DFCS_CAPTIONRESTORE = &H3\par
Public Const DFCS_CHECKED = &H400\par
Public Const DFCS_FLAT = &H4000\par
Public Const DFCS_INACTIVE = &H100\par
Public Const DFCS_MENUARROW = &H0\par
Public Const DFCS_MENUARROWRIGHT = &H4\par
Public Const DFCS_MENUBULLET = &H2\par
Public Const DFCS_MENUCHECK = &H1\par
Public Const DFCS_MONO = &H8000&\par
Public Const DFCS_PUSHED = &H200\par
Public Const DFCS_SCROLLCOMBOBOX = &H5\par
Public Const DFCS_SCROLLDOWN = &H1\par
Public Const DFCS_SCROLLLEFT = &H2\par
Public Const DFCS_SCROLLRIGHT = &H3\par
Public Const DFCS_SCROLLSIZEGRIP = &H8\par
Public Const DFCS_SCROLLSIZEGRIPRIGHT = &H10\par
Public Const DFCS_SCROLLUP = &H0\par
Public Const DFCS_ADJUSTRECT = &H2000\par
\par
Public Const DI_APPBANDING = &H1\par
Public Const DM_REPOSITION = (WM_USER+2)\par
Public Const DMDITHER_ERRORDIFFUSION = 5\par
Public Const DMDITHER_RESERVED6 = 6\par
Public Const DMDITHER_RESERVED7 = 7\par
Public Const DMDITHER_RESERVED8 = 8\par
Public Const DMDITHER_RESERVED9 = 9\par
Public Const DO_DROPFILE = &H454C4946\par
Public Const DO_PRINTFILE = &H544E5250\par
Public Const DOF_DIRECTORY = &H8003&\par
Public Const DOF_DOCUMENT = &H8002&\par
Public Const DOF_EXECUTABLE = &H8001&\par
Public Const DOF_MULTIPLE = &H8004&\par
Public Const DOF_PROGMAN = &H1\par
Public Const DOF_SHELLDATA = &H2\par
Public Const DSS_DISABLED = &H20\par
Public Const DSS_MONO = &H80\par
Public Const DSS_NORMAL = &H0\par
Public Const DSS_RIGHT = &H8000&\par
Public Const DSS_UNION = &H10\par
Public Const DST_BITMAP = &H4\par
Public Const DST_COMPLEX = &H0\par
Public Const DST_ICON = &H3\par
Public Const DST_PREFIXTEXT = &H2\par
Public Const DST_TEXT = &H1\par
Public Const DT_EDITCONTROL = &H2000\par
Public Const DT_END_ELLIPSIS = &H8000&\par
Public Const DT_MODIFYSTRING = &H10000\par
Public Const DT_PATH_ELLIPSIS = &H4000\par
Public Const DT_RTLREADING = &H20000\par
Public Const DT_WORD_ELLIPSIS = &H40000\par
Public Const EC_LEFTMARGIN = &H1\par
Public Const EC_RIGHTMARGIN = &H2\par
Public Const EC_USEFONTINFO = &HFFFF\par
Public Const EDGE_BUMP = &H9&\par
Public Const EDGE_ETCHED = &H6&\par
Public Const EDGE_RAISED = &H5&\par
Public Const EDGE_SUNKEN = &HA&\par
Public Const EM_CHARFROMPOS = &HD7\par
Public Const EM_GETLIMITTEXT = &HD5\par
Public Const EM_GETMARGINS = &HD4\par
Public Const EM_POSFROMCHAR = &HD6\par
Public Const EM_SETLIMITTEXT = EM_LIMITTEXT\par
Public Const EM_SETMARGINS = &HD3\par
Public Const ETO_GLYPH_INDEX = &H10\par
Public Const ETO_RTLREADING = &H80\par
Public Const EW_EXITANDEXECAPP = &H44&\par
Public Const EW_REBOOTSYSTEM = &H43&\par
Public Const EW_RESTARTWINDOWS = &H42&\par
Public Const GCL_HICONSM = (-34)\par
Public Const GCPCLASS_POSTBOUNDLTR = &H20\par
Public Const GCPCLASS_POSTBOUNDRTL = &H10\par
Public Const GCPGLYPH_LINKAFTER = &H4000\par
Public Const GCPGLYPH_LINKBEFORE = &H8000&\par
Public Const HELP_CONTEXTMENU = &HA\par
Public Const HELP_FINDER = &HB\par
Public Const HELP_SETPOPUP_POS = &HD\par
Public Const HELP_TCARD = &H8000&\par
Public Const HELP_TCARD_DATA = &H10\par
Public Const HELP_TCARD_OTHER_CALLER = &H11\par
Public Const HELP_WM_HELP = &HC\par
Public Const HELPINFO_MENUITEM = &H2\par
Public Const HELPINFO_WINDOW = &H1\par
Public Const HKEY_CURRENT_CONFIG = &H80000005\par
Public Const HKEY_DYN_DATA = &H80000006\par
Public Const HSHELL_GETMINRECT = 5\par
Public Const HSHELL_LANGUAGE = 8\par
Public Const HSHELL_REDRAW = 6\par
Public Const HSHELL_TASKMAN = 7\par
Public Const HSHELL_WINDOWACTIVATED = 4\par
Public Const HTCLOSE = 20\par
Public Const HTHELP = 21\par
Public Const HTOBJECT = 19\par
Public Const IDC_HELP = 32651&\par
Public Const IDCLOSE = 8\par
Public Const IDH_CANCEL = 28444\par
Public Const IDH_GENERIC_HELP_BUTTON = 28442\par
Public Const IDH_HELP = 28445\par
Public Const IDH_MISSING_CONTEXT = 28441\par
Public Const IDH_NO_HELP = 28440\par
Public Const IDH_OK = 28443\par
Public Const IDHELP = 9\par
Public Const IDI_ERROR = IDI_HAND\par
Public Const IDI_INFORMATION = IDI_ASTERISK\par
Public Const IDI_WARNING = IDI_EXCLAMATION\par
Public Const IDI_WINLOGO = 32517\par
Public Const IMAGE_BITMAP = 0\par
Public Const IMAGE_ICON = 1\par
Public Const IMAGE_CURSOR = 2\par
Public Const IMAGE_ENHMETAFILE = 3\par
Public Const KLF_NOTELLSHELL = &H80\par
Public Const KLF_REPLACELANG = &H10\par
Public Const LB_INITSTORAGE = &H1A8\par
Public Const LB_ITEMFROMPOINT = &H1A9\par
Public Const LCS_CALIBRATED_RGB = &H0&\par
Public Const LCS_DEVICE_CMYK = &H2&\par
Public Const LCS_DEVICE_RGB = &H1&\par
Public Const LCS_GM_BUSINESS = &H1&\par
Public Const LCS_GM_GRAPHICS = &H2&\par
Public Const LCS_GM_IMAGES = &H4&\par
Public Const LOCALE_FONTSIGNATURE = &H58\par
Public Const LR_COLOR = &H2\par
Public Const LR_COPYDELETEORG = &H8\par
Public Const LR_COPYFROMRESOURCE = &H4000\par
Public Const LR_COPYRETURNORG = &H4\par
Public Const LR_CREATEDIBSECTION = &H2000\par
Public Const LR_DEFAULTCOLOR = &H0\par
Public Const LR_DEFAULTSIZE = &H40\par
Public Const LR_LOADFROMFILE = &H10\par
Public Const LR_LOADMAP3DCOLORS = &H1000\par
Public Const LR_LOADTRANSPARENT = &H20\par
Public Const LR_MONOCHROME = &H1\par
Public Const LR_SHARED = &H8000&\par
Public Const MB_DEFBUTTON4 = &H300&\par
Public Const MB_HELP = &H4000&\par
Public Const MB_RIGHT = &H80000\par
Public Const MB_RTLREADING = &H100000\par
Public Const MB_TOPMOST = &H40000\par
Public Const MB_USERICON = &H80&\par
Public Const METRICS_USEDEFAULT = -1\par
Public Const MEVT_COMMENT = &H82\par
Public Const MEVT_LONGMSG = &H80\par
Public Const MEVT_NOP = &H2\par
Public Const MEVT_SHORTMSG = &H0\par
Public Const MEVT_TEMPO = &H1\par
Public Const MEVT_VERSION = &H84\par
Public Const MF_DEFAULT = &H1000&\par
Public Const MF_RIGHTJUSTIFY = &H4000&\par
Public Const MFS_CHECKED = MF_CHECKED\par
Public Const MFS_DEFAULT = MF_DEFAULT\par
Public Const MFS_ENABLED = MF_ENABLED\par
Public Const MFS_GRAYED = &H3&\par
Public Const MFS_DISABLED = MFS_GRAYED\par
Public Const MFS_HILITE = MF_HILITE\par
Public Const MFS_UNCHECKED = MF_UNCHECKED\par
Public Const MFS_UNHILITE = MF_UNHILITE\par
Public Const MFT_BITMAP = MF_BITMAP\par
Public Const MFT_MENUBARBREAK = MF_MENUBARBREAK\par
Public Const MFT_MENUBREAK = MF_MENUBREAK\par
Public Const MFT_OWNERDRAW = MF_OWNERDRAW\par
Public Const MFT_RADIOCHECK = &H200&\par
Public Const MFT_RIGHTJUSTIFY = MF_RIGHTJUSTIFY\par
Public Const MFT_RIGHTORDER = &H2000&\par
Public Const MFT_SEPARATOR = MF_SEPARATOR\par
Public Const MFT_STRING = MF_STRING\par
Public Const MIIM_CHECKMARKS = &H8\par
Public Const MIIM_DATA = &H20\par
Public Const MIIM_ID = &H2\par
Public Const MIIM_STATE = &H1\par
Public Const MIIM_SUBMENU = &H4\par
Public Const MIIM_TYPE = &H10\par
Public Const MNC_CLOSE = 1\par
Public Const MNC_EXECUTE = 2\par
Public Const MNC_IGNORE = 0\par
Public Const MNC_SELECT = 3\par
Public Const NF_QUERY = 3\par
Public Const NF_REQUERY = 4\par
Public Const NFR_ANSI = 1\par
Public Const NFR_UNICODE = 2\par
Public Const NONANTIALIASED_QUALITY = 3\par
Public Const OCR_APPSTARTING = 32650\par
Public Const ODS_COMBOBOXEDIT = &H1000\par
Public Const ODS_DEFAULT = &H20\par
Public Const ODT_STATIC = 5\par
Public Const OIC_ERROR = OIC_HAND\par
Public Const OIC_INFORMATION = OIC_NOTE\par
Public Const OIC_WARNING = OIC_BANG\par
Public Const OIC_WINLOGO = 32517\par
Public Const PRF_CHECKVISIBLE = &H1&\par
Public Const PRF_CHILDREN = &H10&\par
Public Const PRF_CLIENT = &H4&\par
Public Const PRF_ERASEBKGND = &H8&\par
Public Const PRF_NONCLIENT = &H2&\par
Public Const PRF_OWNED = &H20&\par
Public Const PRINTER_STATUS_POWER_SAVE = &H1000000\par
Public Const PROVIDER_KEEPS_VALUE_LENGTH = &H1\par
Public Const PSI_APPLY = &H3&\par
Public Const PSI_CHANGED = &H1&\par
Public Const PSI_GETSIBLINGS = &H4&\par
Public Const PSI_GUISTART = &H2&\par
Public Const PSI_HASHELP = &H5&\par
Public Const PSI_HELP = &H6&\par
Public Const PSI_KILLACTIVE = &H2&\par
Public Const PSI_REBOOT = &H3&\par
Public Const PSI_RESET = &H4&\par
Public Const PSI_SETACTIVE = &H1&\par
Public Const PSM_PAGEINFO = (WM_USER+100)\par
Public Const PSM_SHEETINFO = (WM_USER+101)\par
Public Const RES_CURSOR = 2\par
Public Const RES_ICON = 1\par
Public Const RESOURCE_CONTEXT = &H5\par
Public Const RESOURCE_RECENT = &H4\par
Public Const RESOURCEDISPLAYTYPE_DIRECTORY = &H9\par
Public Const RESOURCEDISPLAYTYPE_NETWORK = &H6\par
Public Const RESOURCEDISPLAYTYPE_ROOT = &H7\par
Public Const RESOURCEDISPLAYTYPE_SHAREADMIN = &H8\par
Public Const RESOURCETYPE_RESERVED = &H8\par
Public Const RESOURCEUSAGE_ALL = RESOURCEUSAGE_CONNECTABLEOrRESOURCEUSAGE_CONTAINER\par
Public Const RESOURCEUSAGE_NOLOCALDEVICE = &H4\par
Public Const RESOURCEUSAGE_SIBLING = &H8\par
Public Const RT_PLUGPLAY = 19\par
Public Const RT_VXD = 20\par
Public Const SBM_GETSCROLLINFO = &HEA\par
Public Const SBM_SETSCROLLINFO = &HE9\par
Public Const SC_CONTEXTHELP = &HF180\par
Public Const SC_DEFAULT = &HF160\par
Public Const SC_MONITORPOWER = &HF170\par
Public Const SC_SEPARATOR = &HF00F\par
Public Const SEE_MASK_UNICODE = &H10000\par
Public Const SIF_DISABLENOSCROLL = &H8\par
Public Const SIF_PAGE = &H2\par
Public Const SIF_POS = &H4\par
Public Const SIF_RANGE = &H1\par
Public Const SIF_TRACKPOS = &H10\par
Public Const SIF_ALL = SIF_RANGE Or SIF_PAGE Or SIF_POS Or SIF_TRACKPOS\par
\par
Public Const STARTF_USEHOTKEY = &H200\par
Public Const STN_CLICKED = 0\par
Public Const STN_DBLCLK = 1\par
Public Const STN_DISABLE = 3\par
Public Const STN_ENABLE = 2\par
Public Const SWP_ASYNCWINDOWPOS = &H4000\par
Public Const SWP_DEFERERASE = &H2000\par
Public Const TA_RTLREADING = 256\par
Public Const TPM_BOTTOMALIGN = &H20&\par
Public Const TPM_HORIZONTAL = &H0&\par
Public Const TPM_NONOTIFY = &H80&\par
Public Const TPM_RETURNCMD = &H100&\par
Public Const TPM_TOPALIGN = &H0&\par
Public Const TPM_VCENTERALIGN = &H10&\par
Public Const TPM_VERTICAL = &H40&\par
Public Const WH_CALLWNDPROCRET = 12\par
Public Const WM_AFXFIRST = &H360\par
Public Const WM_AFXLAST = &H37F\par
Public Const WM_APP = &H8000&\par
Public Const WM_CAPTURECHANGED = &H215\par
Public Const WM_CONTEXTMENU = &H7B\par
Public Const WM_DEVICECHANGE = &H219\par
Public Const WM_DISPLAYCHANGE = &H7E\par
Public Const WM_GETICON = &H7F\par
Public Const WM_HANDHELDFIRST = &H358\par
Public Const WM_HANDHELDLAST = &H35F\par
Public Const WM_HELP = &H53\par
Public Const WM_INPUTLANGCHANGE = &H51\par
Public Const WM_INPUTLANGCHANGEREQUEST = &H50\par
Public Const WM_MOVING = &H216\par
Public Const WM_NEXTMENU = &H213\par
Public Const WM_NOTIFY = &H4E\par
Public Const WM_NOTIFYFORMAT = &H55\par
Public Const WM_POWERBROADCAST = &H218\par
Public Const WM_PRINT = &H317\par
Public Const WM_PRINTCLIENT = &H318\par
Public Const WM_SETICON = &H80\par
Public Const WM_SETTINGCHANGE = &H1A\par
Public Const WM_SIZING = &H214\par
Public Const WM_STYLECHANGED = &H7D\par
Public Const WM_STYLECHANGING = &H7C\par
Public Const WM_TCARD = &H52\par
Public Const WM_USERCHANGED = &H54\par
Public Const WMSZ_BOTTOM = 6\par
Public Const WMSZ_BOTTOMLEFT = 7\par
Public Const WMSZ_BOTTOMRIGHT = 8\par
Public Const WMSZ_LEFT = 1\par
Public Const WMSZ_RIGHT = 2\par
Public Const WMSZ_TOP = 3\par
Public Const WMSZ_TOPLEFT = 4\par
Public Const WMSZ_TOPRIGHT = 5\par
Public Const WN_NO_MORE_DEVICES = ERROR_NO_MORE_DEVICES\par
Public Const WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED\par
Public Const WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED\par
Public Const WN_NOT_LOGGED_ON = ERROR_NOT_LOGGED_ON\par
Public Const WN_NOT_VALIDATED = ERROR_NO_LOGON_SERVERS\par
Public Const WNCON_DYNAMIC = &H8\par
Public Const WNCON_FORNETCARD = &H1\par
Public Const WNCON_NOTROUTED = &H2\par
Public Const WNCON_SLOWLINK = &H4\par
Public Const WNFMT_ABBREVIATED = &H2\par
Public Const WNFMT_CONNECTION = &H20\par
Public Const WNFMT_INENUM = &H10\par
Public Const WNFMT_MULTILINE = &H1\par
Public Const WS_EX_APPWINDOW = &H40000\par
Public Const WS_EX_CLIENTEDGE = &H200&\par
Public Const WS_EX_CONTEXTHELP = &H400&\par
Public Const WS_EX_CONTROLPARENT = &H10000\par
Public Const WS_EX_LEFT = &H0&\par
Public Const WS_EX_LEFTSCROLLBAR = &H4000&\par
Public Const WS_EX_LTRREADING = &H0&\par
Public Const WS_EX_MDICHILD = &H40&\par
Public Const WS_EX_RIGHT = &H1000&\par
Public Const WS_EX_RIGHTSCROLLBAR = &H0&\par
Public Const WS_EX_RTLREADING = &H2000&\par
Public Const WS_EX_STATICEDGE = &H20000\par
Public Const WS_EX_TOOLWINDOW = &H80&\par
Public Const WS_EX_WINDOWEDGE = &H100&\par
\par
Public Const PROCESSOR_INTEL_386 = 386\par
Public Const PROCESSOR_INTEL_486 = 486\par
Public Const PROCESSOR_INTEL_PENTIUM = 586\par
Public Const PROCESSOR_MIPS_R4000 = 4000\par
Public Const PROCESSOR_ALPHA_21064 = 21064\par
\par
Public Const PROCESSOR_ARCHITECTURE_INTEL = 0\par
Public Const PROCESSOR_ARCHITECTURE_MIPS = 1\par
Public Const PROCESSOR_ARCHITECTURE_ALPHA = 2\par
Public Const PROCESSOR_ARCHITECTURE_PPC = 3\par
Public Const PROCESSOR_ARCHITECTURE_UNKNOWN = &HFFFF\par
\par
Public Const LCID_INSTALLED = 1\par
Public Const LCID_SUPPORTED = 2\par
\par
Public Const CP_INSTALLED = 1\par
Public Const CP_SUPPORTED = 2\par
Public Const MAX_COMPUTERNAME_LENGTH = 15\par
\par
' Specifies how Windows 95 arranges minimized windows\par
' These constants specify the start location\par
Public Const ARW_BOTTOMLEFT = 0&\tab ' From bottom left\par
Public Const ARW_BOTTOMRIGHT= 1&\tab ' From bottom right\par
Public Const ARW_TOPLEFT = 2&\tab\tab ' From top left\par
Public Const ARW_TOPRIGHT = 3&\tab\tab ' From top right\par
Public Const ARW_STARTMASK = 3&\par
Public Const ARW_STARTRIGHT = 1&\par
Public Const ARW_STARTTOP = 2&\par
\par
' These constants specify the direction to continue in\par
Public Const ARW_LEFT = 0&\par
Public Const ARW_RIGHT = 0&\par
Public Const ARW_UP = 4&\par
Public Const ARW_DOWN = 4&\par
Public Const ARW_HIDE = 8&\tab\tab\tab ' Hides minimized windows (moves them off screen)\par
Public Const ARW_VALID = &HF&\tab\tab ' Mask of valid arrows\par
\par
Public Const TIME_ZONE_ID_INVALID = &Hffffffff&\par
Public Const TIME_ZONE_ID_UNKNOWN = 0\par
Public Const TIME_ZONE_ID_STANDARD = 1\par
Public Const TIME_ZONE_ID_DAYLIGHT = 2\par
\par
'//////////////////////////////////////////////////////////////////////\par
' //\par
' Registry API Constants //\par
' //\par
' //////////////////////////////////////////////////////////////////////\par
\par
' Reg Data Types...\par
Public Const REG_NONE = 0 ' No value type\par
Public Const REG_SZ = 1 ' Unicode nul terminated string\par
Public Const REG_EXPAND_SZ = 2 ' Unicode nul terminated string\par
Public Const REG_BINARY = 3 ' Free form binary\par
Public Const REG_DWORD = 4 ' 32-bit number\par
Public Const REG_DWORD_LITTLE_ENDIAN = 4 ' 32-bit number (same as REG_DWORD)\par
Public Const REG_DWORD_BIG_ENDIAN = 5 ' 32-bit number\par
Public Const REG_LINK = 6 ' Symbolic Link (unicode)\par
Public Const REG_MULTI_SZ = 7 ' Multiple Unicode strings\par
Public Const REG_RESOURCE_LIST = 8 ' Resource list in the resource map\par
Public Const REG_FULL_RESOURCE_DESCRIPTOR = 9 ' Resource list in the hardware description\par
Public Const REG_RESOURCE_REQUIREMENTS_LIST = 10\par
Public Const REG_CREATED_NEW_KEY = &H1 ' New Registry Key created\par
Public Const REG_OPENED_EXISTING_KEY = &H2 ' Existing Key opened\par
Public Const REG_WHOLE_HIVE_VOLATILE = &H1 ' Restore whole hive volatile\par
Public Const REG_REFRESH_HIVE = &H2 ' Unwind changes to last flush\par
Public Const REG_NOTIFY_CHANGE_NAME = &H1 ' Create or delete (child)\par
Public Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2\par
Public Const REG_NOTIFY_CHANGE_LAST_SET = &H4 ' Time stamp\par
Public Const REG_NOTIFY_CHANGE_SECURITY = &H8\par
Public Const REG_LEGAL_CHANGE_FILTER = (REG_NOTIFY_CHANGE_NAME Or REG_NOTIFY_CHANGE_ATTRIBUTES Or REG_NOTIFY_CHANGE_LAST_SET Or REG_NOTIFY_CHANGE_SECURITY)\par
\par
' Reg Create Type Values...\par
Public Const REG_OPTION_RESERVED = 0 ' Parameter is reserved\par
Public Const REG_OPTION_NON_VOLATILE = 0 ' Key is preserved when system is rebooted\par
Public Const REG_OPTION_VOLATILE = 1 ' Key is not preserved when system is rebooted\par
Public Const REG_OPTION_CREATE_LINK = 2 ' Created key is a symbolic link\par
Public Const REG_OPTION_BACKUP_RESTORE = 4 ' open for backup or restore\par
Public Const REG_LEGAL_OPTION = (REG_OPTION_RESERVED Or REG_OPTION_NON_VOLATILE Or REG_OPTION_VOLATILE Or REG_OPTION_CREATE_LINK Or REG_OPTION_BACKUP_RESTORE)\par
\par
' Reg Key Security Options\par
Public Const KEY_QUERY_VALUE = &H1\par
Public Const KEY_SET_VALUE = &H2\par
Public Const KEY_CREATE_SUB_KEY = &H4\par
Public Const KEY_ENUMERATE_SUB_KEYS = &H8\par
Public Const KEY_NOTIFY = &H10\par
Public Const KEY_CREATE_LINK = &H20\par
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))\par
Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))\par
Public Const KEY_EXECUTE = (KEY_READ)\par
Public Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))\par
\par
Public Const DI_MASK =1\par
Public Const DI_IMAGE =2\par
Public Const DI_NORMAL =3\par
Public Const DI_COMPAT =4\par
Public Const DI_DEFAULTSIZE =8\par
\par
Type PRINTER_NOTIFY_OPTIONS\par
\tab Version As Long\par
\tab Flags As Long\par
\tab Count As Long\par
\tab pTypes As Long\par
End Type\par
\par
Type PRINTER_NOTIFY_OPTIONS_TYPE\par
\tab Type As Integer\par
\tab Reserved0 As Integer\par
\tab Reserved1 As Long\par
\tab Reserved2 As Long\par
\tab Count As Long\par
\tab pFields As Long\par
End Type\par
\par
\par
Type PRINTER_NOTIFY_INFO_DATA\par
\tab Type As Integer\par
\tab Field As Integer\par
\tab Reserved As Long\par
\tab Id As Long\par
\tab Buf As Long\par
End Type\par
\par
Type PRINTER_NOTIFY_INFO\par
\tab Version As Long\par
\tab Flags As Long\par
\tab Count As Long\par
\tab aData(1) As PRINTER_NOTIFY_INFO_DATA\tab ' Varies\par
End Type\par
\par
\par
Public Const WAIT_FAILED = -1&\par
Public Const WAIT_OBJECT_0 = 0\par
Public Const WAIT_ABANDONED = &H80&\par
Public Const WAIT_ABANDONED_0 = &H80&\par
Public Const WAIT_TIMEOUT = &H102&\par
Public Const WAIT_IO_COMPLETION = &HC0&\par
Public Const STILL_ACTIVE = &H0103&\par
Public Const INFINITE = -1&\par
\par
\par
Public Const STATUS_WAIT_0 = 0\par
Public Const STATUS_ABANDONED_WAIT_0 = &H80&\par
Public Const STATUS_USER_APC = &HC0&\par
Public Const STATUS_TIMEOUT =&H102& \par
Public Const STATUS_PENDING =&H0103& \par
Public Const STATUS_SEGMENT_NOTIFICATION =&H40000005& \par
Public Const STATUS_GUARD_PAGE_VIOLATION =&H80000001& \par
Public Const STATUS_DATATYPE_MISALIGNMENT=&H80000002& \par
Public Const STATUS_BREAKPOINT =&H80000003& \par
Public Const STATUS_SINGLE_STEP =&H80000004& \par
Public Const STATUS_ACCESS_VIOLATION =&HC0000005& \par
Public Const STATUS_IN_PAGE_ERROR =&HC0000006& \par
Public Const STATUS_NO_MEMORY =&HC0000017& \par
Public Const STATUS_ILLEGAL_INSTRUCTION =&HC000001D& \par
Public Const STATUS_NONCONTINUABLE_EXCEPTION =&HC0000025& \par
Public Const STATUS_INVALID_DISPOSITION =&HC0000026& \par
Public Const STATUS_ARRAY_BOUNDS_EXCEEDED =&HC000008C& \par
Public Const STATUS_FLOAT_DENORMAL_OPERAND =&HC000008D& \par
Public Const STATUS_FLOAT_DIVIDE_BY_ZERO =&HC000008E& \par
Public Const STATUS_FLOAT_INEXACT_RESULT =&HC000008F& \par
Public Const STATUS_FLOAT_INVALID_OPERATION =&HC0000090& \par
Public Const STATUS_FLOAT_OVERFLOW =&HC0000091& \par
Public Const STATUS_FLOAT_STACK_CHECK =&HC0000092& \par
Public Const STATUS_FLOAT_UNDERFLOW =&HC0000093& \par
Public Const STATUS_INTEGER_DIVIDE_BY_ZERO =&HC0000094& \par
Public Const STATUS_INTEGER_OVERFLOW =&HC0000095& \par
Public Const STATUS_PRIVILEGED_INSTRUCTION =&HC0000096& \par
Public Const STATUS_STACK_OVERFLOW =&HC00000FD& \par
Public Const STATUS_CONTROL_C_EXIT =&HC000013A& \par
\par
\par
Public Const EXCEPTION_ACCESS_VIOLATION =&HC0000005& \par
Public Const EXCEPTION_DATATYPE_MISALIGNMENT = =&H80000002&\par
Public Const EXCEPTION_BREAKPOINT =&H80000003&\par
Public Const EXCEPTION_SINGLE_STEP =&H80000004&\par
Public Const EXCEPTION_ARRAY_BOUNDS_EXCEEDED =&HC000008C&\par
Public Const EXCEPTION_FLT_DENORMAL_OPERAND =&HC000008D&\par
Public Const EXCEPTION_FLT_DIVIDE_BY_ZERO =&HC000008E&\par
Public Const EXCEPTION_FLT_INEXACT_RESULT =&HC000008F&\par
Public Const EXCEPTION_FLT_INVALID_OPERATION =&HC0000090&\par
Public Const EXCEPTION_FLT_OVERFLOW =&HC0000091&\par
Public Const EXCEPTION_FLT_STACK_CHECK =&HC0000092&\par
Public Const EXCEPTION_FLT_UNDERFLOW =&HC0000093& \par
Public Const EXCEPTION_INT_DIVIDE_BY_ZERO =&HC0000094&\par
Public Const EXCEPTION_INT_OVERFLOW =&HC0000095&\par
Public Const EXCEPTION_PRIV_INSTRUCTION =&HC0000096&\par
Public Const EXCEPTION_IN_PAGE_ERROR =&HC0000006&\par
Public Const EXCEPTION_ILLEGAL_INSTRUCTION =&HC000001D&\par
Public Const EXCEPTION_NONCONTINUABLE_EXCEPTION =&HC0000025&\par
Public Const EXCEPTION_STACK_OVERFLOW =&HC00000FD& \par
Public Const EXCEPTION_INVALID_DISPOSITION =&HC0000026&\par
Public Const EXCEPTION_GUARD_PAGE =&H80000001&\par
Public Const CONTROL_C_EXIT =&HC000013A&\par
\par
Public Const PAGE_NOACCESS = 1& \par
Public Const PAGE_READONLY = 2& \par
Public Const PAGE_READWRITE = 4& \par
Public Const PAGE_WRITECOPY = 8&\par
Public Const PAGE_EXECUTE = &H10&\par
Public Const PAGE_EXECUTE_READ = &H20&\par
Public Const PAGE_EXECUTE_READWRITE = &H40&\par
Public Const PAGE_EXECUTE_WRITECOPY = &H80& \par
Public Const PAGE_GUARD = &H100&\par
Public Const PAGE_NOCACHE = &H200&\par
Public Const MEM_COMMIT = &H1000& \par
Public Const MEM_RESERVE = &H2000& \par
Public Const MEM_DECOMMIT = &H4000& \par
Public Const MEM_RELEASE = &H8000& \par
Public Const MEM_FREE = &H10000& \par
Public Const MEM_PRIVATE = &H20000& \par
Public Const MEM_MAPPED = &H40000& \par
Public Const MEM_TOP_DOWN = &H100000& \par
Public Const SEC_FILE = &H800000& \par
Public Const SEC_IMAGE = &H1000000& \par
Public Const SEC_RESERVE = &H4000000& \par
Public Const SEC_COMMIT = &H8000000& \par
Public Const SEC_NOCACHE = &H10000000& \par
\par
\par
Public Const PROCESS_TERMINATE = &H1\par
Public Const PROCESS_CREATE_THREAD = &H2\par
Public Const PROCESS_VM_OPERATION =&H8\par
Public Const PROCESS_VM_READ = &H10\par
Public Const PROCESS_VM_WRITE = &H20\par
Public Const PROCESS_DUP_HANDLE = &H40\par
Public Const PROCESS_CREATE_PROCESS = &H80\par
Public Const PROCESS_SET_QUOTA = &H100\par
Public Const PROCESS_SET_INFORMATION = &H200\par
Public Const PROCESS_QUERY_INFORMATION = &H400\par
Public Const PROCESS_ALL_ACCESS = &H1F0FFF&\par
Public Const THREAD_TERMINATE = 1\par
Public Const THREAD_SUSPEND_RESUME = 2\par
Public Const THREAD_GET_CONTEXT = 8\par
Public Const THREAD_SET_CONTEXT = &H10\par
Public Const THREAD_SET_INFORMATION = &H20\par
Public Const THREAD_QUERY_INFORMATION = &H40\par
Public Const THREAD_SET_THREAD_TOKEN = &H80\par
Public Const THREAD_IMPERSONATE = &H100\par
Public Const THREAD_DIRECT_IMPERSONATION = &H200\par
' begin_ntddk\par
\par
Public Const THREAD_ALL_ACCESS = &H1F03FF&\par
\par
Type DIBSECTION\par
dsBm As BITMAP\par
dsBmih As BITMAPINFOHEADER\par
dsBitfields(3) As Long\par
dshSection As Long\par
dsOffset As Long\par
End Type\par
\par
Type FILTERKEYS\par
cbSize As Long\par
dwFlags As Long\par
iWaitMSec As Long\par
iDelayMSec As Long\par
iRepeatMSec As Long\par
iBounceMSec As Long\par
End Type\par
\par
'----------------------------------------------------------------\par
\par
' Win IOCTL\par
\par
'----------------------------------------------------------------\par
\par
Public Const FILE_DEVICE_BEEP = &H000001\par
Public Const FILE_DEVICE_CD_ROM = &H000002\par
Public Const FILE_DEVICE_CD_ROM_FILE_SYSTEM = &H000003\par
Public Const FILE_DEVICE_CONTROLLER = &H000004\par
Public Const FILE_DEVICE_DATALINK = &H000005\par
Public Const FILE_DEVICE_DFS = &H000006\par
Public Const FILE_DEVICE_DISK = &H000007\par
Public Const FILE_DEVICE_DISK_FILE_SYSTEM = &H000008\par
Public Const FILE_DEVICE_FILE_SYSTEM = &H000009\par
Public Const FILE_DEVICE_INPORT_PORT = &H00000a\par
Public Const FILE_DEVICE_KEYBOARD = &H00000b\par
Public Const FILE_DEVICE_MAILSLOT = &H00000c\par
Public Const FILE_DEVICE_MIDI_IN = &H00000d\par
Public Const FILE_DEVICE_MIDI_OUT = &H00000e\par
Public Const FILE_DEVICE_MOUSE = &H00000f\par
Public Const FILE_DEVICE_MULTI_UNC_PROVIDER = &H000010\par
Public Const FILE_DEVICE_NAMED_PIPE = &H000011\par
Public Const FILE_DEVICE_NETWORK = &H000012\par
Public Const FILE_DEVICE_NETWORK_BROWSER = &H000013\par
Public Const FILE_DEVICE_NETWORK_FILE_SYSTEM = &H000014\par
Public Const FILE_DEVICE_NULL = &H000015\par
Public Const FILE_DEVICE_PARALLEL_PORT = &H000016\par
Public Const FILE_DEVICE_PHYSICAL_NETCARD = &H000017\par
Public Const FILE_DEVICE_PRINTER = &H000018\par
Public Const FILE_DEVICE_SCANNER = &H000019\par
Public Const FILE_DEVICE_SERIAL_MOUSE_PORT = &H00001a\par
Public Const FILE_DEVICE_SERIAL_PORT = &H00001b\par
Public Const FILE_DEVICE_SCREEN = &H00001c\par
Public Const FILE_DEVICE_SOUND = &H00001d\par
Public Const FILE_DEVICE_STREAMS = &H00001e\par
Public Const FILE_DEVICE_TAPE = &H00001f\par
Public Const FILE_DEVICE_TAPE_FILE_SYSTEM = &H000020\par
Public Const FILE_DEVICE_TRANSPORT = &H000021\par
Public Const FILE_DEVICE_UNKNOWN = &H000022\par
Public Const FILE_DEVICE_VIDEO = &H000023\par
Public Const FILE_DEVICE_VIRTUAL_DISK = &H000024\par
Public Const FILE_DEVICE_WAVE_IN = &H000025\par
Public Const FILE_DEVICE_WAVE_OUT = &H000026\par
Public Const FILE_DEVICE_8042_PORT = &H000027\par
Public Const FILE_DEVICE_NETWORK_REDIRECTOR = &H000028\par
Public Const FILE_DEVICE_BATTERY = &H000029\par
Public Const FILE_DEVICE_BUS_EXTENDER = &H00002a\par
\par
'\par
' Macro definition for defining IOCTL and FSCTL function control codes. Note\par
' that function codes 0-2047 are reserved for Microsoft Corporation, and\par
' 2048-4095 are reserved for customers.\par
'\par
\par
'#define CTL_CODE( DeviceType, Function, Method, Access ) ( \\\par
' ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) \\\par
')\par
\par
'\par
' Define the method codes for how buffers are passed for I/O and FS controls\par
'\par
\par
Public Const METHOD_BUFFERED = 0\par
Public Const METHOD_IN_DIRECT = 1\par
Public Const METHOD_OUT_DIRECT = 2\par
Public Const METHOD_NEITHER = 3\par
\par
'\par
' Define the access check value for any access\par
'\par
'\par
' The FILE_READ_ACCESS and FILE_WRITE_ACCESS constants are also defined in\par
' ntioapi.h as FILE_READ_DATA and FILE_WRITE_DATA. The values for these\par
' constants *MUST* always be in sync.\par
'\par
\par
\par
Public Const FILE_ANY_ACCESS = 0\par
Public Const FILE_READ_ACCESS = 1\par
Public Const FILE_WRITE_ACCESS = 2 \par
\par
' end_ntddk end_nthal end_ntifs\par
\par
\par
\par
'\par
' IoControlCode values for disk devices.\par
'\par
\par
Public Const IOCTL_DISK_BASE = 7\par
Public Const IOCTL_DISK_GET_DRIVE_GEOMETRY = &H70000\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_GET_PARTITION_INFO = &H74004\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_SET_PARTITION_INFO = &H7C008\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)\par
Public Const IOCTL_DISK_GET_DRIVE_LAYOUT = &H7400C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_SET_DRIVE_LAYOUT = &H7C010\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)\par
Public Const IOCTL_DISK_VERIFY = &H70014\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_FORMAT_TRACKS = &H7C018\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)\par
Public Const IOCTL_DISK_REASSIGN_BLOCKS = &H7C01C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)\par
Public Const IOCTL_DISK_PERFORMANCE = &H70020\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_IS_WRITABLE = &H70024\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_LOGGING = &H70028\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_FORMAT_TRACKS_EX = &H7002C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)\par
Public Const IOCTL_DISK_HISTOGRAM_STRUCTURE\tab = &H70030\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_HISTOGRAM_DATA\tab\tab\tab = &H70034\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_HISTOGRAM_RESET\tab\tab = &H70038\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_REQUEST_STRUCTURE\tab\tab = &H7003C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const IOCTL_DISK_REQUEST_DATA\tab\tab\tab = &H70040\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
\par
'\par
' The following device control codes are common for all class drivers. The\par
' functions codes defined here must match all of the other class drivers.\par
'\par
\par
Public Const IOCTL_DISK_CHECK_VERIFY = &H74800\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_MEDIA_REMOVAL = &H74804\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_EJECT_MEDIA = &H74808\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_LOAD_MEDIA = &H7480C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_RESERVE = &H74810\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_RELEASE = &H74814\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_FIND_NEW_DEVICES = &H74818\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)\par
Public Const IOCTL_DISK_REMOVE_DEVICE = &H7481C\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0207, METHOD_BUFFERED, FILE_READ_ACCESS)\par
\par
Public Const IOCTL_DISK_GET_MEDIA_TYPES = &H70C00\tab ' CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
\par
'\par
' Define the partition types returnable by known disk drivers.\par
'\par
\par
Public Const PARTITION_ENTRY_UNUSED = &H0 ' Entry unused\par
Public Const PARTITION_FAT_12 = &H01 ' 12-bit FAT entries\par
Public Const PARTITION_XENIX_1 = &H02 ' Xenix\par
Public Const PARTITION_XENIX_2 = &H03 ' Xenix\par
Public Const PARTITION_FAT_16 = &H04 ' 16-bit FAT entries\par
Public Const PARTITION_EXTENDED = &H05 ' Extended partition entry\par
Public Const PARTITION_HUGE = &H06 ' Huge partition MS-DOS V4\par
Public Const PARTITION_IFS = &H07 ' IFS Partition\par
Public Const PARTITION_PREP = &H41 ' PowerPC Reference Platform (PReP) Boot Partition\par
Public Const PARTITION_UNIX = &H63 ' Unix\par
\par
Public Const VALID_NTFT = &HC0 ' NTFT uses high order bits\par
\par
'\par
' The high bit of the partition type code indicates that a partition\par
' is part of an NTFT mirror or striped array.\par
'\par
\par
Public Const PARTITION_NTFT = &H80 ' NTFT partition\par
\par
'\par
' The following macro is used to determine which partitions should be\par
' assigned drive letters.\par
'\par
\par
'++\par
'\par
' BOOLEAN\par
' IsRecognizedPartition(\par
' IN DWORD PartitionType\par
' )\par
'\par
' Routine Description:\par
'\par
' This macro is used to determine to which partitions drive letters\par
' should be assigned.\par
'\par
' Arguments:\par
'\par
' PartitionType - Supplies the type of the partition being examined.\par
'\par
' Return Value:\par
'\par
' The return value is TRUE if the partition type is recognized,\par
' otherwise FALSE is returned.\par
'\par
'--\par
\par
'#define IsRecognizedPartition( PartitionType ) ( \\\par
' ((PartitionType & PARTITION_NTFT) && ((PartitionType & ~0xC0) == PARTITION_FAT_12)) || \\\par
' ((PartitionType & PARTITION_NTFT) && ((PartitionType & ~0xC0) == PARTITION_FAT_16)) || \\\par
' ((PartitionType & PARTITION_NTFT) && ((PartitionType & ~0xC0) == PARTITION_IFS)) || \\\par
' ((PartitionType & PARTITION_NTFT) && ((PartitionType & ~0xC0) == PARTITION_HUGE)) || \\\par
' ((PartitionType & ~PARTITION_NTFT) == PARTITION_FAT_12) || \\\par
' ((PartitionType & ~PARTITION_NTFT) == PARTITION_FAT_16) || \\\par
' ((PartitionType & ~PARTITION_NTFT) == PARTITION_IFS) || \\\par
' ((PartitionType & ~PARTITION_NTFT) == PARTITION_HUGE) )\par
\par
'\par
' Define the media types supported by the driver.\par
'\par
\par
'typedef enum _MEDIA_TYPE \{\par
' Unknown, ' Format is unknown\par
' F5_1Pt2_512, ' 5.25", 1.2MB, 512 bytes/sector\par
' F3_1Pt44_512, ' 3.5", 1.44MB, 512 bytes/sector\par
' F3_2Pt88_512, ' 3.5", 2.88MB, 512 bytes/sector\par
' F3_20Pt8_512, ' 3.5", 20.8MB, 512 bytes/sector\par
' F3_720_512, ' 3.5", 720KB, 512 bytes/sector\par
' F5_360_512, ' 5.25", 360KB, 512 bytes/sector\par
' F5_320_512, ' 5.25", 320KB, 512 bytes/sector\par
' F5_320_1024, ' 5.25", 320KB, 1024 bytes/sector\par
' F5_180_512, ' 5.25", 180KB, 512 bytes/sector\par
' F5_160_512, ' 5.25", 160KB, 512 bytes/sector\par
' RemovableMedia, ' Removable media other than floppy\par
' FixedMedia ' Fixed hard disk media\par
'\} MEDIA_TYPE, *PMEDIA_TYPE;\par
\par
'\par
' Define the input buffer structure for the driver, when\par
' it is called with IOCTL_DISK_FORMAT_TRACKS.\par
'\par
\par
Type FORMAT_PARAMETERS\par
MediaType As Long\par
StartCylinderNumber As Long\par
EndCylinderNumber As Long\par
StartHeadNumber As Long\par
EndHeadNumber As Long\par
End Type\par
\par
'\par
' Define the BAD_TRACK_NUMBER type. An array of elements of this type is\par
' returned by the driver on IOCTL_DISK_FORMAT_TRACKS requests, to indicate\par
' what tracks were bad during formatting. The length of that array is\par
' reported in the `Information' field of the I/O Status Block.\par
'\par
\par
'typedef WORD BAD_TRACK_NUMBER;\par
'typedef WORD *PBAD_TRACK_NUMBER;\par
\par
'\par
' Define the input buffer structure for the driver, when\par
' it is called with IOCTL_DISK_FORMAT_TRACKS_EX.\par
'\par
\par
Type FORMAT_EX_PARAMETERS\par
MediaType As Long\par
StartCylinderNumber As Long\par
EndCylinderNumber As Long\par
StartHeadNumber As Long\par
EndHeadNumber As Long\par
FormatGapLength As Integer\par
SectorsPerTrack As Integer\par
SectorNumber As Integer\par
End Type\par
\par
'\par
' The following structure is returned on an IOCTL_DISK_GET_DRIVE_GEOMETRY\par
' request and an array of them is returned on an IOCTL_DISK_GET_MEDIA_TYPES\par
' request.\par
'\par
\par
Type DISK_GEOMETRY\par
CylindersLow As Long\par
\tab CylindersHigh As Long\par
MediaType As Long\par
TracksPerCylinder As Long\par
SectorsPerTrack As Long\par
BytesPerSector As Long\par
End Type\par
\par
'\par
' The following structure is returned on an IOCTL_DISK_GET_PARTITION_INFO\par
' and an IOCTL_DISK_GET_DRIVE_LAYOUT request. It is also used in a request\par
' to change the drive layout, IOCTL_DISK_SET_DRIVE_LAYOUT.\par
'\par
\par
Type PARTITION_INFORMATION\par
StartingOffsetLow As Long\par
\tab StartingOffsetHigh As Long\par
PartitionLengthLow As Long\par
\tab PartitionLengthHigh As Long\par
HiddenSectors As Long\par
PartitionNumber As Long\par
PartitionType As Byte\par
BootIndicator As Byte\par
RecognizedPartition As Byte\par
RewritePartition As Byte\par
End Type\par
\par
\par
'\par
' The following structure is used to change the partition type of a\par
' specified disk partition using an IOCTL_DISK_SET_PARTITION_INFO\par
' request.\par
'\par
\par
Type SET_PARTITION_INFORMATION\par
PartitionType As Byte\par
End Type\par
\par
'\par
' The following structures is returned on an IOCTL_DISK_GET_DRIVE_LAYOUT\par
' request and given as input to an IOCTL_DISK_SET_DRIVE_LAYOUT request.\par
'\par
\par
Type DRIVE_LAYOUT_INFORMATION\par
PartitionCount As Long\par
Signature As Long\par
PartitionEntry(1) As PARTITION_INFORMATION\par
End Type\par
\par
'\par
' The following structure is passed in on an IOCTL_DISK_VERIFY request.\par
' The offset and length parameters are both given in bytes.\par
'\par
\par
Type VERIFY_INFORMATION\par
StartingOffsetLow As Long\par
StartingOffsetHigh As Long\par
Length As Long\par
End Type\par
\par
'\par
' The following structure is passed in on an IOCTL_DISK_REASSIGN_BLOCKS\par
' request.\par
'\par
\par
Type REASSIGN_BLOCKS\par
Reserved As Integer\par
Count As Integer\par
BlockNumber(1) As Long\par
End Type\par
\par
'\par
' IOCTL_DISK_MEDIA_REMOVAL disables the mechanism\par
' on a SCSI device that ejects media. This function\par
' may or may not be supported on SCSI devices that\par
' support removable media.\par
'\par
' TRUE means prevent media from being removed.\par
' FALSE means allow media removal.\par
'\par
\par
Type PREVENT_MEDIA_REMOVAL\par
PreventMediaRemoval As Byte\par
End Type\par
\par
'/////////////////////////////////////////////////\par
'// //\par
'// The following structures define disk performance //\par
'// statistics: specifically the locations of all the //\par
'// reads and writes which have occured on the disk. //\par
'// //\par
'// To use these structures, you must issue an IOCTL_ //\par
'// DISK_HIST_STRUCTURE (with a DISK_HISTOGRAM) to //\par
'// obtain the basic histogram information. The //\par
'// number of buckets which must allocated is part of //\par
'// this structure. Allocate the required number of //\par
'// buckets and call an IOCTL_DISK_HIST_DATA to fill //\par
'// in the data //\par
'// //\par
'///////////////////////////////////////////////////////\par
\par
Public Const HIST_NO_OF_BUCKETS\tab = 24\par
\par
Type HISTOGRAM_BUCKET\par
Reads As Long\par
Writes As Long\par
End Type\par
\par
Public Const HISTOGRAM_BUCKET_SIZE\tab = 8\tab ' sizeof(HISTOGRAM_BUCKET)\par
\par
Type DISK_HISTOGRAM\par
DiskSizeLow As Long\par
DiskSizeHigh As Long\par
StartLow As Long\par
StartHigh As Long\par
EndLow As Long\par
EndHigh As Long\par
AverageLow As Long\par
AverageHigh As Long\par
AverageReadLoq As Long\par
AverageReadHigh As Long\par
AverageWriteLow As Long\par
AverageWriteHigh As Long\par
Granularity As Long\par
Size As Long\par
ReadCount As Long\par
WriteCount As Long\par
Histogram As Long\tab ' Pointer to HISTOGRAM_BUCKET\par
End Type\par
\par
Public Const DISK_HISTOGRAM_SIZE\tab = 68\tab ' sizeof(DISK_HISTOGRAM)\par
\par
'///////////////////////////////////////////////////////\par
'// //\par
'// The following structures define disk debugging //\par
'// capabilities. The IOCTLs are directed to one of //\par
'// the two disk filter drivers. //\par
'// //\par
'// DISKPERF is a utilty for collecting disk request //\par
'// statistics. //\par
'// //\par
'// SIMBAD is a utility for injecting faults in //\par
'// IO requests to disks. //\par
'// //\par
'///////////////////////////////////////////////////////\par
\par
'\par
' The following structure is exchanged on an IOCTL_DISK_GET_PERFORMANCE\par
' request. This ioctl collects summary disk request statistics used\par
' in measuring performance.\par
'\par
\par
Type DISK_PERFORMANCE\par
BytesReadLow As Long\par
BytesReadHigh As Long\par
BytesWrittenLow As Long\par
BytesWrittenHigh As Long\par
ReadTimeLow As Long\par
ReadTimeHigh As Long\par
WriteTimeLow As Long\par
WriteTimeHigh As Long\par
ReadCount As Long\par
WriteCount As Long\par
QueueDepth As Long\par
End Type\par
\par
'\par
' This structure defines the disk logging record. When disk logging\par
' is enabled, one of these is written to an internal buffer for each\par
' disk request.\par
'\par
\par
Type DISK_RECORD\par
ByteOffsetLow As Long\par
ByteOffsetHigh As Long\par
StartTimeLow As Long\par
StartTimeHigh As Long\par
EndTimeLow As Long\par
EndTimeHigh As Long\par
VirtualAddress As Long\par
NumberOfBytes As Long\par
DeviceNumber As Byte\par
ReadRequest As Byte\par
End Type\par
\par
'\par
' The following structure is exchanged on an IOCTL_DISK_LOG request.\par
' Not all fields are valid with each function type.\par
'\par
\par
Type DISK_LOGGING\par
Function As Byte\par
BufferAddress As Long\par
BufferSize As Long\par
End Type\par
\par
'\par
' Disk logging functions\par
'\par
' Start disk logging. Only the Function and BufferSize fields are valid.\par
'\par
\par
Public Const DISK_LOGGING_START = 0\par
\par
'\par
' Stop disk logging. Only the Function field is valid.\par
'\par
\par
Public Const DISK_LOGGING_STOP = 1\par
\par
'\par
' Return disk log. All fields are valid. Data will be copied from internal\par
' buffer to buffer specified for the number of bytes requested.\par
'\par
\par
Public Const DISK_LOGGING_DUMP = 2\par
\par
'\par
' DISK BINNING\par
'\par
' DISKPERF will keep counters for IO that falls in each of these ranges.\par
' The application determines the number and size of the ranges.\par
' Joe Lin wanted me to keep it flexible as possible, for instance, IO\par
' sizes are interesting in ranges like 0-4096, 4097-16384, 16385-65536, 65537+.\par
'\par
\par
Public Const DISK_BINNING = 3\par
\par
'\par
' Bin types\par
'\par
\par
'typedef enum _BIN_TYPES \{\par
' RequestSize,\par
' RequestLocation\par
'\} BIN_TYPES;\par
\par
'\par
' Bin ranges\par
'\par
\par
Type BIN_RANGE\par
StartValueLow As Long\par
StartValueHigh As Long\par
LengthLow As Long\par
LengthHigh As Long\par
End Type\par
\par
'\par
' Bin definition\par
'\par
\par
Type PERF_BIN\par
NumberOfBins As Long\par
TypeOfBin As Long\par
BinsRanges(1) As BIN_RANGE\par
End Type\par
\par
'\par
' Bin count\par
'\par
\par
Type BIN_COUNT\par
BinRange As BIN_RANGE\par
BinCount As Long\par
End Type\par
\par
'\par
' Bin results\par
'\par
\par
Type BIN_RESULTS\par
NumberOfBins As Long\par
BinCounts(1) As BIN_COUNT\par
End Type\par
\par
\par
Public Const IOCTL_SERIAL_LSRMST_INSERT = &H1B00C4\tab ' CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)\par
\par
\par
'\par
' The following values follow the escape designator in the\par
' data stream if the LSRMST_INSERT mode has been turned on.\par
'\par
Public Const SERIAL_LSRMST_ESCAPE = 0\par
\par
'\par
' Following this value is the contents of the line status\par
' register, and then the character in the RX hardware when\par
' the line status register was encountered.\par
'\par
Public Const SERIAL_LSRMST_LSR_DATA = &H01\par
\par
'\par
' Following this value is the contents of the line status\par
' register. No error character follows\par
'\par
Public Const SERIAL_LSRMST_LSR_NODATA = &H02\par
\par
'\par
' Following this value is the contents of the modem status\par
' register.\par
'\par
Public Const SERIAL_LSRMST_MST = &H03\par
\par
Public Const FSCTL_LOCK_VOLUME =&H90018\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const FSCTL_UNLOCK_VOLUME =&H9001C\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const FSCTL_DISMOUNT_VOLUME =&H90020\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const FSCTL_MOUNT_DBLS_VOLUME =&H90034\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const FSCTL_GET_COMPRESSION =&H9003C\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15, METHOD_BUFFERED, FILE_ANY_ACCESS)\par
Public Const FSCTL_SET_COMPRESSION =&H9C040\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)\par
Public Const FSCTL_READ_COMPRESSION =&H94047\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17, METHOD_NEITHER, FILE_READ_DATA)\par
Public Const FSCTL_WRITE_COMPRESSION =&H9804B\tab ' CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18, METHOD_NEITHER, FILE_WRITE_DATA)\par
\par
\par
' Added after 6/4\par
Public Const TOKEN_ASSIGN_PRIMARY = &H1\par
Public Const TOKEN_DUPLICATE = &H2\par
Public Const TOKEN_IMPERSONATE = &H4\par
Public Const TOKEN_QUERY = &H8\par
Public Const TOKEN_QUERY_SOURCE = &H10\par
Public Const TOKEN_ADJUST_PRIVILEGES = &H20\par
Public Const TOKEN_ADJUST_GROUPS = &H40\par
Public Const TOKEN_ADJUST_DEFAULT = &H80\par
\par
Public Const TOKEN_ALL_ACCESS = &HF00FF&\par
\par
Public Const TOKEN_READ = &H20008&\par
\par
Public Const TOKEN_WRITE = &H200E0&\par
\par
Public Const TOKEN_EXECUTE = &H20000&\par
\par
Type NETINFOSTRUCT\par
cbStructure As Long\par
dwProviderVersion As Long\par
dwStatus As Long\par
dwCharacteristics As Long\par
dwHandle As Long\par
wNetType As Integer\par
dwPrintersLow As Integer\tab ' Note split due to alignment issues\par
\tab dwPrintersHigh As Integer\par
dwDrivesLow As Integer\par
\tab dwDrivesHigh As Integer\par
End Type\par
\par
Public Const NETINFO_DLL16 = 1&\par
Public Const NETINFO_DISKRED = 4& ' Provider requires disk redirections to connect\par
Public Const NETINFO_PRINTERRED = 8& ' Provider requires printer redirections to connect\par
\par
Declare Function CreateWaitableTimer Lib "kernel32" Alias "CreateWaitableTimerA" (lpTimerAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, ByVal lpName As String) As Long\par
Declare Function OpenWaitableTimer Lib "kernel32" Alias "OpenWaitableTimerA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long\par
Declare Function SetWaitableTimer Lib "kernel32" (ByVal hTimer As Long, lpDueTime As FILETIME, ByVal lPeriod As Long, ByVal pfnCompletionRoutine As Long, ByVal lpArgToCompletionRoutine As Long, ByVal fResume As Long) As Long\par
Declare Function CancelWaitableTimer Lib "kernel32" (ByVal hTimer As Long)\par
\par
\par
Public Const ERROR_NO_MORE_DEVICES = 1248&\par
Public Const ERROR_NOT_AUTHENTICATED = 1244&\par
Public Const ERROR_ALREADY_INITIALIZED = 1247&\par
Public Const ERROR_NOT_LOGGED_ON = 1245&\par
\par
' - New after VB5 1st edition\par
\par
Public Const EVENTLOG_SEQUENTIAL_READ = 1\par
Public Const EVENTLOG_SEEK_READ = 2\par
Public Const EVENTLOG_FORWARDS_READ = 4\par
Public Const EVENTLOG_BACKWARDS_READ = 8\par
\par
\par
' The types of events that can be logged.\par
\par
Public Const EVENTLOG_SUCCESS = 0\par
Public Const EVENTLOG_ERROR_TYPE = 1\par
Public Const EVENTLOG_WARNING_TYPE = 2\par
Public Const EVENTLOG_INFORMATION_TYPE = 4\par
Public Const EVENTLOG_AUDIT_SUCCESS = 8\par
Public Const EVENTLOG_AUDIT_FAILURE = &H10\par
\par
\par
' Defines for the WRITE flags used by Auditing for paired events\par
' These are not implemented in Product 1\par
\par
Public Const EVENTLOG_START_PAIRED_EVENT = 1\par
Public Const EVENTLOG_END_PAIRED_EVENT = 2\par
Public Const EVENTLOG_END_ALL_PAIRED_EVENTS = 4\par
Public Const EVENTLOG_PAIRED_EVENT_ACTIVE = 8\par
Public Const EVENTLOG_PAIRED_EVENT_INACTIVE = &H10\par
}
http://mihriutka2004.narod.ru/API32.TXT

Private Declare Sub RefToRef Lib "msvbvm60.dll" Alias "GetMem4" (ByRef SrcRef As Long, ByRef DstRef As Long)
Private Declare Sub RefFromValue Lib "msvbvm60.dll" Alias "PutMem4" (ByRef DstRef As Long, ByVal SrcValue As Long)


Комментариев нет:

Отправить комментарий