home *** CD-ROM | disk | FTP | other *** search
/ Freelog 11 / Freelog011.iso / Prog / Algo / WIN32API.txt
Text File  |  2000-05-18  |  704KB  |  15,577 lines

  1. ' ------------------------------------------------------------------------
  2. '
  3. '    WIN32API.TXT -- DΘclarations de l'API Win32 
  4. '
  5. '              Copyright (C) 1994 Microsoft Corporation
  6. '
  7. '
  8. ' Ce fichier contient uniquement les instructions Const, Type 
  9. ' et Declare pour les API Win32.
  10. '
  11. ' Vous avez le droit d'utiliser, modifier, reproduire et distribuer 
  12. ' ce fichier (et/ou toute version modifiΘe) de quelque maniΦre qui vous semble utile,
  13. ' α condition de convenir que Microsoft n'assume aucune garantie, obligation ou 
  14. ' responsabilitΘ concernant son contenu. Pour plus d'informations, consultez le manuel 
  15. ' de rΘfΘrence du programmeur de Microsoft Windows.
  16. ' Veuillez noter que les commentaires sont en anglais dans ce fichier.
  17. '
  18. ' ------------------------------------------------------------------------
  19.  
  20. ' Type definitions for Windows' basic types.
  21. Public Const ANYSIZE_ARRAY = 1
  22. Type RECT
  23.         Left As Long
  24.         Top As Long
  25.         Right As Long
  26.         Bottom As Long
  27. End Type
  28.  
  29. Type RECTL
  30.         Left As Long
  31.         Top As Long
  32.         Right As Long
  33.         Bottom As Long
  34. End Type
  35.  
  36. Type POINTAPI
  37.         x As Long
  38.         y As Long
  39. End Type
  40.  
  41. Type POINTL
  42.         x As Long
  43.         y As Long
  44. End Type
  45.  
  46. Type Size
  47.         cx As Long
  48.         cy As Long
  49. End Type
  50.  
  51. Type POINTS
  52.         x  As Integer
  53.         y  As Integer
  54. End Type
  55.  
  56. Type MSG
  57.     hwnd As Long
  58.     message As Long
  59.     wParam As Long
  60.     lParam As Long
  61.     time As Long
  62.     pt As POINTAPI
  63. End Type
  64.  
  65.  
  66. Public Const DELETE = &H10000
  67. Public Const READ_CONTROL = &H20000
  68. Public Const WRITE_DAC = &H40000
  69. Public Const WRITE_OWNER = &H80000
  70. Public Const SYNCHRONIZE = &H100000
  71.  
  72.  
  73. Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
  74. Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
  75. Public Const STANDARD_RIGHTS_EXECUTE = (READ_CONTROL)
  76. Public Const STANDARD_RIGHTS_REQUIRED = &HF0000
  77. Public Const STANDARD_RIGHTS_ALL = &H1F0000
  78.  
  79. Public Const SPECIFIC_RIGHTS_ALL = &HFFFF
  80.  
  81.  
  82. Type SID_IDENTIFIER_AUTHORITY
  83.         Value(6) As Byte
  84. End Type
  85.  
  86. Public Const SID_REVISION = (1)                         '  Current revision level
  87. Public Const SID_MAX_SUB_AUTHORITIES = (15)
  88. Public Const SID_RECOMMENDED_SUB_AUTHORITIES = (1)    ' Will change to around 6 in a future release.
  89.  
  90. Public Const SidTypeUser = 1
  91. Public Const SidTypeGroup = 2
  92. Public Const SidTypeDomain = 3
  93. Public Const SidTypeAlias = 4
  94. Public Const SidTypeWellKnownGroup = 5
  95. Public Const SidTypeDeletedAccount = 6
  96. Public Const SidTypeInvalid = 7
  97. Public Const SidTypeUnknown = 8
  98.  
  99. Type SID_AND_ATTRIBUTES
  100.         Sid As Long
  101.         Attributes As Long
  102. End Type
  103.  
  104. ' ///////////////////////////////////////////////////////////////////////////
  105. '                                                                          //
  106. '  Universal well-known SIDs                                               //
  107. '                                                                          //
  108. '      Null SID              S-1-0-0                                       //
  109. '      World                 S-1-1-0                                       //
  110. '      Local                 S-1-2-0                                       //
  111. '      Creator Owner ID      S-1-3-0                                       //
  112. '      Creator Group ID      S-1-3-1                                       //
  113. '                                                                          //
  114. '      (Non-unique IDs)      S-1-4                                         //
  115. '                                                                          //
  116. ' ///////////////////////////////////////////////////////////////////////////
  117. Public Const SECURITY_NULL_RID = &H0
  118. Public Const SECURITY_WORLD_RID = &H0
  119. Public Const SECURITY_LOCAL_RID = &H0
  120.  
  121. Public Const SECURITY_CREATOR_OWNER_RID = &H0
  122. Public Const SECURITY_CREATOR_GROUP_RID = &H1
  123.  
  124.  
  125. ' ///////////////////////////////////////////////////////////////////////////
  126. '                                                                          //
  127. '  NT well-known SIDs                                                      //
  128. '                                                                          //
  129. '      NT Authority          S-1-5                                         //
  130. '      Dialup                S-1-5-1                                       //
  131. '                                                                          //
  132. '      Network               S-1-5-2                                       //
  133. '      Batch                 S-1-5-3                                       //
  134. '      Interactive           S-1-5-4                                       //
  135. '      Service               S-1-5-6                                       //
  136. '      AnonymousLogon        S-1-5-7       (aka null logon session)        //
  137. '                                                                          //
  138. '      (Logon IDs)           S-1-5-5-X-Y                                   //
  139. '                                                                          //
  140. '      (NT non-unique IDs)   S-1-5-0x15-...                                //
  141. '                                                                          //
  142. '      (Built-in domain)     s-1-5-0x20                                    //
  143. '                                                                          //
  144. ' ///////////////////////////////////////////////////////////////////////////
  145.  
  146. Public Const SECURITY_DIALUP_RID = &H1
  147. Public Const SECURITY_NETWORK_RID = &H2
  148. Public Const SECURITY_BATCH_RID = &H3
  149. Public Const SECURITY_INTERACTIVE_RID = &H4
  150. Public Const SECURITY_SERVICE_RID = &H6
  151. Public Const SECURITY_ANONYMOUS_LOGON_RID = &H7
  152. Public Const SECURITY_LOGON_IDS_RID = &H5
  153. Public Const SECURITY_LOCAL_SYSTEM_RID = &H12
  154. Public Const SECURITY_NT_NON_UNIQUE = &H15
  155. Public Const SECURITY_BUILTIN_DOMAIN_RID = &H20
  156.  
  157.  
  158. ' ///////////////////////////////////////////////////////////////////////////
  159. '                                                                          //
  160. '  well-known domain relative sub-authority values (RIDs)...               //
  161. '                                                                          //
  162. ' ///////////////////////////////////////////////////////////////////////////
  163.  
  164. Public Const DOMAIN_USER_RID_ADMIN = &H1F4
  165. Public Const DOMAIN_USER_RID_GUEST = &H1F5
  166.  
  167. Public Const DOMAIN_GROUP_RID_ADMINS = &H200
  168. Public Const DOMAIN_GROUP_RID_USERS = &H201
  169. Public Const DOMAIN_GROUP_RID_GUESTS = &H202
  170.  
  171.  
  172. Public Const DOMAIN_ALIAS_RID_ADMINS = &H220
  173. Public Const DOMAIN_ALIAS_RID_USERS = &H221
  174. Public Const DOMAIN_ALIAS_RID_GUESTS = &H222
  175. Public Const DOMAIN_ALIAS_RID_POWER_USERS = &H223
  176. Public Const DOMAIN_ALIAS_RID_ACCOUNT_OPS = &H224
  177. Public Const DOMAIN_ALIAS_RID_SYSTEM_OPS = &H225
  178. Public Const DOMAIN_ALIAS_RID_PRINT_OPS = &H226
  179. Public Const DOMAIN_ALIAS_RID_BACKUP_OPS = &H227
  180. Public Const DOMAIN_ALIAS_RID_REPLICATOR = &H228
  181.  
  182.  
  183. '  Allocate the System Luid.  The first 1000 LUIDs are reserved.
  184. '  Use #999 here0x3E7 = 999)
  185.  
  186. '  end_ntifs
  187.  
  188. ' //////////////////////////////////////////////////////////////////////
  189. '                                                                     //
  190. '                           User and Group related SID attributes     //
  191. '                                                                     //
  192. ' //////////////////////////////////////////////////////////////////////
  193.  
  194. '  Group attributes
  195.  
  196. Public Const SE_GROUP_MANDATORY = &H1
  197. Public Const SE_GROUP_ENABLED_BY_DEFAULT = &H2
  198. Public Const SE_GROUP_ENABLED = &H4
  199. Public Const SE_GROUP_OWNER = &H8
  200. Public Const SE_GROUP_LOGON_ID = &HC0000000
  201.  
  202. '  User attributes
  203.  
  204. '  (None yet defined.)
  205.  
  206. ' ----------------
  207. '  Kernel Section
  208. ' ----------------
  209.  
  210. Public Const FILE_BEGIN = 0
  211. Public Const FILE_CURRENT = 1
  212. Public Const FILE_END = 2
  213.  
  214. Public Const FILE_FLAG_WRITE_THROUGH = &H80000000
  215. Public Const FILE_FLAG_OVERLAPPED = &H40000000
  216. Public Const FILE_FLAG_NO_BUFFERING = &H20000000
  217. Public Const FILE_FLAG_RANDOM_ACCESS = &H10000000
  218. Public Const FILE_FLAG_SEQUENTIAL_SCAN = &H8000000
  219. Public Const FILE_FLAG_DELETE_ON_CLOSE = &H4000000
  220. Public Const FILE_FLAG_BACKUP_SEMANTICS = &H2000000
  221. Public Const FILE_FLAG_POSIX_SEMANTICS = &H1000000
  222.  
  223. Public Const CREATE_NEW = 1
  224. Public Const CREATE_ALWAYS = 2
  225. Public Const OPEN_EXISTING = 3
  226. Public Const OPEN_ALWAYS = 4
  227. Public Const TRUNCATE_EXISTING = 5
  228.  
  229. ' Define the dwOpenMode values for CreateNamedPipe
  230. Public Const PIPE_ACCESS_INBOUND = &H1
  231. Public Const PIPE_ACCESS_OUTBOUND = &H2
  232. Public Const PIPE_ACCESS_DUPLEX = &H3
  233.  
  234. ' Define the Named Pipe End flags for GetNamedPipeInfo
  235. Public Const PIPE_CLIENT_END = &H0
  236. Public Const PIPE_SERVER_END = &H1
  237.  
  238. ' Define the dwPipeMode values for CreateNamedPipe
  239. Public Const PIPE_WAIT = &H0
  240. Public Const PIPE_NOWAIT = &H1
  241. Public Const PIPE_READMODE_BYTE = &H0
  242. Public Const PIPE_READMODE_MESSAGE = &H2
  243. Public Const PIPE_TYPE_BYTE = &H0
  244. Public Const PIPE_TYPE_MESSAGE = &H4
  245.  
  246. ' Define the well known values for CreateNamedPipe nMaxInstances
  247. Public Const PIPE_UNLIMITED_INSTANCES = 255
  248.  
  249. ' Define the Security Quality of Service bits to be passed
  250. '  into CreateFile
  251. Public Const SECURITY_CONTEXT_TRACKING = &H40000
  252. Public Const SECURITY_EFFECTIVE_ONLY = &H80000
  253.  
  254. Public Const SECURITY_SQOS_PRESENT = &H100000
  255. Public Const SECURITY_VALID_SQOS_FLAGS = &H1F0000
  256.  
  257. Type OVERLAPPED
  258.         Internal As Long
  259.         InternalHigh As Long
  260.         offset As Long
  261.         OffsetHigh As Long
  262.         hEvent As Long
  263. End Type
  264.  
  265. Type SECURITY_ATTRIBUTES
  266.         nLength As Long
  267.         lpSecurityDescriptor As Long
  268.         bInheritHandle As Long 
  269. End Type
  270.  
  271. Type PROCESS_INFORMATION
  272.         hProcess As Long
  273.         hThread As Long
  274.         dwProcessId As Long
  275.         dwThreadId As Long
  276. End Type
  277.  
  278. Type FILETIME
  279.         dwLowDateTime As Long
  280.         dwHighDateTime As Long
  281. End Type
  282.  
  283. Type SYSTEMTIME
  284.         wYear As Integer
  285.         wMonth As Integer
  286.         wDayOfWeek As Integer
  287.         wDay As Integer
  288.         wHour As Integer
  289.         wMinute As Integer
  290.         wSecond As Integer
  291.         wMilliseconds As Integer
  292. End Type
  293.  
  294. '  Serial provider type.
  295. Public Const SP_SERIALCOMM = &H1&
  296.  
  297. '  Provider SubTypes
  298. Public Const PST_UNSPECIFIED = &H0&
  299. Public Const PST_RS232 = &H1&
  300. Public Const PST_PARALLELPORT = &H2&
  301. Public Const PST_RS422 = &H3&
  302. Public Const PST_RS423 = &H4&
  303. Public Const PST_RS449 = &H5&
  304. Public Const PST_FAX = &H21&
  305. Public Const PST_SCANNER = &H22&
  306. Public Const PST_NETWORK_BRIDGE = &H100&
  307. Public Const PST_LAT = &H101&
  308. Public Const PST_TCPIP_TELNET = &H102&
  309. Public Const PST_X25 = &H103&
  310.  
  311. '  Provider capabilities flags.
  312. Public Const PCF_DTRDSR = &H1&
  313. Public Const PCF_RTSCTS = &H2&
  314. Public Const PCF_RLSD = &H4&
  315. Public Const PCF_PARITY_CHECK = &H8&
  316. Public Const PCF_XONXOFF = &H10&
  317. Public Const PCF_SETXCHAR = &H20&
  318. Public Const PCF_TOTALTIMEOUTS = &H40&
  319. Public Const PCF_INTTIMEOUTS = &H80&
  320. Public Const PCF_SPECIALCHARS = &H100&
  321. Public Const PCF_16BITMODE = &H200&
  322.  
  323. '  Comm provider settable parameters.
  324. Public Const SP_PARITY = &H1&
  325. Public Const SP_BAUD = &H2&
  326. Public Const SP_DATABITS = &H4&
  327. Public Const SP_STOPBITS = &H8&
  328. Public Const SP_HANDSHAKING = &H10&
  329. Public Const SP_PARITY_CHECK = &H20&
  330. Public Const SP_RLSD = &H40&
  331.  
  332. '  Settable baud rates in the provider.
  333. Public Const BAUD_075 = &H1&
  334. Public Const BAUD_110 = &H2&
  335. Public Const BAUD_134_5 = &H4&
  336. Public Const BAUD_150 = &H8&
  337. Public Const BAUD_300 = &H10&
  338. Public Const BAUD_600 = &H20&
  339. Public Const BAUD_1200 = &H40&
  340. Public Const BAUD_1800 = &H80&
  341. Public Const BAUD_2400 = &H100&
  342. Public Const BAUD_4800 = &H200&
  343. Public Const BAUD_7200 = &H400&
  344. Public Const BAUD_9600 = &H800&
  345. Public Const BAUD_14400 = &H1000&
  346. Public Const BAUD_19200 = &H2000&
  347. Public Const BAUD_38400 = &H4000&
  348. Public Const BAUD_56K = &H8000&
  349. Public Const BAUD_128K = &H10000
  350. Public Const BAUD_115200 = &H20000
  351. Public Const BAUD_57600 = &H40000
  352. Public Const BAUD_USER = &H10000000
  353.  
  354. '  Settable Data Bits
  355. Public Const DATABITS_5 = &H1&
  356. Public Const DATABITS_6 = &H2&
  357. Public Const DATABITS_7 = &H4&
  358. Public Const DATABITS_8 = &H8&
  359. Public Const DATABITS_16 = &H10&
  360. Public Const DATABITS_16X = &H20&
  361.  
  362. '  Settable Stop and Parity bits.
  363. Public Const STOPBITS_10 = &H1&
  364. Public Const STOPBITS_15 = &H2&
  365. Public Const STOPBITS_20 = &H4&
  366. Public Const PARITY_NONE = &H100&
  367. Public Const PARITY_ODD = &H200&
  368. Public Const PARITY_EVEN = &H400&
  369. Public Const PARITY_MARK = &H800&
  370. Public Const PARITY_SPACE = &H1000&
  371.  
  372. Type COMMPROP
  373.         wPacketLength As Integer
  374.         wPacketVersion As Integer
  375.         dwServiceMask As Long
  376.         dwReserved1 As Long
  377.         dwMaxTxQueue As Long
  378.         dwMaxRxQueue As Long
  379.         dwMaxBaud As Long
  380.         dwProvSubType As Long
  381.         dwProvCapabilities As Long
  382.         dwSettableParams As Long
  383.         dwSettableBaud As Long
  384.         wSettableData As Integer
  385.         wSettableStopParity As Integer
  386.         dwCurrentTxQueue As Long
  387.         dwCurrentRxQueue As Long
  388.         dwProvSpec1 As Long
  389.         dwProvSpec2 As Long
  390.         wcProvChar(1) As Integer
  391. End Type
  392.  
  393. 'Type COMSTAT
  394. '        fCtsHold As Long
  395. '        fDsrHold As Long
  396. '        fRlsdHold As Long
  397. '        fXoffHold As Long
  398. '        fXoffSent As Long
  399. '        fEof As Long
  400. '        fTxim As Long
  401. '        fReserved As Long
  402. '        cbInQue As Long
  403. '        cbOutQue As Long
  404. 'End Type
  405.  
  406. Type COMSTAT
  407.         fBitFields As Long 'See Comment in Win32API.Txt
  408.         cbInQue As Long
  409.         cbOutQue As Long
  410. End Type
  411. ' The eight actual COMSTAT bit-sized data fields within the four bytes of fBitFields can be manipulated by bitwise logical And/Or operations.
  412. ' FieldName     Bit #     Description
  413. ' ---------     -----     ---------------------------
  414. ' fCtsHold        1       Tx waiting for CTS signal
  415. ' fDsrHold        2       Tx waiting for DSR signal
  416. ' fRlsdHold       3       Tx waiting for RLSD signal
  417. ' fXoffHold       4       Tx waiting, XOFF char rec'd
  418. ' fXoffSent       5       Tx waiting, XOFF char sent
  419. ' fEof            6       EOF character sent
  420. ' fTxim           7       character waiting for Tx
  421. ' fReserved       8       reserved (25 bits)
  422.  
  423. '  DTR Control Flow Values.
  424. Public Const DTR_CONTROL_DISABLE = &H0
  425. Public Const DTR_CONTROL_ENABLE = &H1
  426. Public Const DTR_CONTROL_HANDSHAKE = &H2
  427.  
  428. '  RTS Control Flow Values
  429. Public Const RTS_CONTROL_DISABLE = &H0
  430. Public Const RTS_CONTROL_ENABLE = &H1
  431. Public Const RTS_CONTROL_HANDSHAKE = &H2
  432. Public Const RTS_CONTROL_TOGGLE = &H3
  433.  
  434. 'Type DCB
  435. '        DCBlength As Long
  436. '        BaudRate As Long
  437. '        fBinary As Long
  438. '        fParity As Long
  439. '        fOutxCtsFlow As Long
  440. '        fOutxDsrFlow As Long
  441. '        fDtrControl As Long
  442. '        fDsrSensitivity As Long
  443. '        fTXContinueOnXoff As Long
  444. '        fOutX As Long
  445. '        fInX As Long
  446. '        fErrorChar As Long
  447. '        fNull As Long
  448. '        fRtsControl As Long
  449. '        fAbortOnError As Long
  450. '        fDummy2 As Long
  451. '        wReserved As Integer
  452. '        XonLim As Integer
  453. '        XoffLim As Integer
  454. '        ByteSize As Byte
  455. '        Parity As Byte
  456. '        StopBits As Byte
  457. '        XonChar As Byte
  458. '        XoffChar As Byte
  459. '        ErrorChar As Byte
  460. '        EofChar As Byte
  461. '        EvtChar As Byte
  462. 'End Type
  463.  
  464. Type DCB
  465.         DCBlength As Long
  466.         BaudRate As Long
  467.         fBitFields As Long 'See Comments in Win32API.Txt
  468.         wReserved As Integer
  469.         XonLim As Integer
  470.         XoffLim As Integer
  471.         ByteSize As Byte
  472.         Parity As Byte
  473.         StopBits As Byte
  474.         XonChar As Byte
  475.         XoffChar As Byte
  476.         ErrorChar As Byte
  477.         EofChar As Byte
  478.         EvtChar As Byte
  479.         wReserved1 As Integer 'Reserved; Do Not Use 
  480. End Type
  481. ' The fourteen actual DCB bit-sized data fields within the four bytes of fBitFields can be manipulated by bitwise logical And/Or operations.
  482. ' FieldName             Bit #     Description
  483. ' -----------------     -----     ------------------------------
  484. ' fBinary                 1       binary mode, no EOF check
  485. ' fParity                 2       enable parity checking
  486. ' fOutxCtsFlow            3       CTS output flow control
  487. ' fOutxDsrFlow            4       DSR output flow control
  488. ' fDtrControl             5       DTR flow control type (2 bits)
  489. ' fDsrSensitivity         7       DSR sensitivity
  490. ' fTXContinueOnXoff       8       XOFF continues Tx
  491. ' fOutX                   9       XON/XOFF out flow control
  492. ' fInX                   10       XON/XOFF in flow control
  493. ' fErrorChar             11       enable error replacement
  494. ' fNull                  12       enable null stripping
  495. ' fRtsControl            13       RTS flow control (2 bits)
  496. ' fAbortOnError          15       abort reads/writes on error
  497. ' fDummy2                16       reserved 
  498.  
  499. Type COMMTIMEOUTS
  500.         ReadIntervalTimeout As Long
  501.         ReadTotalTimeoutMultiplier As Long
  502.         ReadTotalTimeoutConstant As Long
  503.         WriteTotalTimeoutMultiplier As Long
  504.         WriteTotalTimeoutConstant As Long
  505. End Type
  506.  
  507. Type SYSTEM_INFO
  508.         dwOemID As Long
  509.         dwPageSize As Long
  510.         lpMinimumApplicationAddress As Long
  511.         lpMaximumApplicationAddress As Long
  512.         dwActiveProcessorMask As Long
  513.         dwNumberOrfProcessors As Long
  514.         dwProcessorType As Long
  515.         dwAllocationGranularity As Long
  516.         dwReserved As Long
  517. End Type
  518.  
  519. ' Global Memory Flags
  520. Public Const GMEM_FIXED = &H0
  521. Public Const GMEM_MOVEABLE = &H2
  522. Public Const GMEM_NOCOMPACT = &H10
  523. Public Const GMEM_NODISCARD = &H20
  524. Public Const GMEM_ZEROINIT = &H40
  525. Public Const GMEM_MODIFY = &H80
  526. Public Const GMEM_DISCARDABLE = &H100
  527. Public Const GMEM_NOT_BANKED = &H1000
  528. Public Const GMEM_SHARE = &H2000
  529. Public Const GMEM_DDESHARE = &H2000
  530. Public Const GMEM_NOTIFY = &H4000
  531. Public Const GMEM_LOWER = GMEM_NOT_BANKED
  532. Public Const GMEM_VALID_FLAGS = &H7F72
  533. Public Const GMEM_INVALID_HANDLE = &H8000
  534.  
  535. Public Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
  536. Public Const GPTR = (GMEM_FIXED Or GMEM_ZEROINIT)
  537.  
  538. ' Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE)
  539. Public Const GMEM_DISCARDED = &H4000
  540. Public Const GMEM_LOCKCOUNT = &HFF
  541.  
  542. Type MEMORYSTATUS
  543.         dwLength As Long
  544.         dwMemoryLoad As Long
  545.         dwTotalPhys As Long
  546.         dwAvailPhys As Long
  547.         dwTotalPageFile As Long
  548.         dwAvailPageFile As Long
  549.         dwTotalVirtual As Long
  550.         dwAvailVirtual As Long
  551. End Type
  552.  
  553. ' Local Memory Flags
  554. Public Const LMEM_FIXED = &H0
  555. Public Const LMEM_MOVEABLE = &H2
  556. Public Const LMEM_NOCOMPACT = &H10
  557. Public Const LMEM_NODISCARD = &H20
  558. Public Const LMEM_ZEROINIT = &H40
  559. Public Const LMEM_MODIFY = &H80
  560. Public Const LMEM_DISCARDABLE = &HF00
  561. Public Const LMEM_VALID_FLAGS = &HF72
  562. Public Const LMEM_INVALID_HANDLE = &H8000
  563.  
  564. Public Const LHND = (LMEM_MOVEABLE + LMEM_ZEROINIT)
  565. Public Const LPTR = (LMEM_FIXED + LMEM_ZEROINIT)
  566.  
  567. Public Const NONZEROLHND = (LMEM_MOVEABLE)
  568. Public Const NONZEROLPTR = (LMEM_FIXED)
  569.  
  570. ' Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE)
  571. Public Const LMEM_DISCARDED = &H4000
  572. Public Const LMEM_LOCKCOUNT = &HFF
  573.  
  574. '  dwCreationFlag values
  575.  
  576. Public Const DEBUG_PROCESS = &H1
  577. Public Const DEBUG_ONLY_THIS_PROCESS = &H2
  578.  
  579. Public Const CREATE_SUSPENDED = &H4
  580.  
  581. Public Const DETACHED_PROCESS = &H8
  582.  
  583. Public Const CREATE_NEW_CONSOLE = &H10
  584.  
  585. Public Const NORMAL_PRIORITY_CLASS = &H20
  586. Public Const IDLE_PRIORITY_CLASS = &H40
  587. Public Const HIGH_PRIORITY_CLASS = &H80
  588. Public Const REALTIME_PRIORITY_CLASS = &H100
  589.  
  590. Public Const CREATE_NEW_PROCESS_GROUP = &H200
  591.  
  592. Public Const CREATE_NO_WINDOW = &H8000000
  593.  
  594. Public Const PROFILE_USER = &H10000000
  595. Public Const PROFILE_KERNEL = &H20000000
  596. Public Const PROFILE_SERVER = &H40000000
  597.  
  598. Public Const MAXLONG = &H7FFFFFFF
  599. Public Const THREAD_BASE_PRIORITY_MIN = -2
  600. Public Const THREAD_BASE_PRIORITY_MAX = 2
  601. Public Const THREAD_BASE_PRIORITY_LOWRT = 15
  602. Public Const THREAD_BASE_PRIORITY_IDLE = -15
  603. Public Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
  604. Public Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1)
  605. Public Const THREAD_PRIORITY_NORMAL = 0
  606. Public Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
  607. Public Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1)
  608. Public Const THREAD_PRIORITY_ERROR_RETURN = (MAXLONG)
  609.  
  610. Public Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
  611. Public Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
  612.  
  613. ' ++ BUILD Version: 0093     Increment this if a change has global effects
  614.  
  615. ' Copyright (c) 1990-1995  Microsoft Corporation
  616.  
  617. ' Module Name:
  618.  
  619. '     winnt.h
  620.  
  621. ' Abstract:
  622.  
  623. '     This module defines the 32-Bit Windows types and constants that are
  624. '     defined by NT, but exposed through the Win32 API.
  625.  
  626. ' Revision History:
  627. Public Const APPLICATION_ERROR_MASK = &H20000000
  628. Public Const ERROR_SEVERITY_SUCCESS = &H0
  629. Public Const ERROR_SEVERITY_INFORMATIONAL = &H40000000
  630. Public Const ERROR_SEVERITY_WARNING = &H80000000
  631. Public Const ERROR_SEVERITY_ERROR = &HC0000000
  632.  
  633.  
  634. Public Const MINCHAR = &H80
  635. Public Const MAXCHAR = &H7F
  636. Public Const MINSHORT = &H8000
  637. Public Const MAXSHORT = &H7FFF
  638. Public Const MINLONG = &H80000000
  639. Public Const MAXByte = &HFF
  640. Public Const MAXWORD = &HFFFF
  641. Public Const MAXDWORD = &HFFFF
  642. '
  643. '  Calculate the byte offset of a field in a structure of type type.
  644. '  *  Language IDs.
  645. '  *
  646. '  *  The following two combinations of primary language ID and
  647. '  *  sublanguage ID have special semantics:
  648. '  *
  649. '  *    Primary Language ID   Sublanguage ID      Result
  650. '  *    -------------------   ---------------     ------------------------
  651. '  *    LANG_NEUTRAL          SUBLANG_NEUTRAL     Language neutral
  652. '  *    LANG_NEUTRAL          SUBLANG_DEFAULT     User default language
  653. '  *    LANG_NEUTRAL          SUBLANG_SYS_DEFAULT System default language
  654. '  */
  655. '
  656. '  *  Primary language IDs.
  657. '  */
  658. Public Const LANG_NEUTRAL = &H0
  659.  
  660. Public Const LANG_BULGARIAN = &H2
  661. Public Const LANG_CHINESE = &H4
  662. Public Const LANG_CROATIAN = &H1A
  663. Public Const LANG_CZECH = &H5
  664. Public Const LANG_DANISH = &H6
  665. Public Const LANG_DUTCH = &H13
  666. Public Const LANG_ENGLISH = &H9
  667. Public Const LANG_FINNISH = &HB
  668. Public Const LANG_FRENCH = &HC
  669. Public Const LANG_GERMAN = &H7
  670. Public Const LANG_GREEK = &H8
  671. Public Const LANG_HUNGARIAN = &HE
  672. Public Const LANG_ICELANDIC = &HF
  673. Public Const LANG_ITALIAN = &H10
  674. Public Const LANG_JAPANESE = &H11
  675. Public Const LANG_KOREAN = &H12
  676. Public Const LANG_NORWEGIAN = &H14
  677. Public Const LANG_POLISH = &H15
  678. Public Const LANG_PORTUGUESE = &H16
  679. Public Const LANG_ROMANIAN = &H18
  680. Public Const LANG_RUSSIAN = &H19
  681. Public Const LANG_SLOVAK = &H1B
  682. Public Const LANG_SLOVENIAN = &H24
  683. Public Const LANG_SPANISH = &HA
  684. Public Const LANG_SWEDISH = &H1D
  685. Public Const LANG_TURKISH = &H1F
  686.  
  687. '
  688. '  *  Sublanguage IDs.
  689. '  *
  690. '  *  The name immediately following SUBLANG_ dictates which primary
  691. '  *  language ID that sublanguage ID can be combined with to form a
  692. '  *  valid language ID.
  693. '  */
  694. Public Const SUBLANG_NEUTRAL = &H0                       '  language neutral
  695. Public Const SUBLANG_DEFAULT = &H1                       '  user default
  696. Public Const SUBLANG_SYS_DEFAULT = &H2                   '  system default
  697.  
  698. Public Const SUBLANG_CHINESE_TRADITIONAL = &H1           '  Chinese (Taiwan)
  699. Public Const SUBLANG_CHINESE_SIMPLIFIED = &H2            '  Chinese (PR China)
  700. Public Const SUBLANG_CHINESE_HONGKONG = &H3              '  Chinese (Hong Kong)
  701. Public Const SUBLANG_CHINESE_SINGAPORE = &H4             '  Chinese (Singapore)
  702. Public Const SUBLANG_DUTCH = &H1                         '  Dutch
  703. Public Const SUBLANG_DUTCH_BELGIAN = &H2                 '  Dutch (Belgian)
  704. Public Const SUBLANG_ENGLISH_US = &H1                    '  English (USA)
  705. Public Const SUBLANG_ENGLISH_UK = &H2                    '  English (UK)
  706. Public Const SUBLANG_ENGLISH_AUS = &H3                   '  English (Australian)
  707. Public Const SUBLANG_ENGLISH_CAN = &H4                   '  English (Canadian)
  708. Public Const SUBLANG_ENGLISH_NZ = &H5                    '  English (New Zealand)
  709. Public Const SUBLANG_ENGLISH_EIRE = &H6                  '  English (Irish)
  710. Public Const SUBLANG_FRENCH = &H1                        '  French
  711. Public Const SUBLANG_FRENCH_BELGIAN = &H2                '  French (Belgian)
  712. Public Const SUBLANG_FRENCH_CANADIAN = &H3               '  French (Canadian)
  713. Public Const SUBLANG_FRENCH_SWISS = &H4                  '  French (Swiss)
  714. Public Const SUBLANG_GERMAN = &H1                        '  German
  715. Public Const SUBLANG_GERMAN_SWISS = &H2                  '  German (Swiss)
  716. Public Const SUBLANG_GERMAN_AUSTRIAN = &H3               '  German (Austrian)
  717. Public Const SUBLANG_ITALIAN = &H1                       '  Italian
  718. Public Const SUBLANG_ITALIAN_SWISS = &H2                 '  Italian (Swiss)
  719. Public Const SUBLANG_NORWEGIAN_BOKMAL = &H1              '  Norwegian (Bokma
  720. Public Const SUBLANG_NORWEGIAN_NYNORSK = &H2             '  Norwegian (Nynorsk)
  721. Public Const SUBLANG_PORTUGUESE = &H2                    '  Portuguese
  722. Public Const SUBLANG_PORTUGUESE_BRAZILIAN = &H1          '  Portuguese (Brazilian)
  723. Public Const SUBLANG_SPANISH = &H1                       '  Spanish (Castilian)
  724. Public Const SUBLANG_SPANISH_MEXICAN = &H2               '  Spanish (Mexican)
  725. Public Const SUBLANG_SPANISH_MODERN = &H3                '  Spanish (Modern)
  726.  
  727. '
  728. '  *  Sorting IDs.
  729. '  *
  730. '  */
  731. Public Const SORT_DEFAULT = &H0                          '  sorting default
  732.  
  733. Public Const SORT_JAPANESE_XJIS = &H0                    '  Japanese0xJIS order
  734. Public Const SORT_JAPANESE_UNICODE = &H1                 '  Japanese Unicode order
  735.  
  736. Public Const SORT_CHINESE_BIG5 = &H0                     '  Chinese BIG5 order
  737. Public Const SORT_CHINESE_UNICODE = &H1                  '  Chinese Unicode order
  738.  
  739. Public Const SORT_KOREAN_KSC = &H0                       '  Korean KSC order
  740. Public Const SORT_KOREAN_UNICODE = &H1                   '  Korean Unicode order
  741.  
  742. '  The FILE_READ_DATA and FILE_WRITE_DATA constants are also defined in
  743. '  devioctl.h as FILE_READ_ACCESS and FILE_WRITE_ACCESS. The values for these
  744. '  constants *MUST* always be in sync.
  745. '  The values are redefined in devioctl.h because they must be available to
  746. '  both DOS and NT.
  747. '
  748.  
  749. Public Const FILE_READ_DATA = (&H1)                     '  file pipe
  750. Public Const FILE_LIST_DIRECTORY = (&H1)                '  directory
  751.  
  752. Public Const FILE_WRITE_DATA = (&H2)                    '  file pipe
  753. Public Const FILE_ADD_FILE = (&H2)                      '  directory
  754.  
  755. Public Const FILE_APPEND_DATA = (&H4)                   '  file
  756. Public Const FILE_ADD_SUBDIRECTORY = (&H4)              '  directory
  757. Public Const FILE_CREATE_PIPE_INSTANCE = (&H4)          '  named pipe
  758.  
  759. Public Const FILE_READ_EA = (&H8)                       '  file directory
  760. Public Const FILE_READ_PROPERTIES = FILE_READ_EA
  761.  
  762. Public Const FILE_WRITE_EA = (&H10)                     '  file directory
  763. Public Const FILE_WRITE_PROPERTIES = FILE_WRITE_EA
  764.  
  765. Public Const FILE_EXECUTE = (&H20)                      '  file
  766. Public Const FILE_TRAVERSE = (&H20)                     '  directory
  767.  
  768. Public Const FILE_DELETE_CHILD = (&H40)                 '  directory
  769.  
  770. Public Const FILE_READ_ATTRIBUTES = (&H80)              '  all
  771.  
  772. Public Const FILE_WRITE_ATTRIBUTES = (&H100)            '  all
  773.  
  774. Public Const FILE_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H1FF)
  775.  
  776. Public Const FILE_GENERIC_READ = (STANDARD_RIGHTS_READ Or FILE_READ_DATA Or FILE_READ_ATTRIBUTES Or FILE_READ_EA Or SYNCHRONIZE)
  777.  
  778.  
  779. Public Const FILE_GENERIC_WRITE = (STANDARD_RIGHTS_WRITE Or FILE_WRITE_DATA Or FILE_WRITE_ATTRIBUTES Or FILE_WRITE_EA Or FILE_APPEND_DATA Or SYNCHRONIZE)
  780.  
  781.  
  782. Public Const FILE_GENERIC_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or FILE_READ_ATTRIBUTES Or FILE_EXECUTE Or SYNCHRONIZE)
  783.  
  784. Public Const FILE_SHARE_READ = &H1
  785. Public Const FILE_SHARE_WRITE = &H2
  786. Public Const FILE_ATTRIBUTE_READONLY = &H1
  787. Public Const FILE_ATTRIBUTE_HIDDEN = &H2
  788. Public Const FILE_ATTRIBUTE_SYSTEM = &H4
  789. Public Const FILE_ATTRIBUTE_DIRECTORY = &H10
  790. Public Const FILE_ATTRIBUTE_ARCHIVE = &H20
  791. Public Const FILE_ATTRIBUTE_NORMAL = &H80
  792. Public Const FILE_ATTRIBUTE_TEMPORARY = &H100
  793. Public Const FILE_ATTRIBUTE_COMPRESSED = &H800
  794. Public Const FILE_NOTIFY_CHANGE_FILE_NAME = &H1
  795. Public Const FILE_NOTIFY_CHANGE_DIR_NAME = &H2
  796. Public Const FILE_NOTIFY_CHANGE_ATTRIBUTES = &H4
  797. Public Const FILE_NOTIFY_CHANGE_SIZE = &H8
  798. Public Const FILE_NOTIFY_CHANGE_LAST_WRITE = &H10
  799. Public Const FILE_NOTIFY_CHANGE_SECURITY = &H100
  800. Public Const MAILSLOT_NO_MESSAGE = (-1)
  801. Public Const MAILSLOT_WAIT_FOREVER = (-1)
  802. Public Const FILE_CASE_SENSITIVE_SEARCH = &H1
  803. Public Const FILE_CASE_PRESERVED_NAMES = &H2
  804. Public Const FILE_UNICODE_ON_DISK = &H4
  805. Public Const FILE_PERSISTENT_ACLS = &H8
  806. Public Const FILE_FILE_COMPRESSION = &H10
  807. Public Const FILE_VOLUME_IS_COMPRESSED = &H8000
  808. Public Const IO_COMPLETION_MODIFY_STATE = &H2
  809. Public Const IO_COMPLETION_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &H3)
  810. Public Const DUPLICATE_CLOSE_SOURCE = &H1
  811. Public Const DUPLICATE_SAME_ACCESS = &H2
  812.  
  813. ' //////////////////////////////////////////////////////////////////////
  814. '                                                                     //
  815. '                              ACCESS MASK                            //
  816. '                                                                     //
  817. ' //////////////////////////////////////////////////////////////////////
  818.  
  819. '
  820. '   Define the access mask as a longword sized structure divided up as
  821. '   follows:
  822.  
  823. '       typedef struct _ACCESS_MASK {
  824. '           WORD   SpecificRights;
  825. '           Byte  StandardRights;
  826. '           Byte  AccessSystemAcl : 1;
  827. '           Byte  Reserved : 3;
  828. '           Byte  GenericAll : 1;
  829. '           Byte  GenericExecute : 1;
  830. '           Byte  GenericWrite : 1;
  831. '           Byte  GenericRead : 1;
  832. '       } ACCESS_MASK;
  833. '       typedef ACCESS_MASK *PACCESS_MASK;
  834. '
  835. '   but to make life simple for programmer's we'll allow them to specify
  836. '   a desired access mask by simply OR'ing together mulitple single rights
  837. '   and treat an access mask as a DWORD.  For example
  838. '
  839. '       DesiredAccess = DELETE  Or  READ_CONTROL
  840. '
  841. '   So we'll declare ACCESS_MASK as DWORD
  842. '
  843.  
  844. '  begin_ntddk begin_nthal begin_ntifs
  845.  
  846. ' //////////////////////////////////////////////////////////////////////
  847. '                                                                     //
  848. '                              ACCESS TYPES                           //
  849. '                                                                     //
  850. ' //////////////////////////////////////////////////////////////////////
  851.  
  852.  
  853. '  begin_ntddk begin_nthal begin_ntifs
  854. '
  855. '   The following are masks for the predefined standard access types
  856.  
  857. '  AccessSystemAcl access type
  858.  
  859. Public Const ACCESS_SYSTEM_SECURITY = &H1000000
  860.  
  861. '  MaximumAllowed access type
  862.  
  863. Public Const MAXIMUM_ALLOWED = &H2000000
  864.  
  865. '   These are the generic rights.
  866.  
  867. Public Const GENERIC_READ = &H80000000
  868. Public Const GENERIC_WRITE = &H40000000
  869. Public Const GENERIC_EXECUTE = &H20000000
  870. Public Const GENERIC_ALL = &H10000000
  871.  
  872. '   Define the generic mapping array.  This is used to denote the
  873. '   mapping of each generic access right to a specific access mask.
  874.  
  875. Type GENERIC_MAPPING
  876.         GenericRead As Long
  877.         GenericWrite As Long
  878.         GenericExecute As Long
  879.         GenericAll As Long
  880. End Type
  881.  
  882.  
  883. ' //////////////////////////////////////////////////////////////////////
  884. '                                                                     //
  885. '                         LUID_AND_ATTRIBUTES                         //
  886. '                                                                     //
  887. ' //////////////////////////////////////////////////////////////////////
  888. '
  889. Type LUID
  890.     LowPart As Long
  891.     HighPart As Long
  892. End Type
  893.  
  894.  
  895. Type LUID_AND_ATTRIBUTES
  896.         pLuid As LUID
  897.         Attributes As Long
  898. End Type
  899.  
  900. ' //////////////////////////////////////////////////////////////////////
  901. '                                                                     //
  902. '                          ACL  and  ACE                              //
  903. '                                                                     //
  904. ' //////////////////////////////////////////////////////////////////////
  905.  
  906. '
  907. '   Define an ACL and the ACE format.  The structure of an ACL header
  908. '   followed by one or more ACEs.  Pictorally the structure of an ACL header
  909. '   is as follows:
  910. '
  911. '   The current AclRevision is defined to be ACL_REVISION.
  912. '
  913. '   AclSize is the size, in bytes, allocated for the ACL.  This includes
  914. '   the ACL header, ACES, and remaining free space in the buffer.
  915. '
  916. '   AceCount is the number of ACES in the ACL.
  917. '
  918.  
  919. '  begin_ntddk begin_ntifs
  920. '  This is the *current* ACL revision
  921.  
  922. Public Const ACL_REVISION = (2)
  923.  
  924. '  This is the history of ACL revisions.  Add a new one whenever
  925. '  ACL_REVISION is updated
  926.  
  927. Public Const ACL_REVISION1 = (1)
  928. Public Const ACL_REVISION2 = (2)
  929.  
  930. Type ACL
  931.         AclRevision As Byte
  932.         Sbz1 As Byte
  933.         AclSize As Integer
  934.         AceCount As Integer
  935.         Sbz2 As Integer
  936. End Type
  937.  
  938. ' typedef ACL *PACL;
  939.  
  940. '  end_ntddk
  941.  
  942. '   The structure of an ACE is a common ace header followed by ace type
  943. '   specific data.  Pictorally the structure of the common ace header is
  944. '   as follows:
  945.  
  946. '   AceType denotes the type of the ace, there are some predefined ace
  947. '   types
  948. '
  949. '   AceSize is the size, in bytes, of ace.
  950. '
  951. '   AceFlags are the Ace flags for audit and inheritance, defined Integerly.
  952.  
  953. Type ACE_HEADER
  954.         AceType As Byte
  955.         AceFlags As Byte
  956.         AceSize As Long
  957. End Type
  958. '
  959. '   The following are the predefined ace types that go into the AceType
  960. '   field of an Ace header.
  961.  
  962. Public Const ACCESS_ALLOWED_ACE_TYPE = &H0
  963. Public Const ACCESS_DENIED_ACE_TYPE = &H1
  964. Public Const SYSTEM_AUDIT_ACE_TYPE = &H2
  965. Public Const SYSTEM_ALARM_ACE_TYPE = &H3
  966.  
  967. '   The following are the inherit flags that go into the AceFlags field
  968. '   of an Ace header.
  969.  
  970. Public Const OBJECT_INHERIT_ACE = &H1
  971. Public Const CONTAINER_INHERIT_ACE = &H2
  972. Public Const NO_PROPAGATE_INHERIT_ACE = &H4
  973. Public Const INHERIT_ONLY_ACE = &H8
  974. Public Const VALID_INHERIT_FLAGS = &HF
  975.  
  976.  
  977. '   The following are the currently defined ACE flags that go into the
  978. '   AceFlags field of an ACE header.  Each ACE type has its own set of
  979. '   AceFlags.
  980. '
  981. '   SUCCESSFUL_ACCESS_ACE_FLAG - used only with system audit and alarm ACE
  982. '   types to indicate that a message is generated for successful accesses.
  983. '
  984. '   FAILED_ACCESS_ACE_FLAG - used only with system audit and alarm ACE types
  985. '   to indicate that a message is generated for failed accesses.
  986.  
  987. '   SYSTEM_AUDIT and SYSTEM_ALARM AceFlags
  988. '
  989. '   These control the signaling of audit and alarms for success or failure.
  990.  
  991. Public Const SUCCESSFUL_ACCESS_ACE_FLAG = &H40
  992. Public Const FAILED_ACCESS_ACE_FLAG = &H80
  993.  
  994.  
  995. '
  996. '   We'll define the structure of the predefined ACE types.  Pictorally
  997. '   the structure of the predefined ACE's is as follows:
  998.  
  999. '   Mask is the access mask associated with the ACE.  This is either the
  1000. '   access allowed, access denied, audit, or alarm mask.
  1001. '
  1002. '   Sid is the Sid associated with the ACE.
  1003. '
  1004. '   The following are the four predefined ACE types.
  1005. '   Examine the AceType field in the Header to determine
  1006. '   which structure is appropriate to use for casting.
  1007.  
  1008.  
  1009. Type ACCESS_ALLOWED_ACE
  1010.         Header As ACE_HEADER
  1011.         Mask As Long
  1012.         SidStart As Long
  1013. End Type
  1014.  
  1015. Type ACCESS_DENIED_ACE
  1016.         Header As ACE_HEADER
  1017.         Mask As Long
  1018.         SidStart As Long
  1019. End Type
  1020.  
  1021.  
  1022. Type SYSTEM_AUDIT_ACE
  1023.         Header As ACE_HEADER
  1024.         Mask As Long
  1025.         SidStart As Long
  1026. End Type
  1027.  
  1028. Type SYSTEM_ALARM_ACE
  1029.         Header As ACE_HEADER
  1030.         Mask As Long
  1031.         SidStart As Long
  1032. End Type
  1033.  
  1034. '   The following declarations are used for setting and querying information
  1035. '   about and ACL.  First are the various information classes available to
  1036. '   the user.
  1037. '
  1038.  
  1039. Public Const AclRevisionInformation = 1
  1040. Public Const AclSizeInformation = 2
  1041. '
  1042. '   This record is returned/sent if the user is requesting/setting the
  1043. '   AclRevisionInformation
  1044. '
  1045.  
  1046. Type ACL_REVISION_INFORMATION
  1047.         AclRevision As Long
  1048. End Type
  1049.  
  1050. '
  1051. '   This record is returned if the user is requesting AclSizeInformation
  1052. '
  1053.  
  1054. Type ACL_SIZE_INFORMATION
  1055.         AceCount As Long
  1056.         AclBytesInUse As Long
  1057.         AclBytesFree As Long
  1058. End Type
  1059.  
  1060. ' //////////////////////////////////////////////////////////////////////
  1061. '                                                                     //
  1062. '                              SECURITY_DESCRIPTOR                    //
  1063. '                                                                     //
  1064. ' //////////////////////////////////////////////////////////////////////
  1065. '
  1066. '   Define the Security Descriptor and related data types.
  1067. '   This is an opaque data structure.
  1068. '
  1069.  
  1070. '  begin_ntddk begin_ntifs
  1071. '
  1072. '  Current security descriptor revision value
  1073. '
  1074.  
  1075. Public Const SECURITY_DESCRIPTOR_REVISION = (1)
  1076. Public Const SECURITY_DESCRIPTOR_REVISION1 = (1)
  1077.  
  1078. '  end_ntddk
  1079.  
  1080. '
  1081. '  Minimum length, in bytes, needed to build a security descriptor
  1082. '  (NOTE: This must manually be kept consistent with the)
  1083. '  (sizeof(SECURITY_DESCRIPTOR)                         )
  1084. '
  1085.  
  1086. Public Const SECURITY_DESCRIPTOR_MIN_LENGTH = (20)
  1087.  
  1088.  
  1089.  
  1090. Public Const SE_OWNER_DEFAULTED = &H1
  1091. Public Const SE_GROUP_DEFAULTED = &H2
  1092. Public Const SE_DACL_PRESENT = &H4
  1093. Public Const SE_DACL_DEFAULTED = &H8
  1094. Public Const SE_SACL_PRESENT = &H10
  1095. Public Const SE_SACL_DEFAULTED = &H20
  1096. Public Const SE_SELF_RELATIVE = &H8000
  1097.  
  1098. '
  1099. '   Where:
  1100. '
  1101. '       SE_OWNER_DEFAULTED - This boolean flag, when set, indicates that the
  1102. '           SID pointed to by the Owner field was provided by a
  1103. '           defaulting mechanism rather than explicitly provided by the
  1104. '           original provider of the security descriptor.  This may
  1105. '           affect the treatment of the SID with respect to inheritence
  1106. '           of an owner.
  1107. '
  1108. '       SE_GROUP_DEFAULTED - This boolean flag, when set, indicates that the
  1109. '           SID in the Group field was provided by a defaulting mechanism
  1110. '           rather than explicitly provided by the original provider of
  1111. '           the security descriptor.  This may affect the treatment of
  1112. '           the SID with respect to inheritence of a primary group.
  1113. '
  1114. '       SE_DACL_PRESENT - This boolean flag, when set, indicates that the
  1115. '           security descriptor contains a discretionary ACL.  If this
  1116. '           flag is set and the Dacl field of the SECURITY_DESCRIPTOR is
  1117. '           null, then a null ACL is explicitly being specified.
  1118. '
  1119. '       SE_DACL_DEFAULTED - This boolean flag, when set, indicates that the
  1120. '           ACL pointed to by the Dacl field was provided by a defaulting
  1121. '           mechanism rather than explicitly provided by the original
  1122. '           provider of the security descriptor.  This may affect the
  1123. '           treatment of the ACL with respect to inheritence of an ACL.
  1124. '           This flag is ignored if the DaclPresent flag is not set.
  1125. '
  1126. '       SE_SACL_PRESENT - This boolean flag, when set,  indicates that the
  1127. '           security descriptor contains a system ACL pointed to by the
  1128. '           Sacl field.  If this flag is set and the Sacl field of the
  1129. '           SECURITY_DESCRIPTOR is null, then an empty (but present)
  1130. '           ACL is being specified.
  1131. '
  1132. '       SE_SACL_DEFAULTED - This boolean flag, when set, indicates that the
  1133. '           ACL pointed to by the Sacl field was provided by a defaulting
  1134. '           mechanism rather than explicitly provided by the original
  1135. '           provider of the security descriptor.  This may affect the
  1136. '           treatment of the ACL with respect to inheritence of an ACL.
  1137. '           This flag is ignored if the SaclPresent flag is not set.
  1138. '
  1139. '       SE_SELF_RELATIVE - This boolean flag, when set, indicates that the
  1140. '           security descriptor is in self-relative form.  In this form,
  1141. '           all fields of the security descriptor are contiguous in memory
  1142. '           and all pointer fields are expressed as offsets from the
  1143. '           beginning of the security descriptor.  This form is useful
  1144. '           for treating security descriptors as opaque data structures
  1145. '           for transmission in communication protocol or for storage on
  1146. '           secondary media.
  1147. '
  1148. '
  1149. '
  1150. '  In general, this data structure should be treated opaquely to ensure future
  1151. '  compatibility.
  1152. '
  1153. '
  1154.  
  1155. Type SECURITY_DESCRIPTOR
  1156.         Revision As Byte
  1157.         Sbz1 As Byte
  1158.         Control As Long
  1159.         Owner As Long
  1160.         Group As Long
  1161.         Sacl As ACL
  1162.         Dacl As ACL
  1163. End Type
  1164.  
  1165.  
  1166. '  Where:
  1167. '
  1168. '      Revision - Contains the revision level of the security
  1169. '          descriptor.  This allows this structure to be passed between
  1170. '          systems or stored on disk even though it is expected to
  1171. '          change in the future.
  1172. '
  1173. '      Control - A set of flags which qualify the meaning of the
  1174. '          security descriptor or individual fields of the security
  1175. '          descriptor.
  1176. '
  1177. '      Owner - is a pointer to an SID representing an object's owner.
  1178. '          If this field is null, then no owner SID is present in the
  1179. '          security descriptor.  If the security descriptor is in
  1180. '          self-relative form, then this field contains an offset to
  1181. '          the SID, rather than a pointer.
  1182. '
  1183. '      Group - is a pointer to an SID representing an object's primary
  1184. '          group.  If this field is null, then no primary group SID is
  1185. '          present in the security descriptor.  If the security descriptor
  1186. '          is in self-relative form, then this field contains an offset to
  1187. '          the SID, rather than a pointer.
  1188. '
  1189. '      Sacl - is a pointer to a system ACL.  This field value is only
  1190. '          valid if the DaclPresent control flag is set.  If the
  1191. '          SaclPresent flag is set and this field is null, then a null
  1192. '          ACL  is specified.  If the security descriptor is in
  1193. '          self-relative form, then this field contains an offset to
  1194. '          the ACL, rather than a pointer.
  1195. '
  1196. '      Dacl - is a pointer to a discretionary ACL.  This field value is
  1197. '          only valid if the DaclPresent control flag is set.  If the
  1198. '          DaclPresent flag is set and this field is null, then a null
  1199. '          ACL (unconditionally granting access) is specified.  If the
  1200. '          security descriptor is in self-relative form, then this field
  1201. '          contains an offset to the ACL, rather than a pointer.
  1202. '
  1203.  
  1204.  
  1205.  
  1206. ' //////////////////////////////////////////////////////////////////////
  1207. '                                                                     //
  1208. '                Privilege Related Data Structures                    //
  1209. '                                                                     //
  1210. ' //////////////////////////////////////////////////////////////////////
  1211.  
  1212.  
  1213. '  Privilege attributes
  1214. '
  1215.  
  1216. Public Const SE_PRIVILEGE_ENABLED_BY_DEFAULT = &H1
  1217. Public Const SE_PRIVILEGE_ENABLED = &H2
  1218. Public Const SE_PRIVILEGE_USED_FOR_ACCESS = &H80000000
  1219.  
  1220. '
  1221. '  Privilege Set Control flags
  1222. '
  1223.  
  1224. Public Const PRIVILEGE_SET_ALL_NECESSARY = (1)
  1225.  
  1226. '
  1227. '   Privilege Set - This is defined for a privilege set of one.
  1228. '                   If more than one privilege is needed, then this structure
  1229. '                   will need to be allocated with more space.
  1230. '
  1231. '   Note: don't change this structure without fixing the INITIAL_PRIVILEGE_SET
  1232. '   structure (defined in se.h)
  1233. '
  1234.  
  1235. Type PRIVILEGE_SET
  1236.         PrivilegeCount As Long
  1237.         Control As Long
  1238.         Privilege(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
  1239. End Type
  1240.  
  1241.  
  1242. '//////////////////////////////////////////////////////////////////////
  1243. '                                                                     //
  1244. '                NT Defined Privileges                                //
  1245. '                                                                     //
  1246. ' //////////////////////////////////////////////////////////////////////
  1247.  
  1248. Public Const SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege"
  1249. Public Const SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege"
  1250. Public Const SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege"
  1251. Public Const SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege"
  1252. Public Const SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege"
  1253. Public Const SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege"
  1254. Public Const SE_TCB_NAME = "SeTcbPrivilege"
  1255. Public Const SE_SECURITY_NAME = "SeSecurityPrivilege"
  1256. Public Const SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege"
  1257. Public Const SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege"
  1258. Public Const SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege"
  1259. Public Const SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege"
  1260. Public Const SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege"
  1261. Public Const SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege"
  1262. Public Const SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege"
  1263. Public Const SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege"
  1264. Public Const SE_BACKUP_NAME = "SeBackupPrivilege"
  1265. Public Const SE_RESTORE_NAME = "SeRestorePrivilege"
  1266. Public Const SE_SHUTDOWN_NAME = "SeShutdownPrivilege"
  1267. Public Const SE_DEBUG_NAME = "SeDebugPrivilege"
  1268. Public Const SE_AUDIT_NAME = "SeAuditPrivilege"
  1269. Public Const SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege"
  1270. Public Const SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege"
  1271. Public Const SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege"
  1272.  
  1273.  
  1274. ' //////////////////////////////////////////////////////////////////
  1275. '                                                                 //
  1276. '            Security Quality Of Service                          //
  1277. '                                                                 //
  1278. '                                                                 //
  1279. ' //////////////////////////////////////////////////////////////////
  1280.  
  1281. '  begin_ntddk begin_nthal begin_ntifs
  1282. '
  1283. '  Impersonation Level
  1284. '
  1285. '  Impersonation level is represented by a pair of bits in Windows.
  1286. '  If a new impersonation level is added or lowest value is changed from
  1287. '  0 to something else, fix the Windows CreateFile call.
  1288. '
  1289.  
  1290. Public Const SecurityAnonymous = 1
  1291. Public Const SecurityIdentification = 2
  1292.  
  1293. '//////////////////////////////////////////////////////////////////////
  1294. '                                                                     //
  1295. '                Registry API Constants                                //
  1296. '                                                                     //
  1297. ' //////////////////////////////////////////////////////////////////////
  1298.  
  1299. ' Reg Data Types...
  1300. Public Const REG_NONE = 0                       ' No value type
  1301. Public Const REG_SZ = 1                         ' Unicode nul terminated string
  1302. Public Const REG_EXPAND_SZ = 2                  ' Unicode nul terminated string
  1303. Public Const REG_BINARY = 3                     ' Free form binary
  1304. Public Const REG_DWORD = 4                      ' 32-bit number
  1305. Public Const REG_DWORD_LITTLE_ENDIAN = 4        ' 32-bit number (same as REG_DWORD)
  1306. Public Const REG_DWORD_BIG_ENDIAN = 5           ' 32-bit number
  1307. Public Const REG_LINK = 6                       ' Symbolic Link (unicode)
  1308. Public Const REG_MULTI_SZ = 7                   ' Multiple Unicode strings
  1309. Public Const REG_RESOURCE_LIST = 8              ' Resource list in the resource map
  1310. Public Const REG_FULL_RESOURCE_DESCRIPTOR = 9   ' Resource list in the hardware description
  1311. Public Const REG_RESOURCE_REQUIREMENTS_LIST = 10
  1312. Public Const REG_CREATED_NEW_KEY = &H1                      ' New Registry Key created
  1313. Public Const REG_OPENED_EXISTING_KEY = &H2                      ' Existing Key opened
  1314. Public Const REG_WHOLE_HIVE_VOLATILE = &H1                      ' Restore whole hive volatile
  1315. Public Const REG_REFRESH_HIVE = &H2                      ' Unwind changes to last flush
  1316. Public Const REG_NOTIFY_CHANGE_NAME = &H1                      ' Create or delete (child)
  1317. Public Const REG_NOTIFY_CHANGE_ATTRIBUTES = &H2
  1318. Public Const REG_NOTIFY_CHANGE_LAST_SET = &H4                      ' Time stamp
  1319. Public Const REG_NOTIFY_CHANGE_SECURITY = &H8
  1320. 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)
  1321. 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)
  1322.  
  1323. ' Reg Create Type Values...
  1324. Public Const REG_OPTION_RESERVED = 0           ' Parameter is reserved
  1325. Public Const REG_OPTION_NON_VOLATILE = 0       ' Key is preserved when system is rebooted
  1326. Public Const REG_OPTION_VOLATILE = 1           ' Key is not preserved when system is rebooted
  1327. Public Const REG_OPTION_CREATE_LINK = 2        ' Created key is a symbolic link
  1328. Public Const REG_OPTION_BACKUP_RESTORE = 4     ' open for backup or restore
  1329.  
  1330. ' Reg Key Security Options
  1331. Public Const READ_CONTROL = &H20000
  1332. Public Const KEY_QUERY_VALUE = &H1
  1333. Public Const KEY_SET_VALUE = &H2
  1334. Public Const KEY_CREATE_SUB_KEY = &H4
  1335. Public Const KEY_ENUMERATE_SUB_KEYS = &H8
  1336. Public Const KEY_NOTIFY = &H10
  1337. Public Const KEY_CREATE_LINK = &H20
  1338. Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
  1339. Public Const KEY_WRITE = ((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE))
  1340. Public Const KEY_EXECUTE = (KEY_READ)
  1341. 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))
  1342. Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
  1343. Public Const STANDARD_RIGHTS_WRITE = (READ_CONTROL)
  1344. Public Const KEY_EXECUTE = ((KEY_READ) And (Not SYNCHRONIZE))
  1345.  
  1346. ' end winnt.txt
  1347.  
  1348. ' Debug APIs
  1349. Public Const EXCEPTION_DEBUG_EVENT = 1
  1350. Public Const CREATE_THREAD_DEBUG_EVENT = 2
  1351. Public Const CREATE_PROCESS_DEBUG_EVENT = 3
  1352. Public Const EXIT_THREAD_DEBUG_EVENT = 4
  1353. Public Const EXIT_PROCESS_DEBUG_EVENT = 5
  1354. Public Const LOAD_DLL_DEBUG_EVENT = 6
  1355. Public Const UNLOAD_DLL_DEBUG_EVENT = 7
  1356. Public Const OUTPUT_DEBUG_STRING_EVENT = 8
  1357. Public Const RIP_EVENT = 9
  1358.  
  1359. Public Const EXCEPTION_MAXIMUM_PARAMETERS = 15
  1360.  
  1361. Type EXCEPTION_RECORD
  1362.     ExceptionCode As Long
  1363.     ExceptionFlags As Long
  1364.     pExceptionRecord As Long    ' Pointer to an EXCEPTION_RECORD structure
  1365.     ExceptionAddress As Long
  1366.     NumberParameters As Long
  1367.     ExceptionInformation(EXCEPTION_MAXIMUM_PARAMETERS) As Long
  1368. End Type
  1369.  
  1370. Type EXCEPTION_DEBUG_INFO
  1371.         pExceptionRecord As EXCEPTION_RECORD
  1372.         dwFirstChance As Long
  1373. End Type
  1374.  
  1375. Type CREATE_THREAD_DEBUG_INFO
  1376.         hThread As Long
  1377.         lpThreadLocalBase As Long
  1378.         lpStartAddress As Long
  1379. End Type
  1380.  
  1381. Type CREATE_PROCESS_DEBUG_INFO
  1382.         hFile As Long
  1383.         hProcess As Long
  1384.         hThread As Long
  1385.         lpBaseOfImage As Long
  1386.         dwDebugInfoFileOffset As Long
  1387.         nDebugInfoSize As Long
  1388.         lpThreadLocalBase As Long
  1389.         lpStartAddress As Long
  1390.         lpImageName As Long
  1391.         fUnicode As Integer
  1392. End Type
  1393.  
  1394. Type EXIT_THREAD_DEBUG_INFO
  1395.         dwExitCode As Long
  1396. End Type
  1397.  
  1398. Type EXIT_PROCESS_DEBUG_INFO
  1399.         dwExitCode As Long
  1400. End Type
  1401.  
  1402. Type LOAD_DLL_DEBUG_INFO
  1403.         hFile As Long
  1404.         lpBaseOfDll As Long
  1405.         dwDebugInfoFileOffset As Long
  1406.         nDebugInfoSize As Long
  1407.         lpImageName As Long
  1408.         fUnicode As Integer
  1409. End Type
  1410.  
  1411. Type UNLOAD_DLL_DEBUG_INFO
  1412.         lpBaseOfDll As Long
  1413. End Type
  1414.  
  1415. Type OUTPUT_DEBUG_STRING_INFO
  1416.         lpDebugStringData As String
  1417.         fUnicode As Integer
  1418.         nDebugStringLength As Integer
  1419. End Type
  1420.  
  1421. Type RIP_INFO
  1422.         dwError As Long
  1423.         dwType As Long
  1424. End Type
  1425.  
  1426. ' GetDriveType return values
  1427. Public Const DRIVE_REMOVABLE = 2
  1428. Public Const DRIVE_FIXED = 3
  1429. Public Const DRIVE_REMOTE = 4
  1430. Public Const DRIVE_CDROM = 5
  1431. Public Const DRIVE_RAMDISK = 6
  1432.  
  1433. Public Const FILE_TYPE_UNKNOWN = &H0
  1434. Public Const FILE_TYPE_DISK = &H1
  1435. Public Const FILE_TYPE_CHAR = &H2
  1436. Public Const FILE_TYPE_PIPE = &H3
  1437. Public Const FILE_TYPE_REMOTE = &H8000
  1438.  
  1439. Public Const STD_INPUT_HANDLE = -10&
  1440. Public Const STD_OUTPUT_HANDLE = -11&
  1441. Public Const STD_ERROR_HANDLE = -12&
  1442.  
  1443. Public Const NOPARITY = 0
  1444. Public Const ODDPARITY = 1
  1445. Public Const EVENPARITY = 2
  1446. Public Const MARKPARITY = 3
  1447. Public Const SPACEPARITY = 4
  1448.  
  1449. Public Const ONESTOPBIT = 0
  1450. Public Const ONE5STOPBITS = 1
  1451. Public Const TWOSTOPBITS = 2
  1452.  
  1453. Public Const IGNORE = 0 '  Ignore signal
  1454. Public Const INFINITE = &HFFFF      '  Infinite timeout
  1455.  
  1456. ' Comm Baud Rate indices
  1457. Public Const CBR_110 = 110
  1458. Public Const CBR_300 = 300
  1459. Public Const CBR_600 = 600
  1460. Public Const CBR_1200 = 1200
  1461. Public Const CBR_2400 = 2400
  1462. Public Const CBR_4800 = 4800
  1463. Public Const CBR_9600 = 9600
  1464. Public Const CBR_14400 = 14400
  1465. Public Const CBR_19200 = 19200
  1466. Public Const CBR_38400 = 38400
  1467. Public Const CBR_56000 = 56000
  1468. Public Const CBR_57600 = 57600
  1469. Public Const CBR_115200 = 115200
  1470. Public Const CBR_128000 = 128000
  1471. Public Const CBR_256000 = 256000
  1472.  
  1473. ' Error Flags
  1474. Public Const CE_RXOVER = &H1                '  Receive Queue overflow
  1475. Public Const CE_OVERRUN = &H2               '  Receive Overrun Error
  1476. Public Const CE_RXPARITY = &H4              '  Receive Parity Error
  1477. Public Const CE_FRAME = &H8                 '  Receive Framing error
  1478. Public Const CE_BREAK = &H10                '  Break Detected
  1479. Public Const CE_TXFULL = &H100              '  TX Queue is full
  1480. Public Const CE_PTO = &H200                 '  LPTx Timeout
  1481. Public Const CE_IOE = &H400                 '  LPTx I/O Error
  1482. Public Const CE_DNS = &H800                 '  LPTx Device not selected
  1483. Public Const CE_OOP = &H1000                '  LPTx Out-Of-Paper
  1484. Public Const CE_MODE = &H8000               '  Requested mode unsupported
  1485.  
  1486. Public Const IE_BADID = (-1)                '  Invalid or unsupported id
  1487. Public Const IE_OPEN = (-2)                 '  Device Already Open
  1488. Public Const IE_NOPEN = (-3)                '  Device Not Open
  1489. Public Const IE_MEMORY = (-4)               '  Unable to allocate queues
  1490. Public Const IE_DEFAULT = (-5)              '  Error in default parameters
  1491. Public Const IE_HARDWARE = (-10)            '  Hardware Not Present
  1492. Public Const IE_BYTESIZE = (-11)            '  Illegal Byte Size
  1493. Public Const IE_BAUDRATE = (-12)            '  Unsupported BaudRate
  1494.  
  1495. ' Events
  1496. Public Const EV_RXCHAR = &H1                '  Any Character received
  1497. Public Const EV_RXFLAG = &H2                '  Received certain character
  1498. Public Const EV_TXEMPTY = &H4               '  Transmitt Queue Empty
  1499. Public Const EV_CTS = &H8                   '  CTS changed state
  1500. Public Const EV_DSR = &H10                  '  DSR changed state
  1501. Public Const EV_RLSD = &H20                 '  RLSD changed state
  1502. Public Const EV_BREAK = &H40                '  BREAK received
  1503. Public Const EV_ERR = &H80                  '  Line status error occurred
  1504. Public Const EV_RING = &H100                '  Ring signal detected
  1505. Public Const EV_PERR = &H200                '  Printer error occured
  1506. Public Const EV_RX80FULL = &H400            '  Receive buffer is 80 percent full
  1507. Public Const EV_EVENT1 = &H800              '  Provider specific event 1
  1508. Public Const EV_EVENT2 = &H1000             '  Provider specific event 2
  1509.  
  1510. ' Escape Functions
  1511. Public Const SETXOFF = 1  '  Simulate XOFF received
  1512. Public Const SETXON = 2 '  Simulate XON received
  1513. Public Const SETRTS = 3 '  Set RTS high
  1514. Public Const CLRRTS = 4 '  Set RTS low
  1515. Public Const SETDTR = 5 '  Set DTR high
  1516. Public Const CLRDTR = 6 '  Set DTR low
  1517. Public Const RESETDEV = 7       '  Reset device if possible
  1518. Public Const SETBREAK = 8  'Set the device break line
  1519. Public Const CLRBREAK = 9 ' Clear the device break line
  1520.  
  1521. '  PURGE function flags.
  1522. Public Const PURGE_TXABORT = &H1     '  Kill the pending/current writes to the comm port.
  1523. Public Const PURGE_RXABORT = &H2     '  Kill the pending/current reads to the comm port.
  1524. Public Const PURGE_TXCLEAR = &H4     '  Kill the transmit queue if there.
  1525. Public Const PURGE_RXCLEAR = &H8     '  Kill the typeahead buffer if there.
  1526.  
  1527. Public Const LPTx = &H80        '  Set if ID is for LPT device
  1528.  
  1529. '  Modem Status Flags
  1530. Public Const MS_CTS_ON = &H10&
  1531. Public Const MS_DSR_ON = &H20&
  1532. Public Const MS_RING_ON = &H40&
  1533. Public Const MS_RLSD_ON = &H80&
  1534.  
  1535. ' WaitSoundState() Constants
  1536. Public Const S_QUEUEEMPTY = 0
  1537. Public Const S_THRESHOLD = 1
  1538. Public Const S_ALLTHRESHOLD = 2
  1539.  
  1540. ' Accent Modes
  1541. Public Const S_NORMAL = 0
  1542. Public Const S_LEGATO = 1
  1543. Public Const S_STACCATO = 2
  1544.  
  1545. ' SetSoundNoise() Sources
  1546. Public Const S_PERIOD512 = 0    '  Freq = N/512 high pitch, less coarse hiss
  1547. Public Const S_PERIOD1024 = 1   '  Freq = N/1024
  1548. Public Const S_PERIOD2048 = 2   '  Freq = N/2048 low pitch, more coarse hiss
  1549. Public Const S_PERIODVOICE = 3  '  Source is frequency from voice channel (3)
  1550. Public Const S_WHITE512 = 4     '  Freq = N/512 high pitch, less coarse hiss
  1551. Public Const S_WHITE1024 = 5    '  Freq = N/1024
  1552. Public Const S_WHITE2048 = 6    '  Freq = N/2048 low pitch, more coarse hiss
  1553. Public Const S_WHITEVOICE = 7   '  Source is frequency from voice channel (3)
  1554.  
  1555. Public Const S_SERDVNA = (-1)   '  Device not available
  1556. Public Const S_SEROFM = (-2)    '  Out of memory
  1557. Public Const S_SERMACT = (-3)   '  Music active
  1558. Public Const S_SERQFUL = (-4)   '  Queue full
  1559. Public Const S_SERBDNT = (-5)   '  Invalid note
  1560. Public Const S_SERDLN = (-6)    '  Invalid note length
  1561. Public Const S_SERDCC = (-7)    '  Invalid note count
  1562. Public Const S_SERDTP = (-8)    '  Invalid tempo
  1563. Public Const S_SERDVL = (-9)    '  Invalid volume
  1564. Public Const S_SERDMD = (-10)   '  Invalid mode
  1565. Public Const S_SERDSH = (-11)   '  Invalid shape
  1566. Public Const S_SERDPT = (-12)   '  Invalid pitch
  1567. Public Const S_SERDFQ = (-13)   '  Invalid frequency
  1568. Public Const S_SERDDR = (-14)   '  Invalid duration
  1569. Public Const S_SERDSR = (-15)   '  Invalid source
  1570. Public Const S_SERDST = (-16)   '  Invalid state
  1571.  
  1572. Public Const NMPWAIT_WAIT_FOREVER = &HFFFF
  1573. Public Const NMPWAIT_NOWAIT = &H1
  1574. Public Const NMPWAIT_USE_DEFAULT_WAIT = &H0
  1575. Public Const FS_CASE_IS_PRESERVED = FILE_CASE_PRESERVED_NAMES
  1576. Public Const FS_CASE_SENSITIVE = FILE_CASE_SENSITIVE_SEARCH
  1577. Public Const FS_UNICODE_STORED_ON_DISK = FILE_UNICODE_ON_DISK
  1578. Public Const FS_PERSISTENT_ACLS = FILE_PERSISTENT_ACLS
  1579.  
  1580. Public Const SECTION_QUERY = &H1
  1581. Public Const SECTION_MAP_WRITE = &H2
  1582. Public Const SECTION_MAP_READ = &H4
  1583. Public Const SECTION_MAP_EXECUTE = &H8
  1584. Public Const SECTION_EXTEND_SIZE = &H10
  1585. 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
  1586.  
  1587. Public Const FILE_MAP_COPY = SECTION_QUERY
  1588. Public Const FILE_MAP_WRITE = SECTION_MAP_WRITE
  1589. Public Const FILE_MAP_READ = SECTION_MAP_READ
  1590. Public Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
  1591.  
  1592. ' OpenFile() Flags
  1593. Public Const OF_READ = &H0
  1594. Public Const OF_WRITE = &H1
  1595. Public Const OF_READWRITE = &H2
  1596. Public Const OF_SHARE_COMPAT = &H0
  1597. Public Const OF_SHARE_EXCLUSIVE = &H10
  1598. Public Const OF_SHARE_DENY_WRITE = &H20
  1599. Public Const OF_SHARE_DENY_READ = &H30
  1600. Public Const OF_SHARE_DENY_NONE = &H40
  1601. Public Const OF_PARSE = &H100
  1602. Public Const OF_DELETE = &H200
  1603. Public Const OF_VERIFY = &H400
  1604. Public Const OF_CANCEL = &H800
  1605. Public Const OF_CREATE = &H1000
  1606. Public Const OF_PROMPT = &H2000
  1607. Public Const OF_EXIST = &H4000
  1608. Public Const OF_REOPEN = &H8000
  1609.  
  1610. Public Const OFS_MAXPATHNAME = 128
  1611.  
  1612. ' OpenFile() Structure
  1613. Type OFSTRUCT
  1614.         cBytes As Byte
  1615.         fFixedDisk As Byte
  1616.         nErrCode As Integer
  1617.         Reserved1 As Integer
  1618.         Reserved2 As Integer
  1619.         szPathName(OFS_MAXPATHNAME) As Byte
  1620. End Type
  1621.  
  1622. Declare Function InterlockedIncrement Lib "kernel32" Alias "InterlockedIncrement" (lpAddend As Long) As Long
  1623. Declare Function InterlockedDecrement Lib "kernel32" Alias "InterlockedDecrement" (lpAddend As Long) As Long
  1624. Declare Function InterlockedExchange Lib "kernel32" Alias "InterlockedExchange" (Target As Long, ByVal Value As Long) As Long
  1625.  
  1626. ' Loader Routines
  1627. Declare Function GetModuleFileName Lib "kernel32" Alias "GetModuleFileNameA" (ByVal hModule As Long, ByVal lpFileName As String, ByVal nSize As Long) As Long
  1628. Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
  1629.  
  1630. 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 lpCurrentDriectory As String, lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) As Long
  1631.  
  1632. Declare Function SetProcessShutdownParameters Lib "kernel32" Alias "SetProcessShutdownParameters" (ByVal dwLevel As Long, ByVal dwFlags As Long) As Long
  1633. Declare Function GetProcessShutdownParameters Lib "kernel32" Alias "GetProcessShutdownParameters" (lpdwLevel As Long, lpdwFlags As Long) As Long
  1634.  
  1635. Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String)
  1636. Declare Sub GetStartupInfo Lib "kernel32" Alias "GetStartupInfoA" (lpStartupInfo As STARTUPINFO)
  1637. Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As String
  1638. Declare Function GetEnvironmentVariable Lib "kernel32" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String, ByVal nSize As Long) As Long
  1639. Declare Function SetEnvironmentVariable Lib "kernel32" Alias "SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As Long
  1640. Declare Function ExpandEnvironmentStrings Lib "kernel32" Alias "ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, ByVal nSize As Long) As Long
  1641.  
  1642. Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
  1643. Declare Function LoadLibraryEx Lib "kernel32" Alias "LoadLibraryExA" (ByVal lpLibFileName As String, ByVal hFile As Long, ByVal dwFlags As Long) As Long
  1644.  
  1645. Public Const DONT_RESOLVE_DLL_REFERENCES = &H1
  1646.  
  1647. Declare Function LoadModule Lib "kernel32" Alias "LoadModule" (ByVal lpModuleName As String, lpParameterBlock As Any) As Long
  1648. Declare Function FreeLibrary Lib "kernel32" Alias "FreeLibrary" (ByVal hLibModule As Long) As Long
  1649. Declare Function WinExec Lib "kernel32" Alias "WinExec" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Long
  1650.  
  1651. Declare Sub DebugBreak Lib "kernel32" Alias "DebugBreak" ()
  1652. Declare Function ContinueDebugEvent Lib "kernel32" Alias "ContinueDebugEvent" (ByVal dwProcessId As Long, ByVal dwThreadId As Long, ByVal dwContinueStatus As Long) As Long
  1653. Declare Function DebugActiveProcess Lib "kernel32" Alias "DebugActiveProcess" (ByVal dwProcessId As Long) As Long
  1654.  
  1655. Type CRITICAL_SECTION
  1656.     dummy As Long
  1657. End Type
  1658.  
  1659. Declare Sub InitializeCriticalSection Lib "kernel32" Alias "InitializeCriticalSection" (lpCriticalSection As CRITICAL_SECTION)
  1660.  
  1661. Declare Sub EnterCriticalSection Lib "kernel32" Alias "EnterCriticalSection" (lpCriticalSection As CRITICAL_SECTION)
  1662. Declare Sub LeaveCriticalSection Lib "kernel32" Alias "LeaveCriticalSection" (lpCriticalSection As CRITICAL_SECTION)
  1663. Declare Sub DeleteCriticalSection Lib "kernel32" Alias "DeleteCriticalSection" (lpCriticalSection As CRITICAL_SECTION)
  1664. Declare Function SetEvent Lib "kernel32" Alias "SetEvent" (ByVal hEvent As Long) As Long
  1665. Declare Function ResetEvent Lib "kernel32" Alias "ResetEvent" (ByVal hEvent As Long) As Long
  1666. Declare Function PulseEvent Lib "kernel32" Alias "PulseEvent" (ByVal hEvent As Long) As Long
  1667. Declare Function ReleaseSemaphore Lib "kernel32" Alias "ReleaseSemaphore" (ByVal hSemaphore As Long, ByVal lReleaseCount As Long, lpPreviousCount As Long) As Long
  1668. Declare Function ReleaseMutex Lib "kernel32" Alias "ReleaseMutex" (ByVal hMutex As Long) As Long
  1669. Declare Function WaitForSingleObject Lib "kernel32" Alias "WaitForSingleObject" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
  1670. Declare Function WaitForMultipleObjects Lib "kernel32" Alias "WaitForMultipleObjects" (ByVal nCount As Long, lpHandles As Long, ByVal bWaitAll As Long, ByVal dwMilliseconds As Long) As Long
  1671. Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
  1672. Declare Sub OutputDebugString Lib "kernel32" Alias "OutputDebugStringA" (ByVal lpOutputString As String)
  1673. Declare Function GetVersion Lib "kernel32" Alias "GetVersion" () As Long
  1674.  
  1675. Declare Function OpenFile Lib "kernel32" Alias "OpenFile" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long
  1676.  
  1677. ' GetTempFileName() Flags
  1678. '
  1679. Public Const TF_FORCEDRIVE = &H80
  1680.  
  1681. 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
  1682. Declare Function SetHandleCount Lib "kernel32" Alias "SetHandleCount" (ByVal wNumber As Long) As Long
  1683. Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long
  1684. 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
  1685. 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
  1686. 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
  1687.  
  1688. Public Const LOCKFILE_FAIL_IMMEDIATELY = &H1
  1689. Public Const LOCKFILE_EXCLUSIVE_LOCK = &H2
  1690.  
  1691. 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
  1692.  
  1693. Type BY_HANDLE_FILE_INFORMATION
  1694.         dwFileAttributes As Long
  1695.         ftCreationTime As FILETIME
  1696.         ftLastAccessTime As FILETIME
  1697.         ftLastWriteTime As FILETIME
  1698.         dwVolumeSerialNumber As Long
  1699.         nFileSizeHigh As Long
  1700.         nFileSizeLow As Long
  1701.         nNumberOfLinks As Long
  1702.         nFileIndexHigh As Long
  1703.         nFileIndexLow As Long
  1704. End Type
  1705.  
  1706. Declare Function GetFileInformationByHandle Lib "kernel32" Alias "GetFileInformationByHandle" (ByVal hFile As Long, lpFileInformation As BY_HANDLE_FILE_INFORMATION) As Long
  1707. Declare Function GetFileType Lib "kernel32" Alias "GetFileType" (ByVal hFile As Long) As Long
  1708. Declare Function GetFileSize Lib "kernel32" Alias "GetFileSize" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long
  1709. Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long
  1710. Declare Function SetStdHandle Lib "kernel32" Alias "SetStdHandle" (ByVal nStdHandle As Long, ByVal nHandle As Long) As Long
  1711. 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
  1712. 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
  1713. Declare Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As Long) As Long
  1714. 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
  1715. Declare Function SetEndOfFile Lib "kernel32" Alias "SetEndOfFile" (ByVal hFile As Long) As Long
  1716. Declare Function SetFilePointer Lib "kernel32" Alias "SetFilePointer" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
  1717. Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long
  1718. Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
  1719. Declare Function SetFileTime Lib "kernel32" Alias "SetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
  1720. Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long
  1721. 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
  1722.  
  1723. Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
  1724.  
  1725. Declare Function GlobalAlloc Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
  1726. Declare Function GlobalFree Lib "kernel32" Alias "GlobalFree" (ByVal hMem As Long) As Long
  1727. Declare Function GlobalHandle Lib "kernel32" Alias "GlobalHandle" (wMem As Any) As Long
  1728. Declare Function GlobalLock Lib "kernel32" Alias "GlobalLock" (ByVal hMem As Long) As Long
  1729. Declare Function GlobalReAlloc Lib "kernel32" Alias "GlobalReAlloc" (ByVal hMem As Long, ByVal dwBytes As Long, ByVal wFlags As Long) As Long
  1730.  
  1731. Declare Function GlobalSize Lib "kernel32" Alias "GlobalSize" (ByVal hMem As Long) As Long
  1732. Declare Function GlobalUnlock Lib "kernel32" Alias "GlobalUnlock" (ByVal hMem As Long) As Long
  1733. Declare Function GlobalFlags Lib "kernel32" Alias "GlobalFlags" (ByVal hMem As Long) As Long
  1734. Declare Sub GlobalMemoryStatus Lib "kernel32" Alias "GlobalMemoryStatus" (lpBuffer As MEMORYSTATUS)
  1735.  
  1736. Public Const LNOTIFY_OUTOFMEM = 0
  1737. Public Const LNOTIFY_MOVE = 1
  1738. Public Const LNOTIFY_DISCARD = 2
  1739.  
  1740. Declare Function LocalAlloc Lib "kernel32" Alias "LocalAlloc" (ByVal wFlags As Long, ByVal wBytes As Long) As Long
  1741. Declare Function LocalFree Lib "kernel32" Alias "LocalFree" (ByVal hMem As Long) As Long
  1742. Declare Function LocalHandle Lib "kernel32" Alias "LocalHandle" (wMem As Any) As Long
  1743. Declare Function LocalLock Lib "kernel32" Alias "LocalLock" (ByVal hMem As Long) As Long
  1744. Declare Function LocalReAlloc Lib "kernel32" Alias "LocalReAlloc" (ByVal hMem As Long, ByVal wBytes As Long, ByVal wFlags As Long) As Long
  1745.  
  1746. Declare Function LocalSize Lib "kernel32" Alias "LocalSize" (ByVal hMem As Long) As Long
  1747. Declare Function LocalUnlock Lib "kernel32" Alias "LocalUnlock" (ByVal hMem As Long) As Long
  1748. Declare Function LocalFlags Lib "kernel32" Alias "LocalFlags" (ByVal hMem As Long) As Long
  1749.  
  1750. Type MEMORY_BASIC_INFORMATION
  1751.      BaseAddress as Long
  1752.      AllocationBase as Long
  1753.      AllocationProtect As Long
  1754.      RegionSize As Long
  1755.      State As Long
  1756.      Protect As Long
  1757.      lType As Long
  1758. End Type
  1759.  
  1760. Declare Function FlushInstructionCache Lib "kernel32" Alias "FlushInstructionCache" (ByVal hProcess As Long, lpBaseAddress As Any, ByVal dwSize As Long) As Long
  1761. Declare Function VirtualAlloc Lib "kernel32" Alias "VirtualAlloc" (lpAddress As Any, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
  1762. Declare Function VirtualFree Lib "kernel32" Alias "VirtualFree" (lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
  1763. Declare Function VirtualProtect Lib "kernel32" Alias "VirtualProtect" (lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
  1764. Declare Function VirtualQuery Lib "kernel32" Alias "VirtualQuery" (lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long
  1765. Declare Function VirtualProtectEx Lib "kernel32" Alias "VirtualProtectEx" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal flNewProtect As Long, lpflOldProtect As Long) As Long
  1766. Declare Function VirtualQueryEx Lib "kernel32" Alias "VirtualQueryEx" (ByVal hProcess As Long, lpAddress As Any, lpBuffer As MEMORY_BASIC_INFORMATION, ByVal dwLength As Long) As Long
  1767. Declare Function HeapCreate Lib "kernel32" Alias "HeapCreate" (ByVal flOptions As Long, ByVal dwInitialSize As Long, ByVal dwMaximumSize As Long) As Long
  1768. Declare Function HeapDestroy Lib "kernel32" Alias "HeapDestroy" (ByVal hHeap As Long) As Long
  1769. Declare Function HeapAlloc Lib "kernel32" Alias "HeapAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, ByVal dwBytes As Long) As Long
  1770. Declare Function HeapReAlloc Lib "kernel32" Alias "HeapReAlloc" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any, ByVal dwBytes As Long) As Long
  1771. Declare Function HeapFree Lib "kernel32" Alias "HeapFree" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long
  1772. Declare Function HeapSize Lib "kernel32" Alias "HeapSize" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long
  1773. Declare Function GetProcessHeap Lib "kernel32" Alias "GetProcessHeap" () As Long
  1774. 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
  1775. Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  1776. Declare Function GetCurrentProcess Lib "kernel32" Alias "GetCurrentProcess" () As Long
  1777. Declare Function GetCurrentProcessId Lib "kernel32" Alias "GetCurrentProcessId" () As Long
  1778. Declare Sub ExitProcess Lib "kernel32" Alias "ExitProcess" (ByVal uExitCode As Long)
  1779. Declare Function TerminateProcess Lib "kernel32" Alias "TerminateProcess" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
  1780. Declare Function GetExitCodeProcess Lib "kernel32" Alias "GetExitCodeProcess" (ByVal hProcess As Long, lpExitCode As Long) As Long
  1781.  
  1782. Declare Function GetLastError Lib "kernel32" Alias "GetLastError" () As Long
  1783. Declare Sub SetLastError Lib "kernel32" Alias "SetLastError" (ByVal dwErrCode As Long)
  1784.  
  1785. Public Const SLE_ERROR = &H1
  1786. Public Const SLE_MINORERROR = &H2
  1787. Public Const SLE_WARNING = &H3
  1788.  
  1789. Declare Sub SetLastErrorEx Lib "user32" Alias "SetLastErrorEx" (ByVal dwErrCode As Long, ByVal dwType As Long)
  1790. Declare Function GetOverlappedResult Lib "kernel32" Alias "GetOverlappedResult" (ByVal hFile As Long, lpOverlapped As OVERLAPPED, lpNumberOfBytesTransferred As Long, ByVal bWait As Long) As Long
  1791.  
  1792. Public Const SEM_FAILCRITICALERRORS = &H1
  1793. Public Const SEM_NOGPFAULTERRORBOX = &H2
  1794. Public Const SEM_NOOPENFILEERRORBOX = &H8000
  1795.  
  1796. Declare Sub SetDebugErrorLevel Lib "user32" Alias "SetDebugErrorLevel" (ByVal dwLevel As Long)
  1797. Declare Function SetErrorMode Lib "kernel32" Alias "SetErrorMode" (ByVal wMode As Long) As Long
  1798.  
  1799. Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  1800. Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
  1801. Declare Function GetThreadContext Lib "kernel32" Alias "GetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long
  1802. Declare Function SetThreadContext Lib "kernel32" Alias "SetThreadContext" (ByVal hThread As Long, lpContext As CONTEXT) As Long
  1803. Declare Function SuspendThread Lib "kernel32" Alias "SuspendThread" (ByVal hThread As Long) As Long
  1804. Declare Function ResumeThread Lib "kernel32" Alias "ResumeThread" (ByVal hThread As Long) As Long
  1805.  
  1806. Declare Function FindResource Lib "kernel32" Alias "FindResourceA" (ByVal hInstance As Long, ByVal lpName As String, ByVal lpType As String) As Long
  1807. Declare Function FindResourceEx Lib "kernel32" Alias "FindResourceExA" (ByVal hModule As Long, ByVal lpType As String, ByVal lpName As String, ByVal wLanguage As Long) As Long
  1808. Declare Function BeginUpdateResource Lib "kernel32" Alias "BeginUpdateResourceA" (ByVal pFileName As String, ByVal bDeleteExistingResources As Long) As Long
  1809. 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
  1810. Declare Function EndUpdateResource Lib "kernel32" Alias "EndUpdateResourceA" (ByVal hUpdate As Long, ByVal fDiscard As Long) As Long
  1811. Declare Function LoadResource Lib "kernel32" Alias "LoadResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long
  1812. Declare Function LockResource Lib "kernel32" Alias "LockResource" (ByVal hResData As Long) As Long
  1813. Declare Function SizeofResource Lib "kernel32" Alias "SizeofResource" (ByVal hInstance As Long, ByVal hResInfo As Long) As Long
  1814.  
  1815. ' Predefined Resource Types
  1816. Public Const RT_CURSOR = 1&
  1817. Public Const RT_BITMAP = 2&
  1818. Public Const RT_ICON = 3&
  1819. Public Const RT_MENU = 4&
  1820. Public Const RT_DIALOG = 5&
  1821. Public Const RT_STRING = 6&
  1822. Public Const RT_FONTDIR = 7&
  1823. Public Const RT_FONT = 8&
  1824. Public Const RT_ACCELERATOR = 9&
  1825. Public Const RT_RCDATA = 10&
  1826.  
  1827. Declare Function InitAtomTable Lib "kernel32" Alias "InitAtomTable" (ByVal nSize As Long) As Long
  1828. Declare Function AddAtom Lib "kernel32" Alias "AddAtomA" (ByVal lpString As String) As Integer
  1829. Declare Function DeleteAtom Lib "kernel32" Alias "DeleteAtom" (ByVal nAtom As Integer) As Integer
  1830. Declare Function FindAtom Lib "kernel32" Alias "FindAtomA" (ByVal lpString As String) As Integer
  1831. Declare Function GetAtomName Lib "kernel32" Alias "GetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long
  1832. Declare Function GlobalAddAtom Lib "kernel32" Alias "GlobalAddAtomA" (ByVal lpString As String) As Integer
  1833. Declare Function GlobalDeleteAtom Lib "kernel32" Alias "GlobalDeleteAtom" (ByVal nAtom As Integer) As Integer
  1834. Declare Function GlobalFindAtom Lib "kernel32" Alias "GlobalFindAtomA" (ByVal lpString As String) As Integer
  1835. Declare Function GlobalGetAtomName Lib "kernel32" Alias "GlobalGetAtomNameA" (ByVal nAtom As Integer, ByVal lpBuffer As String, ByVal nSize As Long) As Long
  1836.  
  1837. ' User Profile Routines
  1838. ' NOTE: The lpKeyName argument for GetProfileString, WriteProfileString,
  1839. '       GetPrivateProfileString, and WritePrivateProfileString can be either
  1840. '       a string or NULL.  This is why the argument is defined as "As Any".
  1841. '          For example, to pass a string specify   ByVal "wallpaper"
  1842. '          To pass NULL specify                    ByVal 0&
  1843. '       You can also pass NULL for the lpString argument for WriteProfileString
  1844. '       and WritePrivateProfileString
  1845. Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long
  1846.  
  1847. 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
  1848.  
  1849. Declare Function WriteProfileString Lib "kernel32" Alias "WriteProfileStringA" (ByVal lpszSection As String, ByVal lpszKeyName As String, ByVal lpszString As String) As Long
  1850.  
  1851. Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
  1852. Declare Function WriteProfileSection Lib "kernel32" Alias "WriteProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String) As Long
  1853. 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
  1854.  
  1855. Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
  1856.  
  1857. Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
  1858.  
  1859. 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
  1860. Declare Function WritePrivateProfileSection Lib "kernel32" Alias "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, ByVal lpFileName As String) As Long
  1861.  
  1862. Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  1863. Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
  1864. Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
  1865. Declare Function SetCurrentDirectory Lib "kernel32" Alias "SetCurrentDirectoryA" (ByVal lpPathName As String) As Long
  1866. Declare Function GetCurrentDirectory Lib "kernel32" Alias "GetCurrentDirectory" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
  1867. Declare Function GetDiskFreeSpace Lib "kernel32" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTtoalNumberOfClusters As Long) As Long
  1868. Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
  1869. Declare Function CreateDirectoryEx Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
  1870. Declare Function RemoveDirectory Lib "kernel32" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long
  1871. Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long
  1872.  
  1873. Public Const DDD_RAW_TARGET_PATH = &H1
  1874. Public Const DDD_REMOVE_DEFINITION = &H2
  1875. Public Const DDD_EXACT_MATCH_ON_REMOVE = &H4
  1876.  
  1877. Public Const MAX_PATH = 260
  1878.  
  1879. Declare Function DefineDosDevice Lib "kernel32" Alias "DefineDosDeviceA" (ByVal dwFlags As Long, ByVal lpDeviceName As String, ByVal lpTargetPath As String) As Long
  1880. Declare Function QueryDosDevice Lib "kernel32" Alias "QueryDosDeviceA" (ByVal lpDeviceName As String, ByVal lpTargetPath As String, ByVal ucchMax As Long) As Long
  1881. 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
  1882. Declare Function SetFileAttributes Lib "kernel32" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long
  1883. Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
  1884. Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
  1885. Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  1886. Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  1887. 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, ByVal lpFilePart As String) As Long
  1888. Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
  1889. Declare Function MoveFile Lib "kernel32" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long
  1890. Declare Function MoveFileEx Lib "kernel32" Alias "MoveFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal dwFlags As Long) As Long
  1891.  
  1892. Public Const MOVEFILE_REPLACE_EXISTING = &H1
  1893. Public Const MOVEFILE_COPY_ALLOWED = &H2
  1894. Public Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4
  1895.  
  1896. Type EVENTLOGRECORD
  1897.      Length as Long     '  Length of full record
  1898.      Reserved as Long     '  Used by the service
  1899.      RecordNumber as Long     '  Absolute record number
  1900.      TimeGenerated as Long     '  Seconds since 1-1-1970
  1901.      TimeWritten as Long     'Seconds since 1-1-1970
  1902.      EventID as Long
  1903.      EventType as Integer
  1904.      NumStrings as Integer
  1905.      EventCategory as Integer
  1906.      ReservedFlags as Integer     '  For use with paired events (auditing)
  1907.      ClosingRecordNumber as Long     'For use with paired events (auditing)
  1908.      StringOffset as Long     '  Offset from beginning of record
  1909.      UserSidLength as Long
  1910.      UserSidOffset as Long
  1911.      DataLength as Long
  1912.      DataOffset as Long     '  Offset from beginning of record
  1913. End Type
  1914.  
  1915. 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
  1916. 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
  1917. 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
  1918. Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long
  1919. Declare Function SetVolumeLabel Lib "kernel32" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long
  1920. Declare Sub SetFileApisToOEM Lib "kernel32" Alias "SetFileApisToOEM" ()
  1921. 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
  1922. Declare Function ClearEventLog Lib "advapi32.dll" Alias "ClearEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long
  1923. Declare Function BackupEventLog Lib "advapi32.dll" Alias "BackupEventLogA" (ByVal hEventLog As Long, ByVal lpBackupFileName As String) As Long
  1924. Declare Function CloseEventLog Lib "advapi32.dll" Alias "CloseEventLog" (ByVal hEventLog As Long) As Long
  1925. Declare Function DeregisterEventSource Lib "advapi32.dll" Alias "DeregisterEventSource" (ByVal hEventLog As Long) As Long
  1926. Declare Function GetNumberOfEventLogRecords Lib "advapi32.dll" Alias "GetNumberOfEventLogRecords" (ByVal hEventLog As Long, NumberOfRecords As Long) As Long
  1927. Declare Function GetOldestEventLogRecord Lib "advapi32.dll" Alias "GetOldestEventLogRecord" (ByVal hEventLog As Long, OldestRecord As Long) As Long
  1928. Declare Function OpenEventLog Lib "advapi32.dll" Alias "OpenEventLog" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long
  1929. Declare Function RegisterEventSource Lib "advapi32.dll" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long
  1930. Declare Function OpenBackupEventLog Lib "advapi32.dll" Alias "OpenBackupEventLogA" (ByVal lpUNCServerName As String, ByVal lpFileName As String) As Long
  1931. 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
  1932. 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
  1933.  
  1934. ' Security APIs
  1935. Public Const TokenUser = 1
  1936. Public Const TokenGroups = 2
  1937. Public Const TokenPrivileges = 3
  1938. Public Const TokenOwner = 4
  1939. Public Const TokenPrimaryGroup = 5
  1940. Public Const TokenDefaultDacl = 6
  1941. Public Const TokenSource = 7
  1942. Public Const TokenType = 8
  1943. Public Const TokenImpersonationLevel = 9
  1944. Public Const TokenStatistics = 10
  1945.  
  1946. Type TOKEN_GROUPS
  1947.     GroupCount As Long
  1948.     Groups(ANYSIZE_ARRAY) As SID_AND_ATTRIBUTES
  1949. End Type
  1950.  
  1951. Declare Function DuplicateToken Lib "advapi32.dll" Alias "DuplicateToken" (ByVal ExistingTokenHandle As Long, ImpersonationLevel As Integer, DuplicateTokenHandle As Long) As Long
  1952. 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
  1953. Declare Function ImpersonateNamedPipeClient Lib "advapi32.dll" Alias "ImpersonateNamedPipeClient" (ByVal hNamedPipe As Long) As Long
  1954. Declare Function ImpersonateSelf Lib "advapi32.dll" Alias "ImpersonateSelf" (ImpersonationLevel As Integer) As Long
  1955. Declare Function RevertToSelf Lib "advapi32.dll" Alias "RevertToSelf" () As Long
  1956. 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
  1957.  
  1958. Type TOKEN_PRIVILEGES
  1959.     PrivilegeCount As Long
  1960.     Privileges(ANYSIZE_ARRAY) As LUID_AND_ATTRIBUTES
  1961. End Type
  1962.  
  1963. Declare Function OpenProcessToken Lib "advapi32.dll" Alias "OpenProcessToken" (ByVal ProcessHandle As Long, ByVal DesiredAccess As Long, TokenHandle As Long) As Long
  1964. 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
  1965.  
  1966. 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
  1967. Declare Function SetTokenInformation Lib "advapi32.dll" Alias "SetTokenInformation" (ByVal TokenHandle As Long, TokenInformationClass As Integer, TokenInformation As Any, ByVal TokenInformationLength As Long) As Long
  1968. 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
  1969. 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
  1970. Declare Function PrivilegeCheck Lib "advapi32.dll" Alias "PrivilegeCheck" (ByVal ClientToken As Long, RequiredPrivileges As PRIVILEGE_SET, ByVal pfResult As Long) As Long
  1971. 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
  1972. Declare Function ObjectOpenAuditAlarm Lib "kernel32" 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, ByVal GenerateOnClose As Long) As Long
  1973. 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
  1974. Declare Function ObjectCloseAuditAlarm Lib "advapi32.dll" Alias "ObjectCloseAuditAlarmA" (ByVal SubsystemName As String, HandleId As Any, ByVal GenerateOnClose As Long) As Long
  1975. 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
  1976. Declare Function IsValidSid Lib "advapi32.dll" Alias "IsValidSid" (pSid As Any) As Long
  1977. Declare Function EqualSid Lib "advapi32.dll" Alias "EqualSid" (pSid1 As Any, pSid2 As Any) As Long
  1978. Declare Function EqualPrefixSid Lib "advapi32.dll" Alias "EqualPrefixSid" (pSid1 As Any, pSid2 As Any) As Long
  1979. Declare Function GetSidLengthRequired Lib "advapi32.dll" Alias "GetSidLengthRequired" (ByVal nSubAuthorityCount As Byte) As Long
  1980. 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
  1981. Declare Sub FreeSid Lib "advapi32.dll" Alias "FreeSid" (pSid As Any)
  1982. Declare Function InitializeSid Lib "advapi32.dll" Alias "InitializeSid" (Sid As Any, pIdentifierAuthority As SID_IDENTIFIER_AUTHORITY, ByVal nSubAuthorityCount As Byte) As Long
  1983. Declare Function GetSidIdentifierAuthority Lib "advapi32.dll" Alias "GetSidIdentifierAuthority" (pSid As Any) As SID_IDENTIFIER_AUTHORITY
  1984. Declare Function GetSidSubAuthority Lib "advapi32.dll" Alias "GetSidSubAuthority" (pSid As Any, ByVal nSubAuthority As Long) As Long
  1985. Declare Function GetSidSubAuthorityCount Lib "advapi32.dll" Alias "GetSidSubAuthorityCount" (pSid As Any) As Byte
  1986. Declare Function GetLengthSid Lib "advapi32.dll" Alias "GetLengthSid" (pSid As Any) As Long
  1987. Declare Function CopySid Lib "advapi32.dll" Alias "CopySid" (ByVal nDestinationSidLength As Long, pDestinationSid As Any, pSourceSid As Any) As Long
  1988. Declare Function AreAllAccessesGranted Lib "advapi32.dll" Alias "AreAllAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long
  1989. Declare Function AreAnyAccessesGranted Lib "advapi32.dll" Alias "AreAnyAccessesGranted" (ByVal GrantedAccess As Long, ByVal DesiredAccess As Long) As Long
  1990. Declare Sub MapGenericMask Lib "advapi32.dll" Alias "MapGenericMask" (AccessMask As Long, GenericMapping As GENERIC_MAPPING)
  1991. Declare Function IsValidAcl Lib "advapi32.dll" Alias "IsValidAcl" (pAcl As ACL) As Long
  1992. Declare Function InitializeAcl Lib "advapi32.dll" Alias "InitializeAcl" (pAcl As ACL, ByVal nAclLength As Long, ByVal dwAclRevision As Long) As Long
  1993. Declare Function GetAclInformation Lib "advapi32.dll" Alias "GetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long
  1994. Declare Function SetAclInformation Lib "advapi32.dll" Alias "SetAclInformation" (pAcl As ACL, pAclInformation As Any, ByVal nAclInformationLength As Long, ByVal dwAclInformationClass As Integer) As Long
  1995. 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
  1996. Declare Function DeleteAce Lib "advapi32.dll" Alias "DeleteAce" (pAcl As ACL, ByVal dwAceIndex As Long) As Long
  1997. Declare Function GetAce Lib "advapi32.dll" Alias "GetAce" (pAcl As ACL, ByVal dwAceIndex As Long, pAce As Any) As Long
  1998. Declare Function AddAccessAllowedAce Lib "advapi32.dll" Alias "AddAccessAllowedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long
  1999. Declare Function AddAccessDeniedAce Lib "advapi32.dll" Alias "AddAccessDeniedAce" (pAcl As ACL, ByVal dwAceRevision As Long, ByVal AccessMask As Long, pSid As Any) As Long
  2000. 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
  2001. Declare Function FindFirstFreeAce Lib "advapi32.dll" Alias "FindFirstFreeAce" (pAcl As ACL, pAce As Long) As Long
  2002. Declare Function InitializeSecurityDescriptor Lib "advapi32.dll" Alias "InitializeSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR, ByVal dwRevision As Long) As Long
  2003. Declare Function IsValidSecurityDescriptor Lib "advapi32.dll" Alias "IsValidSecurityDescriptor" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
  2004. Declare Function GetSecurityDescriptorLength Lib "advapi32.dll" Alias "GetSecurityDescriptorLength" (pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
  2005.  
  2006. Declare Function GetSecurityDescriptorControl Lib "advapi32.dll" Alias "GetSecurityDescriptorControl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pControl As Integer, lpdwRevision As Long) As Long
  2007. 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
  2008. Declare Function GetSecurityDescriptorDacl Lib "advapi32.dll" Alias "GetSecurityDescriptorDacl" (pSecurityDescriptor As SECURITY_DESCRIPTOR, lpbDaclPresent As Long, pDacl As ACL, lpbDaclDefaulted As Long) As Long
  2009. 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
  2010. 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
  2011. Declare Function SetSecurityDescriptorOwner Lib "advapi32.dll" Alias "SetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal bOwnerDefaulted As Long) As Long
  2012. Declare Function GetSecurityDescriptorOwner Lib "advapi32.dll" Alias "GetSecurityDescriptorOwner" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pOwner As Any, ByVal lpbOwnerDefaulted As Long) As Long
  2013. Declare Function SetSecurityDescriptorGroup Lib "advapi32.dll" Alias "SetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal bGroupDefaulted As Long) As Long
  2014. Declare Function GetSecurityDescriptorGroup Lib "advapi32.dll" Alias "GetSecurityDescriptorGroup" (pSecurityDescriptor As SECURITY_DESCRIPTOR, pGroup As Any, ByVal lpbGroupDefaulted As Long) As Long
  2015. 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
  2016. 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
  2017. 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
  2018. Declare Function DestroyPrivateObjectSecurity Lib "advapi32.dll" Alias "DestroyPrivateObjectSecurity" (ObjectDescriptor As SECURITY_DESCRIPTOR) As Long
  2019. Declare Function MakeSelfRelativeSD Lib "advapi32.dll" Alias "MakeSelfRelativeSD" (pAbsoluteSecurityDescriptor As SECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor As SECURITY_DESCRIPTOR, lpdwBufferLength As Long) As Long
  2020. 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
  2021. Declare Function SetFileSecurity Lib "advapi32.dll" Alias "SetFileSecurityA" (ByVal lpFileName As String, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
  2022. 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
  2023. Declare Function SetKernelObjectSecurity Lib "advapi32.dll" Alias "SetKernelObjectSecurity" (ByVal Handle As Long, ByVal SecurityInformation As Long, SecurityDescriptor As SECURITY_DESCRIPTOR) As Long
  2024. Declare Function FindFirstChangeNotification Lib "kernel32" Alias "FindFirstChangeNotificationA" (ByVal lpPathName As String, ByVal bWatchSubtree As Long, ByVal dwNotifyFilter As Long) As Long
  2025. Declare Function FindNextChangeNotification Lib "kernel32" Alias "FindNextChangeNotification" (ByVal hChangeHandle As Long) As Long
  2026. Declare Function FindCloseChangeNotification Lib "kernel32" Alias "FindCloseChangeNotification" (ByVal hChangeHandle As Long) As Long
  2027. Declare Function VirtualLock Lib "kernel32" Alias "VirtualLock" (lpAddress As Any, ByVal dwSize As Long) As Long
  2028. Declare Function VirtualUnlock Lib "kernel32" Alias "VirtualUnlock" (lpAddress As Any, ByVal dwSize As Long) As Long
  2029. 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
  2030. Declare Function SetPriorityClass Lib "kernel32" Alias "SetPriorityClass" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
  2031. Declare Function GetPriorityClass Lib "kernel32" Alias "GetPriorityClass" (ByVal hProcess As Long) As Long
  2032.  
  2033. Type CONTEXT
  2034.     FltF0 As Double
  2035.     FltF1 As Double
  2036.     FltF2 As Double
  2037.     FltF3 As Double
  2038.     FltF4 As Double
  2039.     FltF5 As Double
  2040.     FltF6 As Double
  2041.     FltF7 As Double
  2042.     FltF8 As Double
  2043.     FltF9 As Double
  2044.     FltF10 As Double
  2045.     FltF11 As Double
  2046.     FltF12 As Double
  2047.     FltF13 As Double
  2048.     FltF14 As Double
  2049.     FltF15 As Double
  2050.     FltF16 As Double
  2051.     FltF17 As Double
  2052.     FltF18 As Double
  2053.     FltF19 As Double
  2054.     FltF20 As Double
  2055.     FltF21 As Double
  2056.     FltF22 As Double
  2057.     FltF23 As Double
  2058.     FltF24 As Double
  2059.     FltF25 As Double
  2060.     FltF26 As Double
  2061.     FltF27 As Double
  2062.     FltF28 As Double
  2063.     FltF29 As Double
  2064.     FltF30 As Double
  2065.     FltF31 As Double
  2066.  
  2067.     IntV0 As Double
  2068.     IntT0 As Double
  2069.     IntT1 As Double
  2070.     IntT2 As Double
  2071.     IntT3 As Double
  2072.     IntT4 As Double
  2073.     IntT5 As Double
  2074.     IntT6 As Double
  2075.     IntT7 As Double
  2076.     IntS0 As Double
  2077.     IntS1 As Double
  2078.     IntS2 As Double
  2079.     IntS3 As Double
  2080.     IntS4 As Double
  2081.     IntS5 As Double
  2082.     IntFp As Double
  2083.     IntA0 As Double
  2084.     IntA1 As Double
  2085.     IntA2 As Double
  2086.     IntA3 As Double
  2087.     IntA4 As Double
  2088.     IntA5 As Double
  2089.     IntT8 As Double
  2090.     IntT9 As Double
  2091.     IntT10 As Double
  2092.     IntT11 As Double
  2093.     IntRa As Double
  2094.     IntT12 As Double
  2095.     IntAt As Double
  2096.     IntGp As Double
  2097.     IntSp As Double
  2098.     IntZero As Double
  2099.  
  2100.     Fpcr As Double
  2101.     SoftFpcr As Double
  2102.  
  2103.     Fir As Double
  2104.     Psr As Long
  2105.  
  2106.     ContextFlags As Long
  2107.     Fill(4) As Long
  2108. End Type
  2109.  
  2110. Type EXCEPTION_POINTERS
  2111.     pExceptionRecord As EXCEPTION_RECORD
  2112.     ContextRecord As CONTEXT
  2113. End Type
  2114.  
  2115. Type LDT_BYTES    ' Defined for use in LDT_ENTRY Type
  2116.     BaseMid As Byte
  2117.     Flags1 As Byte
  2118.     Flags2 As Byte
  2119.     BaseHi As Byte
  2120. End Type
  2121.  
  2122. Type LDT_ENTRY
  2123.     LimitLow As Integer
  2124.     BaseLow As Integer
  2125.     HighWord As Long    ' Can use LDT_BYTES Type
  2126. End Type
  2127.  
  2128. Declare Sub FatalExit Lib "kernel32" Alias "FatalExit" (ByVal code As Long)
  2129. Declare Function GetEnvironmentStrings Lib "kernel32" Alias "GetEnvironmentStringsA" () As String
  2130. Declare Sub RaiseException Lib "kernel32" Alias "RaiseException" (ByVal dwExceptionCode As Long, ByVal dwExceptionFlags As Long, ByVal nNumberOfArguments As Long, lpArguments As Long)
  2131. Declare Function UnhandledExceptionFilter Lib "kernel32" Alias "UnhandledExceptionFilter" (ExceptionInfo As EXCEPTION_POINTERS) As Long
  2132.  
  2133. 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
  2134. 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
  2135. Declare Function GetCurrentThread Lib "kernel32" Alias "GetCurrentThread" () As Long
  2136. Declare Function GetCurrentThreadId Lib "kernel32" Alias "GetCurrentThreadId" () As Long
  2137. Declare Function SetThreadPriority Lib "kernel32" Alias "SetThreadPriority" (ByVal hThread As Long, ByVal nPriority As Long) As Long
  2138. Declare Function GetThreadPriority Lib "kernel32" Alias "GetThreadPriority" (ByVal hThread As Long) As Long
  2139. 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
  2140. Declare Sub ExitThread Lib "kernel32" Alias "ExitThread" (ByVal dwExitCode As Long)
  2141. Declare Function TerminateThread Lib "kernel32" Alias "TerminateThread" (ByVal hThread As Long, ByVal dwExitCode As Long) As Long
  2142. Declare Function GetExitCodeThread Lib "kernel32" Alias "GetExitCodeThread" (ByVal hThread As Long, lpExitCode As Long) As Long
  2143. Declare Function GetThreadSelectorEntry Lib "kernel32" Alias "GetThreadSelectorEntry" (ByVal hThread As Long, ByVal dwSelector As Long, lpSelectorEntry As LDT_ENTRY) As Long
  2144.  
  2145. ' COMM declarations
  2146. Declare Function SetCommState Lib "kernel32" Alias "SetCommState" (ByVal hCommDev As Long, lpDCB As DCB) As Long
  2147. Declare Function SetCommTimeouts Lib "kernel32" Alias "SetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
  2148. Declare Function GetCommState Lib "kernel32" Alias "GetCommState" (ByVal nCid As Long, lpDCB As DCB) As Long
  2149. Declare Function GetCommTimeouts Lib "kernel32" Alias "GetCommTimeouts" (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
  2150. Declare Function PurgeComm Lib "kernel32" Alias "PurgeComm" (ByVal hFile As Long, ByVal dwFlags As Long) As Long
  2151. Declare Function BuildCommDCB Lib "kernel32" Alias "BuildCommDCBA" (ByVal lpDef As String, lpDCB As DCB) As Long
  2152. Declare Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long
  2153. Declare Function TransmitCommChar Lib "kernel32" Alias "TransmitCommChar" (ByVal nCid As Long, ByVal cChar As Byte) As Long
  2154. Declare Function SetCommBreak Lib "kernel32" Alias "SetCommBreak" (ByVal nCid As Long) As Long
  2155. Declare Function SetCommMask Lib "kernel32" Alias "SetCommMask" (ByVal hFile As Long, ByVal dwEvtMask As Long) As Long
  2156. Declare Function ClearCommBreak Lib "kernel32" Alias "ClearCommBreak" (ByVal nCid As Long) As Long
  2157. Declare Function ClearCommError Lib "kernel32" Alias "ClearCommError" (ByVal hFile As Long, lpErrors As Long, lpStat As COMSTAT) As Long
  2158. Declare Function SetupComm Lib "kernel32" Alias "SetupComm" (ByVal hFile As Long, ByVal dwInQueue As Long, ByVal dwOutQueue As Long) As Long
  2159. Declare Function EscapeCommFunction Lib "kernel32" Alias "EscapeCommFunction" (ByVal nCid As Long, ByVal nFunc As Long) As Long
  2160. Declare Function GetCommMask Lib "kernel32" Alias "GetCommMask" (ByVal hFile As Long, lpEvtMask As Long) As Long
  2161. Declare Function GetCommProperties Lib "kernel32" Alias "GetCommProperties" (ByVal hFile As Long, lpCommProp As COMMPROP) As Long
  2162. Declare Function GetCommModemStatus Lib "kernel32" Alias "GetCommModemStatus" (ByVal hFile As Long, lpModemStat As Long) As Long
  2163. Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long
  2164.  
  2165. 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
  2166. 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
  2167. Declare Function PrepareTape Lib "kernel32" Alias "PrepareTape" (ByVal hDevice As Long, ByVal dwOperation As Long, ByVal bimmediate As Long) As Long
  2168. Declare Function EraseTape Lib "kernel32" Alias "EraseTape" (ByVal hDevice As Long, ByVal dwEraseType As Long, ByVal bimmediate As Long) As Long
  2169. 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
  2170. 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
  2171. Declare Function GetTapeStatus Lib "kernel32" Alias "GetTapeStatus" (ByVal hDevice As Long) As Long
  2172. Declare Function GetTapeParameters Lib "kernel32" Alias "GetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpdwSize As Long, lpTapeInformation As Any) As Long
  2173.  
  2174. Public Const GET_TAPE_MEDIA_INFORMATION = 0
  2175. Public Const GET_TAPE_DRIVE_INFORMATION = 1
  2176.  
  2177. Declare Function SetTapeParameters Lib "kernel32" Alias "SetTapeParameters" (ByVal hDevice As Long, ByVal dwOperation As Long, lpTapeInformation As Any) As Long
  2178.  
  2179. Public Const SET_TAPE_MEDIA_INFORMATION = 0
  2180. Public Const SET_TAPE_DRIVE_INFORMATION = 1
  2181.  
  2182. Declare Function Beep Lib "kernel32" Alias "Beep" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
  2183.  
  2184. Declare Function MulDiv Lib "kernel32" Alias "MulDiv" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long
  2185.  
  2186. Declare Sub GetSystemTime Lib "kernel32" Alias "GetSystemTime" (lpSystemTime As SYSTEMTIME)
  2187. Declare Function SetSystemTime Lib "kernel32" Alias "SetSystemTime" (lpSystemTime As SYSTEMTIME) As Long
  2188. Declare Sub GetLocalTime Lib "kernel32" Alias "GetLocalTime" (lpSystemTime As SYSTEMTIME)
  2189. Declare Function SetLocalTime Lib "kernel32" Alias "SetLocalTime" (lpSystemTime As SYSTEMTIME) As Long
  2190. Declare Sub GetSystemInfo Lib "kernel32" Alias "GetSystemInfo" (lpSystemInfo As SYSTEM_INFO)
  2191.  
  2192. Type TIME_ZONE_INFORMATION
  2193.         Bias As Long
  2194.         StandardName(32) As Integer
  2195.         StandardDate As SYSTEMTIME
  2196.         StandardBias As Long
  2197.         DaylightName(32) As Integer
  2198.         DaylightDate As SYSTEMTIME
  2199.         DaylightBias As Long
  2200. End Type
  2201.  
  2202. Declare Function GetTimeZoneInformation Lib "kernel32" Alias "GetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
  2203. Declare Function SetTimeZoneInformation Lib "kernel32" Alias "SetTimeZoneInformation" (lpTimeZoneInformation As TIME_ZONE_INFORMATION) As Long
  2204.  
  2205. ' Routines to convert back and forth
  2206. ' between system time and file time
  2207.  
  2208. Declare Function SystemTimeToFileTime Lib "kernel32" Alias "SystemTimeToFileTime" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
  2209. Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
  2210. Declare Function LocalFileTimeToFileTime Lib "kernel32" Alias "LocalFileTimeToFileTime" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
  2211. Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
  2212. Declare Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long
  2213. Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long
  2214. Declare Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long
  2215. Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
  2216. 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
  2217.  
  2218. Public Const FORMAT_MESSAGE_ALLOCATE_BUFFER = &H100
  2219. Public Const FORMAT_MESSAGE_IGNORE_INSERTS = &H200
  2220. Public Const FORMAT_MESSAGE_FROM_STRING = &H400
  2221. Public Const FORMAT_MESSAGE_FROM_HMODULE = &H800
  2222. Public Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000
  2223. Public Const FORMAT_MESSAGE_ARGUMENT_ARRAY = &H2000
  2224. Public Const FORMAT_MESSAGE_MAX_WIDTH_MASK = &HFF
  2225.  
  2226. Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
  2227. Declare Function ConnectNamedPipe Lib "kernel32" Alias "ConnectNamedPipe" (ByVal hNamedPipe As Long, lpOverlapped As OVERLAPPED) As Long
  2228. Declare Function DisconnectNamedPipe Lib "kernel32" Alias "DisconnectNamedPipe" (ByVal hNamedPipe As Long) As Long
  2229. Declare Function SetNamedPipeHandleState Lib "kernel32" Alias "SetNamedPipeHandleState" (ByVal hNamedPipe As Long, lpMode As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long) As Long
  2230. 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
  2231. 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
  2232. 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
  2233.  
  2234. 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
  2235. 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
  2236. Declare Function SetMailslotInfo Lib "kernel32" Alias "SetMailslotInfo" (ByVal hMailslot As Long, ByVal lReadTimeout As Long) As Long
  2237. 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
  2238. Declare Function FlushViewOfFile Lib "kernel32" Alias "FlushViewOfFile" (lpBaseAddress As Any, ByVal dwNumberOfBytesToFlush As Long) As Long
  2239. Declare Function UnmapViewOfFile Lib "kernel32" Alias "UnmapViewOfFile" (lpBaseAddress As Any) As Long
  2240.  
  2241. Declare Function lstrcmp Lib "kernel32" Alias "lstrcmpA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  2242. Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  2243. Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long
  2244.  
  2245. Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
  2246. Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
  2247. Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long
  2248. Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long
  2249. Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long
  2250. Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As Long
  2251.  
  2252. Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long
  2253. Declare Function hwrite Lib "kernel32" Alias "_hwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal lBytes As Long) As Long
  2254.  
  2255. Declare Function TlsAlloc Lib "kernel32" Alias "TlsAlloc" () As Long
  2256.  
  2257. Public Const TLS_OUT_OF_INDEXES = &HFFFF
  2258.  
  2259. Declare Function TlsGetValue Lib "kernel32" Alias "TlsGetValue" (ByVal dwTlsIndex As Long) As Long
  2260. Declare Function TlsSetValue Lib "kernel32" Alias "TlsSetValue" (ByVal dwTlsIndex As Long, lpTlsValue As Any) As Long
  2261. Declare Function TlsFree Lib "kernel32" Alias "TlsFree" (ByVal dwTlsIndex As Long) As Long
  2262. Declare Function SleepEx Lib "kernel32" Alias "SleepEx" (ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long
  2263. Declare Function WaitForSingleObjectEx Lib "kernel32" Alias "WaitForSingleObjectEx" (ByVal hHandle As Long, ByVal dwMilliseconds As Long, ByVal bAlertable As Long) As Long
  2264. 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
  2265. 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
  2266. 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
  2267. 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
  2268.  
  2269. ' Stream ID type
  2270. Type WIN32_STREAM_ID
  2271.         dwStreamID As Long
  2272.         dwStreamAttributes As Long
  2273.         dwStreamSizeLow As Long
  2274.         dwStreamSizeHigh As Long
  2275.         dwStreamNameSize As Long
  2276.         cStreamName As Byte
  2277. End Type
  2278.  
  2279. ' Stream IDs
  2280. Public Const BACKUP_DATA = &H1
  2281. Public Const BACKUP_EA_DATA = &H2
  2282. Public Const BACKUP_SECURITY_DATA = &H3
  2283. Public Const BACKUP_ALTERNATE_DATA = &H4
  2284. Public Const BACKUP_LINK = &H5
  2285.  
  2286. '   Stream Attributes
  2287. Public Const STREAM_MODIFIED_WHEN_READ = &H1
  2288. Public Const STREAM_CONTAINS_SECURITY = &H2
  2289.  
  2290. '  Dual Mode API below this line. Dual Mode Types also included.
  2291.  
  2292. Public Const STARTF_USESHOWWINDOW = &H1
  2293. Public Const STARTF_USESIZE = &H2
  2294. Public Const STARTF_USEPOSITION = &H4
  2295. Public Const STARTF_USECOUNTCHARS = &H8
  2296. Public Const STARTF_USEFILLATTRIBUTE = &H10
  2297. Public Const STARTF_RUNFULLSCREEN = &H20        '  ignored for non-x86 platforms
  2298. Public Const STARTF_FORCEONFEEDBACK = &H40
  2299. Public Const STARTF_FORCEOFFFEEDBACK = &H80
  2300. Public Const STARTF_USESTDHANDLES = &H100
  2301.  
  2302. Type STARTUPINFO
  2303.         cb As Long
  2304.         lpReserved As String
  2305.         lpDesktop As String
  2306.         lpTitle As String
  2307.         dwX As Long
  2308.         dwY As Long
  2309.         dwXSize As Long
  2310.         dwYSize As Long
  2311.         dwXCountChars As Long
  2312.         dwYCountChars As Long
  2313.         dwFillAttribute As Long
  2314.         dwFlags As Long
  2315.         wShowWindow As Integer
  2316.         cbReserved2 As Integer
  2317.         lpReserved2 As Byte
  2318.         hStdInput As Long
  2319.         hStdOutput As Long
  2320.         hStdError As Long
  2321. End Type
  2322.  
  2323. Public Const SHUTDOWN_NORETRY = &H1
  2324.  
  2325. Type WIN32_FIND_DATA
  2326.         dwFileAttributes As Long
  2327.         ftCreationTime As FILETIME
  2328.         ftLastAccessTime As FILETIME
  2329.         ftLastWriteTime As FILETIME
  2330.         nFileSizeHigh As Long
  2331.         nFileSizeLow As Long
  2332.         dwReserved0 As Long
  2333.         dwReserved1 As Long
  2334.         cFileName As String * MAX_PATH
  2335.         cAlternate As String * 14
  2336. End Type
  2337.  
  2338. Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (lpMutexAttributes As SECURITY_ATTRIBUTES, ByVal bInitialOwner As Long, ByVal lpName As String) As Long
  2339. Declare Function OpenMutex Lib "kernel32" Alias "OpenMutexA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
  2340. 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
  2341. Declare Function OpenEvent Lib "kernel32" Alias "OpenEventA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
  2342. 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
  2343. Declare Function OpenSemaphore Lib "kernel32" Alias "OpenSemaphoreA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
  2344. Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long
  2345. Declare Function OpenFileMapping Lib "kernel32" Alias "OpenFileMappingA" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal lpName As String) As Long
  2346. Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
  2347.  
  2348. Declare Function IsBadReadPtr Lib "kernel32" Alias "IsBadReadPtr" (lp As Any, ByVal ucb As Long) As Long
  2349. Declare Function IsBadWritePtr Lib "kernel32" Alias "IsBadWritePtr" (lp As Any, ByVal ucb As Long) As Long
  2350. Declare Function IsBadStringPtr Lib "kernel32" Alias "IsBadStringPtrA" (ByVal lpsz As String, ByVal ucchMax As Long) As Long
  2351. Declare Function IsBadHugeReadPtr Lib "kernel32" Alias "IsBadHugeReadPtr" (lp As Any, ByVal ucb As Long) As Long
  2352. Declare Function IsBadHugeWritePtr Lib "kernel32" Alias "IsBadHugeWritePtr" (lp As Any, ByVal ucb As Long) As Long
  2353.  
  2354. 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
  2355.  
  2356. 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
  2357. Declare Function LookupPrivilegeValue Lib "advapi32.dll" Alias "LookupPrivilegeValueA" (ByVal lpSystemName As String, ByVal lpName As String, lpLuid As LARGE_INTEGER) As Long
  2358. 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
  2359. 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
  2360. Declare Function AllocateLocallyUniqueId Lib "advapi32.dll" Alias "AllocateLocallyUniqueId" (Luid As LARGE_INTEGER) As Long
  2361.  
  2362. Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  2363. Declare Function SetComputerName Lib "kernel32" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long
  2364. Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
  2365.  
  2366. ' Performance counter API's
  2367. Declare Function QueryPerformanceCounter Lib "kernel32" Alias "QueryPerformanceCounter" (lpPerformanceCount As LARGE_INTEGER) As Long
  2368. Declare Function QueryPerformanceFrequency Lib "kernel32" Alias "QueryPerformanceFrequency" (lpFrequency As LARGE_INTEGER) As Long
  2369.  
  2370. '  Abnormal termination codes
  2371. Public Const TC_NORMAL = 0
  2372. Public Const TC_HARDERR = 1
  2373. Public Const TC_GP_TRAP = 2
  2374. Public Const TC_SIGNAL = 3
  2375.  
  2376.  
  2377. ' Procedure declarations, constant definitions, and macros
  2378. ' for the NLS component
  2379.  
  2380. ' String Length Maximums
  2381. Public Const MAX_LEADBYTES = 12  '  5 ranges, 2 bytes ea., 0 term.
  2382.  
  2383. ' MBCS and Unicode Translation Flags.
  2384.  
  2385. Public Const MB_PRECOMPOSED = &H1         '  use precomposed chars
  2386. Public Const MB_COMPOSITE = &H2         '  use composite chars
  2387. Public Const MB_USEGLYPHCHARS = &H4         '  use glyph chars, not ctrl chars
  2388.  
  2389. Public Const WC_DEFAULTCHECK = &H100       '  check for default char
  2390. Public Const WC_COMPOSITECHECK = &H200       '  convert composite to precomposed
  2391. Public Const WC_DISCARDNS = &H10        '  discard non-spacing chars
  2392. Public Const WC_SEPCHARS = &H20        '  generate separate chars
  2393. Public Const WC_DEFAULTCHAR = &H40        '  replace w/ default char
  2394.  
  2395. ' Character Type Flags.
  2396. Public Const CT_CTYPE1 = &H1         '  ctype 1 information
  2397. Public Const CT_CTYPE2 = &H2         '  ctype 2 information
  2398. Public Const CT_CTYPE3 = &H4         '  ctype 3 information
  2399.  
  2400. ' CType 1 Flag Bits.
  2401. Public Const C1_UPPER = &H1     '  upper case
  2402. Public Const C1_LOWER = &H2     '  lower case
  2403. Public Const C1_DIGIT = &H4     '  decimal digits
  2404. Public Const C1_SPACE = &H8     '  spacing characters
  2405. Public Const C1_PUNCT = &H10    '  punctuation characters
  2406. Public Const C1_CNTRL = &H20    '  control characters
  2407. Public Const C1_BLANK = &H40    '  blank characters
  2408. Public Const C1_XDIGIT = &H80    '  other digits
  2409. Public Const C1_ALPHA = &H100   '  any letter
  2410.  
  2411. ' CType 2 Flag Bits.
  2412.  
  2413. Public Const C2_LEFTTORIGHT = &H1     '  left to right
  2414. Public Const C2_RIGHTTOLEFT = &H2     '  right to left
  2415.  
  2416. Public Const C2_EUROPENUMBER = &H3     '  European number, digit
  2417. Public Const C2_EUROPESEPARATOR = &H4     '  European numeric separator
  2418. Public Const C2_EUROPETERMINATOR = &H5     '  European numeric terminator
  2419. Public Const C2_ARABICNUMBER = &H6     '  Arabic number
  2420. Public Const C2_COMMONSEPARATOR = &H7     '  common numeric separator
  2421.  
  2422. Public Const C2_BLOCKSEPARATOR = &H8     '  block separator
  2423. Public Const C2_SEGMENTSEPARATOR = &H9     '  segment separator
  2424. Public Const C2_WHITESPACE = &HA     '  white space
  2425. Public Const C2_OTHERNEUTRAL = &HB     '  other neutrals
  2426.  
  2427. Public Const C2_NOTAPPLICABLE = &H0     '  no implicit directionality
  2428.  
  2429. ' CType 3 Flag Bits.
  2430. Public Const C3_NONSPACING = &H1     '  nonspacing character
  2431. Public Const C3_DIACRITIC = &H2     '  diacritic mark
  2432. Public Const C3_VOWELMARK = &H4     '  vowel mark
  2433. Public Const C3_SYMBOL = &H8     '  symbols
  2434.  
  2435. Public Const C3_NOTAPPLICABLE = &H0     '  ctype 3 is not applicable
  2436.  
  2437. ' String Flags.
  2438. Public Const NORM_IGNORECASE = &H1         '  ignore case
  2439. Public Const NORM_IGNORENONSPACE = &H2         '  ignore nonspacing chars
  2440. Public Const NORM_IGNORESYMBOLS = &H4         '  ignore symbols
  2441.  
  2442. ' Locale Independent Mapping Flags.
  2443. Public Const MAP_FOLDCZONE = &H10        '  fold compatibility zone chars
  2444. Public Const MAP_PRECOMPOSED = &H20        '  convert to precomposed chars
  2445. Public Const MAP_COMPOSITE = &H40        '  convert to composite chars
  2446. Public Const MAP_FOLDDIGITS = &H80        '  all digits to ASCII 0-9
  2447.  
  2448. ' Locale Dependent Mapping Flags.
  2449. Public Const LCMAP_LOWERCASE = &H100       '  lower case letters
  2450. Public Const LCMAP_UPPERCASE = &H200       '  upper case letters
  2451. Public Const LCMAP_SORTKEY = &H400       '  WC sort key (normalize)
  2452. Public Const LCMAP_BYTEREV = &H800       '  byte reversal
  2453.  
  2454. ' Sorting Flags.
  2455. Public Const SORT_STRINGSORT = &H1000      '  use string sort method
  2456.  
  2457. ' Code Page Default Values.
  2458. Public Const CP_ACP = 0  '  default to ANSI code page
  2459. Public Const CP_OEMCP = 1  '  default to OEM  code page
  2460.  
  2461. ' Country Codes.
  2462.  
  2463. Public Const CTRY_DEFAULT = 0
  2464.  
  2465. Public Const CTRY_AUSTRALIA = 61  '  Australia
  2466. Public Const CTRY_AUSTRIA = 43  '  Austria
  2467. Public Const CTRY_BELGIUM = 32  '  Belgium
  2468. Public Const CTRY_BRAZIL = 55  '  Brazil
  2469. Public Const CTRY_CANADA = 2  '  Canada
  2470. Public Const CTRY_DENMARK = 45  '  Denmark
  2471. Public Const CTRY_FINLAND = 358  '  Finland
  2472. Public Const CTRY_FRANCE = 33  '  France
  2473. Public Const CTRY_GERMANY = 49  '  Germany
  2474. Public Const CTRY_ICELAND = 354  '  Iceland
  2475. Public Const CTRY_IRELAND = 353  '  Ireland
  2476. Public Const CTRY_ITALY = 39  '  Italy
  2477. Public Const CTRY_JAPAN = 81  '  Japan
  2478. Public Const CTRY_MEXICO = 52  '  Mexico
  2479. Public Const CTRY_NETHERLANDS = 31  '  Netherlands
  2480. Public Const CTRY_NEW_ZEALAND = 64  '  New Zealand
  2481. Public Const CTRY_NORWAY = 47  '  Norway
  2482. Public Const CTRY_PORTUGAL = 351  '  Portugal
  2483. Public Const CTRY_PRCHINA = 86  '  PR China
  2484. Public Const CTRY_SOUTH_KOREA = 82  '  South Korea
  2485. Public Const CTRY_SPAIN = 34  '  Spain
  2486. Public Const CTRY_SWEDEN = 46  '  Sweden
  2487. Public Const CTRY_SWITZERLAND = 41  '  Switzerland
  2488. Public Const CTRY_TAIWAN = 886  '  Taiwan
  2489. Public Const CTRY_UNITED_KINGDOM = 44  '  United Kingdom
  2490. Public Const CTRY_UNITED_STATES = 1  '  United States
  2491.  
  2492. ' Locale Types.
  2493. ' These types are used for the GetLocaleInfoW NLS API routine.
  2494.  
  2495. ' LOCALE_NOUSEROVERRIDE is also used in GetTimeFormatW and GetDateFormatW.
  2496. Public Const LOCALE_NOUSEROVERRIDE = &H80000000  '  do not use user overrides
  2497.  
  2498. Public Const LOCALE_ILANGUAGE = &H1         '  language id
  2499. Public Const LOCALE_SLANGUAGE = &H2         '  localized name of language
  2500. Public Const LOCALE_SENGLANGUAGE = &H1001      '  English name of language
  2501. Public Const LOCALE_SABBREVLANGNAME = &H3         '  abbreviated language name
  2502. Public Const LOCALE_SNATIVELANGNAME = &H4         '  native name of language
  2503. Public Const LOCALE_ICOUNTRY = &H5         '  country code
  2504. Public Const LOCALE_SCOUNTRY = &H6         '  localized name of country
  2505. Public Const LOCALE_SENGCOUNTRY = &H1002      '  English name of country
  2506. Public Const LOCALE_SABBREVCTRYNAME = &H7         '  abbreviated country name
  2507. Public Const LOCALE_SNATIVECTRYNAME = &H8         '  native name of country
  2508. Public Const LOCALE_IDEFAULTLANGUAGE = &H9         '  default language id
  2509. Public Const LOCALE_IDEFAULTCOUNTRY = &HA         '  default country code
  2510. Public Const LOCALE_IDEFAULTCODEPAGE = &HB         '  default code page
  2511.  
  2512. Public Const LOCALE_SLIST = &HC         '  list item separator
  2513. Public Const LOCALE_IMEASURE = &HD         '  0 = metric, 1 = US
  2514.  
  2515. Public Const LOCALE_SDECIMAL = &HE         '  decimal separator
  2516. Public Const LOCALE_STHOUSAND = &HF         '  thousand separator
  2517. Public Const LOCALE_SGROUPING = &H10        '  digit grouping
  2518. Public Const LOCALE_IDIGITS = &H11        '  number of fractional digits
  2519. Public Const LOCALE_ILZERO = &H12        '  leading zeros for decimal
  2520. Public Const LOCALE_SNATIVEDIGITS = &H13        '  native ascii 0-9
  2521.  
  2522. Public Const LOCALE_SCURRENCY = &H14        '  local monetary symbol
  2523. Public Const LOCALE_SINTLSYMBOL = &H15        '  intl monetary symbol
  2524. Public Const LOCALE_SMONDECIMALSEP = &H16        '  monetary decimal separator
  2525. Public Const LOCALE_SMONTHOUSANDSEP = &H17        '  monetary thousand separator
  2526. Public Const LOCALE_SMONGROUPING = &H18        '  monetary grouping
  2527. Public Const LOCALE_ICURRDIGITS = &H19        '  # local monetary digits
  2528. Public Const LOCALE_IINTLCURRDIGITS = &H1A        '  # intl monetary digits
  2529. Public Const LOCALE_ICURRENCY = &H1B        '  positive currency mode
  2530. Public Const LOCALE_INEGCURR = &H1C        '  negative currency mode
  2531.  
  2532. Public Const LOCALE_SDATE = &H1D        '  date separator
  2533. Public Const LOCALE_STIME = &H1E        '  time separator
  2534. Public Const LOCALE_SSHORTDATE = &H1F        '  short date format string
  2535. Public Const LOCALE_SLONGDATE = &H20        '  long date format string
  2536. Public Const LOCALE_STIMEFORMAT = &H1003      '  time format string
  2537. Public Const LOCALE_IDATE = &H21        '  short date format ordering
  2538. Public Const LOCALE_ILDATE = &H22        '  long date format ordering
  2539. Public Const LOCALE_ITIME = &H23        '  time format specifier
  2540. Public Const LOCALE_ICENTURY = &H24        '  century format specifier
  2541. Public Const LOCALE_ITLZERO = &H25        '  leading zeros in time field
  2542. Public Const LOCALE_IDAYLZERO = &H26        '  leading zeros in day field
  2543. Public Const LOCALE_IMONLZERO = &H27        '  leading zeros in month field
  2544. Public Const LOCALE_S1159 = &H28        '  AM designator
  2545. Public Const LOCALE_S2359 = &H29        '  PM designator
  2546.  
  2547. Public Const LOCALE_SDAYNAME1 = &H2A        '  long name for Monday
  2548. Public Const LOCALE_SDAYNAME2 = &H2B        '  long name for Tuesday
  2549. Public Const LOCALE_SDAYNAME3 = &H2C        '  long name for Wednesday
  2550. Public Const LOCALE_SDAYNAME4 = &H2D        '  long name for Thursday
  2551. Public Const LOCALE_SDAYNAME5 = &H2E        '  long name for Friday
  2552. Public Const LOCALE_SDAYNAME6 = &H2F        '  long name for Saturday
  2553. Public Const LOCALE_SDAYNAME7 = &H30        '  long name for Sunday
  2554. Public Const LOCALE_SABBREVDAYNAME1 = &H31        '  abbreviated name for Monday
  2555. Public Const LOCALE_SABBREVDAYNAME2 = &H32        '  abbreviated name for Tuesday
  2556. Public Const LOCALE_SABBREVDAYNAME3 = &H33        '  abbreviated name for Wednesday
  2557. Public Const LOCALE_SABBREVDAYNAME4 = &H34        '  abbreviated name for Thursday
  2558. Public Const LOCALE_SABBREVDAYNAME5 = &H35        '  abbreviated name for Friday
  2559. Public Const LOCALE_SABBREVDAYNAME6 = &H36        '  abbreviated name for Saturday
  2560. Public Const LOCALE_SABBREVDAYNAME7 = &H37        '  abbreviated name for Sunday
  2561. Public Const LOCALE_SMONTHNAME1 = &H38        '  long name for January
  2562. Public Const LOCALE_SMONTHNAME2 = &H39        '  long name for February
  2563. Public Const LOCALE_SMONTHNAME3 = &H3A        '  long name for March
  2564. Public Const LOCALE_SMONTHNAME4 = &H3B        '  long name for April
  2565. Public Const LOCALE_SMONTHNAME5 = &H3C        '  long name for May
  2566. Public Const LOCALE_SMONTHNAME6 = &H3D        '  long name for June
  2567. Public Const LOCALE_SMONTHNAME7 = &H3E        '  long name for July
  2568. Public Const LOCALE_SMONTHNAME8 = &H3F        '  long name for August
  2569. Public Const LOCALE_SMONTHNAME9 = &H40        '  long name for September
  2570. Public Const LOCALE_SMONTHNAME10 = &H41        '  long name for October
  2571. Public Const LOCALE_SMONTHNAME11 = &H42        '  long name for November
  2572. Public Const LOCALE_SMONTHNAME12 = &H43        '  long name for December
  2573. Public Const LOCALE_SABBREVMONTHNAME1 = &H44        '  abbreviated name for January
  2574. Public Const LOCALE_SABBREVMONTHNAME2 = &H45        '  abbreviated name for February
  2575. Public Const LOCALE_SABBREVMONTHNAME3 = &H46        '  abbreviated name for March
  2576. Public Const LOCALE_SABBREVMONTHNAME4 = &H47        '  abbreviated name for April
  2577. Public Const LOCALE_SABBREVMONTHNAME5 = &H48        '  abbreviated name for May
  2578. Public Const LOCALE_SABBREVMONTHNAME6 = &H49        '  abbreviated name for June
  2579. Public Const LOCALE_SABBREVMONTHNAME7 = &H4A        '  abbreviated name for July
  2580. Public Const LOCALE_SABBREVMONTHNAME8 = &H4B        '  abbreviated name for August
  2581. Public Const LOCALE_SABBREVMONTHNAME9 = &H4C        '  abbreviated name for September
  2582. Public Const LOCALE_SABBREVMONTHNAME10 = &H4D        '  abbreviated name for October
  2583. Public Const LOCALE_SABBREVMONTHNAME11 = &H4E        '  abbreviated name for November
  2584. Public Const LOCALE_SABBREVMONTHNAME12 = &H4F        '  abbreviated name for December
  2585. Public Const LOCALE_SABBREVMONTHNAME13 = &H100F
  2586.  
  2587. Public Const LOCALE_SPOSITIVESIGN = &H50        '  positive sign
  2588. Public Const LOCALE_SNEGATIVESIGN = &H51        '  negative sign
  2589. Public Const LOCALE_IPOSSIGNPOSN = &H52        '  positive sign position
  2590. Public Const LOCALE_INEGSIGNPOSN = &H53        '  negative sign position
  2591. Public Const LOCALE_IPOSSYMPRECEDES = &H54        '  mon sym precedes pos amt
  2592. Public Const LOCALE_IPOSSEPBYSPACE = &H55        '  mon sym sep by space from pos amt
  2593. Public Const LOCALE_INEGSYMPRECEDES = &H56        '  mon sym precedes neg amt
  2594. Public Const LOCALE_INEGSEPBYSPACE = &H57        '  mon sym sep by space from neg amt
  2595.  
  2596. ' Time Flags for GetTimeFormatW.
  2597. Public Const TIME_NOMINUTESORSECONDS = &H1         '  do not use minutes or seconds
  2598. Public Const TIME_NOSECONDS = &H2         '  do not use seconds
  2599. Public Const TIME_NOTIMEMARKER = &H4         '  do not use time marker
  2600. Public Const TIME_FORCE24HOURFORMAT = &H8         '  always use 24 hour format
  2601.  
  2602. ' Date Flags for GetDateFormatW.
  2603. Public Const DATE_SHORTDATE = &H1         '  use short date picture
  2604. Public Const DATE_LONGDATE = &H2         '  use long date picture
  2605.  
  2606.  
  2607. ' Code Page Dependent APIs
  2608.  
  2609. Declare Function IsValidCodePage Lib "kernel32" Alias "IsValidCodePage" (ByVal CodePage As Long) As Long
  2610. Declare Function GetACP Lib "kernel32" Alias "GetACP" () As Long
  2611. Declare Function GetOEMCP Lib "kernel32" Alias "GetOEMCP" () As Long
  2612. Declare Function GetCPInfo Lib "kernel32" Alias "GetCPInfo" (ByVal CodePage As Long, lpCPInfo As CPINFO) As Long
  2613. Declare Function IsDBCSLeadByte Lib "kernel32" Alias "IsDBCSLeadByte" (ByVal bTestChar As Byte) As Long
  2614. 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 String, ByVal cchWideChar As Long) As Long
  2615. Declare Function WideCharToMultiByte Lib "kernel32" Alias "WideCharToMultiByte" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As String, ByVal cchWideChar As Long, ByVal lpMultiByteStr As String, ByVal cchMultiByte As Long, ByVal lpDefaultChar As String, ByVal lpUsedDefaultChar As Long) As Long
  2616.  
  2617. ' Locale Dependent APIs
  2618.  
  2619. 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
  2620. 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
  2621. 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
  2622. 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
  2623. 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
  2624. Declare Function SetThreadLocale Lib "kernel32" Alias "SetThreadLocale" (ByVal Locale As Long) As Long
  2625. Declare Function GetSystemDefaultLangID Lib "kernel32" Alias "GetSystemDefaultLangID" () As Integer
  2626. Declare Function GetUserDefaultLangID Lib "kernel32" Alias "GetUserDefaultLangID" () As Integer
  2627. Declare Function GetSystemDefaultLCID Lib "kernel32" Alias "GetSystemDefaultLCID" () As Long
  2628. Declare Function GetUserDefaultLCID Lib "kernel32" Alias "GetUserDefaultLCID" () As Long
  2629.  
  2630. ' Locale Independent APIs
  2631.  
  2632. Declare Function GetStringTypeA 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
  2633. 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
  2634.  
  2635. ' *************************************************************************
  2636. ' *                                                                         *
  2637. ' * winnls.h -- NLS procedure declarations, constant definitions and macros *
  2638. ' *                                                                         *
  2639. ' * Copyright (c) 1991-1995, Microsoft Corp. All rights reserved.           *
  2640. ' *                                                                         *
  2641. ' **************************************************************************/
  2642.  
  2643. ' *  Calendar Types.
  2644. '  *
  2645. '  *  These types are used for the GetALTCalendarInfoW NLS API routine.
  2646. '  */
  2647. Public Const MAX_DEFAULTCHAR = 2
  2648. Public Const CAL_ICALINTVALUE = &H1                     '  calendar type
  2649. Public Const CAL_SCALNAME = &H2                         '  native name of calendar
  2650. Public Const CAL_IYEAROFFSETRANGE = &H3                 '  starting years of eras
  2651. Public Const CAL_SERASTRING = &H4                       '  era name for IYearOffsetRanges
  2652. Public Const CAL_SSHORTDATE = &H5                       '  Integer date format string
  2653. Public Const CAL_SLONGDATE = &H6                        '  long date format string
  2654. Public Const CAL_SDAYNAME1 = &H7                        '  native name for Monday
  2655. Public Const CAL_SDAYNAME2 = &H8                        '  native name for Tuesday
  2656. Public Const CAL_SDAYNAME3 = &H9                        '  native name for Wednesday
  2657. Public Const CAL_SDAYNAME4 = &HA                        '  native name for Thursday
  2658. Public Const CAL_SDAYNAME5 = &HB                        '  native name for Friday
  2659. Public Const CAL_SDAYNAME6 = &HC                        '  native name for Saturday
  2660. Public Const CAL_SDAYNAME7 = &HD                        '  native name for Sunday
  2661. Public Const CAL_SABBREVDAYNAME1 = &HE                  '  abbreviated name for Monday
  2662. Public Const CAL_SABBREVDAYNAME2 = &HF                  '  abbreviated name for Tuesday
  2663. Public Const CAL_SABBREVDAYNAME3 = &H10                 '  abbreviated name for Wednesday
  2664. Public Const CAL_SABBREVDAYNAME4 = &H11                 '  abbreviated name for Thursday
  2665. Public Const CAL_SABBREVDAYNAME5 = &H12                 '  abbreviated name for Friday
  2666. Public Const CAL_SABBREVDAYNAME6 = &H13                 '  abbreviated name for Saturday
  2667. Public Const CAL_SABBREVDAYNAME7 = &H14                 '  abbreviated name for Sunday
  2668. Public Const CAL_SMONTHNAME1 = &H15                     '  native name for January
  2669. Public Const CAL_SMONTHNAME2 = &H16                     '  native name for February
  2670. Public Const CAL_SMONTHNAME3 = &H17                     '  native name for March
  2671. Public Const CAL_SMONTHNAME4 = &H18                     '  native name for April
  2672. Public Const CAL_SMONTHNAME5 = &H19                     '  native name for May
  2673. Public Const CAL_SMONTHNAME6 = &H1A                     '  native name for June
  2674. Public Const CAL_SMONTHNAME7 = &H1B                     '  native name for July
  2675. Public Const CAL_SMONTHNAME8 = &H1C                     '  native name for August
  2676. Public Const CAL_SMONTHNAME9 = &H1D                     '  native name for September
  2677. Public Const CAL_SMONTHNAME10 = &H1E                    '  native name for October
  2678. Public Const CAL_SMONTHNAME11 = &H1F                    '  native name for November
  2679. Public Const CAL_SMONTHNAME12 = &H20                    '  native name for December
  2680. Public Const CAL_SMONTHNAME13 = &H21                    '  native name for 13th month (if any)
  2681. Public Const CAL_SABBREVMONTHNAME1 = &H22               '  abbreviated name for January
  2682. Public Const CAL_SABBREVMONTHNAME2 = &H23               '  abbreviated name for February
  2683. Public Const CAL_SABBREVMONTHNAME3 = &H24               '  abbreviated name for March
  2684. Public Const CAL_SABBREVMONTHNAME4 = &H25               '  abbreviated name for April
  2685. Public Const CAL_SABBREVMONTHNAME5 = &H26               '  abbreviated name for May
  2686. Public Const CAL_SABBREVMONTHNAME6 = &H27               '  abbreviated name for June
  2687. Public Const CAL_SABBREVMONTHNAME7 = &H28               '  abbreviated name for July
  2688. Public Const CAL_SABBREVMONTHNAME8 = &H29               '  abbreviated name for August
  2689. Public Const CAL_SABBREVMONTHNAME9 = &H2A               '  abbreviated name for September
  2690. Public Const CAL_SABBREVMONTHNAME10 = &H2B              '  abbreviated name for October
  2691. Public Const CAL_SABBREVMONTHNAME11 = &H2C              '  abbreviated name for November
  2692. Public Const CAL_SABBREVMONTHNAME12 = &H2D              '  abbreviated name for December
  2693. Public Const CAL_SABBREVMONTHNAME13 = &H2E              '  abbreviated name for 13th month (if any)
  2694.  
  2695. '
  2696. '  *  Calendar Enumeration Value.
  2697. '  */
  2698. Public Const ENUM_ALL_CALENDARS = &HFFFF                '  enumerate all calendars
  2699. '
  2700. '  *  Calendar ID Values.
  2701. '  */
  2702. Public Const CAL_GREGORIAN = 1                 '  Gregorian (localized) calendar
  2703. Public Const CAL_GREGORIAN_US = 2              '  Gregorian (U.S.) calendar
  2704. Public Const CAL_JAPAN = 3                     '  Japanese Emperor Era calendar
  2705. Public Const CAL_TAIWAN = 4                    '  Republic of China Era calendar
  2706. Public Const CAL_KOREA = 5                     '  Korean Tangun Era calendar
  2707.  
  2708. ' *************************************************************************** Typedefs
  2709. ' *
  2710. ' * Define all types for the NLS component here.
  2711. ' \***************************************************************************/
  2712. '
  2713. '  *  CP Info.
  2714. '  */
  2715.  
  2716. Type CPINFO
  2717.         MaxCharSize As Long                    '  max length (Byte) of a char
  2718.         DefaultChar(MAX_DEFAULTCHAR) As Byte   '  default character
  2719.         LeadByte(MAX_LEADBYTES) As Byte        '  lead byte ranges
  2720. End Type
  2721.  
  2722. Type NUMBERFMT
  2723.         NumDigits As Long                 '  number of decimal digits
  2724.         LeadingZero As Long '  if leading zero in decimal fields
  2725.         Grouping As Long '  group size left of decimal
  2726.         lpDecimalSep As String              '  ptr to decimal separator string
  2727.         lpThousandSep As String             '  ptr to thousand separator string
  2728.         NegativeOrder As Long '  negative number ordering
  2729. End Type
  2730. '
  2731. '  *  Currency format.
  2732. '  */
  2733.  
  2734. Type CURRENCYFMT
  2735.         NumDigits As Long '  number of decimal digits
  2736.         LeadingZero As Long '  if leading zero in decimal fields
  2737.         Grouping As Long '  group size left of decimal
  2738.         lpDecimalSep As String              '  ptr to decimal separator string
  2739.         lpThousandSep As String             '  ptr to thousand separator string
  2740.         NegativeOrder As Long '  negative currency ordering
  2741.         PositiveOrder As Long '  positive currency ordering
  2742.         lpCurrencySymbol As String          '  ptr to currency symbol string
  2743. End Type
  2744.  
  2745. Declare Function EnumTimeFormats Lib "KERNEL32" Alias "EnumTimeFormats" (ByVal lpTimeFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long
  2746. Declare Function EnumDateFormats Lib "KERNEL32" Alias "EnumDateFormats" (ByVal lpDateFmtEnumProc As Long, ByVal Locale As Long, ByVal dwFlags As Long) As Long
  2747. Declare Function IsValidLocale Lib "KERNEL32" Alias "IsValidLocale" (ByVal Locale As Long, ByVal dwFlags As Long) As Long
  2748. Declare Function ConvertDefaultLocale Lib "KERNEL32" Alias "ConvertDefaultLocale" (ByVal Locale As Long) As Long
  2749. Declare Function GetThreadLocale Lib "KERNEL32" Alias "GetThreadLocale" () As Long
  2750. Declare Function EnumSystemLocales Lib "KERNEL32" Alias "EnumSystemLocales" (ByVal lpLocaleEnumProc As Long, ByVal dwFlags As Long) As Long
  2751. Declare Function EnumSystemCodePages Lib "KERNEL32" Alias "EnumSystemCodePages" (ByVal lpCodePageEnumProc As Long, ByVal dwFlags As Long) As Long
  2752.  
  2753. ' The following section contains the public data structures, data types,
  2754. ' and procedures exported by the NT console subsystem.
  2755.  
  2756. Type COORD
  2757.         x As Integer
  2758.         y As Integer
  2759. End Type
  2760.  
  2761. Type SMALL_RECT
  2762.         Left As Integer
  2763.         Top As Integer
  2764.         Right As Integer
  2765.         Bottom As Integer
  2766. End Type
  2767.  
  2768. Type KEY_EVENT_RECORD
  2769.         bKeyDown As Long
  2770.         wRepeatCount As Integer
  2771.         wVirtualKeyCode As Integer
  2772.         wVirtualScanCode As Integer
  2773.         uChar As Integer
  2774.         dwControlKeyState As Long
  2775. End Type
  2776.  
  2777. '  ControlKeyState flags
  2778. Public Const RIGHT_ALT_PRESSED = &H1     '  the right alt key is pressed.
  2779. Public Const LEFT_ALT_PRESSED = &H2     '  the left alt key is pressed.
  2780. Public Const RIGHT_CTRL_PRESSED = &H4     '  the right ctrl key is pressed.
  2781. Public Const LEFT_CTRL_PRESSED = &H8     '  the left ctrl key is pressed.
  2782. Public Const SHIFT_PRESSED = &H10    '  the shift key is pressed.
  2783. Public Const NUMLOCK_ON = &H20    '  the numlock light is on.
  2784. Public Const SCROLLLOCK_ON = &H40    '  the scrolllock light is on.
  2785. Public Const CAPSLOCK_ON = &H80    '  the capslock light is on.
  2786. Public Const ENHANCED_KEY = &H100   '  the key is enhanced.
  2787.  
  2788. Type MOUSE_EVENT_RECORD
  2789.         dwMousePosition As COORD
  2790.         dwButtonState As Long
  2791.         dwControlKeyState As Long
  2792.         dwEventFlags As Long
  2793. End Type
  2794.  
  2795. '  ButtonState flags
  2796. Public Const FROM_LEFT_1ST_BUTTON_PRESSED = &H1
  2797. Public Const RIGHTMOST_BUTTON_PRESSED = &H2
  2798. Public Const FROM_LEFT_2ND_BUTTON_PRESSED = &H4
  2799. Public Const FROM_LEFT_3RD_BUTTON_PRESSED = &H8
  2800. Public Const FROM_LEFT_4TH_BUTTON_PRESSED = &H10
  2801.  
  2802. '  EventFlags
  2803. Public Const MOUSE_MOVED = &H1
  2804. Public Const DOUBLE_CLICK = &H2
  2805.  
  2806. Type WINDOW_BUFFER_SIZE_RECORD
  2807.         dwSize As COORD
  2808. End Type
  2809.  
  2810. Type MENU_EVENT_RECORD
  2811.         dwCommandId As Long
  2812. End Type
  2813.  
  2814. Type FOCUS_EVENT_RECORD
  2815.         bSetFocus As Long
  2816. End Type
  2817.  
  2818. '   EventType flags:
  2819. Public Const KEY_EVENT = &H1     '  Event contains key event record
  2820. Public Const mouse_eventC = &H2     '  Event contains mouse event record
  2821. Public Const WINDOW_BUFFER_SIZE_EVENT = &H4     '  Event contains window change event record
  2822. Public Const MENU_EVENT = &H8     '  Event contains menu event record
  2823. Public Const FOCUS_EVENT = &H10    '  event contains focus change
  2824.  
  2825. Type CHAR_INFO
  2826.         Char As Integer
  2827.         Attributes As Integer
  2828. End Type
  2829.  
  2830. '  Attributes flags:
  2831. Public Const FOREGROUND_BLUE = &H1     '  text color contains blue.
  2832. Public Const FOREGROUND_GREEN = &H2     '  text color contains green.
  2833. Public Const FOREGROUND_RED = &H4     '  text color contains red.
  2834. Public Const FOREGROUND_INTENSITY = &H8     '  text color is intensified.
  2835. Public Const BACKGROUND_BLUE = &H10    '  background color contains blue.
  2836. Public Const BACKGROUND_GREEN = &H20    '  background color contains green.
  2837. Public Const BACKGROUND_RED = &H40    '  background color contains red.
  2838. Public Const BACKGROUND_INTENSITY = &H80    '  background color is intensified.
  2839.  
  2840. Type CONSOLE_SCREEN_BUFFER_INFO
  2841.         dwSize As COORD
  2842.         dwCursorPosition As COORD
  2843.         wAttributes As Integer
  2844.         srWindow As SMALL_RECT
  2845.         dwMaximumWindowSize As COORD
  2846. End Type
  2847.  
  2848. Type CONSOLE_CURSOR_INFO
  2849.         dwSize As Long
  2850.         bVisible As Long
  2851. End Type
  2852.  
  2853. Public Const CTRL_C_EVENT = 0
  2854. Public Const CTRL_BREAK_EVENT = 1
  2855. Public Const CTRL_CLOSE_EVENT = 2
  2856. '  3 is reserved!
  2857. '  4 is reserved!
  2858. Public Const CTRL_LOGOFF_EVENT = 5
  2859. Public Const CTRL_SHUTDOWN_EVENT = 6
  2860.  
  2861. ' Input Mode flags:
  2862. Public Const ENABLE_PROCESSED_INPUT = &H1
  2863. Public Const ENABLE_LINE_INPUT = &H2
  2864. Public Const ENABLE_ECHO_INPUT = &H4
  2865. Public Const ENABLE_WINDOW_INPUT = &H8
  2866. Public Const ENABLE_MOUSE_INPUT = &H10
  2867.  
  2868. ' Output Mode flags:
  2869. Public Const ENABLE_PROCESSED_OUTPUT = &H1
  2870. Public Const ENABLE_WRAP_AT_EOL_OUTPUT = &H2
  2871.  
  2872. 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
  2873. 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
  2874. 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
  2875. 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
  2876. 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
  2877.  
  2878. 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
  2879. 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
  2880. 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
  2881. Declare Function GetConsoleMode Lib "kernel32" Alias "GetConsoleMode" (ByVal hConsoleHandle As Long, lpMode As Long) As Long
  2882. Declare Function GetNumberOfConsoleInputEvents Lib "kernel32" Alias "GetNumberOfConsoleInputEvents" (ByVal hConsoleInput As Long, lpNumberOfEvents As Long) As Long
  2883. Declare Function GetConsoleScreenBufferInfo Lib "kernel32" Alias "GetConsoleScreenBufferInfo" (ByVal hConsoleOutput As Long, lpConsoleScreenBufferInfo As CONSOLE_SCREEN_BUFFER_INFO) As Long
  2884. Declare Function GetLargestConsoleWindowSize Lib "kernel32" Alias "GetLargestConsoleWindowSize" (ByVal hConsoleOutput As Long) As COORD
  2885. Declare Function GetConsoleCursorInfo Lib "kernel32" Alias "GetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long
  2886. Declare Function GetNumberOfConsoleMouseButtons Lib "kernel32" Alias "GetNumberOfConsoleMouseButtons" (lpNumberOfMouseButtons As Long) As Long
  2887. Declare Function SetConsoleMode Lib "kernel32" Alias "SetConsoleMode" (ByVal hConsoleHandle As Long, ByVal dwMode As Long) As Long
  2888. Declare Function SetConsoleActiveScreenBuffer Lib "kernel32" Alias "SetConsoleActiveScreenBuffer" (ByVal hConsoleOutput As Long) As Long
  2889. Declare Function FlushConsoleInputBuffer Lib "kernel32" Alias "FlushConsoleInputBuffer" (ByVal hConsoleInput As Long) As Long
  2890. Declare Function SetConsoleScreenBufferSize Lib "kernel32" Alias "SetConsoleScreenBufferSize" (ByVal hConsoleOutput As Long, dwSize As COORD) As Long
  2891. Declare Function SetConsoleCursorPosition Lib "kernel32" Alias "SetConsoleCursorPosition" (ByVal hConsoleOutput As Long, dwCursorPosition As COORD) As Long
  2892. Declare Function SetConsoleCursorInfo Lib "kernel32" Alias "SetConsoleCursorInfo" (ByVal hConsoleOutput As Long, lpConsoleCursorInfo As CONSOLE_CURSOR_INFO) As Long
  2893. 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
  2894. Declare Function SetConsoleWindowInfo Lib "kernel32" Alias "SetConsoleWindowInfo" (ByVal hConsoleOutput As Long, ByVal bAbsolute As Long, lpConsoleWindow As SMALL_RECT) As Long
  2895. Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long
  2896. Declare Function SetConsoleCtrlHandler Lib "kernel32" Alias "SetConsoleCtrlHandler" (ByVal HandlerRoutine As Long, ByVal Add As Long) As Long
  2897. Declare Function GenerateConsoleCtrlEvent Lib "kernel32" Alias "GenerateConsoleCtrlEvent" (ByVal dwCtrlEvent As Long, ByVal dwProcessGroupId As Long) As Long
  2898. Declare Function AllocConsole Lib "kernel32" Alias "AllocConsole" () As Long
  2899. Declare Function FreeConsole Lib "kernel32" Alias "FreeConsole" () As Long
  2900. Declare Function GetConsoleTitle Lib "kernel32" Alias "GetConsoleTitleA" (ByVal lpConsoleTitle As String, ByVal nSize As Long) As Long
  2901. Declare Function SetConsoleTitle Lib "kernel32" Alias "SetConsoleTitleA" (ByVal lpConsoleTitle As String) As Long
  2902. 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
  2903. 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
  2904.  
  2905. Public Const CONSOLE_TEXTMODE_BUFFER = 1
  2906.  
  2907. 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
  2908. Declare Function GetConsoleCP Lib "kernel32" Alias "GetConsoleCP" () As Long
  2909. Declare Function SetConsoleCP Lib "kernel32" Alias "SetConsoleCP" (ByVal wCodePageID As Long) As Long
  2910. Declare Function GetConsoleOutputCP Lib "kernel32" Alias "GetConsoleOutputCP" () As Long
  2911. Declare Function SetConsoleOutputCP Lib "kernel32" Alias "SetConsoleOutputCP" (ByVal wCodePageID As Long) As Long
  2912.  
  2913.  
  2914. ' -------------
  2915. '  Section GDI
  2916. ' -------------
  2917.  
  2918. ' Binary raster ops
  2919. Public Const R2_BLACK = 1       '   0
  2920. Public Const R2_NOTMERGEPEN = 2 '  DPon
  2921. Public Const R2_MASKNOTPEN = 3  '  DPna
  2922. Public Const R2_NOTCOPYPEN = 4  '  PN
  2923. Public Const R2_MASKPENNOT = 5  '  PDna
  2924. Public Const R2_NOT = 6 '  Dn
  2925. Public Const R2_XORPEN = 7      '  DPx
  2926. Public Const R2_NOTMASKPEN = 8  '  DPan
  2927. Public Const R2_MASKPEN = 9     '  DPa
  2928. Public Const R2_NOTXORPEN = 10  '  DPxn
  2929. Public Const R2_NOP = 11        '  D
  2930. Public Const R2_MERGENOTPEN = 12        '  DPno
  2931. Public Const R2_COPYPEN = 13    '  P
  2932. Public Const R2_MERGEPENNOT = 14        '  PDno
  2933. Public Const R2_MERGEPEN = 15   '  DPo
  2934. Public Const R2_WHITE = 16      '   1
  2935. Public Const R2_LAST = 16
  2936.  
  2937. '  Ternary raster operations
  2938. Public Const SRCCOPY = &HCC0020 ' (DWORD) dest = source
  2939. Public Const SRCPAINT = &HEE0086        ' (DWORD) dest = source OR dest
  2940. Public Const SRCAND = &H8800C6  ' (DWORD) dest = source AND dest
  2941. Public Const SRCINVERT = &H660046       ' (DWORD) dest = source XOR dest
  2942. Public Const SRCERASE = &H440328        ' (DWORD) dest = source AND (NOT dest )
  2943. Public Const NOTSRCCOPY = &H330008      ' (DWORD) dest = (NOT source)
  2944. Public Const NOTSRCERASE = &H1100A6     ' (DWORD) dest = (NOT src) AND (NOT dest)
  2945. Public Const MERGECOPY = &HC000CA       ' (DWORD) dest = (source AND pattern)
  2946. Public Const MERGEPAINT = &HBB0226      ' (DWORD) dest = (NOT source) OR dest
  2947. Public Const PATCOPY = &HF00021 ' (DWORD) dest = pattern
  2948. Public Const PATPAINT = &HFB0A09        ' (DWORD) dest = DPSnoo
  2949. Public Const PATINVERT = &H5A0049       ' (DWORD) dest = pattern XOR dest
  2950. Public Const DSTINVERT = &H550009       ' (DWORD) dest = (NOT dest)
  2951. Public Const BLACKNESS = &H42 ' (DWORD) dest = BLACK
  2952. Public Const WHITENESS = &HFF0062       ' (DWORD) dest = WHITE
  2953.  
  2954. Public Const GDI_ERROR = &HFFFF
  2955. Public Const HGDI_ERROR = &HFFFF
  2956.  
  2957. ' Region Flags
  2958. Public Const ERRORAPI = 0
  2959. Public Const NULLREGION = 1
  2960. Public Const SIMPLEREGION = 2
  2961. Public Const COMPLEXREGION = 3
  2962.  
  2963. ' CombineRgn() Styles
  2964. Public Const RGN_AND = 1
  2965. Public Const RGN_OR = 2
  2966. Public Const RGN_XOR = 3
  2967. Public Const RGN_DIFF = 4
  2968. Public Const RGN_COPY = 5
  2969. Public Const RGN_MIN = RGN_AND
  2970. Public Const RGN_MAX = RGN_COPY
  2971.  
  2972. ' StretchBlt() Modes
  2973. Public Const BLACKONWHITE = 1
  2974. Public Const WHITEONBLACK = 2
  2975. Public Const COLORONCOLOR = 3
  2976. Public Const HALFTONE = 4
  2977. Public Const MAXSTRETCHBLTMODE = 4
  2978.  
  2979. ' PolyFill() Modes
  2980. Public Const ALTERNATE = 1
  2981. Public Const WINDING = 2
  2982. Public Const POLYFILL_LAST = 2
  2983.  
  2984. ' Text Alignment Options
  2985. Public Const TA_NOUPDATECP = 0
  2986. Public Const TA_UPDATECP = 1
  2987.  
  2988. Public Const TA_LEFT = 0
  2989. Public Const TA_RIGHT = 2
  2990. Public Const TA_CENTER = 6
  2991.  
  2992. Public Const TA_TOP = 0
  2993. Public Const TA_BOTTOM = 8
  2994. Public Const TA_BASELINE = 24
  2995. Public Const TA_MASK = (TA_BASELINE + TA_CENTER + TA_UPDATECP)
  2996.  
  2997. Public Const VTA_BASELINE = TA_BASELINE
  2998. Public Const VTA_LEFT = TA_BOTTOM
  2999. Public Const VTA_RIGHT = TA_TOP
  3000. Public Const VTA_CENTER = TA_CENTER
  3001. Public Const VTA_BOTTOM = TA_RIGHT
  3002. Public Const VTA_TOP = TA_LEFT
  3003.  
  3004. Public Const ETO_GRAYED = 1
  3005. Public Const ETO_OPAQUE = 2
  3006. Public Const ETO_CLIPPED = 4
  3007.  
  3008. Public Const ASPECT_FILTERING = &H1
  3009.  
  3010. Public Const DCB_RESET = &H1
  3011. Public Const DCB_ACCUMULATE = &H2
  3012. Public Const DCB_DIRTY = DCB_ACCUMULATE
  3013. Public Const DCB_SET = (DCB_RESET Or DCB_ACCUMULATE)
  3014. Public Const DCB_ENABLE = &H4
  3015. Public Const DCB_DISABLE = &H8
  3016.  
  3017. ' Metafile Functions
  3018. Public Const META_SETBKCOLOR = &H201
  3019. Public Const META_SETBKMODE = &H102
  3020. Public Const META_SETMAPMODE = &H103
  3021. Public Const META_SETROP2 = &H104
  3022. Public Const META_SETRELABS = &H105
  3023. Public Const META_SETPOLYFILLMODE = &H106
  3024. Public Const META_SETSTRETCHBLTMODE = &H107
  3025. Public Const META_SETTEXTCHAREXTRA = &H108
  3026. Public Const META_SETTEXTCOLOR = &H209
  3027. Public Const META_SETTEXTJUSTIFICATION = &H20A
  3028. Public Const META_SETWINDOWORG = &H20B
  3029. Public Const META_SETWINDOWEXT = &H20C
  3030. Public Const META_SETVIEWPORTORG = &H20D
  3031. Public Const META_SETVIEWPORTEXT = &H20E
  3032. Public Const META_OFFSETWINDOWORG = &H20F
  3033. Public Const META_SCALEWINDOWEXT = &H410
  3034. Public Const META_OFFSETVIEWPORTORG = &H211
  3035. Public Const META_SCALEVIEWPORTEXT = &H412
  3036. Public Const META_LINETO = &H213
  3037. Public Const META_MOVETO = &H214
  3038. Public Const META_EXCLUDECLIPRECT = &H415
  3039. Public Const META_INTERSECTCLIPRECT = &H416
  3040. Public Const META_ARC = &H817
  3041. Public Const META_ELLIPSE = &H418
  3042. Public Const META_FLOODFILL = &H419
  3043. Public Const META_PIE = &H81A
  3044. Public Const META_RECTANGLE = &H41B
  3045. Public Const META_ROUNDRECT = &H61C
  3046. Public Const META_PATBLT = &H61D
  3047. Public Const META_SAVEDC = &H1E
  3048. Public Const META_SETPIXEL = &H41F
  3049. Public Const META_OFFSETCLIPRGN = &H220
  3050. Public Const META_TEXTOUT = &H521
  3051. Public Const META_BITBLT = &H922
  3052. Public Const META_STRETCHBLT = &HB23
  3053. Public Const META_POLYGON = &H324
  3054. Public Const META_POLYLINE = &H325
  3055. Public Const META_ESCAPE = &H626
  3056. Public Const META_RESTOREDC = &H127
  3057. Public Const META_FILLREGION = &H228
  3058. Public Const META_FRAMEREGION = &H429
  3059. Public Const META_INVERTREGION = &H12A
  3060. Public Const META_PAINTREGION = &H12B
  3061. Public Const META_SELECTCLIPREGION = &H12C
  3062. Public Const META_SELECTOBJECT = &H12D
  3063. Public Const META_SETTEXTALIGN = &H12E
  3064. Public Const META_CHORD = &H830
  3065. Public Const META_SETMAPPERFLAGS = &H231
  3066. Public Const META_EXTTEXTOUT = &HA32
  3067. Public Const META_SETDIBTODEV = &HD33
  3068. Public Const META_SELECTPALETTE = &H234
  3069. Public Const META_REALIZEPALETTE = &H35
  3070. Public Const META_ANIMATEPALETTE = &H436
  3071. Public Const META_SETPALENTRIES = &H37
  3072. Public Const META_POLYPOLYGON = &H538
  3073. Public Const META_RESIZEPALETTE = &H139
  3074. Public Const META_DIBBITBLT = &H940
  3075. Public Const META_DIBSTRETCHBLT = &HB41
  3076. Public Const META_DIBCREATEPATTERNBRUSH = &H142
  3077. Public Const META_STRETCHDIB = &HF43
  3078. Public Const META_EXTFLOODFILL = &H548
  3079. Public Const META_DELETEOBJECT = &H1F0
  3080. Public Const META_CREATEPALETTE = &HF7
  3081. Public Const META_CREATEPATTERNBRUSH = &H1F9
  3082. Public Const META_CREATEPENINDIRECT = &H2FA
  3083. Public Const META_CREATEFONTINDIRECT = &H2FB
  3084. Public Const META_CREATEBRUSHINDIRECT = &H2FC
  3085. Public Const META_CREATEREGION = &H6FF
  3086.  
  3087.  
  3088. ' GDI Escapes
  3089. Public Const NEWFRAME = 1
  3090. Public Const AbortDocC = 2
  3091. Public Const NEXTBAND = 3
  3092. Public Const SETCOLORTABLE = 4
  3093. Public Const GETCOLORTABLE = 5
  3094. Public Const FLUSHOUTPUT = 6
  3095. Public Const DRAFTMODE = 7
  3096. Public Const QUERYESCSUPPORT = 8
  3097. Public Const SETABORTPROC = 9
  3098. Public Const StartDocC = 10
  3099. Public Const EndDocC = 11
  3100. Public Const GETPHYSPAGESIZE = 12
  3101. Public Const GETPRINTINGOFFSET = 13
  3102. Public Const GETSCALINGFACTOR = 14
  3103. Public Const MFCOMMENT = 15
  3104. Public Const GETPENWIDTH = 16
  3105. Public Const SETCOPYCOUNT = 17
  3106. Public Const SELECTPAPERSOURCE = 18
  3107. Public Const DEVICEDATA = 19
  3108. Public Const PASSTHROUGH = 19
  3109. Public Const GETTECHNOLGY = 20
  3110. Public Const GETTECHNOLOGY = 20
  3111. Public Const SETLINECAP = 21
  3112. Public Const SETLINEJOIN = 22
  3113. Public Const SetMiterLimitC = 23
  3114. Public Const BANDINFO = 24
  3115. Public Const DRAWPATTERNRECT = 25
  3116. Public Const GETVECTORPENSIZE = 26
  3117. Public Const GETVECTORBRUSHSIZE = 27
  3118. Public Const ENABLEDUPLEX = 28
  3119. Public Const GETSETPAPERBINS = 29
  3120. Public Const GETSETPRINTORIENT = 30
  3121. Public Const ENUMPAPERBINS = 31
  3122. Public Const SETDIBSCALING = 32
  3123. Public Const EPSPRINTING = 33
  3124. Public Const ENUMPAPERMETRICS = 34
  3125. Public Const GETSETPAPERMETRICS = 35
  3126. Public Const POSTSCRIPT_DATA = 37
  3127. Public Const POSTSCRIPT_IGNORE = 38
  3128. Public Const MOUSETRAILS = 39
  3129. Public Const GETDEVICEUNITS = 42
  3130.  
  3131. Public Const GETEXTENDEDTEXTMETRICS = 256
  3132. Public Const GETEXTENTTABLE = 257
  3133. Public Const GETPAIRKERNTABLE = 258
  3134. Public Const GETTRACKKERNTABLE = 259
  3135. Public Const ExtTextOutC = 512
  3136. Public Const GETFACENAME = 513
  3137. Public Const DOWNLOADFACE = 514
  3138. Public Const ENABLERELATIVEWIDTHS = 768
  3139. Public Const ENABLEPAIRKERNING = 769
  3140. Public Const SETKERNTRACK = 770
  3141. Public Const SETALLJUSTVALUES = 771
  3142. Public Const SETCHARSET = 772
  3143.  
  3144. Public Const StretchBltC = 2048
  3145. Public Const GETSETSCREENPARAMS = 3072
  3146. Public Const BEGIN_PATH = 4096
  3147. Public Const CLIP_TO_PATH = 4097
  3148. Public Const END_PATH = 4098
  3149. Public Const EXT_DEVICE_CAPS = 4099
  3150. Public Const RESTORE_CTM = 4100
  3151. Public Const SAVE_CTM = 4101
  3152. Public Const SET_ARC_DIRECTION = 4102
  3153. Public Const SET_BACKGROUND_COLOR = 4103
  3154. Public Const SET_POLY_MODE = 4104
  3155. Public Const SET_SCREEN_ANGLE = 4105
  3156. Public Const SET_SPREAD = 4106
  3157. Public Const TRANSFORM_CTM = 4107
  3158. Public Const SET_CLIP_BOX = 4108
  3159. Public Const SET_BOUNDS = 4109
  3160. Public Const SET_MIRROR_MODE = 4110
  3161. Public Const OPENCHANNEL = 4110
  3162. Public Const DOWNLOADHEADER = 4111
  3163. Public Const CLOSECHANNEL = 4112
  3164. Public Const POSTSCRIPT_PASSTHROUGH = 4115
  3165. Public Const ENCAPSULATED_POSTSCRIPT = 4116
  3166.  
  3167. ' Spooler Error Codes
  3168. Public Const SP_NOTREPORTED = &H4000
  3169. Public Const SP_ERROR = (-1)
  3170. Public Const SP_APPABORT = (-2)
  3171. Public Const SP_USERABORT = (-3)
  3172. Public Const SP_OUTOFDISK = (-4)
  3173. Public Const SP_OUTOFMEMORY = (-5)
  3174.  
  3175. Public Const PR_JOBSTATUS = &H0
  3176.  
  3177. '  Object Definitions for EnumObjects()
  3178. Public Const OBJ_PEN = 1
  3179. Public Const OBJ_BRUSH = 2
  3180. Public Const OBJ_DC = 3
  3181. Public Const OBJ_METADC = 4
  3182. Public Const OBJ_PAL = 5
  3183. Public Const OBJ_FONT = 6
  3184. Public Const OBJ_BITMAP = 7
  3185. Public Const OBJ_REGION = 8
  3186. Public Const OBJ_METAFILE = 9
  3187. Public Const OBJ_MEMDC = 10
  3188. Public Const OBJ_EXTPEN = 11
  3189. Public Const OBJ_ENHMETADC = 12
  3190. Public Const OBJ_ENHMETAFILE = 13
  3191.  
  3192. '  xform stuff
  3193. Public Const MWT_IDENTITY = 1
  3194. Public Const MWT_LEFTMULTIPLY = 2
  3195. Public Const MWT_RIGHTMULTIPLY = 3
  3196.  
  3197. Public Const MWT_MIN = MWT_IDENTITY
  3198. Public Const MWT_MAX = MWT_RIGHTMULTIPLY
  3199.  
  3200. Type XFORM
  3201.         eM11 As Double
  3202.         eM12 As Double
  3203.         eM21 As Double
  3204.         eM22 As Double
  3205.         eDx As Double
  3206.         eDy As Double
  3207. End Type
  3208.  
  3209. ' Bitmap Header Definition
  3210. Type BITMAP '14 bytes
  3211.         bmType As Long
  3212.         bmWidth As Long
  3213.         bmHeight As Long
  3214.         bmWidthBytes As Long
  3215.         bmPlanes As Integer
  3216.         bmBitsPixel As Integer
  3217.         bmBits As Long
  3218. End Type
  3219.  
  3220. Type RGBTRIPLE
  3221.         rgbtBlue As Byte
  3222.         rgbtGreen As Byte
  3223.         rgbtRed As Byte
  3224. End Type
  3225.  
  3226. Type RGBQUAD
  3227.         rgbBlue As Byte
  3228.         rgbGreen As Byte
  3229.         rgbRed As Byte
  3230.         rgbReserved As Byte
  3231. End Type
  3232.  
  3233. ' structures for defining DIBs
  3234. Type BITMAPCOREHEADER '12 bytes
  3235.         bcSize As Long
  3236.         bcWidth As Integer
  3237.         bcHeight As Integer
  3238.         bcPlanes As Integer
  3239.         bcBitCount As Integer
  3240. End Type
  3241.  
  3242. Type BITMAPINFOHEADER '40 bytes
  3243.         biSize As Long
  3244.         biWidth As Long
  3245.         biHeight As Long
  3246.         biPlanes As Integer
  3247.         biBitCount As Integer
  3248.         biCompression As Long
  3249.         biSizeImage As Long
  3250.         biXPelsPerMeter As Long
  3251.         biYPelsPerMeter As Long
  3252.         biClrUsed As Long
  3253.         biClrImportant As Long
  3254. End Type
  3255.  
  3256. ' constants for the biCompression field
  3257. Public Const BI_RGB = 0&
  3258. Public Const BI_RLE8 = 1&
  3259. Public Const BI_RLE4 = 2&
  3260. Public Const BI_bitfields = 3&
  3261.  
  3262. Type BITMAPINFO
  3263.         bmiHeader As BITMAPINFOHEADER
  3264.         bmiColors As RGBQUAD
  3265. End Type
  3266.  
  3267. Type BITMAPCOREINFO
  3268.         bmciHeader As BITMAPCOREHEADER
  3269.         bmciColors As RGBTRIPLE
  3270. End Type
  3271.  
  3272. Type BITMAPFILEHEADER
  3273.         bfType As Integer
  3274.         bfSize As Long
  3275.         bfReserved1 As Integer
  3276.         bfReserved2 As Integer
  3277.         bfOffBits As Long
  3278. End Type
  3279.  
  3280.  
  3281. ' Clipboard Metafile Picture Structure
  3282. Type HANDLETABLE
  3283.         objectHandle(1) As Long
  3284. End Type
  3285.  
  3286. Type METARECORD
  3287.         rdSize As Long
  3288.         rdFunction As Integer
  3289.         rdParm(1) As Integer
  3290. End Type
  3291.  
  3292.  
  3293. Type METAFILEPICT
  3294.         mm As Long
  3295.         xExt As Long
  3296.         yExt As Long
  3297.         hMF As Long
  3298. End Type
  3299.  
  3300. Type METAHEADER
  3301.         mtType As Integer
  3302.         mtHeaderSize As Integer
  3303.         mtVersion As Integer
  3304.         mtSize As Long
  3305.         mtNoObjects As Integer
  3306.         mtMaxRecord As Long
  3307.         mtNoParameters As Integer
  3308. End Type
  3309.  
  3310. Type ENHMETARECORD
  3311.         iType As Long
  3312.         nSize As Long
  3313.         dParm(1) As Long
  3314. End Type
  3315.  
  3316. Type SIZEL
  3317.     cx As Long
  3318.     cy As Long
  3319. End Type
  3320.  
  3321. Type ENHMETAHEADER
  3322.         iType As Long
  3323.         nSize As Long
  3324.         rclBounds As RECTL
  3325.         rclFrame As RECTL
  3326.         dSignature As Long
  3327.         nVersion As Long
  3328.         nBytes As Long
  3329.         nRecords As Long
  3330.         nHandles As Integer
  3331.         sReserved As Integer
  3332.         nDescription As Long
  3333.         offDescription As Long
  3334.         nPalEntries As Long
  3335.         szlDevice As SIZEL
  3336.         szlMillimeters As SIZEL
  3337. End Type
  3338.  
  3339. Type TEXTMETRIC
  3340.         tmHeight As Long
  3341.         tmAscent As Long
  3342.         tmDescent As Long
  3343.         tmInternalLeading As Long
  3344.         tmExternalLeading As Long
  3345.         tmAveCharWidth As Long
  3346.         tmMaxCharWidth As Long
  3347.         tmWeight As Long
  3348.         tmOverhang As Long
  3349.         tmDigitizedAspectX As Long
  3350.         tmDigitizedAspectY As Long
  3351.         tmFirstChar As Byte
  3352.         tmLastChar As Byte
  3353.         tmDefaultChar As Byte
  3354.         tmBreakChar As Byte
  3355.         tmItalic As Byte
  3356.         tmUnderlined As Byte
  3357.         tmStruckOut As Byte
  3358.         tmPitchAndFamily As Byte
  3359.         tmCharSet As Byte
  3360. End Type
  3361.  
  3362. ' ntmFlags field flags
  3363. Public Const NTM_REGULAR = &H40&
  3364. Public Const NTM_BOLD = &H20&
  3365. Public Const NTM_ITALIC = &H1&
  3366.  
  3367. ' Structure passed to FONTENUMPROC
  3368. ' NOTE: NEWTEXTMETRIC is the same as TEXTMETRIC plus 4 new fields
  3369. Type NEWTEXTMETRIC
  3370.         tmHeight As Long
  3371.         tmAscent As Long
  3372.         tmDescent As Long
  3373.         tmInternalLeading As Long
  3374.         tmExternalLeading As Long
  3375.         tmAveCharWidth As Long
  3376.         tmMaxCharWidth As Long
  3377.         tmWeight As Long
  3378.         tmOverhang As Long
  3379.         tmDigitizedAspectX As Long
  3380.         tmDigitizedAspectY As Long
  3381.         tmFirstChar As Byte
  3382.         tmLastChar As Byte
  3383.         tmDefaultChar As Byte
  3384.         tmBreakChar As Byte
  3385.         tmItalic As Byte
  3386.         tmUnderlined As Byte
  3387.         tmStruckOut As Byte
  3388.         tmPitchAndFamily As Byte
  3389.         tmCharSet As Byte
  3390.         ntmFlags As Long
  3391.         ntmSizeEM As Long
  3392.         ntmCellHeight As Long
  3393.         ntmAveWidth As Long
  3394. End Type
  3395.  
  3396. '  tmPitchAndFamily flags
  3397. Public Const TMPF_FIXED_PITCH = &H1
  3398. Public Const TMPF_VECTOR = &H2
  3399. Public Const TMPF_DEVICE = &H8
  3400. Public Const TMPF_TRUETYPE = &H4
  3401.  
  3402.  
  3403. ' GDI Logical Objects:
  3404.  
  3405. Type PELARRAY
  3406.         paXCount As Long
  3407.         paYCount As Long
  3408.         paXExt As Long
  3409.         paYExt As Long
  3410.         paRGBs As Integer
  3411. End Type
  3412.  
  3413. ' Logical Brush (or Pattern)
  3414. Type LOGBRUSH
  3415.         lbStyle As Long
  3416.         lbColor As Long
  3417.         lbHatch As Long
  3418. End Type
  3419.  
  3420. ' Logical Pen
  3421. Type LOGPEN
  3422.         lopnStyle As Long
  3423.         lopnWidth As POINTAPI
  3424.         lopnColor As Long
  3425. End Type
  3426.  
  3427. Type EXTLOGPEN
  3428.         elpPenStyle As Long
  3429.         elpWidth As Long
  3430.         elpBrushStyle As Long
  3431.         elpColor As Long
  3432.         elpHatch As Long
  3433.         elpNumEntries As Long
  3434.         elpStyleEntry(1) As Long
  3435. End Type
  3436.  
  3437. Type PALETTEENTRY
  3438.         peRed As Byte
  3439.         peGreen As Byte
  3440.         peBlue As Byte
  3441.         peFlags As Byte
  3442. End Type
  3443.  
  3444. ' Logical Palette
  3445. Type LOGPALETTE
  3446.         palVersion As Integer
  3447.         palNumEntries As Integer
  3448.         palPalEntry(1) As PALETTEENTRY
  3449. End Type
  3450.  
  3451. ' Logical Font
  3452. Public Const LF_FACESIZE = 32
  3453. Public Const LF_FULLFACESIZE = 64
  3454.  
  3455. Type LOGFONT
  3456.         lfHeight As Long
  3457.         lfWidth As Long
  3458.         lfEscapement As Long
  3459.         lfOrientation As Long
  3460.         lfWeight As Long
  3461.         lfItalic As Byte
  3462.         lfUnderline As Byte
  3463.         lfStrikeOut As Byte
  3464.         lfCharSet As Byte
  3465.         lfOutPrecision As Byte
  3466.         lfClipPrecision As Byte
  3467.         lfQuality As Byte
  3468.         lfPitchAndFamily As Byte
  3469.         lfFaceName(LF_FACESIZE) As Byte
  3470. End Type
  3471.  
  3472. Type NONCLIENTMETRICS
  3473.         cbSize As Long
  3474.         iBorderWidth As Long
  3475.         iScrollWidth As Long
  3476.         iScrollHeight As Long
  3477.         iCaptionWidth As Long
  3478.         iCaptionHeight As Long
  3479.         lfCaptionFont As LOGFONT
  3480.         iSMCaptionWidth As Long
  3481.         iSMCaptionHeight As Long
  3482.         lfSMCaptionFont As LOGFONT
  3483.         iMenuWidth As Long
  3484.         iMenuHeight As Long
  3485.         lfMenuFont As LOGFONT
  3486.         lfStatusFont As LOGFONT
  3487.         lfMessageFont As LOGFONT
  3488. End Type
  3489.  
  3490. Type ENUMLOGFONT
  3491.         elfLogFont As LOGFONT
  3492.         elfFullName(LF_FULLFACESIZE) As Byte
  3493.         elfStyle(LF_FACESIZE) As Byte
  3494. End Type
  3495.  
  3496. Public Const OUT_DEFAULT_PRECIS = 0
  3497. Public Const OUT_STRING_PRECIS = 1
  3498. Public Const OUT_CHARACTER_PRECIS = 2
  3499. Public Const OUT_STROKE_PRECIS = 3
  3500. Public Const OUT_TT_PRECIS = 4
  3501. Public Const OUT_DEVICE_PRECIS = 5
  3502. Public Const OUT_RASTER_PRECIS = 6
  3503. Public Const OUT_TT_ONLY_PRECIS = 7
  3504. Public Const OUT_OUTLINE_PRECIS = 8
  3505.  
  3506. Public Const CLIP_DEFAULT_PRECIS = 0
  3507. Public Const CLIP_CHARACTER_PRECIS = 1
  3508. Public Const CLIP_STROKE_PRECIS = 2
  3509. Public Const CLIP_MASK = &HF
  3510. Public Const CLIP_LH_ANGLES = 16
  3511. Public Const CLIP_TT_ALWAYS = 32
  3512. Public Const CLIP_EMBEDDED = 128
  3513.  
  3514. Public Const DEFAULT_QUALITY = 0
  3515. Public Const DRAFT_QUALITY = 1
  3516. Public Const PROOF_QUALITY = 2
  3517.  
  3518. Public Const DEFAULT_PITCH = 0
  3519. Public Const FIXED_PITCH = 1
  3520. Public Const VARIABLE_PITCH = 2
  3521.  
  3522. Public Const ANSI_CHARSET = 0
  3523. Public Const DEFAULT_CHARSET = 1
  3524. Public Const SYMBOL_CHARSET = 2
  3525. Public Const SHIFTJIS_CHARSET = 128
  3526. Public Const HANGEUL_CHARSET = 129
  3527. Public Const CHINESEBIG5_CHARSET = 136
  3528. Public Const OEM_CHARSET = 255
  3529.  
  3530. ' Font Families
  3531. '
  3532. Public Const FF_DONTCARE = 0    '  Don't care or don't know.
  3533. Public Const FF_ROMAN = 16      '  Variable stroke width, serifed.
  3534.  
  3535. ' Times Roman, Century Schoolbook, etc.
  3536. Public Const FF_SWISS = 32      '  Variable stroke width, sans-serifed.
  3537.  
  3538. ' Helvetica, Swiss, etc.
  3539. Public Const FF_MODERN = 48     '  Constant stroke width, serifed or sans-serifed.
  3540.  
  3541. ' Pica, Elite, Courier, etc.
  3542. Public Const FF_SCRIPT = 64     '  Cursive, etc.
  3543. Public Const FF_DECORATIVE = 80 '  Old English, etc.
  3544.  
  3545. ' Font Weights
  3546. Public Const FW_DONTCARE = 0
  3547. Public Const FW_THIN = 100
  3548. Public Const FW_EXTRALIGHT = 200
  3549. Public Const FW_LIGHT = 300
  3550. Public Const FW_NORMAL = 400
  3551. Public Const FW_MEDIUM = 500
  3552. Public Const FW_SEMIBOLD = 600
  3553. Public Const FW_BOLD = 700
  3554. Public Const FW_EXTRABOLD = 800
  3555. Public Const FW_HEAVY = 900
  3556.  
  3557. Public Const FW_ULTRALIGHT = FW_EXTRALIGHT
  3558. Public Const FW_REGULAR = FW_NORMAL
  3559. Public Const FW_DEMIBOLD = FW_SEMIBOLD
  3560. Public Const FW_ULTRABOLD = FW_EXTRABOLD
  3561. Public Const FW_BLACK = FW_HEAVY
  3562.  
  3563. Public Const PANOSE_COUNT = 10
  3564. Public Const PAN_FAMILYTYPE_INDEX = 0
  3565. Public Const PAN_SERIFSTYLE_INDEX = 1
  3566. Public Const PAN_WEIGHT_INDEX = 2
  3567. Public Const PAN_PROPORTION_INDEX = 3
  3568. Public Const PAN_CONTRAST_INDEX = 4
  3569. Public Const PAN_STROKEVARIATION_INDEX = 5
  3570. Public Const PAN_ARMSTYLE_INDEX = 6
  3571. Public Const PAN_LETTERFORM_INDEX = 7
  3572. Public Const PAN_MIDLINE_INDEX = 8
  3573. Public Const PAN_XHEIGHT_INDEX = 9
  3574.  
  3575. Public Const PAN_CULTURE_LATIN = 0
  3576.  
  3577. Type PANOSE
  3578.         ulculture As Long
  3579.         bFamilyType As Byte
  3580.         bSerifStyle As Byte
  3581.         bWeight As Byte
  3582.         bProportion As Byte
  3583.         bContrast As Byte
  3584.         bStrokeVariation As Byte
  3585.         bArmStyle As Byte
  3586.         bLetterform As Byte
  3587.         bMidline As Byte
  3588.         bXHeight As Byte
  3589. End Type
  3590.  
  3591. Public Const PAN_ANY = 0  '  Any
  3592. Public Const PAN_NO_FIT = 1  '  No Fit
  3593.  
  3594. Public Const PAN_FAMILY_TEXT_DISPLAY = 2  '  Text and Display
  3595. Public Const PAN_FAMILY_SCRIPT = 3  '  Script
  3596. Public Const PAN_FAMILY_DECORATIVE = 4  '  Decorative
  3597. Public Const PAN_FAMILY_PICTORIAL = 5  '  Pictorial
  3598.  
  3599. Public Const PAN_SERIF_COVE = 2  '  Cove
  3600. Public Const PAN_SERIF_OBTUSE_COVE = 3  '  Obtuse Cove
  3601. Public Const PAN_SERIF_SQUARE_COVE = 4  '  Square Cove
  3602. Public Const PAN_SERIF_OBTUSE_SQUARE_COVE = 5  '  Obtuse Square Cove
  3603. Public Const PAN_SERIF_SQUARE = 6  '  Square
  3604. Public Const PAN_SERIF_THIN = 7  '  Thin
  3605. Public Const PAN_SERIF_BONE = 8  '  Bone
  3606. Public Const PAN_SERIF_EXAGGERATED = 9  '  Exaggerated
  3607. Public Const PAN_SERIF_TRIANGLE = 10  '  Triangle
  3608. Public Const PAN_SERIF_NORMAL_SANS = 11  '  Normal Sans
  3609. Public Const PAN_SERIF_OBTUSE_SANS = 12  '  Obtuse Sans
  3610. Public Const PAN_SERIF_PERP_SANS = 13  '  Prep Sans
  3611. Public Const PAN_SERIF_FLARED = 14  '  Flared
  3612. Public Const PAN_SERIF_ROUNDED = 15  '  Rounded
  3613.  
  3614. Public Const PAN_WEIGHT_VERY_LIGHT = 2  '  Very Light
  3615. Public Const PAN_WEIGHT_LIGHT = 3  '  Light
  3616. Public Const PAN_WEIGHT_THIN = 4  '  Thin
  3617. Public Const PAN_WEIGHT_BOOK = 5  '  Book
  3618. Public Const PAN_WEIGHT_MEDIUM = 6  '  Medium
  3619. Public Const PAN_WEIGHT_DEMI = 7  '  Demi
  3620. Public Const PAN_WEIGHT_BOLD = 8  '  Bold
  3621. Public Const PAN_WEIGHT_HEAVY = 9  '  Heavy
  3622. Public Const PAN_WEIGHT_BLACK = 10  '  Black
  3623. Public Const PAN_WEIGHT_NORD = 11  '  Nord
  3624.  
  3625. Public Const PAN_PROP_OLD_STYLE = 2  '  Old Style
  3626. Public Const PAN_PROP_MODERN = 3  '  Modern
  3627. Public Const PAN_PROP_EVEN_WIDTH = 4  '  Even Width
  3628. Public Const PAN_PROP_EXPANDED = 5  '  Expanded
  3629. Public Const PAN_PROP_CONDENSED = 6  '  Condensed
  3630. Public Const PAN_PROP_VERY_EXPANDED = 7  '  Very Expanded
  3631. Public Const PAN_PROP_VERY_CONDENSED = 8  '  Very Condensed
  3632. Public Const PAN_PROP_MONOSPACED = 9  '  Monospaced
  3633.  
  3634. Public Const PAN_CONTRAST_NONE = 2  '  None
  3635. Public Const PAN_CONTRAST_VERY_LOW = 3  '  Very Low
  3636. Public Const PAN_CONTRAST_LOW = 4  '  Low
  3637. Public Const PAN_CONTRAST_MEDIUM_LOW = 5  '  Medium Low
  3638. Public Const PAN_CONTRAST_MEDIUM = 6  '  Medium
  3639. Public Const PAN_CONTRAST_MEDIUM_HIGH = 7  '  Mediim High
  3640. Public Const PAN_CONTRAST_HIGH = 8  '  High
  3641. Public Const PAN_CONTRAST_VERY_HIGH = 9  '  Very High
  3642.  
  3643. Public Const PAN_STROKE_GRADUAL_DIAG = 2  '  Gradual/Diagonal
  3644. Public Const PAN_STROKE_GRADUAL_TRAN = 3  '  Gradual/Transitional
  3645. Public Const PAN_STROKE_GRADUAL_VERT = 4  '  Gradual/Vertical
  3646. Public Const PAN_STROKE_GRADUAL_HORZ = 5  '  Gradual/Horizontal
  3647. Public Const PAN_STROKE_RAPID_VERT = 6  '  Rapid/Vertical
  3648. Public Const PAN_STROKE_RAPID_HORZ = 7  '  Rapid/Horizontal
  3649. Public Const PAN_STROKE_INSTANT_VERT = 8  '  Instant/Vertical
  3650.  
  3651. Public Const PAN_STRAIGHT_ARMS_HORZ = 2  '  Straight Arms/Horizontal
  3652. Public Const PAN_STRAIGHT_ARMS_WEDGE = 3  '  Straight Arms/Wedge
  3653. Public Const PAN_STRAIGHT_ARMS_VERT = 4  '  Straight Arms/Vertical
  3654. Public Const PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5 '  Straight Arms/Single-Serif
  3655. Public Const PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6 '  Straight Arms/Double-Serif
  3656. Public Const PAN_BENT_ARMS_HORZ = 7  '  Non-Straight Arms/Horizontal
  3657. Public Const PAN_BENT_ARMS_WEDGE = 8  '  Non-Straight Arms/Wedge
  3658. Public Const PAN_BENT_ARMS_VERT = 9  '  Non-Straight Arms/Vertical
  3659. Public Const PAN_BENT_ARMS_SINGLE_SERIF = 10  '  Non-Straight Arms/Single-Serif
  3660. Public Const PAN_BENT_ARMS_DOUBLE_SERIF = 11  '  Non-Straight Arms/Double-Serif
  3661.  
  3662. Public Const PAN_LETT_NORMAL_CONTACT = 2  '  Normal/Contact
  3663. Public Const PAN_LETT_NORMAL_WEIGHTED = 3  '  Normal/Weighted
  3664. Public Const PAN_LETT_NORMAL_BOXED = 4  '  Normal/Boxed
  3665. Public Const PAN_LETT_NORMAL_FLATTENED = 5  '  Normal/Flattened
  3666. Public Const PAN_LETT_NORMAL_ROUNDED = 6  '  Normal/Rounded
  3667. Public Const PAN_LETT_NORMAL_OFF_CENTER = 7  '  Normal/Off Center
  3668. Public Const PAN_LETT_NORMAL_SQUARE = 8  '  Normal/Square
  3669. Public Const PAN_LETT_OBLIQUE_CONTACT = 9  '  Oblique/Contact
  3670. Public Const PAN_LETT_OBLIQUE_WEIGHTED = 10  '  Oblique/Weighted
  3671. Public Const PAN_LETT_OBLIQUE_BOXED = 11  '  Oblique/Boxed
  3672. Public Const PAN_LETT_OBLIQUE_FLATTENED = 12  '  Oblique/Flattened
  3673. Public Const PAN_LETT_OBLIQUE_ROUNDED = 13  '  Oblique/Rounded
  3674. Public Const PAN_LETT_OBLIQUE_OFF_CENTER = 14  '  Oblique/Off Center
  3675. Public Const PAN_LETT_OBLIQUE_SQUARE = 15  '  Oblique/Square
  3676.  
  3677. Public Const PAN_MIDLINE_STANDARD_TRIMMED = 2  '  Standard/Trimmed
  3678. Public Const PAN_MIDLINE_STANDARD_POINTED = 3  '  Standard/Pointed
  3679. Public Const PAN_MIDLINE_STANDARD_SERIFED = 4  '  Standard/Serifed
  3680. Public Const PAN_MIDLINE_HIGH_TRIMMED = 5  '  High/Trimmed
  3681. Public Const PAN_MIDLINE_HIGH_POINTED = 6  '  High/Pointed
  3682. Public Const PAN_MIDLINE_HIGH_SERIFED = 7  '  High/Serifed
  3683. Public Const PAN_MIDLINE_CONSTANT_TRIMMED = 8  '  Constant/Trimmed
  3684. Public Const PAN_MIDLINE_CONSTANT_POINTED = 9  '  Constant/Pointed
  3685. Public Const PAN_MIDLINE_CONSTANT_SERIFED = 10  '  Constant/Serifed
  3686. Public Const PAN_MIDLINE_LOW_TRIMMED = 11  '  Low/Trimmed
  3687. Public Const PAN_MIDLINE_LOW_POINTED = 12  '  Low/Pointed
  3688. Public Const PAN_MIDLINE_LOW_SERIFED = 13  '  Low/Serifed
  3689.  
  3690. Public Const PAN_XHEIGHT_CONSTANT_SMALL = 2  '  Constant/Small
  3691. Public Const PAN_XHEIGHT_CONSTANT_STD = 3  '  Constant/Standard
  3692. Public Const PAN_XHEIGHT_CONSTANT_LARGE = 4  '  Constant/Large
  3693. Public Const PAN_XHEIGHT_DUCKING_SMALL = 5  '  Ducking/Small
  3694. Public Const PAN_XHEIGHT_DUCKING_STD = 6  '  Ducking/Standard
  3695. Public Const PAN_XHEIGHT_DUCKING_LARGE = 7  '  Ducking/Large
  3696.  
  3697. Public Const ELF_VENDOR_SIZE = 4
  3698.  
  3699. Type EXTLOGFONT
  3700.         elfLogFont  As LOGFONT
  3701.         elfFullName(LF_FULLFACESIZE) As Byte
  3702.         elfStyle(LF_FACESIZE) As Byte
  3703.         elfVersion As Long
  3704.         elfStyleSize As Long
  3705.         elfMatch As Long
  3706.         elfReserved As Long
  3707.         elfVendorId(ELF_VENDOR_SIZE) As Byte
  3708.         elfCulture As Long
  3709.         elfPanose As PANOSE
  3710. End Type
  3711.  
  3712. Public Const ELF_VERSION = 0
  3713. Public Const ELF_CULTURE_LATIN = 0
  3714.  
  3715. '  EnumFonts Masks
  3716. Public Const RASTER_FONTTYPE = &H1
  3717. Public Const DEVICE_FONTTYPE = &H2
  3718. Public Const TRUETYPE_FONTTYPE = &H4
  3719.  
  3720. ' palette entry flags
  3721. Public Const PC_RESERVED = &H1  '  palette index used for animation
  3722. Public Const PC_EXPLICIT = &H2  '  palette index is explicit to device
  3723. Public Const PC_NOCOLLAPSE = &H4        '  do not match color to system palette
  3724.  
  3725. ' Background Modes
  3726. Public Const TRANSPARENT = 1
  3727. Public Const OPAQUE = 2
  3728. Public Const BKMODE_LAST = 2
  3729.  
  3730. '  Graphics Modes
  3731. Public Const GM_COMPATIBLE = 1
  3732. Public Const GM_ADVANCED = 2
  3733. Public Const GM_LAST = 2
  3734.  
  3735. '  PolyDraw and GetPath point types
  3736. Public Const PT_CLOSEFIGURE = &H1
  3737. Public Const PT_LINETO = &H2
  3738. Public Const PT_BEZIERTO = &H4
  3739. Public Const PT_MOVETO = &H6
  3740.  
  3741. '  Mapping Modes
  3742. Public Const MM_TEXT = 1
  3743. Public Const MM_LOMETRIC = 2
  3744. Public Const MM_HIMETRIC = 3
  3745. Public Const MM_LOENGLISH = 4
  3746. Public Const MM_HIENGLISH = 5
  3747. Public Const MM_TWIPS = 6
  3748. Public Const MM_ISOTROPIC = 7
  3749. Public Const MM_ANISOTROPIC = 8
  3750.  
  3751. '  Min and Max Mapping Mode values
  3752. Public Const MM_MIN = MM_TEXT
  3753. Public Const MM_MAX = MM_ANISOTROPIC
  3754. Public Const MM_MAX_FIXEDSCALE = MM_TWIPS
  3755.  
  3756. ' Coordinate Modes
  3757. Public Const ABSOLUTE = 1
  3758. Public Const RELATIVE = 2
  3759.  
  3760. ' Stock Logical Objects
  3761. Public Const WHITE_BRUSH = 0
  3762. Public Const LTGRAY_BRUSH = 1
  3763. Public Const GRAY_BRUSH = 2
  3764. Public Const DKGRAY_BRUSH = 3
  3765. Public Const BLACK_BRUSH = 4
  3766. Public Const NULL_BRUSH = 5
  3767. Public Const HOLLOW_BRUSH = NULL_BRUSH
  3768. Public Const WHITE_PEN = 6
  3769. Public Const BLACK_PEN = 7
  3770. Public Const NULL_PEN = 8
  3771. Public Const OEM_FIXED_FONT = 10
  3772. Public Const ANSI_FIXED_FONT = 11
  3773. Public Const ANSI_VAR_FONT = 12
  3774. Public Const SYSTEM_FONT = 13
  3775. Public Const DEVICE_DEFAULT_FONT = 14
  3776. Public Const DEFAULT_PALETTE = 15
  3777. Public Const SYSTEM_FIXED_FONT = 16
  3778. Public Const STOCK_LAST = 16
  3779.  
  3780. Public Const CLR_INVALID = &HFFFF
  3781.  
  3782. ' Brush Styles
  3783. Public Const BS_SOLID = 0
  3784. Public Const BS_NULL = 1
  3785. Public Const BS_HOLLOW = BS_NULL
  3786. Public Const BS_HATCHED = 2
  3787. Public Const BS_PATTERN = 3
  3788. Public Const BS_INDEXED = 4
  3789. Public Const BS_DIBPATTERN = 5
  3790. Public Const BS_DIBPATTERNPT = 6
  3791. Public Const BS_PATTERN8X8 = 7
  3792. Public Const BS_DIBPATTERN8X8 = 8
  3793.  
  3794. '  Hatch Styles
  3795. Public Const HS_HORIZONTAL = 0              '  -----
  3796. Public Const HS_VERTICAL = 1                '  |||||
  3797. Public Const HS_FDIAGONAL = 2               '  \\\\\
  3798. Public Const HS_BDIAGONAL = 3               '  /////
  3799. Public Const HS_CROSS = 4                   '  +++++
  3800. Public Const HS_DIAGCROSS = 5               '  xxxxx
  3801. Public Const HS_FDIAGONAL1 = 6
  3802. Public Const HS_BDIAGONAL1 = 7
  3803. Public Const HS_SOLID = 8
  3804. Public Const HS_DENSE1 = 9
  3805. Public Const HS_DENSE2 = 10
  3806. Public Const HS_DENSE3 = 11
  3807. Public Const HS_DENSE4 = 12
  3808. Public Const HS_DENSE5 = 13
  3809. Public Const HS_DENSE6 = 14
  3810. Public Const HS_DENSE7 = 15
  3811. Public Const HS_DENSE8 = 16
  3812. Public Const HS_NOSHADE = 17
  3813. Public Const HS_HALFTONE = 18
  3814. Public Const HS_SOLIDCLR = 19
  3815. Public Const HS_DITHEREDCLR = 20
  3816. Public Const HS_SOLIDTEXTCLR = 21
  3817. Public Const HS_DITHEREDTEXTCLR = 22
  3818. Public Const HS_SOLIDBKCLR = 23
  3819. Public Const HS_DITHEREDBKCLR = 24
  3820. Public Const HS_API_MAX = 25
  3821.  
  3822. '  Pen Styles
  3823. Public Const PS_SOLID = 0
  3824. Public Const PS_DASH = 1                    '  -------
  3825. Public Const PS_DOT = 2                     '  .......
  3826. Public Const PS_DASHDOT = 3                 '  _._._._
  3827. Public Const PS_DASHDOTDOT = 4              '  _.._.._
  3828. Public Const PS_NULL = 5
  3829. Public Const PS_INSIDEFRAME = 6
  3830. Public Const PS_USERSTYLE = 7
  3831. Public Const PS_ALTERNATE = 8
  3832. Public Const PS_STYLE_MASK = &HF
  3833.  
  3834. Public Const PS_ENDCAP_ROUND = &H0
  3835. Public Const PS_ENDCAP_SQUARE = &H100
  3836. Public Const PS_ENDCAP_FLAT = &H200
  3837. Public Const PS_ENDCAP_MASK = &HF00
  3838.  
  3839. Public Const PS_JOIN_ROUND = &H0
  3840. Public Const PS_JOIN_BEVEL = &H1000
  3841. Public Const PS_JOIN_MITER = &H2000
  3842. Public Const PS_JOIN_MASK = &HF000
  3843.  
  3844. Public Const PS_COSMETIC = &H0
  3845. Public Const PS_GEOMETRIC = &H10000
  3846. Public Const PS_TYPE_MASK = &HF0000
  3847.  
  3848. Public Const AD_COUNTERCLOCKWISE = 1
  3849. Public Const AD_CLOCKWISE = 2
  3850.  
  3851. '  Device Parameters for GetDeviceCaps()
  3852. Public Const DRIVERVERSION = 0      '  Device driver version
  3853. Public Const TECHNOLOGY = 2         '  Device classification
  3854. Public Const HORZSIZE = 4           '  Horizontal size in millimeters
  3855. Public Const VERTSIZE = 6           '  Vertical size in millimeters
  3856. Public Const HORZRES = 8            '  Horizontal width in pixels
  3857. Public Const VERTRES = 10           '  Vertical width in pixels
  3858. Public Const BITSPIXEL = 12         '  Number of bits per pixel
  3859. Public Const PLANES = 14            '  Number of planes
  3860. Public Const NUMBRUSHES = 16        '  Number of brushes the device has
  3861. Public Const NUMPENS = 18           '  Number of pens the device has
  3862. Public Const NUMMARKERS = 20        '  Number of markers the device has
  3863. Public Const NUMFONTS = 22          '  Number of fonts the device has
  3864. Public Const NUMCOLORS = 24         '  Number of colors the device supports
  3865. Public Const PDEVICESIZE = 26       '  Size required for device descriptor
  3866. Public Const CURVECAPS = 28         '  Curve capabilities
  3867. Public Const LINECAPS = 30          '  Line capabilities
  3868. Public Const POLYGONALCAPS = 32     '  Polygonal capabilities
  3869. Public Const TEXTCAPS = 34          '  Text capabilities
  3870. Public Const CLIPCAPS = 36          '  Clipping capabilities
  3871. Public Const RASTERCAPS = 38        '  Bitblt capabilities
  3872. Public Const ASPECTX = 40           '  Length of the X leg
  3873. Public Const ASPECTY = 42           '  Length of the Y leg
  3874. Public Const ASPECTXY = 44          '  Length of the hypotenuse
  3875.  
  3876. Public Const LOGPIXELSX = 88        '  Logical pixels/inch in X
  3877. Public Const LOGPIXELSY = 90        '  Logical pixels/inch in Y
  3878.  
  3879. Public Const SIZEPALETTE = 104      '  Number of entries in physical palette
  3880. Public Const NUMRESERVED = 106      '  Number of reserved entries in palette
  3881. Public Const COLORRES = 108         '  Actual color resolution
  3882.  
  3883. '  Printing related DeviceCaps. These replace the appropriate Escapes
  3884. Public Const PHYSICALWIDTH = 110 '  Physical Width in device units
  3885. Public Const PHYSICALHEIGHT = 111 '  Physical Height in device units
  3886. Public Const PHYSICALOFFSETX = 112 '  Physical Printable Area x margin
  3887. Public Const PHYSICALOFFSETY = 113 '  Physical Printable Area y margin
  3888. Public Const SCALINGFACTORX = 114 '  Scaling factor x
  3889. Public Const SCALINGFACTORY = 115 '  Scaling factor y
  3890.  
  3891. '  Device Capability Masks:
  3892.  
  3893. '  Device Technologies
  3894. Public Const DT_PLOTTER = 0             '  Vector plotter
  3895. Public Const DT_RASDISPLAY = 1          '  Raster display
  3896. Public Const DT_RASPRINTER = 2          '  Raster printer
  3897. Public Const DT_RASCAMERA = 3           '  Raster camera
  3898. Public Const DT_CHARSTREAM = 4          '  Character-stream, PLP
  3899. Public Const DT_METAFILE = 5            '  Metafile, VDM
  3900. Public Const DT_DISPFILE = 6            '  Display-file
  3901.  
  3902. '  Curve Capabilities
  3903. Public Const CC_NONE = 0                '  Curves not supported
  3904. Public Const CC_CIRCLES = 1             '  Can do circles
  3905. Public Const CC_PIE = 2                 '  Can do pie wedges
  3906. Public Const CC_CHORD = 4               '  Can do chord arcs
  3907. Public Const CC_ELLIPSES = 8            '  Can do ellipese
  3908. Public Const CC_WIDE = 16               '  Can do wide lines
  3909. Public Const CC_STYLED = 32             '  Can do styled lines
  3910. Public Const CC_WIDESTYLED = 64         '  Can do wide styled lines
  3911. Public Const CC_INTERIORS = 128 '  Can do interiors
  3912. Public Const CC_ROUNDRECT = 256 '
  3913.  
  3914. '  Line Capabilities
  3915. Public Const LC_NONE = 0                '  Lines not supported
  3916. Public Const LC_POLYLINE = 2            '  Can do polylines
  3917. Public Const LC_MARKER = 4              '  Can do markers
  3918. Public Const LC_POLYMARKER = 8          '  Can do polymarkers
  3919. Public Const LC_WIDE = 16               '  Can do wide lines
  3920. Public Const LC_STYLED = 32             '  Can do styled lines
  3921. Public Const LC_WIDESTYLED = 64         '  Can do wide styled lines
  3922. Public Const LC_INTERIORS = 128 '  Can do interiors
  3923.  
  3924. '  Polygonal Capabilities
  3925. Public Const PC_NONE = 0                '  Polygonals not supported
  3926. Public Const PC_POLYGON = 1             '  Can do polygons
  3927. Public Const PC_RECTANGLE = 2           '  Can do rectangles
  3928. Public Const PC_WINDPOLYGON = 4         '  Can do winding polygons
  3929. Public Const PC_TRAPEZOID = 4           '  Can do trapezoids
  3930. Public Const PC_SCANLINE = 8            '  Can do scanlines
  3931. Public Const PC_WIDE = 16               '  Can do wide borders
  3932. Public Const PC_STYLED = 32             '  Can do styled borders
  3933. Public Const PC_WIDESTYLED = 64         '  Can do wide styled borders
  3934. Public Const PC_INTERIORS = 128 '  Can do interiors
  3935.  
  3936. '  Polygonal Capabilities
  3937. Public Const CP_NONE = 0                '  No clipping of output
  3938. Public Const CP_RECTANGLE = 1           '  Output clipped to rects
  3939. Public Const CP_REGION = 2              '
  3940.  
  3941. '  Text Capabilities
  3942. Public Const TC_OP_CHARACTER = &H1              '  Can do OutputPrecision   CHARACTER
  3943. Public Const TC_OP_STROKE = &H2                 '  Can do OutputPrecision   STROKE
  3944. Public Const TC_CP_STROKE = &H4                 '  Can do ClipPrecision     STROKE
  3945. Public Const TC_CR_90 = &H8                     '  Can do CharRotAbility    90
  3946. Public Const TC_CR_ANY = &H10                   '  Can do CharRotAbility    ANY
  3947. Public Const TC_SF_X_YINDEP = &H20              '  Can do ScaleFreedom      X_YINDEPENDENT
  3948. Public Const TC_SA_DOUBLE = &H40                '  Can do ScaleAbility      DOUBLE
  3949. Public Const TC_SA_INTEGER = &H80               '  Can do ScaleAbility      INTEGER
  3950. Public Const TC_SA_CONTIN = &H100               '  Can do ScaleAbility      CONTINUOUS
  3951. Public Const TC_EA_DOUBLE = &H200               '  Can do EmboldenAbility   DOUBLE
  3952. Public Const TC_IA_ABLE = &H400                 '  Can do ItalisizeAbility  ABLE
  3953. Public Const TC_UA_ABLE = &H800                 '  Can do UnderlineAbility  ABLE
  3954. Public Const TC_SO_ABLE = &H1000                '  Can do StrikeOutAbility  ABLE
  3955. Public Const TC_RA_ABLE = &H2000                '  Can do RasterFontAble    ABLE
  3956. Public Const TC_VA_ABLE = &H4000                '  Can do VectorFontAble    ABLE
  3957. Public Const TC_RESERVED = &H8000
  3958. Public Const TC_SCROLLBLT = &H10000             '  do text scroll with blt
  3959.  
  3960. '  Raster Capabilities
  3961. Public Const RC_NONE = 0
  3962. Public Const RC_BITBLT = 1                  '  Can do standard BLT.
  3963. Public Const RC_BANDING = 2                 '  Device requires banding support
  3964. Public Const RC_SCALING = 4                 '  Device requires scaling support
  3965. Public Const RC_BITMAP64 = 8                '  Device can support >64K bitmap
  3966. Public Const RC_GDI20_OUTPUT = &H10             '  has 2.0 output calls
  3967. Public Const RC_GDI20_STATE = &H20
  3968. Public Const RC_SAVEBITMAP = &H40
  3969. Public Const RC_DI_BITMAP = &H80                '  supports DIB to memory
  3970. Public Const RC_PALETTE = &H100                 '  supports a palette
  3971. Public Const RC_DIBTODEV = &H200                '  supports DIBitsToDevice
  3972. Public Const RC_BIGFONT = &H400                 '  supports >64K fonts
  3973. Public Const RC_STRETCHBLT = &H800              '  supports StretchBlt
  3974. Public Const RC_FLOODFILL = &H1000              '  supports FloodFill
  3975. Public Const RC_STRETCHDIB = &H2000             '  supports StretchDIBits
  3976. Public Const RC_OP_DX_OUTPUT = &H4000
  3977. Public Const RC_DEVBITS = &H8000
  3978.  
  3979. ' DIB color table identifiers
  3980. Public Const DIB_RGB_COLORS = 0 '  color table in RGBs
  3981. Public Const DIB_PAL_COLORS = 1 '  color table in palette indices
  3982. Public Const DIB_PAL_INDICES = 2 '  No color table indices into surf palette
  3983. Public Const DIB_PAL_PHYSINDICES = 2 '  No color table indices into surf palette
  3984. Public Const DIB_PAL_LOGINDICES = 4 '  No color table indices into DC palette
  3985.  
  3986. ' constants for Get/SetSystemPaletteUse()
  3987. Public Const SYSPAL_ERROR = 0
  3988. Public Const SYSPAL_STATIC = 1
  3989. Public Const SYSPAL_NOSTATIC = 2
  3990.  
  3991. ' constants for CreateDIBitmap
  3992. Public Const CBM_CREATEDIB = &H2      '  create DIB bitmap
  3993. Public Const CBM_INIT = &H4           '  initialize bitmap
  3994.  
  3995. ' ExtFloodFill style flags
  3996. Public Const FLOODFILLBORDER = 0
  3997. Public Const FLOODFILLSURFACE = 1
  3998.  
  3999. '  size of a device name string
  4000. Public Const CCHDEVICENAME = 32
  4001.  
  4002. '  size of a form name string
  4003. Public Const CCHFORMNAME = 32
  4004.  
  4005. Type DEVMODE
  4006.         dmDeviceName As String * CCHDEVICENAME
  4007.         dmSpecVersion As Integer
  4008.         dmDriverVersion As Integer
  4009.         dmSize As Integer
  4010.         dmDriverExtra As Integer
  4011.         dmFields As Long
  4012.         dmOrientation As Integer
  4013.         dmPaperSize As Integer
  4014.         dmPaperLength As Integer
  4015.         dmPaperWidth As Integer
  4016.         dmScale As Integer
  4017.         dmCopies As Integer
  4018.         dmDefaultSource As Integer
  4019.         dmPrintQuality As Integer
  4020.         dmColor As Integer
  4021.         dmDuplex As Integer
  4022.         dmYResolution As Integer
  4023.         dmTTOption As Integer
  4024.         dmCollate As Integer
  4025.         dmFormName As String * CCHFORMNAME
  4026.         dmUnusedPadding As Integer
  4027.         dmBitsPerPel As Integer
  4028.         dmPelsWidth As Long
  4029.         dmPelsHeight As Long
  4030.         dmDisplayFlags As Long
  4031.         dmDisplayFrequency As Long
  4032. End Type
  4033.  
  4034. ' current version of specification
  4035. Public Const DM_SPECVERSION = &H320
  4036.  
  4037. ' field selection bits
  4038. Public Const DM_ORIENTATION = &H1&
  4039. Public Const DM_PAPERSIZE = &H2&
  4040. Public Const DM_PAPERLENGTH = &H4&
  4041. Public Const DM_PAPERWIDTH = &H8&
  4042. Public Const DM_SCALE = &H10&
  4043. Public Const DM_COPIES = &H100&
  4044. Public Const DM_DEFAULTSOURCE = &H200&
  4045. Public Const DM_PRINTQUALITY = &H400&
  4046. Public Const DM_COLOR = &H800&
  4047. Public Const DM_DUPLEX = &H1000&
  4048. Public Const DM_YRESOLUTION = &H2000&
  4049. Public Const DM_TTOPTION = &H4000&
  4050. Public Const DM_COLLATE As Long = &H8000
  4051. Public Const DM_FORMNAME As Long = &H10000
  4052.  
  4053. '  orientation selections
  4054. Public Const DMORIENT_PORTRAIT = 1
  4055. Public Const DMORIENT_LANDSCAPE = 2
  4056.  
  4057. '  paper selections
  4058. Public Const DMPAPER_LETTER = 1
  4059. Public Const DMPAPER_FIRST = DMPAPER_LETTER
  4060.                '  Letter 8 1/2 x 11 in
  4061. Public Const DMPAPER_LETTERSMALL = 2            '  Letter Small 8 1/2 x 11 in
  4062. Public Const DMPAPER_TABLOID = 3                '  Tabloid 11 x 17 in
  4063. Public Const DMPAPER_LEDGER = 4                 '  Ledger 17 x 11 in
  4064. Public Const DMPAPER_LEGAL = 5                  '  Legal 8 1/2 x 14 in
  4065. Public Const DMPAPER_STATEMENT = 6              '  Statement 5 1/2 x 8 1/2 in
  4066. Public Const DMPAPER_EXECUTIVE = 7              '  Executive 7 1/4 x 10 1/2 in
  4067. Public Const DMPAPER_A3 = 8                     '  A3 297 x 420 mm
  4068. Public Const DMPAPER_A4 = 9                     '  A4 210 x 297 mm
  4069. Public Const DMPAPER_A4SMALL = 10               '  A4 Small 210 x 297 mm
  4070. Public Const DMPAPER_A5 = 11                    '  A5 148 x 210 mm
  4071. Public Const DMPAPER_B4 = 12                    '  B4 250 x 354
  4072. Public Const DMPAPER_B5 = 13                    '  B5 182 x 257 mm
  4073. Public Const DMPAPER_FOLIO = 14                 '  Folio 8 1/2 x 13 in
  4074. Public Const DMPAPER_QUARTO = 15                '  Quarto 215 x 275 mm
  4075. Public Const DMPAPER_10X14 = 16                 '  10x14 in
  4076. Public Const DMPAPER_11X17 = 17                 '  11x17 in
  4077. Public Const DMPAPER_NOTE = 18                  '  Note 8 1/2 x 11 in
  4078. Public Const DMPAPER_ENV_9 = 19                 '  Envelope #9 3 7/8 x 8 7/8
  4079. Public Const DMPAPER_ENV_10 = 20                '  Envelope #10 4 1/8 x 9 1/2
  4080. Public Const DMPAPER_ENV_11 = 21                '  Envelope #11 4 1/2 x 10 3/8
  4081. Public Const DMPAPER_ENV_12 = 22                '  Envelope #12 4 \276 x 11
  4082. Public Const DMPAPER_ENV_14 = 23                '  Envelope #14 5 x 11 1/2
  4083. Public Const DMPAPER_CSHEET = 24                '  C size sheet
  4084. Public Const DMPAPER_DSHEET = 25                '  D size sheet
  4085. Public Const DMPAPER_ESHEET = 26                '  E size sheet
  4086. Public Const DMPAPER_ENV_DL = 27                '  Envelope DL 110 x 220mm
  4087. Public Const DMPAPER_ENV_C5 = 28                '  Envelope C5 162 x 229 mm
  4088. Public Const DMPAPER_ENV_C3 = 29                '  Envelope C3  324 x 458 mm
  4089. Public Const DMPAPER_ENV_C4 = 30                '  Envelope C4  229 x 324 mm
  4090. Public Const DMPAPER_ENV_C6 = 31                '  Envelope C6  114 x 162 mm
  4091. Public Const DMPAPER_ENV_C65 = 32               '  Envelope C65 114 x 229 mm
  4092. Public Const DMPAPER_ENV_B4 = 33                '  Envelope B4  250 x 353 mm
  4093. Public Const DMPAPER_ENV_B5 = 34                '  Envelope B5  176 x 250 mm
  4094. Public Const DMPAPER_ENV_B6 = 35                '  Envelope B6  176 x 125 mm
  4095. Public Const DMPAPER_ENV_ITALY = 36             '  Envelope 110 x 230 mm
  4096. Public Const DMPAPER_ENV_MONARCH = 37           '  Envelope Monarch 3.875 x 7.5 in
  4097. Public Const DMPAPER_ENV_PERSONAL = 38          '  6 3/4 Envelope 3 5/8 x 6 1/2 in
  4098. Public Const DMPAPER_FANFOLD_US = 39            '  US Std Fanfold 14 7/8 x 11 in
  4099. Public Const DMPAPER_FANFOLD_STD_GERMAN = 40    '  German Std Fanfold 8 1/2 x 12 in
  4100. Public Const DMPAPER_FANFOLD_LGL_GERMAN = 41    '  German Legal Fanfold 8 1/2 x 13 in
  4101.  
  4102. Public Const DMPAPER_LAST = DMPAPER_FANFOLD_LGL_GERMAN
  4103.  
  4104. Public Const DMPAPER_USER = 256
  4105.  
  4106. '  bin selections
  4107. Public Const DMBIN_UPPER = 1
  4108. Public Const DMBIN_FIRST = DMBIN_UPPER
  4109.  
  4110. Public Const DMBIN_ONLYONE = 1
  4111. Public Const DMBIN_LOWER = 2
  4112. Public Const DMBIN_MIDDLE = 3
  4113. Public Const DMBIN_MANUAL = 4
  4114. Public Const DMBIN_ENVELOPE = 5
  4115. Public Const DMBIN_ENVMANUAL = 6
  4116. Public Const DMBIN_AUTO = 7
  4117. Public Const DMBIN_TRACTOR = 8
  4118. Public Const DMBIN_SMALLFMT = 9
  4119. Public Const DMBIN_LARGEFMT = 10
  4120. Public Const DMBIN_LARGECAPACITY = 11
  4121. Public Const DMBIN_CASSETTE = 14
  4122. Public Const DMBIN_LAST = DMBIN_CASSETTE
  4123.  
  4124. Public Const DMBIN_USER = 256               '  device specific bins start here
  4125.  
  4126. '  print qualities
  4127. Public Const DMRES_DRAFT = (-1)
  4128. Public Const DMRES_LOW = (-2)
  4129. Public Const DMRES_MEDIUM = (-3)
  4130. Public Const DMRES_HIGH = (-4)
  4131.  
  4132. '  color enable/disable for color printers
  4133. Public Const DMCOLOR_MONOCHROME = 1
  4134. Public Const DMCOLOR_COLOR = 2
  4135.  
  4136. '  duplex enable
  4137. Public Const DMDUP_SIMPLEX = 1
  4138. Public Const DMDUP_VERTICAL = 2
  4139. Public Const DMDUP_HORIZONTAL = 3
  4140.  
  4141. '  TrueType options
  4142. Public Const DMTT_BITMAP = 1            '  print TT fonts as graphics
  4143. Public Const DMTT_DOWNLOAD = 2          '  download TT fonts as soft fonts
  4144. Public Const DMTT_SUBDEV = 3            '  substitute device fonts for TT fonts
  4145.  
  4146. '  Collation selections
  4147. Public Const DMCOLLATE_FALSE = 0
  4148. Public Const DMCOLLATE_TRUE = 1
  4149.  
  4150. '  DEVMODE dmDisplayFlags flags
  4151.  
  4152. Public Const DM_GRAYSCALE = &H1
  4153. Public Const DM_INTERLACED = &H2
  4154.  
  4155. '  GetRegionData/ExtCreateRegion
  4156.  
  4157. Public Const RDH_RECTANGLES = 1
  4158.  
  4159. Type RGNDATAHEADER
  4160.         dwSize As Long
  4161.         iType As Long
  4162.         nCount As Long
  4163.         nRgnSize As Long
  4164.         rcBound As Rect
  4165. End Type
  4166.  
  4167. Type RGNDATA
  4168.         rdh As RGNDATAHEADER
  4169.         Buffer As Byte
  4170. End Type
  4171.  
  4172. Type ABC
  4173.         abcA As Long
  4174.         abcB As Long
  4175.         abcC As Long
  4176. End Type
  4177.  
  4178. Type ABCFLOAT
  4179.         abcfA As Double
  4180.         abcfB As Double
  4181.         abcfC As Double
  4182. End Type
  4183.  
  4184. Type OUTLINETEXTMETRIC
  4185.         otmSize As Long
  4186.         otmTextMetrics As TEXTMETRIC
  4187.         otmFiller As Byte
  4188.         otmPanoseNumber As PANOSE
  4189.         otmfsSelection As Long
  4190.         otmfsType As Long
  4191.         otmsCharSlopeRise As Long
  4192.         otmsCharSlopeRun As Long
  4193.         otmItalicAngle As Long
  4194.         otmEMSquare As Long
  4195.         otmAscent As Long
  4196.         otmDescent As Long
  4197.         otmLineGap As Long
  4198.         otmsCapEmHeight As Long
  4199.         otmsXHeight As Long
  4200.         otmrcFontBox As Rect
  4201.         otmMacAscent As Long
  4202.         otmMacDescent As Long
  4203.         otmMacLineGap As Long
  4204.         otmusMinimumPPEM As Long
  4205.         otmptSubscriptSize As POINTAPI
  4206.         otmptSubscriptOffset As POINTAPI
  4207.         otmptSuperscriptSize As POINTAPI
  4208.         otmptSuperscriptOffset As POINTAPI
  4209.         otmsStrikeoutSize As Long
  4210.         otmsStrikeoutPosition As Long
  4211.         otmsUnderscorePosition As Long
  4212.         otmsUnderscoreSize As Long
  4213.         otmpFamilyName As String
  4214.         otmpFaceName As String
  4215.         otmpStyleName As String
  4216.         otmpFullName As String
  4217. End Type
  4218.  
  4219. Type POLYTEXT
  4220.         x As Long
  4221.         y As Long
  4222.         n As Long
  4223.         lpStr As String
  4224.         uiFlags As Long
  4225.         rcl As Rect
  4226.         pdx As Long
  4227. End Type
  4228.  
  4229. Type FIXED
  4230.         fract As Integer
  4231.         Value As Integer
  4232. End Type
  4233.  
  4234. Type MAT2
  4235.         eM11 As FIXED
  4236.         eM12 As FIXED
  4237.         eM21 As FIXED
  4238.         eM22 As FIXED
  4239. End Type
  4240.  
  4241. Type GLYPHMETRICS
  4242.         gmBlackBoxX As Long
  4243.         gmBlackBoxY As Long
  4244.         gmptGlyphOrigin As POINTAPI
  4245.         gmCellIncX As Integer
  4246.         gmCellIncY As Integer
  4247. End Type
  4248.  
  4249.  
  4250. ' GetGlyphOutline constants
  4251. Public Const GGO_METRICS = 0
  4252. Public Const GGO_BITMAP = 1
  4253. Public Const GGO_NATIVE = 2
  4254.  
  4255. Public Const TT_POLYGON_TYPE = 24
  4256.  
  4257. Public Const TT_PRIM_LINE = 1
  4258. Public Const TT_PRIM_QSPLINE = 2
  4259.  
  4260. Type POINTFX
  4261.         x As FIXED
  4262.         y As FIXED
  4263. End Type
  4264.  
  4265. Type TTPOLYCURVE
  4266.         wType As Integer
  4267.         cpfx As Integer
  4268.         apfx As POINTFX
  4269. End Type
  4270.  
  4271. Type TTPOLYGONHEADER
  4272.         cb As Long
  4273.         dwType As Long
  4274.         pfxStart As POINTFX
  4275. End Type
  4276.  
  4277. Type RASTERIZER_STATUS
  4278.         nSize As Integer
  4279.         wFlags As Integer
  4280.         nLanguageID As Integer
  4281. End Type
  4282.  
  4283. ' bits defined in wFlags of RASTERIZER_STATUS
  4284. Public Const TT_AVAILABLE = &H1
  4285. Public Const TT_ENABLED = &H2
  4286.  
  4287. Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
  4288.  
  4289. Declare Function AnimatePalette Lib "gdi32" Alias "AnimatePaletteA" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteColors As PALETTEENTRY) As Long
  4290. 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
  4291. 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
  4292. Declare Function CancelDC Lib "gdi32" Alias "CancelDC" (ByVal hdc As Long) As Long
  4293. 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
  4294. Declare Function CloseMetaFile Lib "gdi32" Alias "CloseMetaFile" (ByVal hMF As Long) As Long
  4295. 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
  4296. Declare Function CopyMetaFile Lib "gdi32" Alias "CopyMetaFileA" (ByVal hMF As Long, ByVal lpFileName As String) As Long
  4297.  
  4298. 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
  4299. Declare Function CreateBitmapIndirect Lib "gdi32" Alias "CreateBitmapIndirect" (lpBitmap As BITMAP) As Long
  4300. Declare Function CreateBrushIndirect Lib "gdi32" Alias "CreateBrushIndirect" (lpLogBrush As LOGBRUSH) As Long
  4301. Declare Function CreateCompatibleBitmap Lib "gdi32" Alias "CreateCompatibleBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
  4302. Declare Function CreateDiscardableBitmap Lib "gdi32" Alias "CreateDiscardableBitmap" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
  4303.  
  4304. Declare Function CreateCompatibleDC Lib "gdi32" Alias "CreateCompatibleDC" (ByVal hdc As Long) As Long
  4305. Declare Function CreateDC Lib "gdi32" Alias "CreateDCA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long
  4306.  
  4307. 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
  4308. Declare Function CreateDIBPatternBrush Lib "gdi32" Alias "CreateDIBPatternBrush" (ByVal hPackedDIB As Long, ByVal wUsage As Long) As Long
  4309. Declare Function CreateDIBPatternBrushPt Lib "gdi32" Alias "CreateDIBPatternBrushPt" (lpPackedDIB As Any, ByVal iUsage As Long) As Long
  4310. Declare Function CreateEllipticRgnIndirect Lib "gdi32" Alias "CreateEllipticRgnIndirect" (lpRect As Rect) As Long
  4311. 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
  4312.  
  4313. Declare Function CreateFontIndirect Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) As Long
  4314. Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal H As Long, ByVal W As Long, ByVal E As Long, ByVal O As Long, ByVal W 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
  4315.  
  4316. Declare Function CreateHatchBrush Lib "gdi32" Alias "CreateHatchBrush" (ByVal nIndex As Long, ByVal crColor As Long) As Long
  4317. Declare Function CreateIC Lib "gdi32" Alias "CreateICA" (ByVal lpDriverName As String, ByVal lpDeviceName As String, ByVal lpOutput As String, lpInitData As DEVMODE) As Long
  4318.  
  4319. Declare Function CreateMetaFile Lib "gdi32" Alias "CreateMetaFileA" (ByVal lpString As String) As Long
  4320.  
  4321. Declare Function CreatePalette Lib "gdi32" Alias "CreatePalette" (lpLogPalette As LOGPALETTE) As Long
  4322. Declare Function CreatePen Lib "gdi32" Alias "CreatePen" (ByVal nPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long
  4323. Declare Function CreatePenIndirect Lib "gdi32" Alias "CreatePenIndirect" (lpLogPen As LOGPEN) As Long
  4324. 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
  4325. Declare Function CreateRectRgnIndirect Lib "gdi32" Alias "CreateRectRgnIndirect" (lpRect As RECT) As Long
  4326. Declare Function CreatePolyPolygonRgn Lib "gdi32" Alias "CreatePolyPolygonRgn" (lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
  4327. Declare Function CreatePatternBrush Lib "gdi32" Alias "CreatePatternBrush" (ByVal hBitmap As Long) As Long
  4328. 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
  4329. 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
  4330. Declare Function CreateSolidBrush Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor As Long) As Long
  4331.  
  4332. Declare Function DeleteDC Lib "gdi32" Alias "DeleteDC" (ByVal hdc As Long) As Long
  4333. Declare Function DeleteObject Lib "gdi32" Alias "DeleteObject" (ByVal hObject As Long) As Long
  4334. Declare Function DeleteMetaFile Lib "gdi32" Alias "DeleteMetaFile" (ByVal hMF As Long) As Long
  4335.  
  4336. '  mode selections for the device mode function
  4337. Public Const DM_UPDATE = 1
  4338. Public Const DM_COPY = 2
  4339. Public Const DM_PROMPT = 4
  4340. Public Const DM_MODIFY = 8
  4341.  
  4342. Public Const DM_IN_BUFFER = DM_MODIFY
  4343. Public Const DM_IN_PROMPT = DM_PROMPT
  4344. Public Const DM_OUT_BUFFER = DM_COPY
  4345. Public Const DM_OUT_DEFAULT = DM_UPDATE
  4346.  
  4347. '  device capabilities indices
  4348. Public Const DC_FIELDS = 1
  4349. Public Const DC_PAPERS = 2
  4350. Public Const DC_PAPERSIZE = 3
  4351. Public Const DC_MINEXTENT = 4
  4352. Public Const DC_MAXEXTENT = 5
  4353. Public Const DC_BINS = 6
  4354. Public Const DC_DUPLEX = 7
  4355. Public Const DC_SIZE = 8
  4356. Public Const DC_EXTRA = 9
  4357. Public Const DC_VERSION = 10
  4358. Public Const DC_DRIVER = 11
  4359. Public Const DC_BINNAMES = 12
  4360. Public Const DC_ENUMRESOLUTIONS = 13
  4361. Public Const DC_FILEDEPENDENCIES = 14
  4362. Public Const DC_TRUETYPE = 15
  4363. Public Const DC_PAPERNAMES = 16
  4364. Public Const DC_ORIENTATION = 17
  4365. Public Const DC_COPIES = 18
  4366.  
  4367. '  bit fields of the return value (DWORD) for DC_TRUETYPE
  4368. Public Const DCTT_BITMAP = &H1&
  4369. Public Const DCTT_DOWNLOAD = &H2&
  4370. Public Const DCTT_SUBDEV = &H4&
  4371.  
  4372. Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, ByVal lpOutput As String, lpDevMode As DEVMODE) As Long
  4373.  
  4374. 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
  4375.  
  4376. Declare Function EqualRgn Lib "gdi32" Alias "EqualRgn" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long
  4377. Declare Function Escape Lib "gdi32" Alias "Escape" (ByVal hdc As Long, ByVal nEscape As Long, ByVal nCount As Long, ByVal lpInData As String, lpOutData As Any) As Long
  4378. 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
  4379. 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
  4380. 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
  4381. Declare Function ExtCreateRegion Lib "gdi32" Alias "ExtCreateRegion" (lpXform As xform, ByVal nCount As Long, lpRgnData As RGNDATA) As Long
  4382. 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
  4383. Declare Function FillRgn Lib "gdi32" Alias "FillRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
  4384. 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
  4385. 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
  4386. Declare Function GetROP2 Lib "gdi32" Alias "GetROP2" (ByVal hdc As Long) As Long
  4387. Declare Function GetAspectRatioFilterEx Lib "gdi32" Alias "GetAspectRatioFilterEx" (ByVal hdc As Long, lpAspectRatio As SIZE) As Long
  4388. Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long
  4389. Declare Function GetBkMode Lib "gdi32" Alias "GetBkMode" (ByVal hdc As Long) As Long
  4390. Declare Function GetBitmapBits Lib "gdi32" Alias "GetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
  4391. Declare Function GetBitmapDimensionEx Lib "gdi32" Alias "GetBitmapDimensionEx" (ByVal hBitmap As Long, lpDimension As SIZE) As Long
  4392. Declare Function GetBoundsRect Lib "gdi32" Alias "GetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long
  4393.  
  4394.  Declare Function GetCharWidth Lib "gdi32" Alias "GetCharWidthA" (ByVal hdc As Long, ByVal wFirstChar As Long, ByVal wLastChar As Long, lpBuffer As Long) As Long
  4395. Declare Function GetCharWidth32 Lib "gdi32" Alias "GetCharWidth32A" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpBuffer As Long) As Long
  4396. Declare Function GetCharWidthFloat Lib "gdi32" Alias "GetCharWidthFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, pxBuffer As Double) As Long
  4397.  
  4398. Declare Function GetCharABCWidths Lib "gdi32" Alias "GetCharABCWidthsA" (ByVal hdc As Long, ByVal uFirstChar As Long, ByVal uLastChar As Long, lpabc As ABC) As Long
  4399. Declare Function GetCharABCWidthsFloat Lib "gdi32" Alias "GetCharABCWidthsFloatA" (ByVal hdc As Long, ByVal iFirstChar As Long, ByVal iLastChar As Long, lpABCF As ABCFLOAT) As Long
  4400.  
  4401. Declare Function GetClipBox Lib "gdi32" Alias "GetClipBox" (ByVal hdc As Long, lpRect As RECT) As Long
  4402. Declare Function GetClipRgn Lib "gdi32" Alias "GetClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  4403. Declare Function GetMetaRgn Lib "gdi32" Alias "GetMetaRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  4404. Declare Function GetCurrentObject Lib "gdi32" Alias "GetCurrentObject" (ByVal hdc As Long, ByVal uObjectType As Long) As Long
  4405. Declare Function GetCurrentPositionEx Lib "gdi32" Alias "GetCurrentPositionEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long
  4406. Declare Function GetDeviceCaps Lib "gdi32" Alias "GetDeviceCaps" (ByVal hdc As Long, ByVal nIndex As Long) As Long
  4407. 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
  4408. Declare Function GetFontData Lib "gdi32" Alias "GetFontDataA" (ByVal hdc As Long, ByVal dwTable As Long, ByVal dwOffset As Long, lpvBuffer As Any, ByVal cbData As Long) As Long
  4409. 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
  4410. Declare Function GetGraphicsMode Lib "gdi32" Alias "GetGraphicsMode" (ByVal hdc As Long) As Long
  4411. Declare Function GetMapMode Lib "gdi32" Alias "GetMapMode" (ByVal hdc As Long) As Long
  4412. Declare Function GetMetaFileBitsEx Lib "gdi32" Alias "GetMetaFileBitsEx" (ByVal hMF As Long, ByVal nSize As Long, lpvData As Any) As Long
  4413. Declare Function GetMetaFile Lib "gdi32" Alias "GetMetaFileA" (ByVal lpFileName As String) As Long
  4414. Declare Function GetNearestColor Lib "gdi32" Alias "GetNearestColor" (ByVal hdc As Long, ByVal crColor As Long) As Long
  4415. Declare Function GetNearestPaletteIndex Lib "gdi32" Alias "GetNearestPaletteIndex" (ByVal hPalette As Long, ByVal crColor As Long) As Long
  4416. Declare Function GetObjectType Lib "gdi32" Alias "GetObjectType" (ByVal hgdiobj As Long) As Long
  4417.  
  4418. Declare Function GetOutlineTextMetrics Lib "gdi32" Alias "GetOutlineTextMetricsA" (ByVal hdc As Long, ByVal cbData As Long, lpotm As OUTLINETEXTMETRIC) As Long
  4419.  
  4420. Declare Function GetPaletteEntries Lib "gdi32" Alias "GetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
  4421. Declare Function GetPixel Lib "gdi32" Alias "GetPixel" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  4422. Declare Function GetPolyFillMode Lib "gdi32" Alias "GetPolyFillMode" (ByVal hdc As Long) As Long
  4423. Declare Function GetRasterizerCaps Lib "gdi32" Alias "GetRasterizerCaps" (lpraststat As RASTERIZER_STATUS, ByVal cb As Long) As Long
  4424. Declare Function GetRegionData Lib "gdi32" Alias "GetRegionDataA" (ByVal hRgn As Long, ByVal dwCount As Long, lpRgnData As RgnData) As Long
  4425. Declare Function GetRgnBox Lib "gdi32" Alias "GetRgnBox" (ByVal hRgn As Long, lpRect As RECT) As Long
  4426. Declare Function GetStockObject Lib "gdi32" Alias "GetStockObject" (ByVal nIndex As Long) As Long
  4427. Declare Function GetStretchBltMode Lib "gdi32" Alias "GetStretchBltMode" (ByVal hdc As Long) As Long
  4428. Declare Function GetSystemPaletteEntries Lib "gdi32" Alias "GetSystemPaletteEntries" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
  4429. Declare Function GetSystemPaletteUse Lib "gdi32" Alias "GetSystemPaletteUse" (ByVal hdc As Long) As Long
  4430. Declare Function GetTextCharacterExtra Lib "gdi32" Alias "GetTextCharacterExtraA" (ByVal hdc As Long) As Long
  4431. Declare Function GetTextAlign Lib "gdi32" Alias "GetTextAlign" (ByVal hdc As Long) As Long
  4432. Declare Function GetTextColor Lib "gdi32" Alias "GetTextColor" (ByVal hdc As Long) As Long
  4433.  
  4434. Declare Function GetTextExtentPoint Lib "gdi32" Alias "GetTextExtentPointA" (ByVal hdc As Long, ByVal lpszString As String, ByVal cbString As Long, lpSize As SIZE) As Long
  4435. Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hdc As Long, ByVal lpsz As String, ByVal cbString As Long, lpSize As SIZE) As Long
  4436. 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
  4437.  
  4438. Declare Function GetViewportExtEx Lib "gdi32" Alias "GetViewportExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long
  4439. Declare Function GetViewportOrgEx Lib "gdi32" Alias "GetViewportOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long
  4440. Declare Function GetWindowExtEx Lib "gdi32" Alias "GetWindowExtEx" (ByVal hdc As Long, lpSize As SIZE) As Long
  4441. Declare Function GetWindowOrgEx Lib "gdi32" Alias "GetWindowOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long
  4442.  
  4443. 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
  4444. Declare Function InvertRgn Lib "gdi32" Alias "InvertRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  4445. Declare Function LineTo Lib "gdi32" Alias "LineTo" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  4446. 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
  4447. 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
  4448.  
  4449. Declare Function OffsetClipRgn Lib "gdi32" Alias "OffsetClipRgn" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  4450. Declare Function OffsetRgn Lib "gdi32" Alias "OffsetRgn" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
  4451. 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
  4452. 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
  4453. Declare Function PlayMetaFile Lib "gdi32" Alias "PlayMetaFile" (ByVal hdc As Long, ByVal hMF As Long) As Long
  4454. Declare Function PaintRgn Lib "gdi32" Alias "PaintRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  4455. Declare Function PolyPolygon Lib "gdi32" Alias "PolyPolygon" (ByVal hdc As Long, lpPoint As POINTAPI, lpPolyCounts As Long, ByVal nCount As Long) As Long
  4456. Declare Function PtInRegion Lib "gdi32" Alias "PtInRegion" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long
  4457. Declare Function PtVisible Lib "gdi32" Alias "PtVisible" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
  4458. Declare Function RectVisible Lib "gdi32" Alias "RectVisible" (ByVal hdc As Long, lpRect As RECT) As Long
  4459. Declare Function RectInRegion Lib "gdi32" Alias "RectInRegion" (ByVal hRgn As Long, lpRect As RECT) As Long
  4460. 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
  4461. Declare Function RestoreDC Lib "gdi32" Alias "RestoreDC" (ByVal hdc As Long, ByVal nSavedDC As Long) As Long
  4462. Declare Function ResetDC Lib "gdi32" Alias "ResetDCA" (ByVal hdc As Long, lpInitData As DEVMODE) As Long
  4463. Declare Function RealizePalette Lib "gdi32" Alias "RealizePalette" (ByVal hdc As Long) As Long
  4464. Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long
  4465. 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
  4466. Declare Function ResizePalette Lib "gdi32" Alias "ResizePalette" (ByVal hPalette As Long, ByVal nNumEntries As Long) As Long
  4467.  
  4468. Declare Function SaveDC Lib "gdi32" Alias "SaveDC" (ByVal hdc As Long) As Long
  4469. Declare Function SelectClipRgn Lib "gdi32" Alias "SelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long) As Long
  4470. Declare Function ExtSelectClipRgn Lib "gdi32" Alias "ExtSelectClipRgn" (ByVal hdc As Long, ByVal hRgn As Long, ByVal fnMode As Long) As Long
  4471. Declare Function SetMetaRgn Lib "gdi32" Alias "SetMetaRgn" (ByVal hdc As Long) As Long
  4472. Declare Function SelectObject Lib "gdi32" Alias "SelectObject" (ByVal hdc As Long, ByVal hObject As Long) As Long
  4473. Declare Function SelectPalette Lib "gdi32" Alias "SelectPalette" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long
  4474. Declare Function SetBkColor Lib "gdi32" Alias "SetBkColor" (ByVal hdc As Long, ByVal crColor As Long) As Long
  4475. Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
  4476. Declare Function SetBitmapBits Lib "gdi32" Alias "SetBitmapBits" (ByVal hBitmap As Long, ByVal dwCount As Long, lpBits As Any) As Long
  4477.  
  4478. Declare Function SetBoundsRect Lib "gdi32" Alias "SetBoundsRect" (ByVal hdc As Long, lprcBounds As RECT, ByVal flags As Long) As Long
  4479. 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
  4480. 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
  4481. Declare Function SetMapperFlags Lib "gdi32" Alias "SetMapperFlags" (ByVal hdc As Long, ByVal dwFlag As Long) As Long
  4482. Declare Function SetGraphicsMode Lib "gdi32" Alias "SetGraphicsMode" (ByVal hdc As Long, ByVal iMode As Long) As Long
  4483. Declare Function SetMapMode Lib "gdi32" Alias "SetMapMode" (ByVal hdc As Long, ByVal nMapMode As Long) As Long
  4484. Declare Function SetMetaFileBitsEx Lib "gdi32" Alias "SetMetaFileBitsEx" (ByVal nSize As Long, lpData As Byte) As Long
  4485. Declare Function SetPaletteEntries Lib "gdi32" Alias "SetPaletteEntries" (ByVal hPalette As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
  4486. 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
  4487. 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
  4488. Declare Function SetPolyFillMode Lib "gdi32" Alias "SetPolyFillMode" (ByVal hdc As Long, ByVal nPolyFillMode As Long) As Long
  4489. 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
  4490. 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
  4491. 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
  4492. Declare Function SetROP2 Lib "gdi32" Alias "SetROP2" (ByVal hdc As Long, ByVal nDrawMode As Long) As Long
  4493. Declare Function SetStretchBltMode Lib "gdi32" Alias "SetStretchBltMode" (ByVal hdc As Long, ByVal nStretchMode As Long) As Long
  4494. Declare Function SetSystemPaletteUse Lib "gdi32" Alias "SetSystemPaletteUse" (ByVal hdc As Long, ByVal wUsage As Long) As Long
  4495. Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long
  4496. Declare Function SetTextColor Lib "gdi32" Alias "SetTextColor" (ByVal hdc As Long, ByVal crColor As Long) As Long
  4497. Declare Function SetTextAlign Lib "gdi32" Alias "SetTextAlign" (ByVal hdc As Long, ByVal wFlags As Long) As Long
  4498. Declare Function SetTextJustification Lib "gdi32" Alias "SetTextJustification" (ByVal hdc As Long, ByVal nBreakExtra As Long, ByVal nBreakCount As Long) As Long
  4499. Declare Function UpdateColors Lib "gdi32" Alias "UpdateColors" (ByVal hdc As Long) As Long
  4500.  
  4501. Declare Function GetProcAddress Lib "kernel32" Alias "GetProcAddress" (ByVal hModule As Long, ByVal lpProcName As String) As Long
  4502.  
  4503. Declare Function PlayMetaFileRecord Lib "gdi32" Alias "PlayMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpMetaRecord As METARECORD, ByVal nHandles As Long) As Long
  4504.  
  4505. Declare Function CloseEnhMetaFile Lib "gdi32" Alias "CloseEnhMetaFile" (ByVal hdc As Long) As Long
  4506. Declare Function CopyEnhMetaFile Lib "gdi32" Alias "CopyEnhMetaFileA" (ByVal hemfSrc As Long, ByVal lpszFile As String) As Long
  4507. Declare Function CreateEnhMetaFile Lib "gdi32" Alias "CreateEnhMetaFileA" (ByVal hdcRef As Long, ByVal lpFileName As String, lpRect As RECT, ByVal lpDescription As String) As Long
  4508. Declare Function DeleteEnhMetaFile Lib "gdi32" Alias "DeleteEnhMetaFile" (ByVal hemf As Long) As Long
  4509. Declare Function EnumEnhMetaFile Lib "gdi32" Alias "EnumEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, ByVal lpEnhMetaFunc As Long, lpData As Any, lpRect As RECT) As Long
  4510. Declare Function GetEnhMetaFile Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal lpszMetaFile As String) As Long
  4511. Declare Function GetEnhMetaFileBits Lib "gdi32" Alias "GetEnhMetaFileBits" (ByVal hemf As Long, ByVal cbBuffer As Long, lpbBuffer As Byte) As Long
  4512. Declare Function GetEnhMetaFileDescription Lib "gdi32" Alias "GetEnhMetaFileDescriptionA" (ByVal hemf As Long, ByVal cchBuffer As Long, ByVal lpszDescription As String) As Long
  4513. Declare Function GetEnhMetaFileHeader Lib "gdi32" Alias "GetEnhMetaFileHeader" (ByVal hemf As Long, ByVal cbBuffer As Long, lpemh As ENHMETAHEADER) As Long
  4514. Declare Function GetEnhMetaFilePaletteEntries Lib "gdi32" Alias "GetEnhMetaFilePaletteEntries" (ByVal hemf As Long, ByVal cEntries As Long, lppe As PALETTEENTRY) As Long
  4515. 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
  4516. Declare Function PlayEnhMetaFile Lib "gdi32" Alias "PlayEnhMetaFile" (ByVal hdc As Long, ByVal hemf As Long, lpRect As RECT) As Long
  4517. Declare Function PlayEnhMetaFileRecord Lib "gdi32" Alias "PlayEnhMetaFileRecord" (ByVal hdc As Long, lpHandletable As HANDLETABLE, lpEnhMetaRecord As ENHMETARECORD, ByVal nHandles As Long) As Long
  4518. Declare Function SetEnhMetaFileBits Lib "gdi32" Alias "SetEnhMetaFileBits" (ByVal cbBuffer As Long, lpData As Byte) As Long
  4519. Declare Function SetWinMetaFileBits Lib "gdi32" Alias "SetWinMetaFileBits" (ByVal cbBuffer As Long, lpbBuffer As Byte, ByVal hdcRef As Long, lpmfp As METAFILEPICT) As Long
  4520. Declare Function GdiComment Lib "gdi32" Alias "GdiComment" (ByVal hdc As Long, ByVal cbSize As Long, lpData As Byte) As Long
  4521.  
  4522. Declare Function GetTextMetrics Lib "gdi32" Alias "GetTextMetricsA" (ByVal hdc As Long, lpMetrics As TEXTMETRIC) As Long
  4523.  
  4524. 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 Double, ByVal eSweepAngle As Double) As Long
  4525. Declare Function PolyPolyline Lib "gdi32" Alias "PolyPolyline" (ByVal hdc As Long, lppt As POINTAPI, lpdwPolyPoints As Long, ByVal cCount As Long) As Long
  4526. Declare Function GetWorldTransform Lib "gdi32" Alias "GetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long
  4527. Declare Function SetWorldTransform Lib "gdi32" Alias "SetWorldTransform" (ByVal hdc As Long, lpXform As xform) As Long
  4528. Declare Function ModifyWorldTransform Lib "gdi32" Alias "ModifyWorldTransform" (ByVal hdc As Long, lpXform As xform, ByVal iMode As Long) As Long
  4529. Declare Function CombineTransform Lib "gdi32" Alias "CombineTransform" (lpxformResult As xform, lpxform1 As xform, lpxform2 As xform) As Long
  4530.  
  4531. '  Flags value for COLORADJUSTMENT
  4532. Public Const CA_NEGATIVE = &H1
  4533. Public Const CA_LOG_FILTER = &H2
  4534.  
  4535. '  IlluminantIndex values
  4536. Public Const ILLUMINANT_DEVICE_DEFAULT = 0
  4537. Public Const ILLUMINANT_A = 1
  4538. Public Const ILLUMINANT_B = 2
  4539. Public Const ILLUMINANT_C = 3
  4540. Public Const ILLUMINANT_D50 = 4
  4541. Public Const ILLUMINANT_D55 = 5
  4542. Public Const ILLUMINANT_D65 = 6
  4543. Public Const ILLUMINANT_D75 = 7
  4544. Public Const ILLUMINANT_F2 = 8
  4545. Public Const ILLUMINANT_MAX_INDEX = ILLUMINANT_F2
  4546.  
  4547. Public Const ILLUMINANT_TUNGSTEN = ILLUMINANT_A
  4548. Public Const ILLUMINANT_DAYLIGHT = ILLUMINANT_C
  4549. Public Const ILLUMINANT_FLUORESCENT = ILLUMINANT_F2
  4550. Public Const ILLUMINANT_NTSC = ILLUMINANT_C
  4551.  
  4552. '  Min and max for RedGamma, GreenGamma, BlueGamma
  4553. Public Const RGB_GAMMA_MIN = 2500 'words
  4554. Public Const RGB_GAMMA_MAX = 65000
  4555.  
  4556. '  Min and max for ReferenceBlack and ReferenceWhite
  4557. Public Const REFERENCE_WHITE_MIN = 6000 'words
  4558. Public Const REFERENCE_WHITE_MAX = 10000
  4559. Public Const REFERENCE_BLACK_MIN = 0
  4560. Public Const REFERENCE_BLACK_MAX = 4000
  4561.  
  4562. '  Min and max for Contrast, Brightness, Colorfulness, RedGreenTint
  4563. Public Const COLOR_ADJ_MIN = -100 'shorts
  4564. Public Const COLOR_ADJ_MAX = 100
  4565.  
  4566. Type COLORADJUSTMENT
  4567.         caSize As Integer
  4568.         caFlags As Integer
  4569.         caIlluminantIndex As Integer
  4570.         caRedGamma As Integer
  4571.         caGreenGamma As Integer
  4572.         caBlueGamma As Integer
  4573.         caReferenceBlack As Integer
  4574.         caReferenceWhite As Integer
  4575.         caContrast As Integer
  4576.         caBrightness As Integer
  4577.         caColorfulness As Integer
  4578.         caRedGreenTint As Integer
  4579. End Type
  4580.  
  4581. Declare Function SetColorAdjustment Lib "gdi32" Alias "SetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long
  4582. Declare Function GetColorAdjustment Lib "gdi32" Alias "GetColorAdjustment" (ByVal hdc As Long, lpca As COLORADJUSTMENT) As Long
  4583. Declare Function CreateHalftonePalette Lib "gdi32" Alias "CreateHalftonePalette" (ByVal hdc As Long) As Long
  4584.  
  4585. Type DOCINFO
  4586.         cbSize As Long
  4587.         lpszDocName As String
  4588.         lpszOutput As String
  4589. End Type
  4590.  
  4591. Declare Function StartDoc Lib "gdi32" Alias "StartDocA" (ByVal hdc As Long, lpdi As DOCINFO) As Long
  4592. Declare Function StartPage Lib "gdi32" Alias "StartPage" (ByVal hdc As Long) As Long
  4593. Declare Function EndPage Lib "gdi32" Alias "EndPage" (ByVal hdc As Long) As Long
  4594. Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hdc As Long) As Long
  4595. Declare Function AbortDoc Lib "gdi32" Alias "AbortDoc" (ByVal hdc As Long) As Long
  4596.  
  4597. Declare Function AbortPath Lib "gdi32" Alias "AbortPath" (ByVal hdc As Long) As Long
  4598. 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
  4599. Declare Function BeginPath Lib "gdi32" Alias "BeginPath" (ByVal hdc As Long) As Long
  4600. Declare Function CloseFigure Lib "gdi32" Alias "CloseFigure" (ByVal hdc As Long) As Long
  4601. Declare Function EndPath Lib "gdi32" Alias "EndPath" (ByVal hdc As Long) As Long
  4602. Declare Function FillPath Lib "gdi32" Alias "FillPath" (ByVal hdc As Long) As Long
  4603. Declare Function FlattenPath Lib "gdi32" Alias "FlattenPath" (ByVal hdc As Long) As Long
  4604. Declare Function GetPath Lib "gdi32" Alias "GetPath" (ByVal hdc As Long, lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long
  4605. Declare Function PathToRegion Lib "gdi32" Alias "PathToRegion" (ByVal hdc As Long) As Long
  4606. Declare Function PolyDraw Lib "gdi32" Alias "PolyDraw" (ByVal hdc As Long, lppt As POINTAPI, lpbTypes As Byte, ByVal cCount As Long) As Long
  4607. Declare Function SelectClipPath Lib "gdi32" Alias "SelectClipPath" (ByVal hdc As Long, ByVal iMode As Long) As Long
  4608. Declare Function SetArcDirection Lib "gdi32" Alias "SetArcDirection" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long
  4609. Declare Function SetMiterLimit Lib "gdi32" Alias "SetMiterLimit" (ByVal hdc As Long, ByVal eNewLimit As Double, peOldLimit As Double) As Long
  4610. Declare Function StrokeAndFillPath Lib "gdi32" Alias "StrokeAndFillPath" (ByVal hdc As Long) As Long
  4611. Declare Function StrokePath Lib "gdi32" Alias "StrokePath" (ByVal hdc As Long) As Long
  4612. Declare Function WidenPath Lib "gdi32" Alias "WidenPath" (ByVal hdc As Long) As Long
  4613. Declare Function ExtCreatePen Lib "gdi32" Alias "ExtCreatePen" (ByVal dwPenStyle As Long, ByVal dwWidth As Long, lplb As LOGBRUSH, ByVal dwStyleCount As Long, lpStyle As Long) As Long
  4614. Declare Function GetMiterLimit Lib "gdi32" Alias "GetMiterLimit" (ByVal hdc As Long, peLimit As Double) As Long
  4615. Declare Function GetArcDirection Lib "gdi32" Alias "GetArcDirection" (ByVal hdc As Long) As Long
  4616.  
  4617. Declare Function GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
  4618. Declare Function MoveToEx Lib "gdi32" Alias "MoveToEx" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long
  4619. 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
  4620. 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
  4621. Declare Function PolyTextOut Lib "gdi32" Alias "PolyTextOutA" (ByVal hdc As Long, pptxt As POLYTEXT, cStrings As Long) As Long
  4622.  
  4623. Declare Function CreatePolygonRgn Lib "gdi32" Alias "CreatePolygonRgn" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
  4624. Declare Function DPtoLP Lib "gdi32" Alias "DPtoLP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
  4625. Declare Function LPtoDP Lib "gdi32" Alias "LPtoDP" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
  4626. Declare Function Polyline Lib "gdi32" Alias "Polyline" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
  4627. Declare Function Polygon Lib "gdi32" Alias "Polygon" (ByVal hdc As Long, lpPoint As POINTAPI, ByVal nCount As Long) As Long
  4628.  
  4629. Declare Function PolyBezier Lib "gdi32" Alias "PolyBezier" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long
  4630. Declare Function PolyBezierTo Lib "gdi32" Alias "PolyBezierTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
  4631. Declare Function PolylineTo Lib "gdi32" Alias "PolylineTo" (ByVal hdc As Long, lppt As POINTAPI, ByVal cCount As Long) As Long
  4632.  
  4633. Declare Function SetViewportExtEx Lib "gdi32" Alias "SetViewportExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long
  4634. Declare Function SetViewportOrgEx Lib "gdi32" Alias "SetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long
  4635. Declare Function SetWindowOrgEx Lib "gdi32" Alias "SetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long
  4636. Declare Function SetWindowExtEx Lib "gdi32" Alias "SetWindowExtEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long
  4637.  
  4638. Declare Function OffsetViewportOrgEx Lib "gdi32" Alias "OffsetViewportOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long
  4639. Declare Function OffsetWindowOrgEx Lib "gdi32" Alias "OffsetWindowOrgEx" (ByVal hdc As Long, ByVal nX As Long, ByVal nY As Long, lpPoint As POINTAPI) As Long
  4640. 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
  4641. 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
  4642. Declare Function SetBitmapDimensionEx Lib "gdi32" Alias "SetBitmapDimensionEx" (ByVal hbm As Long, ByVal nX As Long, ByVal nY As Long, lpSize As SIZE) As Long
  4643. Declare Function SetBrushOrgEx Lib "gdi32" Alias "SetBrushOrgEx" (ByVal hdc As Long, ByVal nXOrg As Long, ByVal nYOrg As Long, lppt As POINTAPI) As Long
  4644.  
  4645. Declare Function GetTextFace Lib "gdi32" Alias "GetTextFaceA" (ByVal hdc As Long, ByVal nCount As Long, ByVal lpFacename As String) As Long
  4646.  
  4647. Public Const FONTMAPPER_MAX = 10
  4648.  
  4649. Type KERNINGPAIR
  4650.         wFirst As Integer
  4651.         wSecond As Integer
  4652.         iKernAmount As Long
  4653. End Type
  4654.  
  4655. Declare Function GetKerningPairs Lib "gdi32" Alias "GetKerningPairsA" (ByVal hdc As Long, ByVal cPairs As Long, lpkrnpair As KERNINGPAIR) As Long
  4656.  
  4657. Declare Function GetDCOrgEx Lib "gdi32" Alias "GetDCOrgEx" (ByVal hdc As Long, lpPoint As POINTAPI) As Long
  4658. Declare Function UnrealizeObject Lib "gdi32" Alias "UnrealizeObject" (ByVal hObject As Long) As Long
  4659.  
  4660. Declare Function GdiFlush Lib "gdi32" Alias "GdiFlush" () As Long
  4661. Declare Function GdiSetBatchLimit Lib "gdi32" Alias "GdiSetBatchLimit" (ByVal dwLimit As Long) As Long
  4662. Declare Function GdiGetBatchLimit Lib "gdi32" Alias "GdiGetBatchLimit" () As Long
  4663.  
  4664. ' Enhanced metafile constants
  4665.  
  4666. Public Const ENHMETA_SIGNATURE = &H464D4520
  4667.  
  4668. '  Stock object flag used in the object handle
  4669. ' index in the enhanced metafile records.
  4670. '  E.g. The object handle index (META_STOCK_OBJECT Or BLACK_BRUSH)
  4671. '  represents the stock object BLACK_BRUSH.
  4672.  
  4673. Public Const ENHMETA_STOCK_OBJECT = &H80000000
  4674.  
  4675. '  Enhanced metafile record types.
  4676.  
  4677. Public Const EMR_HEADER = 1
  4678. Public Const EMR_POLYBEZIER = 2
  4679. Public Const EMR_POLYGON = 3
  4680. Public Const EMR_POLYLINE = 4
  4681. Public Const EMR_POLYBEZIERTO = 5
  4682. Public Const EMR_POLYLINETO = 6
  4683. Public Const EMR_POLYPOLYLINE = 7
  4684. Public Const EMR_POLYPOLYGON = 8
  4685. Public Const EMR_SETWINDOWEXTEX = 9
  4686. Public Const EMR_SETWINDOWORGEX = 10
  4687. Public Const EMR_SETVIEWPORTEXTEX = 11
  4688. Public Const EMR_SETVIEWPORTORGEX = 12
  4689. Public Const EMR_SETBRUSHORGEX = 13
  4690. Public Const EMR_EOF = 14
  4691. Public Const EMR_SETPIXELV = 15
  4692. Public Const EMR_SETMAPPERFLAGS = 16
  4693. Public Const EMR_SETMAPMODE = 17
  4694. Public Const EMR_SETBKMODE = 18
  4695. Public Const EMR_SETPOLYFILLMODE = 19
  4696. Public Const EMR_SETROP2 = 20
  4697. Public Const EMR_SETSTRETCHBLTMODE = 21
  4698. Public Const EMR_SETTEXTALIGN = 22
  4699. Public Const EMR_SETCOLORADJUSTMENT = 23
  4700. Public Const EMR_SETTEXTCOLOR = 24
  4701. Public Const EMR_SETBKCOLOR = 25
  4702. Public Const EMR_OFFSETCLIPRGN = 26
  4703. Public Const EMR_MOVETOEX = 27
  4704. Public Const EMR_SETMETARGN = 28
  4705. Public Const EMR_EXCLUDECLIPRECT = 29
  4706. Public Const EMR_INTERSECTCLIPRECT = 30
  4707. Public Const EMR_SCALEVIEWPORTEXTEX = 31
  4708. Public Const EMR_SCALEWINDOWEXTEX = 32
  4709. Public Const EMR_SAVEDC = 33
  4710. Public Const EMR_RESTOREDC = 34
  4711. Public Const EMR_SETWORLDTRANSFORM = 35
  4712. Public Const EMR_MODIFYWORLDTRANSFORM = 36
  4713. Public Const EMR_SELECTOBJECT = 37
  4714. Public Const EMR_CREATEPEN = 38
  4715. Public Const EMR_CREATEBRUSHINDIRECT = 39
  4716. Public Const EMR_DELETEOBJECT = 40
  4717. Public Const EMR_ANGLEARC = 41
  4718. Public Const EMR_ELLIPSE = 42
  4719. Public Const EMR_RECTANGLE = 43
  4720. Public Const EMR_ROUNDRECT = 44
  4721. Public Const EMR_ARC = 45
  4722. Public Const EMR_CHORD = 46
  4723. Public Const EMR_PIE = 47
  4724. Public Const EMR_SELECTPALETTE = 48
  4725. Public Const EMR_CREATEPALETTE = 49
  4726. Public Const EMR_SETPALETTEENTRIES = 50
  4727. Public Const EMR_RESIZEPALETTE = 51
  4728. Public Const EMR_REALIZEPALETTE = 52
  4729. Public Const EMR_EXTFLOODFILL = 53
  4730. Public Const EMR_LINETO = 54
  4731. Public Const EMR_ARCTO = 55
  4732. Public Const EMR_POLYDRAW = 56
  4733. Public Const EMR_SETARCDIRECTION = 57
  4734. Public Const EMR_SETMITERLIMIT = 58
  4735. Public Const EMR_BEGINPATH = 59
  4736. Public Const EMR_ENDPATH = 60
  4737. Public Const EMR_CLOSEFIGURE = 61
  4738. Public Const EMR_FILLPATH = 62
  4739. Public Const EMR_STROKEANDFILLPATH = 63
  4740. Public Const EMR_STROKEPATH = 64
  4741. Public Const EMR_FLATTENPATH = 65
  4742. Public Const EMR_WIDENPATH = 66
  4743. Public Const EMR_SELECTCLIPPATH = 67
  4744. Public Const EMR_ABORTPATH = 68
  4745.  
  4746. Public Const EMR_GDICOMMENT = 70
  4747. Public Const EMR_FILLRGN = 71
  4748. Public Const EMR_FRAMERGN = 72
  4749. Public Const EMR_INVERTRGN = 73
  4750. Public Const EMR_PAINTRGN = 74
  4751. Public Const EMR_EXTSELECTCLIPRGN = 75
  4752. Public Const EMR_BITBLT = 76
  4753. Public Const EMR_STRETCHBLT = 77
  4754. Public Const EMR_MASKBLT = 78
  4755. Public Const EMR_PLGBLT = 79
  4756. Public Const EMR_SETDIBITSTODEVICE = 80
  4757. Public Const EMR_STRETCHDIBITS = 81
  4758. Public Const EMR_EXTCREATEFONTINDIRECTW = 82
  4759. Public Const EMR_EXTTEXTOUTA = 83
  4760. Public Const EMR_EXTTEXTOUTW = 84
  4761. Public Const EMR_POLYBEZIER16 = 85
  4762. Public Const EMR_POLYGON16 = 86
  4763. Public Const EMR_POLYLINE16 = 87
  4764. Public Const EMR_POLYBEZIERTO16 = 88
  4765. Public Const EMR_POLYLINETO16 = 89
  4766. Public Const EMR_POLYPOLYLINE16 = 90
  4767. Public Const EMR_POLYPOLYGON16 = 91
  4768. Public Const EMR_POLYDRAW16 = 92
  4769. Public Const EMR_CREATEMONOBRUSH = 93
  4770. Public Const EMR_CREATEDIBPATTERNBRUSHPT = 94
  4771. Public Const EMR_EXTCREATEPEN = 95
  4772. Public Const EMR_POLYTEXTOUTA = 96
  4773. Public Const EMR_POLYTEXTOUTW = 97
  4774.  
  4775. Public Const EMR_MIN = 1
  4776. Public Const EMR_MAX = 97
  4777.  
  4778. Type emr
  4779.         iType As Long
  4780.         nSize As Long
  4781. End Type
  4782.  
  4783. Type emrtext
  4784.         ptlReference As POINTL
  4785.         nchars As Long
  4786.         offString As Long
  4787.         fOptions As Long
  4788.         rcl As RECTL
  4789.         offDx As Long
  4790. End Type
  4791.  
  4792. Type EMRABORTPATH
  4793.         pEmr As emr
  4794. End Type
  4795.  
  4796. Type EMRBEGINPATH
  4797.         pEmr As emr
  4798. End Type
  4799.  
  4800. Type EMRENDPATH
  4801.         pEmr As emr
  4802. End Type
  4803.  
  4804. Type EMRCLOSEFIGURE
  4805.         pEmr As emr
  4806. End Type
  4807.  
  4808. Type EMRFLATTENPATH
  4809.         pEmr As emr
  4810. End Type
  4811.  
  4812. Type EMRWIDENPATH
  4813.         pEmr As emr
  4814. End Type
  4815.  
  4816. Type EMRSETMETARGN
  4817.         pEmr As emr
  4818. End Type
  4819.  
  4820. Type EMREMRSAVEDC
  4821.         pEmr As emr
  4822. End Type
  4823.  
  4824. Type EMRREALIZEPALETTE
  4825.         pEmr As emr
  4826. End Type
  4827.  
  4828. Type EMRSELECTCLIPPATH
  4829.         pEmr As emr
  4830.         iMode As Long
  4831. End Type
  4832.  
  4833. Type EMRSETBKMODE
  4834.         pEmr As emr
  4835.         iMode As Long
  4836. End Type
  4837.  
  4838. Type EMRSETMAPMODE
  4839.         pEmr As emr
  4840.         iMode As Long
  4841. End Type
  4842.  
  4843. Type EMRSETPOLYFILLMODE
  4844.         pEmr As emr
  4845.         iMode As Long
  4846. End Type
  4847.  
  4848. Type EMRSETROP2
  4849.         pEmr As emr
  4850.         iMode As Long
  4851. End Type
  4852.  
  4853. Type EMRSETSTRETCHBLTMODE
  4854.         pEmr As emr
  4855.         iMode As Long
  4856. End Type
  4857.  
  4858. Type EMRSETTEXTALIGN
  4859.         pEmr As emr
  4860.         iMode As Long
  4861. End Type
  4862.  
  4863. Type EMRSETMITERLIMIT
  4864.         pEmr As emr
  4865.         eMiterLimit As Double
  4866. End Type
  4867.  
  4868. Type EMRRESTOREDC
  4869.         pEmr As emr
  4870.         iRelative As Long
  4871. End Type
  4872.  
  4873. Type EMRSETARCDIRECTION
  4874.         pEmr As emr
  4875.         iArcDirection As Long
  4876. End Type
  4877.  
  4878. Type EMRSETMAPPERFLAGS
  4879.         pEmr As emr
  4880.         dwFlags As Long
  4881. End Type
  4882.  
  4883. Type EMRSETTEXTCOLOR
  4884.         pEmr As emr
  4885.         crColor As Long
  4886. End Type
  4887.  
  4888. Type EMRSETBKCOLOR
  4889.         pEmr As emr
  4890.         crColor As Long
  4891. End Type
  4892.  
  4893. Type EMRSELECTOBJECT
  4894.         pEmr As emr
  4895.         ihObject As Long
  4896. End Type
  4897.  
  4898. Type EMRDELETEOBJECT
  4899.         pEmr As emr
  4900.         ihObject As Long
  4901. End Type
  4902.  
  4903. Type EMRSELECTPALETTE
  4904.         pEmr As emr
  4905.         ihPal As Long
  4906. End Type
  4907.  
  4908. Type EMRRESIZEPALETTE
  4909.         pEmr As emr
  4910.         ihPal As Long
  4911.         cEntries As Long
  4912. End Type
  4913.  
  4914. Type EMRSETPALETTEENTRIES
  4915.         pEmr As emr
  4916.         ihPal As Long
  4917.         iStart As Long
  4918.         cEntries As Long
  4919.         aPalEntries(1) As PALETTEENTRY
  4920. End Type
  4921.  
  4922. Type EMRSETCOLORADJUSTMENT
  4923.         pEmr As emr
  4924.         ColorAdjustment As ColorAdjustment
  4925. End Type
  4926.  
  4927. Type EMRGDICOMMENT
  4928.         pEmr As emr
  4929.         cbData As Long
  4930.         Data(1) As Integer
  4931. End Type
  4932.  
  4933. Type EMREOF
  4934.         pEmr As emr
  4935.         nPalEntries As Long
  4936.         offPalEntries As Long
  4937.         nSizeLast As Long
  4938. End Type
  4939.  
  4940. Type EMRLINETO
  4941.         pEmr As emr
  4942.         ptl As POINTL
  4943. End Type
  4944.  
  4945. Type EMRMOVETOEX
  4946.         pEmr As emr
  4947.         ptl As POINTL
  4948. End Type
  4949.  
  4950. Type EMROFFSETCLIPRGN
  4951.         pEmr As emr
  4952.         ptlOffset As POINTL
  4953. End Type
  4954.  
  4955. Type EMRFILLPATH
  4956.         pEmr As emr
  4957.         rclBounds As RECTL
  4958. End Type
  4959.  
  4960. Type EMRSTROKEANDFILLPATH
  4961.         pEmr As emr
  4962.         rclBounds As RECTL
  4963. End Type
  4964.  
  4965. Type EMRSTROKEPATH
  4966.         pEmr As emr
  4967.         rclBounds As RECTL
  4968. End Type
  4969.  
  4970. Type EMREXCLUDECLIPRECT
  4971.         pEmr As emr
  4972.         rclClip As RECTL
  4973. End Type
  4974.  
  4975. Type EMRINTERSECTCLIPRECT
  4976.         pEmr As emr
  4977.         rclClip As RECTL
  4978. End Type
  4979.  
  4980. Type EMRSETVIEWPORTORGEX
  4981.         pEmr As emr
  4982.         ptlOrigin As POINTL
  4983. End Type
  4984.  
  4985. Type EMRSETWINDOWORGEX
  4986.         pEmr As emr
  4987.         ptlOrigin As POINTL
  4988. End Type
  4989.  
  4990. Type EMRSETBRUSHORGEX
  4991.         pEmr As emr
  4992.         ptlOrigin As POINTL
  4993. End Type
  4994.  
  4995. Type EMRSETVIEWPORTEXTEX
  4996.         pEmr As emr
  4997.         szlExtent As SIZEL
  4998. End Type
  4999.  
  5000. Type EMRSETWINDOWEXTEX
  5001.         pEmr As emr
  5002.         szlExtent As SIZEL
  5003. End Type
  5004.  
  5005. Type EMRSCALEVIEWPORTEXTEX
  5006.         pEmr As emr
  5007.         xNum As Long
  5008.         xDenom As Long
  5009.         yNum As Long
  5010.         yDemon As Long
  5011. End Type
  5012.  
  5013. Type EMRSCALEWINDOWEXTEX
  5014.         pEmr As emr
  5015.         xNum As Long
  5016.         xDenom As Long
  5017.         yNum As Long
  5018.         yDemon As Long
  5019. End Type
  5020.  
  5021. Type EMRSETWORLDTRANSFORM
  5022.         pEmr As emr
  5023.         xform As XFORM
  5024. End Type
  5025.  
  5026. Type EMRMODIFYWORLDTRANSFORM
  5027.         pEmr As emr
  5028.         xform As XFORM
  5029.         iMode As Long
  5030. End Type
  5031.  
  5032. Type EMRSETPIXELV
  5033.         pEmr As emr
  5034.         ptlPixel As POINTL
  5035.         crColor As Long
  5036. End Type
  5037.  
  5038. Type EMREXTFLOODFILL
  5039.         pEmr As emr
  5040.         ptlStart As POINTL
  5041.         crColor As Long
  5042.         iMode As Long
  5043. End Type
  5044.  
  5045. Type EMRELLIPSE
  5046.         pEmr As emr
  5047.         rclBox As RECTL
  5048. End Type
  5049.  
  5050. Type EMRRECTANGLE
  5051.         pEmr As emr
  5052.         rclBox As RECTL
  5053. End Type
  5054.  
  5055. Type EMRROUNDRECT
  5056.         pEmr As emr
  5057.         rclBox As RECTL
  5058.         szlCorner As SIZEL
  5059. End Type
  5060.  
  5061. Type EMRARC
  5062.         pEmr As emr
  5063.         rclBox As RECTL
  5064.         ptlStart As POINTL
  5065.         ptlEnd As POINTL
  5066. End Type
  5067.  
  5068. Type EMRARCTO
  5069.         pEmr As emr
  5070.         rclBox As RECTL
  5071.         ptlStart As POINTL
  5072.         ptlEnd As POINTL
  5073. End Type
  5074.  
  5075. Type EMRCHORD
  5076.         pEmr As emr
  5077.         rclBox As RECTL
  5078.         ptlStart As POINTL
  5079.         ptlEnd As POINTL
  5080. End Type
  5081.  
  5082. Type EMRPIE
  5083.         pEmr As emr
  5084.         rclBox As RECTL
  5085.         ptlStart As POINTL
  5086.         ptlEnd As POINTL
  5087. End Type
  5088.  
  5089. Type EMRANGLEARC
  5090.         pEmr As emr
  5091.         ptlCenter As POINTL
  5092.         nRadius As Long
  5093.         eStartAngle As Double
  5094.         eSweepAngle As Double
  5095. End Type
  5096.  
  5097. Type EMRPOLYLINE
  5098.         pEmr As emr
  5099.         rclBounds As RECTL
  5100.         cptl As Long
  5101.         aptl(1) As POINTL
  5102. End Type
  5103.  
  5104. Type EMRPOLYBEZIER
  5105.         pEmr As emr
  5106.         rclBounds As RECTL
  5107.         cptl As Long
  5108.         aptl(1) As POINTL
  5109. End Type
  5110.  
  5111. Type EMRPOLYGON
  5112.         pEmr As emr
  5113.         rclBounds As RECTL
  5114.         cptl As Long
  5115.         aptl(1) As POINTL
  5116. End Type
  5117.  
  5118. Type EMRPOLYBEZIERTO
  5119.         pEmr As emr
  5120.         rclBounds As RECTL
  5121.         cptl As Long
  5122.         aptl(1) As POINTL
  5123. End Type
  5124.  
  5125. Type EMRPOLYLINE16
  5126.         pEmr As emr
  5127.         rclBounds As RECTL
  5128.         cpts As Long
  5129.         apts(1) As POINTS
  5130. End Type
  5131.  
  5132. Type EMRPOLYBEZIER16
  5133.         pEmr As emr
  5134.         rclBounds As RECTL
  5135.         cpts As Long
  5136.         apts(1) As POINTS
  5137. End Type
  5138.  
  5139. Type EMRPOLYGON16
  5140.         pEmr As emr
  5141.         rclBounds As RECTL
  5142.         cpts As Long
  5143.         apts(1) As POINTS
  5144. End Type
  5145.  
  5146. Type EMRPLOYBEZIERTO16
  5147.         pEmr As emr
  5148.         rclBounds As RECTL
  5149.         cpts As Long
  5150.         apts(1) As POINTS
  5151. End Type
  5152.  
  5153. Type EMRPOLYLINETO16
  5154.         pEmr As emr
  5155.         rclBounds As RECTL
  5156.         cpts As Long
  5157.         apts(1) As POINTS
  5158. End Type
  5159.  
  5160. Type EMRPOLYDRAW
  5161.         pEmr As emr
  5162.         rclBounds As RECTL
  5163.         cptl As Long
  5164.         aptl(1) As POINTL
  5165.         abTypes(1) As Integer
  5166. End Type
  5167.  
  5168. Type EMRPOLYDRAW16
  5169.         pEmr As emr
  5170.         rclBounds As RECTL
  5171.         cpts As Long
  5172.         apts(1) As POINTS
  5173.         abTypes(1) As Integer
  5174. End Type
  5175.  
  5176. Type EMRPOLYPOLYLINE
  5177.         pEmr As emr
  5178.         rclBounds As RECTL
  5179.         nPolys As Long
  5180.         cptl As Long
  5181.         aPolyCounts(1) As Long
  5182.         aptl(1) As POINTL
  5183. End Type
  5184.  
  5185. Type EMRPOLYPOLYGON
  5186.         pEmr As emr
  5187.         rclBounds As RECTL
  5188.         nPolys As Long
  5189.         cptl As Long
  5190.         aPolyCounts(1) As Long
  5191.         aptl(1) As POINTL
  5192. End Type
  5193.  
  5194. Type EMRPOLYPOLYLINE16
  5195.         pEmr As emr
  5196.         rclBounds As RECTL
  5197.         nPolys As Long
  5198.         cpts As Long
  5199.         aPolyCounts(1) As Long
  5200.         apts(1) As POINTS
  5201. End Type
  5202.  
  5203. Type EMRPOLYPOLYGON16
  5204.         pEmr As emr
  5205.         rclBounds As RECTL
  5206.         nPolys As Long
  5207.         cpts As Long
  5208.         aPolyCounts(1) As Long
  5209.         apts(1) As POINTS
  5210. End Type
  5211.  
  5212. Type EMRINVERTRGN
  5213.         pEmr As emr
  5214.         rclBounds As RECTL
  5215.         cbRgnData As Long
  5216.         RgnData(1) As Integer
  5217. End Type
  5218.  
  5219. Type EMRPAINTRGN
  5220.         pEmr As emr
  5221.         rclBounds As RECTL
  5222.         cbRgnData As Long
  5223.         RgnData(1) As Integer
  5224. End Type
  5225.  
  5226. Type EMRFILLRGN
  5227.         pEmr As emr
  5228.         rclBounds As RECTL
  5229.         cbRgnData As Long
  5230.         ihBrush As Long
  5231.         RgnData(1) As Integer
  5232. End Type
  5233.  
  5234. Type EMRFRAMERGN
  5235.         pEmr As emr
  5236.         rclBounds As RECTL
  5237.         cbRgnData As Long
  5238.         ihBrush As Long
  5239.         szlStroke As SIZEL
  5240.         RgnData(1) As Integer
  5241. End Type
  5242.  
  5243. Type EMREXTSELECTCLIPRGN
  5244.         pEmr As emr
  5245.         cbRgnData As Long
  5246.         iMode As Long
  5247.         RgnData(1) As Integer
  5248. End Type
  5249.  
  5250. Type EMREXTTEXTOUT
  5251.         pEmr As emr
  5252.         rclBounds As RECTL
  5253.         iGraphicsMode As Long
  5254.         exScale As Double
  5255.         eyScale As Double
  5256.         emrtext As emrtext
  5257. End Type
  5258.  
  5259. Type EMRBITBLT
  5260.         pEmr As emr
  5261.         rclBounds As RECTL
  5262.         xDest As Long
  5263.         yDest As Long
  5264.         cxDest As Long
  5265.         cyDest As Long
  5266.         dwRop As Long
  5267.         xSrc As Long
  5268.         ySrc As Long
  5269.         xformSrc As xform
  5270.         crBkColorSrc As Long
  5271.         iUsageSrc As Long
  5272.         offBmiSrc As Long
  5273.         cbBmiSrc As Long
  5274.         offBitsSrc As Long
  5275.         cbBitsSrc As Long
  5276. End Type
  5277.  
  5278. Type EMRSTRETCHBLT
  5279.         pEmr As emr
  5280.         rclBounds As RECTL
  5281.         xDest As Long
  5282.         yDest As Long
  5283.         cxDest As Long
  5284.         cyDest As Long
  5285.         dwRop As Long
  5286.         xSrc As Long
  5287.         ySrc As Long
  5288.         xformSrc As xform
  5289.         crBkColorSrc As Long
  5290.         iUsageSrc As Long
  5291.         offBmiSrc As Long
  5292.         cbBmiSrc As Long
  5293.         offBitsSrc As Long
  5294.         cbBitsSrc As Long
  5295.         cxSrc As Long
  5296.         cySrc As Long
  5297. End Type
  5298.  
  5299. Type EMRMASKBLT
  5300.         pEmr As emr
  5301.         rclBounds As RECTL
  5302.         xDest As Long
  5303.         yDest As Long
  5304.         cxDest As Long
  5305.         cyDest As Long
  5306.         dwRop As Long
  5307.         xSrc2 As Long
  5308.         cyDest2 As Long
  5309.         dwRop2 As Long
  5310.         xSrc As Long
  5311.         ySrc As Long
  5312.         xformSrc As XFORM
  5313.         crBkColorSrc As Long
  5314.         iUsageSrc As Long
  5315.         offBmiSrc As Long
  5316.         cbBmiSrc As Long
  5317.         offBitsSrc As Long
  5318.         cbBitsSrc As Long
  5319.         xMask As Long
  5320.         yMask As Long
  5321.         iUsageMask As Long
  5322.         offBmiMask As Long
  5323.         cbBmiMask As Long
  5324.         offBitsMask As Long
  5325.         cbBitsMask As Long
  5326. End Type
  5327.  
  5328. Type EMRPLGBLT
  5329.         pEmr As emr
  5330.         rclBounds As RECTL
  5331.         aptlDest(3) As POINTL
  5332.         xSrc As Long
  5333.         ySrc As Long
  5334.         cxSrc As Long
  5335.         cySrc As Long
  5336.         xformSrc As XFORM
  5337.         crBkColorSrc As Long
  5338.         iUsageSrc As Long
  5339.         offBmiSrc As Long
  5340.         cbBmiSrc As Long
  5341.         offBitsSrc As Long
  5342.         cbBitsSrc As Long
  5343.         xMask As Long
  5344.         yMask As Long
  5345.         iUsageMask As Long
  5346.         offBmiMask As Long
  5347.         cbBmiMask As Long
  5348.         offBitsMask As Long
  5349.         cbBitsMask As Long
  5350. End Type
  5351.  
  5352. Type EMRSETDIBITSTODEVICE
  5353.         pEmr As emr
  5354.         rclBounds As RECTL
  5355.         xDest As Long
  5356.         yDest As Long
  5357.         xSrc As Long
  5358.         ySrc As Long
  5359.         cxSrc As Long
  5360.         cySrc As Long
  5361.         offBmiSrc As Long
  5362.         cbBmiSrc As Long
  5363.         offBitsSrc As Long
  5364.         cbBitsSrc As Long
  5365.         iUsageSrc As Long
  5366.         iStartScan As Long
  5367.         cScans As Long
  5368. End Type
  5369.  
  5370. Type EMRSTRETCHDIBITS
  5371.         pEmr As emr
  5372.         rclBounds As RECTL
  5373.         xDest As Long
  5374.         yDest As Long
  5375.         xSrc As Long
  5376.         ySrc As Long
  5377.         cxSrc As Long
  5378.         cySrc As Long
  5379.         offBmiSrc As Long
  5380.         cbBmiSrc As Long
  5381.         offBitsSrc As Long
  5382.         cbBitsSrc As Long
  5383.         iUsageSrc As Long
  5384.         dwRop As Long
  5385.         cxDest As Long
  5386.         cyDest As Long
  5387. End Type
  5388.  
  5389. Type EMREXTCREATEFONTINDIRECT
  5390.         pEmr As emr
  5391.         ihFont As Long
  5392.         elfw As EXTLOGFONT
  5393. End Type
  5394.  
  5395. Type EMRCREATEPALETTE
  5396.         pEmr As emr
  5397.         ihPal As Long
  5398.         lgpl As LOGPALETTE
  5399. End Type
  5400.  
  5401. Type EMRCREATEPEN
  5402.         pEmr As emr
  5403.         ihPen As Long
  5404.         lopn As LOGPEN
  5405. End Type
  5406.  
  5407. Type EMREXTCREATEPEN
  5408.         pEmr As emr
  5409.         ihPen As Long
  5410.         offBmi As Long
  5411.         cbBmi As Long
  5412.         offBits As Long
  5413.         cbBits As Long
  5414.         elp As EXTLOGPEN
  5415. End Type
  5416.  
  5417. Type EMRCREATEBRUSHINDIRECT
  5418.         pEmr As emr
  5419.         ihBrush As Long
  5420.         lb As LOGBRUSH
  5421. End Type
  5422.  
  5423. Type EMRCREATEMONOBRUSH
  5424.         pEmr As emr
  5425.         ihBrush As Long
  5426.         iUsage As Long
  5427.         offBmi As Long
  5428.         cbBmi As Long
  5429.         offBits As Long
  5430.         cbBits As Long
  5431. End Type
  5432.  
  5433. Type EMRCREATEDIBPATTERNBRUSHPT
  5434.         pEmr As emr
  5435.         ihBursh As Long
  5436.         iUsage As Long
  5437.         offBmi As Long
  5438.         cbBmi As Long
  5439.         offBits As Long
  5440.         cbBits As Long
  5441. End Type
  5442.  
  5443. ' new wingdi
  5444. ' **************************************************************************************
  5445. ' *                                                                                    *
  5446. ' * wingdi.h -- DΘclarations de procΘdures GDI, dΘfinitions de constantes et de macros *
  5447. ' *                                                                                    *
  5448. ' * Copyright (c) 1985-1995, Microsoft Corp. Tous droits rΘservΘs.                     *
  5449. ' *                                                                                    *
  5450. ' *************************************************************************************/
  5451.  
  5452. '  StretchBlt() Modes
  5453. Public Const STRETCH_ANDSCANS = 1
  5454. Public Const STRETCH_ORSCANS = 2
  5455. Public Const STRETCH_DELETESCANS = 3
  5456. Public Const STRETCH_HALFTONE = 4
  5457.  
  5458. Type BITMAPV4HEADER
  5459.         bV4Size As Long
  5460.         bV4Width As Long
  5461.         bV4Height As Long
  5462.         bV4Planes As Integer
  5463.         bV4BitCount As Integer
  5464.         bV4V4Compression As Long
  5465.         bV4SizeImage As Long
  5466.         bV4XPelsPerMeter As Long
  5467.         bV4YPelsPerMeter As Long
  5468.         bV4ClrUsed As Long
  5469.         bV4ClrImportant As Long
  5470.         bV4RedMask As Long
  5471.         bV4GreenMask As Long
  5472.         bV4BlueMask As Long
  5473.         bV4AlphaMask As Long
  5474.         bV4CSType As Long
  5475.         bV4Endpoints As Long
  5476.         bV4GammaRed As Long
  5477.         bV4GammaGreen As Long
  5478.         bV4GammaBlue As Long
  5479. End Type
  5480.  
  5481. Type FONTSIGNATURE
  5482.         fsUsb(4) As Long
  5483.         fsCsb(2) As Long
  5484. End Type
  5485.  
  5486. Type CHARSETINFO
  5487.         ciCharset As Long
  5488.         ciACP As Long
  5489.         fs As FONTSIGNATURE
  5490. End Type
  5491.  
  5492. Public Const TCI_SRCCHARSET = 1
  5493. Public Const TCI_SRCCODEPAGE = 2
  5494. Public Const TCI_SRCFONTSIG = 3
  5495.  
  5496. Type LOCALESIGNATURE
  5497.         lsUsb(4) As Long
  5498.         lsCsbDefault(2) As Long
  5499.         lsCsbSupported(2) As Long
  5500. End Type
  5501.  
  5502. Type NEWTEXTMETRICEX
  5503.         ntmTm As NEWTEXTMETRIC
  5504.         ntmFontSig As FONTSIGNATURE
  5505. End Type
  5506.  
  5507. Type ENUMLOGFONTEX
  5508.         elfLogFont As LOGFONT
  5509.         elfFullName(LF_FULLFACESIZE) As Byte
  5510.         elfStyle(LF_FACESIZE) As Byte
  5511.         elfScript(LF_FACESIZE) As Byte
  5512. End Type
  5513.  
  5514. Public Const MONO_FONT = 8
  5515. Public Const JOHAB_CHARSET = 130
  5516. Public Const HEBREW_CHARSET = 177
  5517. Public Const ARABIC_CHARSET = 178
  5518. Public Const GREEK_CHARSET = 161
  5519. Public Const TURKISH_CHARSET = 162
  5520. Public Const THAI_CHARSET = 222
  5521. Public Const EASTEUROPE_CHARSET = 238
  5522. Public Const RUSSIAN_CHARSET = 204
  5523.  
  5524. Public Const MAC_CHARSET = 77
  5525. Public Const BALTIC_CHARSET = 186
  5526.  
  5527. Public Const FS_LATIN1 = &H1&
  5528. Public Const FS_LATIN2 = &H2&
  5529. Public Const FS_CYRILLIC = &H4&
  5530. Public Const FS_GREEK = &H8&
  5531. Public Const FS_TURKISH = &H10&
  5532. Public Const FS_HEBREW = &H20&
  5533. Public Const FS_ARABIC = &H40&
  5534. Public Const FS_BALTIC = &H80&
  5535. Public Const FS_THAI = &H10000
  5536. Public Const FS_JISJAPAN = &H20000
  5537. Public Const FS_CHINESESIMP = &H40000
  5538. Public Const FS_WANSUNG = &H80000
  5539. Public Const FS_CHINESETRAD = &H100000
  5540. Public Const FS_JOHAB = &H200000
  5541. Public Const FS_SYMBOL = &H80000000
  5542. Public Const DEFAULT_GUI_FONT = 17
  5543. '  current version of specification
  5544. Public Const DM_RESERVED1 = &H800000
  5545. Public Const DM_RESERVED2 = &H1000000
  5546. Public Const DM_ICMMETHOD = &H2000000
  5547. Public Const DM_ICMINTENT = &H4000000
  5548. Public Const DM_MEDIATYPE = &H8000000
  5549. Public Const DM_DITHERTYPE = &H10000000
  5550. Public Const DMPAPER_ISO_B4 = 42                '  B4 (ISO) 250 x 353 mm
  5551. Public Const DMPAPER_JAPANESE_POSTCARD = 43     '  Japanese Postcard 100 x 148 mm
  5552. Public Const DMPAPER_9X11 = 44                  '  9 x 11 in
  5553. Public Const DMPAPER_10X11 = 45                 '  10 x 11 in
  5554. Public Const DMPAPER_15X11 = 46                 '  15 x 11 in
  5555. Public Const DMPAPER_ENV_INVITE = 47            '  Envelope Invite 220 x 220 mm
  5556. Public Const DMPAPER_RESERVED_48 = 48           '  RESERVED--DO NOT USE
  5557. Public Const DMPAPER_RESERVED_49 = 49           '  RESERVED--DO NOT USE
  5558. Public Const DMPAPER_LETTER_EXTRA = 50              '  Letter Extra 9 \275 x 12 in
  5559. Public Const DMPAPER_LEGAL_EXTRA = 51               '  Legal Extra 9 \275 x 15 in
  5560. Public Const DMPAPER_TABLOID_EXTRA = 52              '  Tabloid Extra 11.69 x 18 in
  5561. Public Const DMPAPER_A4_EXTRA = 53                   '  A4 Extra 9.27 x 12.69 in
  5562. Public Const DMPAPER_LETTER_TRANSVERSE = 54     '  Letter Transverse 8 \275 x 11 in
  5563. Public Const DMPAPER_A4_TRANSVERSE = 55         '  A4 Transverse 210 x 297 mm
  5564. Public Const DMPAPER_LETTER_EXTRA_TRANSVERSE = 56 '  Letter Extra Transverse 9\275 x 12 in
  5565. Public Const DMPAPER_A_PLUS = 57                '  SuperA/SuperA/A4 227 x 356 mm
  5566. Public Const DMPAPER_B_PLUS = 58                '  SuperB/SuperB/A3 305 x 487 mm
  5567. Public Const DMPAPER_LETTER_PLUS = 59           '  Letter Plus 8.5 x 12.69 in
  5568. Public Const DMPAPER_A4_PLUS = 60               '  A4 Plus 210 x 330 mm
  5569. Public Const DMPAPER_A5_TRANSVERSE = 61         '  A5 Transverse 148 x 210 mm
  5570. Public Const DMPAPER_B5_TRANSVERSE = 62         '  B5 (JIS) Transverse 182 x 257 mm
  5571. Public Const DMPAPER_A3_EXTRA = 63              '  A3 Extra 322 x 445 mm
  5572. Public Const DMPAPER_A5_EXTRA = 64              '  A5 Extra 174 x 235 mm
  5573. Public Const DMPAPER_B5_EXTRA = 65              '  B5 (ISO) Extra 201 x 276 mm
  5574. Public Const DMPAPER_A2 = 66                    '  A2 420 x 594 mm
  5575. Public Const DMPAPER_A3_TRANSVERSE = 67         '  A3 Transverse 297 x 420 mm
  5576. Public Const DMPAPER_A3_EXTRA_TRANSVERSE = 68   '  A3 Extra Transverse 322 x 445 mm
  5577. Public Const DMTT_DOWNLOAD_OUTLINE = 4 '  download TT fonts as outline soft fonts
  5578.  
  5579. '  ICM methods
  5580. Public Const DMICMMETHOD_NONE = 1       '  ICM disabled
  5581. Public Const DMICMMETHOD_SYSTEM = 2     '  ICM handled by system
  5582. Public Const DMICMMETHOD_DRIVER = 3     '  ICM handled by driver
  5583. Public Const DMICMMETHOD_DEVICE = 4     '  ICM handled by device
  5584. Public Const DMICMMETHOD_USER = 256     '  Device-specific methods start here
  5585.  
  5586. '  ICM Intents
  5587. Public Const DMICM_SATURATE = 1         '  Maximize color saturation
  5588. Public Const DMICM_CONTRAST = 2         '  Maximize color contrast
  5589. Public Const DMICM_COLORMETRIC = 3      '  Use specific color metric
  5590. Public Const DMICM_USER = 256           '  Device-specific intents start here
  5591.  
  5592. '  Media types
  5593. Public Const DMMEDIA_STANDARD = 1         '  Standard paper
  5594. Public Const DMMEDIA_GLOSSY = 2           '  Glossy paper
  5595. Public Const DMMEDIA_TRANSPARENCY = 3     '  Transparency
  5596.  
  5597. Public Const DMMEDIA_USER = 256           '  Device-specific media start here
  5598.  
  5599. '  Dither types
  5600. Public Const DMDITHER_NONE = 1          '  No dithering
  5601. Public Const DMDITHER_COARSE = 2        '  Dither with a coarse brush
  5602. Public Const DMDITHER_FINE = 3          '  Dither with a fine brush
  5603. Public Const DMDITHER_LINEART = 4       '  LineArt dithering
  5604. Public Const DMDITHER_GRAYSCALE = 5     '  Device does grayscaling
  5605. Public Const DMDITHER_USER = 256        '  Device-specific dithers start here
  5606. Public Const GGO_GRAY2_BITMAP = 4
  5607. Public Const GGO_GRAY4_BITMAP = 5
  5608. Public Const GGO_GRAY8_BITMAP = 6
  5609. Public Const GGO_GLYPH_INDEX = &H80
  5610. Public Const GCP_DBCS = &H1
  5611. Public Const GCP_REORDER = &H2
  5612. Public Const GCP_USEKERNING = &H8
  5613. Public Const GCP_GLYPHSHAPE = &H10
  5614. Public Const GCP_LIGATE = &H20
  5615. Public Const GCP_DIACRITIC = &H100
  5616. Public Const GCP_KASHIDA = &H400
  5617. Public Const GCP_ERROR = &H8000
  5618. Public Const FLI_MASK = &H103B
  5619. Public Const GCP_JUSTIFY = &H10000
  5620. Public Const GCP_NODIACRITICS = &H20000
  5621. Public Const FLI_GLYPHS = &H40000
  5622. Public Const GCP_CLASSIN = &H80000
  5623. Public Const GCP_MAXEXTENT = &H100000
  5624. Public Const GCP_JUSTIFYIN = &H200000
  5625. Public Const GCP_DISPLAYZWG = &H400000
  5626. Public Const GCP_SYMSWAPOFF = &H800000
  5627. Public Const GCP_NUMERICOVERRIDE = &H1000000
  5628. Public Const GCP_NEUTRALOVERRIDE = &H2000000
  5629. Public Const GCP_NUMERICSLATIN = &H4000000
  5630. Public Const GCP_NUMERICSLOCAL = &H8000000
  5631. Public Const GCPCLASS_LATIN = 1
  5632. Public Const GCPCLASS_HEBREW = 2
  5633. Public Const GCPCLASS_ARABIC = 2
  5634. Public Const GCPCLASS_NEUTRAL = 3
  5635. Public Const GCPCLASS_LOCALNUMBER = 4
  5636. Public Const GCPCLASS_LATINNUMBER = 5
  5637. Public Const GCPCLASS_LATINNUMERICTERMINATOR = 6
  5638. Public Const GCPCLASS_LATINNUMERICSEPARATOR = 7
  5639. Public Const GCPCLASS_NUMERICSEPARATOR = 8
  5640. Public Const GCPCLASS_PREBOUNDRTL = &H80
  5641. Public Const GCPCLASS_PREBOUNDLTR = &H40
  5642.  
  5643.  
  5644.  
  5645. Type GCP_RESULTS
  5646.         lStructSize As Long
  5647.         lpOutString As String
  5648.         lpOrder As Long
  5649.         lpDX As Long
  5650.         lpCaretPos As Long
  5651.         lpClass As String
  5652.         lpGlyphs As String
  5653.         nGlyphs As Long
  5654.         nMaxFit As Long
  5655. End Type
  5656.  
  5657. Public Const DC_BINADJUST = 19
  5658. Public Const DC_EMF_COMPLIANT = 20
  5659. Public Const DC_DATATYPE_PRODUCED = 21
  5660. Public Const DC_COLLATE = 22
  5661.  
  5662. Public Const DCTT_DOWNLOAD_OUTLINE = &H8&
  5663.  
  5664. '  return values for DC_BINADJUST
  5665. Public Const DCBA_FACEUPNONE = &H0
  5666. Public Const DCBA_FACEUPCENTER = &H1
  5667. Public Const DCBA_FACEUPLEFT = &H2
  5668. Public Const DCBA_FACEUPRIGHT = &H3
  5669. Public Const DCBA_FACEDOWNNONE = &H100
  5670. Public Const DCBA_FACEDOWNCENTER = &H101
  5671. Public Const DCBA_FACEDOWNLEFT = &H102
  5672. Public Const DCBA_FACEDOWNRIGHT = &H103
  5673.  
  5674. 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
  5675. 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
  5676. Declare Function GetTextCharset Lib "gdi32" Alias "GetTextCharset" (ByVal hdc As Long) As Long
  5677. Declare Function GetTextCharsetInfo Lib "gdi32" Alias "GetTextCharsetInfo" (ByVal hdc As Long, lpSig As FONTSIGNATURE, ByVal dwFlags As Long) As Long
  5678.  
  5679. Declare Function TranslateCharsetInfo Lib "gdi32" Alias "TranslateCharsetInfo" (lpSrc As Long, lpcs As CHARSETINFO, ByVal dwFlags As Long) As Long
  5680. Declare Function GetFontLanguageInfo Lib "gdi32" Alias "GetFontLanguageInfo" (ByVal hdc As Long) As Long
  5681. 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
  5682.  
  5683. Public Const ICM_OFF = 1
  5684. Public Const ICM_ON = 2
  5685. Public Const ICM_QUERY = 3
  5686.  
  5687. Type CIEXYZ
  5688.     ciexyzX As Long
  5689.     ciexyzY As Long
  5690.     ciexyzZ As Long
  5691. End Type
  5692.  
  5693. Type CIEXYZTRIPLE
  5694.     ciexyzRed As CIEXYZ
  5695.     ciexyzGreen As CIEXYZ
  5696.     ciexyBlue As CIEXYZ
  5697. End Type
  5698.  
  5699. Type LOGCOLORSPACE
  5700.     lcsSignature As Long
  5701.     lcsVersion As Long
  5702.     lcsSize As Long
  5703.     lcsCSType As Long
  5704.     lcsIntent As Long
  5705.     lcsEndPoints As CIEXYZTRIPLE
  5706.     lcsGammaRed As Long
  5707.     lcsGammaGreen As Long
  5708.     lcsGammaBlue As Long
  5709.     lcsFileName As String * MAX_PATH
  5710. End Type
  5711.  
  5712. Declare Function SetICMMode Lib "gdi32" Alias "SetICMMode" (ByVal hdc As Long, ByVal n As Long) As Long
  5713. Declare Function CheckColorsInGamut Lib "gdi32" Alias "CheckColorsInGamut" (ByVal hdc As Long, lpv As Any, lpv2 As Any, ByVal dw As Long) As Long
  5714. Declare Function GetLogColorSpace Lib "gdi32" Alias "GetLogColorSpaceA" (ByVal hcolorspace As Long, ByVal lplogcolorspace As LOGCOLORSPACE, ByVal dw As Long) As Long
  5715. Declare Function GetColorSpace Lib "gdi32" Alias "GetColorSpace" (ByVal hdc As Long) As Long
  5716.  
  5717. Declare Function CreateColorSpace Lib "gdi32" Alias "CreateColorSpaceA" (lplogcolorspace As LOGCOLORSPACE) As Long
  5718.  
  5719. Declare Function SetColorSpace Lib "gdi32" Alias "SetColorSpace" (ByVal hdc As Long, ByVal hcolorspace As Long) As Long
  5720. Declare Function DeleteColorSpace Lib "gdi32" Alias "DeleteColorSpace" (ByVal hcolorspace As Long) As Long
  5721. Declare Function GetICMProfile Lib "gdi32" Alias "GetICMProfileA" (ByVal hdc As Long, ByVal dw As Long, ByVal lpStr As String) As Long
  5722. Declare Function SetICMProfile Lib "gdi32" Alias "SetICMProfileA" (ByVal hdc As Long, ByVal lpStr As String) As Long
  5723. Declare Function GetDeviceGammaRamp Lib "gdi32" Alias "GetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long
  5724. Declare Function SetDeviceGammaRamp Lib "gdi32" Alias "SetDeviceGammaRamp" (ByVal hdc As Long, lpv As Any) As Long
  5725. Declare Function ColorMatchToTarget Lib "gdi32" Alias "ColorMatchToTarget" (ByVal hdc As Long, ByVal hdc2 As Long, ByVal dw As Long) As Long
  5726.  
  5727. Declare Function EnumICMProfiles Lib "gdi32" Alias "EnumICMProfilesA" (ByVal hdc As Long, ByVal icmEnumProc As Long, ByVal lParam As Long) As Long
  5728.  
  5729. Public Const EMR_SETICMMODE = 98
  5730. Public Const EMR_CREATECOLORSPACE = 99
  5731. Public Const EMR_SETCOLORSPACE = 100
  5732. Public Const EMR_DELETECOLORSPACE = 101
  5733.  
  5734. Type EMRSELECTCOLORSPACE
  5735.         pEmr As emr
  5736.         ihCS As Long               '  ColorSpace handle index
  5737. End Type
  5738.  
  5739. Type EMRCREATECOLORSPACE
  5740.         pEmr As emr
  5741.         ihCS As Long        '  ColorSpace handle index
  5742.         lcs As LOGCOLORSPACE
  5743. End Type
  5744.  
  5745.  
  5746. ' --------------
  5747. '  Section USER 
  5748. ' --------------
  5749.  
  5750. ' Scroll Bar Constants
  5751. Public Const SB_HORZ = 0
  5752. Public Const SB_VERT = 1
  5753. Public Const SB_CTL = 2
  5754. Public Const SB_BOTH = 3
  5755.  
  5756. ' Scroll Bar Commands
  5757. Public Const SB_LINEUP = 0
  5758. Public Const SB_LINELEFT = 0
  5759. Public Const SB_LINEDOWN = 1
  5760. Public Const SB_LINERIGHT = 1
  5761. Public Const SB_PAGEUP = 2
  5762. Public Const SB_PAGELEFT = 2
  5763. Public Const SB_PAGEDOWN = 3
  5764. Public Const SB_PAGERIGHT = 3
  5765. Public Const SB_THUMBPOSITION = 4
  5766. Public Const SB_THUMBTRACK = 5
  5767. Public Const SB_TOP = 6
  5768. Public Const SB_LEFT = 6
  5769. Public Const SB_BOTTOM = 7
  5770. Public Const SB_RIGHT = 7
  5771. Public Const SB_ENDSCROLL = 8
  5772.  
  5773. ' ShowWindow() Commands
  5774. Public Const SW_HIDE = 0
  5775. Public Const SW_SHOWNORMAL = 1
  5776. Public Const SW_NORMAL = 1
  5777. Public Const SW_SHOWMINIMIZED = 2
  5778. Public Const SW_SHOWMAXIMIZED = 3
  5779. Public Const SW_MAXIMIZE = 3
  5780. Public Const SW_SHOWNOACTIVATE = 4
  5781. Public Const SW_SHOW = 5
  5782. Public Const SW_MINIMIZE = 6
  5783. Public Const SW_SHOWMINNOACTIVE = 7
  5784. Public Const SW_SHOWNA = 8
  5785. Public Const SW_RESTORE = 9
  5786. Public Const SW_SHOWDEFAULT = 10
  5787. Public Const SW_MAX = 10
  5788.  
  5789. ' Old ShowWindow() Commands
  5790. Public Const HIDE_WINDOW = 0
  5791. Public Const SHOW_OPENWINDOW = 1
  5792. Public Const SHOW_ICONWINDOW = 2
  5793. Public Const SHOW_FULLSCREEN = 3
  5794. Public Const SHOW_OPENNOACTIVATE = 4
  5795.  
  5796. ' Identifiers for the WM_SHOWWINDOW message
  5797. Public Const SW_PARENTCLOSING = 1
  5798. Public Const SW_OTHERZOOM = 2
  5799. Public Const SW_PARENTOPENING = 3
  5800. Public Const SW_OTHERUNZOOM = 4
  5801.  
  5802. ' WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
  5803. Public Const KF_EXTENDED = &H100
  5804. Public Const KF_DLGMODE = &H800
  5805. Public Const KF_MENUMODE = &H1000
  5806. Public Const KF_ALTDOWN = &H2000
  5807. Public Const KF_REPEAT = &H4000
  5808. Public Const KF_UP = &H8000
  5809.  
  5810. ' Virtual Keys, Standard Set
  5811. Public Const VK_LBUTTON = &H1
  5812. Public Const VK_RBUTTON = &H2
  5813. Public Const VK_CANCEL = &H3
  5814. Public Const VK_MBUTTON = &H4             '  NOT contiguous with L RBUTTON
  5815.  
  5816. Public Const VK_BACK = &H8
  5817. Public Const VK_TAB = &H9
  5818.  
  5819. Public Const VK_CLEAR = &HC
  5820. Public Const VK_RETURN = &HD
  5821.  
  5822. Public Const VK_SHIFT = &H10
  5823. Public Const VK_CONTROL = &H11
  5824. Public Const VK_MENU = &H12
  5825. Public Const VK_PAUSE = &H13
  5826. Public Const VK_CAPITAL = &H14
  5827.  
  5828. Public Const VK_ESCAPE = &H1B
  5829.  
  5830. Public Const VK_SPACE = &H20
  5831. Public Const VK_PRIOR = &H21
  5832. Public Const VK_NEXT = &H22
  5833. Public Const VK_END = &H23
  5834. Public Const VK_HOME = &H24
  5835. Public Const VK_LEFT = &H25
  5836. Public Const VK_UP = &H26
  5837. Public Const VK_RIGHT = &H27
  5838. Public Const VK_DOWN = &H28
  5839. Public Const VK_SELECT = &H29
  5840. Public Const VK_PRINT = &H2A
  5841. Public Const VK_EXECUTE = &H2B
  5842. Public Const VK_SNAPSHOT = &H2C
  5843. Public Const VK_INSERT = &H2D
  5844. Public Const VK_DELETE = &H2E
  5845. Public Const VK_HELP = &H2F
  5846.  
  5847. ' VK_A thru VK_Z are the same as their ASCII equivalents: 'A' thru 'Z'
  5848. ' VK_0 thru VK_9 are the same as their ASCII equivalents: '0' thru '9'
  5849.  
  5850. Public Const VK_NUMPAD0 = &H60
  5851. Public Const VK_NUMPAD1 = &H61
  5852. Public Const VK_NUMPAD2 = &H62
  5853. Public Const VK_NUMPAD3 = &H63
  5854. Public Const VK_NUMPAD4 = &H64
  5855. Public Const VK_NUMPAD5 = &H65
  5856. Public Const VK_NUMPAD6 = &H66
  5857. Public Const VK_NUMPAD7 = &H67
  5858. Public Const VK_NUMPAD8 = &H68
  5859. Public Const VK_NUMPAD9 = &H69
  5860. Public Const VK_MULTIPLY = &H6A
  5861. Public Const VK_ADD = &H6B
  5862. Public Const VK_SEPARATOR = &H6C
  5863. Public Const VK_SUBTRACT = &H6D
  5864. Public Const VK_DECIMAL = &H6E
  5865. Public Const VK_DIVIDE = &H6F
  5866. Public Const VK_F1 = &H70
  5867. Public Const VK_F2 = &H71
  5868. Public Const VK_F3 = &H72
  5869. Public Const VK_F4 = &H73
  5870. Public Const VK_F5 = &H74
  5871. Public Const VK_F6 = &H75
  5872. Public Const VK_F7 = &H76
  5873. Public Const VK_F8 = &H77
  5874. Public Const VK_F9 = &H78
  5875. Public Const VK_F10 = &H79
  5876. Public Const VK_F11 = &H7A
  5877. Public Const VK_F12 = &H7B
  5878. Public Const VK_F13 = &H7C
  5879. Public Const VK_F14 = &H7D
  5880. Public Const VK_F15 = &H7E
  5881. Public Const VK_F16 = &H7F
  5882. Public Const VK_F17 = &H80
  5883. Public Const VK_F18 = &H81
  5884. Public Const VK_F19 = &H82
  5885. Public Const VK_F20 = &H83
  5886. Public Const VK_F21 = &H84
  5887. Public Const VK_F22 = &H85
  5888. Public Const VK_F23 = &H86
  5889. Public Const VK_F24 = &H87
  5890.  
  5891. Public Const VK_NUMLOCK = &H90
  5892. Public Const VK_SCROLL = &H91
  5893.  
  5894. '
  5895. '   VK_L VK_R - left and right Alt, Ctrl and Shift virtual keys.
  5896. '   Used only as parameters to GetAsyncKeyState() and GetKeyState().
  5897. '   No other API or message will distinguish left and right keys in this way.
  5898. '  /
  5899. Public Const VK_LSHIFT = &HA0
  5900. Public Const VK_RSHIFT = &HA1
  5901. Public Const VK_LCONTROL = &HA2
  5902. Public Const VK_RCONTROL = &HA3
  5903. Public Const VK_LMENU = &HA4
  5904. Public Const VK_RMENU = &HA5
  5905.  
  5906. Public Const VK_ATTN = &HF6
  5907. Public Const VK_CRSEL = &HF7
  5908. Public Const VK_EXSEL = &HF8
  5909. Public Const VK_EREOF = &HF9
  5910. Public Const VK_PLAY = &HFA
  5911. Public Const VK_ZOOM = &HFB
  5912. Public Const VK_NONAME = &HFC
  5913. Public Const VK_PA1 = &HFD
  5914. Public Const VK_OEM_CLEAR = &HFE
  5915.  
  5916. ' SetWindowsHook() codes
  5917. Public Const WH_MIN = (-1)
  5918. Public Const WH_MSGFILTER = (-1)
  5919. Public Const WH_JOURNALRECORD = 0
  5920. Public Const WH_JOURNALPLAYBACK = 1
  5921. Public Const WH_KEYBOARD = 2
  5922. Public Const WH_GETMESSAGE = 3
  5923. Public Const WH_CALLWNDPROC = 4
  5924. Public Const WH_CBT = 5
  5925. Public Const WH_SYSMSGFILTER = 6
  5926. Public Const WH_MOUSE = 7
  5927. Public Const WH_HARDWARE = 8
  5928. Public Const WH_DEBUG = 9
  5929. Public Const WH_SHELL = 10
  5930. Public Const WH_FOREGROUNDIDLE = 11
  5931. Public Const WH_MAX = 11
  5932.  
  5933. ' Hook Codes
  5934. Public Const HC_ACTION = 0
  5935. Public Const HC_GETNEXT = 1
  5936. Public Const HC_SKIP = 2
  5937. Public Const HC_NOREMOVE = 3
  5938. Public Const HC_NOREM = HC_NOREMOVE
  5939. Public Const HC_SYSMODALON = 4
  5940. Public Const HC_SYSMODALOFF = 5
  5941.  
  5942. ' CBT Hook Codes
  5943. Public Const HCBT_MOVESIZE = 0
  5944. Public Const HCBT_MINMAX = 1
  5945. Public Const HCBT_QS = 2
  5946. Public Const HCBT_CREATEWND = 3
  5947. Public Const HCBT_DESTROYWND = 4
  5948. Public Const HCBT_ACTIVATE = 5
  5949. Public Const HCBT_CLICKSKIPPED = 6
  5950. Public Const HCBT_KEYSKIPPED = 7
  5951. Public Const HCBT_SYSCOMMAND = 8
  5952. Public Const HCBT_SETFOCUS = 9
  5953.  
  5954. ' HCBT_ACTIVATE structure pointed to by lParam
  5955. Type CBTACTIVATESTRUCT
  5956.         fMouse As Long
  5957.         hWndActive As Long
  5958. End Type
  5959.  
  5960. ' WH_MSGFILTER Filter Proc Codes
  5961. Public Const MSGF_DIALOGBOX = 0
  5962. Public Const MSGF_MESSAGEBOX = 1
  5963. Public Const MSGF_MENU = 2
  5964. Public Const MSGF_MOVE = 3
  5965. Public Const MSGF_SIZE = 4
  5966. Public Const MSGF_SCROLLBAR = 5
  5967. Public Const MSGF_NEXTWINDOW = 6
  5968. Public Const MSGF_MAINLOOP = 8
  5969. Public Const MSGF_MAX = 8
  5970. Public Const MSGF_USER = 4096
  5971.  
  5972. Public Const HSHELL_WINDOWCREATED = 1
  5973. Public Const HSHELL_WINDOWDESTROYED = 2
  5974. Public Const HSHELL_ACTIVATESHELLWINDOW = 3
  5975.  
  5976. ' Message Structure used in Journaling
  5977. Type EVENTMSG
  5978.         message As Long
  5979.         paramL As Long
  5980.         paramH As Long
  5981.         time As Long
  5982.         hwnd As Long
  5983. End Type
  5984.  
  5985. Type CWPSTRUCT
  5986.         lParam As Long
  5987.         wParam As Long
  5988.         message As Long
  5989.         hwnd As Long
  5990. End Type
  5991.  
  5992. Type DEBUGHOOKINFO
  5993.         hModuleHook As Long
  5994.         Reserved As Long
  5995.         lParam As Long
  5996.         wParam As Long
  5997.         code As Long
  5998. End Type
  5999.  
  6000.  
  6001. Type MOUSEHOOKSTRUCT
  6002.         pt As POINTAPI
  6003.         hwnd As Long
  6004.         wHitTestCode As Long
  6005.         dwExtraInfo As Long
  6006. End Type
  6007.  
  6008. ' Keyboard Layout API
  6009. Public Const HKL_PREV = 0
  6010. Public Const HKL_NEXT = 1
  6011.  
  6012. Public Const KLF_ACTIVATE = &H1
  6013. Public Const KLF_SUBSTITUTE_OK = &H2
  6014. Public Const KLF_UNLOADPREVIOUS = &H4
  6015. Public Const KLF_REORDER = &H8
  6016.  
  6017. ' Size of KeyboardLayoutName (number of characters), including nul terminator
  6018. Public Const KL_NAMELENGTH = 9
  6019.  
  6020. Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long
  6021. Declare Function ActivateKeyboardLayout Lib "user32" Alias "ActivateKeyboardLayout" (ByVal HKL As Long, ByVal flags As Long) As Long
  6022. Declare Function UnloadKeyboardLayout Lib "user32" Alias "UnloadKeyboardLayout" (ByVal HKL As Long) As Long
  6023. Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
  6024.  
  6025. ' Desktop-specific access flags
  6026. Public Const DESKTOP_READOBJECTS = &H1&
  6027. Public Const DESKTOP_CREATEWINDOW = &H2&
  6028. Public Const DESKTOP_CREATEMENU = &H4&
  6029. Public Const DESKTOP_HOOKCONTROL = &H8&
  6030. Public Const DESKTOP_JOURNALRECORD = &H10&
  6031. Public Const DESKTOP_JOURNALPLAYBACK = &H20&
  6032. Public Const DESKTOP_ENUMERATE = &H40&
  6033. Public Const DESKTOP_WRITEOBJECTS = &H80&
  6034.  
  6035. Declare Function GetThreadDesktop Lib "user32" Alias "GetThreadDesktop" (ByVal dwThread As Long) As Long
  6036.  
  6037. ' Windowstation-specific access flags
  6038. Public Const WINSTA_ENUMDESKTOPS = &H1&
  6039. Public Const WINSTA_READATTRIBUTES = &H2&
  6040. Public Const WINSTA_ACCESSCLIPBOARD = &H4&
  6041. Public Const WINSTA_CREATEDESKTOP = &H8&
  6042. Public Const WINSTA_WRITEATTRIBUTES = &H10&
  6043. Public Const WINSTA_ACCESSPUBLICATOMS = &H20&
  6044. Public Const WINSTA_EXITWINDOWS = &H40&
  6045. Public Const WINSTA_ENUMERATE = &H100&
  6046. Public Const WINSTA_READSCREEN = &H200&
  6047.  
  6048. Declare Function GetProcessWindowStation Lib "user32" Alias "GetProcessWindowStation" () As Long
  6049. Declare Function SetUserObjectSecurity Lib "user32" Alias "SetUserObjectSecurity" (ByVal hObj As Long, pSIRequested As Long, pSd As SECURITY_DESCRIPTOR) As Long
  6050. 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
  6051.  
  6052. ' Message structure
  6053.  
  6054. ' Window field offsets for GetWindowLong() and GetWindowWord()
  6055. Public Const GWL_WNDPROC = (-4)
  6056. Public Const GWL_HINSTANCE = (-6)
  6057. Public Const GWL_HWNDPARENT = (-8)
  6058. Public Const GWL_STYLE = (-16)
  6059. Public Const GWL_EXSTYLE = (-20)
  6060. Public Const GWL_USERDATA = (-21)
  6061. Public Const GWL_ID = (-12)
  6062.  
  6063. ' Class field offsets for GetClassLong() and GetClassWord()
  6064. Public Const GCL_MENUNAME = (-8)
  6065. Public Const GCL_HBRBACKGROUND = (-10)
  6066. Public Const GCL_HCURSOR = (-12)
  6067. Public Const GCL_HICON = (-14)
  6068. Public Const GCL_HMODULE = (-16)
  6069. Public Const GCL_CBWNDEXTRA = (-18)
  6070. Public Const GCL_CBCLSEXTRA = (-20)
  6071. Public Const GCL_WNDPROC = (-24)
  6072. Public Const GCL_STYLE = (-26)
  6073. Public Const GCW_ATOM = (-32)
  6074.  
  6075. ' Window Messages
  6076. Public Const WM_NULL = &H0
  6077. Public Const WM_CREATE = &H1
  6078. Public Const WM_DESTROY = &H2
  6079. Public Const WM_MOVE = &H3
  6080. Public Const WM_SIZE = &H5
  6081.  
  6082. Public Const WM_ACTIVATE = &H6
  6083. '
  6084. '  WM_ACTIVATE state values
  6085.  
  6086. Public Const WA_INACTIVE = 0
  6087. Public Const WA_ACTIVE = 1
  6088. Public Const WA_CLICKACTIVE = 2
  6089.  
  6090. Public Const WM_SETFOCUS = &H7
  6091. Public Const WM_KILLFOCUS = &H8
  6092. Public Const WM_ENABLE = &HA
  6093. Public Const WM_SETREDRAW = &HB
  6094. Public Const WM_SETTEXT = &HC
  6095. Public Const WM_GETTEXT = &HD
  6096. Public Const WM_GETTEXTLENGTH = &HE
  6097. Public Const WM_PAINT = &HF
  6098. Public Const WM_CLOSE = &H10
  6099. Public Const WM_QUERYENDSESSION = &H11
  6100. Public Const WM_QUIT = &H12
  6101. Public Const WM_QUERYOPEN = &H13
  6102. Public Const WM_ERASEBKGND = &H14
  6103. Public Const WM_SYSCOLORCHANGE = &H15
  6104. Public Const WM_ENDSESSION = &H16
  6105. Public Const WM_SHOWWINDOW = &H18
  6106. Public Const WM_WININICHANGE = &H1A
  6107. Public Const WM_DEVMODECHANGE = &H1B
  6108. Public Const WM_ACTIVATEAPP = &H1C
  6109. Public Const WM_FONTCHANGE = &H1D
  6110. Public Const WM_TIMECHANGE = &H1E
  6111. Public Const WM_CANCELMODE = &H1F
  6112. Public Const WM_SETCURSOR = &H20
  6113. Public Const WM_MOUSEACTIVATE = &H21
  6114. Public Const WM_CHILDACTIVATE = &H22
  6115. Public Const WM_QUEUESYNC = &H23
  6116.  
  6117. Public Const WM_GETMINMAXINFO = &H24
  6118.  
  6119. Type MINMAXINFO
  6120.         ptReserved As POINTAPI
  6121.         ptMaxSize As POINTAPI
  6122.         ptMaxPosition As POINTAPI
  6123.         ptMinTrackSize As POINTAPI
  6124.         ptMaxTrackSize As POINTAPI
  6125. End Type
  6126.  
  6127. Public Const WM_PAINTICON = &H26
  6128. Public Const WM_ICONERASEBKGND = &H27
  6129. Public Const WM_NEXTDLGCTL = &H28
  6130. Public Const WM_SPOOLERSTATUS = &H2A
  6131. Public Const WM_DRAWITEM = &H2B
  6132. Public Const WM_MEASUREITEM = &H2C
  6133. Public Const WM_DELETEITEM = &H2D
  6134. Public Const WM_VKEYTOITEM = &H2E
  6135. Public Const WM_CHARTOITEM = &H2F
  6136. Public Const WM_SETFONT = &H30
  6137. Public Const WM_GETFONT = &H31
  6138. Public Const WM_SETHOTKEY = &H32
  6139. Public Const WM_GETHOTKEY = &H33
  6140. Public Const WM_QUERYDRAGICON = &H37
  6141. Public Const WM_COMPAREITEM = &H39
  6142. Public Const WM_COMPACTING = &H41
  6143. Public Const WM_OTHERWINDOWCREATED = &H42               '  no longer suported
  6144. Public Const WM_OTHERWINDOWDESTROYED = &H43             '  no longer suported
  6145. Public Const WM_COMMNOTIFY = &H44                       '  no longer suported
  6146.  
  6147. ' notifications passed in low word of lParam on WM_COMMNOTIFY messages
  6148. Public Const CN_RECEIVE = &H1
  6149. Public Const CN_TRANSMIT = &H2
  6150. Public Const CN_EVENT = &H4
  6151.  
  6152. Public Const WM_WINDOWPOSCHANGING = &H46
  6153. Public Const WM_WINDOWPOSCHANGED = &H47
  6154.  
  6155. Public Const WM_POWER = &H48
  6156. '
  6157. '  wParam for WM_POWER window message and DRV_POWER driver notification
  6158.  
  6159. Public Const PWR_OK = 1
  6160. Public Const PWR_FAIL = (-1)
  6161. Public Const PWR_SUSPENDREQUEST = 1
  6162. Public Const PWR_SUSPENDRESUME = 2
  6163. Public Const PWR_CRITICALRESUME = 3
  6164.  
  6165. Public Const WM_COPYDATA = &H4A
  6166. Public Const WM_CANCELJOURNAL = &H4B
  6167.  
  6168. Type COPYDATASTRUCT
  6169.         dwData As Long
  6170.         cbData As Long
  6171.         lpData As Long
  6172. End Type
  6173.  
  6174. Public Const WM_NCCREATE = &H81
  6175. Public Const WM_NCDESTROY = &H82
  6176. Public Const WM_NCCALCSIZE = &H83
  6177. Public Const WM_NCHITTEST = &H84
  6178. Public Const WM_NCPAINT = &H85
  6179. Public Const WM_NCACTIVATE = &H86
  6180. Public Const WM_GETDLGCODE = &H87
  6181. Public Const WM_NCMOUSEMOVE = &HA0
  6182. Public Const WM_NCLBUTTONDOWN = &HA1
  6183. Public Const WM_NCLBUTTONUP = &HA2
  6184. Public Const WM_NCLBUTTONDBLCLK = &HA3
  6185. Public Const WM_NCRBUTTONDOWN = &HA4
  6186. Public Const WM_NCRBUTTONUP = &HA5
  6187. Public Const WM_NCRBUTTONDBLCLK = &HA6
  6188. Public Const WM_NCMBUTTONDOWN = &HA7
  6189. Public Const WM_NCMBUTTONUP = &HA8
  6190. Public Const WM_NCMBUTTONDBLCLK = &HA9
  6191.  
  6192. Public Const WM_KEYFIRST = &H100
  6193. Public Const WM_KEYDOWN = &H100
  6194. Public Const WM_KEYUP = &H101
  6195. Public Const WM_CHAR = &H102
  6196. Public Const WM_DEADCHAR = &H103
  6197. Public Const WM_SYSKEYDOWN = &H104
  6198. Public Const WM_SYSKEYUP = &H105
  6199. Public Const WM_SYSCHAR = &H106
  6200. Public Const WM_SYSDEADCHAR = &H107
  6201. Public Const WM_KEYLAST = &H108
  6202. Public Const WM_INITDIALOG = &H110
  6203. Public Const WM_COMMAND = &H111
  6204. Public Const WM_SYSCOMMAND = &H112
  6205. Public Const WM_TIMER = &H113
  6206. Public Const WM_HSCROLL = &H114
  6207. Public Const WM_VSCROLL = &H115
  6208. Public Const WM_INITMENU = &H116
  6209. Public Const WM_INITMENUPOPUP = &H117
  6210. Public Const WM_MENUSELECT = &H11F
  6211. Public Const WM_MENUCHAR = &H120
  6212. Public Const WM_ENTERIDLE = &H121
  6213.  
  6214. Public Const WM_CTLCOLORMSGBOX = &H132
  6215. Public Const WM_CTLCOLOREDIT = &H133
  6216. Public Const WM_CTLCOLORLISTBOX = &H134
  6217. Public Const WM_CTLCOLORBTN = &H135
  6218. Public Const WM_CTLCOLORDLG = &H136
  6219. Public Const WM_CTLCOLORSCROLLBAR = &H137
  6220. Public Const WM_CTLCOLORSTATIC = &H138
  6221.  
  6222. Public Const WM_MOUSEFIRST = &H200
  6223. Public Const WM_MOUSEMOVE = &H200
  6224. Public Const WM_LBUTTONDOWN = &H201
  6225. Public Const WM_LBUTTONUP = &H202
  6226. Public Const WM_LBUTTONDBLCLK = &H203
  6227. Public Const WM_RBUTTONDOWN = &H204
  6228. Public Const WM_RBUTTONUP = &H205
  6229. Public Const WM_RBUTTONDBLCLK = &H206
  6230. Public Const WM_MBUTTONDOWN = &H207
  6231. Public Const WM_MBUTTONUP = &H208
  6232. Public Const WM_MBUTTONDBLCLK = &H209
  6233. Public Const WM_MOUSELAST = &H209
  6234.  
  6235. Public Const WM_PARENTNOTIFY = &H210
  6236. Public Const WM_ENTERMENULOOP = &H211
  6237. Public Const WM_EXITMENULOOP = &H212
  6238. Public Const WM_MDICREATE = &H220
  6239. Public Const WM_MDIDESTROY = &H221
  6240. Public Const WM_MDIACTIVATE = &H222
  6241. Public Const WM_MDIRESTORE = &H223
  6242. Public Const WM_MDINEXT = &H224
  6243. Public Const WM_MDIMAXIMIZE = &H225
  6244. Public Const WM_MDITILE = &H226
  6245. Public Const WM_MDICASCADE = &H227
  6246. Public Const WM_MDIICONARRANGE = &H228
  6247. Public Const WM_MDIGETACTIVE = &H229
  6248. Public Const WM_MDISETMENU = &H230
  6249. Public Const WM_DROPFILES = &H233
  6250. Public Const WM_MDIREFRESHMENU = &H234
  6251.  
  6252.  
  6253. Public Const WM_CUT = &H300
  6254. Public Const WM_COPY = &H301
  6255. Public Const WM_PASTE = &H302
  6256. Public Const WM_CLEAR = &H303
  6257. Public Const WM_UNDO = &H304
  6258. Public Const WM_RENDERFORMAT = &H305
  6259. Public Const WM_RENDERALLFORMATS = &H306
  6260. Public Const WM_DESTROYCLIPBOARD = &H307
  6261. Public Const WM_DRAWCLIPBOARD = &H308
  6262. Public Const WM_PAINTCLIPBOARD = &H309
  6263. Public Const WM_VSCROLLCLIPBOARD = &H30A
  6264. Public Const WM_SIZECLIPBOARD = &H30B
  6265. Public Const WM_ASKCBFORMATNAME = &H30C
  6266. Public Const WM_CHANGECBCHAIN = &H30D
  6267. Public Const WM_HSCROLLCLIPBOARD = &H30E
  6268. Public Const WM_QUERYNEWPALETTE = &H30F
  6269. Public Const WM_PALETTEISCHANGING = &H310
  6270. Public Const WM_PALETTECHANGED = &H311
  6271. Public Const WM_HOTKEY = &H312
  6272.  
  6273. Public Const WM_PENWINFIRST = &H380
  6274. Public Const WM_PENWINLAST = &H38F
  6275.  
  6276. ' NOTE: All Message Numbers below 0x0400 are RESERVED.
  6277.  
  6278. ' Private Window Messages Start Here:
  6279. Public Const WM_USER = &H400
  6280.  
  6281. ' WM_SYNCTASK Commands
  6282. Public Const ST_BEGINSWP = 0
  6283. Public Const ST_ENDSWP = 1
  6284.  
  6285. ' WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
  6286. Public Const HTERROR = (-2)
  6287. Public Const HTTRANSPARENT = (-1)
  6288. Public Const HTNOWHERE = 0
  6289. Public Const HTCLIENT = 1
  6290. Public Const HTCAPTION = 2
  6291. Public Const HTSYSMENU = 3
  6292. Public Const HTGROWBOX = 4
  6293. Public Const HTSIZE = HTGROWBOX
  6294. Public Const HTMENU = 5
  6295. Public Const HTHSCROLL = 6
  6296. Public Const HTVSCROLL = 7
  6297. Public Const HTMINBUTTON = 8
  6298. Public Const HTMAXBUTTON = 9
  6299. Public Const HTLEFT = 10
  6300. Public Const HTRIGHT = 11
  6301. Public Const HTTOP = 12
  6302. Public Const HTTOPLEFT = 13
  6303. Public Const HTTOPRIGHT = 14
  6304. Public Const HTBOTTOM = 15
  6305. Public Const HTBOTTOMLEFT = 16
  6306. Public Const HTBOTTOMRIGHT = 17
  6307. Public Const HTBORDER = 18
  6308. Public Const HTREDUCE = HTMINBUTTON
  6309. Public Const HTZOOM = HTMAXBUTTON
  6310. Public Const HTSIZEFIRST = HTLEFT
  6311. Public Const HTSIZELAST = HTBOTTOMRIGHT
  6312.  
  6313. '  SendMessageTimeout values
  6314. Public Const SMTO_NORMAL = &H0
  6315. Public Const SMTO_BLOCK = &H1
  6316. Public Const SMTO_ABORTIFHUNG = &H2
  6317.  
  6318. ' WM_MOUSEACTIVATE Return Codes
  6319. Public Const MA_ACTIVATE = 1
  6320. Public Const MA_ACTIVATEANDEAT = 2
  6321. Public Const MA_NOACTIVATE = 3
  6322. Public Const MA_NOACTIVATEANDEAT = 4
  6323.  
  6324. Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long
  6325.  
  6326. ' WM_SIZE message wParam values
  6327. Public Const SIZE_RESTORED = 0
  6328. Public Const SIZE_MINIMIZED = 1
  6329. Public Const SIZE_MAXIMIZED = 2
  6330. Public Const SIZE_MAXSHOW = 3
  6331. Public Const SIZE_MAXHIDE = 4
  6332.  
  6333. ' Obsolete constant names
  6334. Public Const SIZENORMAL = SIZE_RESTORED
  6335. Public Const SIZEICONIC = SIZE_MINIMIZED
  6336. Public Const SIZEFULLSCREEN = SIZE_MAXIMIZED
  6337. Public Const SIZEZOOMSHOW = SIZE_MAXSHOW
  6338. Public Const SIZEZOOMHIDE = SIZE_MAXHIDE
  6339.  
  6340. ' WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
  6341. Type WINDOWPOS
  6342.         hwnd As Long
  6343.         hWndInsertAfter As Long
  6344.         x As Long
  6345.         y As Long
  6346.         cx As Long
  6347.         cy As Long
  6348.         flags As Long
  6349. End Type
  6350.  
  6351. ' WM_NCCALCSIZE return flags
  6352. Public Const WVR_ALIGNTOP = &H10
  6353. Public Const WVR_ALIGNLEFT = &H20
  6354. Public Const WVR_ALIGNBOTTOM = &H40
  6355. Public Const WVR_ALIGNRIGHT = &H80
  6356. Public Const WVR_HREDRAW = &H100
  6357. Public Const WVR_VREDRAW = &H200
  6358. Public Const WVR_REDRAW = (WVR_HREDRAW Or WVR_VREDRAW)
  6359. Public Const WVR_VALIDRECTS = &H400
  6360.  
  6361. ' Key State Masks for Mouse Messages
  6362. Public Const MK_LBUTTON = &H1
  6363. Public Const MK_RBUTTON = &H2
  6364. Public Const MK_SHIFT = &H4
  6365. Public Const MK_CONTROL = &H8
  6366. Public Const MK_MBUTTON = &H10
  6367.  
  6368. ' Window Styles
  6369. Public Const WS_OVERLAPPED = &H0&
  6370. Public Const WS_POPUP = &H80000000
  6371. Public Const WS_CHILD = &H40000000
  6372. Public Const WS_MINIMIZE = &H20000000
  6373. Public Const WS_VISIBLE = &H10000000
  6374. Public Const WS_DISABLED = &H8000000
  6375. Public Const WS_CLIPSIBLINGS = &H4000000
  6376. Public Const WS_CLIPCHILDREN = &H2000000
  6377. Public Const WS_MAXIMIZE = &H1000000
  6378. Public Const WS_CAPTION = &HC00000                  '  WS_BORDER Or WS_DLGFRAME
  6379. Public Const WS_BORDER = &H800000
  6380. Public Const WS_DLGFRAME = &H400000
  6381. Public Const WS_VSCROLL = &H200000
  6382. Public Const WS_HSCROLL = &H100000
  6383. Public Const WS_SYSMENU = &H80000
  6384. Public Const WS_THICKFRAME = &H40000
  6385. Public Const WS_GROUP = &H20000
  6386. Public Const WS_TABSTOP = &H10000
  6387.  
  6388. Public Const WS_MINIMIZEBOX = &H20000
  6389. Public Const WS_MAXIMIZEBOX = &H10000
  6390.  
  6391. Public Const WS_TILED = WS_OVERLAPPED
  6392. Public Const WS_ICONIC = WS_MINIMIZE
  6393. Public Const WS_SIZEBOX = WS_THICKFRAME
  6394. Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
  6395. Public Const WS_TILEDWINDOW = WS_OVERLAPPEDWINDOW
  6396.  
  6397. '
  6398. '   Common Window Styles
  6399. '  /
  6400.  
  6401.  
  6402. Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
  6403.  
  6404. Public Const WS_CHILDWINDOW = (WS_CHILD)
  6405.  
  6406. ' Extended Window Styles
  6407. Public Const WS_EX_DLGMODALFRAME = &H1&
  6408. Public Const WS_EX_NOPARENTNOTIFY = &H4&
  6409. Public Const WS_EX_TOPMOST = &H8&
  6410. Public Const WS_EX_ACCEPTFILES = &H10&
  6411. Public Const WS_EX_TRANSPARENT = &H20&
  6412.  
  6413. ' Class styles
  6414. Public Const CS_VREDRAW = &H1
  6415. Public Const CS_HREDRAW = &H2
  6416. Public Const CS_KEYCVTWINDOW = &H4
  6417. Public Const CS_DBLCLKS = &H8
  6418. Public Const CS_OWNDC = &H20
  6419. Public Const CS_CLASSDC = &H40
  6420. Public Const CS_PARENTDC = &H80
  6421. Public Const CS_NOKEYCVT = &H100
  6422. Public Const CS_NOCLOSE = &H200
  6423. Public Const CS_SAVEBITS = &H800
  6424. Public Const CS_BYTEALIGNCLIENT = &H1000
  6425. Public Const CS_BYTEALIGNWINDOW = &H2000
  6426. Public Const CS_PUBLICCLASS = &H4000
  6427.  
  6428. ' Predefined Clipboard Formats
  6429. Public Const CF_TEXT = 1
  6430. Public Const CF_BITMAP = 2
  6431. Public Const CF_METAFILEPICT = 3
  6432. Public Const CF_SYLK = 4
  6433. Public Const CF_DIF = 5
  6434. Public Const CF_TIFF = 6
  6435. Public Const CF_OEMTEXT = 7
  6436. Public Const CF_DIB = 8
  6437. Public Const CF_PALETTE = 9
  6438. Public Const CF_PENDATA = 10
  6439. Public Const CF_RIFF = 11
  6440. Public Const CF_WAVE = 12
  6441. Public Const CF_UNICODETEXT = 13
  6442. Public Const CF_ENHMETAFILE = 14
  6443.  
  6444. Public Const CF_OWNERDISPLAY = &H80
  6445. Public Const CF_DSPTEXT = &H81
  6446. Public Const CF_DSPBITMAP = &H82
  6447. Public Const CF_DSPMETAFILEPICT = &H83
  6448. Public Const CF_DSPENHMETAFILE = &H8E
  6449.  
  6450. ' "Private" formats don't get GlobalFree()'d
  6451. Public Const CF_PRIVATEFIRST = &H200
  6452. Public Const CF_PRIVATELAST = &H2FF
  6453.  
  6454. ' "GDIOBJ" formats do get DeleteObject()'d
  6455. Public Const CF_GDIOBJFIRST = &H300
  6456. Public Const CF_GDIOBJLAST = &H3FF
  6457.  
  6458. '  Defines for the fVirt field of the Accelerator table structure.
  6459. Public Const FVIRTKEY = True          '  Assumed to be == TRUE
  6460. Public Const FNOINVERT = &H2
  6461. Public Const FSHIFT = &H4
  6462. Public Const FCONTROL = &H8
  6463. Public Const FALT = &H10
  6464.  
  6465. Type ACCEL
  6466.         fVirt As Byte
  6467.         key As Integer
  6468.         cmd As Integer
  6469. End Type
  6470.  
  6471. Type PAINTSTRUCT
  6472.         hdc As Long
  6473.         fErase As Long
  6474.         rcPaint As Rect
  6475.         fRestore As Long
  6476.         fIncUpdate As Long
  6477.         rgbReserved As Byte
  6478. End Type
  6479.  
  6480. Type CREATESTRUCT
  6481.         lpCreateParams As Long
  6482.         hInstance As Long
  6483.         hMenu As Long
  6484.         hWndParent As Long
  6485.         cy As Long
  6486.         cx As Long
  6487.         y As Long
  6488.         x As Long
  6489.         style As Long
  6490.         lpszName As String
  6491.         lpszClass As String
  6492.         ExStyle As Long
  6493. End Type
  6494.  
  6495. ' HCBT_CREATEWND parameters pointed to by lParam
  6496. Type CBT_CREATEWND
  6497.         lpcs As CREATESTRUCT
  6498.         hWndInsertAfter As Long
  6499. End Type
  6500.  
  6501. Type WINDOWPLACEMENT
  6502.         Length As Long
  6503.         flags As Long
  6504.         showCmd As Long
  6505.         ptMinPosition As POINTAPI
  6506.         ptMaxPosition As POINTAPI
  6507.         rcNormalPosition As Rect
  6508. End Type
  6509.  
  6510. Public Const WPF_SETMINPOSITION = &H1
  6511. Public Const WPF_RESTORETOMAXIMIZED = &H2
  6512.  
  6513. ' Owner draw control types
  6514. Public Const ODT_MENU = 1
  6515. Public Const ODT_LISTBOX = 2
  6516. Public Const ODT_COMBOBOX = 3
  6517. Public Const ODT_BUTTON = 4
  6518.  
  6519. ' Owner draw actions
  6520. Public Const ODA_DRAWENTIRE = &H1
  6521. Public Const ODA_SELECT = &H2
  6522. Public Const ODA_FOCUS = &H4
  6523.  
  6524. ' Owner draw state
  6525. Public Const ODS_SELECTED = &H1
  6526. Public Const ODS_GRAYED = &H2
  6527. Public Const ODS_DISABLED = &H4
  6528. Public Const ODS_CHECKED = &H8
  6529. Public Const ODS_FOCUS = &H10
  6530.  
  6531. ' MEASUREITEMSTRUCT for ownerdraw
  6532. Type MEASUREITEMSTRUCT
  6533.         CtlType As Long
  6534.         CtlID As Long
  6535.         itemID As Long
  6536.         itemWidth As Long
  6537.         itemHeight As Long
  6538.         itemData As Long
  6539. End Type
  6540.  
  6541. ' DRAWITEMSTRUCT for ownerdraw
  6542. Type DRAWITEMSTRUCT
  6543.         CtlType As Long
  6544.         CtlID As Long
  6545.         itemID As Long
  6546.         itemAction As Long
  6547.         itemState As Long
  6548.         hwndItem As Long
  6549.         hdc As Long
  6550.         rcItem As Rect
  6551.         itemData As Long
  6552. End Type
  6553.  
  6554. ' DELETEITEMSTRUCT for ownerdraw
  6555. Type DELETEITEMSTRUCT
  6556.         CtlType As Long
  6557.         CtlID As Long
  6558.         itemID As Long
  6559.         hwndItem As Long
  6560.         itemData As Long
  6561. End Type
  6562.  
  6563. ' COMPAREITEMSTRUCT for ownerdraw sorting
  6564. Type COMPAREITEMSTRUCT
  6565.         CtlType As Long
  6566.         CtlID As Long
  6567.         hwndItem As Long
  6568.         itemID1 As Long
  6569.         itemData1 As Long
  6570.         itemID2 As Long
  6571.         itemData2 As Long
  6572. End Type
  6573.  
  6574. ' Message Function Templates
  6575. Declare Function GetMessage Lib "user32" Alias "GetMessageA" (lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
  6576. Declare Function TranslateMessage Lib "user32" Alias "TranslateMessage" (lpMsg As MSG) As Long
  6577. Declare Function DispatchMessage Lib "user32" Alias "DispatchMessageA" (lpMsg As MSG) As Long
  6578. 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
  6579.  
  6580. ' PeekMessage() Options
  6581. Public Const PM_NOREMOVE = &H0
  6582. Public Const PM_REMOVE = &H1
  6583. Public Const PM_NOYIELD = &H2
  6584.  
  6585. 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
  6586. Declare Function UnregisterHotKey Lib "user32" Alias "UnregisterHotKey" (ByVal hwnd As Long, ByVal id As Long) As Long
  6587.  
  6588. Public Const MOD_ALT = &H1
  6589. Public Const MOD_CONTROL = &H2
  6590. Public Const MOD_SHIFT = &H4
  6591.  
  6592. Public Const IDHOT_SNAPWINDOW = (-1)    '  SHIFT-PRINTSCRN
  6593. Public Const IDHOT_SNAPDESKTOP = (-2)    '  PRINTSCRN
  6594.  
  6595. Public Const EWX_LOGOFF = 0
  6596. Public Const EWX_SHUTDOWN = 1
  6597. Public Const EWX_REBOOT = 2
  6598. Public Const EWX_FORCE = 4
  6599.  
  6600. Public Const READAPI = 0        '  Flags for _lopen
  6601. Public Const WRITEAPI = 1
  6602. Public Const READ_WRITE = 2
  6603.  
  6604. Declare Function ExitWindows Lib "user32" Alias "ExitWindows" (ByVal dwReserved As Long, ByVal uReturnCode As Long) As Long
  6605. Declare Function ExitWindowsEx Lib "user32" Alias "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long
  6606.  
  6607. Declare Function SwapMouseButton Lib "user32" Alias "SwapMouseButton" (ByVal bSwap As Long) As Long
  6608. Declare Function GetMessagePos Lib "user32" Alias "GetMessagePos" () As Long
  6609. Declare Function GetMessageTime Lib "user32" Alias "GetMessageTime" () As Long
  6610. Declare Function GetMessageExtraInfo Lib "user32" Alias "GetMessageExtraInfo" () As Long
  6611. Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
  6612. 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
  6613. 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
  6614. 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
  6615. Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  6616. 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
  6617.  
  6618. ' Special HWND value for use with PostMessage and SendMessage
  6619. Public Const HWND_BROADCAST = &HFFFF&
  6620.  
  6621.  
  6622. Type WNDCLASS
  6623.     style As Long
  6624.     lpfnwndproc As Long
  6625.     cbClsextra As Long
  6626.     cbWndExtra2 As Long
  6627.     hInstance As Long
  6628.     hIcon As Long
  6629.     hCursor As Long
  6630.     hbrBackground As Long
  6631.     lpszMenuName As String
  6632.     lpszClassName As String
  6633. End Type
  6634.  
  6635. Declare Function AttachThreadInput Lib "user32" Alias "AttachThreadInput" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
  6636. Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lReply As Long) As Long
  6637. Declare Function WaitMessage Lib "user32" Alias "WaitMessage" () As Long
  6638. Declare Function WaitForInputIdle Lib "user32" Alias "WaitForInputIdle" (ByVal hProcess As Long, ByVal dwMilliseconds As Long) As Long
  6639. Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  6640. Declare Sub PostQuitMessage Lib "user32" Alias "PostQuitMessage" (ByVal nExitCode As Long)
  6641. Declare Function InSendMessage Lib "user32" Alias "InSendMessage" () As Long
  6642.  
  6643. Declare Function GetDoubleClickTime Lib "user32" Alias "GetDoubleClickTime" () As Long
  6644. Declare Function SetDoubleClickTime Lib "user32" Alias "SetDoubleClickTime" (ByVal wCount As Long) As Long
  6645. Declare Function RegisterClass Lib "user32" Alias "RegisterClass" (Class As WNDCLASS) As Long
  6646. Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long
  6647. Declare Function GetClassInfo Lib "user32" Alias "GetClassInfoA" (ByVal hInstance As Long, ByVal lpClassName As String, lpWndClass As WNDCLASS) As Long
  6648.  
  6649. Public Const CW_USEDEFAULT = &H80000000
  6650. Public Const HWND_DESKTOP = 0
  6651.  
  6652. 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
  6653. Declare Function IsWindow Lib "user32" Alias "IsWindow" (ByVal hwnd As Long) As Long
  6654. Declare Function IsMenu Lib "user32" Alias "IsMenu" (ByVal hMenu As Long) As Long
  6655. Declare Function IsChild Lib "user32" Alias "IsChild" (ByVal hWndParent As Long, ByVal hwnd As Long) As Long
  6656. Declare Function DestroyWindow Lib "user32" Alias "DestroyWindow" (ByVal hwnd As Long) As Long
  6657.  
  6658. Declare Function ShowWindow Lib "user32" Alias "ShowWindow" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  6659. Declare Function FlashWindow Lib "user32" Alias "FlashWindow" (ByVal hwnd As Long, ByVal bInvert As Long) As Long
  6660. Declare Function ShowOwnedPopups Lib "user32" Alias "ShowOwnedPopups" (ByVal hwnd As Long, ByVal fShow As Long) As Long
  6661.  
  6662. Declare Function OpenIcon Lib "user32" Alias "OpenIcon" (ByVal hwnd As Long) As Long
  6663. Declare Function CloseWindow Lib "user32" Alias "CloseWindow" (ByVal hwnd As Long) As Long
  6664. 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
  6665. 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
  6666. Declare Function GetWindowPlacement Lib "user32" Alias "GetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
  6667. Declare Function SetWindowPlacement Lib "user32" Alias "SetWindowPlacement" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
  6668.  
  6669. Declare Function BeginDeferWindowPos Lib "user32" Alias "BeginDeferWindowPos" (ByVal nNumWindows As Long) As Long
  6670. 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
  6671. Declare Function EndDeferWindowPos Lib "user32" Alias "EndDeferWindowPos" (ByVal hWinPosInfo As Long) As Long
  6672.  
  6673. Declare Function IsWindowVisible Lib "user32" Alias "IsWindowVisible" (ByVal hwnd As Long) As Long
  6674. Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long
  6675. Declare Function AnyPopup Lib "user32" Alias "AnyPopup" () As Long
  6676. Declare Function BringWindowToTop Lib "user32" Alias "BringWindowToTop" (ByVal hwnd As Long) As Long
  6677. Declare Function IsZoomed Lib "user32" Alias "IsZoomed" (ByVal hwnd As Long) As Long
  6678.  
  6679. ' SetWindowPos Flags
  6680. Public Const SWP_NOSIZE = &H1
  6681. Public Const SWP_NOMOVE = &H2
  6682. Public Const SWP_NOZORDER = &H4
  6683. Public Const SWP_NOREDRAW = &H8
  6684. Public Const SWP_NOACTIVATE = &H10
  6685. Public Const SWP_FRAMECHANGED = &H20        '  The frame changed: send WM_NCCALCSIZE
  6686. Public Const SWP_SHOWWINDOW = &H40
  6687. Public Const SWP_HIDEWINDOW = &H80
  6688. Public Const SWP_NOCOPYBITS = &H100
  6689. Public Const SWP_NOOWNERZORDER = &H200      '  Don't do owner Z ordering
  6690.  
  6691. Public Const SWP_DRAWFRAME = SWP_FRAMECHANGED
  6692. Public Const SWP_NOREPOSITION = SWP_NOOWNERZORDER
  6693.  
  6694. ' SetWindowPos() hwndInsertAfter values
  6695. Public Const HWND_TOP = 0
  6696. Public Const HWND_BOTTOM = 1
  6697. Public Const HWND_TOPMOST = -1
  6698. Public Const HWND_NOTOPMOST = -2
  6699.  
  6700. Type DLGTEMPLATE
  6701.         style As Long
  6702.         dwExtendedStyle As Long
  6703.         cdit As Integer
  6704.         x As Integer
  6705.         y As Integer
  6706.         cx As Integer
  6707.         cy As Integer
  6708. End Type
  6709.  
  6710. Type DLGITEMTEMPLATE
  6711.         style As Long
  6712.         dwExtendedStyle As Long
  6713.         x As Integer
  6714.         y As Integer
  6715.         cx As Integer
  6716.         cy As Integer
  6717.         id As Integer
  6718. End Type
  6719.  
  6720. Declare Function EndDialog Lib "user32" Alias "EndDialog" (ByVal hDlg As Long, ByVal nResult As Long) As Long
  6721. Declare Function GetDlgItem Lib "user32" Alias "GetDlgItem" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
  6722. 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
  6723. 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
  6724. Declare Function SetDlgItemText Lib "user32" Alias "SetDlgItemTextA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal lpString As String) As Long
  6725. 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
  6726. Declare Function CheckDlgButton Lib "user32" Alias "CheckDLGButtonA" (ByVal hDlg As Long, ByVal nIDButton As Long, ByVal wCheck As Long) As Long
  6727. Declare Function CheckRadioButton Lib "user32" Alias "CheckRadioButtonA" (ByVal hDlg As Long, ByVal nIDFirstButton As Long, ByVal nIDLastButton As Long, ByVal nIDCheckButton As Long) As Long
  6728. Declare Function IsDlgButtonChecked Lib "user32" Alias "IsDlgButtonChecked" (ByVal hDlg As Long, ByVal nIDButton As Long) As Long
  6729. 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
  6730. Declare Function GetNextDlgGroupItem Lib "user32" Alias "GetNextDlgGroupItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long
  6731. Declare Function GetNextDlgTabItem Lib "user32" Alias "GetNextDlgTabItem" (ByVal hDlg As Long, ByVal hCtl As Long, ByVal bPrevious As Long) As Long
  6732. Declare Function GetDlgCtrlID Lib "user32" Alias "GetDlgCtrlID" (ByVal hwnd As Long) As Long
  6733. Declare Function GetDialogBaseUnits Lib "user32" Alias "GetDialogBaseUnits" () As Long
  6734. 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
  6735.  
  6736. Public Const DLGWINDOWEXTRA = 30        '  Window extra bytes needed for private dialog classes
  6737.  
  6738. Declare Function CallMsgFilter Lib "user32" Alias "CallMsgFilterA" (lpMsg As MSG, ByVal ncode As Long) As Long
  6739.  
  6740. ' Clipboard Manager Functions
  6741. Declare Function OpenClipboard Lib "user32" Alias "OpenClipboard" (ByVal hwnd As Long) As Long
  6742. Declare Function CloseClipboard Lib "user32" Alias "CloseClipboard" () As Long
  6743. Declare Function GetClipboardOwner Lib "user32" Alias "GetClipboardOwner" () As Long
  6744. Declare Function SetClipboardViewer Lib "user32" Alias "SetClipboardViewer" (ByVal hwnd As Long) As Long
  6745. Declare Function GetClipboardViewer Lib "user32" Alias "GetClipboardViewer" () As Long
  6746. Declare Function ChangeClipboardChain Lib "user32" Alias "ChangeClipboardChain" (ByVal hwnd As Long, ByVal hWndNext As Long) As Long
  6747. Declare Function SetClipboardData Lib "user32" Alias "SetClipboardDataA" (ByVal wFormat As Long, ByVal hMem As Long) As Long
  6748. Declare Function GetClipboardData Lib "user32" Alias "GetClipboardDataA" (ByVal wFormat As Long) As Long
  6749. Declare Function RegisterClipboardFormat Lib "user32" Alias "RegisterClipboardFormatA" (ByVal lpString As String) As Long
  6750. Declare Function CountClipboardFormats Lib "user32" Alias "CountClipboardFormats" () As Long
  6751. Declare Function EnumClipboardFormats Lib "user32" Alias "EnumClipboardFormats" (ByVal wFormat As Long) As Long
  6752. Declare Function GetClipboardFormatName Lib "user32" Alias "GetClipboardFormatNameA" (ByVal wFormat As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
  6753. Declare Function EmptyClipboard Lib "user32" Alias "EmptyClipboard" () As Long
  6754. Declare Function IsClipboardFormatAvailable Lib "user32" Alias "IsClipboardFormatAvailable" (ByVal wFormat As Long) As Long
  6755. Declare Function GetPriorityClipboardFormat Lib "user32" Alias "GetPriorityClipboardFormat" (lpPriorityList As Long, ByVal nCount As Long) As Long
  6756. Declare Function GetOpenClipboardWindow Lib "user32" Alias "GetOpenClipboardWindow" () As Long
  6757. Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
  6758. Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
  6759. Declare Function CharToOemBuff Lib "user32" Alias "CharToOemBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
  6760. Declare Function OemToCharBuff Lib "user32" Alias "OemToCharBuffA" (ByVal lpszSrc As String, ByVal lpszDst As String, ByVal cchDstLength As Long) As Long
  6761. Declare Function CharUpper Lib "user32" Alias "CharUpperA" (ByVal lpsz As String) As String
  6762. Declare Function CharUpperBuff Lib "user32" Alias "CharUpperBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long
  6763. Declare Function CharLower Lib "user32" Alias "CharLowerA" (ByVal lpsz As String) As String
  6764. Declare Function CharLowerBuff Lib "user32" Alias "CharLowerBuffA" (ByVal lpsz As String, ByVal cchLength As Long) As Long
  6765. Declare Function CharNext Lib "user32" Alias "CharNextA" (ByVal lpsz As String) As String
  6766. Declare Function CharPrev Lib "user32" Alias "CharPrevA" (ByVal lpszStart As String, ByVal lpszCurrent As String) As String
  6767.  
  6768. ' Language dependent Routines
  6769. Declare Function IsCharAlpha Lib "user32" Alias "IsCharAlphaA" (ByVal cChar As Byte) As Long
  6770. Declare Function IsCharAlphaNumeric Lib "user32" Alias "IsCharAlphaNumericA" (ByVal cChar As Byte) As Long
  6771. Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long
  6772. Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long
  6773.  
  6774. Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
  6775. Declare Function GetFocus Lib "user32" Alias "GetFocus" () As Long
  6776. Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
  6777.  
  6778. ' Keyboard Information Routines
  6779. Declare Function GetKBCodePage Lib "user32" Alias "GetKBCodePage" () As Long
  6780. Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer
  6781. Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
  6782. Declare Function GetKeyboardState Lib "user32" Alias "GetKeyboardState" (pbKeyState As Byte) As Long
  6783. Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long
  6784. Declare Function GetKeyboardType Lib "user32" Alias "GetKeyboardType" (ByVal nTypeFlag As Long) As Long
  6785. Declare Function GetKeyNameText Lib "user32" Alias "GetKeyNameTextA" (ByVal lParam As Long, ByVal lpBuffer As String, ByVal nSize As Long) As Long
  6786.  
  6787. Declare Function ToAscii Lib "user32" Alias "ToAscii" (ByVal uVirtKey As Long, ByVal uScanCode As Long, lpbKeyState As Byte, lpwTransKey As Long, ByVal fuState As Long) As Long
  6788. 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
  6789.  
  6790. Declare Function OemKeyScan Lib "user32" Alias "OemKeyScan" (ByVal wOemChar As Long) As Long
  6791. Declare Function VkKeyScan Lib "user32" Alias "VkKeyScanA" (ByVal cChar As Byte) As Integer
  6792.  
  6793. Public Const KEYEVENTF_EXTENDEDKEY = &H1
  6794. Public Const KEYEVENTF_KEYUP = &H2
  6795.  
  6796. 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)
  6797.  
  6798. Public Const MOUSEEVENTF_MOVE = &H1 '  mouse move
  6799. Public Const MOUSEEVENTF_LEFTDOWN = &H2 '  left button down
  6800. Public Const MOUSEEVENTF_LEFTUP = &H4 '  left button up
  6801. Public Const MOUSEEVENTF_RIGHTDOWN = &H8 '  right button down
  6802. Public Const MOUSEEVENTF_RIGHTUP = &H10 '  right button up
  6803. Public Const MOUSEEVENTF_MIDDLEDOWN = &H20 '  middle button down
  6804. Public Const MOUSEEVENTF_MIDDLEUP = &H40 '  middle button up
  6805. Public Const MOUSEEVENTF_ABSOLUTE = &H8000 '  absolute move
  6806.  
  6807. 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)
  6808. Declare Function MapVirtualKey Lib "user32" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
  6809.  
  6810. Declare Function GetInputState Lib "user32" Alias "GetInputState" () As Long
  6811. Declare Function GetQueueStatus Lib "user32" Alias "GetQueueStatus" (ByVal fuFlags As Long) As Long
  6812. Declare Function GetCapture Lib "user32" Alias "GetCapture" () As Long
  6813. Declare Function SetCapture Lib "user32" Alias "SetCapture" (ByVal hwnd As Long) As Long
  6814. Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Long
  6815.  
  6816. 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
  6817.  
  6818. ' GetQueueStatus flags
  6819. Public Const QS_KEY = &H1
  6820. Public Const QS_MOUSEMOVE = &H2
  6821. Public Const QS_MOUSEBUTTON = &H4
  6822. Public Const QS_POSTMESSAGE = &H8
  6823. Public Const QS_TIMER = &H10
  6824. Public Const QS_PAINT = &H20
  6825. Public Const QS_SENDMESSAGE = &H40
  6826. Public Const QS_HOTKEY = &H80
  6827.  
  6828. Public Const QS_MOUSE = (QS_MOUSEMOVE Or QS_MOUSEBUTTON)
  6829.  
  6830. Public Const QS_INPUT = (QS_MOUSE Or QS_KEY)
  6831.  
  6832. Public Const QS_ALLEVENTS = (QS_INPUT Or QS_POSTMESSAGE Or QS_TIMER Or QS_PAINT Or QS_HOTKEY)
  6833.  
  6834. 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)
  6835.  
  6836. ' Windows Functions
  6837. Declare Function KillTimer Lib "user32" Alias "KillTimer" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  6838.  
  6839. Declare Function IsWindowUnicode Lib "user32" Alias "IsWindowUnicode" (ByVal hwnd As Long) As Long
  6840.  
  6841. Declare Function EnableWindow Lib "user32" Alias "EnableWindow" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
  6842. Declare Function IsWindowEnabled Lib "user32" Alias "IsWindowEnabled" (ByVal hwnd As Long) As Long
  6843.  
  6844. Declare Function LoadAccelerators Lib "user32" Alias "LoadAcceleratorsA" (ByVal hInstance As Long, ByVal lpTableName As String) As Long
  6845. Declare Function CreateAcceleratorTable Lib "user32" Alias "CreateAcceleratorTableA" (lpaccl As ACCEL, ByVal cEntries As Long) As Long
  6846. Declare Function DestroyAcceleratorTable Lib "user32" Alias "DestroyAcceleratorTable" (ByVal haccel As Long) As Long
  6847. Declare Function CopyAcceleratorTable Lib "user32" Alias "CopyAcceleratorTableA" (ByVal hAccelSrc As Long, lpAccelDst As ACCEL, ByVal cAccelEntries As Long) As Long
  6848. Declare Function TranslateAccelerator Lib "user32" Alias "TranslateAcceleratorA" (ByVal hwnd As Long, ByVal hAccTable As Long, lpMsg As MSG) As Long
  6849.  
  6850. ' GetSystemMetrics() codes
  6851. Public Const SM_CXSCREEN = 0
  6852. Public Const SM_CYSCREEN = 1
  6853. Public Const SM_CXVSCROLL = 2
  6854. Public Const SM_CYHSCROLL = 3
  6855. Public Const SM_CYCAPTION = 4
  6856. Public Const SM_CXBORDER = 5
  6857. Public Const SM_CYBORDER = 6
  6858. Public Const SM_CXDLGFRAME = 7
  6859. Public Const SM_CYDLGFRAME = 8
  6860. Public Const SM_CYVTHUMB = 9
  6861. Public Const SM_CXHTHUMB = 10
  6862. Public Const SM_CXICON = 11
  6863. Public Const SM_CYICON = 12
  6864. Public Const SM_CXCURSOR = 13
  6865. Public Const SM_CYCURSOR = 14
  6866. Public Const SM_CYMENU = 15
  6867. Public Const SM_CXFULLSCREEN = 16
  6868. Public Const SM_CYFULLSCREEN = 17
  6869. Public Const SM_CYKANJIWINDOW = 18
  6870. Public Const SM_MOUSEPRESENT = 19
  6871. Public Const SM_CYVSCROLL = 20
  6872. Public Const SM_CXHSCROLL = 21
  6873. Public Const SM_DEBUG = 22
  6874. Public Const SM_SWAPBUTTON = 23
  6875. Public Const SM_RESERVED1 = 24
  6876. Public Const SM_RESERVED2 = 25
  6877. Public Const SM_RESERVED3 = 26
  6878. Public Const SM_RESERVED4 = 27
  6879. Public Const SM_CXMIN = 28
  6880. Public Const SM_CYMIN = 29
  6881. Public Const SM_CXSIZE = 30
  6882. Public Const SM_CYSIZE = 31
  6883. Public Const SM_CXFRAME = 32
  6884. Public Const SM_CYFRAME = 33
  6885. Public Const SM_CXMINTRACK = 34
  6886. Public Const SM_CYMINTRACK = 35
  6887. Public Const SM_CXDOUBLECLK = 36
  6888. Public Const SM_CYDOUBLECLK = 37
  6889. Public Const SM_CXICONSPACING = 38
  6890. Public Const SM_CYICONSPACING = 39
  6891. Public Const SM_MENUDROPALIGNMENT = 40
  6892. Public Const SM_PENWINDOWS = 41
  6893. Public Const SM_DBCSENABLED = 42
  6894. Public Const SM_CMOUSEBUTTONS = 43
  6895. Public Const SM_CMETRICS = 44
  6896. Public Const SM_CXSIZEFRAME = SM_CXFRAME
  6897. Public Const SM_CYSIZEFRAME = SM_CYFRAME
  6898. Public Const SM_CXFIXEDFRAME = SM_CXDLGFRAME 
  6899. Public Const SM_CYFIXEDFRAME = SM_CYDLGFRAME 
  6900.  
  6901. Declare Function GetSystemMetrics Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
  6902.  
  6903. Declare Function LoadMenu Lib "user32" Alias "LoadMenuA" (ByVal hInstance As Long, ByVal lpString As String) As Long
  6904. Declare Function LoadMenuIndirect Lib "user32" Alias "LoadMenuIndirectA" (ByVal lpMenuTemplate As Long) As Long
  6905. Declare Function GetMenu Lib "user32" Alias "GetMenu" (ByVal hwnd As Long) As Long
  6906. Declare Function SetMenu Lib "user32" Alias "SetMenu" (ByVal hwnd As Long, ByVal hMenu As Long) As Long
  6907. 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
  6908. 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
  6909. Declare Function GetMenuState Lib "user32" Alias "GetMenuState" (ByVal hMenu As Long, ByVal wID As Long, ByVal wFlags As Long) As Long
  6910. Declare Function DrawMenuBar Lib "user32" Alias "DrawMenuBar" (ByVal hwnd As Long) As Long
  6911. Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
  6912. Declare Function CreateMenu Lib "user32" Alias "CreateMenu" () As Long
  6913. Declare Function CreatePopupMenu Lib "user32" Alias "CreatePopupMenu" () As Long
  6914. Declare Function DestroyMenu Lib "user32" Alias "DestroyMenu" (ByVal hMenu As Long) As Long
  6915. Declare Function CheckMenuItem Lib "user32" Alias "CheckMenuItem" (ByVal hMenu As Long, ByVal wIDCheckItem As Long, ByVal wCheck As Long) As Long
  6916. Declare Function EnableMenuItem Lib "user32" Alias "EnableMenuItem" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
  6917. Declare Function GetSubMenu Lib "user32" Alias "GetSubMenu" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  6918. Declare Function GetMenuItemID Lib "user32" Alias "GetMenuItemID" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  6919. Declare Function GetMenuItemCount Lib "user32" Alias "GetMenuItemCount" (ByVal hMenu As Long) As Long
  6920.  
  6921. 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 Any) As Long
  6922. Declare Function AppendMenu Lib "user32" Alias "AppendMenuA" (ByVal hMenu As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpNewItem As Any) As Long
  6923. 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 Any) As Long
  6924. Declare Function RemoveMenu Lib "user32" Alias "RemoveMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
  6925. Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
  6926. 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
  6927. Declare Function GetMenuCheckMarkDimensions Lib "user32" Alias "GetMenuCheckMarkDimensions" () As Long
  6928. 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
  6929.  
  6930. ' Flags for TrackPopupMenu
  6931. Public Const TPM_LEFTBUTTON = &H0&
  6932. Public Const TPM_RIGHTBUTTON = &H2&
  6933. Public Const TPM_LEFTALIGN = &H0&
  6934. Public Const TPM_CENTERALIGN = &H4&
  6935. Public Const TPM_RIGHTALIGN = &H8&
  6936.  
  6937. 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
  6938.  
  6939. ' DrawText() Format Flags
  6940. Public Const DT_TOP = &H0
  6941. Public Const DT_LEFT = &H0
  6942. Public Const DT_CENTER = &H1
  6943. Public Const DT_RIGHT = &H2
  6944. Public Const DT_VCENTER = &H4
  6945. Public Const DT_BOTTOM = &H8
  6946. Public Const DT_WORDBREAK = &H10
  6947. Public Const DT_SINGLELINE = &H20
  6948. Public Const DT_EXPANDTABS = &H40
  6949. Public Const DT_TABSTOP = &H80
  6950. Public Const DT_NOCLIP = &H100
  6951. Public Const DT_EXTERNALLEADING = &H200
  6952. Public Const DT_CALCRECT = &H400
  6953. Public Const DT_NOPREFIX = &H800
  6954. Public Const DT_INTERNAL = &H1000
  6955.  
  6956. 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
  6957. 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
  6958. 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
  6959.  
  6960. Declare Function UpdateWindow Lib "user32" Alias "UpdateWindow" (ByVal hwnd As Long) As Long
  6961. Declare Function SetActiveWindow Lib "user32" Alias "SetActiveWindow" (ByVal hwnd As Long) As Long
  6962. Declare Function GetForegroundWindow Lib "user32" Alias "GetForegroundWindow" () As Long
  6963. Declare Function SetForegroundWindow Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long
  6964. Declare Function WindowFromDC Lib "user32" Alias "WindowFromDC" (ByVal hdc As Long) As Long
  6965.  
  6966. Declare Function GetDC Lib "user32" Alias "GetDC" (ByVal hwnd As Long) As Long
  6967. Declare Function GetDCEx Lib "user32" Alias "GetDCEx" (ByVal hwnd As Long, ByVal hrgnclip As Long, ByVal fdwOptions As Long) As Long
  6968.  
  6969. Public Const DCX_WINDOW = &H1&
  6970. Public Const DCX_CACHE = &H2&
  6971. Public Const DCX_NORESETATTRS = &H4&
  6972. Public Const DCX_CLIPCHILDREN = &H8&
  6973. Public Const DCX_CLIPSIBLINGS = &H10&
  6974. Public Const DCX_PARENTCLIP = &H20&
  6975.  
  6976. Public Const DCX_EXCLUDERGN = &H40&
  6977. Public Const DCX_INTERSECTRGN = &H80&
  6978.  
  6979. Public Const DCX_EXCLUDEUPDATE = &H100&
  6980. Public Const DCX_INTERSECTUPDATE = &H200&
  6981.  
  6982. Public Const DCX_LOCKWINDOWUPDATE = &H400&
  6983.  
  6984. Public Const DCX_NORECOMPUTE = &H100000
  6985. Public Const DCX_VALIDATE = &H200000
  6986.  
  6987. Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Long) As Long
  6988. Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Long, ByVal hdc As Long) As Long
  6989.  
  6990. Declare Function BeginPaint Lib "user32" Alias "BeginPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long
  6991. Declare Function EndPaint Lib "user32" Alias "EndPaint" (ByVal hwnd As Long, lpPaint As PAINTSTRUCT) As Long
  6992. Declare Function GetUpdateRect Lib "user32" Alias "GetUpdateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
  6993. Declare Function GetUpdateRgn Lib "user32" Alias "GetUpdateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal fErase As Long) As Long
  6994. Declare Function ExcludeUpdateRgn Lib "user32" Alias "ExcludeUpdateRgn" (ByVal hdc As Long, ByVal hwnd As Long) As Long
  6995. Declare Function InvalidateRect Lib "user32" Alias "InvalidateRect" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
  6996. Declare Function ValidateRect Lib "user32" Alias "ValidateRect" (ByVal hwnd As Long, lpRect As RECT) As Long
  6997. Declare Function InvalidateRgn Lib "user32" Alias "InvalidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bErase As Long) As Long
  6998. Declare Function ValidateRgn Lib "user32" Alias "ValidateRgn" (ByVal hwnd As Long, ByVal hRgn As Long) As Long
  6999.  
  7000. Declare Function RedrawWindow Lib "user32" Alias "RedrawWindow" (ByVal hwnd As Long, lprcUpdate As RECT, ByVal hrgnUpdate As Long, ByVal fuRedraw As Long) As Long
  7001.  
  7002. Public Const RDW_INVALIDATE = &H1
  7003. Public Const RDW_INTERNALPAINT = &H2
  7004. Public Const RDW_ERASE = &H4
  7005.  
  7006. Public Const RDW_VALIDATE = &H8
  7007. Public Const RDW_NOINTERNALPAINT = &H10
  7008. Public Const RDW_NOERASE = &H20
  7009.  
  7010. Public Const RDW_NOCHILDREN = &H40
  7011. Public Const RDW_ALLCHILDREN = &H80
  7012.  
  7013. Public Const RDW_UPDATENOW = &H100
  7014. Public Const RDW_ERASENOW = &H200
  7015.  
  7016. Public Const RDW_FRAME = &H400
  7017. Public Const RDW_NOFRAME = &H800
  7018.  
  7019. Declare Function LockWindowUpdate Lib "user32" Alias "LockWindowUpdate" (ByVal hwndLock As Long) As Long
  7020.  
  7021. 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
  7022. 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
  7023. 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
  7024.  
  7025. Public Const SW_SCROLLCHILDREN = &H1
  7026. Public Const SW_INVALIDATE = &H2
  7027. Public Const SW_ERASE = &H4
  7028.  
  7029. 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
  7030. Declare Function GetScrollPos Lib "user32" Alias "GetScrollPos" (ByVal hwnd As Long, ByVal nBar As Long) As Long
  7031. 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
  7032. Declare Function GetScrollRange Lib "user32" Alias "GetScrollRange" (ByVal hwnd As Long, ByVal nBar As Long, lpMinPos As Long, lpMaxPos As Long) As Long
  7033. Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
  7034. Declare Function EnableScrollBar Lib "user32" Alias "EnableScrollBar" (ByVal hwnd As Long, ByVal wSBflags As Long, ByVal wArrows As Long) As Long
  7035.  
  7036. ' EnableScrollBar() flags
  7037. Public Const ESB_ENABLE_BOTH = &H0
  7038. Public Const ESB_DISABLE_BOTH = &H3
  7039.  
  7040. Public Const ESB_DISABLE_LEFT = &H1
  7041. Public Const ESB_DISABLE_RIGHT = &H2
  7042.  
  7043. Public Const ESB_DISABLE_UP = &H1
  7044. Public Const ESB_DISABLE_DOWN = &H2
  7045.  
  7046. Public Const ESB_DISABLE_LTUP = ESB_DISABLE_LEFT
  7047. Public Const ESB_DISABLE_RTDN = ESB_DISABLE_RIGHT
  7048.  
  7049. Declare Function SetProp Lib "user32" Alias "SetPropA" (ByVal hwnd As Long, ByVal lpString As String, ByVal hData As Long) As Long
  7050. Declare Function GetProp Lib "user32" Alias "GetPropA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  7051. Declare Function RemoveProp Lib "user32" Alias "RemovePropA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  7052.  
  7053. Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  7054. Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
  7055. Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
  7056.  
  7057. Declare Function GetClientRect Lib "user32" Alias "GetClientRect" (ByVal hwnd As Long, lpRect As RECT) As Long
  7058. Declare Function GetWindowRect Lib "user32" Alias "GetWindowRect" (ByVal hwnd As Long, lpRect As RECT) As Long
  7059. Declare Function AdjustWindowRect Lib "user32" Alias "AdjustWindowRect" (lpRect As RECT, ByVal dwStyle As Long, ByVal bMenu As Long) As Long
  7060. Declare Function AdjustWindowRectEx Lib "user32" Alias "AdjustWindowRectEx" (lpRect As RECT, ByVal dsStyle As Long, ByVal bMenu As Long, ByVal dwEsStyle As Long) As Long
  7061.  
  7062. ' MessageBox() Flags
  7063. Public Const MB_OK = &H0&
  7064. Public Const MB_OKCANCEL = &H1&
  7065. Public Const MB_ABORTRETRYIGNORE = &H2&
  7066. Public Const MB_YESNOCANCEL = &H3&
  7067. Public Const MB_YESNO = &H4&
  7068. Public Const MB_RETRYCANCEL = &H5&
  7069.  
  7070. Public Const MB_ICONHAND = &H10&
  7071. Public Const MB_ICONQUESTION = &H20&
  7072. Public Const MB_ICONEXCLAMATION = &H30&
  7073. Public Const MB_ICONASTERISK = &H40&
  7074.  
  7075. Public Const MB_ICONINFORMATION = MB_ICONASTERISK
  7076. Public Const MB_ICONSTOP = MB_ICONHAND
  7077.  
  7078. Public Const MB_DEFBUTTON1 = &H0&
  7079. Public Const MB_DEFBUTTON2 = &H100&
  7080. Public Const MB_DEFBUTTON3 = &H200&
  7081.  
  7082. Public Const MB_APPLMODAL = &H0&
  7083. Public Const MB_SYSTEMMODAL = &H1000&
  7084. Public Const MB_TASKMODAL = &H2000&
  7085.  
  7086. Public Const MB_NOFOCUS = &H8000&
  7087. Public Const MB_SETFOREGROUND = &H10000
  7088. Public Const MB_DEFAULT_DESKTOP_ONLY = &H20000
  7089.  
  7090. Public Const MB_TYPEMASK = &HF&
  7091. Public Const MB_ICONMASK = &HF0&
  7092. Public Const MB_DEFMASK = &HF00&
  7093. Public Const MB_MODEMASK = &H3000&
  7094. Public Const MB_MISCMASK = &HC000&
  7095.  
  7096. 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
  7097. 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
  7098. Declare Function MessageBeep Lib "user32" Alias "MessageBeep" (ByVal wType As Long) As Long
  7099.  
  7100. Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long
  7101. Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long
  7102. Declare Function SetCursor Lib "user32" Alias "SetCursor" (ByVal hCursor As Long) As Long
  7103. Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
  7104. Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long
  7105. Declare Function GetCursor Lib "user32" Alias "GetCursor" () As Long
  7106. Declare Function GetClipCursor Lib "user32" Alias "GetClipCursor" (lprc As RECT) As Long
  7107.  
  7108. 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
  7109. Declare Function GetCaretBlinkTime Lib "user32" Alias "GetCaretBlinkTime" () As Long
  7110. Declare Function SetCaretBlinkTime Lib "user32" Alias "SetCaretBlinkTime" (ByVal wMSeconds As Long) As Long
  7111. Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long
  7112. Declare Function HideCaret Lib "user32" Alias "HideCaret" (ByVal hwnd As Long) As Long
  7113. Declare Function ShowCaret Lib "user32" Alias "ShowCaret" (ByVal hwnd As Long) As Long
  7114. Declare Function SetCaretPos Lib "user32" Alias "SetCaretPos" (ByVal x As Long, ByVal y As Long) As Long
  7115. Declare Function GetCaretPos Lib "user32" Alias "GetCaretPos" (lpPoint As POINTAPI) As Long
  7116.  
  7117. Declare Function ClientToScreen Lib "user32" Alias "ClientToScreen" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
  7118. Declare Function ScreenToClient Lib "user32" Alias "ScreenToClient" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
  7119.  
  7120. Declare Function MapWindowPoints Lib "user32" Alias "MapWindowPoints" (ByVal hwndFrom As Long, ByVal hwndTo As Long, lppt As Any, ByVal cPoints As Long) As Long
  7121. Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
  7122. Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWnd As Long, ByVal xPoint As Long, ByVal yPoint As Long) As Long
  7123.  
  7124. ' Color Types
  7125. Public Const CTLCOLOR_MSGBOX = 0
  7126. Public Const CTLCOLOR_EDIT = 1
  7127. Public Const CTLCOLOR_LISTBOX = 2
  7128. Public Const CTLCOLOR_BTN = 3
  7129. Public Const CTLCOLOR_DLG = 4
  7130. Public Const CTLCOLOR_SCROLLBAR = 5
  7131. Public Const CTLCOLOR_STATIC = 6
  7132. Public Const CTLCOLOR_MAX = 8   '  three bits max
  7133.  
  7134. Public Const COLOR_SCROLLBAR = 0
  7135. Public Const COLOR_BACKGROUND = 1
  7136. Public Const COLOR_ACTIVECAPTION = 2
  7137. Public Const COLOR_INACTIVECAPTION = 3
  7138. Public Const COLOR_MENU = 4
  7139. Public Const COLOR_WINDOW = 5
  7140. Public Const COLOR_WINDOWFRAME = 6
  7141. Public Const COLOR_MENUTEXT = 7
  7142. Public Const COLOR_WINDOWTEXT = 8
  7143. Public Const COLOR_CAPTIONTEXT = 9
  7144. Public Const COLOR_ACTIVEBORDER = 10
  7145. Public Const COLOR_INACTIVEBORDER = 11
  7146. Public Const COLOR_APPWORKSPACE = 12
  7147. Public Const COLOR_HIGHLIGHT = 13
  7148. Public Const COLOR_HIGHLIGHTTEXT = 14
  7149. Public Const COLOR_BTNFACE = 15
  7150. Public Const COLOR_BTNSHADOW = 16
  7151. Public Const COLOR_GRAYTEXT = 17
  7152. Public Const COLOR_BTNTEXT = 18
  7153. Public Const COLOR_INACTIVECAPTIONTEXT = 19
  7154. Public Const COLOR_BTNHIGHLIGHT = 20
  7155.  
  7156. Declare Function GetSysColor Lib "user32" Alias "GetSysColor" (ByVal nIndex As Long) As Long
  7157. Declare Function SetSysColors Lib "user32" Alias "SetSysColors" (ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long
  7158.  
  7159. Declare Function DrawFocusRect Lib "user32" Alias "DrawFocusRect" (ByVal hdc As Long, lpRect As RECT) As Long
  7160. Declare Function FillRect Lib "user32" Alias "FillRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  7161. Declare Function FrameRect Lib "user32" Alias "FrameRect" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long
  7162. Declare Function InvertRect Lib "user32" Alias "InvertRect" (ByVal hdc As Long, lpRect As RECT) As Long
  7163. 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
  7164. Declare Function SetRectEmpty Lib "user32" Alias "SetRectEmpty" (lpRect As RECT) As Long
  7165. Declare Function CopyRect Lib "user32" Alias "CopyRect" (lpDestRect As RECT, lpSourceRect As RECT) As Long
  7166. Declare Function InflateRect Lib "user32" Alias "InflateRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
  7167. Declare Function IntersectRect Lib "user32" Alias "IntersectRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long
  7168. Declare Function UnionRect Lib "user32" Alias "UnionRect" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long
  7169. Declare Function SubtractRect Lib "user32" Alias "SubtractRect" (lprcDst As RECT, lprcSrc1 As RECT, lprcSrc2 As RECT) As Long
  7170. Declare Function OffsetRect Lib "user32" Alias "OffsetRect" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long
  7171. Declare Function IsRectEmpty Lib "user32" Alias "IsRectEmpty" (lpRect As RECT) As Long
  7172. Declare Function EqualRect Lib "user32" Alias "EqualRect" (lpRect1 As RECT, lpRect2 As RECT) As Long
  7173. Declare Function PtInRect Lib "user32" Alias "PtInRect" (lpRect As RECT, pt As POINTAPI) As Long
  7174.  
  7175. Declare Function GetWindowWord Lib "user32" Alias "GetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Integer
  7176. Declare Function SetWindowWord Lib "user32" Alias "SetWindowWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long
  7177. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  7178. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  7179. Declare Function GetClassWord Lib "user32" Alias "GetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  7180. Declare Function SetClassWord Lib "user32" Alias "SetClassWord" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal wNewWord As Long) As Long
  7181. Declare Function GetClassLong Lib "user32" Alias "GetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  7182. Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  7183. Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
  7184.  
  7185. Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
  7186. Declare Function SetParent Lib "user32" Alias "SetParent" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
  7187. Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  7188.  
  7189. Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
  7190. Declare Function GetTopWindow Lib "user32" Alias "GetTopWindow" (ByVal hwnd As Long) As Long
  7191. Declare Function GetNextWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wFlag As Long) As Long
  7192.  
  7193. Declare Function GetWindowThreadProcessId Lib "user32" Alias "GetWindowThreadProcessId" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
  7194.  
  7195. Declare Function GetLastActivePopup Lib "user32" Alias "GetLastActivePopup" (ByVal hwndOwnder As Long) As Long
  7196.  
  7197. ' GetWindow() Constants
  7198. Public Const GW_HWNDFIRST = 0
  7199. Public Const GW_HWNDLAST = 1
  7200. Public Const GW_HWNDNEXT = 2
  7201. Public Const GW_HWNDPREV = 3
  7202. Public Const GW_OWNER = 4
  7203. Public Const GW_CHILD = 5
  7204. Public Const GW_MAX = 5
  7205.  
  7206. Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  7207. Declare Function UnhookWindowsHookEx Lib "user32" Alias "UnhookWindowsHookEx" (ByVal hHook As Long) As Long
  7208. Declare Function CallNextHookEx Lib "user32" Alias "CallNextHookEx" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
  7209.  
  7210. ' Menu flags for Add/Check/EnableMenuItem()
  7211. Public Const MF_INSERT = &H0&
  7212. Public Const MF_CHANGE = &H80&
  7213. Public Const MF_APPEND = &H100&
  7214. Public Const MF_DELETE = &H200&
  7215. Public Const MF_REMOVE = &H1000&
  7216.  
  7217. Public Const MF_BYCOMMAND = &H0&
  7218. Public Const MF_BYPOSITION = &H400&
  7219.  
  7220. Public Const MF_SEPARATOR = &H800&
  7221.  
  7222. Public Const MF_ENABLED = &H0&
  7223. Public Const MF_GRAYED = &H1&
  7224. Public Const MF_DISABLED = &H2&
  7225.  
  7226. Public Const MF_UNCHECKED = &H0&
  7227. Public Const MF_CHECKED = &H8&
  7228. Public Const MF_USECHECKBITMAPS = &H200&
  7229.  
  7230. Public Const MF_STRING = &H0&
  7231. Public Const MF_BITMAP = &H4&
  7232. Public Const MF_OWNERDRAW = &H100&
  7233.  
  7234. Public Const MF_POPUP = &H10&
  7235. Public Const MF_MENUBARBREAK = &H20&
  7236. Public Const MF_MENUBREAK = &H40&
  7237.  
  7238. Public Const MF_UNHILITE = &H0&
  7239. Public Const MF_HILITE = &H80&
  7240.  
  7241. Public Const MF_SYSMENU = &H2000&
  7242. Public Const MF_HELP = &H4000&
  7243. Public Const MF_MOUSESELECT = &H8000&
  7244.  
  7245. ' Menu item resource format
  7246. Type MENUITEMTEMPLATEHEADER
  7247.         versionNumber As Integer
  7248.         offset As Integer
  7249. End Type
  7250.  
  7251. Type MENUITEMTEMPLATE
  7252.         mtOption As Integer
  7253.         mtID As Integer
  7254.         mtString As Byte
  7255. End Type
  7256.  
  7257. Public Const MF_END = &H80
  7258.  
  7259. ' System Menu Command Values
  7260. Public Const SC_SIZE = &HF000
  7261. Public Const SC_MOVE = &HF010
  7262. Public Const SC_MINIMIZE = &HF020
  7263. Public Const SC_MAXIMIZE = &HF030
  7264. Public Const SC_NEXTWINDOW = &HF040
  7265. Public Const SC_PREVWINDOW = &HF050
  7266. Public Const SC_CLOSE = &HF060
  7267. Public Const SC_VSCROLL = &HF070
  7268. Public Const SC_HSCROLL = &HF080
  7269. Public Const SC_MOUSEMENU = &HF090
  7270. Public Const SC_KEYMENU = &HF100
  7271. Public Const SC_ARRANGE = &HF110
  7272. Public Const SC_RESTORE = &HF120
  7273. Public Const SC_TASKLIST = &HF130
  7274. Public Const SC_SCREENSAVE = &HF140
  7275. Public Const SC_HOTKEY = &HF150
  7276.  
  7277. ' Obsolete names
  7278. Public Const SC_ICON = SC_MINIMIZE
  7279. Public Const SC_ZOOM = SC_MAXIMIZE
  7280.  
  7281. ' Resource Loading Routines
  7282. Declare Function LoadBitmap Lib "user32" Alias "LoadBitmapA" (ByVal hInstance As Long, ByVal lpBitmapName As String) As Long
  7283. Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As String) As Long
  7284. 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
  7285. Declare Function DestroyCursor Lib "user32" Alias "DestroyCursor" (ByVal hCursor As Long) As Long
  7286. Declare Function CopyCursor Lib "user32" Alias "CopyCursor" (ByVal hcur As Long) As Long
  7287.  
  7288. ' Standard Cursor IDs
  7289. Public Const IDC_ARROW = 32512&
  7290. Public Const IDC_IBEAM = 32513&
  7291. Public Const IDC_WAIT = 32514&
  7292. Public Const IDC_CROSS = 32515&
  7293. Public Const IDC_UPARROW = 32516&
  7294. Public Const IDC_SIZE = 32640&
  7295. Public Const IDC_ICON = 32641&
  7296. Public Const IDC_SIZENWSE = 32642&
  7297. Public Const IDC_SIZENESW = 32643&
  7298. Public Const IDC_SIZEWE = 32644&
  7299. Public Const IDC_SIZENS = 32645&
  7300. Public Const IDC_SIZEALL = 32646&
  7301. Public Const IDC_NO = 32648&
  7302. Public Const IDC_APPSTARTING = 32650&
  7303.  
  7304. Type ICONINFO
  7305.         fIcon As Long
  7306.         xHotspot As Long
  7307.         yHotspot As Long
  7308.         hbmMask As Long
  7309.         hbmColor As Long
  7310. End Type
  7311.  
  7312. Declare Function LoadIcon Lib "user32" Alias "LoadIconA" (ByVal hInstance As Long, ByVal lpIconName As String) As Long
  7313. 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
  7314. Declare Function DestroyIcon Lib "user32" Alias "DestroyIcon" (ByVal hIcon As Long) As Long
  7315. Declare Function LookupIconIdFromDirectory Lib "user32" Alias "LookupIconIdFromDirectory" (presbits As Byte, ByVal fIcon As Long) As Long
  7316. Declare Function CreateIconFromResource Lib "user32" Alias "CreateIconFromResource" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Long, ByVal dwVer As Long) As Long
  7317. Declare Function CreateIconIndirect Lib "user32" Alias "CreateIconIndirect" (piconinfo As ICONINFO) As Long
  7318. Declare Function CopyIcon Lib "user32" Alias "CopyIcon" (ByVal hIcon As Long) As Long
  7319. Declare Function GetIconInfo Lib "user32" Alias "GetIconInfo" (ByVal hIcon As Long, piconinfo As ICONINFO) As Long
  7320.  
  7321. ' OEM Resource Ordinal Numbers
  7322. Public Const OBM_CLOSE = 32754
  7323. Public Const OBM_UPARROW = 32753
  7324. Public Const OBM_DNARROW = 32752
  7325. Public Const OBM_RGARROW = 32751
  7326. Public Const OBM_LFARROW = 32750
  7327. Public Const OBM_REDUCE = 32749
  7328. Public Const OBM_ZOOM = 32748
  7329. Public Const OBM_RESTORE = 32747
  7330. Public Const OBM_REDUCED = 32746
  7331. Public Const OBM_ZOOMD = 32745
  7332. Public Const OBM_RESTORED = 32744
  7333. Public Const OBM_UPARROWD = 32743
  7334. Public Const OBM_DNARROWD = 32742
  7335. Public Const OBM_RGARROWD = 32741
  7336. Public Const OBM_LFARROWD = 32740
  7337. Public Const OBM_MNARROW = 32739
  7338. Public Const OBM_COMBO = 32738
  7339. Public Const OBM_UPARROWI = 32737
  7340. Public Const OBM_DNARROWI = 32736
  7341. Public Const OBM_RGARROWI = 32735
  7342. Public Const OBM_LFARROWI = 32734
  7343.  
  7344. Public Const OBM_OLD_CLOSE = 32767
  7345. Public Const OBM_SIZE = 32766
  7346. Public Const OBM_OLD_UPARROW = 32765
  7347. Public Const OBM_OLD_DNARROW = 32764
  7348. Public Const OBM_OLD_RGARROW = 32763
  7349. Public Const OBM_OLD_LFARROW = 32762
  7350. Public Const OBM_BTSIZE = 32761
  7351. Public Const OBM_CHECK = 32760
  7352. Public Const OBM_CHECKBOXES = 32759
  7353. Public Const OBM_BTNCORNERS = 32758
  7354. Public Const OBM_OLD_REDUCE = 32757
  7355. Public Const OBM_OLD_ZOOM = 32756
  7356. Public Const OBM_OLD_RESTORE = 32755
  7357.  
  7358. Public Const OCR_NORMAL = 32512
  7359. Public Const OCR_IBEAM = 32513
  7360. Public Const OCR_WAIT = 32514
  7361. Public Const OCR_CROSS = 32515
  7362. Public Const OCR_UP = 32516
  7363. Public Const OCR_SIZE = 32640
  7364. Public Const OCR_ICON = 32641
  7365. Public Const OCR_SIZENWSE = 32642
  7366. Public Const OCR_SIZENESW = 32643
  7367. Public Const OCR_SIZEWE = 32644
  7368. Public Const OCR_SIZENS = 32645
  7369. Public Const OCR_SIZEALL = 32646
  7370. Public Const OCR_ICOCUR = 32647
  7371. Public Const OCR_NO = 32648 ' not in win3.1
  7372.  
  7373. Public Const OIC_SAMPLE = 32512
  7374. Public Const OIC_HAND = 32513
  7375. Public Const OIC_QUES = 32514
  7376. Public Const OIC_BANG = 32515
  7377. Public Const OIC_NOTE = 32516
  7378.  
  7379. Public Const ORD_LANGDRIVER = 1 '  The ordinal number for the entry point of
  7380.                                 '  language drivers.
  7381.  
  7382. ' Standard Icon IDs
  7383. Public Const IDI_APPLICATION = 32512&
  7384. Public Const IDI_HAND = 32513&
  7385. Public Const IDI_QUESTION = 32514&
  7386. Public Const IDI_EXCLAMATION = 32515&
  7387. Public Const IDI_ASTERISK = 32516&
  7388.  
  7389. 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
  7390.  
  7391. ' Dialog Box Command IDs
  7392. Public Const IDOK = 1
  7393. Public Const IDCANCEL = 2
  7394. Public Const IDABORT = 3
  7395. Public Const IDRETRY = 4
  7396. Public Const IDIGNORE = 5
  7397. Public Const IDYES = 6
  7398. Public Const IDNO = 7
  7399.  
  7400. ' Control Manager Structures and Definitions
  7401.  
  7402. ' Edit Control Styles
  7403. Public Const ES_LEFT = &H0&
  7404. Public Const ES_CENTER = &H1&
  7405. Public Const ES_RIGHT = &H2&
  7406. Public Const ES_MULTILINE = &H4&
  7407. Public Const ES_UPPERCASE = &H8&
  7408. Public Const ES_LOWERCASE = &H10&
  7409. Public Const ES_PASSWORD = &H20&
  7410. Public Const ES_AUTOVSCROLL = &H40&
  7411. Public Const ES_AUTOHSCROLL = &H80&
  7412. Public Const ES_NOHIDESEL = &H100&
  7413. Public Const ES_OEMCONVERT = &H400&
  7414. Public Const ES_READONLY = &H800&
  7415. Public Const ES_WANTRETURN = &H1000&
  7416.  
  7417. ' Edit Control Notification Codes
  7418. Public Const EN_SETFOCUS = &H100
  7419. Public Const EN_KILLFOCUS = &H200
  7420. Public Const EN_CHANGE = &H300
  7421. Public Const EN_UPDATE = &H400
  7422. Public Const EN_ERRSPACE = &H500
  7423. Public Const EN_MAXTEXT = &H501
  7424. Public Const EN_HSCROLL = &H601
  7425. Public Const EN_VSCROLL = &H602
  7426.  
  7427. ' Edit Control Messages
  7428. Public Const EM_GETSEL = &HB0
  7429. Public Const EM_SETSEL = &HB1
  7430. Public Const EM_GETRECT = &HB2
  7431. Public Const EM_SETRECT = &HB3
  7432. Public Const EM_SETRECTNP = &HB4
  7433. Public Const EM_SCROLL = &HB5
  7434. Public Const EM_LINESCROLL = &HB6
  7435. Public Const EM_SCROLLCARET = &HB7
  7436. Public Const EM_GETMODIFY = &HB8
  7437. Public Const EM_SETMODIFY = &HB9
  7438. Public Const EM_GETLINECOUNT = &HBA
  7439. Public Const EM_LINEINDEX = &HBB
  7440. Public Const EM_SETHANDLE = &HBC
  7441. Public Const EM_GETHANDLE = &HBD
  7442. Public Const EM_GETTHUMB = &HBE
  7443. Public Const EM_LINELENGTH = &HC1
  7444. Public Const EM_REPLACESEL = &HC2
  7445. Public Const EM_GETLINE = &HC4
  7446. Public Const EM_LIMITTEXT = &HC5
  7447. Public Const EM_CANUNDO = &HC6
  7448. Public Const EM_UNDO = &HC7
  7449. Public Const EM_FMTLINES = &HC8
  7450. Public Const EM_LINEFROMCHAR = &HC9
  7451. Public Const EM_SETTABSTOPS = &HCB
  7452. Public Const EM_SETPASSWORDCHAR = &HCC
  7453. Public Const EM_EMPTYUNDOBUFFER = &HCD
  7454. Public Const EM_GETFIRSTVISIBLELINE = &HCE
  7455. Public Const EM_SETREADONLY = &HCF
  7456. Public Const EM_SETWORDBREAKPROC = &HD0
  7457. Public Const EM_GETWORDBREAKPROC = &HD1
  7458. Public Const EM_GETPASSWORDCHAR = &HD2
  7459.  
  7460. ' EDITWORDBREAKPROC code values
  7461. Public Const WB_LEFT = 0
  7462. Public Const WB_RIGHT = 1
  7463. Public Const WB_ISDELIMITER = 2
  7464.  
  7465. ' Button Control Styles
  7466. Public Const BS_PUSHBUTTON = &H0&
  7467. Public Const BS_DEFPUSHBUTTON = &H1&
  7468. Public Const BS_CHECKBOX = &H2&
  7469. Public Const BS_AUTOCHECKBOX = &H3&
  7470. Public Const BS_RADIOBUTTON = &H4&
  7471. Public Const BS_3STATE = &H5&
  7472. Public Const BS_AUTO3STATE = &H6&
  7473. Public Const BS_GROUPBOX = &H7&
  7474. Public Const BS_USERBUTTON = &H8&
  7475. Public Const BS_AUTORADIOBUTTON = &H9&
  7476. Public Const BS_OWNERDRAW = &HB&
  7477. Public Const BS_LEFTTEXT = &H20&
  7478.  
  7479. ' User Button Notification Codes
  7480. Public Const BN_CLICKED = 0
  7481. Public Const BN_PAINT = 1
  7482. Public Const BN_HILITE = 2
  7483. Public Const BN_UNHILITE = 3
  7484. Public Const BN_DISABLE = 4
  7485. Public Const BN_DOUBLECLICKED = 5
  7486.  
  7487. ' Button Control Messages
  7488. Public Const BM_GETCHECK = &HF0
  7489. Public Const BM_SETCHECK = &HF1
  7490. Public Const BM_GETSTATE = &HF2
  7491. Public Const BM_SETSTATE = &HF3
  7492. Public Const BM_SETSTYLE = &HF4
  7493.  
  7494. ' Static Control Constants
  7495. Public Const SS_LEFT = &H0&
  7496. Public Const SS_CENTER = &H1&
  7497. Public Const SS_RIGHT = &H2&
  7498. Public Const SS_ICON = &H3&
  7499. Public Const SS_BLACKRECT = &H4&
  7500. Public Const SS_GRAYRECT = &H5&
  7501. Public Const SS_WHITERECT = &H6&
  7502. Public Const SS_BLACKFRAME = &H7&
  7503. Public Const SS_GRAYFRAME = &H8&
  7504. Public Const SS_WHITEFRAME = &H9&
  7505. Public Const SS_USERITEM = &HA&
  7506. Public Const SS_SIMPLE = &HB&
  7507. Public Const SS_LEFTNOWORDWRAP = &HC&
  7508. Public Const SS_NOPREFIX = &H80           '  Don't do "&" character translation
  7509.  
  7510. ' Static Control Mesages
  7511. Public Const STM_SETICON = &H170
  7512. Public Const STM_GETICON = &H171
  7513. Public Const STM_MSGMAX = &H172
  7514.  
  7515. Public Const WC_DIALOG = 8002&
  7516.  
  7517. '  Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
  7518. Public Const DWL_MSGRESULT = 0
  7519. Public Const DWL_DLGPROC = 4
  7520. Public Const DWL_USER = 8
  7521.  
  7522. ' Dialog Manager Routines
  7523. Declare Function IsDialogMessage Lib "user32" Alias "IsDialogMessageA" (ByVal hDlg As Long, lpMsg As MSG) As Long
  7524. Declare Function MapDialogRect Lib "user32" Alias "MapDialogRect" (ByVal hDlg As Long, lpRect As RECT) As Long
  7525. 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
  7526.  
  7527. ' DlgDirList, DlgDirListComboBox flags values
  7528. Public Const DDL_READWRITE = &H0
  7529. Public Const DDL_READONLY = &H1
  7530. Public Const DDL_HIDDEN = &H2
  7531. Public Const DDL_SYSTEM = &H4
  7532. Public Const DDL_DIRECTORY = &H10
  7533. Public Const DDL_ARCHIVE = &H20
  7534.  
  7535. Public Const DDL_POSTMSGS = &H2000
  7536. Public Const DDL_DRIVES = &H4000
  7537. Public Const DDL_EXCLUSIVE = &H8000
  7538.  
  7539. 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
  7540. 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
  7541. 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
  7542.  
  7543. ' Dialog Styles
  7544. Public Const DS_ABSALIGN = &H1&
  7545. Public Const DS_SYSMODAL = &H2&
  7546. Public Const DS_LOCALEDIT = &H20          '  Edit items get Local storage.
  7547. Public Const DS_SETFONT = &H40            '  User specified font for Dlg controls
  7548. Public Const DS_MODALFRAME = &H80         '  Can be combined with WS_CAPTION
  7549. Public Const DS_NOIDLEMSG = &H100         '  WM_ENTERIDLE message will not be sent
  7550. Public Const DS_SETFOREGROUND = &H200     '  not in win3.1
  7551.  
  7552. Public Const DM_GETDEFID = WM_USER + 0
  7553. Public Const DM_SETDEFID = WM_USER + 1
  7554. Public Const DC_HASDEFID = &H534      '0x534B
  7555.  
  7556. ' Dialog Codes
  7557. Public Const DLGC_WANTARROWS = &H1              '  Control wants arrow keys
  7558. Public Const DLGC_WANTTAB = &H2                 '  Control wants tab keys
  7559. Public Const DLGC_WANTALLKEYS = &H4             '  Control wants all keys
  7560. Public Const DLGC_WANTMESSAGE = &H4             '  Pass message to control
  7561. Public Const DLGC_HASSETSEL = &H8               '  Understands EM_SETSEL message
  7562. Public Const DLGC_DEFPUSHBUTTON = &H10          '  Default pushbutton
  7563. Public Const DLGC_UNDEFPUSHBUTTON = &H20        '  Non-default pushbutton
  7564. Public Const DLGC_RADIOBUTTON = &H40            '  Radio button
  7565. Public Const DLGC_WANTCHARS = &H80              '  Want WM_CHAR messages
  7566. Public Const DLGC_STATIC = &H100                '  Static item: don't include
  7567. Public Const DLGC_BUTTON = &H2000               '  Button item: can be checked
  7568.  
  7569. Public Const LB_CTLCODE = 0&
  7570.  
  7571. ' Listbox Return Values
  7572. Public Const LB_OKAY = 0
  7573. Public Const LB_ERR = (-1)
  7574. Public Const LB_ERRSPACE = (-2)
  7575.  
  7576. ' The idStaticPath parameter to DlgDirList can have the following values
  7577. ' ORed if the list box should show other details of the files along with
  7578. ' the name of the files;
  7579. ' all other details also will be returned
  7580.  
  7581. ' Listbox Notification Codes
  7582. Public Const LBN_ERRSPACE = (-2)
  7583. Public Const LBN_SELCHANGE = 1
  7584. Public Const LBN_DBLCLK = 2
  7585. Public Const LBN_SELCANCEL = 3
  7586. Public Const LBN_SETFOCUS = 4
  7587. Public Const LBN_KILLFOCUS = 5
  7588.  
  7589. ' Listbox messages
  7590. Public Const LB_ADDSTRING = &H180
  7591. Public Const LB_INSERTSTRING = &H181
  7592. Public Const LB_DELETESTRING = &H182
  7593. Public Const LB_SELITEMRANGEEX = &H183
  7594. Public Const LB_RESETCONTENT = &H184
  7595. Public Const LB_SETSEL = &H185
  7596. Public Const LB_SETCURSEL = &H186
  7597. Public Const LB_GETSEL = &H187
  7598. Public Const LB_GETCURSEL = &H188
  7599. Public Const LB_GETTEXT = &H189
  7600. Public Const LB_GETTEXTLEN = &H18A
  7601. Public Const LB_GETCOUNT = &H18B
  7602. Public Const LB_SELECTSTRING = &H18C
  7603. Public Const LB_DIR = &H18D
  7604. Public Const LB_GETTOPINDEX = &H18E
  7605. Public Const LB_FINDSTRING = &H18F
  7606. Public Const LB_GETSELCOUNT = &H190
  7607. Public Const LB_GETSELITEMS = &H191
  7608. Public Const LB_SETTABSTOPS = &H192
  7609. Public Const LB_GETHORIZONTALEXTENT = &H193
  7610. Public Const LB_SETHORIZONTALEXTENT = &H194
  7611. Public Const LB_SETCOLUMNWIDTH = &H195
  7612. Public Const LB_ADDFILE = &H196
  7613. Public Const LB_SETTOPINDEX = &H197
  7614. Public Const LB_GETITEMRECT = &H198
  7615. Public Const LB_GETITEMDATA = &H199
  7616. Public Const LB_SETITEMDATA = &H19A
  7617. Public Const LB_SELITEMRANGE = &H19B
  7618. Public Const LB_SETANCHORINDEX = &H19C
  7619. Public Const LB_GETANCHORINDEX = &H19D
  7620. Public Const LB_SETCARETINDEX = &H19E
  7621. Public Const LB_GETCARETINDEX = &H19F
  7622. Public Const LB_SETITEMHEIGHT = &H1A0
  7623. Public Const LB_GETITEMHEIGHT = &H1A1
  7624. Public Const LB_FINDSTRINGEXACT = &H1A2
  7625. Public Const LB_SETLOCALE = &H1A5
  7626. Public Const LB_GETLOCALE = &H1A6
  7627. Public Const LB_SETCOUNT = &H1A7
  7628. Public Const LB_MSGMAX = &H1A8
  7629.  
  7630. ' Listbox Styles
  7631. Public Const LBS_NOTIFY = &H1&
  7632. Public Const LBS_SORT = &H2&
  7633. Public Const LBS_NOREDRAW = &H4&
  7634. Public Const LBS_MULTIPLESEL = &H8&
  7635. Public Const LBS_OWNERDRAWFIXED = &H10&
  7636. Public Const LBS_OWNERDRAWVARIABLE = &H20&
  7637. Public Const LBS_HASSTRINGS = &H40&
  7638. Public Const LBS_USETABSTOPS = &H80&
  7639. Public Const LBS_NOINTEGRALHEIGHT = &H100&
  7640. Public Const LBS_MULTICOLUMN = &H200&
  7641. Public Const LBS_WANTKEYBOARDINPUT = &H400&
  7642. Public Const LBS_EXTENDEDSEL = &H800&
  7643. Public Const LBS_DISABLENOSCROLL = &H1000&
  7644. Public Const LBS_NODATA = &H2000&
  7645. Public Const LBS_STANDARD = (LBS_NOTIFY Or LBS_SORT Or WS_VSCROLL Or WS_BORDER)
  7646.  
  7647. ' Combo Box return Values
  7648. Public Const CB_OKAY = 0
  7649. Public Const CB_ERR = (-1)
  7650. Public Const CB_ERRSPACE = (-2)
  7651.  
  7652. ' Combo Box Notification Codes
  7653. Public Const CBN_ERRSPACE = (-1)
  7654. Public Const CBN_SELCHANGE = 1
  7655. Public Const CBN_DBLCLK = 2
  7656. Public Const CBN_SETFOCUS = 3
  7657. Public Const CBN_KILLFOCUS = 4
  7658. Public Const CBN_EDITCHANGE = 5
  7659. Public Const CBN_EDITUPDATE = 6
  7660. Public Const CBN_DROPDOWN = 7
  7661. Public Const CBN_CLOSEUP = 8
  7662. Public Const CBN_SELENDOK = 9
  7663. Public Const CBN_SELENDCANCEL = 10
  7664.  
  7665. ' Combo Box styles
  7666. Public Const CBS_SIMPLE = &H1&
  7667. Public Const CBS_DROPDOWN = &H2&
  7668. Public Const CBS_DROPDOWNLIST = &H3&
  7669. Public Const CBS_OWNERDRAWFIXED = &H10&
  7670. Public Const CBS_OWNERDRAWVARIABLE = &H20&
  7671. Public Const CBS_AUTOHSCROLL = &H40&
  7672. Public Const CBS_OEMCONVERT = &H80&
  7673. Public Const CBS_SORT = &H100&
  7674. Public Const CBS_HASSTRINGS = &H200&
  7675. Public Const CBS_NOINTEGRALHEIGHT = &H400&
  7676. Public Const CBS_DISABLENOSCROLL = &H800&
  7677.  
  7678. ' Combo Box messages
  7679. Public Const CB_GETEDITSEL = &H140
  7680. Public Const CB_LIMITTEXT = &H141
  7681. Public Const CB_SETEDITSEL = &H142
  7682. Public Const CB_ADDSTRING = &H143
  7683. Public Const CB_DELETESTRING = &H144
  7684. Public Const CB_DIR = &H145
  7685. Public Const CB_GETCOUNT = &H146
  7686. Public Const CB_GETCURSEL = &H147
  7687. Public Const CB_GETLBTEXT = &H148
  7688. Public Const CB_GETLBTEXTLEN = &H149
  7689. Public Const CB_INSERTSTRING = &H14A
  7690. Public Const CB_RESETCONTENT = &H14B
  7691. Public Const CB_FINDSTRING = &H14C
  7692. Public Const CB_SELECTSTRING = &H14D
  7693. Public Const CB_SETCURSEL = &H14E
  7694. Public Const CB_SHOWDROPDOWN = &H14F
  7695. Public Const CB_GETITEMDATA = &H150
  7696. Public Const CB_SETITEMDATA = &H151
  7697. Public Const CB_GETDROPPEDCONTROLRECT = &H152
  7698. Public Const CB_SETITEMHEIGHT = &H153
  7699. Public Const CB_GETITEMHEIGHT = &H154
  7700. Public Const CB_SETEXTENDEDUI = &H155
  7701. Public Const CB_GETEXTENDEDUI = &H156
  7702. Public Const CB_GETDROPPEDSTATE = &H157
  7703. Public Const CB_FINDSTRINGEXACT = &H158
  7704. Public Const CB_SETLOCALE = &H159
  7705. Public Const CB_GETLOCALE = &H15A
  7706. Public Const CB_MSGMAX = &H15B
  7707.  
  7708. ' Scroll Bar Styles
  7709. Public Const SBS_HORZ = &H0&
  7710. Public Const SBS_VERT = &H1&
  7711. Public Const SBS_TOPALIGN = &H2&
  7712. Public Const SBS_LEFTALIGN = &H2&
  7713. Public Const SBS_BOTTOMALIGN = &H4&
  7714. Public Const SBS_RIGHTALIGN = &H4&
  7715. Public Const SBS_SIZEBOXTOPLEFTALIGN = &H2&
  7716. Public Const SBS_SIZEBOXBOTTOMRIGHTALIGN = &H4&
  7717. Public Const SBS_SIZEBOX = &H8&
  7718.  
  7719. '  Scroll bar messages
  7720. Public Const SBM_SETPOS = &HE0 ' not in win3.1
  7721. Public Const SBM_GETPOS = &HE1 ' not in win3.1
  7722. Public Const SBM_SETRANGE = &HE2 ' not in win3.1
  7723. Public Const SBM_SETRANGEREDRAW = &HE6 ' not in win3.1
  7724. Public Const SBM_GETRANGE = &HE3 ' not in win3.1
  7725. Public Const SBM_ENABLE_ARROWS = &HE4 ' not in win3.1
  7726.  
  7727. Public Const MDIS_ALLCHILDSTYLES = &H1
  7728.  
  7729. ' wParam values for WM_MDITILE and WM_MDICASCADE messages.
  7730. Public Const MDITILE_VERTICAL = &H0
  7731. Public Const MDITILE_HORIZONTAL = &H1
  7732. Public Const MDITILE_SKIPDISABLED = &H2
  7733.  
  7734. Type MDICREATESTRUCT
  7735.         szClass As String
  7736.         szTitle As String
  7737.         hOwner As Long
  7738.         x As Long
  7739.         y As Long
  7740.         cx As Long
  7741.         cy As Long
  7742.         style As Long
  7743.         lParam As Long
  7744. End Type
  7745.  
  7746. Type CLIENTCREATESTRUCT
  7747.         hWindowMenu As Long
  7748.         idFirstChild As Long
  7749. End Type
  7750.  
  7751. 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
  7752. 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
  7753.  
  7754. Declare Function TranslateMDISysAccel Lib "user32" Alias "TranslateMDISysAccel" (ByVal hWndClient As Long, lpMsg As MSG) As Long
  7755.  
  7756. Declare Function ArrangeIconicWindows Lib "user32" Alias "ArrangeIconicWindows" (ByVal hwnd As Long) As Long
  7757.  
  7758. 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
  7759.  
  7760. '  Help engine section.
  7761.  
  7762. Type MULTIKEYHELP
  7763.         mkSize As Long
  7764.         mkKeylist As Byte
  7765.         szKeyphrase As String * 253 ' Array length is arbitrary; may be changed
  7766. End Type
  7767.  
  7768. Type HELPWININFO
  7769.         wStructSize As Long
  7770.         x As Long
  7771.         y As Long
  7772.         dx As Long
  7773.         dy As Long
  7774.         wMax As Long
  7775.         rgchMember As String * 2
  7776. End Type
  7777.  
  7778. ' Commands to pass WinHelp()
  7779. Public Const HELP_CONTEXT = &H1          '  Display topic in ulTopic
  7780. Public Const HELP_QUIT = &H2             '  Terminate help
  7781. Public Const HELP_INDEX = &H3            '  Display index
  7782. Public Const HELP_CONTENTS = &H3&
  7783. Public Const HELP_HELPONHELP = &H4       '  Display help on using help
  7784. Public Const HELP_SETINDEX = &H5         '  Set current Index for multi index help
  7785. Public Const HELP_SETCONTENTS = &H5&
  7786. Public Const HELP_CONTEXTPOPUP = &H8&
  7787. Public Const HELP_FORCEFILE = &H9&
  7788. Public Const HELP_KEY = &H101            '  Display topic for keyword in offabData
  7789. Public Const HELP_COMMAND = &H102&
  7790. Public Const HELP_PARTIALKEY = &H105&
  7791. Public Const HELP_MULTIKEY = &H201&
  7792. Public Const HELP_SETWINPOS = &H203&
  7793.  
  7794. 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
  7795.  
  7796. ' Parameter for SystemParametersInfo()
  7797. Public Const SPI_GETBEEP = 1
  7798. Public Const SPI_SETBEEP = 2
  7799. Public Const SPI_GETMOUSE = 3
  7800. Public Const SPI_SETMOUSE = 4
  7801. Public Const SPI_GETBORDER = 5
  7802. Public Const SPI_SETBORDER = 6
  7803. Public Const SPI_GETKEYBOARDSPEED = 10
  7804. Public Const SPI_SETKEYBOARDSPEED = 11
  7805. Public Const SPI_LANGDRIVER = 12
  7806. Public Const SPI_ICONHORIZONTALSPACING = 13
  7807. Public Const SPI_GETSCREENSAVETIMEOUT = 14
  7808. Public Const SPI_SETSCREENSAVETIMEOUT = 15
  7809. Public Const SPI_GETSCREENSAVEACTIVE = 16
  7810. Public Const SPI_SETSCREENSAVEACTIVE = 17
  7811. Public Const SPI_GETGRIDGRANULARITY = 18
  7812. Public Const SPI_SETGRIDGRANULARITY = 19
  7813. Public Const SPI_SETDESKWALLPAPER = 20
  7814. Public Const SPI_SETDESKPATTERN = 21
  7815. Public Const SPI_GETKEYBOARDDELAY = 22
  7816. Public Const SPI_SETKEYBOARDDELAY = 23
  7817. Public Const SPI_ICONVERTICALSPACING = 24
  7818. Public Const SPI_GETICONTITLEWRAP = 25
  7819. Public Const SPI_SETICONTITLEWRAP = 26
  7820. Public Const SPI_GETMENUDROPALIGNMENT = 27
  7821. Public Const SPI_SETMENUDROPALIGNMENT = 28
  7822. Public Const SPI_SETDOUBLECLKWIDTH = 29
  7823. Public Const SPI_SETDOUBLECLKHEIGHT = 30
  7824. Public Const SPI_GETICONTITLELOGFONT = 31
  7825. Public Const SPI_SETDOUBLECLICKTIME = 32
  7826. Public Const SPI_SETMOUSEBUTTONSWAP = 33
  7827. Public Const SPI_SETICONTITLELOGFONT = 34
  7828. Public Const SPI_GETFASTTASKSWITCH = 35
  7829. Public Const SPI_SETFASTTASKSWITCH = 36
  7830. Public Const SPI_SETDRAGFULLWINDOWS = 37
  7831. Public Const SPI_GETDRAGFULLWINDOWS = 38
  7832. Public Const SPI_GETNONCLIENTMETRICS = 41
  7833. Public Const SPI_SETNONCLIENTMETRICS = 42
  7834. Public Const SPI_GETMINIMIZEDMETRICS = 43
  7835. Public Const SPI_SETMINIMIZEDMETRICS = 44
  7836. Public Const SPI_GETICONMETRICS = 45
  7837. Public Const SPI_SETICONMETRICS = 46
  7838. Public Const SPI_SETWORKAREA = 47
  7839. Public Const SPI_GETWORKAREA = 48
  7840. Public Const SPI_SETPENWINDOWS = 49
  7841. Public Const SPI_GETFILTERKEYS = 50
  7842. Public Const SPI_SETFILTERKEYS = 51
  7843. Public Const SPI_GETTOGGLEKEYS = 52
  7844. Public Const SPI_SETTOGGLEKEYS = 53
  7845. Public Const SPI_GETMOUSEKEYS = 54
  7846. Public Const SPI_SETMOUSEKEYS = 55
  7847. Public Const SPI_GETSHOWSOUNDS = 56
  7848. Public Const SPI_SETSHOWSOUNDS = 57
  7849. Public Const SPI_GETSTICKYKEYS = 58
  7850. Public Const SPI_SETSTICKYKEYS = 59
  7851. Public Const SPI_GETACCESSTIMEOUT = 60
  7852. Public Const SPI_SETACCESSTIMEOUT = 61
  7853. Public Const SPI_GETSERIALKEYS = 62
  7854. Public Const SPI_SETSERIALKEYS = 63
  7855. Public Const SPI_GETSOUNDSENTRY = 64
  7856. Public Const SPI_SETSOUNDSENTRY = 65
  7857. Public Const SPI_GETHIGHCONTRAST = 66
  7858. Public Const SPI_SETHIGHCONTRAST = 67
  7859. Public Const SPI_GETKEYBOARDPREF = 68
  7860. Public Const SPI_SETKEYBOARDPREF = 69
  7861. Public Const SPI_GETSCREENREADER = 70
  7862. Public Const SPI_SETSCREENREADER = 71
  7863. Public Const SPI_GETANIMATION = 72
  7864. Public Const SPI_SETANIMATION = 73
  7865. Public Const SPI_GETFONTSMOOTHING = 74
  7866. Public Const SPI_SETFONTSMOOTHING = 75
  7867. Public Const SPI_SETDRAGWIDTH = 76
  7868. Public Const SPI_SETDRAGHEIGHT = 77
  7869. Public Const SPI_SETHANDHELD = 78
  7870. Public Const SPI_GETLOWPOWERTIMEOUT = 79
  7871. Public Const SPI_GETPOWEROFFTIMEOUT = 80
  7872. Public Const SPI_SETLOWPOWERTIMEOUT = 81
  7873. Public Const SPI_SETPOWEROFFTIMEOUT = 82
  7874. Public Const SPI_GETLOWPOWERACTIVE = 83
  7875. Public Const SPI_GETPOWEROFFACTIVE = 84
  7876. Public Const SPI_SETLOWPOWERACTIVE = 85
  7877. Public Const SPI_SETPOWEROFFACTIVE = 86
  7878. Public Const SPI_SETCURSORS = 87
  7879. Public Const SPI_SETICONS = 88
  7880. Public Const SPI_GETDEFAULTINPUTLANG = 89
  7881. Public Const SPI_SETDEFAULTINPUTLANG = 90
  7882. Public Const SPI_SETLANGTOGGLE = 91
  7883. Public Const SPI_GETWINDOWSEXTENSION = 92
  7884. Public Const SPI_SETMOUSETRAILS = 93
  7885. Public Const SPI_GETMOUSETRAILS = 94
  7886. Public Const SPI_SCREENSAVERRUNNING = 97
  7887.  
  7888. ' SystemParametersInfo flags
  7889. Public Const SPIF_UPDATEINIFILE = &H1
  7890. Public Const SPIF_SENDWININICHANGE = &H2
  7891.  
  7892. Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long
  7893.  
  7894. '  DDE window messages
  7895. Public Const WM_DDE_FIRST = &H3E0
  7896. Public Const WM_DDE_INITIATE = (WM_DDE_FIRST)
  7897. Public Const WM_DDE_TERMINATE = (WM_DDE_FIRST + 1)
  7898. Public Const WM_DDE_ADVISE = (WM_DDE_FIRST + 2)
  7899. Public Const WM_DDE_UNADVISE = (WM_DDE_FIRST + 3)
  7900. Public Const WM_DDE_ACK = (WM_DDE_FIRST + 4)
  7901. Public Const WM_DDE_DATA = (WM_DDE_FIRST + 5)
  7902. Public Const WM_DDE_REQUEST = (WM_DDE_FIRST + 6)
  7903. Public Const WM_DDE_POKE = (WM_DDE_FIRST + 7)
  7904. Public Const WM_DDE_EXECUTE = (WM_DDE_FIRST + 8)
  7905. Public Const WM_DDE_LAST = (WM_DDE_FIRST + 8)
  7906.  
  7907. ' *****************************************************************************                                                                             *
  7908. ' * dde.h - Structures et dΘfinitions de l'Θchange dynamique de donnΘes (DDE) *
  7909. ' *                                                                           *
  7910. ' * Copyright (c) 1993-1995, Microsoft Corp.         Tous droits rΘservΘs     *
  7911. ' *                                                                           *
  7912. ' \*****************************************************************************/
  7913.  
  7914.  
  7915. ' ----------------------------------------------------------------------------
  7916. '        Structure DDEACK
  7917. '         Structure de wStatus (LOWORD(lParam)) du message WM_DDE_ACK 
  7918. '        envoyΘ en rΘponse α un message WM_DDE_DATA, WM_DDE_REQUEST, WM_DDE_POKE,
  7919. '        WM_DDE_ADVISE ou WM_DDE_UNADVISE.
  7920. ' ----------------------------------------------------------------------------*/
  7921.  
  7922. Type DDEACK
  7923.         bAppReturnCode As Integer
  7924.         Reserved As Integer
  7925.         fbusy As Integer
  7926.         fack As Integer
  7927. End Type
  7928.  
  7929. ' ----------------------------------------------------------------------------
  7930. '        Structure DDEADVISE 
  7931. '
  7932. '         Structure du paramΦtre WM_DDE_ADVISE pour hOptions (LOWORD(lParam))
  7933. '
  7934. '
  7935. ' ----------------------------------------------------------------------------*/
  7936.  
  7937. Type DDEADVISE
  7938.         Reserved As Integer
  7939.         fDeferUpd As Integer
  7940.         fAckReq As Integer
  7941.         cfFormat As Integer
  7942. End Type
  7943.  
  7944.  
  7945. ' ----------------------------------------------------------------------------
  7946. '        Structure DDEDATA 
  7947. '
  7948. '        Structure du paramΦtre WM_DDE_DATA pour hData (LOWORD(lParam)).
  7949. '        La taille rΘelle de cette structure dΘpend de celle du tableau
  7950. '        Value.
  7951. '
  7952. ' ----------------------------------------------------------------------------*/
  7953.  
  7954. Type DDEDATA
  7955.         unused As Integer
  7956.         fresponse As Integer
  7957.         fRelease As Integer
  7958.         Reserved As Integer
  7959.         fAckReq As Integer
  7960.         cfFormat As Integer
  7961.         Value(1) As Byte
  7962. End Type
  7963.  
  7964.  
  7965. ' ----------------------------------------------------------------------------
  7966. '         Structure DDEPOKE 
  7967. '
  7968. '         Structure du paramΦtre WM_DDE_POKE pour hData (LOWORD(lParam)).
  7969. '        La taille rΘelle de cette structure dΘpend de celle du tableau 
  7970. '        Value.
  7971. '
  7972. ' ----------------------------------------------------------------------------*/
  7973.  
  7974. Type DDEPOKE
  7975.         unused As Integer
  7976.         fRelease As Integer
  7977.         fReserved As Integer
  7978.         cfFormat As Integer
  7979.         Value(1) As Byte
  7980. End Type
  7981.  
  7982. ' ----------------------------------------------------------------------------
  7983. ' Les dΘfinitions de types suivantes Θtaient utilisΘes dans les prΘcΘdentes versions du SDK Windows.
  7984. ' Elles sont toujours correctes.  Les dΘfinitions de types ci-dessus dΘfinissent exactement les mΩmes
  7985. ' structures que les dΘfinitions de types ci-dessous.  Les noms des dΘfinitions de types ci-dessus sont
  7986. ' cependant recommandΘs, car ils sont plus Θvocateurs.
  7987. '
  7988. ' Remarquez que la structure DDEPOKE objet d'une dΘfinition de type dans des versions antΘrieures
  7989. ' de DDE.H ne dΘfinissait pas correctement les positions de bits.
  7990. ' ----------------------------------------------------------------------------*/
  7991.  
  7992. Type DDELN
  7993.         unused As Integer
  7994.         fRelease As Integer
  7995.         fDeferUpd As Integer
  7996.         fAckReq As Integer
  7997.         cfFormat As Integer
  7998. End Type
  7999.  
  8000. Type DDEUP
  8001.         unused As Integer
  8002.         fAck As Integer
  8003.         fRelease As Integer
  8004.         fReserved As Integer
  8005.         fAckReq As Integer
  8006.         cfFormat As Integer
  8007.         rgb(1) As Byte
  8008. End Type
  8009.  
  8010. 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
  8011. Declare Function ImpersonateDdeClientWindow Lib "user32" Alias "ImpersonateDdeClientWindow" (ByVal hWndClient As Long, ByVal hWndServer As Long) As Long
  8012. Declare Function PackDDElParam Lib "user32" Alias "PackDDElParam" (ByVal msg As Long, ByVal uiLo As Long, ByVal uiHi As Long) As Long
  8013. Declare Function UnpackDDElParam Lib "user32" Alias "UnpackDDElParam" (ByVal msg As Long, ByVal lParam As Long, puiLo As Long, puiHi As Long) As Long
  8014. Declare Function FreeDDElParam Lib "user32" Alias "FreeDDElParam" (ByVal msg As Long, ByVal lParam As Long) As Long
  8015. 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
  8016.  
  8017. Type HSZPAIR
  8018.         hszSvc As Long
  8019.         hszTopic As Long
  8020. End Type
  8021.  
  8022. '//
  8023. '// Quality Of Service
  8024. '//
  8025.  
  8026. Type SECURITY_QUALITY_OF_SERVICE
  8027.     Length As Long
  8028.     Impersonationlevel As Integer
  8029.     ContextTrackingMode As Integer
  8030.     EffectiveOnly As Long
  8031. End Type
  8032.     
  8033. Type CONVCONTEXT
  8034.         cb As Long
  8035.         wFlags As Long
  8036.         wCountryID As Long
  8037.         iCodePage As Long
  8038.         dwLangID As Long
  8039.         dwSecurity As Long
  8040.         qos As SECURITY_QUALITY_OF_SERVICE
  8041. End Type
  8042.  
  8043. Type CONVINFO
  8044.         cb As Long
  8045.         hUser As Long
  8046.         hConvPartner As Long
  8047.         hszSvcPartner As Long
  8048.         hszServiceReq As Long
  8049.         hszTopic As Long
  8050.         hszItem As Long
  8051.         wFmt As Long
  8052.         wType As Long
  8053.         wStatus As Long
  8054.         wConvst As Long
  8055.         wLastError As Long
  8056.         hConvList As Long
  8057.         ConvCtxt As CONVCONTEXT
  8058.         hwnd As Long
  8059.         hwndPartner As Long
  8060. End Type
  8061.  
  8062. '  conversation states (usState)
  8063. Public Const XST_NULL = 0  '  quiescent states
  8064. Public Const XST_INCOMPLETE = 1
  8065. Public Const XST_CONNECTED = 2
  8066. Public Const XST_INIT1 = 3  '  mid-initiation states
  8067. Public Const XST_INIT2 = 4
  8068. Public Const XST_REQSENT = 5  '  active conversation states
  8069. Public Const XST_DATARCVD = 6
  8070. Public Const XST_POKESENT = 7
  8071. Public Const XST_POKEACKRCVD = 8
  8072. Public Const XST_EXECSENT = 9
  8073. Public Const XST_EXECACKRCVD = 10
  8074. Public Const XST_ADVSENT = 11
  8075. Public Const XST_UNADVSENT = 12
  8076. Public Const XST_ADVACKRCVD = 13
  8077. Public Const XST_UNADVACKRCVD = 14
  8078. Public Const XST_ADVDATASENT = 15
  8079. Public Const XST_ADVDATAACKRCVD = 16
  8080.  
  8081. '  used in LOWORD(dwData1) of XTYP_ADVREQ callbacks...
  8082. Public Const CADV_LATEACK = &HFFFF
  8083.  
  8084. '  conversation status bits (fsStatus)
  8085. Public Const ST_CONNECTED = &H1
  8086. Public Const ST_ADVISE = &H2
  8087. Public Const ST_ISLOCAL = &H4
  8088. Public Const ST_BLOCKED = &H8
  8089. Public Const ST_CLIENT = &H10
  8090. Public Const ST_TERMINATED = &H20
  8091. Public Const ST_INLIST = &H40
  8092. Public Const ST_BLOCKNEXT = &H80
  8093. Public Const ST_ISSELF = &H100
  8094.  
  8095. '  DDE constants for wStatus field
  8096. Public Const DDE_FACK = &H8000
  8097. Public Const DDE_FBUSY = &H4000
  8098. Public Const DDE_FDEFERUPD = &H4000
  8099. Public Const DDE_FACKREQ = &H8000
  8100. Public Const DDE_FRELEASE = &H2000
  8101. Public Const DDE_FREQUESTED = &H1000
  8102. Public Const DDE_FAPPSTATUS = &HFF
  8103. Public Const DDE_FNOTPROCESSED = &H0
  8104.  
  8105. Public Const DDE_FACKRESERVED = (Not (DDE_FACK Or DDE_FBUSY Or DDE_FAPPSTATUS))
  8106. Public Const DDE_FADVRESERVED = (Not (DDE_FACKREQ Or DDE_FDEFERUPD))
  8107. Public Const DDE_FDATRESERVED = (Not (DDE_FACKREQ Or DDE_FRELEASE Or DDE_FREQUESTED))
  8108. Public Const DDE_FPOKRESERVED = (Not (DDE_FRELEASE))
  8109.  
  8110. '  message filter hook types
  8111. Public Const MSGF_DDEMGR = &H8001
  8112.  
  8113. '  codepage constants
  8114. Public Const CP_WINANSI = 1004  '  default codepage for windows old DDE convs.
  8115. Public Const CP_WINUNICODE = 1200
  8116.  
  8117. '  transaction types
  8118. Public Const XTYPF_NOBLOCK = &H2     '  CBR_BLOCK will not work
  8119. Public Const XTYPF_NODATA = &H4     '  DDE_FDEFERUPD
  8120. Public Const XTYPF_ACKREQ = &H8     '  DDE_FACKREQ
  8121.  
  8122. Public Const XCLASS_MASK = &HFC00
  8123. Public Const XCLASS_BOOL = &H1000
  8124. Public Const XCLASS_DATA = &H2000
  8125. Public Const XCLASS_FLAGS = &H4000
  8126. Public Const XCLASS_NOTIFICATION = &H8000
  8127.  
  8128. Public Const XTYP_ERROR = (&H0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8129. Public Const XTYP_ADVDATA = (&H10 Or XCLASS_FLAGS)
  8130. Public Const XTYP_ADVREQ = (&H20 Or XCLASS_DATA Or XTYPF_NOBLOCK)
  8131. Public Const XTYP_ADVSTART = (&H30 Or XCLASS_BOOL)
  8132. Public Const XTYP_ADVSTOP = (&H40 Or XCLASS_NOTIFICATION)
  8133. Public Const XTYP_EXECUTE = (&H50 Or XCLASS_FLAGS)
  8134. Public Const XTYP_CONNECT = (&H60 Or XCLASS_BOOL Or XTYPF_NOBLOCK)
  8135. Public Const XTYP_CONNECT_CONFIRM = (&H70 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8136. Public Const XTYP_XACT_COMPLETE = (&H80 Or XCLASS_NOTIFICATION)
  8137. Public Const XTYP_POKE = (&H90 Or XCLASS_FLAGS)
  8138. Public Const XTYP_REGISTER = (&HA0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8139. Public Const XTYP_REQUEST = (&HB0 Or XCLASS_DATA)
  8140. Public Const XTYP_DISCONNECT = (&HC0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8141. Public Const XTYP_UNREGISTER = (&HD0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8142. Public Const XTYP_WILDCONNECT = (&HE0 Or XCLASS_DATA Or XTYPF_NOBLOCK)
  8143.  
  8144. Public Const XTYP_MASK = &HF0
  8145. Public Const XTYP_SHIFT = 4  '  shift to turn XTYP_ into an index
  8146.  
  8147. '  Timeout constants
  8148. Public Const TIMEOUT_ASYNC = &HFFFF
  8149.  
  8150. '  Transaction ID constants
  8151. Public Const QID_SYNC = &HFFFF
  8152.  
  8153. '  public strings used in DDE
  8154. Public Const SZDDESYS_TOPIC = "System"
  8155. Public Const SZDDESYS_ITEM_TOPICS = "Topics"
  8156. Public Const SZDDESYS_ITEM_SYSITEMS = "SysItems"
  8157. Public Const SZDDESYS_ITEM_RTNMSG = "ReturnMessage"
  8158. Public Const SZDDESYS_ITEM_STATUS = "Status"
  8159. Public Const SZDDESYS_ITEM_FORMATS = "Formats"
  8160. Public Const SZDDESYS_ITEM_HELP = "Help"
  8161. Public Const SZDDE_ITEM_ITEMLIST = "TopicItemList"
  8162.  
  8163. Public Const CBR_BLOCK = &HFFFF
  8164.  
  8165. ' Callback filter flags for use with standard apps.
  8166. Public Const CBF_FAIL_SELFCONNECTIONS = &H1000
  8167. Public Const CBF_FAIL_CONNECTIONS = &H2000
  8168. Public Const CBF_FAIL_ADVISES = &H4000
  8169. Public Const CBF_FAIL_EXECUTES = &H8000
  8170. Public Const CBF_FAIL_POKES = &H10000
  8171. Public Const CBF_FAIL_REQUESTS = &H20000
  8172. Public Const CBF_FAIL_ALLSVRXACTIONS = &H3F000
  8173.  
  8174. Public Const CBF_SKIP_CONNECT_CONFIRMS = &H40000
  8175. Public Const CBF_SKIP_REGISTRATIONS = &H80000
  8176. Public Const CBF_SKIP_UNREGISTRATIONS = &H100000
  8177. Public Const CBF_SKIP_DISCONNECTS = &H200000
  8178. Public Const CBF_SKIP_ALLNOTIFICATIONS = &H3C0000
  8179.  
  8180. ' Application command flags
  8181. Public Const APPCMD_CLIENTONLY = &H10&
  8182. Public Const APPCMD_FILTERINITS = &H20&
  8183. Public Const APPCMD_MASK = &HFF0&
  8184.  
  8185. ' Application classification flags
  8186. Public Const APPCLASS_STANDARD = &H0&
  8187. Public Const APPCLASS_MASK = &HF&
  8188.  
  8189. Declare Function DdeUninitialize Lib "user32" Alias "DdeUninitialize" (ByVal idInst As Long) As Long
  8190.  
  8191. ' conversation enumeration functions
  8192. 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
  8193. Declare Function DdeQueryNextServer Lib "user32" Alias "DdeQueryNextServer" (ByVal hConvList As Long, ByVal hConvPrev As Long) As Long
  8194. Declare Function DdeDisconnectList Lib "user32" Alias "DdeDisconnectList" (ByVal hConvList As Long) As Long
  8195.  
  8196. ' conversation control functions
  8197. Declare Function DdeConnect Lib "user32" Alias "DdeConnect" (ByVal idInst As Long, ByVal hszService As Long, ByVal hszTopic As Long, pCC As CONVCONTEXT) As Long
  8198. Declare Function DdeDisconnect Lib "user32" Alias "DdeDisconnect" (ByVal hConv As Long) As Long
  8199. Declare Function DdeReconnect Lib "user32" Alias "DdeReconnect" (ByVal hConv As Long) As Long
  8200. Declare Function DdeQueryConvInfo Lib "user32" Alias "DdeQueryConvInfo" (ByVal hConv As Long, ByVal idTransaction As Long, pConvInfo As CONVINFO) As Long
  8201. Declare Function DdeSetUserHandle Lib "user32" Alias "DdeSetUserHandle" (ByVal hConv As Long, ByVal id As Long, ByVal hUser As Long) As Long
  8202. Declare Function DdeAbandonTransaction Lib "user32" Alias "DdeAbandonTransaction" (ByVal idInst As Long, ByVal hConv As Long, ByVal idTransaction As Long) As Long
  8203.  
  8204. ' app server interface functions
  8205. Declare Function DdePostAdvise Lib "user32" Alias "DdePostAdvise" (ByVal idInst As Long, ByVal hszTopic As Long, ByVal hszItem As Long) As Long
  8206. Declare Function DdeEnableCallback Lib "user32" Alias "DdeEnableCallback" (ByVal idInst As Long, ByVal hConv As Long, ByVal wCmd As Long) As Long
  8207. Declare Function DdeImpersonateClient Lib "user32" Alias "DdeImpersonateClient" (ByVal hConv As Long) As Long
  8208.  
  8209. Public Const EC_ENABLEALL = 0
  8210. Public Const EC_ENABLEONE = ST_BLOCKNEXT
  8211. Public Const EC_DISABLE = ST_BLOCKED
  8212. Public Const EC_QUERYWAITING = 2
  8213.  
  8214. 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
  8215.  
  8216. Public Const DNS_REGISTER = &H1
  8217. Public Const DNS_UNREGISTER = &H2
  8218. Public Const DNS_FILTERON = &H4
  8219. Public Const DNS_FILTEROFF = &H8
  8220.  
  8221. ' app client interface functions
  8222. 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
  8223.  
  8224. ' data transfer functions
  8225. 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
  8226. Declare Function DdeAddData Lib "user32" Alias "DdeAddDataA" (ByVal hData As Long, pSrc As Byte, ByVal cb As Long, ByVal cbOff As Long) As Long
  8227. Declare Function DdeGetData Lib "user32" Alias "DdeGetDataA" (ByVal hData As Long, pDst As Byte, ByVal cbMax As Long, ByVal cbOff As Long) As Long
  8228. Declare Function DdeAccessData Lib "user32" Alias "DdeAccessDataA" (ByVal hData As Long, pcbDataSize As Long) As Long
  8229. Declare Function DdeUnaccessData Lib "user32" Alias "DdeUnaccessDataA" (ByVal hData As Long) As Long
  8230. Declare Function DdeFreeDataHandle Lib "user32" Alias "DdeFreeDataHandle" (ByVal hData As Long) As Long
  8231.  
  8232. Public Const HDATA_APPOWNED = &H1
  8233.  
  8234. Declare Function DdeGetLastError Lib "user32" Alias "DdeGetLastError" (ByVal idInst As Long) As Long
  8235.  
  8236. Public Const DMLERR_NO_ERROR = 0                           '  must be 0
  8237.  
  8238. Public Const DMLERR_FIRST = &H4000
  8239.  
  8240. Public Const DMLERR_ADVACKTIMEOUT = &H4000
  8241. Public Const DMLERR_BUSY = &H4001
  8242. Public Const DMLERR_DATAACKTIMEOUT = &H4002
  8243. Public Const DMLERR_DLL_NOT_INITIALIZED = &H4003
  8244. Public Const DMLERR_DLL_USAGE = &H4004
  8245. Public Const DMLERR_EXECACKTIMEOUT = &H4005
  8246. Public Const DMLERR_INVALIDPARAMETER = &H4006
  8247. Public Const DMLERR_LOW_MEMORY = &H4007
  8248. Public Const DMLERR_MEMORY_ERROR = &H4008
  8249. Public Const DMLERR_NOTPROCESSED = &H4009
  8250. Public Const DMLERR_NO_CONV_ESTABLISHED = &H400A
  8251. Public Const DMLERR_POKEACKTIMEOUT = &H400B
  8252. Public Const DMLERR_POSTMSG_FAILED = &H400C
  8253. Public Const DMLERR_REENTRANCY = &H400D
  8254. Public Const DMLERR_SERVER_DIED = &H400E
  8255. Public Const DMLERR_SYS_ERROR = &H400F
  8256. Public Const DMLERR_UNADVACKTIMEOUT = &H4010
  8257. Public Const DMLERR_UNFOUND_QUEUE_ID = &H4011
  8258.  
  8259. Public Const DMLERR_LAST = &H4011
  8260.  
  8261. Declare Function DdeCreateStringHandle Lib "user32" Alias "DdeCreateStringHandleA" (ByVal idInst As Long, ByVal psz As String, ByVal iCodePage As Long) As Long
  8262.  
  8263. 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
  8264.  
  8265. Declare Function DdeFreeStringHandle Lib "user32" Alias "DdeFreeStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long
  8266. Declare Function DdeKeepStringHandle Lib "user32" Alias "DdeKeepStringHandle" (ByVal idInst As Long, ByVal hsz As Long) As Long
  8267. Declare Function DdeCmpStringHandles Lib "user32" Alias "DdeCmpStringHandles" (ByVal hsz1 As Long, ByVal hsz2 As Long) As Long
  8268.  
  8269. Type DDEML_MSG_HOOK_DATA    '  new for NT
  8270.         uiLo As Long  '  unpacked lo and hi parts of lParam
  8271.         uiHi As Long
  8272.         cbData As Long   '  amount of data in message, if any. May be > than 32 bytes.
  8273.         Data(8) As Long  '  data peeking by DDESPY is limited to 32 bytes.
  8274. End Type
  8275.  
  8276. Type MONMSGSTRUCT
  8277.         cb As Long
  8278.         hwndTo As Long
  8279.         dwTime As Long
  8280.         htask As Long
  8281.         wMsg As Long
  8282.         wParam As Long
  8283.         lParam As Long
  8284.         dmhd As DDEML_MSG_HOOK_DATA       '  new for NT
  8285. End Type
  8286.  
  8287. Type MONCBSTRUCT
  8288.         cb As Long
  8289.         dwTime As Long
  8290.         htask As Long
  8291.         dwRet As Long
  8292.         wType As Long
  8293.         wFmt As Long
  8294.         hConv As Long
  8295.         hsz1 As Long
  8296.         hsz2 As Long
  8297.         hData As Long
  8298.         dwData1 As Long
  8299.         dwData2 As Long
  8300.         cc As CONVCONTEXT                 '  new for NT for XTYP_CONNECT callbacks
  8301.         cbData As Long                  '  new for NT for data peeking
  8302.         Data(8) As Long                 '  new for NT for data peeking
  8303. End Type
  8304.  
  8305. Type MONHSZSTRUCT
  8306.         cb As Long
  8307.         fsAction As Long '  MH_ value
  8308.         dwTime As Long
  8309.         hsz As Long
  8310.         htask As Long
  8311.         str As Byte
  8312. End Type
  8313.  
  8314. Public Const MH_CREATE = 1
  8315. Public Const MH_KEEP = 2
  8316. Public Const MH_DELETE = 3
  8317. Public Const MH_CLEANUP = 4
  8318.  
  8319. Type MONERRSTRUCT
  8320.         cb As Long
  8321.         wLastError As Long
  8322.         dwTime As Long
  8323.         htask As Long
  8324. End Type
  8325.  
  8326. Type MONLINKSTRUCT
  8327.         cb As Long
  8328.         dwTime As Long
  8329.         htask As Long
  8330.         fEstablished As Long
  8331.         fNoData As Long
  8332.         hszSvc As Long
  8333.         hszTopic As Long
  8334.         hszItem As Long
  8335.         wFmt As Long
  8336.         fServer As Long
  8337.         hConvServer As Long
  8338.         hConvClient As Long
  8339. End Type
  8340.  
  8341. Type MONCONVSTRUCT
  8342.         cb As Long
  8343.         fConnect As Long
  8344.         dwTime As Long
  8345.         htask As Long
  8346.         hszSvc As Long
  8347.         hszTopic As Long
  8348.         hConvClient As Long        '  Globally unique value != apps local hConv
  8349.         hConvServer As Long        '  Globally unique value != apps local hConv
  8350. End Type
  8351.  
  8352. Public Const MAX_MONITORS = 4
  8353. Public Const APPCLASS_MONITOR = &H1&
  8354. Public Const XTYP_MONITOR = (&HF0 Or XCLASS_NOTIFICATION Or XTYPF_NOBLOCK)
  8355.  
  8356. ' Callback filter flags for use with MONITOR apps - 0 implies no monitor callbacks
  8357. Public Const MF_HSZ_INFO = &H1000000
  8358. Public Const MF_SENDMSGS = &H2000000
  8359. Public Const MF_POSTMSGS = &H4000000
  8360. Public Const MF_CALLBACKS = &H8000000
  8361. Public Const MF_ERRORS = &H10000000
  8362. Public Const MF_LINKS = &H20000000
  8363. Public Const MF_CONV = &H40000000
  8364.  
  8365. Public Const MF_MASK = &HFF000000
  8366.  
  8367. ' -----------------------------------------
  8368. ' Win32 API error code definitions
  8369. ' -----------------------------------------
  8370. ' This section contains the error code definitions for the Win32 API functions.
  8371.  
  8372. ' NO_ERROR
  8373. Public Const NO_ERROR = 0 '  dderror
  8374.  
  8375. ' The configuration registry database operation completed successfully.
  8376. Public Const ERROR_SUCCESS = 0&
  8377.  
  8378. '   Incorrect function.
  8379. Public Const ERROR_INVALID_FUNCTION = 1 '  dderror
  8380.  
  8381. '   The system cannot find the file specified.
  8382. Public Const ERROR_FILE_NOT_FOUND = 2&
  8383.  
  8384. '   The system cannot find the path specified.
  8385. Public Const ERROR_PATH_NOT_FOUND = 3&
  8386.  
  8387. '   The system cannot open the file.
  8388. Public Const ERROR_TOO_MANY_OPEN_FILES = 4&
  8389.  
  8390. '   Access is denied.
  8391. Public Const ERROR_ACCESS_DENIED = 5&
  8392.  
  8393. '   The handle is invalid.
  8394. Public Const ERROR_INVALID_HANDLE = 6&
  8395.  
  8396. '   The storage control blocks were destroyed.
  8397. Public Const ERROR_ARENA_TRASHED = 7&
  8398.  
  8399. '   Not enough storage is available to process this command.
  8400. Public Const ERROR_NOT_ENOUGH_MEMORY = 8 '  dderror
  8401.  
  8402. '   The storage control block address is invalid.
  8403. Public Const ERROR_INVALID_BLOCK = 9&
  8404.  
  8405. '   The environment is incorrect.
  8406. Public Const ERROR_BAD_ENVIRONMENT = 10&
  8407.  
  8408. '   An attempt was made to load a program with an
  8409. '   incorrect format.
  8410. Public Const ERROR_BAD_FORMAT = 11&
  8411.  
  8412. '   The access code is invalid.
  8413. Public Const ERROR_INVALID_ACCESS = 12&
  8414.  
  8415. '   The data is invalid.
  8416. Public Const ERROR_INVALID_DATA = 13&
  8417.  
  8418. '   Not enough storage is available to complete this operation.
  8419. Public Const ERROR_OUTOFMEMORY = 14&
  8420.  
  8421. '   The system cannot find the drive specified.
  8422. Public Const ERROR_INVALID_DRIVE = 15&
  8423.  
  8424. '   The directory cannot be removed.
  8425. Public Const ERROR_CURRENT_DIRECTORY = 16&
  8426.  
  8427. '   The system cannot move the file
  8428. '   to a different disk drive.
  8429. Public Const ERROR_NOT_SAME_DEVICE = 17&
  8430.  
  8431. '   There are no more files.
  8432. Public Const ERROR_NO_MORE_FILES = 18&
  8433.  
  8434. '   The media is write protected.
  8435. Public Const ERROR_WRITE_PROTECT = 19&
  8436.  
  8437. '   The system cannot find the device specified.
  8438. Public Const ERROR_BAD_UNIT = 20&
  8439.  
  8440. '   The device is not ready.
  8441. Public Const ERROR_NOT_READY = 21&
  8442.  
  8443. '   The device does not recognize the command.
  8444. Public Const ERROR_BAD_COMMAND = 22&
  8445.  
  8446. '   Data error (cyclic redundancy check)
  8447. Public Const ERROR_CRC = 23&
  8448.  
  8449. '   The program issued a command but the
  8450. '   command length is incorrect.
  8451. Public Const ERROR_BAD_LENGTH = 24&
  8452.  
  8453. '   The drive cannot locate a specific
  8454. '   area or track on the disk.
  8455. Public Const ERROR_SEEK = 25&
  8456.  
  8457. '   The specified disk or diskette cannot be accessed.
  8458. Public Const ERROR_NOT_DOS_DISK = 26&
  8459.  
  8460. '   The drive cannot find the sector requested.
  8461. Public Const ERROR_SECTOR_NOT_FOUND = 27&
  8462.  
  8463. '   The printer is out of paper.
  8464. Public Const ERROR_OUT_OF_PAPER = 28&
  8465.  
  8466. '   The system cannot write to the specified device.
  8467. Public Const ERROR_WRITE_FAULT = 29&
  8468.  
  8469. '   The system cannot read from the specified device.
  8470. Public Const ERROR_READ_FAULT = 30&
  8471.  
  8472. '   A device attached to the system is not functioning.
  8473. Public Const ERROR_GEN_FAILURE = 31&
  8474.  
  8475. '   The process cannot access the file because
  8476. '   it is being used by another process.
  8477. Public Const ERROR_SHARING_VIOLATION = 32&
  8478.  
  8479. '   The process cannot access the file because
  8480. '   another process has locked a portion of the file.
  8481. Public Const ERROR_LOCK_VIOLATION = 33&
  8482.  
  8483. '   The wrong diskette is in the drive.
  8484. '   Insert %2 (Volume Serial Number: %3)
  8485. '   into drive %1.
  8486. Public Const ERROR_WRONG_DISK = 34&
  8487.  
  8488. '   Too many files opened for sharing.
  8489. Public Const ERROR_SHARING_BUFFER_EXCEEDED = 36&
  8490.  
  8491. '   Reached end of file.
  8492. Public Const ERROR_HANDLE_EOF = 38&
  8493.  
  8494. '   The disk is full.
  8495. Public Const ERROR_HANDLE_DISK_FULL = 39&
  8496.  
  8497. '   The network request is not supported.
  8498. Public Const ERROR_NOT_SUPPORTED = 50&
  8499.  
  8500. '   The remote computer is not available.
  8501. Public Const ERROR_REM_NOT_LIST = 51&
  8502.  
  8503. '   A duplicate name exists on the network.
  8504. Public Const ERROR_DUP_NAME = 52&
  8505.  
  8506. '   The network path was not found.
  8507. Public Const ERROR_BAD_NETPATH = 53&
  8508.  
  8509. '   The network is busy.
  8510. Public Const ERROR_NETWORK_BUSY = 54&
  8511.  
  8512. '   The specified network resource or device is no longer
  8513. '   available.
  8514. Public Const ERROR_DEV_NOT_EXIST = 55 '  dderror
  8515.  
  8516. '   The network BIOS command limit has been reached.
  8517. Public Const ERROR_TOO_MANY_CMDS = 56&
  8518.  
  8519. '   A network adapter hardware error occurred.
  8520. Public Const ERROR_ADAP_HDW_ERR = 57&
  8521.  
  8522. '   The specified server cannot perform the requested
  8523. '   operation.
  8524. Public Const ERROR_BAD_NET_RESP = 58&
  8525.  
  8526. '   An unexpected network error occurred.
  8527. Public Const ERROR_UNEXP_NET_ERR = 59&
  8528.  
  8529. '   The remote adapter is not compatible.
  8530. Public Const ERROR_BAD_REM_ADAP = 60&
  8531.  
  8532. '   The printer queue is full.
  8533. Public Const ERROR_PRINTQ_FULL = 61&
  8534.  
  8535. '   Space to store the file waiting to be printed is
  8536. '   not available on the server.
  8537. Public Const ERROR_NO_SPOOL_SPACE = 62&
  8538.  
  8539. '   Your file waiting to be printed was deleted.
  8540. Public Const ERROR_PRINT_CANCELLED = 63&
  8541.  
  8542. '   The specified network name is no longer available.
  8543. Public Const ERROR_NETNAME_DELETED = 64&
  8544.  
  8545. '   Network access is denied.
  8546. Public Const ERROR_NETWORK_ACCESS_DENIED = 65&
  8547.  
  8548. '   The network resource type is not correct.
  8549. Public Const ERROR_BAD_DEV_TYPE = 66&
  8550.  
  8551. '   The network name cannot be found.
  8552. Public Const ERROR_BAD_NET_NAME = 67&
  8553.  
  8554. '   The name limit for the local computer network
  8555. '   adapter card was exceeded.
  8556. Public Const ERROR_TOO_MANY_NAMES = 68&
  8557.  
  8558. '   The network BIOS session limit was exceeded.
  8559. Public Const ERROR_TOO_MANY_SESS = 69&
  8560.  
  8561. '   The remote server has been paused or is in the
  8562. '   process of being started.
  8563. Public Const ERROR_SHARING_PAUSED = 70&
  8564.  
  8565. '   The network request was not accepted.
  8566. Public Const ERROR_REQ_NOT_ACCEP = 71&
  8567.  
  8568. '   The specified printer or disk device has been paused.
  8569. Public Const ERROR_REDIR_PAUSED = 72&
  8570.  
  8571. '   The file exists.
  8572. Public Const ERROR_FILE_EXISTS = 80&
  8573.  
  8574. '   The directory or file cannot be created.
  8575. Public Const ERROR_CANNOT_MAKE = 82&
  8576.  
  8577. '   Fail on INT 24
  8578. Public Const ERROR_FAIL_I24 = 83&
  8579.  
  8580. '   Storage to process this request is not available.
  8581. Public Const ERROR_OUT_OF_STRUCTURES = 84&
  8582.  
  8583. '   The local device name is already in use.
  8584. Public Const ERROR_ALREADY_ASSIGNED = 85&
  8585.  
  8586. '   The specified network password is not correct.
  8587. Public Const ERROR_INVALID_PASSWORD = 86&
  8588.  
  8589. '   The parameter is incorrect.
  8590. Public Const ERROR_INVALID_PARAMETER = 87 '  dderror
  8591.  
  8592. '   A write fault occurred on the network.
  8593. Public Const ERROR_NET_WRITE_FAULT = 88&
  8594.  
  8595. '   The system cannot start another process at
  8596. '   this time.
  8597. Public Const ERROR_NO_PROC_SLOTS = 89&
  8598.  
  8599. '   Cannot create another system semaphore.
  8600. Public Const ERROR_TOO_MANY_SEMAPHORES = 100&
  8601.  
  8602. '   The exclusive semaphore is owned by another process.
  8603. Public Const ERROR_EXCL_SEM_ALREADY_OWNED = 101&
  8604.  
  8605. '   The semaphore is set and cannot be closed.
  8606. Public Const ERROR_SEM_IS_SET = 102&
  8607.  
  8608. '   The semaphore cannot be set again.
  8609. Public Const ERROR_TOO_MANY_SEM_REQUESTS = 103&
  8610.  
  8611. '   Cannot request exclusive semaphores at interrupt time.
  8612. Public Const ERROR_INVALID_AT_INTERRUPT_TIME = 104&
  8613.  
  8614. '   The previous ownership of this semaphore has ended.
  8615. Public Const ERROR_SEM_OWNER_DIED = 105&
  8616.  
  8617. '   Insert the diskette for drive %1.
  8618. Public Const ERROR_SEM_USER_LIMIT = 106&
  8619.  
  8620. '   Program stopped because alternate diskette was not inserted.
  8621. Public Const ERROR_DISK_CHANGE = 107&
  8622.  
  8623. '   The disk is in use or locked by
  8624. '   another process.
  8625. Public Const ERROR_DRIVE_LOCKED = 108&
  8626.  
  8627. '   The pipe has been ended.
  8628. Public Const ERROR_BROKEN_PIPE = 109&
  8629.  
  8630. '   The system cannot open the
  8631. '   device or file specified.
  8632. Public Const ERROR_OPEN_FAILED = 110&
  8633.  
  8634. '   The file name is too long.
  8635. Public Const ERROR_BUFFER_OVERFLOW = 111&
  8636.  
  8637. '   There is not enough space on the disk.
  8638. Public Const ERROR_DISK_FULL = 112&
  8639.  
  8640. '   No more internal file identifiers available.
  8641. Public Const ERROR_NO_MORE_SEARCH_HANDLES = 113&
  8642.  
  8643. '   The target internal file identifier is incorrect.
  8644. Public Const ERROR_INVALID_TARGET_HANDLE = 114&
  8645.  
  8646. '   The IOCTL call made by the application program is
  8647. '   not correct.
  8648. Public Const ERROR_INVALID_CATEGORY = 117&
  8649.  
  8650. '   The verify-on-write switch parameter value is not
  8651. '   correct.
  8652. Public Const ERROR_INVALID_VERIFY_SWITCH = 118&
  8653.  
  8654. '   The system does not support the command requested.
  8655. Public Const ERROR_BAD_DRIVER_LEVEL = 119&
  8656.  
  8657. '   This function is only valid in Windows NT mode.
  8658. Public Const ERROR_CALL_NOT_IMPLEMENTED = 120&
  8659.  
  8660. '   The semaphore timeout period has expired.
  8661. Public Const ERROR_SEM_TIMEOUT = 121&
  8662.  
  8663. '   The data area passed to a system call is too
  8664. '   small.
  8665. Public Const ERROR_INSUFFICIENT_BUFFER = 122 '  dderror
  8666.  
  8667. '   The filename, directory name, or volume label syntax is incorrect.
  8668. Public Const ERROR_INVALID_NAME = 123&
  8669.  
  8670. '   The system call level is not correct.
  8671. Public Const ERROR_INVALID_LEVEL = 124&
  8672.  
  8673. '   The disk has no volume label.
  8674. Public Const ERROR_NO_VOLUME_LABEL = 125&
  8675.  
  8676. '   The specified module could not be found.
  8677. Public Const ERROR_MOD_NOT_FOUND = 126&
  8678.  
  8679. '   The specified procedure could not be found.
  8680. Public Const ERROR_PROC_NOT_FOUND = 127&
  8681.  
  8682. '   There are no child processes to wait for.
  8683. Public Const ERROR_WAIT_NO_CHILDREN = 128&
  8684.  
  8685. '   The %1 application cannot be run in Windows NT mode.
  8686. Public Const ERROR_CHILD_NOT_COMPLETE = 129&
  8687.  
  8688. '   Attempt to use a file handle to an open disk partition for an
  8689. '   operation other than raw disk I/O.
  8690. Public Const ERROR_DIRECT_ACCESS_HANDLE = 130&
  8691.  
  8692. '   An attempt was made to move the file pointer before the beginning of the file.
  8693. Public Const ERROR_NEGATIVE_SEEK = 131&
  8694.  
  8695. '   The file pointer cannot be set on the specified device or file.
  8696. Public Const ERROR_SEEK_ON_DEVICE = 132&
  8697.  
  8698. '   A JOIN or SUBST command
  8699. '   cannot be used for a drive that
  8700. '   contains previously joined drives.
  8701. Public Const ERROR_IS_JOIN_TARGET = 133&
  8702.  
  8703. '   An attempt was made to use a
  8704. '   JOIN or SUBST command on a drive that has
  8705. '   already been joined.
  8706. Public Const ERROR_IS_JOINED = 134&
  8707.  
  8708. '   An attempt was made to use a
  8709. '   JOIN or SUBST command on a drive that has
  8710. '   already been substituted.
  8711. Public Const ERROR_IS_SUBSTED = 135&
  8712.  
  8713. '   The system tried to delete
  8714. '   the JOIN of a drive that is not joined.
  8715. Public Const ERROR_NOT_JOINED = 136&
  8716.  
  8717. '   The system tried to delete the
  8718. '   substitution of a drive that is not substituted.
  8719. Public Const ERROR_NOT_SUBSTED = 137&
  8720.  
  8721. '   The system tried to join a drive
  8722. '   to a directory on a joined drive.
  8723. Public Const ERROR_JOIN_TO_JOIN = 138&
  8724.  
  8725. '   The system tried to substitute a
  8726. '   drive to a directory on a substituted drive.
  8727. Public Const ERROR_SUBST_TO_SUBST = 139&
  8728.  
  8729. '   The system tried to join a drive to
  8730. '   a directory on a substituted drive.
  8731. Public Const ERROR_JOIN_TO_SUBST = 140&
  8732.  
  8733. '   The system tried to SUBST a drive
  8734. '   to a directory on a joined drive.
  8735. Public Const ERROR_SUBST_TO_JOIN = 141&
  8736.  
  8737. '   The system cannot perform a JOIN or SUBST at this time.
  8738. Public Const ERROR_BUSY_DRIVE = 142&
  8739.  
  8740. '   The system cannot join or substitute a
  8741. '   drive to or for a directory on the same drive.
  8742. Public Const ERROR_SAME_DRIVE = 143&
  8743.  
  8744. '   The directory is not a subdirectory of the root directory.
  8745. Public Const ERROR_DIR_NOT_ROOT = 144&
  8746.  
  8747. '   The directory is not empty.
  8748. Public Const ERROR_DIR_NOT_EMPTY = 145&
  8749.  
  8750. '   The path specified is being used in
  8751. '   a substitute.
  8752. Public Const ERROR_IS_SUBST_PATH = 146&
  8753.  
  8754. '   Not enough resources are available to
  8755. '   process this command.
  8756. Public Const ERROR_IS_JOIN_PATH = 147&
  8757.  
  8758. '   The path specified cannot be used at this time.
  8759. Public Const ERROR_PATH_BUSY = 148&
  8760.  
  8761. '   An attempt was made to join
  8762. '   or substitute a drive for which a directory
  8763. '   on the drive is the target of a previous
  8764. '   substitute.
  8765. Public Const ERROR_IS_SUBST_TARGET = 149&
  8766.  
  8767. '   System trace information was not specified in your
  8768. '   CONFIG.SYS file, or tracing is disallowed.
  8769. Public Const ERROR_SYSTEM_TRACE = 150&
  8770.  
  8771. '   The number of specified semaphore events for
  8772. '   DosMuxSemWait is not correct.
  8773. Public Const ERROR_INVALID_EVENT_COUNT = 151&
  8774.  
  8775. '   DosMuxSemWait did not execute; too many semaphores
  8776. '   are already set.
  8777. Public Const ERROR_TOO_MANY_MUXWAITERS = 152&
  8778.  
  8779. '   The DosMuxSemWait list is not correct.
  8780. Public Const ERROR_INVALID_LIST_FORMAT = 153&
  8781.  
  8782. '   The volume label you entered exceeds the
  8783. '   11 character limit.  The first 11 characters were written
  8784. '   to disk.  Any characters that exceeded the 11 character limit
  8785. '   were automatically deleted.
  8786. Public Const ERROR_LABEL_TOO_LONG = 154&
  8787.  
  8788. '   Cannot create another thread.
  8789. Public Const ERROR_TOO_MANY_TCBS = 155&
  8790.  
  8791. '   The recipient process has refused the signal.
  8792. Public Const ERROR_SIGNAL_REFUSED = 156&
  8793.  
  8794. '   The segment is already discarded and cannot be locked.
  8795. Public Const ERROR_DISCARDED = 157&
  8796.  
  8797. '   The segment is already unlocked.
  8798. Public Const ERROR_NOT_LOCKED = 158&
  8799.  
  8800. '   The address for the thread ID is not correct.
  8801. Public Const ERROR_BAD_THREADID_ADDR = 159&
  8802.  
  8803. '   The argument string passed to DosExecPgm is not correct.
  8804. Public Const ERROR_BAD_ARGUMENTS = 160&
  8805.  
  8806. '   The specified path is invalid.
  8807. Public Const ERROR_BAD_PATHNAME = 161&
  8808.  
  8809. '   A signal is already pending.
  8810. Public Const ERROR_SIGNAL_PENDING = 162&
  8811.  
  8812. '   No more threads can be created in the system.
  8813. Public Const ERROR_MAX_THRDS_REACHED = 164&
  8814.  
  8815. '   Unable to lock a region of a file.
  8816. Public Const ERROR_LOCK_FAILED = 167&
  8817.  
  8818. '   The requested resource is in use.
  8819. Public Const ERROR_BUSY = 170&
  8820.  
  8821. '   A lock request was not outstanding for the supplied cancel region.
  8822. Public Const ERROR_CANCEL_VIOLATION = 173&
  8823.  
  8824. '   The file system does not support atomic changes to the lock type.
  8825. Public Const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174&
  8826.  
  8827. '   The system detected a segment number that was not correct.
  8828. Public Const ERROR_INVALID_SEGMENT_NUMBER = 180&
  8829.  
  8830. '   The operating system cannot run %1.
  8831. Public Const ERROR_INVALID_ORDINAL = 182&
  8832.  
  8833. '   Cannot create a file when that file already exists.
  8834. Public Const ERROR_ALREADY_EXISTS = 183&
  8835.  
  8836. '   The flag passed is not correct.
  8837. Public Const ERROR_INVALID_FLAG_NUMBER = 186&
  8838.  
  8839. '   The specified system semaphore name was not found.
  8840. Public Const ERROR_SEM_NOT_FOUND = 187&
  8841.  
  8842. '   The operating system cannot run %1.
  8843. Public Const ERROR_INVALID_STARTING_CODESEG = 188&
  8844.  
  8845. '   The operating system cannot run %1.
  8846. Public Const ERROR_INVALID_STACKSEG = 189&
  8847.  
  8848. '   The operating system cannot run %1.
  8849. Public Const ERROR_INVALID_MODULETYPE = 190&
  8850.  
  8851. '   Cannot run %1 in Windows NT mode.
  8852. Public Const ERROR_INVALID_EXE_SIGNATURE = 191&
  8853.  
  8854. '   The operating system cannot run %1.
  8855. Public Const ERROR_EXE_MARKED_INVALID = 192&
  8856.  
  8857. '   %1 is not a valid Windows NT application.
  8858. Public Const ERROR_BAD_EXE_FORMAT = 193&
  8859.  
  8860. '   The operating system cannot run %1.
  8861. Public Const ERROR_ITERATED_DATA_EXCEEDS_64k = 194&
  8862.  
  8863. '   The operating system cannot run %1.
  8864. Public Const ERROR_INVALID_MINALLOCSIZE = 195&
  8865.  
  8866. '   The operating system cannot run this
  8867. '   application program.
  8868. Public Const ERROR_DYNLINK_FROM_INVALID_RING = 196&
  8869.  
  8870. '   The operating system is not presently
  8871. '   configured to run this application.
  8872. Public Const ERROR_IOPL_NOT_ENABLED = 197&
  8873.  
  8874. '   The operating system cannot run %1.
  8875. Public Const ERROR_INVALID_SEGDPL = 198&
  8876.  
  8877. '   The operating system cannot run this
  8878. '   application program.
  8879. Public Const ERROR_AUTODATASEG_EXCEEDS_64k = 199&
  8880.  
  8881. '   The code segment cannot be greater than or equal to 64KB.
  8882. Public Const ERROR_RING2SEG_MUST_BE_MOVABLE = 200&
  8883.  
  8884. '   The operating system cannot run %1.
  8885. Public Const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201&
  8886.  
  8887. '   The operating system cannot run %1.
  8888. Public Const ERROR_INFLOOP_IN_RELOC_CHAIN = 202&
  8889.  
  8890. '   The system could not find the environment
  8891. '   option that was entered.
  8892. Public Const ERROR_ENVVAR_NOT_FOUND = 203&
  8893.  
  8894. '   No process in the command subtree has a
  8895. '   signal handler.
  8896. Public Const ERROR_NO_SIGNAL_SENT = 205&
  8897.  
  8898. '   The filename or extension is too long.
  8899. Public Const ERROR_FILENAME_EXCED_RANGE = 206&
  8900.  
  8901. '   The ring 2 stack is in use.
  8902. Public Const ERROR_RING2_STACK_IN_USE = 207&
  8903.  
  8904. '   The Global filename characters,  or ?, are entered
  8905. '   incorrectly or too many Global filename characters are specified.
  8906. Public Const ERROR_META_EXPANSION_TOO_LONG = 208&
  8907.  
  8908. '   The signal being posted is not correct.
  8909. Public Const ERROR_INVALID_SIGNAL_NUMBER = 209&
  8910.  
  8911. '   The signal handler cannot be set.
  8912. Public Const ERROR_THREAD_1_INACTIVE = 210&
  8913.  
  8914. '   The segment is locked and cannot be reallocated.
  8915. Public Const ERROR_LOCKED = 212&
  8916.  
  8917. '   Too many dynamic link modules are attached to this
  8918. '   program or dynamic link module.
  8919. Public Const ERROR_TOO_MANY_MODULES = 214&
  8920.  
  8921. '   Can't nest calls to LoadModule.
  8922. Public Const ERROR_NESTING_NOT_ALLOWED = 215&
  8923.  
  8924. '   The pipe state is invalid.
  8925. Public Const ERROR_BAD_PIPE = 230&
  8926.  
  8927. '   All pipe instances are busy.
  8928. Public Const ERROR_PIPE_BUSY = 231&
  8929.  
  8930. '   The pipe is being closed.
  8931. Public Const ERROR_NO_DATA = 232&
  8932.  
  8933. '   No process is on the other end of the pipe.
  8934. Public Const ERROR_PIPE_NOT_CONNECTED = 233&
  8935.  
  8936. '   More data is available.
  8937. Public Const ERROR_MORE_DATA = 234 '  dderror
  8938.  
  8939. '   The session was cancelled.
  8940. Public Const ERROR_VC_DISCONNECTED = 240&
  8941.  
  8942. '   The specified extended attribute name was invalid.
  8943. Public Const ERROR_INVALID_EA_NAME = 254&
  8944.  
  8945. '   The extended attributes are inconsistent.
  8946. Public Const ERROR_EA_LIST_INCONSISTENT = 255&
  8947.  
  8948. '   No more data is available.
  8949. Public Const ERROR_NO_MORE_ITEMS = 259&
  8950.  
  8951. '   The Copy API cannot be used.
  8952. Public Const ERROR_CANNOT_COPY = 266&
  8953.  
  8954. '   The directory name is invalid.
  8955. Public Const ERROR_DIRECTORY = 267&
  8956.  
  8957. '   The extended attributes did not fit in the buffer.
  8958. Public Const ERROR_EAS_DIDNT_FIT = 275&
  8959.  
  8960. '   The extended attribute file on the mounted file system is corrupt.
  8961. Public Const ERROR_EA_FILE_CORRUPT = 276&
  8962.  
  8963. '   The extended attribute table file is full.
  8964. Public Const ERROR_EA_TABLE_FULL = 277&
  8965.  
  8966. '   The specified extended attribute handle is invalid.
  8967. Public Const ERROR_INVALID_EA_HANDLE = 278&
  8968.  
  8969. '   The mounted file system does not support extended attributes.
  8970. Public Const ERROR_EAS_NOT_SUPPORTED = 282&
  8971.  
  8972. '   Attempt to release mutex not owned by caller.
  8973. Public Const ERROR_NOT_OWNER = 288&
  8974.  
  8975. '   Too many posts were made to a semaphore.
  8976. Public Const ERROR_TOO_MANY_POSTS = 298&
  8977.  
  8978. '   The system cannot find message for message number 0x%1
  8979. '   in message file for %2.
  8980. Public Const ERROR_MR_MID_NOT_FOUND = 317&
  8981.  
  8982. '   Attempt to access invalid address.
  8983. Public Const ERROR_INVALID_ADDRESS = 487&
  8984.  
  8985. '   Arithmetic result exceeded 32 bits.
  8986. Public Const ERROR_ARITHMETIC_OVERFLOW = 534&
  8987.  
  8988. '   There is a process on other end of the pipe.
  8989. Public Const ERROR_PIPE_CONNECTED = 535&
  8990.  
  8991. '   Waiting for a process to open the other end of the pipe.
  8992. Public Const ERROR_PIPE_LISTENING = 536&
  8993.  
  8994. '   Access to the extended attribute was denied.
  8995. Public Const ERROR_EA_ACCESS_DENIED = 994&
  8996.  
  8997. '   The I/O operation has been aborted because of either a thread exit
  8998. '   or an application request.
  8999. Public Const ERROR_OPERATION_ABORTED = 995&
  9000.  
  9001. '   Overlapped I/O event is not in a signalled state.
  9002. Public Const ERROR_IO_INCOMPLETE = 996&
  9003.  
  9004. '   Overlapped I/O operation is in progress.
  9005. Public Const ERROR_IO_PENDING = 997 '  dderror
  9006.  
  9007. '   Invalid access to memory location.
  9008. Public Const ERROR_NOACCESS = 998&
  9009.  
  9010. '   Error performing inpage operation.
  9011. Public Const ERROR_SWAPERROR = 999&
  9012.  
  9013. '   Recursion too deep, stack overflowed.
  9014. Public Const ERROR_STACK_OVERFLOW = 1001&
  9015.  
  9016. '   The window cannot act on the sent message.
  9017. Public Const ERROR_INVALID_MESSAGE = 1002&
  9018.  
  9019. '   Cannot complete this function.
  9020. Public Const ERROR_CAN_NOT_COMPLETE = 1003&
  9021.  
  9022. '   Invalid flags.
  9023. Public Const ERROR_INVALID_FLAGS = 1004&
  9024.  
  9025. '   The volume does not contain a recognized file system.
  9026. '   Please make sure that all required file system drivers are loaded and that the
  9027. '   volume is not corrupt.
  9028. Public Const ERROR_UNRECOGNIZED_VOLUME = 1005&
  9029.  
  9030. '   The volume for a file has been externally altered such that the
  9031. '   opened file is no longer valid.
  9032. Public Const ERROR_FILE_INVALID = 1006&
  9033.  
  9034. '   The requested operation cannot be performed in full-screen mode.
  9035. Public Const ERROR_FULLSCREEN_MODE = 1007&
  9036.  
  9037. '   An attempt was made to reference a token that does not exist.
  9038. Public Const ERROR_NO_TOKEN = 1008&
  9039.  
  9040. '   The configuration registry database is corrupt.
  9041. Public Const ERROR_BADDB = 1009&
  9042.  
  9043. '   The configuration registry key is invalid.
  9044. Public Const ERROR_BADKEY = 1010&
  9045.  
  9046. '   The configuration registry key could not be opened.
  9047. Public Const ERROR_CANTOPEN = 1011&
  9048.  
  9049. '   The configuration registry key could not be read.
  9050. Public Const ERROR_CANTREAD = 1012&
  9051.  
  9052. '   The configuration registry key could not be written.
  9053. Public Const ERROR_CANTWRITE = 1013&
  9054.  
  9055. '   One of the files in the Registry database had to be recovered
  9056. '   by use of a log or alternate copy.  The recovery was successful.
  9057. Public Const ERROR_REGISTRY_RECOVERED = 1014&
  9058.  
  9059. '   The Registry is corrupt. The structure of one of the files that contains
  9060. '   Registry data is corrupt, or the system's image of the file in memory
  9061. '   is corrupt, or the file could not be recovered because the alternate
  9062. '   copy or log was absent or corrupt.
  9063. Public Const ERROR_REGISTRY_CORRUPT = 1015&
  9064.  
  9065. '   An I/O operation initiated by the Registry failed unrecoverably.
  9066. '   The Registry could not read in, or write out, or flush, one of the files
  9067. '   that contain the system's image of the Registry.
  9068. Public Const ERROR_REGISTRY_IO_FAILED = 1016&
  9069.  
  9070. '   The system has attempted to load or restore a file into the Registry, but the
  9071. '   specified file is not in a Registry file format.
  9072. Public Const ERROR_NOT_REGISTRY_FILE = 1017&
  9073.  
  9074. '   Illegal operation attempted on a Registry key which has been marked for deletion.
  9075. Public Const ERROR_KEY_DELETED = 1018&
  9076.  
  9077. '   System could not allocate the required space in a Registry log.
  9078. Public Const ERROR_NO_LOG_SPACE = 1019&
  9079.  
  9080. '   Cannot create a symbolic link in a Registry key that already
  9081. '   has subkeys or values.
  9082. Public Const ERROR_KEY_HAS_CHILDREN = 1020&
  9083.  
  9084. '   Cannot create a stable subkey under a volatile parent key.
  9085. Public Const ERROR_CHILD_MUST_BE_VOLATILE = 1021&
  9086.  
  9087. '   A notify change request is being completed and the information
  9088. '   is not being returned in the caller's buffer. The caller now
  9089. '   needs to enumerate the files to find the changes.
  9090. Public Const ERROR_NOTIFY_ENUM_DIR = 1022&
  9091.  
  9092. '   A stop control has been sent to a service which other running services
  9093. '   are dependent on.
  9094. Public Const ERROR_DEPENDENT_SERVICES_RUNNING = 1051&
  9095.  
  9096. '   The requested control is not valid for this service
  9097. Public Const ERROR_INVALID_SERVICE_CONTROL = 1052&
  9098.  
  9099. '   The service did not respond to the start or control request in a timely
  9100. '   fashion.
  9101. Public Const ERROR_SERVICE_REQUEST_TIMEOUT = 1053&
  9102.  
  9103. '   A thread could not be created for the service.
  9104. Public Const ERROR_SERVICE_NO_THREAD = 1054&
  9105.  
  9106. '   The service database is locked.
  9107. Public Const ERROR_SERVICE_DATABASE_LOCKED = 1055&
  9108.  
  9109. '   An instance of the service is already running.
  9110. Public Const ERROR_SERVICE_ALREADY_RUNNING = 1056&
  9111.  
  9112. '   The account name is invalid or does not exist.
  9113. Public Const ERROR_INVALID_SERVICE_ACCOUNT = 1057&
  9114.  
  9115. '   The specified service is disabled and cannot be started.
  9116. Public Const ERROR_SERVICE_DISABLED = 1058&
  9117.  
  9118. '   Circular service dependency was specified.
  9119. Public Const ERROR_CIRCULAR_DEPENDENCY = 1059&
  9120.  
  9121. '   The specified service does not exist as an installed service.
  9122. Public Const ERROR_SERVICE_DOES_NOT_EXIST = 1060&
  9123.  
  9124. '   The service cannot accept control messages at this time.
  9125. Public Const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061&
  9126.  
  9127. '   The service has not been started.
  9128. Public Const ERROR_SERVICE_NOT_ACTIVE = 1062&
  9129.  
  9130. '   The service process could not connect to the service controller.
  9131. Public Const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063&
  9132.  
  9133. '   An exception occurred in the service when handling the control request.
  9134. Public Const ERROR_EXCEPTION_IN_SERVICE = 1064&
  9135.  
  9136. '   The database specified does not exist.
  9137. Public Const ERROR_DATABASE_DOES_NOT_EXIST = 1065&
  9138.  
  9139. '   The service has returned a service-specific error code.
  9140. Public Const ERROR_SERVICE_SPECIFIC_ERROR = 1066&
  9141.  
  9142. '   The process terminated unexpectedly.
  9143. Public Const ERROR_PROCESS_ABORTED = 1067&
  9144.  
  9145. '   The dependency service or group failed to start.
  9146. Public Const ERROR_SERVICE_DEPENDENCY_FAIL = 1068&
  9147.  
  9148. '   The service did not start due to a logon failure.
  9149. Public Const ERROR_SERVICE_LOGON_FAILED = 1069&
  9150.  
  9151. '   After starting, the service hung in a start-pending state.
  9152. Public Const ERROR_SERVICE_START_HANG = 1070&
  9153.  
  9154. '   The specified service database lock is invalid.
  9155. Public Const ERROR_INVALID_SERVICE_LOCK = 1071&
  9156.  
  9157. '   The specified service has been marked for deletion.
  9158. Public Const ERROR_SERVICE_MARKED_FOR_DELETE = 1072&
  9159.  
  9160. '   The specified service already exists.
  9161. Public Const ERROR_SERVICE_EXISTS = 1073&
  9162.  
  9163. '   The system is currently running with the last-known-good configuration.
  9164. Public Const ERROR_ALREADY_RUNNING_LKG = 1074&
  9165.  
  9166. '   The dependency service does not exist or has been marked for
  9167. '   deletion.
  9168. Public Const ERROR_SERVICE_DEPENDENCY_DELETED = 1075&
  9169.  
  9170. '   The current boot has already been accepted for use as the
  9171. '   last-known-good control set.
  9172. Public Const ERROR_BOOT_ALREADY_ACCEPTED = 1076&
  9173.  
  9174. '   No attempts to start the service have been made since the last boot.
  9175. Public Const ERROR_SERVICE_NEVER_STARTED = 1077&
  9176.  
  9177. '   The name is already in use as either a service name or a service display
  9178. '   name.
  9179. Public Const ERROR_DUPLICATE_SERVICE_NAME = 1078&
  9180.  
  9181. '   The physical end of the tape has been reached.
  9182. Public Const ERROR_END_OF_MEDIA = 1100&
  9183.  
  9184. '   A tape access reached a filemark.
  9185. Public Const ERROR_FILEMARK_DETECTED = 1101&
  9186.  
  9187. '   Beginning of tape or partition was encountered.
  9188. Public Const ERROR_BEGINNING_OF_MEDIA = 1102&
  9189.  
  9190. '   A tape access reached the end of a set of files.
  9191. Public Const ERROR_SETMARK_DETECTED = 1103&
  9192.  
  9193. '   No more data is on the tape.
  9194. Public Const ERROR_NO_DATA_DETECTED = 1104&
  9195.  
  9196. '   Tape could not be partitioned.
  9197. Public Const ERROR_PARTITION_FAILURE = 1105&
  9198.  
  9199. '   When accessing a new tape of a multivolume partition, the current
  9200. '   blocksize is incorrect.
  9201. Public Const ERROR_INVALID_BLOCK_LENGTH = 1106&
  9202.  
  9203. '   Tape partition information could not be found when loading a tape.
  9204. Public Const ERROR_DEVICE_NOT_PARTITIONED = 1107&
  9205.  
  9206. '   Unable to lock the media eject mechanism.
  9207. Public Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108&
  9208.  
  9209. '   Unable to unload the media.
  9210. Public Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109&
  9211.  
  9212. '   Media in drive may have changed.
  9213. Public Const ERROR_MEDIA_CHANGED = 1110&
  9214.  
  9215. '   The I/O bus was reset.
  9216. Public Const ERROR_BUS_RESET = 1111&
  9217.  
  9218. '   No media in drive.
  9219. Public Const ERROR_NO_MEDIA_IN_DRIVE = 1112&
  9220.  
  9221. '   No mapping for the Unicode character exists in the target multi-byte code page.
  9222. Public Const ERROR_NO_UNICODE_TRANSLATION = 1113&
  9223.  
  9224. '   A dynamic link library (DLL) initialization routine failed.
  9225. Public Const ERROR_DLL_INIT_FAILED = 1114&
  9226.  
  9227. '   A system shutdown is in progress.
  9228. Public Const ERROR_SHUTDOWN_IN_PROGRESS = 1115&
  9229.  
  9230. '   Unable to abort the system shutdown because no shutdown was in progress.
  9231. Public Const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116&
  9232.  
  9233. '   The request could not be performed because of an I/O device error.
  9234. Public Const ERROR_IO_DEVICE = 1117&
  9235.  
  9236. '   No serial device was successfully initialized.  The serial driver will unload.
  9237. Public Const ERROR_SERIAL_NO_DEVICE = 1118&
  9238.  
  9239. '   Unable to open a device that was sharing an interrupt request (IRQ)
  9240. '   with other devices. At least one other device that uses that IRQ
  9241. '   was already opened.
  9242. Public Const ERROR_IRQ_BUSY = 1119&
  9243.  
  9244. '   A serial I/O operation was completed by another write to the serial port.
  9245. '   (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)
  9246. Public Const ERROR_MORE_WRITES = 1120&
  9247.  
  9248. '   A serial I/O operation completed because the time-out period expired.
  9249. '   (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)
  9250. Public Const ERROR_COUNTER_TIMEOUT = 1121&
  9251.  
  9252. '   No ID address mark was found on the floppy disk.
  9253. Public Const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122&
  9254.  
  9255. '   Mismatch between the floppy disk sector ID field and the floppy disk
  9256. '   controller track address.
  9257. Public Const ERROR_FLOPPY_WRONG_CYLINDER = 1123&
  9258.  
  9259. '   The floppy disk controller reported an error that is not recognized
  9260. '   by the floppy disk driver.
  9261. Public Const ERROR_FLOPPY_UNKNOWN_ERROR = 1124&
  9262.  
  9263. '   The floppy disk controller returned inconsistent results in its registers.
  9264. Public Const ERROR_FLOPPY_BAD_REGISTERS = 1125&
  9265.  
  9266. '   While accessing the hard disk, a recalibrate operation failed, even after retries.
  9267. Public Const ERROR_DISK_RECALIBRATE_FAILED = 1126&
  9268.  
  9269. '   While accessing the hard disk, a disk operation failed even after retries.
  9270. Public Const ERROR_DISK_OPERATION_FAILED = 1127&
  9271.  
  9272. '   While accessing the hard disk, a disk controller reset was needed, but
  9273. '   even that failed.
  9274. Public Const ERROR_DISK_RESET_FAILED = 1128&
  9275.  
  9276. '   Physical end of tape encountered.
  9277. Public Const ERROR_EOM_OVERFLOW = 1129&
  9278.  
  9279. '   Not enough server storage is available to process this command.
  9280. Public Const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130&
  9281.  
  9282. '   A potential deadlock condition has been detected.
  9283. Public Const ERROR_POSSIBLE_DEADLOCK = 1131&
  9284.  
  9285. '   The base address or the file offset specified does not have the proper
  9286. '   alignment.
  9287. Public Const ERROR_MAPPED_ALIGNMENT = 1132&
  9288.  
  9289. ' NEW for Win32
  9290. Public Const ERROR_INVALID_PIXEL_FORMAT = 2000
  9291. Public Const ERROR_BAD_DRIVER = 2001
  9292. Public Const ERROR_INVALID_WINDOW_STYLE = 2002
  9293. Public Const ERROR_METAFILE_NOT_SUPPORTED = 2003
  9294. Public Const ERROR_TRANSFORM_NOT_SUPPORTED = 2004
  9295. Public Const ERROR_CLIPPING_NOT_SUPPORTED = 2005
  9296. Public Const ERROR_UNKNOWN_PRINT_MONITOR = 3000
  9297. Public Const ERROR_PRINTER_DRIVER_IN_USE = 3001
  9298. Public Const ERROR_SPOOL_FILE_NOT_FOUND = 3002
  9299. Public Const ERROR_SPL_NO_STARTDOC = 3003
  9300. Public Const ERROR_SPL_NO_ADDJOB = 3004
  9301. Public Const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005
  9302. Public Const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006
  9303. Public Const ERROR_WINS_INTERNAL = 4000
  9304. Public Const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001
  9305. Public Const ERROR_STATIC_INIT = 4002
  9306. Public Const ERROR_INC_BACKUP = 4003
  9307. Public Const ERROR_FULL_BACKUP = 4004
  9308. Public Const ERROR_REC_NON_EXISTENT = 4005
  9309. Public Const ERROR_RPL_NOT_ALLOWED = 4006
  9310. Public Const SEVERITY_SUCCESS = 0
  9311. Public Const SEVERITY_ERROR = 1
  9312. Public Const FACILITY_NT_BIT = &H10000000
  9313. Public Const NOERROR = 0
  9314. Public Const E_UNEXPECTED = &H8000FFFF
  9315. Public Const E_NOTIMPL = &H80004001
  9316. Public Const E_OUTOFMEMORY = &H8007000E
  9317. Public Const E_INVALIDARG = &H80070057
  9318. Public Const E_NOINTERFACE = &H80004002
  9319. Public Const E_POINTER = &H80004003
  9320. Public Const E_HANDLE = &H80070006
  9321. Public Const E_ABORT = &H80004004
  9322. Public Const E_FAIL = &H80004005
  9323. Public Const E_ACCESSDENIED = &H80070005
  9324. Public Const CO_E_INIT_TLS = &H80004006
  9325. Public Const CO_E_INIT_SHARED_ALLOCATOR = &H80004007
  9326. Public Const CO_E_INIT_MEMORY_ALLOCATOR = &H80004008
  9327. Public Const CO_E_INIT_CLASS_CACHE = &H80004009
  9328. Public Const CO_E_INIT_RPC_CHANNEL = &H8000400A
  9329. Public Const CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B
  9330. Public Const CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C
  9331. Public Const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D
  9332. Public Const CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E
  9333. Public Const CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F
  9334. Public Const CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010
  9335. Public Const CO_E_INIT_SCM_EXEC_FAILURE = &H80004011
  9336. Public Const CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012
  9337. Public Const S_OK = &H0
  9338. Public Const S_FALSE = &H1
  9339. Public Const OLE_E_FIRST = &H80040000
  9340. Public Const OLE_E_LAST = &H800400FF
  9341. Public Const OLE_S_FIRST = &H40000
  9342. Public Const OLE_S_LAST = &H400FF
  9343. Public Const OLE_E_OLEVERB = &H80040000
  9344. Public Const OLE_E_ADVF = &H80040001
  9345. Public Const OLE_E_ENUM_NOMORE = &H80040002
  9346. Public Const OLE_E_ADVISENOTSUPPORTED = &H80040003
  9347. Public Const OLE_E_NOCONNECTION = &H80040004
  9348. Public Const OLE_E_NOTRUNNING = &H80040005
  9349. Public Const OLE_E_NOCACHE = &H80040006
  9350. Public Const OLE_E_BLANK = &H80040007
  9351. Public Const OLE_E_CLASSDIFF = &H80040008
  9352. Public Const OLE_E_CANT_GETMONIKER = &H80040009
  9353. Public Const OLE_E_CANT_BINDTOSOURCE = &H8004000A
  9354. Public Const OLE_E_STATIC = &H8004000B
  9355. Public Const OLE_E_PROMPTSAVECANCELLED = &H8004000C
  9356. Public Const OLE_E_INVALIDRECT = &H8004000D
  9357. Public Const OLE_E_WRONGCOMPOBJ = &H8004000E
  9358. Public Const OLE_E_INVALIDHWND = &H8004000F
  9359. Public Const OLE_E_NOT_INPLACEACTIVE = &H80040010
  9360. Public Const OLE_E_CANTCONVERT = &H80040011
  9361. Public Const OLE_E_NOSTORAGE = &H80040012
  9362. Public Const DV_E_FORMATETC = &H80040064
  9363. Public Const DV_E_DVTARGETDEVICE = &H80040065
  9364. Public Const DV_E_STGMEDIUM = &H80040066
  9365. Public Const DV_E_STATDATA = &H80040067
  9366. Public Const DV_E_LINDEX = &H80040068
  9367. Public Const DV_E_TYMED = &H80040069
  9368. Public Const DV_E_CLIPFORMAT = &H8004006A
  9369. Public Const DV_E_DVASPECT = &H8004006B
  9370. Public Const DV_E_DVTARGETDEVICE_SIZE = &H8004006C
  9371. Public Const DV_E_NOIVIEWOBJECT = &H8004006D
  9372. Public Const DRAGDROP_E_FIRST = &H80040100
  9373. Public Const DRAGDROP_E_LAST = &H8004010F
  9374. Public Const DRAGDROP_S_FIRST = &H40100
  9375. Public Const DRAGDROP_S_LAST = &H4010F
  9376. Public Const DRAGDROP_E_NOTREGISTERED = &H80040100
  9377. Public Const DRAGDROP_E_ALREADYREGISTERED = &H80040101
  9378. Public Const DRAGDROP_E_INVALIDHWND = &H80040102
  9379. Public Const CLASSFACTORY_E_FIRST = &H80040110
  9380. Public Const CLASSFACTORY_E_LAST = &H8004011F
  9381. Public Const CLASSFACTORY_S_FIRST = &H40110
  9382. Public Const CLASSFACTORY_S_LAST = &H4011F
  9383. Public Const CLASS_E_NOAGGREGATION = &H80040110
  9384. Public Const CLASS_E_CLASSNOTAVAILABLE = &H80040111
  9385. Public Const MARSHAL_E_FIRST = &H80040120
  9386. Public Const MARSHAL_E_LAST = &H8004012F
  9387. Public Const MARSHAL_S_FIRST = &H40120
  9388. Public Const MARSHAL_S_LAST = &H4012F
  9389. Public Const DATA_E_FIRST = &H80040130
  9390. Public Const DATA_E_LAST = &H8004013F
  9391. Public Const DATA_S_FIRST = &H40130
  9392. Public Const DATA_S_LAST = &H4013F
  9393. Public Const VIEW_E_FIRST = &H80040140
  9394. Public Const VIEW_E_LAST = &H8004014F
  9395. Public Const VIEW_S_FIRST = &H40140
  9396. Public Const VIEW_S_LAST = &H4014F
  9397. Public Const VIEW_E_DRAW = &H80040140
  9398. Public Const REGDB_E_FIRST = &H80040150
  9399. Public Const REGDB_E_LAST = &H8004015F
  9400. Public Const REGDB_S_FIRST = &H40150
  9401. Public Const REGDB_S_LAST = &H4015F
  9402. Public Const REGDB_E_READREGDB = &H80040150
  9403. Public Const REGDB_E_WRITEREGDB = &H80040151
  9404. Public Const REGDB_E_KEYMISSING = &H80040152
  9405. Public Const REGDB_E_INVALIDVALUE = &H80040153
  9406. Public Const REGDB_E_CLASSNOTREG = &H80040154
  9407. Public Const REGDB_E_IIDNOTREG = &H80040155
  9408. Public Const CACHE_E_FIRST = &H80040170
  9409. Public Const CACHE_E_LAST = &H8004017F
  9410. Public Const CACHE_S_FIRST = &H40170
  9411. Public Const CACHE_S_LAST = &H4017F
  9412. Public Const CACHE_E_NOCACHE_UPDATED = &H80040170
  9413. Public Const OLEOBJ_E_FIRST = &H80040180
  9414. Public Const OLEOBJ_E_LAST = &H8004018F
  9415. Public Const OLEOBJ_S_FIRST = &H40180
  9416. Public Const OLEOBJ_S_LAST = &H4018F
  9417. Public Const OLEOBJ_E_NOVERBS = &H80040180
  9418. Public Const OLEOBJ_E_INVALIDVERB = &H80040181
  9419. Public Const CLIENTSITE_E_FIRST = &H80040190
  9420. Public Const CLIENTSITE_E_LAST = &H8004019F
  9421. Public Const CLIENTSITE_S_FIRST = &H40190
  9422. Public Const CLIENTSITE_S_LAST = &H4019F
  9423. Public Const INPLACE_E_NOTUNDOABLE = &H800401A0
  9424. Public Const INPLACE_E_NOTOOLSPACE = &H800401A1
  9425. Public Const INPLACE_E_FIRST = &H800401A0
  9426. Public Const INPLACE_E_LAST = &H800401AF
  9427. Public Const INPLACE_S_FIRST = &H401A0
  9428. Public Const INPLACE_S_LAST = &H401AF
  9429. Public Const ENUM_E_FIRST = &H800401B0
  9430. Public Const ENUM_E_LAST = &H800401BF
  9431. Public Const ENUM_S_FIRST = &H401B0
  9432. Public Const ENUM_S_LAST = &H401BF
  9433. Public Const CONVERT10_E_FIRST = &H800401C0
  9434. Public Const CONVERT10_E_LAST = &H800401CF
  9435. Public Const CONVERT10_S_FIRST = &H401C0
  9436. Public Const CONVERT10_S_LAST = &H401CF
  9437. Public Const CONVERT10_E_OLESTREAM_GET = &H800401C0
  9438. Public Const CONVERT10_E_OLESTREAM_PUT = &H800401C1
  9439. Public Const CONVERT10_E_OLESTREAM_FMT = &H800401C2
  9440. Public Const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3
  9441. Public Const CONVERT10_E_STG_FMT = &H800401C4
  9442. Public Const CONVERT10_E_STG_NO_STD_STREAM = &H800401C5
  9443. Public Const CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6
  9444. Public Const CLIPBRD_E_FIRST = &H800401D0
  9445. Public Const CLIPBRD_E_LAST = &H800401DF
  9446. Public Const CLIPBRD_S_FIRST = &H401D0
  9447. Public Const CLIPBRD_S_LAST = &H401DF
  9448. Public Const CLIPBRD_E_CANT_OPEN = &H800401D0
  9449. Public Const CLIPBRD_E_CANT_EMPTY = &H800401D1
  9450. Public Const CLIPBRD_E_CANT_SET = &H800401D2
  9451. Public Const CLIPBRD_E_BAD_DATA = &H800401D3
  9452. Public Const CLIPBRD_E_CANT_CLOSE = &H800401D4
  9453. Public Const MK_E_FIRST = &H800401E0
  9454. Public Const MK_E_LAST = &H800401EF
  9455. Public Const MK_S_FIRST = &H401E0
  9456. Public Const MK_S_LAST = &H401EF
  9457. Public Const MK_E_CONNECTMANUALLY = &H800401E0
  9458. Public Const MK_E_EXCEEDEDDEADLINE = &H800401E1
  9459. Public Const MK_E_NEEDGENERIC = &H800401E2
  9460. Public Const MK_E_UNAVAILABLE = &H800401E3
  9461. Public Const MK_E_SYNTAX = &H800401E4
  9462. Public Const MK_E_NOOBJECT = &H800401E5
  9463. Public Const MK_E_INVALIDEXTENSION = &H800401E6
  9464. Public Const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7
  9465. Public Const MK_E_NOTBINDABLE = &H800401E8
  9466. Public Const MK_E_NOTBOUND = &H800401E9
  9467. Public Const MK_E_CANTOPENFILE = &H800401EA
  9468. Public Const MK_E_MUSTBOTHERUSER = &H800401EB
  9469. Public Const MK_E_NOINVERSE = &H800401EC
  9470. Public Const MK_E_NOSTORAGE = &H800401ED
  9471. Public Const MK_E_NOPREFIX = &H800401EE
  9472. Public Const MK_E_ENUMERATION_FAILED = &H800401EF
  9473. Public Const CO_E_FIRST = &H800401F0
  9474. Public Const CO_E_LAST = &H800401FF
  9475. Public Const CO_S_FIRST = &H401F0
  9476. Public Const CO_S_LAST = &H401FF
  9477. Public Const CO_E_NOTINITIALIZED = &H800401F0
  9478. Public Const CO_E_ALREADYINITIALIZED = &H800401F1
  9479. Public Const CO_E_CANTDETERMINECLASS = &H800401F2
  9480. Public Const CO_E_CLASSSTRING = &H800401F3
  9481. Public Const CO_E_IIDSTRING = &H800401F4
  9482. Public Const CO_E_APPNOTFOUND = &H800401F5
  9483. Public Const CO_E_APPSINGLEUSE = &H800401F6
  9484. Public Const CO_E_ERRORINAPP = &H800401F7
  9485. Public Const CO_E_DLLNOTFOUND = &H800401F8
  9486. Public Const CO_E_ERRORINDLL = &H800401F9
  9487. Public Const CO_E_WRONGOSFORAPP = &H800401FA
  9488. Public Const CO_E_OBJNOTREG = &H800401FB
  9489. Public Const CO_E_OBJISREG = &H800401FC
  9490. Public Const CO_E_OBJNOTCONNECTED = &H800401FD
  9491. Public Const CO_E_APPDIDNTREG = &H800401FE
  9492. Public Const CO_E_RELEASED = &H800401FF
  9493. Public Const OLE_S_USEREG = &H40000
  9494. Public Const OLE_S_STATIC = &H40001
  9495. Public Const OLE_S_MAC_CLIPFORMAT = &H40002
  9496. Public Const DRAGDROP_S_DROP = &H40100
  9497. Public Const DRAGDROP_S_CANCEL = &H40101
  9498. Public Const DRAGDROP_S_USEDEFAULTCURSORS = &H40102
  9499. Public Const DATA_S_SAMEFORMATETC = &H40130
  9500. Public Const VIEW_S_ALREADY_FROZEN = &H40140
  9501. Public Const CACHE_S_FORMATETC_NOTSUPPORTED = &H40170
  9502. Public Const CACHE_S_SAMECACHE = &H40171
  9503. Public Const CACHE_S_SOMECACHES_NOTUPDATED = &H40172
  9504. Public Const OLEOBJ_S_INVALIDVERB = &H40180
  9505. Public Const OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181
  9506. Public Const OLEOBJ_S_INVALIDHWND = &H40182
  9507. Public Const INPLACE_S_TRUNCATED = &H401A0
  9508. Public Const CONVERT10_S_NO_PRESENTATION = &H401C0
  9509. Public Const MK_S_REDUCED_TO_SELF = &H401E2
  9510. Public Const MK_S_ME = &H401E4
  9511. Public Const MK_S_HIM = &H401E5
  9512. Public Const MK_S_US = &H401E6
  9513. Public Const MK_S_MONIKERALREADYREGISTERED = &H401E7
  9514. Public Const CO_E_CLASS_CREATE_FAILED = &H80080001
  9515. Public Const CO_E_SCM_ERROR = &H80080002
  9516. Public Const CO_E_SCM_RPC_FAILURE = &H80080003
  9517. Public Const CO_E_BAD_PATH = &H80080004
  9518. Public Const CO_E_SERVER_EXEC_FAILURE = &H80080005
  9519. Public Const CO_E_OBJSRV_RPC_FAILURE = &H80080006
  9520. Public Const MK_E_NO_NORMALIZED = &H80080007
  9521. Public Const CO_E_SERVER_STOPPING = &H80080008
  9522. Public Const MEM_E_INVALID_ROOT = &H80080009
  9523. Public Const MEM_E_INVALID_LINK = &H80080010
  9524. Public Const MEM_E_INVALID_SIZE = &H80080011
  9525. Public Const DISP_E_UNKNOWNINTERFACE = &H80020001
  9526. Public Const DISP_E_MEMBERNOTFOUND = &H80020003
  9527. Public Const DISP_E_PARAMNOTFOUND = &H80020004
  9528. Public Const DISP_E_TYPEMISMATCH = &H80020005
  9529. Public Const DISP_E_UNKNOWNNAME = &H80020006
  9530. Public Const DISP_E_NONAMEDARGS = &H80020007
  9531. Public Const DISP_E_BADVARTYPE = &H80020008
  9532. Public Const DISP_E_EXCEPTION = &H80020009
  9533. Public Const DISP_E_OVERFLOW = &H8002000A
  9534. Public Const DISP_E_BADINDEX = &H8002000B
  9535. Public Const DISP_E_UNKNOWNLCID = &H8002000C
  9536. Public Const DISP_E_ARRAYISLOCKED = &H8002000D
  9537. Public Const DISP_E_BADPARAMCOUNT = &H8002000E
  9538. Public Const DISP_E_PARAMNOTOPTIONAL = &H8002000F
  9539. Public Const DISP_E_BADCALLEE = &H80020010
  9540. Public Const DISP_E_NOTACOLLECTION = &H80020011
  9541. Public Const TYPE_E_BUFFERTOOSMALL = &H80028016
  9542. Public Const TYPE_E_INVDATAREAD = &H80028018
  9543. Public Const TYPE_E_UNSUPFORMAT = &H80028019
  9544. Public Const TYPE_E_REGISTRYACCESS = &H8002801C
  9545. Public Const TYPE_E_LIBNOTREGISTERED = &H8002801D
  9546. Public Const TYPE_E_UNDEFINEDTYPE = &H80028027
  9547. Public Const TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028
  9548. Public Const TYPE_E_INVALIDSTATE = &H80028029
  9549. Public Const TYPE_E_WRONGTYPEKIND = &H8002802A
  9550. Public Const TYPE_E_ELEMENTNOTFOUND = &H8002802B
  9551. Public Const TYPE_E_AMBIGUOUSNAME = &H8002802C
  9552. Public Const TYPE_E_NAMECONFLICT = &H8002802D
  9553. Public Const TYPE_E_UNKNOWNLCID = &H8002802E
  9554. Public Const TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F
  9555. Public Const TYPE_E_BADMODULEKIND = &H800288BD
  9556. Public Const TYPE_E_SIZETOOBIG = &H800288C5
  9557. Public Const TYPE_E_DUPLICATEID = &H800288C6
  9558. Public Const TYPE_E_INVALIDID = &H800288CF
  9559. Public Const TYPE_E_TYPEMISMATCH = &H80028CA0
  9560. Public Const TYPE_E_OUTOFBOUNDS = &H80028CA1
  9561. Public Const TYPE_E_IOERROR = &H80028CA2
  9562. Public Const TYPE_E_CANTCREATETMPFILE = &H80028CA3
  9563. Public Const TYPE_E_CANTLOADLIBRARY = &H80029C4A
  9564. Public Const TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83
  9565. Public Const TYPE_E_CIRCULARTYPE = &H80029C84
  9566. Public Const STG_E_INVALIDFUNCTION = &H80030001
  9567. Public Const STG_E_FILENOTFOUND = &H80030002
  9568. Public Const STG_E_PATHNOTFOUND = &H80030003
  9569. Public Const STG_E_TOOMANYOPENFILES = &H80030004
  9570. Public Const STG_E_ACCESSDENIED = &H80030005
  9571. Public Const STG_E_INVALIDHANDLE = &H80030006
  9572. Public Const STG_E_INSUFFICIENTMEMORY = &H80030008
  9573. Public Const STG_E_INVALIDPOINTER = &H80030009
  9574. Public Const STG_E_NOMOREFILES = &H80030012
  9575. Public Const STG_E_DISKISWRITEPROTECTED = &H80030013
  9576. Public Const STG_E_SEEKERROR = &H80030019
  9577. Public Const STG_E_WRITEFAULT = &H8003001D
  9578. Public Const STG_E_READFAULT = &H8003001E
  9579. Public Const STG_E_SHAREVIOLATION = &H80030020
  9580. Public Const STG_E_LOCKVIOLATION = &H80030021
  9581. Public Const STG_E_FILEALREADYEXISTS = &H80030050
  9582. Public Const STG_E_INVALIDPARAMETER = &H80030057
  9583. Public Const STG_E_MEDIUMFULL = &H80030070
  9584. Public Const STG_E_ABNORMALAPIEXIT = &H800300FA
  9585. Public Const STG_E_INVALIDHEADER = &H800300FB
  9586. Public Const STG_E_INVALIDNAME = &H800300FC
  9587. Public Const STG_E_UNKNOWN = &H800300FD
  9588. Public Const STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE
  9589. Public Const STG_E_INVALIDFLAG = &H800300FF
  9590. Public Const STG_E_INUSE = &H80030100
  9591. Public Const STG_E_NOTCURRENT = &H80030101
  9592. Public Const STG_E_REVERTED = &H80030102
  9593. Public Const STG_E_CANTSAVE = &H80030103
  9594. Public Const STG_E_OLDFORMAT = &H80030104
  9595. Public Const STG_E_OLDDLL = &H80030105
  9596. Public Const STG_E_SHAREREQUIRED = &H80030106
  9597. Public Const STG_E_NOTFILEBASEDSTORAGE = &H80030107
  9598. Public Const STG_E_EXTANTMARSHALLINGS = &H80030108
  9599. Public Const STG_S_CONVERTED = &H30200
  9600. Public Const RPC_E_CALL_REJECTED = &H80010001
  9601. Public Const RPC_E_CALL_CANCELED = &H80010002
  9602. Public Const RPC_E_CANTPOST_INSENDCALL = &H80010003
  9603. Public Const RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004
  9604. Public Const RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005
  9605. Public Const RPC_E_CONNECTION_TERMINATED = &H80010006
  9606. Public Const RPC_E_SERVER_DIED = &H80010007
  9607. Public Const RPC_E_CLIENT_DIED = &H80010008
  9608. Public Const RPC_E_INVALID_DATAPACKET = &H80010009
  9609. Public Const RPC_E_CANTTRANSMIT_CALL = &H8001000A
  9610. Public Const RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B
  9611. Public Const RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C
  9612. Public Const RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D
  9613. Public Const RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E
  9614. Public Const RPC_E_INVALID_DATA = &H8001000F
  9615. Public Const RPC_E_INVALID_PARAMETER = &H80010010
  9616. Public Const RPC_E_CANTCALLOUT_AGAIN = &H80010011
  9617. Public Const RPC_E_SERVER_DIED_DNE = &H80010012
  9618. Public Const RPC_E_SYS_CALL_FAILED = &H80010100
  9619. Public Const RPC_E_OUT_OF_RESOURCES = &H80010101
  9620. Public Const RPC_E_ATTEMPTED_MULTITHREAD = &H80010102
  9621. Public Const RPC_E_NOT_REGISTERED = &H80010103
  9622. Public Const RPC_E_FAULT = &H80010104
  9623. Public Const RPC_E_SERVERFAULT = &H80010105
  9624. Public Const RPC_E_CHANGED_MODE = &H80010106
  9625. Public Const RPC_E_INVALIDMETHOD = &H80010107
  9626. Public Const RPC_E_DISCONNECTED = &H80010108
  9627. Public Const RPC_E_RETRY = &H80010109
  9628. Public Const RPC_E_SERVERCALL_RETRYLATER = &H8001010A
  9629. Public Const RPC_E_SERVERCALL_REJECTED = &H8001010B
  9630. Public Const RPC_E_INVALID_CALLDATA = &H8001010C
  9631. Public Const RPC_E_CANTCALLOUT_ININPUTSYNCCALL = &H8001010D
  9632. Public Const RPC_E_WRONG_THREAD = &H8001010E
  9633. Public Const RPC_E_THREAD_NOT_INIT = &H8001010F
  9634. Public Const RPC_E_UNEXPECTED = &H8001FFFF
  9635.  
  9636.  
  9637. ' /////////////////////////
  9638. '                        //
  9639. '  Winnet32 Status Codes //
  9640. '                        //
  9641. ' /////////////////////////
  9642.  
  9643. '   The specified username is invalid.
  9644. Public Const ERROR_BAD_USERNAME = 2202&
  9645.  
  9646. '   This network connection does not exist.
  9647. Public Const ERROR_NOT_CONNECTED = 2250&
  9648.  
  9649. '   This network connection has files open or requests pending.
  9650. Public Const ERROR_OPEN_FILES = 2401&
  9651.  
  9652. '   The device is in use by an active process and cannot be disconnected.
  9653. Public Const ERROR_DEVICE_IN_USE = 2404&
  9654.  
  9655. '   The specified device name is invalid.
  9656. Public Const ERROR_BAD_DEVICE = 1200&
  9657.  
  9658. '   The device is not currently connected but it is a remembered connection.
  9659. Public Const ERROR_CONNECTION_UNAVAIL = 1201&
  9660.  
  9661. '   An attempt was made to remember a device that had previously been remembered.
  9662. Public Const ERROR_DEVICE_ALREADY_REMEMBERED = 1202&
  9663.  
  9664. '   No network provider accepted the given network path.
  9665. Public Const ERROR_NO_NET_OR_BAD_PATH = 1203&
  9666.  
  9667. '   The specified network provider name is invalid.
  9668. Public Const ERROR_BAD_PROVIDER = 1204&
  9669.  
  9670. '   Unable to open the network connection profile.
  9671. Public Const ERROR_CANNOT_OPEN_PROFILE = 1205&
  9672.  
  9673. '   The network connection profile is corrupt.
  9674. Public Const ERROR_BAD_PROFILE = 1206&
  9675.  
  9676. '   Cannot enumerate a non-container.
  9677. Public Const ERROR_NOT_CONTAINER = 1207&
  9678.  
  9679. '   An extended error has occurred.
  9680. Public Const ERROR_EXTENDED_ERROR = 1208&
  9681.  
  9682. '   The format of the specified group name is invalid.
  9683. Public Const ERROR_INVALID_GROUPNAME = 1209&
  9684.  
  9685. '   The format of the specified computer name is invalid.
  9686. Public Const ERROR_INVALID_COMPUTERNAME = 1210&
  9687.  
  9688. '   The format of the specified event name is invalid.
  9689. Public Const ERROR_INVALID_EVENTNAME = 1211&
  9690.  
  9691. '   The format of the specified domain name is invalid.
  9692. Public Const ERROR_INVALID_DOMAINNAME = 1212&
  9693.  
  9694. '   The format of the specified service name is invalid.
  9695. Public Const ERROR_INVALID_SERVICENAME = 1213&
  9696.  
  9697. '   The format of the specified network name is invalid.
  9698. Public Const ERROR_INVALID_NETNAME = 1214&
  9699.  
  9700. '   The format of the specified share name is invalid.
  9701. Public Const ERROR_INVALID_SHARENAME = 1215&
  9702.  
  9703. '   The format of the specified password is invalid.
  9704. Public Const ERROR_INVALID_PASSWORDNAME = 1216&
  9705.  
  9706. '   The format of the specified message name is invalid.
  9707. Public Const ERROR_INVALID_MESSAGENAME = 1217&
  9708.  
  9709. '   The format of the specified message destination is invalid.
  9710. Public Const ERROR_INVALID_MESSAGEDEST = 1218&
  9711.  
  9712. '   The credentials supplied conflict with an existing set of credentials.
  9713. Public Const ERROR_SESSION_CREDENTIAL_CONFLICT = 1219&
  9714.  
  9715. '   An attempt was made to establish a session to a Lan Manager server, but there
  9716. '   are already too many sessions established to that server.
  9717. Public Const ERROR_REMOTE_SESSION_LIMIT_EXCEEDED = 1220&
  9718.  
  9719. '   The workgroup or domain name is already in use by another computer on the
  9720. '   network.
  9721. Public Const ERROR_DUP_DOMAINNAME = 1221&
  9722.  
  9723. '   The network is not present or not started.
  9724. Public Const ERROR_NO_NETWORK = 1222&
  9725.  
  9726.  
  9727. ' /////////////////////////
  9728. '                        //
  9729. '  Security Status Codes //
  9730. '                        //
  9731. ' /////////////////////////
  9732.  
  9733. '   Not all privileges referenced are assigned to the caller.
  9734. Public Const ERROR_NOT_ALL_ASSIGNED = 1300&
  9735.  
  9736. '   Some mapping between account names and security IDs was not done.
  9737. Public Const ERROR_SOME_NOT_MAPPED = 1301&
  9738.  
  9739. '   No system quota limits are specifically set for this account.
  9740. Public Const ERROR_NO_QUOTAS_FOR_ACCOUNT = 1302&
  9741.  
  9742. '   No encryption key is available.  A well-known encryption key was returned.
  9743. Public Const ERROR_LOCAL_USER_SESSION_KEY = 1303&
  9744.  
  9745. '   The NT password is too complex to be converted to a LAN Manager
  9746. '   password.  The LAN Manager password returned is a NULL string.
  9747. Public Const ERROR_NULL_LM_PASSWORD = 1304&
  9748.  
  9749. '   The revision level is unknown.
  9750. Public Const ERROR_UNKNOWN_REVISION = 1305&
  9751.  
  9752. '   Indicates two revision levels are incompatible.
  9753. Public Const ERROR_REVISION_MISMATCH = 1306&
  9754.  
  9755. '   This security ID may not be assigned as the owner of this object.
  9756. Public Const ERROR_INVALID_OWNER = 1307&
  9757.  
  9758. '   This security ID may not be assigned as the primary group of an object.
  9759. Public Const ERROR_INVALID_PRIMARY_GROUP = 1308&
  9760.  
  9761. '   An attempt has been made to operate on an impersonation token
  9762. '   by a thread that is not currently impersonating a client.
  9763. Public Const ERROR_NO_IMPERSONATION_TOKEN = 1309&
  9764.  
  9765. '   The group may not be disabled.
  9766. Public Const ERROR_CANT_DISABLE_MANDATORY = 1310&
  9767.  
  9768. '   There are currently no logon servers available to service the logon
  9769. '   request.
  9770. Public Const ERROR_NO_LOGON_SERVERS = 1311&
  9771.  
  9772. '    A specified logon session does not exist.  It may already have
  9773. '    been terminated.
  9774. Public Const ERROR_NO_SUCH_LOGON_SESSION = 1312&
  9775.  
  9776. '    A specified privilege does not exist.
  9777. Public Const ERROR_NO_SUCH_PRIVILEGE = 1313&
  9778.  
  9779. '    A required privilege is not held by the client.
  9780. Public Const ERROR_PRIVILEGE_NOT_HELD = 1314&
  9781.  
  9782. '   The name provided is not a properly formed account name.
  9783. Public Const ERROR_INVALID_ACCOUNT_NAME = 1315&
  9784.  
  9785. '   The specified user already exists.
  9786. Public Const ERROR_USER_EXISTS = 1316&
  9787.  
  9788. '   The specified user does not exist.
  9789. Public Const ERROR_NO_SUCH_USER = 1317&
  9790.  
  9791. '   The specified group already exists.
  9792. Public Const ERROR_GROUP_EXISTS = 1318&
  9793.  
  9794. '   The specified group does not exist.
  9795. Public Const ERROR_NO_SUCH_GROUP = 1319&
  9796.  
  9797. '   Either the specified user account is already a member of the specified
  9798. '   group, or the specified group cannot be deleted because it contains
  9799. '   a member.
  9800. Public Const ERROR_MEMBER_IN_GROUP = 1320&
  9801.  
  9802. '   The specified user account is not a member of the specified group account.
  9803. Public Const ERROR_MEMBER_NOT_IN_GROUP = 1321&
  9804.  
  9805. '   The last remaining administration account cannot be disabled
  9806. '   or deleted.
  9807. Public Const ERROR_LAST_ADMIN = 1322&
  9808.  
  9809. '   Unable to update the password.  The value provided as the current
  9810. '   password is incorrect.
  9811. Public Const ERROR_WRONG_PASSWORD = 1323&
  9812.  
  9813. '   Unable to update the password.  The value provided for the new password
  9814. '   contains values that are not allowed in passwords.
  9815. Public Const ERROR_ILL_FORMED_PASSWORD = 1324&
  9816.  
  9817. '   Unable to update the password because a password update rule has been
  9818. '   violated.
  9819. Public Const ERROR_PASSWORD_RESTRICTION = 1325&
  9820.  
  9821. '   Logon failure: unknown user name or bad password.
  9822. Public Const ERROR_LOGON_FAILURE = 1326&
  9823.  
  9824. '   Logon failure: user account restriction.
  9825. Public Const ERROR_ACCOUNT_RESTRICTION = 1327&
  9826.  
  9827. '   Logon failure: account logon time restriction violation.
  9828. Public Const ERROR_INVALID_LOGON_HOURS = 1328&
  9829.  
  9830. '   Logon failure: user not allowed to log on to this computer.
  9831. Public Const ERROR_INVALID_WORKSTATION = 1329&
  9832.  
  9833. '   Logon failure: the specified account password has expired.
  9834. Public Const ERROR_PASSWORD_EXPIRED = 1330&
  9835.  
  9836. '   Logon failure: account currently disabled.
  9837. Public Const ERROR_ACCOUNT_DISABLED = 1331&
  9838.  
  9839. '   No mapping between account names and security IDs was done.
  9840. Public Const ERROR_NONE_MAPPED = 1332&
  9841.  
  9842. '   Too many local user identifiers (LUIDs) were requested at one time.
  9843. Public Const ERROR_TOO_MANY_LUIDS_REQUESTED = 1333&
  9844.  
  9845. '   No more local user identifiers (LUIDs) are available.
  9846. Public Const ERROR_LUIDS_EXHAUSTED = 1334&
  9847.  
  9848. '   The subauthority part of a security ID is invalid for this particular use.
  9849. Public Const ERROR_INVALID_SUB_AUTHORITY = 1335&
  9850.  
  9851. '   The access control list (ACL) structure is invalid.
  9852. Public Const ERROR_INVALID_ACL = 1336&
  9853.  
  9854. '   The security ID structure is invalid.
  9855. Public Const ERROR_INVALID_SID = 1337&
  9856.  
  9857. '   The security descriptor structure is invalid.
  9858. Public Const ERROR_INVALID_SECURITY_DESCR = 1338&
  9859.  
  9860. '   The inherited access control list (ACL) or access control entry (ACE)
  9861. '   could not be built.
  9862. Public Const ERROR_BAD_INHERITANCE_ACL = 1340&
  9863.  
  9864. '   The server is currently disabled.
  9865. Public Const ERROR_SERVER_DISABLED = 1341&
  9866.  
  9867. '   The server is currently enabled.
  9868. Public Const ERROR_SERVER_NOT_DISABLED = 1342&
  9869.  
  9870. '   The value provided was an invalid value for an identifier authority.
  9871. Public Const ERROR_INVALID_ID_AUTHORITY = 1343&
  9872.  
  9873. '   No more memory is available for security information updates.
  9874. Public Const ERROR_ALLOTTED_SPACE_EXCEEDED = 1344&
  9875.  
  9876. '   The specified attributes are invalid, or incompatible with the
  9877. '   attributes for the group as a whole.
  9878. Public Const ERROR_INVALID_GROUP_ATTRIBUTES = 1345&
  9879.  
  9880. '   Either a required impersonation level was not provided, or the
  9881. '   provided impersonation level is invalid.
  9882. Public Const ERROR_BAD_IMPERSONATION_LEVEL = 1346&
  9883.  
  9884. '   Cannot open an anonymous level security token.
  9885. Public Const ERROR_CANT_OPEN_ANONYMOUS = 1347&
  9886.  
  9887. '   The validation information class requested was invalid.
  9888. Public Const ERROR_BAD_VALIDATION_CLASS = 1348&
  9889.  
  9890. '   The type of the token is inappropriate for its attempted use.
  9891. Public Const ERROR_BAD_TOKEN_TYPE = 1349&
  9892.  
  9893. '   Unable to perform a security operation on an object
  9894. '   which has no associated security.
  9895. Public Const ERROR_NO_SECURITY_ON_OBJECT = 1350&
  9896.  
  9897. '   Indicates a Windows NT Advanced Server could not be contacted or that
  9898. '   objects within the domain are protected such that necessary
  9899. '   information could not be retrieved.
  9900. Public Const ERROR_CANT_ACCESS_DOMAIN_INFO = 1351&
  9901.  
  9902. '   The security account manager (SAM) or local security
  9903. '   authority (LSA) server was in the wrong state to perform
  9904. '   the security operation.
  9905. Public Const ERROR_INVALID_SERVER_STATE = 1352&
  9906.  
  9907. '   The domain was in the wrong state to perform the security operation.
  9908. Public Const ERROR_INVALID_DOMAIN_STATE = 1353&
  9909.  
  9910. '   This operation is only allowed for the Primary Domain Controller of the domain.
  9911. Public Const ERROR_INVALID_DOMAIN_ROLE = 1354&
  9912.  
  9913. '   The specified domain did not exist.
  9914. Public Const ERROR_NO_SUCH_DOMAIN = 1355&
  9915.  
  9916. '   The specified domain already exists.
  9917. Public Const ERROR_DOMAIN_EXISTS = 1356&
  9918.  
  9919. '   An attempt was made to exceed the limit on the number of domains per server.
  9920. Public Const ERROR_DOMAIN_LIMIT_EXCEEDED = 1357&
  9921.  
  9922. '   Unable to complete the requested operation because of either a
  9923. '   catastrophic media failure or a data structure corruption on the disk.
  9924. Public Const ERROR_INTERNAL_DB_CORRUPTION = 1358&
  9925.  
  9926. '   The security account database contains an internal inconsistency.
  9927. Public Const ERROR_INTERNAL_ERROR = 1359&
  9928.  
  9929. '   Generic access types were contained in an access mask which should
  9930. '   already be mapped to non-generic types.
  9931. Public Const ERROR_GENERIC_NOT_MAPPED = 1360&
  9932.  
  9933. '   A security descriptor is not in the right format (absolute or self-relative).
  9934. Public Const ERROR_BAD_DESCRIPTOR_FORMAT = 1361&
  9935.  
  9936. '   The requested action is restricted for use by logon processes
  9937. '   only.  The calling process has not registered as a logon process.
  9938. Public Const ERROR_NOT_LOGON_PROCESS = 1362&
  9939.  
  9940. '   Cannot start a new logon session with an ID that is already in use.
  9941. Public Const ERROR_LOGON_SESSION_EXISTS = 1363&
  9942.  
  9943. '   A specified authentication package is unknown.
  9944. Public Const ERROR_NO_SUCH_PACKAGE = 1364&
  9945.  
  9946. '   The logon session is not in a state that is consistent with the
  9947. '   requested operation.
  9948. Public Const ERROR_BAD_LOGON_SESSION_STATE = 1365&
  9949.  
  9950. '   The logon session ID is already in use.
  9951. Public Const ERROR_LOGON_SESSION_COLLISION = 1366&
  9952.  
  9953. '   A logon request contained an invalid logon type value.
  9954. Public Const ERROR_INVALID_LOGON_TYPE = 1367&
  9955.  
  9956. '   Unable to impersonate via a named pipe until data has been read
  9957. '   from that pipe.
  9958. Public Const ERROR_CANNOT_IMPERSONATE = 1368&
  9959.  
  9960. '   The transaction state of a Registry subtree is incompatible with the
  9961. '   requested operation.
  9962. Public Const ERROR_RXACT_INVALID_STATE = 1369&
  9963.  
  9964. '   An internal security database corruption has been encountered.
  9965. Public Const ERROR_RXACT_COMMIT_FAILURE = 1370&
  9966.  
  9967. '   Cannot perform this operation on built-in accounts.
  9968. Public Const ERROR_SPECIAL_ACCOUNT = 1371&
  9969.  
  9970. '   Cannot perform this operation on this built-in special group.
  9971. Public Const ERROR_SPECIAL_GROUP = 1372&
  9972.  
  9973. '   Cannot perform this operation on this built-in special user.
  9974. Public Const ERROR_SPECIAL_USER = 1373&
  9975.  
  9976. '   The user cannot be removed from a group because the group
  9977. '   is currently the user's primary group.
  9978. Public Const ERROR_MEMBERS_PRIMARY_GROUP = 1374&
  9979.  
  9980. '   The token is already in use as a primary token.
  9981. Public Const ERROR_TOKEN_ALREADY_IN_USE = 1375&
  9982.  
  9983. '   The specified local group does not exist.
  9984. Public Const ERROR_NO_SUCH_ALIAS = 1376&
  9985.  
  9986. '   The specified account name is not a member of the local group.
  9987. Public Const ERROR_MEMBER_NOT_IN_ALIAS = 1377&
  9988.  
  9989. '   The specified account name is already a member of the local group.
  9990. Public Const ERROR_MEMBER_IN_ALIAS = 1378&
  9991.  
  9992. '   The specified local group already exists.
  9993. Public Const ERROR_ALIAS_EXISTS = 1379&
  9994.  
  9995. '   Logon failure: the user has not been granted the requested
  9996. '   logon type at this computer.
  9997. Public Const ERROR_LOGON_NOT_GRANTED = 1380&
  9998.  
  9999. '   The maximum number of secrets that may be stored in a single system has been
  10000. '   exceeded.
  10001. Public Const ERROR_TOO_MANY_SECRETS = 1381&
  10002.  
  10003. '   The length of a secret exceeds the maximum length allowed.
  10004. Public Const ERROR_SECRET_TOO_LONG = 1382&
  10005.  
  10006. '   The local security authority database contains an internal inconsistency.
  10007. Public Const ERROR_INTERNAL_DB_ERROR = 1383&
  10008.  
  10009. '   During a logon attempt, the user's security context accumulated too many
  10010. '   security IDs.
  10011. Public Const ERROR_TOO_MANY_CONTEXT_IDS = 1384&
  10012.  
  10013. '   Logon failure: the user has not been granted the requested logon type
  10014. '   at this computer.
  10015. Public Const ERROR_LOGON_TYPE_NOT_GRANTED = 1385&
  10016.  
  10017. '   A cross-encrypted password is necessary to change a user password.
  10018. Public Const ERROR_NT_CROSS_ENCRYPTION_REQUIRED = 1386&
  10019.  
  10020. '   A new member could not be added to a local group because the member does
  10021. '   not exist.
  10022. Public Const ERROR_NO_SUCH_MEMBER = 1387&
  10023.  
  10024. '   A new member could not be added to a local group because the member has the
  10025. '   wrong account type.
  10026. Public Const ERROR_INVALID_MEMBER = 1388&
  10027.  
  10028. '   Too many security IDs have been specified.
  10029. Public Const ERROR_TOO_MANY_SIDS = 1389&
  10030.  
  10031. '   A cross-encrypted password is necessary to change this user password.
  10032. Public Const ERROR_LM_CROSS_ENCRYPTION_REQUIRED = 1390&
  10033.  
  10034. '   Indicates an ACL contains no inheritable components
  10035. Public Const ERROR_NO_INHERITANCE = 1391&
  10036.  
  10037. '   The file or directory is corrupt and non-readable.
  10038. Public Const ERROR_FILE_CORRUPT = 1392&
  10039.  
  10040. '   The disk structure is corrupt and non-readable.
  10041. Public Const ERROR_DISK_CORRUPT = 1393&
  10042.  
  10043. '   There is no user session key for the specified logon session.
  10044. Public Const ERROR_NO_USER_SESSION_KEY = 1394&
  10045.  
  10046. '  End of security error codes
  10047.  
  10048.  
  10049. ' /////////////////////////
  10050. '                        //
  10051. '  WinUser Error Codes   //
  10052. '                        //
  10053. ' /////////////////////////
  10054.  
  10055. '   Invalid window handle.
  10056. Public Const ERROR_INVALID_WINDOW_HANDLE = 1400&
  10057.  
  10058. '   Invalid menu handle.
  10059. Public Const ERROR_INVALID_MENU_HANDLE = 1401&
  10060.  
  10061. '   Invalid cursor handle.
  10062. Public Const ERROR_INVALID_CURSOR_HANDLE = 1402&
  10063.  
  10064. '   Invalid accelerator table handle.
  10065. Public Const ERROR_INVALID_ACCEL_HANDLE = 1403&
  10066.  
  10067. '   Invalid hook handle.
  10068. Public Const ERROR_INVALID_HOOK_HANDLE = 1404&
  10069.  
  10070. '   Invalid handle to a multiple-window position structure.
  10071. Public Const ERROR_INVALID_DWP_HANDLE = 1405&
  10072.  
  10073. '   Cannot create a top-level child window.
  10074. Public Const ERROR_TLW_WITH_WSCHILD = 1406&
  10075.  
  10076. '   Cannot find window class.
  10077. Public Const ERROR_CANNOT_FIND_WND_CLASS = 1407&
  10078.  
  10079. '   Invalid window, belongs to other thread.
  10080. Public Const ERROR_WINDOW_OF_OTHER_THREAD = 1408&
  10081.  
  10082. '   Hot key is already registered.
  10083. Public Const ERROR_HOTKEY_ALREADY_REGISTERED = 1409&
  10084.  
  10085. '   Class already exists.
  10086. Public Const ERROR_CLASS_ALREADY_EXISTS = 1410&
  10087.  
  10088. '   Class does not exist.
  10089. Public Const ERROR_CLASS_DOES_NOT_EXIST = 1411&
  10090.  
  10091. '   Class still has open windows.
  10092. Public Const ERROR_CLASS_HAS_WINDOWS = 1412&
  10093.  
  10094. '   Invalid index.
  10095. Public Const ERROR_INVALID_INDEX = 1413&
  10096.  
  10097. '   Invalid icon handle.
  10098. Public Const ERROR_INVALID_ICON_HANDLE = 1414&
  10099.  
  10100. '   Using private DIALOG window words.
  10101. Public Const ERROR_PRIVATE_DIALOG_INDEX = 1415&
  10102.  
  10103. '   The listbox identifier was not found.
  10104. Public Const ERROR_LISTBOX_ID_NOT_FOUND = 1416&
  10105.  
  10106. '   No wildcards were found.
  10107. Public Const ERROR_NO_WILDCARD_CHARACTERS = 1417&
  10108.  
  10109. '   Thread does not have a clipboard open.
  10110. Public Const ERROR_CLIPBOARD_NOT_OPEN = 1418&
  10111.  
  10112. '   Hot key is not registered.
  10113. Public Const ERROR_HOTKEY_NOT_REGISTERED = 1419&
  10114.  
  10115. '   The window is not a valid dialog window.
  10116. Public Const ERROR_WINDOW_NOT_DIALOG = 1420&
  10117.  
  10118. '   Control ID not found.
  10119. Public Const ERROR_CONTROL_ID_NOT_FOUND = 1421&
  10120.  
  10121. '   Invalid message for a combo box because it does not have an edit control.
  10122. Public Const ERROR_INVALID_COMBOBOX_MESSAGE = 1422&
  10123.  
  10124. '   The window is not a combo box.
  10125. Public Const ERROR_WINDOW_NOT_COMBOBOX = 1423&
  10126.  
  10127. '   Height must be less than 256.
  10128. Public Const ERROR_INVALID_EDIT_HEIGHT = 1424&
  10129.  
  10130. '   Invalid device context (DC) handle.
  10131. Public Const ERROR_DC_NOT_FOUND = 1425&
  10132.  
  10133. '   Invalid hook procedure type.
  10134. Public Const ERROR_INVALID_HOOK_FILTER = 1426&
  10135.  
  10136. '   Invalid hook procedure.
  10137. Public Const ERROR_INVALID_FILTER_PROC = 1427&
  10138.  
  10139. '   Cannot set non-local hook without a module handle.
  10140. Public Const ERROR_HOOK_NEEDS_HMOD = 1428&
  10141.  
  10142. '   This hook procedure can only be set Globally.
  10143. '
  10144. Public Const ERROR_PUBLIC_ONLY_HOOK = 1429&
  10145.  
  10146. '   The journal hook procedure is already installed.
  10147. Public Const ERROR_JOURNAL_HOOK_SET = 1430&
  10148.  
  10149. '   The hook procedure is not installed.
  10150. Public Const ERROR_HOOK_NOT_INSTALLED = 1431&
  10151.  
  10152. '   Invalid message for single-selection listbox.
  10153. Public Const ERROR_INVALID_LB_MESSAGE = 1432&
  10154.  
  10155. '   LB_SETCOUNT sent to non-lazy listbox.
  10156. Public Const ERROR_SETCOUNT_ON_BAD_LB = 1433&
  10157.  
  10158. '   This list box does not support tab stops.
  10159. Public Const ERROR_LB_WITHOUT_TABSTOPS = 1434&
  10160.  
  10161. '   Cannot destroy object created by another thread.
  10162. Public Const ERROR_DESTROY_OBJECT_OF_OTHER_THREAD = 1435&
  10163.  
  10164. '   Child windows cannot have menus.
  10165. Public Const ERROR_CHILD_WINDOW_MENU = 1436&
  10166.  
  10167. '   The window does not have a system menu.
  10168. Public Const ERROR_NO_SYSTEM_MENU = 1437&
  10169.  
  10170. '   Invalid message box style.
  10171. Public Const ERROR_INVALID_MSGBOX_STYLE = 1438&
  10172.  
  10173. '   Invalid system-wide (SPI_) parameter.
  10174. Public Const ERROR_INVALID_SPI_VALUE = 1439&
  10175.  
  10176. '   Screen already locked.
  10177. Public Const ERROR_SCREEN_ALREADY_LOCKED = 1440&
  10178.  
  10179. '   All handles to windows in a multiple-window position structure must
  10180. '   have the same parent.
  10181. Public Const ERROR_HWNDS_HAVE_DIFF_PARENT = 1441&
  10182.  
  10183. '   The window is not a child window.
  10184. Public Const ERROR_NOT_CHILD_WINDOW = 1442&
  10185.  
  10186. '   Invalid GW_ command.
  10187. Public Const ERROR_INVALID_GW_COMMAND = 1443&
  10188.  
  10189. '   Invalid thread identifier.
  10190. Public Const ERROR_INVALID_THREAD_ID = 1444&
  10191.  
  10192. '   Cannot process a message from a window that is not a multiple document
  10193. '   interface (MDI) window.
  10194. Public Const ERROR_NON_MDICHILD_WINDOW = 1445&
  10195.  
  10196. '   Popup menu already active.
  10197. Public Const ERROR_POPUP_ALREADY_ACTIVE = 1446&
  10198.  
  10199. '   The window does not have scroll bars.
  10200. Public Const ERROR_NO_SCROLLBARS = 1447&
  10201.  
  10202. '   Scroll bar range cannot be greater than 0x7FFF.
  10203. Public Const ERROR_INVALID_SCROLLBAR_RANGE = 1448&
  10204.  
  10205. '   Cannot show or remove the window in the way specified.
  10206. Public Const ERROR_INVALID_SHOWWIN_COMMAND = 1449&
  10207.  
  10208. '  End of WinUser error codes
  10209.  
  10210.  
  10211. ' /////////////////////////
  10212. '                        //
  10213. '  Eventlog Status Codes //
  10214. '                        //
  10215. ' /////////////////////////
  10216.  
  10217. '   The event log file is corrupt.
  10218. Public Const ERROR_EVENTLOG_FILE_CORRUPT = 1500&
  10219.  
  10220. '   No event log file could be opened, so the event logging service did not start.
  10221. Public Const ERROR_EVENTLOG_CANT_START = 1501&
  10222.  
  10223. '   The event log file is full.
  10224. Public Const ERROR_LOG_FILE_FULL = 1502&
  10225.  
  10226. '   The event log file has changed between reads.
  10227. Public Const ERROR_EVENTLOG_FILE_CHANGED = 1503&
  10228.  
  10229. '  End of eventlog error codes
  10230.  
  10231.  
  10232. ' /////////////////////////
  10233. '                        //
  10234. '    RPC Status Codes    //
  10235. '                        //
  10236. ' /////////////////////////
  10237.  
  10238. '   The string binding is invalid.
  10239. Public Const RPC_S_INVALID_STRING_BINDING = 1700&
  10240.  
  10241. '   The binding handle is not the correct type.
  10242. Public Const RPC_S_WRONG_KIND_OF_BINDING = 1701&
  10243.  
  10244. '   The binding handle is invalid.
  10245. Public Const RPC_S_INVALID_BINDING = 1702&
  10246.  
  10247. '   The RPC protocol sequence is not supported.
  10248. Public Const RPC_S_PROTSEQ_NOT_SUPPORTED = 1703&
  10249.  
  10250. '   The RPC protocol sequence is invalid.
  10251. Public Const RPC_S_INVALID_RPC_PROTSEQ = 1704&
  10252.  
  10253. '   The string universal unique identifier (UUID) is invalid.
  10254. Public Const RPC_S_INVALID_STRING_UUID = 1705&
  10255.  
  10256. '   The endpoint format is invalid.
  10257. Public Const RPC_S_INVALID_ENDPOINT_FORMAT = 1706&
  10258.  
  10259. '   The network address is invalid.
  10260. Public Const RPC_S_INVALID_NET_ADDR = 1707&
  10261.  
  10262. '   No endpoint was found.
  10263. Public Const RPC_S_NO_ENDPOINT_FOUND = 1708&
  10264.  
  10265. '   The timeout value is invalid.
  10266. Public Const RPC_S_INVALID_TIMEOUT = 1709&
  10267.  
  10268. '   The object universal unique identifier (UUID) was not found.
  10269. Public Const RPC_S_OBJECT_NOT_FOUND = 1710&
  10270.  
  10271. '   The object universal unique identifier (UUID) has already been registered.
  10272. Public Const RPC_S_ALREADY_REGISTERED = 1711&
  10273.  
  10274. '   The type universal unique identifier (UUID) has already been registered.
  10275. Public Const RPC_S_TYPE_ALREADY_REGISTERED = 1712&
  10276.  
  10277. '   The RPC server is already listening.
  10278. Public Const RPC_S_ALREADY_LISTENING = 1713&
  10279.  
  10280. '   No protocol sequences have been registered.
  10281. Public Const RPC_S_NO_PROTSEQS_REGISTERED = 1714&
  10282.  
  10283. '   The RPC server is not listening.
  10284. Public Const RPC_S_NOT_LISTENING = 1715&
  10285.  
  10286. '   The manager type is unknown.
  10287. Public Const RPC_S_UNKNOWN_MGR_TYPE = 1716&
  10288.  
  10289. '   The interface is unknown.
  10290. Public Const RPC_S_UNKNOWN_IF = 1717&
  10291.  
  10292. '   There are no bindings.
  10293. Public Const RPC_S_NO_BINDINGS = 1718&
  10294.  
  10295. '   There are no protocol sequences.
  10296. Public Const RPC_S_NO_PROTSEQS = 1719&
  10297.  
  10298. '   The endpoint cannot be created.
  10299. Public Const RPC_S_CANT_CREATE_ENDPOINT = 1720&
  10300.  
  10301. '   Not enough resources are available to complete this operation.
  10302. Public Const RPC_S_OUT_OF_RESOURCES = 1721&
  10303.  
  10304. '   The RPC server is unavailable.
  10305. Public Const RPC_S_SERVER_UNAVAILABLE = 1722&
  10306.  
  10307. '   The RPC server is too busy to complete this operation.
  10308. Public Const RPC_S_SERVER_TOO_BUSY = 1723&
  10309.  
  10310. '   The network options are invalid.
  10311. Public Const RPC_S_INVALID_NETWORK_OPTIONS = 1724&
  10312.  
  10313. '   There is not a remote procedure call active in this thread.
  10314. Public Const RPC_S_NO_CALL_ACTIVE = 1725&
  10315.  
  10316. '   The remote procedure call failed.
  10317. Public Const RPC_S_CALL_FAILED = 1726&
  10318.  
  10319. '   The remote procedure call failed and did not execute.
  10320. Public Const RPC_S_CALL_FAILED_DNE = 1727&
  10321.  
  10322. '   A remote procedure call (RPC) protocol error occurred.
  10323. Public Const RPC_S_PROTOCOL_ERROR = 1728&
  10324.  
  10325. '   The transfer syntax is not supported by the RPC server.
  10326. Public Const RPC_S_UNSUPPORTED_TRANS_SYN = 1730&
  10327.  
  10328. '   The universal unique identifier (UUID) type is not supported.
  10329. Public Const RPC_S_UNSUPPORTED_TYPE = 1732&
  10330.  
  10331. '   The tag is invalid.
  10332. Public Const RPC_S_INVALID_TAG = 1733&
  10333.  
  10334. '   The array bounds are invalid.
  10335. Public Const RPC_S_INVALID_BOUND = 1734&
  10336.  
  10337. '   The binding does not contain an entry name.
  10338. Public Const RPC_S_NO_ENTRY_NAME = 1735&
  10339.  
  10340. '   The name syntax is invalid.
  10341. Public Const RPC_S_INVALID_NAME_SYNTAX = 1736&
  10342.  
  10343. '   The name syntax is not supported.
  10344. Public Const RPC_S_UNSUPPORTED_NAME_SYNTAX = 1737&
  10345.  
  10346. '   No network address is available to use to construct a universal
  10347. '   unique identifier (UUID).
  10348. Public Const RPC_S_UUID_NO_ADDRESS = 1739&
  10349.  
  10350. '   The endpoint is a duplicate.
  10351. Public Const RPC_S_DUPLICATE_ENDPOINT = 1740&
  10352.  
  10353. '   The authentication type is unknown.
  10354. Public Const RPC_S_UNKNOWN_AUTHN_TYPE = 1741&
  10355.  
  10356. '   The maximum number of calls is too small.
  10357. Public Const RPC_S_MAX_CALLS_TOO_SMALL = 1742&
  10358.  
  10359. '   The string is too long.
  10360. Public Const RPC_S_STRING_TOO_LONG = 1743&
  10361.  
  10362. '   The RPC protocol sequence was not found.
  10363. Public Const RPC_S_PROTSEQ_NOT_FOUND = 1744&
  10364.  
  10365. '   The procedure number is out of range.
  10366. Public Const RPC_S_PROCNUM_OUT_OF_RANGE = 1745&
  10367.  
  10368. '   The binding does not contain any authentication information.
  10369. Public Const RPC_S_BINDING_HAS_NO_AUTH = 1746&
  10370.  
  10371. '   The authentication service is unknown.
  10372. Public Const RPC_S_UNKNOWN_AUTHN_SERVICE = 1747&
  10373.  
  10374. '   The authentication level is unknown.
  10375. Public Const RPC_S_UNKNOWN_AUTHN_LEVEL = 1748&
  10376.  
  10377. '   The security context is invalid.
  10378. Public Const RPC_S_INVALID_AUTH_IDENTITY = 1749&
  10379.  
  10380. '   The authorization service is unknown.
  10381. Public Const RPC_S_UNKNOWN_AUTHZ_SERVICE = 1750&
  10382.  
  10383. '   The entry is invalid.
  10384. Public Const EPT_S_INVALID_ENTRY = 1751&
  10385.  
  10386. '   The server endpoint cannot perform the operation.
  10387. Public Const EPT_S_CANT_PERFORM_OP = 1752&
  10388.  
  10389. '   There are no more endpoints available from the endpoint mapper.
  10390. Public Const EPT_S_NOT_REGISTERED = 1753&
  10391.  
  10392. '   No interfaces have been exported.
  10393. Public Const RPC_S_NOTHING_TO_EXPORT = 1754&
  10394.  
  10395. '   The entry name is incomplete.
  10396. Public Const RPC_S_INCOMPLETE_NAME = 1755&
  10397.  
  10398. '   The version option is invalid.
  10399. Public Const RPC_S_INVALID_VERS_OPTION = 1756&
  10400.  
  10401. '   There are no more members.
  10402. Public Const RPC_S_NO_MORE_MEMBERS = 1757&
  10403.  
  10404. '   There is nothing to unexport.
  10405. Public Const RPC_S_NOT_ALL_OBJS_UNEXPORTED = 1758&
  10406.  
  10407. '   The interface was not found.
  10408. Public Const RPC_S_INTERFACE_NOT_FOUND = 1759&
  10409.  
  10410. '   The entry already exists.
  10411. Public Const RPC_S_ENTRY_ALREADY_EXISTS = 1760&
  10412.  
  10413. '   The entry is not found.
  10414. Public Const RPC_S_ENTRY_NOT_FOUND = 1761&
  10415.  
  10416. '   The name service is unavailable.
  10417. Public Const RPC_S_NAME_SERVICE_UNAVAILABLE = 1762&
  10418.  
  10419. '   The network address family is invalid.
  10420. Public Const RPC_S_INVALID_NAF_ID = 1763&
  10421.  
  10422. '   The requested operation is not supported.
  10423. Public Const RPC_S_CANNOT_SUPPORT = 1764&
  10424.  
  10425. '   No security context is available to allow impersonation.
  10426. Public Const RPC_S_NO_CONTEXT_AVAILABLE = 1765&
  10427.  
  10428. '   An internal error occurred in a remote procedure call (RPC).
  10429. Public Const RPC_S_INTERNAL_ERROR = 1766&
  10430.  
  10431. '   The RPC server attempted an integer division by zero.'
  10432. Public Const RPC_S_ZERO_DIVIDE = 1767&
  10433.  
  10434. '   An addressing error occurred in the RPC server.
  10435. Public Const RPC_S_ADDRESS_ERROR = 1768&
  10436.  
  10437. '   A floating-point operation at the RPC server caused a division by zero.
  10438. Public Const RPC_S_FP_DIV_ZERO = 1769&
  10439.  
  10440. '   A floating-point underflow occurred at the RPC server.
  10441. Public Const RPC_S_FP_UNDERFLOW = 1770&
  10442.  
  10443. '   A floating-point overflow occurred at the RPC server.
  10444. Public Const RPC_S_FP_OVERFLOW = 1771&
  10445.  
  10446. '   The list of RPC servers available for the binding of auto handles
  10447. '   has been exhausted.
  10448. Public Const RPC_X_NO_MORE_ENTRIES = 1772&
  10449.  
  10450. '   Unable to open the character translation table file.
  10451. Public Const RPC_X_SS_CHAR_TRANS_OPEN_FAIL = 1773&
  10452.  
  10453. '   The file containing the character translation table has fewer than
  10454. '   512 bytes.
  10455. Public Const RPC_X_SS_CHAR_TRANS_SHORT_FILE = 1774&
  10456.  
  10457. '   A null context handle was passed from the client to the host during
  10458. '   a remote procedure call.
  10459. Public Const RPC_X_SS_IN_NULL_CONTEXT = 1775&
  10460.  
  10461. '   The context handle changed during a remote procedure call.
  10462. Public Const RPC_X_SS_CONTEXT_DAMAGED = 1777&
  10463.  
  10464. '   The binding handles passed to a remote procedure call do not match.
  10465. Public Const RPC_X_SS_HANDLES_MISMATCH = 1778&
  10466.  
  10467. '   The stub is unable to get the remote procedure call handle.
  10468. Public Const RPC_X_SS_CANNOT_GET_CALL_HANDLE = 1779&
  10469.  
  10470. '   A null reference pointer was passed to the stub.
  10471. Public Const RPC_X_NULL_REF_POINTER = 1780&
  10472.  
  10473. '   The enumeration value is out of range.
  10474. Public Const RPC_X_ENUM_VALUE_OUT_OF_RANGE = 1781&
  10475.  
  10476. '   The byte count is too small.
  10477. Public Const RPC_X_BYTE_COUNT_TOO_SMALL = 1782&
  10478.  
  10479. '   The stub received bad data.
  10480. Public Const RPC_X_BAD_STUB_DATA = 1783&
  10481.  
  10482. '   The supplied user buffer is not valid for the requested operation.
  10483. Public Const ERROR_INVALID_USER_BUFFER = 1784&
  10484.  
  10485. '   The disk media is not recognized.  It may not be formatted.
  10486. Public Const ERROR_UNRECOGNIZED_MEDIA = 1785&
  10487.  
  10488. '   The workstation does not have a trust secret.
  10489. Public Const ERROR_NO_TRUST_LSA_SECRET = 1786&
  10490.  
  10491. '   The SAM database on the Windows NT Advanced Server does not have a computer
  10492. '   account for this workstation trust relationship.
  10493. Public Const ERROR_NO_TRUST_SAM_ACCOUNT = 1787&
  10494.  
  10495. '   The trust relationship between the primary domain and the trusted
  10496. '   domain failed.
  10497. Public Const ERROR_TRUSTED_DOMAIN_FAILURE = 1788&
  10498.  
  10499. '   The trust relationship between this workstation and the primary
  10500. '   domain failed.
  10501. Public Const ERROR_TRUSTED_RELATIONSHIP_FAILURE = 1789&
  10502.  
  10503. '   The network logon failed.
  10504. Public Const ERROR_TRUST_FAILURE = 1790&
  10505.  
  10506. '   A remote procedure call is already in progress for this thread.
  10507. Public Const RPC_S_CALL_IN_PROGRESS = 1791&
  10508.  
  10509. '   An attempt was made to logon, but the network logon service was not started.
  10510. Public Const ERROR_NETLOGON_NOT_STARTED = 1792&
  10511.  
  10512. '   The user's account has expired.
  10513. Public Const ERROR_ACCOUNT_EXPIRED = 1793&
  10514.  
  10515. '   The redirector is in use and cannot be unloaded.
  10516. Public Const ERROR_REDIRECTOR_HAS_OPEN_HANDLES = 1794&
  10517.  
  10518. '   The specified printer driver is already installed.
  10519. Public Const ERROR_PRINTER_DRIVER_ALREADY_INSTALLED = 1795&
  10520.  
  10521. '   The specified port is unknown.
  10522. Public Const ERROR_UNKNOWN_PORT = 1796&
  10523.  
  10524. '   The printer driver is unknown.
  10525. Public Const ERROR_UNKNOWN_PRINTER_DRIVER = 1797&
  10526.  
  10527. '   The print processor is unknown.
  10528. '
  10529. Public Const ERROR_UNKNOWN_PRINTPROCESSOR = 1798&
  10530.  
  10531. '   The specified separator file is invalid.
  10532. Public Const ERROR_INVALID_SEPARATOR_FILE = 1799&
  10533.  
  10534. '   The specified priority is invalid.
  10535. Public Const ERROR_INVALID_PRIORITY = 1800&
  10536.  
  10537. '   The printer name is invalid.
  10538. Public Const ERROR_INVALID_PRINTER_NAME = 1801&
  10539.  
  10540. '   The printer already exists.
  10541. Public Const ERROR_PRINTER_ALREADY_EXISTS = 1802&
  10542.  
  10543. '   The printer command is invalid.
  10544. Public Const ERROR_INVALID_PRINTER_COMMAND = 1803&
  10545.  
  10546. '   The specified datatype is invalid.
  10547. Public Const ERROR_INVALID_DATATYPE = 1804&
  10548.  
  10549. '   The Environment specified is invalid.
  10550. Public Const ERROR_INVALID_ENVIRONMENT = 1805&
  10551.  
  10552. '   There are no more bindings.
  10553. Public Const RPC_S_NO_MORE_BINDINGS = 1806&
  10554.  
  10555. '   The account used is an interdomain trust account.  Use your Global user account or local user account to access this server.
  10556. Public Const ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807&
  10557.  
  10558. '   The account used is a Computer Account.  Use your Global user account or local user account to access this server.
  10559. Public Const ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808&
  10560.  
  10561. '   The account used is an server trust account.  Use your Global user account or local user account to access this server.
  10562. Public Const ERROR_NOLOGON_SERVER_TRUST_ACCOUNT = 1809&
  10563.  
  10564. '   The name or security ID (SID) of the domain specified is inconsistent
  10565. '   with the trust information for that domain.
  10566. Public Const ERROR_DOMAIN_TRUST_INCONSISTENT = 1810&
  10567.  
  10568. '   The server is in use and cannot be unloaded.
  10569. Public Const ERROR_SERVER_HAS_OPEN_HANDLES = 1811&
  10570.  
  10571. '   The specified image file did not contain a resource section.
  10572. Public Const ERROR_RESOURCE_DATA_NOT_FOUND = 1812&
  10573.  
  10574. '   The specified resource type can not be found in the image file.
  10575. Public Const ERROR_RESOURCE_TYPE_NOT_FOUND = 1813&
  10576.  
  10577. '   The specified resource name can not be found in the image file.
  10578. Public Const ERROR_RESOURCE_NAME_NOT_FOUND = 1814&
  10579.  
  10580. '   The specified resource language ID cannot be found in the image file.
  10581. Public Const ERROR_RESOURCE_LANG_NOT_FOUND = 1815&
  10582.  
  10583. '   Not enough quota is available to process this command.
  10584. Public Const ERROR_NOT_ENOUGH_QUOTA = 1816&
  10585.  
  10586. '   The group member was not found.
  10587. Public Const RPC_S_GROUP_MEMBER_NOT_FOUND = 1898&
  10588.  
  10589. '   The endpoint mapper database could not be created.
  10590. Public Const EPT_S_CANT_CREATE = 1899&
  10591.  
  10592. '   The object universal unique identifier (UUID) is the nil UUID.
  10593. Public Const RPC_S_INVALID_OBJECT = 1900&
  10594.  
  10595. '   The specified time is invalid.
  10596. Public Const ERROR_INVALID_TIME = 1901&
  10597.  
  10598. '   The specified Form name is invalid.
  10599. Public Const ERROR_INVALID_FORM_NAME = 1902&
  10600.  
  10601. '   The specified Form size is invalid
  10602. Public Const ERROR_INVALID_FORM_SIZE = 1903&
  10603.  
  10604. '   The specified Printer handle is already being waited on
  10605. Public Const ERROR_ALREADY_WAITING = 1904&
  10606.  
  10607. '   The specified Printer has been deleted
  10608. Public Const ERROR_PRINTER_DELETED = 1905&
  10609.  
  10610. '   The state of the Printer is invalid
  10611. Public Const ERROR_INVALID_PRINTER_STATE = 1906&
  10612.  
  10613. '   The list of servers for this workgroup is not currently available
  10614. Public Const ERROR_NO_BROWSER_SERVERS_FOUND = 6118&
  10615.  
  10616.  
  10617. ' -------------------------
  10618. '  Section MMSystem 
  10619. ' -------------------------
  10620.  
  10621. ' This section defines all the support for Multimedia applications
  10622.  
  10623. '  general constants
  10624. Public Const MAXPNAMELEN = 32  '  max product name length (including NULL)
  10625. Public Const MAXERRORLENGTH = 128  '  max error text length (including final NULL)
  10626.  
  10627. Type smpte
  10628.         hour As Byte
  10629.         min As Byte
  10630.         sec As Byte
  10631.         frame As Byte
  10632.         fps As Byte
  10633.         dummy As Byte
  10634.         pad(2) As Byte
  10635. End Type
  10636.  
  10637. Type midi
  10638.         songptrpos As Long
  10639. End Type
  10640.  
  10641. Type MMTIME
  10642.         wType As Long
  10643.         u As Long
  10644. End Type
  10645.  
  10646. '  values for wType field in MMTIME struct
  10647. Public Const TIME_MS = &H1     '  time in Milliseconds
  10648. Public Const TIME_SAMPLES = &H2     '  number of wave samples
  10649. Public Const TIME_BYTES = &H4     '  current byte offset
  10650. Public Const TIME_SMPTE = &H8     '  SMPTE time
  10651. Public Const TIME_MIDI = &H10    '  MIDI time
  10652.  
  10653. '  Multimedia Window Messages
  10654. Public Const MM_JOY1MOVE = &H3A0  '  joystick
  10655. Public Const MM_JOY2MOVE = &H3A1
  10656. Public Const MM_JOY1ZMOVE = &H3A2
  10657. Public Const MM_JOY2ZMOVE = &H3A3
  10658. Public Const MM_JOY1BUTTONDOWN = &H3B5
  10659. Public Const MM_JOY2BUTTONDOWN = &H3B6
  10660. Public Const MM_JOY1BUTTONUP = &H3B7
  10661. Public Const MM_JOY2BUTTONUP = &H3B8
  10662.  
  10663. Public Const MM_MCINOTIFY = &H3B9  '  MCI
  10664. Public Const MM_MCISYSTEM_STRING = &H3CA
  10665.  
  10666. Public Const MM_WOM_OPEN = &H3BB  '  waveform output
  10667. Public Const MM_WOM_CLOSE = &H3BC
  10668. Public Const MM_WOM_DONE = &H3BD
  10669.  
  10670. Public Const MM_WIM_OPEN = &H3BE  '  waveform input
  10671. Public Const MM_WIM_CLOSE = &H3BF
  10672. Public Const MM_WIM_DATA = &H3C0
  10673.  
  10674. Public Const MM_MIM_OPEN = &H3C1  '  MIDI input
  10675. Public Const MM_MIM_CLOSE = &H3C2
  10676. Public Const MM_MIM_DATA = &H3C3
  10677. Public Const MM_MIM_LONGDATA = &H3C4
  10678. Public Const MM_MIM_ERROR = &H3C5
  10679. Public Const MM_MIM_LONGERROR = &H3C6
  10680.  
  10681. Public Const MM_MOM_OPEN = &H3C7  '  MIDI output
  10682. Public Const MM_MOM_CLOSE = &H3C8
  10683. Public Const MM_MOM_DONE = &H3C9
  10684.  
  10685. ' String resource number bases (internal use)
  10686.  
  10687. Public Const MMSYSERR_BASE = 0
  10688. Public Const WAVERR_BASE = 32
  10689. Public Const MIDIERR_BASE = 64
  10690. Public Const TIMERR_BASE = 96   '  was 128, changed to match Win 31 Sonic
  10691. Public Const JOYERR_BASE = 160
  10692. Public Const MCIERR_BASE = 256
  10693.  
  10694. Public Const MCI_STRING_OFFSET = 512  '  if this number is changed you MUST
  10695.                                     '  alter the MCI_DEVTYPE_... list below
  10696. Public Const MCI_VD_OFFSET = 1024
  10697. Public Const MCI_CD_OFFSET = 1088
  10698. Public Const MCI_WAVE_OFFSET = 1152
  10699. Public Const MCI_SEQ_OFFSET = 1216
  10700.  
  10701. ' General error return values
  10702. Public Const MMSYSERR_NOERROR = 0  '  no error
  10703. Public Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1)  '  unspecified error
  10704. Public Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2)  '  device ID out of range
  10705. Public Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3)  '  driver failed enable
  10706. Public Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4)  '  device already allocated
  10707. Public Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5)  '  device handle is invalid
  10708. Public Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6)  '  no device driver present
  10709. Public Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7)  '  memory allocation error
  10710. Public Const MMSYSERR_NOTSUPPORTED = (MMSYSERR_BASE + 8)  '  function isn't supported
  10711. Public Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9)  '  error value out of range
  10712. Public Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) '  invalid flag passed
  10713. Public Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) '  invalid parameter passed
  10714. Public Const MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12) '  handle being used
  10715.                                                    '  simultaneously on another
  10716.                                                    '  thread (eg callback)
  10717. Public Const MMSYSERR_INVALIDALIAS = (MMSYSERR_BASE + 13) '  "Specified alias not found in WIN.INI
  10718. Public Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 13) '  last error in range
  10719. Public Const MM_MOM_POSITIONCB = &H3CA              '  Callback for MEVT_POSITIONCB
  10720. Public Const MM_MCISIGNAL = &H3CB
  10721. Public Const MM_MIM_MOREDATA = &H3CC                '  MIM_DONE w/ pending events
  10722. Public Const MIDICAPS_STREAM = &H8               '  driver supports midiStreamOut directly
  10723.  
  10724.  
  10725. Type MIDIEVENT
  10726.         dwDeltaTime As Long          '  Ticks since last event
  10727.         dwStreamID As Long           '  Reserved; must be zero
  10728.         dwEvent As Long              '  Event type and parameters
  10729.         dwParms(1) As Long           '  Parameters if this is a long event
  10730. End Type
  10731.  
  10732. Type MIDISTRMBUFFVER
  10733.         dwVersion As Long                  '  Stream buffer format version
  10734.         dwMid As Long                      '  Manufacturer ID as defined in MMREG.H
  10735.         dwOEMVersion As Long               '  Manufacturer version for custom ext
  10736. End Type
  10737.  
  10738. '  Type codes which go in the high byte of the event DWORD of a stream buffer
  10739.  
  10740. '  Type codes 00-7F contain parameters within the low 24 bits
  10741. '  Type codes 80-FF contain a length of their parameter in the low 24
  10742. '  bits, followed by their parameter data in the buffer. The event
  10743. '  DWORD contains the exact byte length; the parm data itself must be
  10744. '  padded to be an even multiple of 4 Byte long.
  10745. '
  10746.  
  10747. Public Const MEVT_F_SHORT = &H0&
  10748. Public Const MEVT_F_LONG = &H80000000
  10749. Public Const MEVT_F_CALLBACK = &H40000000
  10750. Public Const MIDISTRM_ERROR = -2
  10751.  
  10752. '
  10753. '  Structures and defines for midiStreamProperty
  10754. '
  10755. Public Const MIDIPROP_SET = &H80000000
  10756. Public Const MIDIPROP_GET = &H40000000
  10757.  
  10758. '  These are intentionally both non-zero so the app cannot accidentally
  10759. '  leave the operation off and happen to appear to work due to default
  10760. '  action.
  10761.  
  10762. Public Const MIDIPROP_TIMEDIV = &H1&
  10763. Public Const MIDIPROP_TEMPO = &H2&
  10764.  
  10765. Type MIDIPROPTIMEDIV
  10766.         cbStruct As Long
  10767.         dwTimeDiv As Long
  10768. End Type
  10769.  
  10770. Type MIDIPROPTEMPO
  10771.         cbStruct As Long
  10772.         dwTempo As Long
  10773. End Type
  10774.  
  10775.  
  10776. '  MIDI function prototypes *
  10777.  
  10778. ' ***************************************************************************
  10779.  
  10780. '                             Mixer Support
  10781.  
  10782. ' **************************************************************************
  10783.  
  10784. Public Const MIXER_SHORT_NAME_CHARS = 16
  10785. Public Const MIXER_LONG_NAME_CHARS = 64
  10786.  
  10787. '
  10788. '   MMRESULT error return values specific to the mixer API
  10789. '
  10790. '
  10791. Public Const MIXERR_BASE = 1024
  10792. Public Const MIXERR_INVALLINE = (MIXERR_BASE + 0)
  10793. Public Const MIXERR_INVALCONTROL = (MIXERR_BASE + 1)
  10794. Public Const MIXERR_INVALVALUE = (MIXERR_BASE + 2)
  10795. Public Const MIXERR_LASTERROR = (MIXERR_BASE + 2)
  10796.  
  10797.  
  10798. Public Const MIXER_OBJECTF_HANDLE = &H80000000
  10799. Public Const MIXER_OBJECTF_MIXER = &H0&
  10800. Public Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIXER)
  10801. Public Const MIXER_OBJECTF_WAVEOUT = &H10000000
  10802. Public Const MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEOUT)
  10803. Public Const MIXER_OBJECTF_WAVEIN = &H20000000
  10804. Public Const MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_WAVEIN)
  10805. Public Const MIXER_OBJECTF_MIDIOUT = &H30000000
  10806. Public Const MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIOUT)
  10807. Public Const MIXER_OBJECTF_MIDIIN = &H40000000
  10808. Public Const MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE Or MIXER_OBJECTF_MIDIIN)
  10809. Public Const MIXER_OBJECTF_AUX = &H50000000
  10810.  
  10811. Declare Function mixerGetNumDevs Lib "winmm.dll" Alias "mixerGetNumDevs" () As Long
  10812.  
  10813. Type MIXERCAPS
  10814.         wMid As Integer                   '  manufacturer id
  10815.         wPid As Integer                   '  product id
  10816.         vDriverVersion As Long            '  version of the driver
  10817.         szPname As String * MAXPNAMELEN   '  product name
  10818.         fdwSupport As Long             '  misc. support bits
  10819.         cDestinations As Long          '  count of destinations
  10820. End Type
  10821.  
  10822. Declare Function mixerGetDevCaps Lib "winmm.dll" Alias "mixerGetDevCapsA" (ByVal uMxId As Long, ByVal pmxcaps As MIXERCAPS, ByVal cbmxcaps As Long) As Long
  10823. 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
  10824. Declare Function mixerClose Lib "winmm.dll" Alias "mixerClose" (ByVal hmx As Long) As Long
  10825. 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
  10826.  
  10827. Type Target    ' for use in MIXERLINE and others (embedded structure)
  10828.         
  10829.         dwType As Long                 '  MIXERLINE_TARGETTYPE_xxxx
  10830.         dwDeviceID As Long             '  target device ID of device type
  10831.         wMid As Integer                   '  of target device
  10832.         wPid As Integer                   '       "
  10833.         vDriverVersion As Long            '       "
  10834.         szPname As String * MAXPNAMELEN
  10835. End Type
  10836.  
  10837. Type MIXERLINE
  10838.         cbStruct As Long               '  size of MIXERLINE structure
  10839.         dwDestination As Long          '  zero based destination index
  10840.         dwSource As Long               '  zero based source index (if source)
  10841.         dwLineID As Long               '  unique line id for mixer device
  10842.         fdwLine As Long                '  state/information about line
  10843.         dwUser As Long                 '  driver specific information
  10844.         dwComponentType As Long        '  component type line connects to
  10845.         cChannels As Long              '  number of channels line supports
  10846.         cConnections As Long           '  number of connections (possible)
  10847.         cControls As Long              '  number of controls at this line
  10848.         szShortName As String * MIXER_SHORT_NAME_CHARS
  10849.         szName As String * MIXER_LONG_NAME_CHARS
  10850.         lpTarget As Target
  10851. End Type
  10852.  
  10853. '   MIXERLINE.fdwLine
  10854.  
  10855. Public Const MIXERLINE_LINEF_ACTIVE = &H1&
  10856. Public Const MIXERLINE_LINEF_DISCONNECTED = &H8000&
  10857. Public Const MIXERLINE_LINEF_SOURCE = &H80000000
  10858.  
  10859. '   MIXERLINE.dwComponentType
  10860.  
  10861. '   component types for destinations and sources
  10862.  
  10863. Public Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H0&
  10864. Public Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)
  10865. Public Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)
  10866. Public Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)
  10867. Public Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)
  10868. Public Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)
  10869. Public Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)
  10870. Public Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)
  10871. Public Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)
  10872. Public Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
  10873. Public Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
  10874.  
  10875. Public Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H1000&
  10876. Public Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)
  10877. Public Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)
  10878. Public Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)
  10879. Public Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)
  10880. Public Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)
  10881. Public Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)
  10882. Public Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)
  10883. Public Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)
  10884. Public Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)
  10885. Public Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9)
  10886. Public Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)
  10887. Public Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)
  10888.  
  10889.  
  10890. '
  10891. '   MIXERLINE.Target.dwType
  10892. '
  10893. '
  10894. Public Const MIXERLINE_TARGETTYPE_UNDEFINED = 0
  10895. Public Const MIXERLINE_TARGETTYPE_WAVEOUT = 1
  10896. Public Const MIXERLINE_TARGETTYPE_WAVEIN = 2
  10897. Public Const MIXERLINE_TARGETTYPE_MIDIOUT = 3
  10898. Public Const MIXERLINE_TARGETTYPE_MIDIIN = 4
  10899. Public Const MIXERLINE_TARGETTYPE_AUX = 5
  10900.  
  10901. Declare Function mixerGetLineInfo Lib "winmm.dll" Alias "mixerGetLineInfoA" (ByVal hmxobj As Long, pmxl As MIXERLINE, ByVal fdwInfo As Long) As Long
  10902. Public Const MIXER_GETLINEINFOF_DESTINATION = &H0&
  10903. Public Const MIXER_GETLINEINFOF_SOURCE = &H1&
  10904. Public Const MIXER_GETLINEINFOF_LINEID = &H2&
  10905. Public Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H3&
  10906. Public Const MIXER_GETLINEINFOF_TARGETTYPE = &H4&
  10907. Public Const MIXER_GETLINEINFOF_QUERYMASK = &HF&
  10908.  
  10909. Declare Function mixerGetID Lib "winmm.dll" Alias "mixerGetID" (ByVal hmxobj As Long, pumxID As Long, ByVal fdwId As Long) As Long
  10910.  
  10911. '   MIXERCONTROL
  10912.  
  10913. Type MIXERCONTROL
  10914.         cbStruct As Long           '  size in Byte of MIXERCONTROL
  10915.         dwControlID As Long        '  unique control id for mixer device
  10916.         dwControlType As Long      '  MIXERCONTROL_CONTROLTYPE_xxx
  10917.         fdwControl As Long         '  MIXERCONTROL_CONTROLF_xxx
  10918.         cMultipleItems As Long     '  if MIXERCONTROL_CONTROLF_MULTIPLE set
  10919.         szShortName As String * MIXER_SHORT_NAME_CHARS
  10920.         szName As String * MIXER_LONG_NAME_CHARS
  10921.         Bounds As Double
  10922.         Metrics As Long
  10923. End Type
  10924. '
  10925. '   MIXERCONTROL.fdwControl
  10926.  
  10927. Public Const MIXERCONTROL_CONTROLF_UNIFORM = &H1&
  10928. Public Const MIXERCONTROL_CONTROLF_MULTIPLE = &H2&
  10929. Public Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000
  10930.  
  10931. '   MIXERCONTROL_CONTROLTYPE_xxx building block defines
  10932.  
  10933. Public Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000
  10934. Public Const MIXERCONTROL_CT_CLASS_CUSTOM = &H0&
  10935. Public Const MIXERCONTROL_CT_CLASS_METER = &H10000000
  10936. Public Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
  10937. Public Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000
  10938. Public Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000
  10939. Public Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
  10940. Public Const MIXERCONTROL_CT_CLASS_TIME = &H60000000
  10941. Public Const MIXERCONTROL_CT_CLASS_LIST = &H70000000
  10942. Public Const MIXERCONTROL_CT_SUBCLASS_MASK = &HF000000
  10943. Public Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H0&
  10944. Public Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H1000000
  10945. Public Const MIXERCONTROL_CT_SC_METER_POLLED = &H0&
  10946. Public Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H0&
  10947. Public Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H1000000
  10948. Public Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H0&
  10949. Public Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H1000000
  10950. Public Const MIXERCONTROL_CT_UNITS_MASK = &HFF0000
  10951. Public Const MIXERCONTROL_CT_UNITS_CUSTOM = &H0&
  10952. Public Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H10000
  10953. Public Const MIXERCONTROL_CT_UNITS_SIGNED = &H20000
  10954. Public Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H30000
  10955. Public Const MIXERCONTROL_CT_UNITS_DECIBELS = &H40000 '  in 10ths
  10956. Public Const MIXERCONTROL_CT_UNITS_PERCENT = &H50000 '  in 10ths
  10957. '
  10958. '   Commonly used control types for specifying MIXERCONTROL.dwControlType
  10959. '
  10960. Public Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM Or MIXERCONTROL_CT_UNITS_CUSTOM)
  10961. Public Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_BOOLEAN)
  10962. Public Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_SIGNED)
  10963. Public Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)
  10964. Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER Or MIXERCONTROL_CT_SC_METER_POLLED Or MIXERCONTROL_CT_UNITS_UNSIGNED)
  10965. Public Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN Or MIXERCONTROL_CT_UNITS_BOOLEAN)
  10966. Public Const MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1)
  10967. Public Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2)
  10968. Public Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3)
  10969. Public Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4)
  10970. Public Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5)
  10971. Public Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH Or MIXERCONTROL_CT_SC_SWITCH_BUTTON Or MIXERCONTROL_CT_UNITS_BOOLEAN)
  10972. Public Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_DECIBELS)
  10973. Public Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_SIGNED)
  10974. Public Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
  10975. Public Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER Or MIXERCONTROL_CT_UNITS_PERCENT)
  10976. Public Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER Or MIXERCONTROL_CT_UNITS_SIGNED)
  10977. Public Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1)
  10978. Public Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2)
  10979. Public Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER Or MIXERCONTROL_CT_UNITS_UNSIGNED)
  10980. Public Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)
  10981. Public Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2)
  10982. Public Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3)
  10983. Public Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4)
  10984. Public Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_SINGLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)
  10985. Public Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1)
  10986. Public Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST Or MIXERCONTROL_CT_SC_LIST_MULTIPLE Or MIXERCONTROL_CT_UNITS_BOOLEAN)
  10987. Public Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1)
  10988. Public Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MICROSECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)
  10989. Public Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME Or MIXERCONTROL_CT_SC_TIME_MILLISECS Or MIXERCONTROL_CT_UNITS_UNSIGNED)
  10990. '
  10991. '   MIXERLINECONTROLS
  10992. '
  10993. Type MIXERLINECONTROLS
  10994.         cbStruct As Long       '  size in Byte of MIXERLINECONTROLS
  10995.         dwLineID As Long       '  line id (from MIXERLINE.dwLineID)
  10996.                                              '  MIXER_GETLINECONTROLSF_ONEBYID or
  10997.         dwControl As Long  '  MIXER_GETLINECONTROLSF_ONEBYTYPE
  10998.         cControls As Long      '  count of controls pmxctrl points to
  10999.         cbmxctrl As Long       '  size in Byte of _one_ MIXERCONTROL
  11000.         pamxctrl As MIXERCONTROL       '  pointer to first MIXERCONTROL array
  11001. End Type
  11002.  
  11003. Declare Function mixerGetLineControls Lib "winmm.dll" Alias "mixerGetLineControlsA" (ByVal hmxobj As Long, pmxlc As MIXERLINECONTROLS, ByVal fdwControls As Long) As Long
  11004.  
  11005. Public Const MIXER_GETLINECONTROLSF_ALL = &H0&
  11006. Public Const MIXER_GETLINECONTROLSF_ONEBYID = &H1&
  11007. Public Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H2&
  11008. Public Const MIXER_GETLINECONTROLSF_QUERYMASK = &HF&
  11009.  
  11010. Type MIXERCONTROLDETAILS
  11011.         cbStruct As Long       '  size in Byte of MIXERCONTROLDETAILS
  11012.         dwControlID As Long    '  control id to get/set details on
  11013.         cChannels As Long      '  number of channels in paDetails array
  11014.         item As Long                           ' hwndOwner or cMultipleItems
  11015.         cbDetails As Long      '  size of _one_ details_XX struct
  11016.         paDetails As Long      '  pointer to array of details_XX structs
  11017. End Type
  11018.  
  11019. '   MIXER_GETCONTROLDETAILSF_LISTTEXT
  11020.  
  11021. Type MIXERCONTROLDETAILS_LISTTEXT
  11022.         dwParam1 As Long
  11023.         dwParam2 As Long
  11024.         szName As String * MIXER_LONG_NAME_CHARS
  11025. End Type
  11026.  
  11027. '   MIXER_GETCONTROLDETAILSF_VALUE
  11028.  
  11029. Type MIXERCONTROLDETAILS_BOOLEAN
  11030.         fValue As Long
  11031. End Type
  11032.  
  11033. Type MIXERCONTROLDETAILS_SIGNED
  11034.         lValue As Long
  11035. End Type
  11036.  
  11037. Type MIXERCONTROLDETAILS_UNSIGNED
  11038.         dwValue As Long
  11039. End Type
  11040.  
  11041. Declare Function mixerGetControlDetails Lib "winmm.dll" Alias "mixerGetControlDetailsA" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
  11042.  
  11043. Public Const MIXER_GETCONTROLDETAILSF_VALUE = &H0&
  11044. Public Const MIXER_GETCONTROLDETAILSF_LISTTEXT = &H1&
  11045. Public Const MIXER_GETCONTROLDETAILSF_QUERYMASK = &HF&
  11046.  
  11047. Declare Function mixerSetControlDetails Lib "winmm.dll" Alias "mixerSetControlDetails" (ByVal hmxobj As Long, pmxcd As MIXERCONTROLDETAILS, ByVal fdwDetails As Long) As Long
  11048.  
  11049. Public Const MIXER_SETCONTROLDETAILSF_VALUE = &H0&
  11050. Public Const MIXER_SETCONTROLDETAILSF_CUSTOM = &H1&
  11051. Public Const MIXER_SETCONTROLDETAILSF_QUERYMASK = &HF&
  11052.  
  11053. '  constants used with JOYINFOEX
  11054. Public Const JOY_BUTTON5 = &H10&
  11055. Public Const JOY_BUTTON6 = &H20&
  11056. Public Const JOY_BUTTON7 = &H40&
  11057. Public Const JOY_BUTTON8 = &H80&
  11058. Public Const JOY_BUTTON9 = &H100&
  11059. Public Const JOY_BUTTON10 = &H200&
  11060. Public Const JOY_BUTTON11 = &H400&
  11061. Public Const JOY_BUTTON12 = &H800&
  11062. Public Const JOY_BUTTON13 = &H1000&
  11063. Public Const JOY_BUTTON14 = &H2000&
  11064. Public Const JOY_BUTTON15 = &H4000&
  11065. Public Const JOY_BUTTON16 = &H8000&
  11066. Public Const JOY_BUTTON17 = &H10000
  11067. Public Const JOY_BUTTON18 = &H20000
  11068. Public Const JOY_BUTTON19 = &H40000
  11069. Public Const JOY_BUTTON20 = &H80000
  11070. Public Const JOY_BUTTON21 = &H100000
  11071. Public Const JOY_BUTTON22 = &H200000
  11072. Public Const JOY_BUTTON23 = &H400000
  11073. Public Const JOY_BUTTON24 = &H800000
  11074. Public Const JOY_BUTTON25 = &H1000000
  11075. Public Const JOY_BUTTON26 = &H2000000
  11076. Public Const JOY_BUTTON27 = &H4000000
  11077. Public Const JOY_BUTTON28 = &H8000000
  11078. Public Const JOY_BUTTON29 = &H10000000
  11079. Public Const JOY_BUTTON30 = &H20000000
  11080. Public Const JOY_BUTTON31 = &H40000000
  11081. Public Const JOY_BUTTON32 = &H80000000
  11082.  
  11083. '  constants used with JOYINFOEX structure
  11084. Public Const JOY_POVCENTERED = -1
  11085. Public Const JOY_POVFORWARD = 0
  11086. Public Const JOY_POVRIGHT = 9000
  11087. Public Const JOY_POVBACKWARD = 18000
  11088. Public Const JOY_POVLEFT = 27000
  11089. Public Const JOY_RETURNX = &H1&
  11090. Public Const JOY_RETURNY = &H2&
  11091. Public Const JOY_RETURNZ = &H4&
  11092. Public Const JOY_RETURNR = &H8&
  11093. Public Const JOY_RETURNU = &H10                             '  axis 5
  11094. Public Const JOY_RETURNV = &H20                             '  axis 6
  11095. Public Const JOY_RETURNPOV = &H40&
  11096. Public Const JOY_RETURNBUTTONS = &H80&
  11097. Public Const JOY_RETURNRAWDATA = &H100&
  11098. Public Const JOY_RETURNPOVCTS = &H200&
  11099. Public Const JOY_RETURNCENTERED = &H400&
  11100. Public Const JOY_USEDEADZONE = &H800&
  11101. 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)
  11102. Public Const JOY_CAL_READALWAYS = &H10000
  11103. Public Const JOY_CAL_READXYONLY = &H20000
  11104. Public Const JOY_CAL_READ3 = &H40000
  11105. Public Const JOY_CAL_READ4 = &H80000
  11106. Public Const JOY_CAL_READXONLY = &H100000
  11107. Public Const JOY_CAL_READYONLY = &H200000
  11108. Public Const JOY_CAL_READ5 = &H400000
  11109. Public Const JOY_CAL_READ6 = &H800000
  11110. Public Const JOY_CAL_READZONLY = &H1000000
  11111. Public Const JOY_CAL_READRONLY = &H2000000
  11112. Public Const JOY_CAL_READUONLY = &H4000000
  11113. Public Const JOY_CAL_READVONLY = &H8000000
  11114.  
  11115. Declare Function joyGetPos Lib "winmm.dll" Alias "joyGetPos" (ByVal uJoyID As Long, pji As JOYINFO) As Long
  11116. Declare Function joyGetPosEx Lib "winmm.dll" Alias "joyGetPosEx" (ByVal uJoyID As Long, pji As JOYINFOEX) As Long
  11117. Public Const WAVE_FORMAT_QUERY = &H1
  11118. Public Const SND_PURGE = &H40               '  purge non-static events for task
  11119. Public Const SND_APPLICATION = &H80         '  look for application specific association
  11120. Public Const WAVE_MAPPED = &H4
  11121. Public Const WAVE_FORMAT_DIRECT = &H8
  11122. Public Const WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY Or WAVE_FORMAT_DIRECT)
  11123. Public Const MIM_MOREDATA = MM_MIM_MOREDATA
  11124. Public Const MOM_POSITIONCB = MM_MOM_POSITIONCB
  11125.  
  11126. '  flags for dwFlags parm of midiInOpen()
  11127. Public Const MIDI_IO_STATUS = &H20&
  11128.  
  11129. 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
  11130. Declare Function midiStreamClose Lib "winmm.dll" Alias "midiStreamClose" (ByVal hms As Long) As Long
  11131.  
  11132. Declare Function midiStreamProperty Lib "winmm.dll" Alias "midiStreamProperty" (ByVal hms As Long, lppropdata As Byte, ByVal dwProperty As Long) As Long
  11133. Declare Function midiStreamPosition Lib "winmm.dll" Alias "midiStreamPosition" (ByVal hms As Long, lpmmt As MMTIME, ByVal cbmmt As Long) As Long
  11134. Declare Function midiStreamOut Lib "winmm.dll" Alias "midiStreamOut" (ByVal hms As Long, pmh As MIDIHDR, ByVal cbmh As Long) As Long
  11135. Declare Function midiStreamPause Lib "winmm.dll" Alias "midiStreamPause" (ByVal hms As Long) As Long
  11136. Declare Function midiStreamRestart Lib "winmm.dll" Alias "midiStreamRestart" (ByVal hms As Long) As Long
  11137. Declare Function midiStreamStop Lib "winmm.dll" Alias "midiStreamStop" (ByVal hms As Long) As Long
  11138. Declare Function midiConnect Lib "winmm.dll" Alias "midiConnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long
  11139. Declare Function midiDisconnect Lib "winmm.dll" Alias "midiDisconnect" (ByVal hmi As Long, ByVal hmo As Long, pReserved As Any) As Long
  11140.  
  11141. Type JOYINFOEX
  11142.         dwSize As Long                 '  size of structure
  11143.         dwFlags As Long                 '  flags to indicate what to return
  11144.         dwXpos As Long                '  x position
  11145.         dwYpos As Long                '  y position
  11146.         dwZpos As Long                '  z position
  11147.         dwRpos As Long                 '  rudder/4th axis position
  11148.         dwUpos As Long                 '  5th axis position
  11149.         dwVpos As Long                 '  6th axis position
  11150.         dwButtons As Long             '  button states
  11151.         dwButtonNumber As Long        '  current button number pressed
  11152.         dwPOV As Long                 '  point of view state
  11153.         dwReserved1 As Long                 '  reserved for communication between winmm driver
  11154.         dwReserved2 As Long                 '  reserved for future expansion
  11155. End Type
  11156. ' Installable driver support
  11157.  
  11158. ' Driver messages
  11159. Public Const DRV_LOAD = &H1
  11160. Public Const DRV_ENABLE = &H2
  11161. Public Const DRV_OPEN = &H3
  11162. Public Const DRV_CLOSE = &H4
  11163. Public Const DRV_DISABLE = &H5
  11164. Public Const DRV_FREE = &H6
  11165. Public Const DRV_CONFIGURE = &H7
  11166. Public Const DRV_QUERYCONFIGURE = &H8
  11167. Public Const DRV_INSTALL = &H9
  11168. Public Const DRV_REMOVE = &HA
  11169. Public Const DRV_EXITSESSION = &HB
  11170. Public Const DRV_POWER = &HF
  11171. Public Const DRV_RESERVED = &H800
  11172. Public Const DRV_USER = &H4000
  11173.  
  11174. Type DRVCONFIGINFO
  11175.         dwDCISize As Long
  11176.         lpszDCISectionName As String
  11177.         lpszDCIAliasName As String
  11178.         dnDevNode As Long
  11179. End Type
  11180.  
  11181. ' Supported return values for DRV_CONFIGURE message
  11182. Public Const DRVCNF_CANCEL = &H0
  11183. Public Const DRVCNF_OK = &H1
  11184. Public Const DRVCNF_RESTART = &H2
  11185.  
  11186. '  return values from DriverProc() function
  11187. Public Const DRV_CANCEL = DRVCNF_CANCEL
  11188. Public Const DRV_OK = DRVCNF_OK
  11189. Public Const DRV_RESTART = DRVCNF_RESTART
  11190.  
  11191. Declare Function CloseDriver Lib "winmm.dll" Alias "CloseDriver" (ByVal hDriver As Long, ByVal lParam1 As Long, ByVal lParam2 As Long) As Long
  11192. Declare Function OpenDriver Lib "winmm.dll" Alias "OpenDriver" (ByVal szDriverName As String, ByVal szSectionName As String, ByVal lParam2 As Long) As Long
  11193. 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
  11194. Declare Function DrvGetModuleHandle Lib "winmm.dll" Alias "DrvGetModuleHandle" (ByVal hDriver As Long) As Long
  11195. Declare Function GetDriverModuleHandle Lib "winmm.dll" Alias "GetDriverModuleHandle" (ByVal hDriver As Long) As Long
  11196. 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
  11197.  
  11198. Public Const DRV_MCI_FIRST = DRV_RESERVED
  11199. Public Const DRV_MCI_LAST = DRV_RESERVED + &HFFF
  11200.  
  11201. ' Driver callback support
  11202.  
  11203. '  flags used with waveOutOpen(), waveInOpen(), midiInOpen(), and
  11204. '  midiOutOpen() to specify the type of the dwCallback parameter.
  11205. Public Const CALLBACK_TYPEMASK = &H70000      '  callback type mask
  11206. Public Const CALLBACK_NULL = &H0        '  no callback
  11207. Public Const CALLBACK_WINDOW = &H10000      '  dwCallback is a HWND
  11208. Public Const CALLBACK_TASK = &H20000      '  dwCallback is a HTASK
  11209. Public Const CALLBACK_FUNCTION = &H30000      '  dwCallback is a FARPROC
  11210.  
  11211. '  manufacturer IDs
  11212. Public Const MM_MICROSOFT = 1  '  Microsoft Corp.
  11213.  
  11214. '  product IDs
  11215. Public Const MM_MIDI_MAPPER = 1  '  MIDI Mapper
  11216. Public Const MM_WAVE_MAPPER = 2  '  Wave Mapper
  11217.  
  11218. Public Const MM_SNDBLST_MIDIOUT = 3  '  Sound Blaster MIDI output port
  11219. Public Const MM_SNDBLST_MIDIIN = 4  '  Sound Blaster MIDI input port
  11220. Public Const MM_SNDBLST_SYNTH = 5  '  Sound Blaster internal synthesizer
  11221. Public Const MM_SNDBLST_WAVEOUT = 6  '  Sound Blaster waveform output
  11222. Public Const MM_SNDBLST_WAVEIN = 7  '  Sound Blaster waveform input
  11223.  
  11224. Public Const MM_ADLIB = 9  '  Ad Lib-compatible synthesizer
  11225.  
  11226. Public Const MM_MPU401_MIDIOUT = 10  '  MPU401-compatible MIDI output port
  11227. Public Const MM_MPU401_MIDIIN = 11  '  MPU401-compatible MIDI input port
  11228.  
  11229. Public Const MM_PC_JOYSTICK = 12  '  Joystick adapter
  11230.  
  11231. Declare Function mmsystemGetVersion Lib "winmm.dll" Alias "mmsystemGetVersion" () As Long
  11232. Declare Sub OutputDebugStr Lib "winmm.dll" Alias "OutputDebugStr" (ByVal lpszOutputString As String)
  11233.  
  11234. Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
  11235.  
  11236. '  flag values for uFlags parameter
  11237. Public Const SND_SYNC = &H0         '  play synchronously (default)
  11238. Public Const SND_ASYNC = &H1         '  play asynchronously
  11239.  
  11240. Public Const SND_NODEFAULT = &H2         '  silence not default, if sound not found
  11241.  
  11242. Public Const SND_MEMORY = &H4         '  lpszSoundName points to a memory file
  11243. Public Const SND_ALIAS = &H10000     '  name is a WIN.INI [sounds] entry
  11244. Public Const SND_FILENAME = &H20000     '  name is a file name
  11245. Public Const SND_RESOURCE = &H40004     '  name is a resource name or atom
  11246. Public Const SND_ALIAS_ID = &H110000    '  name is a WIN.INI [sounds] entry identifier
  11247.  
  11248. Public Const SND_ALIAS_START = 0  '  must be > 4096 to keep strings in same section of resource file
  11249.  
  11250. Public Const SND_LOOP = &H8         '  loop the sound until next sndPlaySound
  11251. Public Const SND_NOSTOP = &H10        '  don't stop any currently playing sound
  11252. Public Const SND_VALID = &H1F        '  valid flags          / ;Internal /
  11253.  
  11254. Public Const SND_NOWAIT = &H2000      '  don't wait if the driver is busy
  11255.  
  11256. Public Const SND_VALIDFLAGS = &H17201F    '  Set of valid flag bits.  Anything outside
  11257.                                     '  this range will raise an error
  11258. Public Const SND_RESERVED = &HFF000000  '  In particular these flags are reserved
  11259.  
  11260. Public Const SND_TYPE_MASK = &H170007
  11261.  
  11262. Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
  11263.  
  11264. '  waveform audio error return values
  11265. Public Const WAVERR_BADFORMAT = (WAVERR_BASE + 0)    '  unsupported wave format
  11266. Public Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1)    '  still something playing
  11267. Public Const WAVERR_UNPREPARED = (WAVERR_BASE + 2)    '  header not prepared
  11268. Public Const WAVERR_SYNC = (WAVERR_BASE + 3)    '  device is synchronous
  11269. Public Const WAVERR_LASTERROR = (WAVERR_BASE + 3)    '  last error in range
  11270.  
  11271. '  wave callback messages
  11272. Public Const WOM_OPEN = MM_WOM_OPEN
  11273. Public Const WOM_CLOSE = MM_WOM_CLOSE
  11274. Public Const WOM_DONE = MM_WOM_DONE
  11275. Public Const WIM_OPEN = MM_WIM_OPEN
  11276. Public Const WIM_CLOSE = MM_WIM_CLOSE
  11277. Public Const WIM_DATA = MM_WIM_DATA
  11278.  
  11279. '  device ID for wave device mapper
  11280. Public Const WAVE_MAPPER = -1&
  11281.  
  11282. '  flags for dwFlags parameter in waveOutOpen() and waveInOpen()
  11283.  
  11284. Public Const WAVE_ALLOWSYNC = &H2
  11285. Public Const WAVE_VALID = &H3         '  ;Internal
  11286.  
  11287. Type WAVEHDR
  11288.         lpData As String
  11289.         dwBufferLength As Long
  11290.         dwBytesRecorded As Long
  11291.         dwUser As Long
  11292.         dwFlags As Long
  11293.         dwLoops As Long
  11294.         lpNext As Long
  11295.         Reserved As Long
  11296. End Type
  11297.  
  11298. '  flags for dwFlags field of WAVEHDR
  11299. Public Const WHDR_DONE = &H1         '  done bit
  11300. Public Const WHDR_PREPARED = &H2         '  set if this header has been prepared
  11301. Public Const WHDR_BEGINLOOP = &H4         '  loop start block
  11302. Public Const WHDR_ENDLOOP = &H8         '  loop end block
  11303. Public Const WHDR_INQUEUE = &H10        '  reserved for driver
  11304. Public Const WHDR_VALID = &H1F        '  valid flags      / ;Internal /
  11305.  
  11306. Type WAVEOUTCAPS
  11307.         wMid As Integer
  11308.         wPid As Integer
  11309.         vDriverVersion As Long
  11310.         szPname As String * MAXPNAMELEN
  11311.         dwFormats As Long
  11312.         wChannels As Integer
  11313.         dwSupport As Long
  11314. End Type
  11315.  
  11316. '  flags for dwSupport field of WAVEOUTCAPS
  11317. Public Const WAVECAPS_PITCH = &H1         '  supports pitch control
  11318. Public Const WAVECAPS_PLAYBACKRATE = &H2         '  supports playback rate control
  11319. Public Const WAVECAPS_VOLUME = &H4         '  supports volume control
  11320. Public Const WAVECAPS_LRVOLUME = &H8         '  separate left-right volume control
  11321. Public Const WAVECAPS_SYNC = &H10
  11322.  
  11323. Type WAVEINCAPS
  11324.         wMid As Integer
  11325.         wPid As Integer
  11326.         vDriverVersion As Long
  11327.         szPname As String * MAXPNAMELEN
  11328.         dwFormats As Long
  11329.         wChannels As Integer
  11330. End Type
  11331.  
  11332. '  defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
  11333. Public Const WAVE_INVALIDFORMAT = &H0              '  invalid format
  11334. Public Const WAVE_FORMAT_1M08 = &H1              '  11.025 kHz, Mono,   8-bit
  11335. Public Const WAVE_FORMAT_1S08 = &H2              '  11.025 kHz, Stereo, 8-bit
  11336. Public Const WAVE_FORMAT_1M16 = &H4              '  11.025 kHz, Mono,   16-bit
  11337. Public Const WAVE_FORMAT_1S16 = &H8              '  11.025 kHz, Stereo, 16-bit
  11338. Public Const WAVE_FORMAT_2M08 = &H10             '  22.05  kHz, Mono,   8-bit
  11339. Public Const WAVE_FORMAT_2S08 = &H20             '  22.05  kHz, Stereo, 8-bit
  11340. Public Const WAVE_FORMAT_2M16 = &H40             '  22.05  kHz, Mono,   16-bit
  11341. Public Const WAVE_FORMAT_2S16 = &H80             '  22.05  kHz, Stereo, 16-bit
  11342. Public Const WAVE_FORMAT_4M08 = &H100            '  44.1   kHz, Mono,   8-bit
  11343. Public Const WAVE_FORMAT_4S08 = &H200            '  44.1   kHz, Stereo, 8-bit
  11344. Public Const WAVE_FORMAT_4M16 = &H400            '  44.1   kHz, Mono,   16-bit
  11345. Public Const WAVE_FORMAT_4S16 = &H800            '  44.1   kHz, Stereo, 16-bit
  11346.  
  11347. '  flags for wFormatTag field of WAVEFORMAT
  11348. Public Const WAVE_FORMAT_PCM = 1  '  Needed in resource files so outside #ifndef RC_INVOKED
  11349.  
  11350. Type WAVEFORMAT
  11351.         wFormatTag As Integer
  11352.         nChannels As Integer
  11353.         nSamplesPerSec As Long
  11354.         nAvgBytesPerSec As Long
  11355.         nBlockAlign As Integer
  11356. End Type
  11357.  
  11358. Type PCMWAVEFORMAT
  11359.         wf As WAVEFORMAT
  11360.         wBitsPerSample As Integer
  11361. End Type
  11362.  
  11363. Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias "waveOutGetNumDevs" () As Long
  11364. Declare Function waveOutGetDevCaps Lib "winmm.dll" Alias "waveOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEOUTCAPS, ByVal uSize As Long) As Long
  11365.  
  11366. Declare Function waveOutGetVolume Lib "winmm.dll" Alias "waveOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
  11367. Declare Function waveOutSetVolume Lib "winmm.dll" Alias "waveOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
  11368.  
  11369. Declare Function waveOutGetErrorText Lib "winmm.dll" Alias "waveOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
  11370.  
  11371. 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
  11372. Declare Function waveOutClose Lib "winmm.dll" Alias "waveOutClose" (ByVal hWaveOut As Long) As Long
  11373. Declare Function waveOutPrepareHeader Lib "winmm.dll" Alias "waveOutPrepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  11374. Declare Function waveOutUnprepareHeader Lib "winmm.dll" Alias "waveOutUnprepareHeader" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  11375. Declare Function waveOutWrite Lib "winmm.dll" Alias "waveOutWrite" (ByVal hWaveOut As Long, lpWaveOutHdr As WAVEHDR, ByVal uSize As Long) As Long
  11376. Declare Function waveOutPause Lib "winmm.dll" Alias "waveOutPause" (ByVal hWaveOut As Long) As Long
  11377. Declare Function waveOutRestart Lib "winmm.dll" Alias "waveOutRestart" (ByVal hWaveOut As Long) As Long
  11378. Declare Function waveOutReset Lib "winmm.dll" Alias "waveOutReset" (ByVal hWaveOut As Long) As Long
  11379. Declare Function waveOutBreakLoop Lib "winmm.dll" Alias "waveOutBreakLoop" (ByVal hWaveOut As Long) As Long
  11380. Declare Function waveOutGetPosition Lib "winmm.dll" Alias "waveOutGetPosition" (ByVal hWaveOut As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long
  11381. Declare Function waveOutGetPitch Lib "winmm.dll" Alias "waveOutGetPitch" (ByVal hWaveOut As Long, lpdwPitch As Long) As Long
  11382. Declare Function waveOutSetPitch Lib "winmm.dll" Alias "waveOutSetPitch" (ByVal hWaveOut As Long, ByVal dwPitch As Long) As Long
  11383. Declare Function waveOutGetPlaybackRate Lib "winmm.dll" Alias "waveOutGetPlaybackRate" (ByVal hWaveOut As Long, lpdwRate As Long) As Long
  11384. Declare Function waveOutSetPlaybackRate Lib "winmm.dll" Alias "waveOutSetPlaybackRate" (ByVal hWaveOut As Long, ByVal dwRate As Long) As Long
  11385. Declare Function waveOutGetID Lib "winmm.dll" Alias "waveOutGetID" (ByVal hWaveOut As Long, lpuDeviceID As Long) As Long
  11386. 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
  11387. Declare Function waveInGetNumDevs Lib "winmm.dll" Alias "waveInGetNumDevs" () As Long
  11388.  
  11389. Declare Function waveInGetDevCaps Lib "winmm.dll" Alias "waveInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As WAVEINCAPS, ByVal uSize As Long) As Long
  11390.  
  11391. Declare Function waveInGetErrorText Lib "winmm.dll" Alias "waveInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
  11392.  
  11393. 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
  11394. Declare Function waveInClose Lib "winmm.dll" Alias "waveInClose" (ByVal hWaveIn As Long) As Long
  11395. Declare Function waveInPrepareHeader Lib "winmm.dll" Alias "waveInPrepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
  11396. Declare Function waveInUnprepareHeader Lib "winmm.dll" Alias "waveInUnprepareHeader" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
  11397. Declare Function waveInAddBuffer Lib "winmm.dll" Alias "waveInAddBuffer" (ByVal hWaveIn As Long, lpWaveInHdr As WAVEHDR, ByVal uSize As Long) As Long
  11398. Declare Function waveInStart Lib "winmm.dll" Alias "waveInStart" (ByVal hWaveIn As Long) As Long
  11399. Declare Function waveInStop Lib "winmm.dll" Alias "waveInStop" (ByVal hWaveIn As Long) As Long
  11400. Declare Function waveInReset Lib "winmm.dll" Alias "waveInReset" (ByVal hWaveIn As Long) As Long
  11401. Declare Function waveInGetPosition Lib "winmm.dll" Alias "waveInGetPosition" (ByVal hWaveIn As Long, lpInfo As MMTIME, ByVal uSize As Long) As Long
  11402. Declare Function waveInGetID Lib "winmm.dll" Alias "waveInGetID" (ByVal hWaveIn As Long, lpuDeviceID As Long) As Long
  11403. 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
  11404.  
  11405. '  MIDI error return values
  11406. Public Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0)   '  header not prepared
  11407. Public Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1)   '  still something playing
  11408. Public Const MIDIERR_NOMAP = (MIDIERR_BASE + 2)   '  no current map
  11409. Public Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3)   '  hardware is still busy
  11410. Public Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4)   '  port no longer connected
  11411. Public Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5)   '  invalid setup
  11412. Public Const MIDIERR_LASTERROR = (MIDIERR_BASE + 5)   '  last error in range
  11413.  
  11414. '  MIDI callback messages
  11415. Public Const MIM_OPEN = MM_MIM_OPEN
  11416. Public Const MIM_CLOSE = MM_MIM_CLOSE
  11417. Public Const MIM_DATA = MM_MIM_DATA
  11418. Public Const MIM_LONGDATA = MM_MIM_LONGDATA
  11419. Public Const MIM_ERROR = MM_MIM_ERROR
  11420. Public Const MIM_LONGERROR = MM_MIM_LONGERROR
  11421. Public Const MOM_OPEN = MM_MOM_OPEN
  11422. Public Const MOM_CLOSE = MM_MOM_CLOSE
  11423. Public Const MOM_DONE = MM_MOM_DONE
  11424.  
  11425. '  device ID for MIDI mapper
  11426. Public Const MIDIMAPPER = (-1)  '  Cannot be cast to DWORD as RC complains
  11427. Public Const MIDI_MAPPER = -1&
  11428.  
  11429. '  flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()
  11430. Public Const MIDI_CACHE_ALL = 1
  11431. Public Const MIDI_CACHE_BESTFIT = 2
  11432. Public Const MIDI_CACHE_QUERY = 3
  11433. Public Const MIDI_UNCACHE = 4
  11434. Public Const MIDI_CACHE_VALID = (MIDI_CACHE_ALL Or MIDI_CACHE_BESTFIT Or MIDI_CACHE_QUERY Or MIDI_UNCACHE)  '  ;Internal
  11435.  
  11436. Type MIDIOUTCAPS
  11437.         wMid As Integer
  11438.         wPid As Integer
  11439.         vDriverVersion As Long
  11440.         szPname As String * MAXPNAMELEN
  11441.         wTechnology As Integer
  11442.         wVoices As Integer
  11443.         wNotes As Integer
  11444.         wChannelMask As Integer
  11445.         dwSupport As Long
  11446. End Type
  11447.  
  11448. '  flags for wTechnology field of MIDIOUTCAPS structure
  11449. Public Const MOD_MIDIPORT = 1  '  output port
  11450. Public Const MOD_SYNTH = 2  '  generic internal synth
  11451. Public Const MOD_SQSYNTH = 3  '  square wave internal synth
  11452. Public Const MOD_FMSYNTH = 4  '  FM internal synth
  11453. Public Const MOD_MAPPER = 5  '  MIDI mapper
  11454.  
  11455. '  flags for dwSupport field of MIDIOUTCAPS
  11456. Public Const MIDICAPS_VOLUME = &H1         '  supports volume control
  11457. Public Const MIDICAPS_LRVOLUME = &H2         '  separate left-right volume control
  11458. Public Const MIDICAPS_CACHE = &H4
  11459.  
  11460. Type MIDIINCAPS
  11461.         wMid As Integer
  11462.         wPid As Integer
  11463.         vDriverVersion As Long
  11464.         szPname As String * MAXPNAMELEN
  11465. End Type
  11466.  
  11467. Type MIDIHDR
  11468.         lpData As String
  11469.         dwBufferLength As Long
  11470.         dwBytesRecorded As Long
  11471.         dwUser As Long
  11472.         dwFlags As Long
  11473.         lpNext As Long
  11474.         Reserved As Long
  11475. End Type
  11476.  
  11477. '  flags for dwFlags field of MIDIHDR structure
  11478. Public Const MHDR_DONE = &H1         '  done bit
  11479. Public Const MHDR_PREPARED = &H2         '  set if header prepared
  11480. Public Const MHDR_INQUEUE = &H4         '  reserved for driver
  11481. Public Const MHDR_VALID = &H7         '  valid flags / ;Internal /
  11482.  
  11483. Declare Function midiOutGetDevCaps Lib "winmm.dll" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long
  11484.  
  11485. Declare Function midiOutGetVolume Lib "winmm.dll" Alias "midiOutGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
  11486. Declare Function midiOutSetVolume Lib "winmm.dll" Alias "midiOutSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
  11487.  
  11488. Declare Function midiOutGetErrorText Lib "winmm.dll" Alias "midiOutGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
  11489.  
  11490. 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
  11491. Declare Function midiOutClose Lib "winmm.dll" Alias "midiOutClose" (ByVal hMidiOut As Long) As Long
  11492. Declare Function midiOutPrepareHeader Lib "winmm.dll" Alias "midiOutPrepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long
  11493. Declare Function midiOutUnprepareHeader Lib "winmm.dll" Alias "midiOutUnprepareHeader" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long
  11494. Declare Function midiOutShortMsg Lib "winmm.dll" Alias "midiOutShortMsg" (ByVal hMidiOut As Long, ByVal dwMsg As Long) As Long
  11495. Declare Function midiOutLongMsg Lib "winmm.dll" Alias "midiOutLongMsg" (ByVal hMidiOut As Long, lpMidiOutHdr As MIDIHDR, ByVal uSize As Long) As Long
  11496. Declare Function midiOutReset Lib "winmm.dll" Alias "midiOutReset" (ByVal hMidiOut As Long) As Long
  11497. 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
  11498. 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
  11499. Declare Function midiOutGetID Lib "winmm.dll" Alias "midiOutGetID" (ByVal hMidiOut As Long, lpuDeviceID As Long) As Long
  11500. 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
  11501. Declare Function midiInGetNumDevs Lib "winmm.dll" Alias "midiInGetNumDevs" () As Long
  11502.  
  11503. Declare Function midiInGetDevCaps Lib "winmm.dll" Alias "midiInGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As MIDIINCAPS, ByVal uSize As Long) As Long
  11504.  
  11505. Declare Function midiInGetErrorText Lib "winmm.dll" Alias "midiInGetErrorTextA" (ByVal err As Long, ByVal lpText As String, ByVal uSize As Long) As Long
  11506.  
  11507. 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
  11508. Declare Function midiInClose Lib "winmm.dll" Alias "midiInClose" (ByVal hMidiIn As Long) As Long
  11509. Declare Function midiInPrepareHeader Lib "winmm.dll" Alias "midiInPrepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long
  11510. Declare Function midiInUnprepareHeader Lib "winmm.dll" Alias "midiInUnprepareHeader" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long
  11511. Declare Function midiInAddBuffer Lib "winmm.dll" Alias "midiInAddBuffer" (ByVal hMidiIn As Long, lpMidiInHdr As MIDIHDR, ByVal uSize As Long) As Long
  11512. Declare Function midiInStart Lib "winmm.dll" Alias "midiInStart" (ByVal hMidiIn As Long) As Long
  11513. Declare Function midiInStop Lib "winmm.dll" Alias "midiInStop" (ByVal hMidiIn As Long) As Long
  11514. Declare Function midiInReset Lib "winmm.dll" Alias "midiInReset" (ByVal hMidiIn As Long) As Long
  11515. Declare Function midiInGetID Lib "winmm.dll" Alias "midiInGetID" (ByVal hMidiIn As Long, lpuDeviceID As Long) As Long
  11516. 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
  11517.  
  11518. '  device ID for aux device mapper
  11519. Public Const AUX_MAPPER = -1&
  11520.  
  11521. Type AUXCAPS
  11522.         wMid As Integer
  11523.         wPid As Integer
  11524.         vDriverVersion As Long
  11525.         szPname As String * MAXPNAMELEN
  11526.         wTechnology As Integer
  11527.         dwSupport As Long
  11528. End Type
  11529.  
  11530. '  flags for wTechnology field in AUXCAPS structure
  11531. Public Const AUXCAPS_CDAUDIO = 1  '  audio from internal CD-ROM drive
  11532. Public Const AUXCAPS_AUXIN = 2  '  audio from auxiliary input jacks
  11533.  
  11534. '  flags for dwSupport field in AUXCAPS structure
  11535. Public Const AUXCAPS_VOLUME = &H1         '  supports volume control
  11536. Public Const AUXCAPS_LRVOLUME = &H2         '  separate left-right volume control
  11537.  
  11538. Declare Function auxGetNumDevs Lib "winmm.dll" Alias "auxGetNumDevs" () As Long
  11539. Declare Function auxGetDevCaps Lib "winmm.dll" Alias "auxGetDevCapsA" (ByVal uDeviceID As Long, lpCaps As AUXCAPS, ByVal uSize As Long) As Long
  11540.  
  11541. Declare Function auxSetVolume Lib "winmm.dll" Alias "auxSetVolume" (ByVal uDeviceID As Long, ByVal dwVolume As Long) As Long
  11542. Declare Function auxGetVolume Lib "winmm.dll" Alias "auxGetVolume" (ByVal uDeviceID As Long, lpdwVolume As Long) As Long
  11543. 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
  11544.  
  11545. '  timer error return values
  11546. Public Const TIMERR_NOERROR = (0)  '  no error
  11547. Public Const TIMERR_NOCANDO = (TIMERR_BASE + 1) '  request not completed
  11548. Public Const TIMERR_STRUCT = (TIMERR_BASE + 33) '  time struct size
  11549.  
  11550. '  flags for wFlags parameter of timeSetEvent() function
  11551. Public Const TIME_ONESHOT = 0  '  program timer for single event
  11552. Public Const TIME_PERIODIC = 1  '  program for continuous periodic event
  11553.  
  11554. Type TIMECAPS
  11555.         wPeriodMin As Long
  11556.         wPeriodMax As Long
  11557. End Type
  11558.  
  11559. Declare Function timeGetSystemTime Lib "winmm.dll" Alias "timeGetSystemTime" (lpTime As MMTIME, ByVal uSize As Long) As Long
  11560. Declare Function timeGetTime Lib "winmm.dll" Alias "timeGetTime" () As Long
  11561. 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
  11562. Declare Function timeKillEvent Lib "winmm.dll" Alias "timeKillEvent" (ByVal uID As Long) As Long
  11563. Declare Function timeGetDevCaps Lib "winmm.dll" Alias "timeGetDevCaps" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long
  11564. Declare Function timeBeginPeriod Lib "winmm.dll" Alias "timeBeginPeriod" (ByVal uPeriod As Long) As Long
  11565. Declare Function timeEndPeriod Lib "winmm.dll" Alias "timeEndPeriod" (ByVal uPeriod As Long) As Long
  11566.  
  11567. '  joystick error return values
  11568. Public Const JOYERR_NOERROR = (0)  '  no error
  11569. Public Const JOYERR_PARMS = (JOYERR_BASE + 5) '  bad parameters
  11570. Public Const JOYERR_NOCANDO = (JOYERR_BASE + 6) '  request not completed
  11571. Public Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7) '  joystick is unplugged
  11572.  
  11573. '  constants used with JOYINFO structure and MM_JOY messages
  11574. Public Const JOY_BUTTON1 = &H1
  11575. Public Const JOY_BUTTON2 = &H2
  11576. Public Const JOY_BUTTON3 = &H4
  11577. Public Const JOY_BUTTON4 = &H8
  11578. Public Const JOY_BUTTON1CHG = &H100
  11579. Public Const JOY_BUTTON2CHG = &H200
  11580. Public Const JOY_BUTTON3CHG = &H400
  11581. Public Const JOY_BUTTON4CHG = &H800
  11582.  
  11583. '  joystick ID constants
  11584. Public Const JOYSTICKID1 = 0
  11585. Public Const JOYSTICKID2 = 1
  11586.  
  11587. Type JOYCAPS
  11588.         wMid As Integer
  11589.         wPid As Integer
  11590.         szPname As String * MAXPNAMELEN
  11591.         wXmin As Integer
  11592.         wXmax As Integer
  11593.         wYmin As Integer
  11594.         wYmax As Integer
  11595.         wZmin As Integer
  11596.         wZmax As Integer
  11597.         wNumButtons As Integer
  11598.         wPeriodMin As Integer
  11599.         wPeriodMax As Integer
  11600. End Type
  11601.  
  11602. Type JOYINFO
  11603.         wXpos As Integer
  11604.         wYpos As Integer
  11605.         wZpos As Integer
  11606.         wButtons As Integer
  11607. End Type
  11608.  
  11609. Declare Function joyGetDevCaps Lib "winmm.dll" Alias "joyGetDevCapsA" (ByVal id As Long, lpCaps As JOYCAPS, ByVal uSize As Long) As Long
  11610.  
  11611. Declare Function joyGetNumDevs Lib "winmm.dll" Alias "joyGetNumDev" () As Long
  11612. Declare Function joyGetThreshold Lib "winmm.dll" Alias "joyGetThreshold" (ByVal id As Long, lpuThreshold As Long) As Long
  11613. Declare Function joyReleaseCapture Lib "winmm.dll" Alias "joyReleaseCapture" (ByVal id As Long) As Long
  11614. 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
  11615. Declare Function joySetThreshold Lib "winmm.dll" Alias "joySetThreshold" (ByVal id As Long, ByVal uThreshold As Long) As Long
  11616.  
  11617. '  MMIO error return values
  11618. Public Const MMIOERR_BASE = 256
  11619. Public Const MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1)  '  file not found
  11620. Public Const MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2)  '  out of memory
  11621. Public Const MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3)  '  cannot open
  11622. Public Const MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4)  '  cannot close
  11623. Public Const MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5)  '  cannot read
  11624. Public Const MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6) '  cannot write
  11625. Public Const MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7)  '  cannot seek
  11626. Public Const MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8)  '  cannot expand file
  11627. Public Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9)  '  chunk not found
  11628. Public Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10) '  file is unbuffered
  11629.  
  11630. '  MMIO constants
  11631. Public Const CFSEPCHAR = "+"  '  compound file name separator char.
  11632.  
  11633. Type MMIOINFO
  11634.         dwFlags As Long
  11635.         fccIOProc As Long
  11636.         pIOProc As Long
  11637.         wErrorRet As Long
  11638.         htask As Long
  11639.         cchBuffer As Long
  11640.         pchBuffer As String
  11641.         pchNext As String
  11642.         pchEndRead As String
  11643.         pchEndWrite As String
  11644.         lBufOffset As Long
  11645.         lDiskOffset As Long
  11646.         adwInfo(4) As Long
  11647.         dwReserved1 As Long
  11648.         dwReserved2 As Long
  11649.         hmmio As Long
  11650. End Type
  11651.  
  11652. Public Const MMIO_RWMODE = &H3         '  mask to get bits used for opening
  11653.                                         '  file for reading/writing/both
  11654. Public Const MMIO_SHAREMODE = &H70        '  file sharing mode number
  11655.  
  11656. '  constants for dwFlags field of MMIOINFO
  11657. Public Const MMIO_CREATE = &H1000      '  create new file (or truncate file)
  11658. Public Const MMIO_PARSE = &H100       '  parse new file returning path
  11659. Public Const MMIO_DELETE = &H200       '  create new file (or truncate file)
  11660. Public Const MMIO_EXIST = &H4000      '  checks for existence of file
  11661. Public Const MMIO_ALLOCBUF = &H10000     '  mmioOpen() should allocate a buffer
  11662. Public Const MMIO_GETTEMP = &H20000     '  mmioOpen() should retrieve temp name
  11663.  
  11664. Public Const MMIO_DIRTY = &H10000000  '  I/O buffer is dirty
  11665. '  MMIO_DIRTY is also used in the <dwFlags> field of MMCKINFO structure
  11666.  
  11667. Public Const MMIO_OPEN_VALID = &H3FFFF     '  valid flags for mmioOpen / ;Internal /
  11668.  
  11669. '  read/write mode numbers (bit field MMIO_RWMODE)
  11670. Public Const MMIO_READ = &H0         '  open file for reading only
  11671. Public Const MMIO_WRITE = &H1         '  open file for writing only
  11672. Public Const MMIO_READWRITE = &H2         '  open file for reading and writing
  11673.  
  11674. '  share mode numbers (bit field MMIO_SHAREMODE)
  11675. Public Const MMIO_COMPAT = &H0         '  compatibility mode
  11676. Public Const MMIO_EXCLUSIVE = &H10        '  exclusive-access mode
  11677. Public Const MMIO_DENYWRITE = &H20        '  deny writing to other processes
  11678. Public Const MMIO_DENYREAD = &H30        '  deny reading to other processes
  11679. Public Const MMIO_DENYNONE = &H40        '  deny nothing to other processes
  11680.  
  11681. '  flags for other functions
  11682. Public Const MMIO_FHOPEN = &H10    '  mmioClose(): keep file handle open
  11683. Public Const MMIO_EMPTYBUF = &H10    '  mmioFlush(): empty the I/O buffer
  11684. Public Const MMIO_TOUPPER = &H10    '  mmioStringToFOURCC(): cvt. to u-case
  11685. Public Const MMIO_INSTALLPROC = &H10000     '  mmioInstallIOProc(): install MMIOProc
  11686. Public Const MMIO_PUBLICPROC = &H10000000  '  mmioInstallIOProc: install Globally
  11687. Public Const MMIO_UNICODEPROC = &H1000000   '  mmioInstallIOProc(): Unicode MMIOProc
  11688. Public Const MMIO_REMOVEPROC = &H20000     '  mmioInstallIOProc(): remove MMIOProc
  11689. Public Const MMIO_FINDPROC = &H40000     '  mmioInstallIOProc(): find an MMIOProc
  11690. Public Const MMIO_FINDCHUNK = &H10    '  mmioDescend(): find a chunk by ID
  11691. Public Const MMIO_FINDRIFF = &H20    '  mmioDescend(): find a LIST chunk
  11692. Public Const MMIO_FINDLIST = &H40    '  mmioDescend(): find a RIFF chunk
  11693. Public Const MMIO_CREATERIFF = &H20    '  mmioCreateChunk(): make a LIST chunk
  11694. Public Const MMIO_CREATELIST = &H40    '  mmioCreateChunk(): make a RIFF chunk
  11695.  
  11696. Public Const MMIO_VALIDPROC = &H11070000  '  valid for mmioInstallIOProc / ;Internal /
  11697.  
  11698. '  message numbers for MMIOPROC I/O procedure functions
  11699. Public Const MMIOM_READ = MMIO_READ  '  read (must equal MMIO_READ!)
  11700. Public Const MMIOM_WRITE = MMIO_WRITE  '  write (must equal MMIO_WRITE!)
  11701. Public Const MMIOM_SEEK = 2  '  seek to a new position in file
  11702. Public Const MMIOM_OPEN = 3  '  open file
  11703. Public Const MMIOM_CLOSE = 4  '  close file
  11704. Public Const MMIOM_WRITEFLUSH = 5  '  write and flush
  11705. Public Const MMIOM_RENAME = 6  '  rename specified file
  11706. Public Const MMIOM_USER = &H8000  '  beginning of user-defined messages
  11707.  
  11708. '  flags for mmioSeek()
  11709. Public Const SEEK_SET = 0  '  seek to an absolute position
  11710. Public Const SEEK_CUR = 1  '  seek relative to current position
  11711. Public Const SEEK_END = 2  '  seek relative to end of file
  11712.  
  11713. '  other constants
  11714. Public Const MMIO_DEFAULTBUFFER = 8192  '  default buffer size
  11715.  
  11716. Type MMCKINFO
  11717.     ckid As Long
  11718.     ckSize As Long
  11719.     fccType As Long
  11720.     dwDataOffset As Long
  11721.     dwFlags As Long
  11722. End Type
  11723.  
  11724. Declare Function mmioStringToFOURCC Lib "winmm.dll" Alias "mmioStringToFOURCCA" (ByVal sz As String, ByVal uFlags As Long) As Long
  11725.  
  11726. Declare Function mmioOpen Lib "winmm.dll" Alias "mmioOpenA" (ByVal szFileName As String, lpmmioinfo As MMIOINFO, ByVal dwOpenFlags As Long) As Long
  11727.  
  11728. 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
  11729.  
  11730. Declare Function mmioClose Lib "winmm.dll" Alias "mmioClose" (ByVal hmmio As Long, ByVal uFlags As Long) As Long
  11731. Declare Function mmioRead Lib "winmm.dll" Alias "mmioRead" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long
  11732. Declare Function mmioWrite Lib "winmm.dll" Alias "mmioWrite" (ByVal hmmio As Long, ByVal pch As String, ByVal cch As Long) As Long
  11733. Declare Function mmioSeek Lib "winmm.dll" Alias "mmioSeek" (ByVal hmmio As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long
  11734. Declare Function mmioGetInfo Lib "winmm.dll" Alias "mmioGetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long
  11735. Declare Function mmioSetInfo Lib "winmm.dll" Alias "mmioSetInfo" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long
  11736. 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
  11737. Declare Function mmioFlush Lib "winmm.dll" Alias "mmioFlush" (ByVal hmmio As Long, ByVal uFlags As Long) As Long
  11738. Declare Function mmioAdvance Lib "winmm.dll" Alias "mmioAdvance" (ByVal hmmio As Long, lpmmioinfo As MMIOINFO, ByVal uFlags As Long) As Long
  11739. 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
  11740.  
  11741. Declare Function mmioDescend Lib "winmm.dll" Alias "mmioDescend" (ByVal hmmio As Long, lpck As MMCKINFO, lpckParent As MMCKINFO, ByVal uFlags As Long) As Long
  11742. Declare Function mmioAscend Lib "winmm.dll" Alias "mmioAscend" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long
  11743. Declare Function mmioCreateChunk Lib "winmm.dll" Alias "mmioCreateChunk" (ByVal hmmio As Long, lpck As MMCKINFO, ByVal uFlags As Long) As Long
  11744.  
  11745. ' MCI functions
  11746.  
  11747. Declare Function mciSendCommand Lib "winmm.dll" Alias "mciSendCommandA" (ByVal wDeviceID As Long, ByVal uMessage As Long, ByVal dwParam1 As Long, ByVal dwParam2 As Any) As Long
  11748.  
  11749. 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
  11750.  
  11751. Declare Function mciGetCreatorTask Lib "winmm.dll" Alias "mciGetCreatorTask" (ByVal wDeviceID As Long) As Long
  11752.  
  11753. Declare Function mciGetDeviceID Lib "winmm.dll" Alias "mciGetDeviceIDA" (ByVal lpstrName As String) As Long
  11754.  
  11755. Declare Function mciGetDeviceIDFromElementID Lib "winmm.dll" Alias "mciGetDeviceIDFromElementIDA" (ByVal dwElementID As Long, ByVal lpstrType As String) As Long
  11756.  
  11757. Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long
  11758.  
  11759. Declare Function mciExecute Lib "winmm.dll" Alias "mciExecute" (ByVal lpstrCommand As String) As Long
  11760.  
  11761. '   MCI error return values
  11762. Public Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1)
  11763. Public Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3)
  11764. Public Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5)
  11765. Public Const MCIERR_HARDWARE = (MCIERR_BASE + 6)
  11766. Public Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7)
  11767. Public Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8)
  11768. Public Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9)
  11769. Public Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10)
  11770. Public Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11)
  11771. Public Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12)
  11772. Public Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13)
  11773. Public Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14)
  11774. Public Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15)
  11775. Public Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16)
  11776. Public Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17)
  11777. Public Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18)
  11778. Public Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19)
  11779. Public Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20)
  11780. Public Const MCIERR_INTERNAL = (MCIERR_BASE + 21)
  11781. Public Const MCIERR_DRIVER = (MCIERR_BASE + 22)
  11782. Public Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23)
  11783. Public Const MCIERR_MULTIPLE = (MCIERR_BASE + 24)
  11784. Public Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25)
  11785. Public Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26)
  11786. Public Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28)
  11787. Public Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30)
  11788. Public Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31)
  11789. Public Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32)
  11790. Public Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33)
  11791. Public Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34)
  11792. Public Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35)
  11793. Public Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36)
  11794. Public Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37)
  11795. Public Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38)
  11796. Public Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39)
  11797. Public Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40)
  11798. Public Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41)
  11799. Public Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42)
  11800. Public Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43)
  11801. Public Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44)
  11802. Public Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45)
  11803. Public Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46)
  11804. Public Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47)
  11805. Public Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48)
  11806. Public Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49)
  11807. Public Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50)
  11808. Public Const MCIERR_GET_CD = (MCIERR_BASE + 51)
  11809. Public Const MCIERR_SET_CD = (MCIERR_BASE + 52)
  11810. Public Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53)
  11811. Public Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54)
  11812. Public Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55)
  11813. Public Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56)
  11814.  
  11815. Public Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64)
  11816. Public Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65)
  11817. Public Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66)
  11818. Public Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67)
  11819. Public Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68)
  11820. Public Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69)
  11821. Public Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70)
  11822. Public Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71)
  11823. Public Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72)
  11824. Public Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73)
  11825.  
  11826. Public Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80)
  11827. Public Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81)
  11828. Public Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82)
  11829. Public Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83)
  11830. Public Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84)
  11831. Public Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85)
  11832. Public Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86)
  11833. Public Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87)
  11834.  
  11835. Public Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90)
  11836. Public Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91)
  11837. Public Const MCIERR_FILE_READ = (MCIERR_BASE + 92)
  11838. Public Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93)
  11839.  
  11840. '  All custom device driver errors must be >= this value
  11841. Public Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256)
  11842.  
  11843. '  Message numbers must be in the range between MCI_FIRST and MCI_LAST
  11844.  
  11845. Public Const MCI_FIRST = &H800
  11846. '  Messages 0x801 and 0x802 are reserved
  11847. Public Const MCI_OPEN = &H803
  11848. Public Const MCI_CLOSE = &H804
  11849. Public Const MCI_ESCAPE = &H805
  11850. Public Const MCI_PLAY = &H806
  11851. Public Const MCI_SEEK = &H807
  11852. Public Const MCI_STOP = &H808
  11853. Public Const MCI_PAUSE = &H809
  11854. Public Const MCI_INFO = &H80A
  11855. Public Const MCI_GETDEVCAPS = &H80B
  11856. Public Const MCI_SPIN = &H80C
  11857. Public Const MCI_SET = &H80D
  11858. Public Const MCI_STEP = &H80E
  11859. Public Const MCI_RECORD = &H80F
  11860. Public Const MCI_SYSINFO = &H810
  11861. Public Const MCI_BREAK = &H811
  11862. Public Const MCI_SOUND = &H812
  11863. Public Const MCI_SAVE = &H813
  11864. Public Const MCI_STATUS = &H814
  11865.  
  11866. Public Const MCI_CUE = &H830
  11867.  
  11868. Public Const MCI_REALIZE = &H840
  11869. Public Const MCI_WINDOW = &H841
  11870. Public Const MCI_PUT = &H842
  11871. Public Const MCI_WHERE = &H843
  11872. Public Const MCI_FREEZE = &H844
  11873. Public Const MCI_UNFREEZE = &H845
  11874.  
  11875. Public Const MCI_LOAD = &H850
  11876. Public Const MCI_CUT = &H851
  11877. Public Const MCI_COPY = &H852
  11878. Public Const MCI_PASTE = &H853
  11879. Public Const MCI_UPDATE = &H854
  11880. Public Const MCI_RESUME = &H855
  11881. Public Const MCI_DELETE = &H856
  11882.  
  11883. Public Const MCI_LAST = &HFFF
  11884.  
  11885. '  the next 0x400 message ID's are reserved for custom drivers
  11886. '  all custom MCI command messages must be >= than this value
  11887. Public Const MCI_USER_MESSAGES = (&H400 + MCI_FIRST)
  11888. Public Const MCI_ALL_DEVICE_ID =  - 1 '  Matches all MCI devices
  11889.  
  11890. '  constants for predefined MCI device types
  11891. Public Const MCI_DEVTYPE_VCR = 513
  11892. Public Const MCI_DEVTYPE_VIDEODISC = 514
  11893. Public Const MCI_DEVTYPE_OVERLAY = 515
  11894. Public Const MCI_DEVTYPE_CD_AUDIO = 516
  11895. Public Const MCI_DEVTYPE_DAT = 517
  11896. Public Const MCI_DEVTYPE_SCANNER = 518
  11897. Public Const MCI_DEVTYPE_ANIMATION = 519
  11898. Public Const MCI_DEVTYPE_DIGITAL_VIDEO = 520
  11899. Public Const MCI_DEVTYPE_OTHER = 521
  11900. Public Const MCI_DEVTYPE_WAVEFORM_AUDIO = 522
  11901. Public Const MCI_DEVTYPE_SEQUENCER = 523
  11902.  
  11903. Public Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR
  11904. Public Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER
  11905.  
  11906. Public Const MCI_DEVTYPE_FIRST_USER = &H1000
  11907.  
  11908. '  return values for 'status mode' command
  11909. Public Const MCI_MODE_NOT_READY = (MCI_STRING_OFFSET + 12)
  11910. Public Const MCI_MODE_STOP = (MCI_STRING_OFFSET + 13)
  11911. Public Const MCI_MODE_PLAY = (MCI_STRING_OFFSET + 14)
  11912. Public Const MCI_MODE_RECORD = (MCI_STRING_OFFSET + 15)
  11913. Public Const MCI_MODE_SEEK = (MCI_STRING_OFFSET + 16)
  11914. Public Const MCI_MODE_PAUSE = (MCI_STRING_OFFSET + 17)
  11915. Public Const MCI_MODE_OPEN = (MCI_STRING_OFFSET + 18)
  11916.  
  11917. '  constants used in 'set time format' and 'status time format' commands
  11918. Public Const MCI_FORMAT_MILLISECONDS = 0
  11919. Public Const MCI_FORMAT_HMS = 1
  11920. Public Const MCI_FORMAT_MSF = 2
  11921. Public Const MCI_FORMAT_FRAMES = 3
  11922. Public Const MCI_FORMAT_SMPTE_24 = 4
  11923. Public Const MCI_FORMAT_SMPTE_25 = 5
  11924. Public Const MCI_FORMAT_SMPTE_30 = 6
  11925. Public Const MCI_FORMAT_SMPTE_30DROP = 7
  11926. Public Const MCI_FORMAT_BYTES = 8
  11927. Public Const MCI_FORMAT_SAMPLES = 9
  11928. Public Const MCI_FORMAT_TMSF = 10
  11929.  
  11930. '  Flags for wParam of the MM_MCINOTIFY message
  11931. Public Const MCI_NOTIFY_SUCCESSFUL = &H1
  11932. Public Const MCI_NOTIFY_SUPERSEDED = &H2
  11933. Public Const MCI_NOTIFY_ABORTED = &H4
  11934. Public Const MCI_NOTIFY_FAILURE = &H8
  11935.  
  11936. '  common flags for dwFlags parameter of MCI command messages
  11937. Public Const MCI_NOTIFY = &H1&
  11938. Public Const MCI_WAIT = &H2&
  11939. Public Const MCI_FROM = &H4&
  11940. Public Const MCI_TO = &H8&
  11941. Public Const MCI_TRACK = &H10&
  11942.  
  11943. '  flags for dwFlags parameter of MCI_OPEN command message
  11944. Public Const MCI_OPEN_SHAREABLE = &H100&
  11945. Public Const MCI_OPEN_ELEMENT = &H200&
  11946. Public Const MCI_OPEN_ALIAS = &H400&
  11947. Public Const MCI_OPEN_ELEMENT_ID = &H800&
  11948. Public Const MCI_OPEN_TYPE_ID = &H1000&
  11949. Public Const MCI_OPEN_TYPE = &H2000&
  11950.  
  11951. '  flags for dwFlags parameter of MCI_SEEK command message
  11952. Public Const MCI_SEEK_TO_START = &H100&
  11953. Public Const MCI_SEEK_TO_END = &H200&
  11954.  
  11955. '  flags for dwFlags parameter of MCI_STATUS command message
  11956. Public Const MCI_STATUS_ITEM = &H100&
  11957. Public Const MCI_STATUS_START = &H200&
  11958.  
  11959. '  flags for dwItem field of the MCI_STATUS_PARMS parameter block
  11960. Public Const MCI_STATUS_LENGTH = &H1&
  11961. Public Const MCI_STATUS_POSITION = &H2&
  11962. Public Const MCI_STATUS_NUMBER_OF_TRACKS = &H3&
  11963. Public Const MCI_STATUS_MODE = &H4&
  11964. Public Const MCI_STATUS_MEDIA_PRESENT = &H5&
  11965. Public Const MCI_STATUS_TIME_FORMAT = &H6&
  11966. Public Const MCI_STATUS_READY = &H7&
  11967. Public Const MCI_STATUS_CURRENT_TRACK = &H8&
  11968.  
  11969. '  flags for dwFlags parameter of MCI_INFO command message
  11970. Public Const MCI_INFO_PRODUCT = &H100&
  11971. Public Const MCI_INFO_FILE = &H200&
  11972.  
  11973. '  flags for dwFlags parameter of MCI_GETDEVCAPS command message
  11974. Public Const MCI_GETDEVCAPS_ITEM = &H100&
  11975.  
  11976. '  flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
  11977. Public Const MCI_GETDEVCAPS_CAN_RECORD = &H1&
  11978. Public Const MCI_GETDEVCAPS_HAS_AUDIO = &H2&
  11979. Public Const MCI_GETDEVCAPS_HAS_VIDEO = &H3&
  11980. Public Const MCI_GETDEVCAPS_DEVICE_TYPE = &H4&
  11981. Public Const MCI_GETDEVCAPS_USES_FILES = &H5&
  11982. Public Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H6&
  11983. Public Const MCI_GETDEVCAPS_CAN_EJECT = &H7&
  11984. Public Const MCI_GETDEVCAPS_CAN_PLAY = &H8&
  11985. Public Const MCI_GETDEVCAPS_CAN_SAVE = &H9&
  11986.  
  11987. '  flags for dwFlags parameter of MCI_SYSINFO command message
  11988. Public Const MCI_SYSINFO_QUANTITY = &H100&
  11989. Public Const MCI_SYSINFO_OPEN = &H200&
  11990. Public Const MCI_SYSINFO_NAME = &H400&
  11991. Public Const MCI_SYSINFO_INSTALLNAME = &H800&
  11992.  
  11993. '  flags for dwFlags parameter of MCI_SET command message
  11994. Public Const MCI_SET_DOOR_OPEN = &H100&
  11995. Public Const MCI_SET_DOOR_CLOSED = &H200&
  11996. Public Const MCI_SET_TIME_FORMAT = &H400&
  11997. Public Const MCI_SET_AUDIO = &H800&
  11998. Public Const MCI_SET_VIDEO = &H1000&
  11999. Public Const MCI_SET_ON = &H2000&
  12000. Public Const MCI_SET_OFF = &H4000&
  12001.  
  12002. '  flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
  12003. Public Const MCI_SET_AUDIO_ALL = &H4001&
  12004. Public Const MCI_SET_AUDIO_LEFT = &H4002&
  12005. Public Const MCI_SET_AUDIO_RIGHT = &H4003&
  12006.  
  12007. '  flags for dwFlags parameter of MCI_BREAK command message
  12008. Public Const MCI_BREAK_KEY = &H100&
  12009. Public Const MCI_BREAK_HWND = &H200&
  12010. Public Const MCI_BREAK_OFF = &H400&
  12011.  
  12012. '  flags for dwFlags parameter of MCI_RECORD command message
  12013. Public Const MCI_RECORD_INSERT = &H100&
  12014. Public Const MCI_RECORD_OVERWRITE = &H200&
  12015.  
  12016. '  flags for dwFlags parameter of MCI_SOUND command message
  12017. Public Const MCI_SOUND_NAME = &H100&
  12018.  
  12019. '  flags for dwFlags parameter of MCI_SAVE command message
  12020. Public Const MCI_SAVE_FILE = &H100&
  12021.  
  12022. '  flags for dwFlags parameter of MCI_LOAD command message
  12023. Public Const MCI_LOAD_FILE = &H100&
  12024.  
  12025. Type MCI_GENERIC_PARMS
  12026.         dwCallback As Long
  12027. End Type
  12028.  
  12029. Type MCI_OPEN_PARMS
  12030.         dwCallback As Long
  12031.         wDeviceID As Long
  12032.         lpstrDeviceType As String
  12033.         lpstrElementName As String
  12034.         lpstrAlias As String
  12035. End Type
  12036.  
  12037. Type MCI_PLAY_PARMS
  12038.         dwCallback As Long
  12039.         dwFrom As Long
  12040.         dwTo As Long
  12041. End Type
  12042.  
  12043. Type MCI_SEEK_PARMS
  12044.         dwCallback As Long
  12045.         dwTo As Long
  12046. End Type
  12047.  
  12048. Type MCI_STATUS_PARMS
  12049.         dwCallback As Long
  12050.         dwReturn As Long
  12051.         dwItem As Long
  12052.         dwTrack As Integer
  12053. End Type
  12054.  
  12055. Type MCI_INFO_PARMS
  12056.         dwCallback As Long
  12057.         lpstrReturn As String
  12058.         dwRetSize As Long
  12059. End Type
  12060.  
  12061. Type MCI_GETDEVCAPS_PARMS
  12062.         dwCallback As Long
  12063.         dwReturn As Long
  12064.         dwIten As Long
  12065. End Type
  12066.  
  12067. Type MCI_SYSINFO_PARMS
  12068.         dwCallback As Long
  12069.         lpstrReturn As String
  12070.         dwRetSize As Long
  12071.         dwNumber As Long
  12072.         wDeviceType As Long
  12073. End Type
  12074.  
  12075. Type MCI_SET_PARMS
  12076.         dwCallback As Long
  12077.         dwTimeFormat As Long
  12078.         dwAudio As Long
  12079. End Type
  12080.  
  12081. Type MCI_BREAK_PARMS
  12082.         dwCallback As Long
  12083.         nVirtKey As Long
  12084.         hwndBreak As Long
  12085. End Type
  12086.  
  12087. Type MCI_SOUND_PARMS
  12088.         dwCallback As Long
  12089.         lpstrSoundName As String
  12090. End Type
  12091.  
  12092. Type MCI_SAVE_PARMS
  12093.         dwCallback As Long
  12094.         lpFileName As String
  12095. End Type
  12096.  
  12097. Type MCI_LOAD_PARMS
  12098.         dwCallback As Long
  12099.         lpFileName As String
  12100. End Type
  12101.  
  12102. Type MCI_RECORD_PARMS
  12103.         dwCallback As Long
  12104.         dwFrom As Long
  12105.         dwTo As Long
  12106. End Type
  12107.  
  12108. Public Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1)
  12109.  
  12110. '  return ID's for videodisc MCI_GETDEVCAPS command
  12111.  
  12112. '  flag for dwReturn field of MCI_STATUS_PARMS
  12113. '  MCI_STATUS command, (dwItem == MCI_VD_STATUS_MEDIA_TYPE)
  12114. Public Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2)
  12115. Public Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3)
  12116. Public Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4)
  12117.  
  12118. Public Const MCI_VD_FORMAT_TRACK = &H4001
  12119.  
  12120. '  flags for dwFlags parameter of MCI_PLAY command message
  12121. Public Const MCI_VD_PLAY_REVERSE = &H10000
  12122. Public Const MCI_VD_PLAY_FAST = &H20000
  12123. Public Const MCI_VD_PLAY_SPEED = &H40000
  12124. Public Const MCI_VD_PLAY_SCAN = &H80000
  12125. Public Const MCI_VD_PLAY_SLOW = &H100000
  12126.  
  12127. '  flag for dwFlags parameter of MCI_SEEK command message
  12128. Public Const MCI_VD_SEEK_REVERSE = &H10000
  12129.  
  12130. '  flags for dwItem field of MCI_STATUS_PARMS parameter block
  12131. Public Const MCI_VD_STATUS_SPEED = &H4002&
  12132. Public Const MCI_VD_STATUS_FORWARD = &H4003&
  12133. Public Const MCI_VD_STATUS_MEDIA_TYPE = &H4004&
  12134. Public Const MCI_VD_STATUS_SIDE = &H4005&
  12135. Public Const MCI_VD_STATUS_DISC_SIZE = &H4006&
  12136.  
  12137. '  flags for dwFlags parameter of MCI_GETDEVCAPS command message
  12138. Public Const MCI_VD_GETDEVCAPS_CLV = &H10000
  12139. Public Const MCI_VD_GETDEVCAPS_CAV = &H20000
  12140.  
  12141. Public Const MCI_VD_SPIN_UP = &H10000
  12142. Public Const MCI_VD_SPIN_DOWN = &H20000
  12143.  
  12144. '  flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  12145. Public Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H4002&
  12146. Public Const MCI_VD_GETDEVCAPS_FAST_RATE = &H4003&
  12147. Public Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H4004&
  12148. Public Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H4005&
  12149.  
  12150. '  flags for the dwFlags parameter of MCI_STEP command message
  12151. Public Const MCI_VD_STEP_FRAMES = &H10000
  12152. Public Const MCI_VD_STEP_REVERSE = &H20000
  12153.  
  12154. '  flag for the MCI_ESCAPE command message
  12155. Public Const MCI_VD_ESCAPE_STRING = &H100&
  12156.  
  12157. Type MCI_VD_PLAY_PARMS
  12158.         dwCallback As Long
  12159.         dwFrom As Long
  12160.         dwTo As Long
  12161.         dwSpeed As Long
  12162. End Type
  12163.  
  12164. Type MCI_VD_STEP_PARMS
  12165.         dwCallback As Long
  12166.         dwFrames As Long
  12167. End Type
  12168.  
  12169. Type MCI_VD_ESCAPE_PARMS
  12170.         dwCallback As Long
  12171.         lpstrCommand As String
  12172. End Type
  12173.  
  12174. Public Const MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0)
  12175. Public Const MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1)
  12176.  
  12177. '  flags for the dwFlags parameter of MCI_OPEN command message
  12178. Public Const MCI_WAVE_OPEN_BUFFER = &H10000
  12179.  
  12180. '  flags for the dwFlags parameter of MCI_SET command message
  12181. Public Const MCI_WAVE_SET_FORMATTAG = &H10000
  12182. Public Const MCI_WAVE_SET_CHANNELS = &H20000
  12183. Public Const MCI_WAVE_SET_SAMPLESPERSEC = &H40000
  12184. Public Const MCI_WAVE_SET_AVGBYTESPERSEC = &H80000
  12185. Public Const MCI_WAVE_SET_BLOCKALIGN = &H100000
  12186. Public Const MCI_WAVE_SET_BITSPERSAMPLE = &H200000
  12187.  
  12188. '  flags for the dwFlags parameter of MCI_STATUS, MCI_SET command messages
  12189. Public Const MCI_WAVE_INPUT = &H400000
  12190. Public Const MCI_WAVE_OUTPUT = &H800000
  12191.  
  12192. '  flags for the dwItem field of MCI_STATUS_PARMS parameter block
  12193. Public Const MCI_WAVE_STATUS_FORMATTAG = &H4001&
  12194. Public Const MCI_WAVE_STATUS_CHANNELS = &H4002&
  12195. Public Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H4003&
  12196. Public Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H4004&
  12197. Public Const MCI_WAVE_STATUS_BLOCKALIGN = &H4005&
  12198. Public Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H4006&
  12199. Public Const MCI_WAVE_STATUS_LEVEL = &H4007&
  12200.  
  12201. '  flags for the dwFlags parameter of MCI_SET command message
  12202. Public Const MCI_WAVE_SET_ANYINPUT = &H4000000
  12203. Public Const MCI_WAVE_SET_ANYOUTPUT = &H8000000
  12204.  
  12205. '  flags for the dwFlags parameter of MCI_GETDEVCAPS command message
  12206. Public Const MCI_WAVE_GETDEVCAPS_INPUTS = &H4001&
  12207. Public Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H4002&
  12208.  
  12209. Type MCI_WAVE_OPEN_PARMS
  12210.         dwCallback As Long
  12211.         wDeviceID As Long
  12212.         lpstrDeviceType As String
  12213.         lpstrElementName As String
  12214.         lpstrAlias As String
  12215.         dwBufferSeconds As Long
  12216. End Type
  12217.  
  12218. Type MCI_WAVE_DELETE_PARMS
  12219.         dwCallback As Long
  12220.         dwFrom As Long
  12221.         dwTo As Long
  12222. End Type
  12223.  
  12224. Type MCI_WAVE_SET_PARMS
  12225.         dwCallback As Long
  12226.         dwTimeFormat As Long
  12227.         dwAudio As Long
  12228.         wInput As Long
  12229.         wOutput As Long
  12230.         wFormatTag As Integer
  12231.         wReserved2 As Integer
  12232.         nChannels As Integer
  12233.         wReserved3 As Integer
  12234.         nSamplesPerSec As Long
  12235.         nAvgBytesPerSec As Long
  12236.         nBlockAlign As Integer
  12237.         wReserved4 As Integer
  12238.         wBitsPerSample As Integer
  12239.         wReserved5 As Integer
  12240. End Type
  12241.  
  12242. '  flags for the dwReturn field of MCI_STATUS_PARMS parameter block
  12243. '  MCI_STATUS command, (dwItem == MCI_SEQ_STATUS_DIVTYPE)
  12244. Public Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET)
  12245. Public Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET)
  12246. Public Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET)
  12247. Public Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET)
  12248. Public Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET)
  12249.  
  12250. '  flags for the dwMaster field of MCI_SEQ_SET_PARMS parameter block
  12251. '  MCI_SET command, (dwFlags == MCI_SEQ_SET_MASTER)
  12252. Public Const MCI_SEQ_FORMAT_SONGPTR = &H4001
  12253. Public Const MCI_SEQ_FILE = &H4002
  12254. Public Const MCI_SEQ_MIDI = &H4003
  12255. Public Const MCI_SEQ_SMPTE = &H4004
  12256. Public Const MCI_SEQ_NONE = 65533
  12257.  
  12258. Public Const MCI_SEQ_MAPPER = 65535
  12259.  
  12260. '  flags for the dwItem field of MCI_STATUS_PARMS parameter block
  12261. Public Const MCI_SEQ_STATUS_TEMPO = &H4002&
  12262. Public Const MCI_SEQ_STATUS_PORT = &H4003&
  12263. Public Const MCI_SEQ_STATUS_SLAVE = &H4007&
  12264. Public Const MCI_SEQ_STATUS_MASTER = &H4008&
  12265. Public Const MCI_SEQ_STATUS_OFFSET = &H4009&
  12266. Public Const MCI_SEQ_STATUS_DIVTYPE = &H400A&
  12267.  
  12268. '  flags for the dwFlags parameter of MCI_SET command message
  12269. Public Const MCI_SEQ_SET_TEMPO = &H10000
  12270. Public Const MCI_SEQ_SET_PORT = &H20000
  12271. Public Const MCI_SEQ_SET_SLAVE = &H40000
  12272. Public Const MCI_SEQ_SET_MASTER = &H80000
  12273. Public Const MCI_SEQ_SET_OFFSET = &H1000000
  12274.  
  12275. Type MCI_SEQ_SET_PARMS
  12276.         dwCallback As Long
  12277.         dwTimeFormat As Long
  12278.         dwAudio As Long
  12279.         dwTempo As Long
  12280.         dwPort As Long
  12281.         dwSlave As Long
  12282.         dwMaster As Long
  12283.         dwOffset As Long
  12284. End Type
  12285.  
  12286. '  flags for dwFlags parameter of MCI_OPEN command message
  12287. Public Const MCI_ANIM_OPEN_WS = &H10000
  12288. Public Const MCI_ANIM_OPEN_PARENT = &H20000
  12289. Public Const MCI_ANIM_OPEN_NOSTATIC = &H40000
  12290.  
  12291. '  flags for dwFlags parameter of MCI_PLAY command message
  12292. Public Const MCI_ANIM_PLAY_SPEED = &H10000
  12293. Public Const MCI_ANIM_PLAY_REVERSE = &H20000
  12294. Public Const MCI_ANIM_PLAY_FAST = &H40000
  12295. Public Const MCI_ANIM_PLAY_SLOW = &H80000
  12296. Public Const MCI_ANIM_PLAY_SCAN = &H100000
  12297.  
  12298. '  flags for dwFlags parameter of MCI_STEP command message
  12299. Public Const MCI_ANIM_STEP_REVERSE = &H10000
  12300. Public Const MCI_ANIM_STEP_FRAMES = &H20000
  12301.  
  12302. '  flags for dwItem field of MCI_STATUS_PARMS parameter block
  12303. Public Const MCI_ANIM_STATUS_SPEED = &H4001&
  12304. Public Const MCI_ANIM_STATUS_FORWARD = &H4002&
  12305. Public Const MCI_ANIM_STATUS_HWND = &H4003&
  12306. Public Const MCI_ANIM_STATUS_HPAL = &H4004&
  12307. Public Const MCI_ANIM_STATUS_STRETCH = &H4005&
  12308.  
  12309. '  flags for the dwFlags parameter of MCI_INFO command message
  12310. Public Const MCI_ANIM_INFO_TEXT = &H10000
  12311.  
  12312. '  flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  12313. Public Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H4001&
  12314. Public Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H4002&
  12315. Public Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H4003&
  12316. Public Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H4004&
  12317. Public Const MCI_ANIM_GETDEVCAPS_PALETTES = &H4006&
  12318. Public Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H4007&
  12319. Public Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H4008&
  12320.  
  12321. '  flags for the MCI_REALIZE command message
  12322. Public Const MCI_ANIM_REALIZE_NORM = &H10000
  12323. Public Const MCI_ANIM_REALIZE_BKGD = &H20000
  12324.  
  12325. '  flags for dwFlags parameter of MCI_WINDOW command message
  12326. Public Const MCI_ANIM_WINDOW_HWND = &H10000
  12327. Public Const MCI_ANIM_WINDOW_STATE = &H40000
  12328. Public Const MCI_ANIM_WINDOW_TEXT = &H80000
  12329. Public Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H100000
  12330. Public Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H200000
  12331.  
  12332. '  flags for hWnd field of MCI_ANIM_WINDOW_PARMS parameter block
  12333. '  MCI_WINDOW command message, (dwFlags == MCI_ANIM_WINDOW_HWND)
  12334. Public Const MCI_ANIM_WINDOW_DEFAULT = &H0&
  12335.  
  12336. '  flags for dwFlags parameter of MCI_PUT command message
  12337. Public Const MCI_ANIM_RECT = &H10000
  12338. Public Const MCI_ANIM_PUT_SOURCE = &H20000      '  also  MCI_WHERE
  12339. Public Const MCI_ANIM_PUT_DESTINATION = &H40000      '  also  MCI_WHERE
  12340.  
  12341. '  flags for dwFlags parameter of MCI_WHERE command message
  12342. Public Const MCI_ANIM_WHERE_SOURCE = &H20000
  12343. Public Const MCI_ANIM_WHERE_DESTINATION = &H40000
  12344.  
  12345. '  flags for dwFlags parameter of MCI_UPDATE command message
  12346. Public Const MCI_ANIM_UPDATE_HDC = &H20000
  12347.  
  12348. Type MCI_ANIM_OPEN_PARMS
  12349.         dwCallback As Long
  12350.         wDeviceID As Long
  12351.         lpstrDeviceType As String
  12352.         lpstrElementName As String
  12353.         lpstrAlias As String
  12354.         dwStyle As Long
  12355.         hWndParent As Long
  12356. End Type
  12357.  
  12358. Type MCI_ANIM_PLAY_PARMS
  12359.         dwCallback As Long
  12360.         dwFrom As Long
  12361.         dwTo As Long
  12362.         dwSpeed As Long
  12363. End Type
  12364.  
  12365. Type MCI_ANIM_STEP_PARMS
  12366.         dwCallback As Long
  12367.         dwFrames As Long
  12368. End Type
  12369.  
  12370. Type MCI_ANIM_WINDOW_PARMS
  12371.         dwCallback As Long
  12372.         hwnd As Long
  12373.         nCmdShow As Long
  12374.         lpstrText As String
  12375. End Type
  12376.  
  12377. Type MCI_ANIM_RECT_PARMS
  12378.         dwCallback As Long
  12379.         rc As Rect
  12380. End Type
  12381.  
  12382. Type MCI_ANIM_UPDATE_PARMS
  12383.         dwCallback As Long
  12384.         rc As Rect
  12385.         hdc As Long
  12386. End Type
  12387.  
  12388. '  flags for dwFlags parameter of MCI_OPEN command message
  12389. Public Const MCI_OVLY_OPEN_WS = &H10000
  12390. Public Const MCI_OVLY_OPEN_PARENT = &H20000
  12391.  
  12392. '  flags for dwFlags parameter of MCI_STATUS command message
  12393. Public Const MCI_OVLY_STATUS_HWND = &H4001&
  12394. Public Const MCI_OVLY_STATUS_STRETCH = &H4002&
  12395.  
  12396. '  flags for dwFlags parameter of MCI_INFO command message
  12397. Public Const MCI_OVLY_INFO_TEXT = &H10000
  12398.  
  12399. '  flags for dwItem field of MCI_GETDEVCAPS_PARMS parameter block
  12400. Public Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H4001&
  12401. Public Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H4002&
  12402. Public Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H4003&
  12403.  
  12404. '  flags for dwFlags parameter of MCI_WINDOW command message
  12405. Public Const MCI_OVLY_WINDOW_HWND = &H10000
  12406. Public Const MCI_OVLY_WINDOW_STATE = &H40000
  12407. Public Const MCI_OVLY_WINDOW_TEXT = &H80000
  12408. Public Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H100000
  12409. Public Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H200000
  12410.  
  12411. '  flags for hWnd parameter of MCI_OVLY_WINDOW_PARMS parameter block
  12412. Public Const MCI_OVLY_WINDOW_DEFAULT = &H0&
  12413.  
  12414. '  flags for dwFlags parameter of MCI_PUT command message
  12415. Public Const MCI_OVLY_RECT = &H10000
  12416. Public Const MCI_OVLY_PUT_SOURCE = &H20000
  12417. Public Const MCI_OVLY_PUT_DESTINATION = &H40000
  12418. Public Const MCI_OVLY_PUT_FRAME = &H80000
  12419. Public Const MCI_OVLY_PUT_VIDEO = &H100000
  12420.  
  12421. '  flags for dwFlags parameter of MCI_WHERE command message
  12422. Public Const MCI_OVLY_WHERE_SOURCE = &H20000
  12423. Public Const MCI_OVLY_WHERE_DESTINATION = &H40000
  12424. Public Const MCI_OVLY_WHERE_FRAME = &H80000
  12425. Public Const MCI_OVLY_WHERE_VIDEO = &H100000
  12426.  
  12427. Type MCI_OVLY_OPEN_PARMS
  12428.         dwCallback As Long
  12429.         wDeviceID As Long
  12430.         lpstrDeviceType As String
  12431.         lpstrElementName As String
  12432.         lpstrAlias As String
  12433.         dwStyle As Long
  12434.         hWndParent As Long
  12435. End Type
  12436.  
  12437. Type MCI_OVLY_WINDOW_PARMS
  12438.         dwCallback As Long
  12439.         hwnd As Long
  12440.         nCmdShow As Long
  12441.         lpstrText As String
  12442. End Type
  12443.  
  12444. Type MCI_OVLY_RECT_PARMS
  12445.         dwCallback As Long
  12446.         rc As Rect
  12447. End Type
  12448.  
  12449. Type MCI_OVLY_SAVE_PARMS
  12450.         dwCallback As Long
  12451.         lpFileName As String
  12452.         rc As Rect
  12453. End Type
  12454.  
  12455. Type MCI_OVLY_LOAD_PARMS
  12456.         dwCallback As Long
  12457.         lpFileName As String
  12458.         rc As Rect
  12459. End Type
  12460.  
  12461. Public Const CAPS1 = 94              '  other caps
  12462. Public Const C1_TRANSPARENT = &H1     '  new raster cap
  12463. Public Const NEWTRANSPARENT = 3  '  use with SetBkMode()
  12464.  
  12465. Public Const QUERYROPSUPPORT = 40  '  use to determine ROP support
  12466.  
  12467. Public Const SELECTDIB = 41  '  DIB.DRV select dib escape
  12468.  
  12469. ' ----------------
  12470. ' shell association database management functions
  12471. ' -----------------
  12472.  
  12473. '  error values for ShellExecute() beyond the regular WinExec() codes
  12474. Public Const SE_ERR_SHARE = 26
  12475. Public Const SE_ERR_ASSOCINCOMPLETE = 27
  12476. Public Const SE_ERR_DDETIMEOUT = 28
  12477. Public Const SE_ERR_DDEFAIL = 29
  12478. Public Const SE_ERR_DDEBUSY = 30
  12479. Public Const SE_ERR_NOASSOC = 31
  12480.  
  12481. ' -------------
  12482. ' Print APIs
  12483. ' -------------
  12484.  
  12485. Type PRINTER_INFO_1
  12486.         flags As Long
  12487.         pDescription As String
  12488.         pName As String
  12489.         pComment As String
  12490. End Type
  12491.  
  12492. Type PRINTER_INFO_2
  12493.         pServerName As String
  12494.         pPrinterName As String
  12495.         pShareName As String
  12496.         pPortName As String
  12497.         pDriverName As String
  12498.         pComment As String
  12499.         pLocation As String
  12500.         pDevMode As DEVMODE
  12501.         pSepFile As String
  12502.         pPrintProcessor As String
  12503.         pDatatype As String
  12504.         pParameters As String
  12505.         pSecurityDescriptor As SECURITY_DESCRIPTOR
  12506.         Attributes As Long
  12507.         Priority As Long
  12508.         DefaultPriority As Long
  12509.         StartTime As Long
  12510.         UntilTime As Long
  12511.         Status As Long
  12512.         cJobs As Long
  12513.         AveragePPM As Long
  12514. End Type
  12515.  
  12516. Type PRINTER_INFO_3
  12517.         pSecurityDescriptor As SECURITY_DESCRIPTOR
  12518. End Type
  12519.  
  12520. Public Const PRINTER_CONTROL_PAUSE = 1
  12521. Public Const PRINTER_CONTROL_RESUME = 2
  12522. Public Const PRINTER_CONTROL_PURGE = 3
  12523.  
  12524. Public Const PRINTER_STATUS_PAUSED = &H1
  12525. Public Const PRINTER_STATUS_ERROR = &H2
  12526. Public Const PRINTER_STATUS_PENDING_DELETION = &H4
  12527. Public Const PRINTER_STATUS_PAPER_JAM = &H8
  12528. Public Const PRINTER_STATUS_PAPER_OUT = &H10
  12529. Public Const PRINTER_STATUS_MANUAL_FEED = &H20
  12530. Public Const PRINTER_STATUS_PAPER_PROBLEM = &H40
  12531. Public Const PRINTER_STATUS_OFFLINE = &H80
  12532. Public Const PRINTER_STATUS_IO_ACTIVE = &H100
  12533. Public Const PRINTER_STATUS_BUSY = &H200
  12534. Public Const PRINTER_STATUS_PRINTING = &H400
  12535. Public Const PRINTER_STATUS_OUTPUT_BIN_FULL = &H800
  12536. Public Const PRINTER_STATUS_NOT_AVAILABLE = &H1000
  12537. Public Const PRINTER_STATUS_WAITING = &H2000
  12538. Public Const PRINTER_STATUS_PROCESSING = &H4000
  12539. Public Const PRINTER_STATUS_INITIALIZING = &H8000
  12540. Public Const PRINTER_STATUS_WARMING_UP = &H10000
  12541. Public Const PRINTER_STATUS_TONER_LOW = &H20000
  12542. Public Const PRINTER_STATUS_NO_TONER = &H40000
  12543. Public Const PRINTER_STATUS_PAGE_PUNT = &H80000
  12544. Public Const PRINTER_STATUS_USER_INTERVENTION = &H100000
  12545. Public Const PRINTER_STATUS_OUT_OF_MEMORY = &H200000
  12546. Public Const PRINTER_STATUS_DOOR_OPEN = &H400000
  12547.  
  12548. Public Const PRINTER_ATTRIBUTE_QUEUED = &H1
  12549. Public Const PRINTER_ATTRIBUTE_DIRECT = &H2
  12550. Public Const PRINTER_ATTRIBUTE_DEFAULT = &H4
  12551. Public Const PRINTER_ATTRIBUTE_SHARED = &H8
  12552. Public Const PRINTER_ATTRIBUTE_NETWORK = &H10
  12553. Public Const PRINTER_ATTRIBUTE_HIDDEN = &H20
  12554. Public Const PRINTER_ATTRIBUTE_LOCAL = &H40
  12555.  
  12556. Public Const NO_PRIORITY = 0
  12557. Public Const MAX_PRIORITY = 99
  12558. Public Const MIN_PRIORITY = 1
  12559. Public Const DEF_PRIORITY = 1
  12560.  
  12561. Type JOB_INFO_1
  12562.         JobId As Long
  12563.         pPrinterName As String
  12564.         pMachineName As String
  12565.         pUserName As String
  12566.         pDocument As String
  12567.         pDatatype As String
  12568.         pStatus As String
  12569.         Status As Long
  12570.         Priority As Long
  12571.         Position As Long
  12572.         TotalPages As Long
  12573.         PagesPrinted As Long
  12574.         Submitted As SYSTEMTIME
  12575. End Type
  12576.  
  12577. Type JOB_INFO_2
  12578.         JobId As Long
  12579.         pPrinterName As String
  12580.         pMachineName As String
  12581.         pUserName As String
  12582.         pDocument As String
  12583.         pNotifyName As String
  12584.         pDatatype As String
  12585.         pPrintProcessor As String
  12586.         pParameters As String
  12587.         pDriverName As String
  12588.         pDevMode As DEVMODE
  12589.         pStatus As String
  12590.         pSecurityDescriptor As SECURITY_DESCRIPTOR
  12591.         Status As Long
  12592.         Priority As Long
  12593.         Position As Long
  12594.         StartTime As Long
  12595.         UntilTime As Long
  12596.         TotalPages As Long
  12597.         Size As Long
  12598.         Submitted As SYSTEMTIME
  12599.         time As Long
  12600.         PagesPrinted As Long
  12601. End Type
  12602.  
  12603. Public Const JOB_CONTROL_PAUSE = 1
  12604. Public Const JOB_CONTROL_RESUME = 2
  12605. Public Const JOB_CONTROL_CANCEL = 3
  12606. Public Const JOB_CONTROL_RESTART = 4
  12607.  
  12608. Public Const JOB_STATUS_PAUSED = &H1
  12609. Public Const JOB_STATUS_ERROR = &H2
  12610. Public Const JOB_STATUS_DELETING = &H4
  12611. Public Const JOB_STATUS_SPOOLING = &H8
  12612. Public Const JOB_STATUS_PRINTING = &H10
  12613. Public Const JOB_STATUS_OFFLINE = &H20
  12614. Public Const JOB_STATUS_PAPEROUT = &H40
  12615. Public Const JOB_STATUS_PRINTED = &H80
  12616.  
  12617. Public Const JOB_POSITION_UNSPECIFIED = 0
  12618.  
  12619. Type ADDJOB_INFO_1
  12620.         Path As String
  12621.         JobId As Long
  12622. End Type
  12623.  
  12624. Type DRIVER_INFO_1
  12625.         pName As String
  12626. End Type
  12627.  
  12628. Type DRIVER_INFO_2
  12629.         cVersion As Long
  12630.         pName As String
  12631.         pEnvironment As String
  12632.         pDriverPath As String
  12633.         pDataFile As String
  12634.         pConfigFile As String
  12635. End Type
  12636.  
  12637. Type DOC_INFO_1
  12638.         pDocName As String
  12639.         pOutputFile As String
  12640.         pDatatype As String
  12641. End Type
  12642.  
  12643. Type FORM_INFO_1
  12644.         pName As String
  12645.         Size As SIZEL
  12646.         ImageableArea As RECTL
  12647. End Type
  12648.  
  12649. Public Const FORM_BUILTIN = &H1
  12650.  
  12651. Type PRINTPROCESSOR_INFO_1
  12652.         pName As String
  12653. End Type
  12654.  
  12655. Type PORT_INFO_1
  12656.         pName As String
  12657. End Type
  12658.  
  12659. Type MONITOR_INFO_1
  12660.         pName As String
  12661. End Type
  12662.  
  12663. Type MONITOR_INFO_2
  12664.         pName As String
  12665.         pEnvironment As String
  12666.         pDLLName As String
  12667. End Type
  12668.  
  12669. Type DATATYPES_INFO_1
  12670.         pName As String
  12671. End Type
  12672.  
  12673. Type PRINTER_DEFAULTS
  12674.         pDatatype As String
  12675.         pDevMode As DEVMODE
  12676.         DesiredAccess As Long
  12677. End Type
  12678.  
  12679. Type PRINTER_INFO_4
  12680.     pPrinterName As String
  12681.     pServerName As String
  12682.     Attributes As Long
  12683. End Type
  12684.  
  12685. Type PRINTER_INFO_5
  12686.         pPrinterName As String
  12687.         pPortName As String
  12688.         Attributes As Long
  12689.         DeviceNotSelectedTimeout As Long
  12690.         TransmissionRetryTimeout As Long
  12691. End Type
  12692.  
  12693. Public Const PRINTER_CONTROL_SET_STATUS = 4
  12694. Public Const PRINTER_ATTRIBUTE_WORK_OFFLINE = &H400
  12695. Public Const PRINTER_ATTRIBUTE_ENABLE_BIDI = &H800
  12696. Public Const JOB_CONTROL_DELETE = 5
  12697. Public Const JOB_STATUS_USER_INTERVENTION = &H10000
  12698.  
  12699. Type DRIVER_INFO_3
  12700.         cVersion As Long
  12701.         pName As String                    '  QMS 810
  12702.         pEnvironment As String             '  Win32 x86
  12703.         pDriverPath As String              '  c:\drivers\pscript.dll
  12704.         pDataFile As String                '  c:\drivers\QMS810.PPD
  12705.         pConfigFile As String              '  c:\drivers\PSCRPTUI.DLL
  12706.         pHelpFile As String                '  c:\drivers\PSCRPTUI.HLP
  12707.         pDependentFiles As String          '
  12708.         pMonitorName As String             '  "PJL monitor"
  12709.         pDefaultDataType As String         '  "EMF"
  12710. End Type
  12711.  
  12712. Type DOC_INFO_2
  12713.         pDocName As String
  12714.         pOutputFile As String
  12715.         pDatatype As String
  12716.         dwMode As Long
  12717.         JobId As Long
  12718. End Type
  12719.  
  12720. Public Const DI_CHANNEL = 1                  '  start direct read/write channel,
  12721. Public Const DI_READ_SPOOL_JOB = 3
  12722.  
  12723. Type PORT_INFO_2
  12724.         pPortName As String
  12725.         pMonitorName As String
  12726.         pDescription As String
  12727.         fPortType As Long
  12728.         Reserved As Long
  12729. End Type
  12730.  
  12731. Public Const PORT_TYPE_WRITE = &H1
  12732. Public Const PORT_TYPE_READ = &H2
  12733. Public Const PORT_TYPE_REDIRECTED = &H4
  12734. Public Const PORT_TYPE_NET_ATTACHED = &H8
  12735.  
  12736. 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
  12737.  
  12738. Declare Function EnumPrinterPropertySheets Lib "winspool.drv" Alias "EnumPrinterPropertySheets" (hPrinter As Long, hwnd As Long, lpfnAdd As Long, ByVal lParam As Long) As Long
  12739.  
  12740. Public Const PRINTER_ENUM_DEFAULT = &H1
  12741. Public Const PRINTER_ENUM_LOCAL = &H2
  12742. Public Const PRINTER_ENUM_CONNECTIONS = &H4
  12743. Public Const PRINTER_ENUM_FAVORITE = &H4
  12744. Public Const PRINTER_ENUM_NAME = &H8
  12745. Public Const PRINTER_ENUM_REMOTE = &H10
  12746. Public Const PRINTER_ENUM_SHARED = &H20
  12747. Public Const PRINTER_ENUM_NETWORK = &H40
  12748.  
  12749. Public Const PRINTER_ENUM_EXPAND = &H4000
  12750. Public Const PRINTER_ENUM_CONTAINER = &H8000
  12751.  
  12752. Public Const PRINTER_ENUM_ICONMASK = &HFF0000
  12753. Public Const PRINTER_ENUM_ICON1 = &H10000
  12754. Public Const PRINTER_ENUM_ICON2 = &H20000
  12755. Public Const PRINTER_ENUM_ICON3 = &H40000
  12756. Public Const PRINTER_ENUM_ICON4 = &H80000
  12757. Public Const PRINTER_ENUM_ICON5 = &H100000
  12758. Public Const PRINTER_ENUM_ICON6 = &H200000
  12759. Public Const PRINTER_ENUM_ICON7 = &H400000
  12760. Public Const PRINTER_ENUM_ICON8 = &H800000
  12761.  
  12762. Declare Function OpenPrinter Lib "winspool.drv" Alias "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
  12763. Declare Function ResetPrinter Lib "winspool.drv" Alias "ResetPrinterA" (ByVal hPrinter As Long, pDefault As PRINTER_DEFAULTS) As Long
  12764. 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
  12765. 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
  12766. 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
  12767. Declare Function AddPrinter Lib "winspool.drv" Alias "AddPrinterA" (ByVal pName As String, ByVal Level As Long, pPrinter As Any) As Long
  12768.  
  12769. Declare Function AddPrinterDriver Lib "winspool.drv" Alias "AddPrinterDriverA" (ByVal pName As String, ByVal Level As Long, pDriverInfo As Any) As Long
  12770.  
  12771. 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, pcRetruned As Long) As Long
  12772. 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
  12773. 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
  12774. Declare Function DeletePrinterDriver Lib "winspool.drv" Alias "DeletePrinterDriverA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pDriverName As String) As Long
  12775.  
  12776. 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
  12777. 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
  12778. 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
  12779. 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
  12780. Declare Function DeletePrintProcessor Lib "winspool.drv" Alias "DeletePrintProcessorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProcessorName As String) As Long
  12781.  
  12782. Declare Function StartDocPrinter Lib "winspool.drv" Alias "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pDocInfo As Byte) As Long
  12783. Declare Function StartPagePrinter Lib "winspool.drv" Alias "StartPagePrinter" (ByVal hPrinter As Long) As Long
  12784. Declare Function WritePrinter Lib "winspool.drv" Alias "WritePrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pcWritten As Long) As Long
  12785. Declare Function EndPagePrinter Lib "winspool.drv" Alias "EndPagePrinter" (ByVal hPrinter As Long) As Long
  12786. Declare Function AbortPrinter Lib "winspool.drv" Alias "AbortPrinter" (ByVal hPrinter As Long) As Long
  12787. Declare Function ReadPrinter Lib "winspool.drv" Alias "ReadPrinter" (ByVal hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, pNoBytesRead As Long) As Long
  12788. Declare Function EndDocPrinter Lib "winspool.drv" Alias "EndDocPrinter" (ByVal hPrinter As Long) As Long
  12789.  
  12790. 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
  12791. Declare Function ScheduleJob Lib "winspool.drv" Alias "ScheduleJob" (ByVal hPrinter As Long, ByVal JobId As Long) As Long
  12792. Declare Function PrinterProperties Lib "winspool.drv" Alias "PrinterProperties" (ByVal hwnd As Long, ByVal hPrinter As Long) As Long
  12793. Declare Function DocumentProperties Lib "winspool.drv" Alias "DocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE, ByVal fMode As Long) As Long
  12794. Declare Function AdvancedDocumentProperties Lib "winspool.drv" Alias "AdvancedDocumentPropertiesA" (ByVal hwnd As Long, ByVal hPrinter As Long, ByVal pDeviceName As String, pDevModeOutput As DEVMODE, pDevModeInput As DEVMODE) As Long
  12795.  
  12796. 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
  12797. 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
  12798. Declare Function WaitForPrinterChange Lib "winspool.drv" Alias "WaitForPrinterChange" (ByVal hPrinter As Long, ByVal flags As Long) As Long
  12799.  
  12800. Public Const PRINTER_CHANGE_ADD_PRINTER = &H1
  12801. Public Const PRINTER_CHANGE_SET_PRINTER = &H2
  12802. Public Const PRINTER_CHANGE_DELETE_PRINTER = &H4
  12803. Public Const PRINTER_CHANGE_PRINTER = &HFF
  12804. Public Const PRINTER_CHANGE_ADD_JOB = &H100
  12805. Public Const PRINTER_CHANGE_SET_JOB = &H200
  12806. Public Const PRINTER_CHANGE_DELETE_JOB = &H400
  12807. Public Const PRINTER_CHANGE_WRITE_JOB = &H800
  12808. Public Const PRINTER_CHANGE_JOB = &HFF00
  12809. Public Const PRINTER_CHANGE_ADD_FORM = &H10000
  12810. Public Const PRINTER_CHANGE_SET_FORM = &H20000
  12811. Public Const PRINTER_CHANGE_DELETE_FORM = &H40000
  12812. Public Const PRINTER_CHANGE_FORM = &H70000
  12813. Public Const PRINTER_CHANGE_ADD_PORT = &H100000
  12814. Public Const PRINTER_CHANGE_CONFIGURE_PORT = &H200000
  12815. Public Const PRINTER_CHANGE_DELETE_PORT = &H400000
  12816. Public Const PRINTER_CHANGE_PORT = &H700000
  12817. Public Const PRINTER_CHANGE_ADD_PRINT_PROCESSOR = &H1000000
  12818. Public Const PRINTER_CHANGE_DELETE_PRINT_PROCESSOR = &H4000000
  12819. Public Const PRINTER_CHANGE_PRINT_PROCESSOR = &H7000000
  12820. Public Const PRINTER_CHANGE_ADD_PRINTER_DRIVER = &H10000000
  12821. Public Const PRINTER_CHANGE_DELETE_PRINTER_DRIVER = &H40000000
  12822. Public Const PRINTER_CHANGE_PRINTER_DRIVER = &H70000000
  12823. Public Const PRINTER_CHANGE_TIMEOUT = &H80000000
  12824. Public Const PRINTER_CHANGE_ALL = &H7777FFFF
  12825.  
  12826. 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
  12827.  
  12828. Public Const PRINTER_ERROR_INFORMATION = &H80000000
  12829. Public Const PRINTER_ERROR_WARNING = &H40000000
  12830. Public Const PRINTER_ERROR_SEVERE = &H20000000
  12831.  
  12832. Public Const PRINTER_ERROR_OUTOFPAPER = &H1
  12833. Public Const PRINTER_ERROR_JAM = &H2
  12834. Public Const PRINTER_ERROR_OUTOFTONER = &H4
  12835.  
  12836. Declare Function ClosePrinter Lib "winspool.drv" Alias "ClosePrinter" (ByVal hPrinter As Long) As Long
  12837. Declare Function AddForm Lib "winspool.drv" Alias "AddFormA" (ByVal hPrinter As Long, ByVal Level As Long, pForm As Byte) As Long
  12838. Declare Function DeleteForm Lib "winspool.drv" Alias "DeleteFormA" (ByVal hPrinter As Long, ByVal pFormName As String) As Long
  12839. 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
  12840. 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
  12841. 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
  12842.  
  12843. 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
  12844. Declare Function AddMonitor Lib "winspool.drv" Alias "AddMonitorA" (ByVal pName As String, ByVal Level As Long, pMonitors As Byte) As Long
  12845. Declare Function DeleteMonitor Lib "winspool.drv" Alias "DeleteMonitorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pMonitorName As String) As Long
  12846.  
  12847. Declare Function EnumPorts Lib "winspool.drv" Alias "EnumPortsA" (ByVal pName As String, ByVal Level As Long, ByVal lpbPorts As Long, ByVal cbBuf As Long, pcbNeeded As Long, pcReturned As Long) As Long
  12848. Declare Function AddPort Lib "winspool.drv" Alias "AddPortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pMonitorName As String) As Long
  12849. Declare Function ConfigurePort Lib "winspool.drv" Alias "ConfigurePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long
  12850. Declare Function DeletePort Lib "winspool.drv" Alias "DeletePortA" (ByVal pName As String, ByVal hwnd As Long, ByVal pPortName As String) As Long
  12851.  
  12852. Declare Function AddPrinterConnection Lib "winspool.drv" Alias "AddPrinterConnectionA" (ByVal pName As String) As Long
  12853.  
  12854. Declare Function DeletePrinterConnection Lib "winspool.drv" Alias "DeletePrinterConnectionA" (ByVal pName As String) As Long
  12855. Declare Function ConnectToPrinterDlg Lib "winspool.drv" Alias "ConnectToPrinterDlg" (ByVal hwnd As Long, ByVal flags As Long) As Long
  12856.  
  12857. Type PROVIDOR_INFO_1
  12858.         pName As String
  12859.         pEnvironment As String
  12860.         pDLLName As String
  12861. End Type
  12862.  
  12863. Declare Function AddPrintProvidor Lib "winspool.drv" Alias "AddPrintProvidorA" (ByVal pName As String, ByVal Level As Long, pProvidorInfo As Byte) As Long
  12864. Declare Function DeletePrintProvidor Lib "winspool.drv" Alias "DeletePrintProvidorA" (ByVal pName As String, ByVal pEnvironment As String, ByVal pPrintProvidorName As String) As Long
  12865.  
  12866. Public Const SERVER_ACCESS_ADMINISTER = &H1
  12867. Public Const SERVER_ACCESS_ENUMERATE = &H2
  12868.  
  12869. Public Const PRINTER_ACCESS_ADMINISTER = &H4
  12870. Public Const PRINTER_ACCESS_USE = &H8
  12871.  
  12872. Public Const JOB_ACCESS_ADMINISTER = &H10
  12873.  
  12874. ' Access rights for print servers
  12875.  
  12876. Public Const SERVER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE)
  12877. Public Const SERVER_READ = (STANDARD_RIGHTS_READ Or SERVER_ACCESS_ENUMERATE)
  12878. Public Const SERVER_WRITE = (STANDARD_RIGHTS_WRITE Or SERVER_ACCESS_ADMINISTER Or SERVER_ACCESS_ENUMERATE)
  12879. Public Const SERVER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or SERVER_ACCESS_ENUMERATE)
  12880.  
  12881. ' Access rights for printers
  12882. Public Const PRINTER_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
  12883. Public Const PRINTER_READ = (STANDARD_RIGHTS_READ Or PRINTER_ACCESS_USE)
  12884. Public Const PRINTER_WRITE = (STANDARD_RIGHTS_WRITE Or PRINTER_ACCESS_USE)
  12885. Public Const PRINTER_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or PRINTER_ACCESS_USE)
  12886.  
  12887. ' Access rights for jobs
  12888. Public Const JOB_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED Or JOB_ACCESS_ADMINISTER)
  12889. Public Const JOB_READ = (STANDARD_RIGHTS_READ Or JOB_ACCESS_ADMINISTER)
  12890. Public Const JOB_WRITE = (STANDARD_RIGHTS_WRITE Or JOB_ACCESS_ADMINISTER)
  12891. Public Const JOB_EXECUTE = (STANDARD_RIGHTS_EXECUTE Or JOB_ACCESS_ADMINISTER)
  12892.  
  12893. '  Windows Network support
  12894.  
  12895. '  RESOURCE ENUMERATION
  12896.  
  12897. Public Const RESOURCE_CONNECTED = &H1
  12898. Public Const RESOURCE_PUBLICNET = &H2
  12899. Public Const RESOURCE_REMEMBERED = &H3
  12900.  
  12901. Public Const RESOURCETYPE_ANY = &H0
  12902. Public Const RESOURCETYPE_DISK = &H1
  12903. Public Const RESOURCETYPE_PRINT = &H2
  12904. Public Const RESOURCETYPE_UNKNOWN = &HFFFF
  12905.  
  12906. Public Const RESOURCEUSAGE_CONNECTABLE = &H1
  12907. Public Const RESOURCEUSAGE_CONTAINER = &H2
  12908. Public Const RESOURCEUSAGE_RESERVED = &H80000000
  12909.  
  12910. Public Const RESOURCEDISPLAYTYPE_GENERIC = &H0
  12911. Public Const RESOURCEDISPLAYTYPE_DOMAIN = &H1
  12912. Public Const RESOURCEDISPLAYTYPE_SERVER = &H2
  12913. Public Const RESOURCEDISPLAYTYPE_SHARE = &H3
  12914. Public Const RESOURCEDISPLAYTYPE_FILE = &H4
  12915. Public Const RESOURCEDISPLAYTYPE_GROUP = &H5
  12916.  
  12917. Type NETRESOURCE
  12918.         dwScope As Long
  12919.         dwType As Long
  12920.         dwDisplayType As Long
  12921.         dwUsage As Long
  12922.         lpLocalName As String
  12923.         lpRemoteName As String
  12924.         lpComment As String
  12925.         lpProvider As String
  12926. End Type
  12927.  
  12928. Public Const CONNECT_UPDATE_PROFILE = &H1
  12929.  
  12930. Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long
  12931. 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
  12932. Declare Function WNetCancelConnection Lib "mpr.dll" Alias "WNetCancelConnectionA" (ByVal lpszName As String, ByVal bForce As Long) As Long
  12933. Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long
  12934. Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
  12935. 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
  12936. Declare Function WNetEnumResource Lib "mpr.dll" Alias "WNetEnumResourceA" (ByVal hEnum As Long, lpcCount As Long, lpBuffer As Any, lpBufferSize As Long) As Long
  12937. Declare Function WNetCloseEnum Lib "mpr.dll" Alias "WNetCloseEnum" (ByVal hEnum As Long) As Long
  12938.  
  12939. Declare Function WNetGetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
  12940.  
  12941. Declare Function WNetConnectionDialog Lib "mpr.dll" Alias "WNetConnectionDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long
  12942. Declare Function WNetDisconnectDialog Lib "mpr.dll" Alias "WNetDisconnectDialog" (ByVal hwnd As Long, ByVal dwType As Long) As Long
  12943.  
  12944. 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
  12945.  
  12946. ' Status Codes
  12947.  
  12948. ' This section is provided for backward compatibility.  Use of the ERROR_
  12949. ' codes is preferred.  The WN_ error codes may not be available in future
  12950. ' releases.
  12951.  
  12952. ' General
  12953.  
  12954. Public Const WN_SUCCESS = NO_ERROR
  12955. Public Const WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED
  12956. Public Const WN_NET_ERROR = ERROR_UNEXP_NET_ERR
  12957. Public Const WN_MORE_DATA = ERROR_MORE_DATA
  12958. Public Const WN_BAD_POINTER = ERROR_INVALID_ADDRESS
  12959. Public Const WN_BAD_VALUE = ERROR_INVALID_PARAMETER
  12960. Public Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD
  12961. Public Const WN_ACCESS_DENIED = ERROR_ACCESS_DENIED
  12962. Public Const WN_FUNCTION_BUSY = ERROR_BUSY
  12963. Public Const WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR
  12964. Public Const WN_BAD_USER = ERROR_BAD_USERNAME
  12965. Public Const WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY
  12966. Public Const WN_NO_NETWORK = ERROR_NO_NETWORK
  12967. Public Const WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR
  12968.  
  12969. ' Connection
  12970.  
  12971. Public Const WN_NOT_CONNECTED = ERROR_NOT_CONNECTED
  12972. Public Const WN_OPEN_FILES = ERROR_OPEN_FILES
  12973. Public Const WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE
  12974. Public Const WN_BAD_NETNAME = ERROR_BAD_NET_NAME
  12975. Public Const WN_BAD_LOCALNAME = ERROR_BAD_DEVICE
  12976. Public Const WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED
  12977. Public Const WN_DEVICE_ERROR = ERROR_GEN_FAILURE
  12978. Public Const WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL
  12979. Public Const WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH
  12980. Public Const WN_BAD_PROVIDER = ERROR_BAD_PROVIDER
  12981. Public Const WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE
  12982. Public Const WN_BAD_PROFILE = ERROR_BAD_PROFILE
  12983.  
  12984. ' Enumeration
  12985.  
  12986. Public Const WN_BAD_HANDLE = ERROR_INVALID_HANDLE
  12987. Public Const WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS
  12988. Public Const WN_NOT_CONTAINER = ERROR_NOT_CONTAINER
  12989.  
  12990. Public Const WN_NO_ERROR = NO_ERROR
  12991.  
  12992. ' This section contains the definitions
  12993. ' for portable NetBIOS 3.0 support.
  12994.  
  12995. Public Const NCBNAMSZ = 16  '  absolute length of a net name
  12996. Public Const MAX_LANA = 254  '  lana's in range 0 to MAX_LANA
  12997.  
  12998. Type NCB
  12999.         ncb_command As Integer
  13000.         ncb_retcode As Integer
  13001.         ncb_lsn As Integer
  13002.         ncb_num As Integer
  13003.         ncb_buffer As String
  13004.         ncb_length As Integer
  13005.         ncb_callname As String * NCBNAMSZ
  13006.         ncb_name As String * NCBNAMSZ
  13007.         ncb_rto As Integer
  13008.         ncb_sto As Integer
  13009.         ncb_post As Long
  13010.         ncb_lana_num As Integer
  13011.         ncb_cmd_cplt As Integer
  13012.         ncb_reserve(10) As Byte    ' Reserved, must be 0
  13013.         ncb_event As Long
  13014. End Type
  13015.  
  13016. Type ADAPTER_STATUS
  13017.         adapter_address As String * 6
  13018.         rev_major As Integer
  13019.         reserved0 As Integer
  13020.         adapter_type As Integer
  13021.         rev_minor As Integer
  13022.         duration As Integer
  13023.         frmr_recv As Integer
  13024.         frmr_xmit As Integer
  13025.         iframe_recv_err As Integer
  13026.         xmit_aborts As Integer
  13027.         xmit_success As Long
  13028.         recv_success As Long
  13029.         iframe_xmit_err As Integer
  13030.         recv_buff_unavail As Integer
  13031.         t1_timeouts As Integer
  13032.         ti_timeouts As Integer
  13033.         Reserved1 As Long
  13034.         free_ncbs As Integer
  13035.         max_cfg_ncbs As Integer
  13036.         max_ncbs As Integer
  13037.         xmit_buf_unavail As Integer
  13038.         max_dgram_size As Integer
  13039.         pending_sess As Integer
  13040.         max_cfg_sess As Integer
  13041.         max_sess As Integer
  13042.         max_sess_pkt_size As Integer
  13043.         name_count As Integer
  13044. End Type
  13045.  
  13046. Type NAME_BUFFER
  13047.         name  As String * NCBNAMSZ
  13048.         name_num As Integer
  13049.         name_flags As Integer
  13050. End Type
  13051.  
  13052. ' values for name_flags bits.
  13053.  
  13054. Public Const NAME_FLAGS_MASK = &H87
  13055.  
  13056. Public Const GROUP_NAME = &H80
  13057. Public Const UNIQUE_NAME = &H0
  13058.  
  13059. Public Const REGISTERING = &H0
  13060. Public Const REGISTERED = &H4
  13061. Public Const DEREGISTERED = &H5
  13062. Public Const DUPLICATE = &H6
  13063. Public Const DUPLICATE_DEREG = &H7
  13064.  
  13065. Type SESSION_HEADER
  13066.         sess_name As Integer
  13067.         num_sess As Integer
  13068.         rcv_dg_outstanding As Integer
  13069.         rcv_any_outstanding As Integer
  13070. End Type
  13071.  
  13072. Type SESSION_BUFFER
  13073.         lsn As Integer
  13074.         State As Integer
  13075.         local_name As String * NCBNAMSZ
  13076.         remote_name As String * NCBNAMSZ
  13077.         rcvs_outstanding As Integer
  13078.         sends_outstanding As Integer
  13079. End Type
  13080.  
  13081. ' Values for state
  13082. Public Const LISTEN_OUTSTANDING = &H1
  13083. Public Const CALL_PENDING = &H2
  13084. Public Const SESSION_ESTABLISHED = &H3
  13085. Public Const HANGUP_PENDING = &H4
  13086. Public Const HANGUP_COMPLETE = &H5
  13087. Public Const SESSION_ABORTED = &H6
  13088.  
  13089. Type LANA_ENUM
  13090.         Length As Integer
  13091.         lana(MAX_LANA) As Integer
  13092. End Type
  13093.  
  13094. Type FIND_NAME_HEADER
  13095.         node_count As Integer
  13096.         Reserved As Integer
  13097.         unique_group As Integer
  13098. End Type
  13099.  
  13100. Type FIND_NAME_BUFFER
  13101.         Length As Integer
  13102.         access_control As Integer
  13103.         frame_control As Integer
  13104.         destination_addr(6) As Integer
  13105.         source_addr(6) As Integer
  13106.         routing_info(18) As Integer
  13107. End Type
  13108.  
  13109. Type ACTION_HEADER
  13110.         transport_id As Long
  13111.         action_code As Integer
  13112.         Reserved As Integer
  13113. End Type
  13114.  
  13115. ' Values for transport_id
  13116. Public Const ALL_TRANSPORTS = "M\0\0\0"
  13117. Public Const MS_NBF = "MNBF"
  13118.  
  13119. ' NCB Command codes
  13120. Public Const NCBCALL = &H10  '  NCB CALL
  13121. Public Const NCBLISTEN = &H11  '  NCB LISTEN
  13122. Public Const NCBHANGUP = &H12  '  NCB HANG UP
  13123. Public Const NCBSEND = &H14  '  NCB SEND
  13124. Public Const NCBRECV = &H15  '  NCB RECEIVE
  13125. Public Const NCBRECVANY = &H16  '  NCB RECEIVE ANY
  13126. Public Const NCBCHAINSEND = &H17  '  NCB CHAIN SEND
  13127. Public Const NCBDGSEND = &H20  '  NCB SEND DATAGRAM
  13128. Public Const NCBDGRECV = &H21  '  NCB RECEIVE DATAGRAM
  13129. Public Const NCBDGSENDBC = &H22  '  NCB SEND BROADCAST DATAGRAM
  13130. Public Const NCBDGRECVBC = &H23  '  NCB RECEIVE BROADCAST DATAGRAM
  13131. Public Const NCBADDNAME = &H30  '  NCB ADD NAME
  13132. Public Const NCBDELNAME = &H31  '  NCB DELETE NAME
  13133. Public Const NCBRESET = &H32  '  NCB RESET
  13134. Public Const NCBASTAT = &H33  '  NCB ADAPTER STATUS
  13135. Public Const NCBSSTAT = &H34  '  NCB SESSION STATUS
  13136. Public Const NCBCANCEL = &H35  '  NCB CANCEL
  13137. Public Const NCBADDGRNAME = &H36  '  NCB ADD GROUP NAME
  13138. Public Const NCBENUM = &H37  '  NCB ENUMERATE LANA NUMBERS
  13139. Public Const NCBUNLINK = &H70  '  NCB UNLINK
  13140. Public Const NCBSENDNA = &H71  '  NCB SEND NO ACK
  13141. Public Const NCBCHAINSENDNA = &H72  '  NCB CHAIN SEND NO ACK
  13142. Public Const NCBLANSTALERT = &H73  '  NCB LAN STATUS ALERT
  13143. Public Const NCBACTION = &H77  '  NCB ACTION
  13144. Public Const NCBFINDNAME = &H78  '  NCB FIND NAME
  13145. Public Const NCBTRACE = &H79  '  NCB TRACE
  13146.  
  13147. Public Const ASYNCH = &H80  '  high bit set == asynchronous
  13148.  
  13149. ' NCB Return codes
  13150. Public Const NRC_GOODRET = &H0   '  good return
  13151.                                 '  also returned when ASYNCH request accepted
  13152. Public Const NRC_BUFLEN = &H1   '  illegal buffer length
  13153. Public Const NRC_ILLCMD = &H3   '  illegal command
  13154. Public Const NRC_CMDTMO = &H5   '  command timed out
  13155. Public Const NRC_INCOMP = &H6   '  message incomplete, issue another command
  13156. Public Const NRC_BADDR = &H7   '  illegal buffer address
  13157. Public Const NRC_SNUMOUT = &H8   '  session number out of range
  13158. Public Const NRC_NORES = &H9   '  no resource available
  13159. Public Const NRC_SCLOSED = &HA   '  session closed
  13160. Public Const NRC_CMDCAN = &HB   '  command cancelled
  13161. Public Const NRC_DUPNAME = &HD   '  duplicate name
  13162. Public Const NRC_NAMTFUL = &HE   '  name table full
  13163. Public Const NRC_ACTSES = &HF   '  no deletions, name has active sessions
  13164. Public Const NRC_LOCTFUL = &H11  '  local session table full
  13165. Public Const NRC_REMTFUL = &H12  '  remote session table full
  13166. Public Const NRC_ILLNN = &H13  '  illegal name number
  13167. Public Const NRC_NOCALL = &H14  '  no callname
  13168. Public Const NRC_NOWILD = &H15  '  cannot put  in NCB_NAME
  13169. Public Const NRC_INUSE = &H16  '  name in use on remote adapter
  13170. Public Const NRC_NAMERR = &H17  '  name deleted
  13171. Public Const NRC_SABORT = &H18  '  session ended abnormally
  13172. Public Const NRC_NAMCONF = &H19  '  name conflict detected
  13173. Public Const NRC_IFBUSY = &H21  '  interface busy, IRET before retrying
  13174. Public Const NRC_TOOMANY = &H22  '  too many commands outstanding, retry later
  13175. Public Const NRC_BRIDGE = &H23  '  ncb_lana_num field invalid
  13176. Public Const NRC_CANOCCR = &H24  '  command completed while cancel occurring
  13177. Public Const NRC_CANCEL = &H26  '  command not valid to cancel
  13178. Public Const NRC_DUPENV = &H30  '  name defined by anther local process
  13179. Public Const NRC_ENVNOTDEF = &H34  '  environment undefined. RESET required
  13180. Public Const NRC_OSRESNOTAV = &H35  '  required OS resources exhausted
  13181. Public Const NRC_MAXAPPS = &H36  '  max number of applications exceeded
  13182. Public Const NRC_NOSAPS = &H37  '  no saps available for netbios
  13183. Public Const NRC_NORESOURCES = &H38  '  requested resources are not available
  13184. Public Const NRC_INVADDRESS = &H39  '  invalid ncb address or length > segment
  13185. Public Const NRC_INVDDID = &H3B  '  invalid NCB DDID
  13186. Public Const NRC_LOCKFAIL = &H3C  '  lock of user area failed
  13187. Public Const NRC_OPENERR = &H3F  '  NETBIOS not loaded
  13188. Public Const NRC_SYSTEM = &H40  '  system error
  13189.  
  13190. Public Const NRC_PENDING = &HFF  '  asynchronous command is not yet finished
  13191.  
  13192. Declare Function Netbios Lib "netapi32.dll" Alias "Netbios" (pncb As NCB) As Byte
  13193.  
  13194. ' Legal values for expression in except().
  13195. Public Const EXCEPTION_EXECUTE_HANDLER = 1
  13196. Public Const EXCEPTION_CONTINUE_SEARCH = 0
  13197. Public Const EXCEPTION_CONTINUE_EXECUTION = -1
  13198.  
  13199. ' UI dialog constants and types
  13200.  
  13201. ' ----Constants--------------------------------------------------------------
  13202. Public Const ctlFirst = &H400
  13203. Public Const ctlLast = &H4FF
  13204.     '  Push buttons
  13205. Public Const psh1 = &H400
  13206. Public Const psh2 = &H401
  13207. Public Const psh3 = &H402
  13208. Public Const psh4 = &H403
  13209. Public Const psh5 = &H404
  13210. Public Const psh6 = &H405
  13211. Public Const psh7 = &H406
  13212. Public Const psh8 = &H407
  13213. Public Const psh9 = &H408
  13214. Public Const psh10 = &H409
  13215. Public Const psh11 = &H40A
  13216. Public Const psh12 = &H40B
  13217. Public Const psh13 = &H40C
  13218. Public Const psh14 = &H40D
  13219. Public Const psh15 = &H40E
  13220. Public Const pshHelp = psh15
  13221. Public Const psh16 = &H40F
  13222.     '  Checkboxes
  13223. Public Const chx1 = &H410
  13224. Public Const chx2 = &H411
  13225. Public Const chx3 = &H412
  13226. Public Const chx4 = &H413
  13227. Public Const chx5 = &H414
  13228. Public Const chx6 = &H415
  13229. Public Const chx7 = &H416
  13230. Public Const chx8 = &H417
  13231. Public Const chx9 = &H418
  13232. Public Const chx10 = &H419
  13233. Public Const chx11 = &H41A
  13234. Public Const chx12 = &H41B
  13235. Public Const chx13 = &H41C
  13236. Public Const chx14 = &H41D
  13237. Public Const chx15 = &H41E
  13238. Public Const chx16 = &H41D
  13239.     '  Radio buttons
  13240. Public Const rad1 = &H420
  13241. Public Const rad2 = &H421
  13242. Public Const rad3 = &H422
  13243. Public Const rad4 = &H423
  13244. Public Const rad5 = &H424
  13245. Public Const rad6 = &H425
  13246. Public Const rad7 = &H426
  13247. Public Const rad8 = &H427
  13248. Public Const rad9 = &H428
  13249. Public Const rad10 = &H429
  13250. Public Const rad11 = &H42A
  13251. Public Const rad12 = &H42B
  13252. Public Const rad13 = &H42C
  13253. Public Const rad14 = &H42D
  13254. Public Const rad15 = &H42E
  13255. Public Const rad16 = &H42F
  13256.     '  Groups, frames, rectangles, and icons
  13257. Public Const grp1 = &H430
  13258. Public Const grp2 = &H431
  13259. Public Const grp3 = &H432
  13260. Public Const grp4 = &H433
  13261. Public Const frm1 = &H434
  13262. Public Const frm2 = &H435
  13263. Public Const frm3 = &H436
  13264. Public Const frm4 = &H437
  13265. Public Const rct1 = &H438
  13266. Public Const rct2 = &H439
  13267. Public Const rct3 = &H43A
  13268. Public Const rct4 = &H43B
  13269. Public Const ico1 = &H43C
  13270. Public Const ico2 = &H43D
  13271. Public Const ico3 = &H43E
  13272. Public Const ico4 = &H43F
  13273.     '  Static text
  13274. Public Const stc1 = &H440
  13275. Public Const stc2 = &H441
  13276. Public Const stc3 = &H442
  13277. Public Const stc4 = &H443
  13278. Public Const stc5 = &H444
  13279. Public Const stc6 = &H445
  13280. Public Const stc7 = &H446
  13281. Public Const stc8 = &H447
  13282. Public Const stc9 = &H448
  13283. Public Const stc10 = &H449
  13284. Public Const stc11 = &H44A
  13285. Public Const stc12 = &H44B
  13286. Public Const stc13 = &H44C
  13287. Public Const stc14 = &H44D
  13288. Public Const stc15 = &H44E
  13289. Public Const stc16 = &H44F
  13290. Public Const stc17 = &H450
  13291. Public Const stc18 = &H451
  13292. Public Const stc19 = &H452
  13293. Public Const stc20 = &H453
  13294. Public Const stc21 = &H454
  13295. Public Const stc22 = &H455
  13296. Public Const stc23 = &H456
  13297. Public Const stc24 = &H457
  13298. Public Const stc25 = &H458
  13299. Public Const stc26 = &H459
  13300. Public Const stc27 = &H45A
  13301. Public Const stc28 = &H45B
  13302. Public Const stc29 = &H45C
  13303. Public Const stc30 = &H45D
  13304. Public Const stc31 = &H45E
  13305. Public Const stc32 = &H45F
  13306.     '  Listboxes
  13307. Public Const lst1 = &H460
  13308. Public Const lst2 = &H461
  13309. Public Const lst3 = &H462
  13310. Public Const lst4 = &H463
  13311. Public Const lst5 = &H464
  13312. Public Const lst6 = &H465
  13313. Public Const lst7 = &H466
  13314. Public Const lst8 = &H467
  13315. Public Const lst9 = &H468
  13316. Public Const lst10 = &H469
  13317. Public Const lst11 = &H46A
  13318. Public Const lst12 = &H46B
  13319. Public Const lst13 = &H46C
  13320. Public Const lst14 = &H46D
  13321. Public Const lst15 = &H46E
  13322. Public Const lst16 = &H46F
  13323.     '  Combo boxes
  13324. Public Const cmb1 = &H470
  13325. Public Const cmb2 = &H471
  13326. Public Const cmb3 = &H472
  13327. Public Const cmb4 = &H473
  13328. Public Const cmb5 = &H474
  13329. Public Const cmb6 = &H475
  13330. Public Const cmb7 = &H476
  13331. Public Const cmb8 = &H477
  13332. Public Const cmb9 = &H478
  13333. Public Const cmb10 = &H479
  13334. Public Const cmb11 = &H47A
  13335. Public Const cmb12 = &H47B
  13336. Public Const cmb13 = &H47C
  13337. Public Const cmb14 = &H47D
  13338. Public Const cmb15 = &H47E
  13339. Public Const cmb16 = &H47F
  13340.     '  Edit controls
  13341. Public Const edt1 = &H480
  13342. Public Const edt2 = &H481
  13343. Public Const edt3 = &H482
  13344. Public Const edt4 = &H483
  13345. Public Const edt5 = &H484
  13346. Public Const edt6 = &H485
  13347. Public Const edt7 = &H486
  13348. Public Const edt8 = &H487
  13349. Public Const edt9 = &H488
  13350. Public Const edt10 = &H489
  13351. Public Const edt11 = &H48A
  13352. Public Const edt12 = &H48B
  13353. Public Const edt13 = &H48C
  13354. Public Const edt14 = &H48D
  13355. Public Const edt15 = &H48E
  13356. Public Const edt16 = &H48F
  13357.     '  Scroll bars
  13358. Public Const scr1 = &H490
  13359. Public Const scr2 = &H491
  13360. Public Const scr3 = &H492
  13361. Public Const scr4 = &H493
  13362. Public Const scr5 = &H494
  13363. Public Const scr6 = &H495
  13364. Public Const scr7 = &H496
  13365. Public Const scr8 = &H497
  13366.  
  13367. Public Const FILEOPENORD = 1536
  13368. Public Const MULTIFILEOPENORD = 1537
  13369. Public Const PRINTDLGORD = 1538
  13370. Public Const PRNSETUPDLGORD = 1539
  13371. Public Const FINDDLGORD = 1540
  13372. Public Const REPLACEDLGORD = 1541
  13373. Public Const FONTDLGORD = 1542
  13374. Public Const FORMATDLGORD31 = 1543
  13375. Public Const FORMATDLGORD30 = 1544
  13376.  
  13377. Type CRGB
  13378.         bRed As Byte
  13379.         bGreen As Byte
  13380.         bBlue As Byte
  13381.         bExtra As Byte
  13382. End Type
  13383.  
  13384. ' -----------------
  13385. ' ADVAPI32
  13386. ' -----------------
  13387.  
  13388. ' function prototypes, constants, and type definitions
  13389. ' for Windows 32-bit Registry API
  13390.  
  13391. Public Const HKEY_CLASSES_ROOT = &H80000000
  13392. Public Const HKEY_CURRENT_USER = &H80000001
  13393. Public Const HKEY_LOCAL_MACHINE = &H80000002
  13394. Public Const HKEY_USERS = &H80000003
  13395. Public Const HKEY_PERFORMANCE_DATA = &H80000004
  13396. Public Const HKEY_CURRENT_CONFIG = &H80000005
  13397. Public Const HKEY_DYN_DATA = &H80000006
  13398.  
  13399. ' Registry API prototypes
  13400.  
  13401. Declare Function RegCloseKey Lib "advapi32.dll" Alias "RegCloseKey" (ByVal hKey As Long) As Long
  13402. Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, phkResult As Long) As Long
  13403. Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  13404. 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
  13405. Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
  13406. Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
  13407. 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
  13408. Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long
  13409. 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
  13410. Declare Function RegFlushKey Lib "advapi32.dll" Alias "RegFlushKey" (ByVal hKey As Long) As Long
  13411. 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
  13412. Declare Function RegLoadKey Lib "advapi32.dll" Alias "RegLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpFile As String) As Long
  13413. 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
  13414. Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
  13415. 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
  13416. Declare Function RegQueryInfoKey Lib "advapi32.dll" Alias "RegQueryInfoKeyA" (ByVal hKey As Long, ByVal lpClass As String, lpcbClass As Long, 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
  13417. 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
  13418. 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         ' Note that if you declare the lpData parameter as String, you must pass it By Value. 
  13419. 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
  13420. Declare Function RegRestoreKey Lib "advapi32.dll" Alias "RegRestoreKeyA" (ByVal hKey As Long, ByVal lpFile As String, ByVal dwFlags As Long) As Long
  13421. Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
  13422. Declare Function RegSetKeySecurity Lib "advapi32.dll" Alias "RegSetKeySecurity" (ByVal hKey As Long, ByVal SecurityInformation As Long, pSecurityDescriptor As SECURITY_DESCRIPTOR) As Long
  13423. 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
  13424. 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         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
  13425. Declare Function RegUnLoadKey Lib "advapi32.dll" Alias "RegUnLoadKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
  13426. 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
  13427. Declare Function AbortSystemShutdown Lib "advapi32.dll" Alias "AbortSystemShutdownA" (ByVal lpMachineName As String) As Long
  13428.  
  13429. ' Service database names
  13430. Public Const SERVICES_ACTIVE_DATABASE = "ServicesActive"
  13431. Public Const SERVICES_FAILED_DATABASE = "ServicesFailed"
  13432.  
  13433. ' Value to indicate no change to an optional parameter
  13434. Public Const SERVICE_NO_CHANGE = &HFFFF
  13435.  
  13436. ' Service State -- for Enum Requests (Bit Mask)
  13437. Public Const SERVICE_ACTIVE = &H1
  13438. Public Const SERVICE_INACTIVE = &H2
  13439. Public Const SERVICE_STATE_ALL = (SERVICE_ACTIVE Or SERVICE_INACTIVE)
  13440.  
  13441. ' Controls
  13442. Public Const SERVICE_CONTROL_STOP = &H1
  13443. Public Const SERVICE_CONTROL_PAUSE = &H2
  13444. Public Const SERVICE_CONTROL_CONTINUE = &H3
  13445. Public Const SERVICE_CONTROL_INTERROGATE = &H4
  13446. Public Const SERVICE_CONTROL_SHUTDOWN = &H5
  13447.  
  13448. ' Service State -- for CurrentState
  13449. Public Const SERVICE_STOPPED = &H1
  13450. Public Const SERVICE_START_PENDING = &H2
  13451. Public Const SERVICE_STOP_PENDING = &H3
  13452. Public Const SERVICE_RUNNING = &H4
  13453. Public Const SERVICE_CONTINUE_PENDING = &H5
  13454. Public Const SERVICE_PAUSE_PENDING = &H6
  13455. Public Const SERVICE_PAUSED = &H7
  13456.  
  13457. ' Controls Accepted  (Bit Mask)
  13458. Public Const SERVICE_ACCEPT_STOP = &H1
  13459. Public Const SERVICE_ACCEPT_PAUSE_CONTINUE = &H2
  13460. Public Const SERVICE_ACCEPT_SHUTDOWN = &H4
  13461.  
  13462. ' Service Control Manager object specific access types
  13463. Public Const SC_MANAGER_CONNECT = &H1
  13464. Public Const SC_MANAGER_CREATE_SERVICE = &H2
  13465. Public Const SC_MANAGER_ENUMERATE_SERVICE = &H4
  13466. Public Const SC_MANAGER_LOCK = &H8
  13467. Public Const SC_MANAGER_QUERY_LOCK_STATUS = &H10
  13468. Public Const SC_MANAGER_MODIFY_BOOT_CONFIG = &H20
  13469.  
  13470. 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)
  13471.  
  13472. ' Service object specific access type
  13473. Public Const SERVICE_QUERY_CONFIG = &H1
  13474. Public Const SERVICE_CHANGE_CONFIG = &H2
  13475. Public Const SERVICE_QUERY_STATUS = &H4
  13476. Public Const SERVICE_ENUMERATE_DEPENDENTS = &H8
  13477. Public Const SERVICE_START = &H10
  13478. Public Const SERVICE_STOP = &H20
  13479. Public Const SERVICE_PAUSE_CONTINUE = &H40
  13480. Public Const SERVICE_INTERROGATE = &H80
  13481. Public Const SERVICE_USER_DEFINED_CONTROL = &H100
  13482.  
  13483. 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)
  13484.  
  13485.  
  13486. Type SERVICE_STATUS
  13487.         dwServiceType As Long
  13488.         dwCurrentState As Long
  13489.         dwControlsAccepted As Long
  13490.         dwWin32ExitCode As Long
  13491.         dwServiceSpecificExitCode As Long
  13492.         dwCheckPoint As Long
  13493.         dwWaitHint As Long
  13494. End Type
  13495.  
  13496. Type ENUM_SERVICE_STATUS
  13497.         lpServiceName As String
  13498.         lpDisplayName As String
  13499.         ServiceStatus As SERVICE_STATUS
  13500. End Type
  13501.  
  13502. Type QUERY_SERVICE_LOCK_STATUS
  13503.         fIsLocked As Long
  13504.         lpLockOwner As String
  13505.         dwLockDuration As Long
  13506. End Type
  13507.  
  13508. Type QUERY_SERVICE_CONFIG
  13509.         dwServiceType As Long
  13510.         dwStartType As Long
  13511.         dwErrorControl As Long
  13512.         lpBinaryPathName As String
  13513.         lpLoadOrderGroup As String
  13514.         dwTagId As Long
  13515.         lpDependencies As String
  13516.         lpServiceStartName As String
  13517.         lpDisplayName As String
  13518. End Type
  13519.  
  13520. Type SERVICE_TABLE_ENTRY
  13521.         lpServiceName As String
  13522.         lpServiceProc As Long
  13523. End Type
  13524.  
  13525.  
  13526. ' ++ BUILD Version: 0010    '  Increment this if a change has global effects
  13527. ' Copyright (c) 1995  Microsoft Corporation
  13528. ' Module Name:
  13529. '     winsvc.h
  13530. ' Abstract:
  13531. '     Header file for the Service Control Manager
  13532. ' Environment:
  13533. '     User Mode - Win32
  13534. ' --*/
  13535. '
  13536. '  Constants
  13537.  
  13538. '  Character to designate that a name is a group
  13539. '
  13540. Public Const SC_GROUP_IDENTIFIER = "+"
  13541.  
  13542. '  Prototype for the Service Control Handler Function
  13543.  
  13544. ' /////////////////////////////////////////////////////////////////////////
  13545. '  API Function Prototypes
  13546. ' /////////////////////////////////////////////////////////////////////////
  13547.  
  13548. 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
  13549. Declare Function CloseServiceHandle Lib "advapi32.dll" Alias "CloseServiceHandle" (ByVal hSCObject As Long) As Long
  13550. Declare Function ControlService Lib "advapi32.dll" Alias "ControlService" (ByVal hService As Long, ByVal dwControl As Long, lpServiceStatus As SERVICE_STATUS) As Long
  13551. 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
  13552. Declare Function DeleteService Lib "advapi32.dll" Alias "DeleteService" (ByVal hService As Long) As Long
  13553. 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
  13554. 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
  13555. 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
  13556. 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
  13557. Declare Function LockServiceDatabase Lib "advapi32.dll" Alias "LockServiceDatabase" (ByVal hSCManager As Long) As Long
  13558. Declare Function NotifyBootConfigStatus Lib "advapi32.dll" Alias "NotifyBootConfigStatus" (ByVal BootAcceptable As Long) As Long
  13559. Declare Function OpenSCManager Lib "advapi32.dll" Alias "OpenSCManagerA" (ByVal lpMachineName As String, ByVal lpDatabaseName As String, ByVal dwDesiredAccess As Long) As Long
  13560. Declare Function OpenService Lib "advapi32.dll" Alias "OpenServiceA" (ByVal hSCManager As Long, ByVal lpServiceName As String, ByVal dwDesiredAccess As Long) As Long
  13561. 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
  13562. 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
  13563. 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
  13564. Declare Function QueryServiceStatus Lib "advapi32.dll" Alias "QueryServiceStatus" (ByVal hService As Long, lpServiceStatus As SERVICE_STATUS) As Long
  13565. Declare Function RegisterServiceCtrlHandler Lib "advapi32.dll" Alias "RegisterServiceCtrlHandlerA" (ByVal lpServiceName As String, ByVal lpHandlerProc As Long) As Long
  13566. Declare Function SetServiceObjectSecurity Lib "advapi32.dll" Alias "SetServiceObjectSecurity" (ByVal hService As Long, ByVal dwSecurityInformation As Long, lpSecurityDescriptor As Any) As Long
  13567. Declare Function SetServiceStatus Lib "advapi32.dll" Alias "SetServiceStatus" (ByVal hServiceStatus As Long, lpServiceStatus As SERVICE_STATUS) As Long
  13568. Declare Function StartServiceCtrlDispatcher Lib "advapi32.dll" Alias "StartServiceCtrlDispatcherA" (lpServiceStartTable As SERVICE_TABLE_ENTRY) As Long
  13569. Declare Function StartService Lib "advapi32.dll" Alias "StartServiceA" (ByVal hService As Long, ByVal dwNumServiceArgs As Long, ByVal lpServiceArgVectors As Long) As Long
  13570. Declare Function UnlockServiceDatabase Lib "advapi32.dll" Alias "UnlockServiceDatabase" (ScLock As Any) As Long
  13571.  
  13572. Type LARGE_INTEGER
  13573.     lowpart As Long
  13574.     highpart As Long
  13575. End Type
  13576.     
  13577.  
  13578. ' Section for Performance Monitor data
  13579.  
  13580. Public Const PERF_DATA_VERSION = 1
  13581. Public Const PERF_DATA_REVISION = 1
  13582.  
  13583. Type PERF_DATA_BLOCK
  13584.         Signature As String * 4
  13585.         LittleEndian As Long
  13586.         Version As Long
  13587.         Revision As Long
  13588.         TotalByteLength As Long
  13589.         HeaderLength As Long
  13590.         NumObjectTypes As Long
  13591.         DefaultObject As Long
  13592.         SystemTime As SYSTEMTIME
  13593.         PerfTime As LARGE_INTEGER
  13594.         PerfFreq As LARGE_INTEGER
  13595.         PerTime100nSec As LARGE_INTEGER
  13596.         SystemNameLength As Long
  13597.         SystemNameOffset As Long
  13598. End Type
  13599.  
  13600. Type PERF_OBJECT_TYPE
  13601.         TotalByteLength As Long
  13602.         DefinitionLength As Long
  13603.         HeaderLength As Long
  13604.         ObjectNameTitleIndex As Long
  13605.         ObjectNameTitle As String
  13606.         ObjectHelpTitleIndex As Long
  13607.         ObjectHelpTitle As String
  13608.         DetailLevel As Long
  13609.         NumCounters As Long
  13610.         DefaultCounter As Long
  13611.         NumInstances As Long
  13612.         CodePage As Long
  13613.         PerfTime As LARGE_INTEGER
  13614.         PerfFreq As LARGE_INTEGER
  13615. End Type
  13616.  
  13617. Public Const PERF_NO_INSTANCES = -1  '  no instances
  13618.  
  13619. ' The counter type is the "or" of the following values as described below
  13620. '
  13621. ' select one of the following to indicate the counter's data size
  13622. Public Const PERF_SIZE_DWORD = &H0
  13623. Public Const PERF_SIZE_LARGE = &H100
  13624. Public Const PERF_SIZE_ZERO = &H200       '  for Zero Length fields
  13625. Public Const PERF_SIZE_VARIABLE_LEN = &H300       '  length is in CounterLength field of Counter Definition struct
  13626.  
  13627. ' select one of the following values to indicate the counter field usage
  13628. Public Const PERF_TYPE_NUMBER = &H0         '  a number (not a counter)
  13629. Public Const PERF_TYPE_COUNTER = &H400       '  an increasing numeric value
  13630. Public Const PERF_TYPE_TEXT = &H800       '  a text field
  13631. Public Const PERF_TYPE_ZERO = &HC00       '  displays a zero
  13632.  
  13633. ' If the PERF_TYPE_NUMBER field was selected, then select one of the
  13634. ' following to describe the Number
  13635. Public Const PERF_NUMBER_HEX = &H0         '  display as HEX value
  13636. Public Const PERF_NUMBER_DECIMAL = &H10000     '  display as a decimal integer
  13637. Public Const PERF_NUMBER_DEC_1000 = &H20000     '  display as a decimal/1000
  13638. '
  13639. ' If the PERF_TYPE_COUNTER value was selected then select one of the
  13640. ' following to indicate the type of counter
  13641. Public Const PERF_COUNTER_VALUE = &H0         '  display counter value
  13642. Public Const PERF_COUNTER_RATE = &H10000     '  divide ctr / delta time
  13643. Public Const PERF_COUNTER_FRACTION = &H20000     '  divide ctr / base
  13644. Public Const PERF_COUNTER_BASE = &H30000     '  base value used in fractions
  13645. Public Const PERF_COUNTER_ELAPSED = &H40000     '  subtract counter from current time
  13646. Public Const PERF_COUNTER_QUEUELEN = &H50000     '  Use Queuelen processing func.
  13647. Public Const PERF_COUNTER_HISTOGRAM = &H60000     '  Counter begins or ends a histogram
  13648.  
  13649. ' If the PERF_TYPE_TEXT value was selected, then select one of the
  13650. ' following to indicate the type of TEXT data.
  13651. Public Const PERF_TEXT_UNICODE = &H0         '  type of text in text field
  13652. Public Const PERF_TEXT_ASCII = &H10000     '  ASCII using the CodePage field
  13653.  
  13654. ' Timer SubTypes
  13655. Public Const PERF_TIMER_TICK = &H0         '  use system perf. freq for base
  13656. Public Const PERF_TIMER_100NS = &H100000    '  use 100 NS timer time base units
  13657. Public Const PERF_OBJECT_TIMER = &H200000    '  use the object timer freq
  13658.  
  13659. ' Any types that have calculations performed can use one or more of
  13660. ' the following calculation modification flags listed here
  13661. Public Const PERF_DELTA_COUNTER = &H400000    '  compute difference first
  13662. Public Const PERF_DELTA_BASE = &H800000    '  compute base diff as well
  13663. Public Const PERF_INVERSE_COUNTER = &H1000000   '  show as 1.00-value (assumes:
  13664. Public Const PERF_MULTI_COUNTER = &H2000000   '  sum of multiple instances
  13665.  
  13666. ' Select one of the following values to indicate the display suffix (if any)
  13667. Public Const PERF_DISPLAY_NO_SUFFIX = &H0         '  no suffix
  13668. Public Const PERF_DISPLAY_PER_SEC = &H10000000  '  "/sec"
  13669. Public Const PERF_DISPLAY_PERCENT = &H20000000  '  "%"
  13670. Public Const PERF_DISPLAY_SECONDS = &H30000000  '  "secs"
  13671. Public Const PERF_DISPLAY_NOSHOW = &H40000000  '  value is not displayed
  13672.  
  13673. ' Predefined counter types
  13674.  
  13675. ' 32-bit Counter.  Divide delta by delta time.  Display suffix: "/sec"
  13676. 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)
  13677.  
  13678. ' 64-bit Timer.  Divide delta by delta time.  Display suffix: "%"
  13679. 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)
  13680.  
  13681. ' Queue Length Space-Time Product. Divide delta by delta time. No Display Suffix.
  13682. 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)
  13683.  
  13684. ' 64-bit Counter.  Divide delta by delta time. Display Suffix: "/sec"
  13685. 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)
  13686.  
  13687. ' Indicates the counter is not a  counter but rather Unicode text Display as text.
  13688. Public Const PERF_COUNTER_TEXT = (PERF_SIZE_VARIABLE_LEN Or PERF_TYPE_TEXT Or PERF_TEXT_UNICODE Or PERF_DISPLAY_NO_SUFFIX)
  13689.  
  13690. ' Indicates the data is a counter  which should not be
  13691. ' time averaged on display (such as an error counter on a serial line)
  13692. ' Display as is.  No Display Suffix.
  13693. Public Const PERF_COUNTER_RAWCOUNT = (PERF_SIZE_DWORD Or PERF_TYPE_NUMBER Or PERF_NUMBER_DECIMAL Or PERF_DISPLAY_NO_SUFFIX)
  13694.  
  13695. ' A count which is either 1 or 0 on each sampling interrupt (% busy)
  13696. ' Divide delta by delta base. Display Suffix: "%"
  13697. 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)
  13698.  
  13699. ' A count which is sampled on each sampling interrupt (queue length)
  13700. ' Divide delta by delta time. No Display Suffix.
  13701. 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)
  13702.  
  13703. ' A label: no data is associated with this counter (it has 0 length)
  13704. ' Do not display.
  13705. Public Const PERF_COUNTER_NODATA = (PERF_SIZE_ZERO Or PERF_DISPLAY_NOSHOW)
  13706.  
  13707. ' 64-bit Timer inverse (e.g., idle is measured, but display busy  As Integer)
  13708. ' Display 100 - delta divided by delta time.  Display suffix: "%"
  13709. 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)
  13710.  
  13711. ' The divisor for a sample, used with the previous counter to form a
  13712. ' sampled %.  You must check for >0 before dividing by this!  This
  13713. ' counter will directly follow the  numerator counter.  It should not
  13714. ' be displayed to the user.
  13715. 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
  13716.  
  13717. ' A timer which, when divided by an average base, produces a time
  13718. ' in seconds which is the average time of some operation.  This
  13719. ' timer times total operations, and  the base is the number of opera-
  13720. ' tions.  Display Suffix: "sec"
  13721. Public Const PERF_AVERAGE_TIMER = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_SECONDS)
  13722.  
  13723. ' Used as the denominator in the computation of time or count
  13724. ' averages.  Must directly follow the numerator counter.  Not dis-
  13725. ' played to the user.
  13726. 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
  13727.  
  13728. ' A bulk count which, when divided (typically) by the number of
  13729. ' operations, gives (typically) the number of bytes per operation.
  13730. ' No Display Suffix.
  13731. Public Const PERF_AVERAGE_BULK = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_NOSHOW)
  13732.  
  13733. ' 64-bit Timer in 100 nsec units. Display delta divided by
  13734. ' delta time.  Display suffix: "%"
  13735. 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)
  13736.  
  13737. ' 64-bit Timer inverse (e.g., idle is measured, but display busy  As Integer)
  13738. ' Display 100 - delta divided by delta time.  Display suffix: "%"
  13739. 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)
  13740.  
  13741. ' 64-bit Timer.  Divide delta by delta time.  Display suffix: "%"
  13742. ' Timer for multiple instances, so result can exceed 100%.
  13743. 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)
  13744.  
  13745. ' 64-bit Timer inverse (e.g., idle is measured, but display busy  As Integer)
  13746. ' Display 100  _MULTI_BASE - delta divided by delta time.
  13747. ' Display suffix: "%" Timer for multiple instances, so result
  13748. ' can exceed 100%.  Followed by a counter of type _MULTI_BASE.
  13749. 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)
  13750.  
  13751. ' Number of instances to which the preceding _MULTI_..._INV counter
  13752. ' applies.  Used as a factor to get the percentage.
  13753. 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)
  13754.  
  13755. ' 64-bit Timer in 100 nsec units. Display delta divided by delta time.
  13756. ' Display suffix: "%" Timer for multiple instances, so result can exceed 100%.
  13757. 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)
  13758.  
  13759. ' 64-bit Timer inverse (e.g., idle is measured, but display busy  As Integer)
  13760. ' Display 100  _MULTI_BASE - delta divided by delta time.
  13761. ' Display suffix: "%" Timer for multiple instances, so result
  13762. ' can exceed 100%.  Followed by a counter of type _MULTI_BASE.
  13763. 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)
  13764.  
  13765. ' Indicates the data is a fraction of the following counter  which
  13766. ' should not be time averaged on display (such as free space over
  13767. ' total space.) Display as is.  Display the quotient as "%".
  13768. Public Const PERF_RAW_FRACTION = (PERF_SIZE_DWORD Or PERF_TYPE_COUNTER Or PERF_COUNTER_FRACTION Or PERF_DISPLAY_PERCENT)
  13769.  
  13770. ' Indicates the data is a base for the preceding counter which should
  13771. ' not be time averaged on display (such as free space over total space.)
  13772. 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
  13773.  
  13774. ' The data collected in this counter is actually the start time of the
  13775. ' item being measured. For display, this data is subtracted from the
  13776. ' sample time to yield the elapsed time as the difference between the two.
  13777. ' In the definition below, the PerfTime field of the Object contains
  13778. ' the sample time as indicated by the PERF_OBJECT_TIMER bit and the
  13779. ' difference is scaled by the PerfFreq of the Object to convert the time
  13780. ' units into seconds.
  13781. Public Const PERF_ELAPSED_TIME = (PERF_SIZE_LARGE Or PERF_TYPE_COUNTER Or PERF_COUNTER_ELAPSED Or PERF_OBJECT_TIMER Or PERF_DISPLAY_SECONDS)
  13782.  
  13783. ' The following counter type can be used with the preceding types to
  13784. ' define a range of values to be displayed in a histogram.
  13785. Public Const PERF_COUNTER_HISTOGRAM_TYPE = &H80000000  ' Counter begins or ends a histogram
  13786.  
  13787. ' The following are used to determine the level of detail associated
  13788. ' with the counter.  The user will be setting the level of detail
  13789. ' that should be displayed at any given time.
  13790. Public Const PERF_DETAIL_NOVICE = 100 '  The uninformed can understand it
  13791. Public Const PERF_DETAIL_ADVANCED = 200 '  For the advanced user
  13792. Public Const PERF_DETAIL_EXPERT = 300 '  For the expert user
  13793. Public Const PERF_DETAIL_WIZARD = 400 '  For the system designer
  13794.  
  13795. Type PERF_COUNTER_DEFINITION
  13796.         ByteLength As Long
  13797.         CounterNameTitleIndex As Long
  13798.         CounterNameTitle As String
  13799.         CounterHelpTitleIndex As Long
  13800.         CounterHelpTitle As String
  13801.         DefaultScale As Long
  13802.         DetailLevel As Long
  13803.         CounterType As Long
  13804.         CounterSize As Long
  13805.         CounterOffset As Long
  13806. End Type
  13807.  
  13808. Public Const PERF_NO_UNIQUE_ID = -1
  13809.  
  13810. Type PERF_INSTANCE_DEFINITION
  13811.         ByteLength As Long
  13812.         ParentObjectTitleIndex As Long
  13813.         ParentObjectInstance As Long
  13814.         UniqueID As Long
  13815.         NameOffset As Long
  13816.         NameLength As Long
  13817. End Type
  13818.  
  13819. Type PERF_COUNTER_BLOCK
  13820.         ByteLength As Long
  13821. End Type
  13822.  
  13823. Public Const CDERR_DIALOGFAILURE = &HFFFF
  13824.  
  13825. Public Const CDERR_GENERALCODES = &H0
  13826. Public Const CDERR_STRUCTSIZE = &H1
  13827. Public Const CDERR_INITIALIZATION = &H2
  13828. Public Const CDERR_NOTEMPLATE = &H3
  13829. Public Const CDERR_NOHINSTANCE = &H4
  13830. Public Const CDERR_LOADSTRFAILURE = &H5
  13831. Public Const CDERR_FINDRESFAILURE = &H6
  13832. Public Const CDERR_LOADRESFAILURE = &H7
  13833. Public Const CDERR_LOCKRESFAILURE = &H8
  13834. Public Const CDERR_MEMALLOCFAILURE = &H9
  13835. Public Const CDERR_MEMLOCKFAILURE = &HA
  13836. Public Const CDERR_NOHOOK = &HB
  13837. Public Const CDERR_REGISTERMSGFAIL = &HC
  13838.  
  13839. Public Const PDERR_PRINTERCODES = &H1000
  13840. Public Const PDERR_SETUPFAILURE = &H1001
  13841. Public Const PDERR_PARSEFAILURE = &H1002
  13842. Public Const PDERR_RETDEFFAILURE = &H1003
  13843. Public Const PDERR_LOADDRVFAILURE = &H1004
  13844. Public Const PDERR_GETDEVMODEFAIL = &H1005
  13845. Public Const PDERR_INITFAILURE = &H1006
  13846. Public Const PDERR_NODEVICES = &H1007
  13847. Public Const PDERR_NODEFAULTPRN = &H1008
  13848. Public Const PDERR_DNDMMISMATCH = &H1009
  13849. Public Const PDERR_CREATEICFAILURE = &H100A
  13850. Public Const PDERR_PRINTERNOTFOUND = &H100B
  13851. Public Const PDERR_DEFAULTDIFFERENT = &H100C
  13852.  
  13853. Public Const CFERR_CHOOSEFONTCODES = &H2000
  13854. Public Const CFERR_NOFONTS = &H2001
  13855. Public Const CFERR_MAXLESSTHANMIN = &H2002
  13856.  
  13857. Public Const FNERR_FILENAMECODES = &H3000
  13858. Public Const FNERR_SUBCLASSFAILURE = &H3001
  13859. Public Const FNERR_INVALIDFILENAME = &H3002
  13860. Public Const FNERR_BUFFERTOOSMALL = &H3003
  13861.  
  13862. Public Const FRERR_FINDREPLACECODES = &H4000
  13863. Public Const FRERR_BUFFERLENGTHZERO = &H4001
  13864.  
  13865. Public Const CCERR_CHOOSECOLORCODES = &H5000
  13866.  
  13867.  
  13868. ' public interface to LZEXP?.LIB
  13869.  
  13870. '  LZEXPAND error return codes
  13871. Public Const LZERROR_BADINHANDLE = (-1)  '  invalid input handle
  13872. Public Const LZERROR_BADOUTHANDLE = (-2) '  invalid output handle
  13873. Public Const LZERROR_READ = (-3)         '  corrupt compressed file format
  13874. Public Const LZERROR_WRITE = (-4)        '  out of space for output file
  13875. Public Const LZERROR_PUBLICLOC = (-5)    '  insufficient memory for LZFile struct
  13876. Public Const LZERROR_GLOBLOCK = (-6)     '  bad Global handle
  13877. Public Const LZERROR_BADVALUE = (-7)     '  input parameter out of range
  13878. Public Const LZERROR_UNKNOWNALG = (-8)   '  compression algorithm not recognized
  13879.  
  13880. Declare Function LZCopy Lib "lz32.dll" Alias "LZCopy" (ByVal hfSource As Long, ByVal hfDest As Long) As Long
  13881. Declare Function LZInit Lib "lz32.dll" Alias "LZInit" (ByVal hfSrc As Long) As Long
  13882. Declare Function GetExpandedName Lib "lz32.dll" Alias "GetExpandedNameA" (ByVal lpszSource As String, ByVal lpszBuffer As String) As Long
  13883. Declare Function LZOpenFile Lib "lz32.dll" Alias "LZOpenFileA" (ByVal lpszFile As String, lpOf As OFSTRUCT, ByVal style As Long) As Long
  13884. Declare Function LZSeek Lib "lz32.dll" Alias "LZSeek" (ByVal hfFile As Long, ByVal lOffset As Long, ByVal nOrigin As Long) As Long
  13885. Declare Function LZRead Lib "lz32.dll" Alias "LZRead" (ByVal hfFile As Long, ByVal lpvBuf As String, ByVal cbread As Long) As Long
  13886. Declare Sub LZClose Lib "lz32.dll" Alias "LZClose" (ByVal hfFile As Long)
  13887.  
  13888. ' ********************************************************************
  13889. '       IMM.H - Input Method Manager definitions
  13890. '
  13891. '       Copyright (c) 1993-1995  Microsoft Corporation
  13892. ' ********************************************************************
  13893.  
  13894. Public Const VK_PROCESSKEY = &HE5
  13895.  
  13896. Type COMPOSITIONFORM
  13897.         dwStyle As Long
  13898.         ptCurrentPos As POINTAPI
  13899.         rcArea As Rect
  13900. End Type
  13901.  
  13902. Type CANDIDATEFORM
  13903.         dwIndex As Long
  13904.         dwStyle As Long
  13905.         ptCurrentPos As POINTAPI
  13906.         rcArea As Rect
  13907. End Type
  13908.  
  13909. Type CANDIDATELIST
  13910.         dwSize As Long
  13911.         dwStyle As Long
  13912.         dwCount As Long
  13913.         dwSelection As Long
  13914.         dwPageStart As Long
  13915.         dwPageSize As Long
  13916.         dwOffset(1) As Long
  13917. End Type
  13918.  
  13919. Public Const STYLE_DESCRIPTION_SIZE = 32
  13920.  
  13921. Type STYLEBUF
  13922.         dwStyle As Long
  13923.         szDescription As String * STYLE_DESCRIPTION_SIZE
  13924. End Type
  13925. '  prototype of IMM API
  13926.  
  13927. Declare Function ImmInstallIME Lib "imm32.dll" Alias "ImmInstallIMEA" (ByVal lpszIMEFileName As String, ByVal lpszLayoutText As String) As Long
  13928. Declare Function ImmGetDefaultIMEWnd Lib "imm32.dll" Alias "ImmGetDefaultIMEWnd" (ByVal hwnd As Long) As Long
  13929. Declare Function ImmGetDescription Lib "imm32.dll" Alias "ImmGetDescriptionA" (ByVal hkl As Long, ByVal lpsz As String, ByVal uBufLen As Long) As Long
  13930. Declare Function ImmGetIMEFileName Lib "imm32.dll" Alias "ImmGetIMEFileNameA" (ByVal hkl As Long, ByVal lpStr As String, ByVal uBufLen As Long) As Long
  13931. Declare Function ImmGetProperty Lib "imm32.dll" Alias "ImmGetProperty" (ByVal hkl As Long, ByVal dw As Long) As Long
  13932. Declare Function ImmIsIME Lib "imm32.dll" Alias "ImmIsIME" (ByVal hkl As Long) As Long
  13933. Declare Function ImmSimulateHotKey Lib "imm32.dll" Alias "ImmSimulateHotKey" (ByVal hwnd As Long, ByVal dw As Long) As Long
  13934. Declare Function ImmCreateContext Lib "imm32.dll" Alias "ImmCreateContext" () As Long
  13935. Declare Function ImmDestroyContext Lib "imm32.dll" Alias "ImmDestroyContext" (ByVal himc As Long) As Long
  13936. Declare Function ImmGetContext Lib "imm32.dll" Alias "ImmGetContext" (ByVal hwnd As Long) As Long
  13937. Declare Function ImmReleaseContext Lib "imm32.dll" Alias "ImmReleaseContext" (ByVal hwnd As Long, ByVal himc As Long) As Long
  13938. Declare Function ImmAssociateContext Lib "imm32.dll" Alias "ImmAssociateContext" (ByVal hwnd As Long, ByVal himc As Long) As Long
  13939. 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
  13940. 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
  13941. Declare Function ImmGetCandidateListCount Lib "imm32.dll" Alias "ImmGetCandidateListCountA" (ByVal himc As Long, lpdwListCount As Long) As Long
  13942. 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
  13943. 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
  13944. Declare Function ImmGetConversionStatus Lib "imm32.dll" Alias "ImmGetConversionStatus" (ByVal himc As Long, lpdw As Long, lpdw2 As Long) As Long
  13945. Declare Function ImmSetConversionStatus Lib "imm32.dll" Alias "ImmSetConversionStatus" (ByVal himc As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long
  13946. Declare Function ImmGetOpenStatus Lib "imm32.dll" Alias "ImmGetOpenStatus" (ByVal himc As Long) As Long
  13947. Declare Function ImmSetOpenStatus Lib "imm32.dll" Alias "ImmSetOpenStatus" (ByVal himc As Long, ByVal b As Long) As Long
  13948. Declare Function ImmGetCompositionFont Lib "imm32.dll" Alias "ImmGetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long
  13949. Declare Function ImmSetCompositionFont Lib "imm32.dll" Alias "ImmSetCompositionFontA" (ByVal himc As Long, lpLogFont As LOGFONT) As Long
  13950. Declare Function ImmConfigureIME Lib "imm32.dll" Alias "ImmConfigureIME" (ByVal hkl As Long, ByVal hwnd As Long, ByVal dw As Long) As Long
  13951. 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
  13952. 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
  13953. 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
  13954. Declare Function ImmGetStatusWindowPos Lib "imm32.dll" Alias "ImmGetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long
  13955. Declare Function ImmSetStatusWindowPos Lib "imm32.dll" Alias "ImmSetStatusWindowPos" (ByVal himc As Long, lpPoint As POINTAPI) As Long
  13956. Declare Function ImmGetCompositionWindow Lib "imm32.dll" Alias "ImmGetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long
  13957. Declare Function ImmSetCompositionWindow Lib "imm32.dll" Alias "ImmSetCompositionWindow" (ByVal himc As Long, lpCompositionForm As COMPOSITIONFORM) As Long
  13958. Declare Function ImmGetCandidateWindow Lib "imm32.dll" Alias "ImmGetCandidateWindow" (ByVal himc As Long, ByVal dw As Long, lpCandidateForm As CANDIDATEFORM) As Long
  13959. Declare Function ImmSetCandidateWindow Lib "imm32.dll" Alias "ImmSetCandidateWindow" (ByVal himc As Long, lpCandidateForm As CANDIDATEFORM) As Long
  13960. Declare Function ImmIsUIMessage Lib "imm32.dll" Alias "ImmIsUIMessageA" (ByVal hwnd As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  13961. Declare Function ImmGetVirtualKey Lib "imm32.dll" Alias "ImmGetVirtualKey" (ByVal hwnd As Long) As Long
  13962. 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
  13963. 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
  13964. Declare Function ImmGetRegisterWordStyle Lib "imm32.dll" Alias " ImmGetRegisterWordStyleA" (ByVal hkl As Long, ByVal nItem As Long, lpStyleBuf As STYLEBUF) As Long
  13965. 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
  13966. '  the IME related messages
  13967. Public Const WM_CONVERTREQUESTEX = &H108
  13968. Public Const WM_IME_STARTCOMPOSITION = &H10D
  13969. Public Const WM_IME_ENDCOMPOSITION = &H10E
  13970. Public Const WM_IME_COMPOSITION = &H10F
  13971. Public Const WM_IME_KEYLAST = &H10F
  13972.  
  13973. Public Const WM_IME_SETCONTEXT = &H281
  13974. Public Const WM_IME_NOTIFY = &H282
  13975. Public Const WM_IME_CONTROL = &H283
  13976. Public Const WM_IME_COMPOSITIONFULL = &H284
  13977. Public Const WM_IME_SELECT = &H285
  13978. Public Const WM_IME_CHAR = &H286
  13979.  
  13980. Public Const WM_IME_KEYDOWN = &H290
  13981. Public Const WM_IME_KEYUP = &H291
  13982.  
  13983. '  wParam for WM_IME_CONTROL
  13984. Public Const IMC_GETCANDIDATEPOS = &H7
  13985. Public Const IMC_SETCANDIDATEPOS = &H8
  13986. Public Const IMC_GETCOMPOSITIONFONT = &H9
  13987. Public Const IMC_SETCOMPOSITIONFONT = &HA
  13988. Public Const IMC_GETCOMPOSITIONWINDOW = &HB
  13989. Public Const IMC_SETCOMPOSITIONWINDOW = &HC
  13990. Public Const IMC_GETSTATUSWINDOWPOS = &HF
  13991. Public Const IMC_SETSTATUSWINDOWPOS = &H10
  13992. Public Const IMC_CLOSESTATUSWINDOW = &H21
  13993. Public Const IMC_OPENSTATUSWINDOW = &H22
  13994.  
  13995.  
  13996. '  wParam for WM_IME_CONTROL to the soft keyboard
  13997. '  dwAction for ImmNotifyIME
  13998. Public Const NI_OPENCANDIDATE = &H10
  13999. Public Const NI_CLOSECANDIDATE = &H11
  14000. Public Const NI_SELECTCANDIDATESTR = &H12
  14001. Public Const NI_CHANGECANDIDATELIST = &H13
  14002. Public Const NI_FINALIZECONVERSIONRESULT = &H14
  14003. Public Const NI_COMPOSITIONSTR = &H15
  14004. Public Const NI_SETCANDIDATE_PAGESTART = &H16
  14005. Public Const NI_SETCANDIDATE_PAGESIZE = &H17
  14006.  
  14007. '  lParam for WM_IME_SETCONTEXT
  14008. Public Const ISC_SHOWUICANDIDATEWINDOW = &H1
  14009. Public Const ISC_SHOWUICOMPOSITIONWINDOW = &H80000000
  14010. Public Const ISC_SHOWUIGUIDELINE = &H40000000
  14011. Public Const ISC_SHOWUIALLCANDIDATEWINDOW = &HF
  14012. Public Const ISC_SHOWUIALL = &HC000000F
  14013.  
  14014. '  dwIndex for ImmNotifyIME/NI_COMPOSITIONSTR
  14015. Public Const CPS_COMPLETE = &H1
  14016. Public Const CPS_CONVERT = &H2
  14017. Public Const CPS_REVERT = &H3
  14018. Public Const CPS_CANCEL = &H4
  14019.  
  14020. '  Windows for Simplified Chinese Edition hot key ID from 0x10 - 0x2F
  14021. Public Const IME_CHOTKEY_IME_NONIME_TOGGLE = &H10
  14022. Public Const IME_CHOTKEY_SHAPE_TOGGLE = &H11
  14023. Public Const IME_CHOTKEY_SYMBOL_TOGGLE = &H12
  14024.  
  14025. '  Windows for Japanese Edition hot key ID from 0x30 - 0x4F
  14026. Public Const IME_JHOTKEY_CLOSE_OPEN = &H30
  14027.  
  14028. '  Windows for Korean Edition hot key ID from 0x50 - 0x6F
  14029. Public Const IME_KHOTKEY_SHAPE_TOGGLE = &H50
  14030. Public Const IME_KHOTKEY_HANJACONVERT = &H51
  14031. Public Const IME_KHOTKEY_ENGLISH = &H52
  14032.  
  14033. '  Windows for Tranditional Chinese Edition hot key ID from 0x70 - 0x8F
  14034. Public Const IME_THOTKEY_IME_NONIME_TOGGLE = &H70
  14035. Public Const IME_THOTKEY_SHAPE_TOGGLE = &H71
  14036. Public Const IME_THOTKEY_SYMBOL_TOGGLE = &H72
  14037.  
  14038. '  direct switch hot key ID from 0x100 - 0x11F
  14039. Public Const IME_HOTKEY_DSWITCH_FIRST = &H100
  14040. Public Const IME_HOTKEY_DSWITCH_LAST = &H11F
  14041.  
  14042. '  IME private hot key from 0x200 - 0x21F
  14043. Public Const IME_ITHOTKEY_RESEND_RESULTSTR = &H200
  14044. Public Const IME_ITHOTKEY_PREVIOUS_COMPOSITION = &H201
  14045. Public Const IME_ITHOTKEY_UISTYLE_TOGGLE = &H202
  14046.  
  14047. '  parameter of ImmGetCompositionString
  14048. Public Const GCS_COMPREADSTR = &H1
  14049. Public Const GCS_COMPREADATTR = &H2
  14050. Public Const GCS_COMPREADCLAUSE = &H4
  14051. Public Const GCS_COMPSTR = &H8
  14052. Public Const GCS_COMPATTR = &H10
  14053. Public Const GCS_COMPCLAUSE = &H20
  14054. Public Const GCS_CURSORPOS = &H80
  14055. Public Const GCS_DELTASTART = &H100
  14056. Public Const GCS_RESULTREADSTR = &H200
  14057. Public Const GCS_RESULTREADCLAUSE = &H400
  14058. Public Const GCS_RESULTSTR = &H800
  14059. Public Const GCS_RESULTCLAUSE = &H1000
  14060.  
  14061. '  style bit flags for WM_IME_COMPOSITION
  14062. Public Const CS_INSERTCHAR = &H2000
  14063. Public Const CS_NOMOVECARET = &H4000
  14064.  
  14065. '  bits of fdwInit of INPUTCONTEXT
  14066. '  IME property bits
  14067. Public Const IME_PROP_AT_CARET = &H10000
  14068. Public Const IME_PROP_SPECIAL_UI = &H20000
  14069. Public Const IME_PROP_CANDLIST_START_FROM_1 = &H40000
  14070. Public Const IME_PROP_UNICODE = &H80000
  14071.  
  14072. '  IME UICapability bits
  14073. Public Const UI_CAP_2700 = &H1
  14074. Public Const UI_CAP_ROT90 = &H2
  14075. Public Const UI_CAP_ROTANY = &H4
  14076.  
  14077. '  ImmSetCompositionString Capability bits
  14078. Public Const SCS_CAP_COMPSTR = &H1
  14079. Public Const SCS_CAP_MAKEREAD = &H2
  14080.  
  14081. '  IME WM_IME_SELECT inheritance Capability bits
  14082. Public Const SELECT_CAP_CONVERSION = &H1
  14083. Public Const SELECT_CAP_SENTENCE = &H2
  14084.  
  14085. '  ID for deIndex of ImmGetGuideLine
  14086. Public Const GGL_LEVEL = &H1
  14087. Public Const GGL_INDEX = &H2
  14088. Public Const GGL_STRING = &H3
  14089. Public Const GGL_PRIVATE = &H4
  14090.  
  14091. '  ID for dwLevel of GUIDELINE Structure
  14092. Public Const GL_LEVEL_NOGUIDELINE = &H0
  14093. Public Const GL_LEVEL_FATAL = &H1
  14094. Public Const GL_LEVEL_ERROR = &H2
  14095. Public Const GL_LEVEL_WARNING = &H3
  14096. Public Const GL_LEVEL_INFORMATION = &H4
  14097.  
  14098. '  ID for dwIndex of GUIDELINE Structure
  14099. Public Const GL_ID_UNKNOWN = &H0
  14100. Public Const GL_ID_NOMODULE = &H1
  14101. Public Const GL_ID_NODICTIONARY = &H10
  14102. Public Const GL_ID_CANNOTSAVE = &H11
  14103. Public Const GL_ID_NOCONVERT = &H20
  14104. Public Const GL_ID_TYPINGERROR = &H21
  14105. Public Const GL_ID_TOOMANYSTROKE = &H22
  14106. Public Const GL_ID_READINGCONFLICT = &H23
  14107. Public Const GL_ID_INPUTREADING = &H24
  14108. Public Const GL_ID_INPUTRADICAL = &H25
  14109. Public Const GL_ID_INPUTCODE = &H26
  14110. Public Const GL_ID_INPUTSYMBOL = &H27
  14111. Public Const GL_ID_CHOOSECANDIDATE = &H28
  14112. Public Const GL_ID_REVERSECONVERSION = &H29
  14113. Public Const GL_ID_PRIVATE_FIRST = &H8000
  14114. Public Const GL_ID_PRIVATE_LAST = &HFFFF
  14115.  
  14116. '  ID for dwIndex of ImmGetProperty
  14117. Public Const IGP_PROPERTY = &H4
  14118. Public Const IGP_CONVERSION = &H8
  14119. Public Const IGP_SENTENCE = &HC
  14120. Public Const IGP_UI = &H10
  14121. Public Const IGP_SETCOMPSTR = &H14
  14122. Public Const IGP_SELECT = &H18
  14123.  
  14124. '  dwIndex for ImmSetCompositionString API
  14125. Public Const SCS_SETSTR = (GCS_COMPREADSTR Or GCS_COMPSTR)
  14126. Public Const SCS_CHANGEATTR = (GCS_COMPREADATTR Or GCS_COMPATTR)
  14127. Public Const SCS_CHANGECLAUSE = (GCS_COMPREADCLAUSE Or GCS_COMPCLAUSE)
  14128.  
  14129. '  attribute for COMPOSITIONSTRING Structure
  14130. Public Const ATTR_INPUT = &H0
  14131. Public Const ATTR_TARGET_CONVERTED = &H1
  14132. Public Const ATTR_CONVERTED = &H2
  14133. Public Const ATTR_TARGET_NOTCONVERTED = &H3
  14134. Public Const ATTR_INPUT_ERROR = &H4
  14135.  
  14136. '  bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW
  14137. Public Const CFS_DEFAULT = &H0
  14138. Public Const CFS_RECT = &H1
  14139. Public Const CFS_POINT = &H2
  14140. Public Const CFS_SCREEN = &H4
  14141. Public Const CFS_FORCE_POSITION = &H20
  14142. Public Const CFS_CANDIDATEPOS = &H40
  14143. Public Const CFS_EXCLUDE = &H80
  14144.  
  14145. '  conversion direction for ImmGetConversionList
  14146. Public Const GCL_CONVERSION = &H1
  14147. Public Const GCL_REVERSECONVERSION = &H2
  14148. Public Const GCL_REVERSE_LENGTH = &H3
  14149.  
  14150. '  bit field for conversion mode
  14151. Public Const IME_CMODE_ALPHANUMERIC = &H0
  14152. Public Const IME_CMODE_NATIVE = &H1
  14153. Public Const IME_CMODE_CHINESE = IME_CMODE_NATIVE
  14154. Public Const IME_CMODE_HANGEUL = IME_CMODE_NATIVE
  14155. Public Const IME_CMODE_JAPANESE = IME_CMODE_NATIVE
  14156. Public Const IME_CMODE_KATAKANA = &H2                   '  only effect under IME_CMODE_NATIVE
  14157. Public Const IME_CMODE_LANGUAGE = &H3
  14158. Public Const IME_CMODE_FULLSHAPE = &H8
  14159. Public Const IME_CMODE_ROMAN = &H10
  14160. Public Const IME_CMODE_CHARCODE = &H20
  14161. Public Const IME_CMODE_HANJACONVERT = &H40
  14162. Public Const IME_CMODE_SOFTKBD = &H80
  14163. Public Const IME_CMODE_NOCONVERSION = &H100
  14164. Public Const IME_CMODE_EUDC = &H200
  14165. Public Const IME_CMODE_SYMBOL = &H400
  14166.  
  14167. Public Const IME_SMODE_NONE = &H0
  14168. Public Const IME_SMODE_PLAURALCLAUSE = &H1
  14169. Public Const IME_SMODE_SINGLECONVERT = &H2
  14170. Public Const IME_SMODE_AUTOMATIC = &H4
  14171. Public Const IME_SMODE_PHRASEPREDICT = &H8
  14172.  
  14173. '  style of candidate
  14174. Public Const IME_CAND_UNKNOWN = &H0
  14175. Public Const IME_CAND_READ = &H1
  14176. Public Const IME_CAND_CODE = &H2
  14177. Public Const IME_CAND_MEANING = &H3
  14178. Public Const IME_CAND_RADICAL = &H4
  14179. Public Const IME_CAND_STROKE = &H5
  14180.  
  14181. '  wParam of report message WM_IME_NOTIFY
  14182. Public Const IMN_CLOSESTATUSWINDOW = &H1
  14183. Public Const IMN_OPENSTATUSWINDOW = &H2
  14184. Public Const IMN_CHANGECANDIDATE = &H3
  14185. Public Const IMN_CLOSECANDIDATE = &H4
  14186. Public Const IMN_OPENCANDIDATE = &H5
  14187. Public Const IMN_SETCONVERSIONMODE = &H6
  14188. Public Const IMN_SETSENTENCEMODE = &H7
  14189. Public Const IMN_SETOPENSTATUS = &H8
  14190. Public Const IMN_SETCANDIDATEPOS = &H9
  14191. Public Const IMN_SETCOMPOSITIONFONT = &HA
  14192. Public Const IMN_SETCOMPOSITIONWINDOW = &HB
  14193. Public Const IMN_SETSTATUSWINDOWPOS = &HC
  14194. Public Const IMN_GUIDELINE = &HD
  14195. Public Const IMN_PRIVATE = &HE
  14196.  
  14197. '  error code of ImmGetCompositionString
  14198. Public Const IMM_ERROR_NODATA = (-1)
  14199. Public Const IMM_ERROR_GENERAL = (-2)
  14200.  
  14201. '  dialog mode of ImmConfigureIME
  14202. Public Const IME_CONFIG_GENERAL = 1
  14203. Public Const IME_CONFIG_REGISTERWORD = 2
  14204. Public Const IME_CONFIG_SELECTDICTIONARY = 3
  14205.  
  14206. '  dialog mode of ImmEscape
  14207. Public Const IME_ESC_QUERY_SUPPORT = &H3
  14208. Public Const IME_ESC_RESERVED_FIRST = &H4
  14209. Public Const IME_ESC_RESERVED_LAST = &H7FF
  14210. Public Const IME_ESC_PRIVATE_FIRST = &H800
  14211. Public Const IME_ESC_PRIVATE_LAST = &HFFF
  14212. Public Const IME_ESC_SEQUENCE_TO_INTERNAL = &H1001
  14213. Public Const IME_ESC_GET_EUDC_DICTIONARY = &H1003
  14214. Public Const IME_ESC_SET_EUDC_DICTIONARY = &H1004
  14215. Public Const IME_ESC_MAX_KEY = &H1005
  14216. Public Const IME_ESC_IME_NAME = &H1006
  14217. Public Const IME_ESC_SYNC_HOTKEY = &H1007
  14218. Public Const IME_ESC_HANJA_MODE = &H1008
  14219.  
  14220. '  style of word registration
  14221. Public Const IME_REGWORD_STYLE_EUDC = &H1
  14222. Public Const IME_REGWORD_STYLE_USER_FIRST = &H80000000
  14223. Public Const IME_REGWORD_STYLE_USER_LAST = &HFFFF
  14224.  
  14225. '  type of soft keyboard
  14226. '  for Windows Tranditional Chinese Edition
  14227. Public Const SOFTKEYBOARD_TYPE_T1 = &H1
  14228. '  for Windows Simplified Chinese Edition
  14229. Public Const SOFTKEYBOARD_TYPE_C1 = &H2
  14230.  
  14231.  
  14232.  
  14233. ' ***********************************************************************
  14234. ' *                                                                       *
  14235. ' *   mcx.h -- This module defines the 32-Bit Windows MCX APIs            *
  14236. ' *                                                                       *
  14237. ' *   Copyright (c) 1990-1995, Microsoft Corp. All rights reserved.       *
  14238. ' *                                                                       *
  14239. ' ************************************************************************/
  14240.  
  14241.  
  14242. Type MODEMDEVCAPS
  14243.         dwActualSize As Long
  14244.         dwRequiredSize As Long
  14245.         dwDevSpecificOffset As Long
  14246.         dwDevSpecificSize As Long
  14247.  
  14248.     '  product and version identification
  14249.         dwModemProviderVersion As Long
  14250.         dwModemManufacturerOffset As Long
  14251.         dwModemManufacturerSize As Long
  14252.         dwModemModelOffset As Long
  14253.         dwModemModelSize As Long
  14254.         dwModemVersionOffset As Long
  14255.         dwModemVersionSize As Long
  14256.  
  14257.     '  local option capabilities
  14258.         dwDialOptions As Long          '  bitmap of supported values
  14259.         dwCallSetupFailTimer As Long   '  maximum in seconds
  14260.         dwInactivityTimeout As Long    '  maximum in seconds
  14261.         dwSpeakerVolume As Long        '  bitmap of supported values
  14262.         dwSpeakerMode As Long          '  bitmap of supported values
  14263.         dwModemOptions As Long         '  bitmap of supported values
  14264.         dwMaxDTERate As Long           '  maximum value in bit/s
  14265.         dwMaxDCERate As Long           '  maximum value in bit/s
  14266.  
  14267.     '  Variable portion for proprietary expansion
  14268.         abVariablePortion(1) As Byte
  14269. End Type
  14270.  
  14271. Type MODEMSETTINGS
  14272.         dwActualSize As Long
  14273.         dwRequiredSize As Long
  14274.         dwDevSpecificOffset As Long
  14275.         dwDevSpecificSize As Long
  14276.  
  14277.     '  static local options (read/write)
  14278.         dwCallSetupFailTimer As Long       '  seconds
  14279.         dwInactivityTimeout As Long        '  seconds
  14280.         dwSpeakerVolume As Long            '  level
  14281.         dwSpeakerMode As Long              '  mode
  14282.         dwPreferredModemOptions As Long    '  bitmap
  14283.     
  14284.     '  negotiated options (read only) for current or last call
  14285.         dwNegotiatedModemOptions As Long   '  bitmap
  14286.         dwNegotiatedDCERate As Long        '  bit/s
  14287.  
  14288.     '  Variable portion for proprietary expansion
  14289.         abVariablePortion(1) As Byte
  14290. End Type
  14291.  
  14292. '  Dial Options
  14293. Public Const DIALOPTION_BILLING = &H40          '  Supports wait for bong "$"
  14294. Public Const DIALOPTION_QUIET = &H80            '  Supports wait for quiet "@"
  14295. Public Const DIALOPTION_DIALTONE = &H100        '  Supports wait for dial tone "W"
  14296.  
  14297. '  SpeakerVolume for MODEMDEVCAPS
  14298. Public Const MDMVOLFLAG_LOW = &H1
  14299. Public Const MDMVOLFLAG_MEDIUM = &H2
  14300. Public Const MDMVOLFLAG_HIGH = &H4
  14301.  
  14302. '  SpeakerVolume for MODEMSETTINGS
  14303. Public Const MDMVOL_LOW = &H0
  14304. Public Const MDMVOL_MEDIUM = &H1
  14305. Public Const MDMVOL_HIGH = &H2
  14306.  
  14307. '  SpeakerMode for MODEMDEVCAPS
  14308. Public Const MDMSPKRFLAG_OFF = &H1
  14309. Public Const MDMSPKRFLAG_DIAL = &H2
  14310. Public Const MDMSPKRFLAG_ON = &H4
  14311. Public Const MDMSPKRFLAG_CALLSETUP = &H8
  14312.  
  14313. '  SpeakerMode for MODEMSETTINGS
  14314. Public Const MDMSPKR_OFF = &H0
  14315. Public Const MDMSPKR_DIAL = &H1
  14316. Public Const MDMSPKR_ON = &H2
  14317. Public Const MDMSPKR_CALLSETUP = &H3
  14318.  
  14319. '  Modem Options
  14320. Public Const MDM_COMPRESSION = &H1
  14321. Public Const MDM_ERROR_CONTROL = &H2
  14322. Public Const MDM_FORCED_EC = &H4
  14323. Public Const MDM_CELLULAR = &H8
  14324. Public Const MDM_FLOWCONTROL_HARD = &H10
  14325. Public Const MDM_FLOWCONTROL_SOFT = &H20
  14326. Public Const MDM_CCITT_OVERRIDE = &H40
  14327. Public Const MDM_SPEED_ADJUST = &H80
  14328. Public Const MDM_TONE_DIAL = &H100
  14329. Public Const MDM_BLIND_DIAL = &H200
  14330. Public Const MDM_V23_OVERRIDE = &H400
  14331.  
  14332.  
  14333.  
  14334. ' *****************************************************************************                                                                             *
  14335. ' * shellapi.h -  SHELL.DLL functions, types, and definitions                   *
  14336. ' *                                                                             *
  14337. ' * Copyright (c) 1992-1995, Microsoft Corp.  All rights reserved               *
  14338. ' *                                                                             *
  14339. ' \*****************************************************************************/
  14340.  
  14341. 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
  14342. Declare Function DragQueryPoint Lib "shell32.dll" Alias "DragQueryPoint" (ByVal HDROP As Long, lpPoint As POINTAPI) As Long
  14343. Declare Sub DragFinish Lib "shell32.dll" Alias "DragFinish" (ByVal hDrop As Long)
  14344. Declare Sub DragAcceptFiles Lib "shell32.dll" Alias "DragAcceptFiles" (ByVal hwnd As Long, ByVal fAccept As Long)
  14345. 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
  14346. Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
  14347.  
  14348. 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
  14349. Declare Function DuplicateIcon Lib "shell32.dll" Alias "DuplicateIcon" (ByVal hInst As Long, ByVal hIcon As Long) As Long
  14350. Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociateIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
  14351. Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
  14352.  
  14353. Type DRAGINFO
  14354.         uSize As Long                 '  init with sizeof(DRAGINFO)
  14355.         pt As POINTAPI
  14356.         fNC As Long
  14357.         lpFileList As String
  14358.         grfKeyState As Long
  14359. End Type
  14360.  
  14361. ' // AppBar stuff
  14362.  
  14363. Public Const ABM_NEW = &H0
  14364. Public Const ABM_REMOVE = &H1
  14365. Public Const ABM_QUERYPOS = &H2
  14366. Public Const ABM_SETPOS = &H3
  14367. Public Const ABM_GETSTATE = &H4
  14368. Public Const ABM_GETTASKBARPOS = &H5
  14369. Public Const ABM_ACTIVATE = &H6               '  lParam == TRUE/FALSE means activate/deactivate
  14370. Public Const ABM_GETAUTOHIDEBAR = &H7
  14371. Public Const ABM_SETAUTOHIDEBAR = &H8          '  this can fail at any time.  MUST check the result
  14372.                                         '  lParam = TRUE/FALSE  Set/Unset
  14373.                                         '  uEdge = what edge
  14374. Public Const ABM_WINDOWPOSCHANGED = &H9
  14375.  
  14376.  
  14377. '  these are put in the wparam of callback messages
  14378. Public Const ABN_STATECHANGE = &H0
  14379. Public Const ABN_POSCHANGED = &H1
  14380. Public Const ABN_FULLSCREENAPP = &H2
  14381. Public Const ABN_WINDOWARRANGE = &H3 '  lParam == TRUE means hide
  14382.  
  14383. '  flags for get state
  14384.  
  14385. Public Const ABS_AUTOHIDE = &H1
  14386. Public Const ABS_ALWAYSONTOP = &H2
  14387. Public Const ABE_LEFT = 0
  14388. Public Const ABE_TOP = 1
  14389. Public Const ABE_RIGHT = 2
  14390. Public Const ABE_BOTTOM = 3
  14391.  
  14392. Type APPBARDATA
  14393.         cbSize As Long
  14394.         hwnd As Long
  14395.         uCallbackMessage As Long
  14396.         uEdge As Long
  14397.         rc As Rect
  14398.         lParam As Long '  message specific
  14399. End Type
  14400.  
  14401. Declare Function SHAppBarMessage Lib "shell32.dll" Alias "SHAppBarMessage" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
  14402.  
  14403. ' //  EndAppBar
  14404.  
  14405. Declare Function DoEnvironmentSubst Lib "shell32.dll" Alias "DoEnvironmentSubstA" (ByVal szString As String, ByVal cbString As Long) As Long
  14406. Declare Function FindEnvironmentString Lib "shell32.dll" Alias "FindEnvironmentStringA" (ByVal szEnvVar As String) As String
  14407.  
  14408. Public Const EIRESID = -1
  14409.  
  14410. 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
  14411.  
  14412. ' // Shell File Operations
  14413.  
  14414. Public Const FO_MOVE = &H1
  14415. Public Const FO_COPY = &H2
  14416. Public Const FO_DELETE = &H3
  14417. Public Const FO_RENAME = &H4
  14418. Public Const FOF_MULTIDESTFILES = &H1
  14419. Public Const FOF_CONFIRMMOUSE = &H2
  14420. Public Const FOF_SILENT = &H4                      '  don't create progress/report
  14421. Public Const FOF_RENAMEONCOLLISION = &H8
  14422. Public Const FOF_NOCONFIRMATION = &H10             '  Don't prompt the user.
  14423. Public Const FOF_WANTMAPPINGHANDLE = &H20          '  Fill in SHFILEOPSTRUCT.hNameMappings
  14424.                                       '  Must be freed using SHFreeNameMappings
  14425. Public Const FOF_ALLOWUNDO = &H40
  14426. Public Const FOF_FILESONLY = &H80                  '  on *.*, do only files
  14427. Public Const FOF_SIMPLEPROGRESS = &H100            '  means don't show names of files
  14428. Public Const FOF_NOCONFIRMMKDIR = &H200            '  don't confirm making any needed dirs
  14429.  
  14430. Public Const PO_DELETE = &H13           '  printer is being deleted
  14431. Public Const PO_RENAME = &H14           '  printer is being renamed
  14432. Public Const PO_PORTCHANGE = &H20       '  port this printer connected to is being changed
  14433.                                 '  if this id is set, the strings received by
  14434.                                 '  the copyhook are a doubly-null terminated
  14435.                                 '  list of strings.  The first is the printer
  14436.                                 '  name and the second is the printer port.
  14437. Public Const PO_REN_PORT = &H34         '  PO_RENAME and PO_PORTCHANGE at same time.
  14438.  
  14439. '  no POF_ flags currently defined
  14440.  
  14441. '  implicit parameters are:
  14442. '       if pFrom or pTo are unqualified names the current directories are
  14443. '       taken from the global current drive/directory settings managed
  14444. '       by Get/SetCurrentDrive/Directory
  14445. '
  14446. '       the global confirmation settings
  14447.  
  14448. Type SHFILEOPSTRUCT
  14449.         hwnd As Long
  14450.         wFunc As Long
  14451.         pFrom As String
  14452.         pTo As String
  14453.         fFlags As Integer
  14454.         fAnyOperationsAborted As Long
  14455.         hNameMappings As Long
  14456.         lpszProgressTitle As String '  only used if FOF_SIMPLEPROGRESS
  14457. End Type
  14458.  
  14459. Declare Function SHFileOperation Lib "shell32.dll" Alias " SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
  14460.  
  14461. Declare Sub SHFreeNameMappings Lib "shell32.dll" Alias "SHFreeNameMappings" (ByVal hNameMappings As Long)
  14462.  
  14463. Type SHNAMEMAPPING
  14464.         pszOldPath As String
  14465.         pszNewPath As String
  14466.         cchOldPath As Long
  14467.         cchNewPath As Long
  14468. End Type
  14469.  
  14470. ' // End Shell File Operations
  14471.  
  14472. ' //  Begin ShellExecuteEx and family
  14473.  
  14474. '  ShellExecute() and ShellExecuteEx() error codes
  14475.  
  14476. '  regular WinExec() codes
  14477. Public Const SE_ERR_FNF = 2                     '  file not found
  14478. Public Const SE_ERR_PNF = 3                     '  path not found
  14479. Public Const SE_ERR_ACCESSDENIED = 5            '  access denied
  14480. Public Const SE_ERR_OOM = 8                     '  out of memory
  14481. Public Const SE_ERR_DLLNOTFOUND = 32
  14482.  
  14483.  
  14484. '  Note CLASSKEY overrides CLASSNAME
  14485. Public Const SEE_MASK_CLASSNAME = &H1
  14486. Public Const SEE_MASK_CLASSKEY = &H3
  14487. '  Note INVOKEIDLIST overrides IDLIST
  14488. Public Const SEE_MASK_IDLIST = &H4
  14489. Public Const SEE_MASK_INVOKEIDLIST = &HC
  14490. Public Const SEE_MASK_ICON = &H10
  14491. Public Const SEE_MASK_HOTKEY = &H20
  14492. Public Const SEE_MASK_NOCLOSEPROCESS = &H40
  14493. Public Const SEE_MASK_CONNECTNETDRV = &H80
  14494. Public Const SEE_MASK_FLAG_DDEWAIT = &H100
  14495. Public Const SEE_MASK_DOENVSUBST = &H200
  14496. Public Const SEE_MASK_FLAG_NO_UI = &H400
  14497.  
  14498. Type SHELLEXECUTEINFO
  14499.         cbSize As Long
  14500.         fMask As Long
  14501.         hwnd As Long
  14502.         lpVerb As String
  14503.         lpFile As String
  14504.         lpParameters As String
  14505.         lpDirectory As String
  14506.         nShow As Long
  14507.         hInstApp As Long
  14508.         '  Optional fields
  14509.         lpIDList As Long
  14510.         lpClass As String
  14511.         hkeyClass As Long
  14512.         dwHotKey As Long
  14513.         hIcon As Long
  14514.         hProcess As Long
  14515. End Type
  14516.  
  14517. Declare Sub WinExecError Lib "shell32.dll" Alias "WinExecErrorA" (ByVal hwnd As Long, ByVal error As Long, ByVal lpstrFileName As String, ByVal lpstrTitle As String)
  14518.  
  14519. ' //  End ShellExecuteEx and family
  14520.  
  14521. ' // Tray notification definitions
  14522.  
  14523. Type NOTIFYICONDATA
  14524.         cbSize As Long
  14525.         hwnd As Long
  14526.         uID As Long
  14527.         uFlags As Long
  14528.         uCallbackMessage As Long
  14529.         hIcon As Long
  14530.         szTip As String * 64
  14531. End Type
  14532.  
  14533. Public Const NIM_ADD = &H0
  14534. Public Const NIM_MODIFY = &H1
  14535. Public Const NIM_DELETE = &H2
  14536.  
  14537. Public Const NIF_MESSAGE = &H1
  14538. Public Const NIF_ICON = &H2
  14539. Public Const NIF_TIP = &H4
  14540.  
  14541. Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias " Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
  14542.  
  14543. ' // End Tray Notification Icons
  14544.  
  14545. ' // Begin SHGetFileInfo
  14546.  
  14547. '  * The SHGetFileInfo API provides an easy way to get attributes
  14548. '  * for a file given a pathname.
  14549. '  *
  14550. '  *   PARAMETERS
  14551. '  *
  14552. '  *     pszPath              file name to get info about
  14553. '  *     dwFileAttributes     file attribs, only used with SHGFI_USEFILEATTRIBUTES
  14554. '  *     psfi                 place to return file info
  14555. '  *     cbFileInfo           size of structure
  14556. '  *     uFlags               flags
  14557. '  *
  14558. '  *   RETURN
  14559. '  *     TRUE if things worked
  14560. '  */
  14561.  
  14562. Type SHFILEINFO
  14563.         hIcon As Long                      '  out: icon
  14564.         iIcon As Long          '  out: icon index
  14565.         dwAttributes As Long               '  out: SFGAO_ flags
  14566.         szDisplayName As String * MAX_PATH '  out: display name (or path)
  14567.         szTypeName As String * 80         '  out: type name
  14568. End Type
  14569.  
  14570. Public Const SHGFI_ICON = &H100                         '  get icon
  14571. Public Const SHGFI_DISPLAYNAME = &H200                  '  get display name
  14572. Public Const SHGFI_TYPENAME = &H400                     '  get type name
  14573. Public Const SHGFI_ATTRIBUTES = &H800                   '  get attributes
  14574. Public Const SHGFI_ICONLOCATION = &H1000                '  get icon location
  14575. Public Const SHGFI_EXETYPE = &H2000                     '  return exe type
  14576. Public Const SHGFI_SYSICONINDEX = &H4000                '  get system icon index
  14577. Public Const SHGFI_LINKOVERLAY = &H8000                 '  put a link overlay on icon
  14578. Public Const SHGFI_SELECTED = &H10000                   '  show icon in selected state
  14579. Public Const SHGFI_LARGEICON = &H0                      '  get large icon
  14580. Public Const SHGFI_SMALLICON = &H1                      '  get small icon
  14581. Public Const SHGFI_OPENICON = &H2                       '  get open icon
  14582. Public Const SHGFI_SHELLICONSIZE = &H4                  '  get shell size icon
  14583. Public Const SHGFI_PIDL = &H8                           '  pszPath is a pidl
  14584. Public Const SHGFI_USEFILEATTRIBUTES = &H10             '  use passed dwFileAttribute
  14585.  
  14586. 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
  14587.  
  14588. 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
  14589.  
  14590. Public Const SHGNLI_PIDL = &H1                          '  pszLinkTo is a pidl
  14591. Public Const SHGNLI_PREFIXNAME = &H2                    '  Make name "Shortcut to xxx"
  14592.  
  14593. ' // End SHGetFileInfo
  14594.  
  14595.  
  14596. ' Copyright (C) 1993 - 1995 Microsoft Corporation
  14597.  
  14598. ' Module Name:
  14599.  
  14600. '     winperf.h
  14601.  
  14602. ' Abstract:
  14603.  
  14604. '     Header file for the Performance Monitor data.
  14605.  
  14606. '     This file contains the definitions of the data structures returned
  14607. '     by the Configuration Registry in response to a request for
  14608. '     performance data.  This file is used by both the Configuration
  14609. '     Registry and the Performance Monitor to define their interface.
  14610. '     The complete interface is described here, except for the name
  14611. '     of the node to query in the registry.  It is
  14612.  
  14613. '                    HKEY_PERFORMANCE_DATA.
  14614.  
  14615. '     By querying that node with a subkey of "Global" the caller will
  14616. '     retrieve the structures described here.
  14617.  
  14618. '     There is no need to RegOpenKey() the reserved handle HKEY_PERFORMANCE_DATA,
  14619. '     but the caller should RegCloseKey() the handle so that network transports
  14620. '     and drivers can be removed or installed (which cannot happen while
  14621. '     they are open for monitoring.)  Remote requests must first
  14622. '     RegConnectRegistry().
  14623.  
  14624. ' --*/
  14625.  
  14626. '   Data structure definitions.
  14627.  
  14628. '   In order for data to be returned through the Configuration Registry
  14629. '   in a system-independent fashion, it must be self-describing.
  14630.  
  14631. '   In the following, all offsets are in bytes.
  14632.  
  14633. '
  14634. '   Data is returned through the Configuration Registry in a
  14635. '   a data block which begins with a _PERF_DATA_BLOCK structure.
  14636. '
  14637.  
  14638. '   The _PERF_DATA_BLOCK structure is followed by NumObjectTypes of
  14639. '   data sections, one for each type of object measured.  Each object
  14640. '   type section begins with a _PERF_OBJECT_TYPE structure.
  14641.  
  14642.  
  14643. ' *****************************************************************************                                                                             *
  14644. ' * winver.h -    Version management functions, types, and definitions          *
  14645. ' *                                                                             *
  14646. ' *               Include file for VER.DLL.  This library is                    *
  14647. ' *               designed to allow version stamping of Windows executable files*
  14648. ' *               and of special .VER files for DOS executable files.           *
  14649. ' *                                                                             *
  14650. ' *               Copyright (c) 1993, Microsoft Corp.  All rights reserved      *
  14651. ' *                                                                             *
  14652. ' \*****************************************************************************/
  14653.  
  14654. '  ----- Symbols -----
  14655. Public Const VS_VERSION_INFO = 1
  14656. Public Const VS_USER_DEFINED = 100
  14657.  
  14658. '  ----- VS_VERSION.dwFileFlags -----
  14659. Public Const VS_FFI_SIGNATURE = &HFEEF04BD
  14660. Public Const VS_FFI_STRUCVERSION = &H10000
  14661. Public Const VS_FFI_FILEFLAGSMASK = &H3F&
  14662.  
  14663. '  ----- VS_VERSION.dwFileFlags -----
  14664. Public Const VS_FF_DEBUG = &H1&
  14665. Public Const VS_FF_PRERELEASE = &H2&
  14666. Public Const VS_FF_PATCHED = &H4&
  14667. Public Const VS_FF_PRIVATEBUILD = &H8&
  14668. Public Const VS_FF_INFOINFERRED = &H10&
  14669. Public Const VS_FF_SPECIALBUILD = &H20&
  14670.  
  14671. '  ----- VS_VERSION.dwFileOS -----
  14672. Public Const VOS_UNKNOWN = &H0&
  14673. Public Const VOS_DOS = &H10000
  14674. Public Const VOS_OS216 = &H20000
  14675. Public Const VOS_OS232 = &H30000
  14676. Public Const VOS_NT = &H40000
  14677.  
  14678. Public Const VOS__BASE = &H0&
  14679. Public Const VOS__WINDOWS16 = &H1&
  14680. Public Const VOS__PM16 = &H2&
  14681. Public Const VOS__PM32 = &H3&
  14682. Public Const VOS__WINDOWS32 = &H4&
  14683.  
  14684. Public Const VOS_DOS_WINDOWS16 = &H10001
  14685. Public Const VOS_DOS_WINDOWS32 = &H10004
  14686. Public Const VOS_OS216_PM16 = &H20002
  14687. Public Const VOS_OS232_PM32 = &H30003
  14688. Public Const VOS_NT_WINDOWS32 = &H40004
  14689.  
  14690. '  ----- VS_VERSION.dwFileType -----
  14691. Public Const VFT_UNKNOWN = &H0&
  14692. Public Const VFT_APP = &H1&
  14693. Public Const VFT_DLL = &H2&
  14694. Public Const VFT_DRV = &H3&
  14695. Public Const VFT_FONT = &H4&
  14696. Public Const VFT_VXD = &H5&
  14697. Public Const VFT_STATIC_LIB = &H7&
  14698.  
  14699. '  ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_DRV -----
  14700. Public Const VFT2_UNKNOWN = &H0&
  14701. Public Const VFT2_DRV_PRINTER = &H1&
  14702. Public Const VFT2_DRV_KEYBOARD = &H2&
  14703. Public Const VFT2_DRV_LANGUAGE = &H3&
  14704. Public Const VFT2_DRV_DISPLAY = &H4&
  14705. Public Const VFT2_DRV_MOUSE = &H5&
  14706. Public Const VFT2_DRV_NETWORK = &H6&
  14707. Public Const VFT2_DRV_SYSTEM = &H7&
  14708. Public Const VFT2_DRV_INSTALLABLE = &H8&
  14709. Public Const VFT2_DRV_SOUND = &H9&
  14710. Public Const VFT2_DRV_COMM = &HA&
  14711. Public Const VFT2_DRV_INPUTMETHOD = &HB&
  14712.  
  14713. '  ----- VS_VERSION.dwFileSubtype for VFT_WINDOWS_FONT -----
  14714. Public Const VFT2_FONT_RASTER = &H1&
  14715. Public Const VFT2_FONT_VECTOR = &H2&
  14716. Public Const VFT2_FONT_TRUETYPE = &H3&
  14717.  
  14718. '  ----- VerFindFile() flags -----
  14719. Public Const VFFF_ISSHAREDFILE = &H1
  14720.  
  14721. Public Const VFF_CURNEDEST = &H1
  14722. Public Const VFF_FILEINUSE = &H2
  14723. Public Const VFF_BUFFTOOSMALL = &H4
  14724.  
  14725. '  ----- VerInstallFile() flags -----
  14726. Public Const VIFF_FORCEINSTALL = &H1
  14727. Public Const VIFF_DONTDELETEOLD = &H2
  14728.  
  14729. Public Const VIF_TEMPFILE = &H1&
  14730. Public Const VIF_MISMATCH = &H2&
  14731. Public Const VIF_SRCOLD = &H4&
  14732.  
  14733. Public Const VIF_DIFFLANG = &H8&
  14734. Public Const VIF_DIFFCODEPG = &H10&
  14735. Public Const VIF_DIFFTYPE = &H20&
  14736.  
  14737. Public Const VIF_WRITEPROT = &H40&
  14738. Public Const VIF_FILEINUSE = &H80&
  14739. Public Const VIF_OUTOFSPACE = &H100&
  14740. Public Const VIF_ACCESSVIOLATION = &H200&
  14741. Public Const VIF_SHARINGVIOLATION = &H400&
  14742. Public Const VIF_CANNOTCREATE = &H800&
  14743. Public Const VIF_CANNOTDELETE = &H1000&
  14744. Public Const VIF_CANNOTRENAME = &H2000&
  14745. Public Const VIF_CANNOTDELETECUR = &H4000&
  14746. Public Const VIF_OUTOFMEMORY = &H8000&
  14747.  
  14748. Public Const VIF_CANNOTREADSRC = &H10000
  14749. Public Const VIF_CANNOTREADDST = &H20000
  14750. Public Const VIF_BUFFTOOSMALL = &H40000
  14751.  
  14752. '  ----- Types and structures -----
  14753.  
  14754. Type VS_FIXEDFILEINFO
  14755.         dwSignature As Long
  14756.         dwStrucVersion As Long         '  e.g. 0x00000042 = "0.42"
  14757.         dwFileVersionMS As Long        '  e.g. 0x00030075 = "3.75"
  14758.         dwFileVersionLS As Long        '  e.g. 0x00000031 = "0.31"
  14759.         dwProductVersionMS As Long     '  e.g. 0x00030010 = "3.10"
  14760.         dwProductVersionLS As Long     '  e.g. 0x00000031 = "0.31"
  14761.         dwFileFlagsMask As Long        '  = 0x3F for version "0.42"
  14762.         dwFileFlags As Long            '  e.g. VFF_DEBUG Or VFF_PRERELEASE
  14763.         dwFileOS As Long               '  e.g. VOS_DOS_WINDOWS16
  14764.         dwFileType As Long             '  e.g. VFT_DRIVER
  14765.         dwFileSubtype As Long          '  e.g. VFT2_DRV_KEYBOARD
  14766.         dwFileDateMS As Long           '  e.g. 0
  14767.         dwFileDateLS As Long           '  e.g. 0
  14768. End Type
  14769.  
  14770. '  ----- Function prototypes -----
  14771.  
  14772. 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
  14773. 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
  14774.  
  14775. '  Returns size of version info in Bytes
  14776. Declare Function GetFileVersionInfoSize Lib "version.dll" Alias "GetFileVersionInfoSizeA" (ByVal lptstrFilename As String, lpdwHandle As Long) As Long
  14777.  
  14778. '  Read version info into buffer
  14779. ' /* Length of buffer for info *
  14780. ' /* Information from GetFileVersionSize *
  14781. ' /* Filename of version stamped file *
  14782. Declare Function GetFileVersionInfo Lib "version.dll"  Alias "GetFileVersionInfoA" (ByVal lptstrFilename As String, ByVal dwHandle As Long, ByVal dwLen As Long, lpData As Any) As Long
  14783. Declare Function VerLanguageName Lib "kernel32" Alias "VerLanguageNameA" (ByVal wLang As Long, ByVal szLang As String, ByVal nSize As Long) As Long
  14784. Declare Function VerQueryValue Lib "version.dll" Alias "VerQueryValue" (pBlock As Any, ByVal lpSubBlock As String, ByVal lplpBuffer As Long, puLen As Long) As Long
  14785.  
  14786. ' ***********************************************************************
  14787. ' *                                                                       *
  14788. ' *   winbase.h -- This module defines the 32-Bit Windows Base APIs       *
  14789. ' *                                                                       *
  14790. ' *   Copyright (c) 1990-1995, Microsoft Corp. All rights reserved.       *
  14791. ' *                                                                       *
  14792. ' ************************************************************************/
  14793. Type ICONMETRICS
  14794.     cbSize As Long
  14795.     iHorzSpacing As Long
  14796.     iVertSpacing As Long
  14797.     iTitleWrap As Long
  14798.     lfFont As LOGFONT
  14799. End Type
  14800.  
  14801. Type HELPINFO
  14802.     cbSize As Long
  14803.     iContextType As Long
  14804.     iCtrlId As Long
  14805.     hItemHandle As Long
  14806.     dwContextId As Long
  14807.     MousePos As POINTAPI
  14808. End Type
  14809.  
  14810. Type ANIMATIONINFO
  14811.     cbSize As Long
  14812.     iMinAnimate As Long
  14813. End Type
  14814.  
  14815. Type MINIMIZEDMETRICS
  14816.     cbSize As Long
  14817.     iWidth As Long
  14818.     iHorzGap As Long
  14819.     iVertGap As Long
  14820.     iArrange As Long
  14821.     lfFont As LOGFONT
  14822. End Type
  14823.  
  14824. '  Define API decoration for direct importing of DLL references.
  14825. Declare Function HeapValidate Lib "kernel32" Alias "HeapValidate" (ByVal hHeap As Long, ByVal dwFlags As Long, lpMem As Any) As Long
  14826. Declare Function HeapCompact Lib "kernel32" Alias "HeapCompact" (ByVal hHeap As Long, ByVal dwFlags As Long) As Long
  14827.  
  14828. Public Const PROCESS_HEAP_REGION = &H1
  14829. Public Const PROCESS_HEAP_UNCOMMITTED_RANGE = &H2
  14830. Public Const PROCESS_HEAP_ENTRY_BUSY = &H4
  14831. Public Const PROCESS_HEAP_ENTRY_MOVEABLE = &H10
  14832. Public Const PROCESS_HEAP_ENTRY_DDESHARE = &H20
  14833.  
  14834. Declare Function HeapLock Lib "kernel32" Alias "HeapLock" (ByVal hHeap As Long) As Long
  14835. Declare Function HeapUnlock Lib "kernel32" Alias "HeapUnlock" (ByVal hHeap As Long) As Long
  14836.  
  14837. '  GetBinaryType return values.
  14838.  
  14839. Public Const SCS_32BIT_BINARY = 0
  14840. Public Const SCS_DOS_BINARY = 1
  14841. Public Const SCS_WOW_BINARY = 2
  14842. Public Const SCS_PIF_BINARY = 3
  14843. Public Const SCS_POSIX_BINARY = 4
  14844. Public Const SCS_OS216_BINARY = 5
  14845.  
  14846. Declare Function GetBinaryType Lib "kernel32" Alias "GetBinaryTypeA" (ByVal lpApplicationName As String, lpBinaryType As Long) As Long
  14847.  
  14848. Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathName" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
  14849. Declare Function GetProcessAffinityMask Lib "kernel32" Alias "GetProcessAffinityMask" (ByVal hProcess As Long, lpProcessAffinityMask As Long, SystemAffinityMask As Long) As Long
  14850.  
  14851. '  Logon Support APIs
  14852.  
  14853. Public Const LOGON32_LOGON_INTERACTIVE = 2
  14854. Public Const LOGON32_LOGON_BATCH = 4
  14855. Public Const LOGON32_LOGON_SERVICE = 5
  14856.  
  14857. Public Const LOGON32_PROVIDER_DEFAULT = 0
  14858. Public Const LOGON32_PROVIDER_WINNT35 = 1
  14859.  
  14860. Declare Function LogonUser Lib "ADVAPI32.DLL" 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
  14861.  
  14862. Declare Function ImpersonateLoggedOnUser Lib "kernel32" Alias "ImpersonateLoggedOnUser" (ByVal hToken As Long) As Long
  14863. Declare Function CreateProcessAsUser Lib "kernel32" Alias "CreateProcessAsUserA" (ByVal hToken As Long, ByVal lpApplicationName As String, ByVal lpCommandLine As String, ByVal lpProcessAttributes As SECURITY_ATTRIBUTES, ByVal lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, ByVal lpEnvironment As String, ByVal lpCurrentDirectory As String, ByVal lpStartupInfo As STARTUPINFO, ByVal lpProcessInformation As PROCESS_INFORMATION) As Long
  14864.  
  14865. '  Performance counter API's
  14866.  
  14867. Type OSVERSIONINFO
  14868.         dwOSVersionInfoSize As Long
  14869.         dwMajorVersion As Long
  14870.         dwMinorVersion As Long
  14871.         dwBuildNumber As Long
  14872.         dwPlatformId As Long
  14873.         szCSDVersion As String * 128      '  Maintenance string for PSS usage
  14874. End Type
  14875.  
  14876. '  dwPlatformId defines:
  14877. '
  14878. Public Const VER_PLATFORM_WIN32s = 0
  14879. Public Const VER_PLATFORM_WIN32_WINDOWS = 1
  14880. Public Const VER_PLATFORM_WIN32_NT = 2
  14881.  
  14882. Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (ByVal lpVersionInformation As OSVERSIONINFO) As Long
  14883.  
  14884. '  Power Management APIs
  14885.  
  14886. Public Const AC_LINE_OFFLINE = &H0
  14887. Public Const AC_LINE_ONLINE = &H1
  14888. Public Const AC_LINE_BACKUP_POWER = &H2
  14889. Public Const AC_LINE_UNKNOWN = &HFF
  14890. Public Const BATTERY_FLAG_HIGH = &H1
  14891. Public Const BATTERY_FLAG_LOW = &H2
  14892. Public Const BATTERY_FLAG_CRITICAL = &H4
  14893. Public Const BATTERY_FLAG_CHARGING = &H8
  14894. Public Const BATTERY_FLAG_NO_BATTERY = &H80
  14895. Public Const BATTERY_FLAG_UNKNOWN = &HFF
  14896. Public Const BATTERY_PERCENTAGE_UNKNOWN = &HFF
  14897. Public Const BATTERY_LIFE_UNKNOWN = &HFFFF
  14898.  
  14899. Type SYSTEM_POWER_STATUS
  14900.         ACLineStatus As Byte
  14901.         BatteryFlag As Byte
  14902.         BatteryLifePercent As Byte
  14903.         Reserved1 As Byte
  14904.         BatteryLifeTime As Long
  14905.         BatteryFullLifeTime As Long
  14906. End Type
  14907.  
  14908. Declare Function GetSystemPowerStatus Lib "kernel32" Alias "GetSystemPowerStatus" (lpSystemPowerStatus As SYSTEM_POWER_STATUS) As Long
  14909. Declare Function SetSystemPowerState Lib "kernel32" Alias "SetSystemPowerState" (ByVal fSuspend As Long, ByVal fForce As Long) As Long
  14910.  
  14911. ' *   commdlg.h -- This module defines the 32-Bit Common Dialog APIs      *
  14912.  
  14913. Type OPENFILENAME
  14914.         lStructSize As Long
  14915.         hwndOwner As Long
  14916.         hInstance As Long
  14917.         lpstrFilter As String
  14918.         lpstrCustomFilter As String
  14919.         nMaxCustFilter As Long
  14920.         nFilterIndex As Long
  14921.         lpstrFile As String
  14922.         nMaxFile As Long
  14923.         lpstrFileTitle As String
  14924.         nMaxFileTitle As Long
  14925.         lpstrInitialDir As String
  14926.         lpstrTitle As String
  14927.         flags As Long
  14928.         nFileOffset As Integer
  14929.         nFileExtension As Integer
  14930.         lpstrDefExt As String
  14931.         lCustData As Long
  14932.         lpfnHook As Long
  14933.         lpTemplateName As String
  14934. End Type
  14935.  
  14936. Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
  14937.  
  14938. Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
  14939.  
  14940. Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer
  14941.  
  14942. Public Const OFN_READONLY = &H1
  14943. Public Const OFN_OVERWRITEPROMPT = &H2
  14944. Public Const OFN_HIDEREADONLY = &H4
  14945. Public Const OFN_NOCHANGEDIR = &H8
  14946. Public Const OFN_SHOWHELP = &H10
  14947. Public Const OFN_ENABLEHOOK = &H20
  14948. Public Const OFN_ENABLETEMPLATE = &H40
  14949. Public Const OFN_ENABLETEMPLATEHANDLE = &H80
  14950. Public Const OFN_NOVALIDATE = &H100
  14951. Public Const OFN_ALLOWMULTISELECT = &H200
  14952. Public Const OFN_EXTENSIONDIFFERENT = &H400
  14953. Public Const OFN_PATHMUSTEXIST = &H800
  14954. Public Const OFN_FILEMUSTEXIST = &H1000
  14955. Public Const OFN_CREATEPROMPT = &H2000
  14956. Public Const OFN_SHAREAWARE = &H4000
  14957. Public Const OFN_NOREADONLYRETURN = &H8000
  14958. Public Const OFN_NOTESTFILECREATE = &H10000
  14959. Public Const OFN_NONETWORKBUTTON = &H20000
  14960. Public Const OFN_NOLONGNAMES = &H40000                      '  force no long names for 4.x modules
  14961. Public Const OFN_EXPLORER = &H80000                         '  new look commdlg
  14962. Public Const OFN_NODEREFERENCELINKS = &H100000
  14963. Public Const OFN_LONGNAMES = &H200000                       '  force long names for 3.x modules
  14964.  
  14965. Public Const OFN_SHAREFALLTHROUGH = 2
  14966. Public Const OFN_SHARENOWARN = 1
  14967. Public Const OFN_SHAREWARN = 0
  14968.  
  14969. Type NMHDR
  14970.     hwndFrom As Long
  14971.     idfrom As Long
  14972.     code As Long
  14973. End Type
  14974.  
  14975. Type OFNOTIFY
  14976.         hdr As NMHDR
  14977.         lpOFN As OPENFILENAME
  14978.         pszFile As String        '  May be NULL
  14979. End Type
  14980.  
  14981. Public Const CDM_FIRST = (WM_USER + 100)
  14982. Public Const CDM_LAST = (WM_USER + 200)
  14983. Public Const CDM_GETSPEC = (CDM_FIRST + &H0)
  14984. Public Const CDM_GETFILEPATH = (CDM_FIRST + &H1)
  14985. Public Const CDM_GETFOLDERPATH = (CDM_FIRST + &H2)
  14986. Public Const CDM_GETFOLDERIDLIST = (CDM_FIRST + &H3)
  14987. Public Const CDM_SETCONTROLTEXT = (CDM_FIRST + &H4)
  14988. Public Const CDM_HIDECONTROL = (CDM_FIRST + &H5)
  14989. Public Const CDM_SETDEFEXT = (CDM_FIRST + &H6)
  14990.  
  14991. Type CHOOSECOLOR
  14992.         lStructSize As Long
  14993.         hwndOwner As Long
  14994.         hInstance As Long
  14995.         rgbResult As Long
  14996.         lpCustColors As Long
  14997.         flags As Long
  14998.         lCustData As Long
  14999.         lpfnHook As Long
  15000.         lpTemplateName As String
  15001. End Type
  15002.  
  15003. Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
  15004.  
  15005. Public Const CC_RGBINIT = &H1
  15006. Public Const CC_FULLOPEN = &H2
  15007. Public Const CC_PREVENTFULLOPEN = &H4
  15008. Public Const CC_SHOWHELP = &H8
  15009. Public Const CC_ENABLEHOOK = &H10
  15010. Public Const CC_ENABLETEMPLATE = &H20
  15011. Public Const CC_ENABLETEMPLATEHANDLE = &H40
  15012. Public Const CC_SOLIDCOLOR = &H80
  15013. Public Const CC_ANYCOLOR = &H100
  15014.  
  15015. Type FINDREPLACE
  15016.         lStructSize As Long        '  size of this struct 0x20
  15017.         hwndOwner As Long          '  handle to owner's window
  15018.         hInstance As Long          '  instance handle of.EXE that
  15019.                                     '    contains cust. dlg. template
  15020.         flags As Long              '  one or more of the FR_??
  15021.         lpstrFindWhat As String      '  ptr. to search string
  15022.         lpstrReplaceWith As String   '  ptr. to replace string
  15023.         wFindWhatLen As Integer       '  size of find buffer
  15024.         wReplaceWithLen As Integer    '  size of replace buffer
  15025.         lCustData As Long          '  data passed to hook fn.
  15026.         lpfnHook As Long            '  ptr. to hook fn. or NULL
  15027.         lpTemplateName As String     '  custom template name
  15028. End Type
  15029.  
  15030. Public Const FR_DOWN = &H1
  15031. Public Const FR_WHOLEWORD = &H2
  15032. Public Const FR_MATCHCASE = &H4
  15033. Public Const FR_FINDNEXT = &H8
  15034. Public Const FR_REPLACE = &H10
  15035. Public Const FR_REPLACEALL = &H20
  15036. Public Const FR_DIALOGTERM = &H40
  15037. Public Const FR_SHOWHELP = &H80
  15038. Public Const FR_ENABLEHOOK = &H100
  15039. Public Const FR_ENABLETEMPLATE = &H200
  15040. Public Const FR_NOUPDOWN = &H400
  15041. Public Const FR_NOMATCHCASE = &H800
  15042. Public Const FR_NOWHOLEWORD = &H1000
  15043. Public Const FR_ENABLETEMPLATEHANDLE = &H2000
  15044. Public Const FR_HIDEUPDOWN = &H4000
  15045. Public Const FR_HIDEMATCHCASE = &H8000
  15046. Public Const FR_HIDEWHOLEWORD = &H10000
  15047.  
  15048. Declare Function FindText Lib "comdlg32.dll" Alias "FindTextA " (pFindreplace As FINDREPLACE) As Long
  15049.  
  15050. Declare Function ReplaceText Lib "comdlg32.dll" Alias "ReplaceTextA" (pFindreplace As FINDREPLACE) As Long
  15051.  
  15052. Type CHOOSEFONT
  15053.         lStructSize As Long
  15054.         hwndOwner As Long          '  caller's window handle
  15055.         hdc As Long                '  printer DC/IC or NULL
  15056.         lpLogFont As LOGFONT          '  ptr. to a LOGFONT struct
  15057.         iPointSize As Long         '  10 * size in points of selected font
  15058.         flags As Long              '  enum. type flags
  15059.         rgbColors As Long          '  returned text color
  15060.         lCustData As Long          '  data passed to hook fn.
  15061.         lpfnHook As Long           '  ptr. to hook function
  15062.         lpTemplateName As String     '  custom template name
  15063.         hInstance As Long          '  instance handle of.EXE that
  15064.                                        '    contains cust. dlg. template
  15065.         lpszStyle As String          '  return the style field here
  15066.                                        '  must be LF_FACESIZE or bigger
  15067.         nFontType As Integer          '  same value reported to the EnumFonts
  15068.                                        '    call back with the extra FONTTYPE_
  15069.                                        '    bits added
  15070.         MISSING_ALIGNMENT As Integer
  15071.         nSizeMin As Long           '  minimum pt size allowed &
  15072.         nSizeMax As Long           '  max pt size allowed if
  15073.                                        '    CF_LIMITSIZE is used
  15074. End Type
  15075.  
  15076. Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As CHOOSEFONT) As Long
  15077.  
  15078. Public Const CF_SCREENFONTS = &H1
  15079. Public Const CF_PRINTERFONTS = &H2
  15080. Public Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)
  15081. Public Const CF_SHOWHELP = &H4&
  15082. Public Const CF_ENABLEHOOK = &H8&
  15083. Public Const CF_ENABLETEMPLATE = &H10&
  15084. Public Const CF_ENABLETEMPLATEHANDLE = &H20&
  15085. Public Const CF_INITTOLOGFONTSTRUCT = &H40&
  15086. Public Const CF_USESTYLE = &H80&
  15087. Public Const CF_EFFECTS = &H100&
  15088. Public Const CF_APPLY = &H200&
  15089. Public Const CF_ANSIONLY = &H400&
  15090. Public Const CF_SCRIPTSONLY = CF_ANSIONLY
  15091. Public Const CF_NOVECTORFONTS = &H800&
  15092. Public Const CF_NOOEMFONTS = CF_NOVECTORFONTS
  15093. Public Const CF_NOSIMULATIONS = &H1000&
  15094. Public Const CF_LIMITSIZE = &H2000&
  15095. Public Const CF_FIXEDPITCHONLY = &H4000&
  15096. Public Const CF_WYSIWYG = &H8000 '  must also have CF_SCREENFONTS CF_PRINTERFONTS
  15097. Public Const CF_FORCEFONTEXIST = &H10000
  15098. Public Const CF_SCALABLEONLY = &H20000
  15099. Public Const CF_TTONLY = &H40000
  15100. Public Const CF_NOFACESEL = &H80000
  15101. Public Const CF_NOSTYLESEL = &H100000
  15102. Public Const CF_NOSIZESEL = &H200000
  15103. Public Const CF_SELECTSCRIPT = &H400000
  15104. Public Const CF_NOSCRIPTSEL = &H800000
  15105. Public Const CF_NOVERTFONTS = &H1000000
  15106.  
  15107. Public Const SIMULATED_FONTTYPE = &H8000
  15108. Public Const PRINTER_FONTTYPE = &H4000
  15109. Public Const SCREEN_FONTTYPE = &H2000
  15110. Public Const BOLD_FONTTYPE = &H100
  15111. Public Const ITALIC_FONTTYPE = &H200
  15112. Public Const REGULAR_FONTTYPE = &H400
  15113.  
  15114. Public Const WM_CHOOSEFONT_GETLOGFONT = (WM_USER + 1)
  15115. Public Const WM_CHOOSEFONT_SETLOGFONT = (WM_USER + 101)
  15116. Public Const WM_CHOOSEFONT_SETFLAGS = (WM_USER + 102)
  15117.  
  15118. Public Const LBSELCHSTRING = "commdlg_LBSelChangedNotify"
  15119. Public Const SHAREVISTRING = "commdlg_ShareViolation"
  15120. Public Const FILEOKSTRING = "commdlg_FileNameOK"
  15121. Public Const COLOROKSTRING = "commdlg_ColorOK"
  15122. Public Const SETRGBSTRING = "commdlg_SetRGBColor"
  15123. Public Const HELPMSGSTRING = "commdlg_help"
  15124. Public Const FINDMSGSTRING = "commdlg_FindReplace"
  15125.  
  15126. Public Const CD_LBSELNOITEMS = -1
  15127. Public Const CD_LBSELCHANGE = 0
  15128. Public Const CD_LBSELSUB = 1
  15129. Public Const CD_LBSELADD = 2
  15130.  
  15131. Type PRINTDLG
  15132.         lStructSize As Long
  15133.         hwndOwner As Long
  15134.         hDevMode As Long
  15135.         hDevNames As Long
  15136.         hdc As Long
  15137.         flags As Long
  15138.         nFromPage As Integer
  15139.         nToPage As Integer
  15140.         nMinPage As Integer
  15141.         nMaxPage As Integer
  15142.         nCopies As Integer
  15143.         hInstance As Long
  15144.         lCustData As Long
  15145.         lpfnPrintHook As Long
  15146.         lpfnSetupHook As Long
  15147.         lpPrintTemplateName As String
  15148.         lpSetupTemplateName As String
  15149.         hPrintTemplate As Long
  15150.         hSetupTemplate As Long
  15151. End Type
  15152.  
  15153. Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PRINTDLG) As Long
  15154.  
  15155. Public Const PD_ALLPAGES = &H0
  15156. Public Const PD_SELECTION = &H1
  15157. Public Const PD_PAGENUMS = &H2
  15158. Public Const PD_NOSELECTION = &H4
  15159. Public Const PD_NOPAGENUMS = &H8
  15160. Public Const PD_COLLATE = &H10
  15161. Public Const PD_PRINTTOFILE = &H20
  15162. Public Const PD_PRINTSETUP = &H40
  15163. Public Const PD_NOWARNING = &H80
  15164. Public Const PD_RETURNDC = &H100
  15165. Public Const PD_RETURNIC = &H200
  15166. Public Const PD_RETURNDEFAULT = &H400
  15167. Public Const PD_SHOWHELP = &H800
  15168. Public Const PD_ENABLEPRINTHOOK = &H1000
  15169. Public Const PD_ENABLESETUPHOOK = &H2000
  15170. Public Const PD_ENABLEPRINTTEMPLATE = &H4000
  15171. Public Const PD_ENABLESETUPTEMPLATE = &H8000
  15172. Public Const PD_ENABLEPRINTTEMPLATEHANDLE = &H10000
  15173. Public Const PD_ENABLESETUPTEMPLATEHANDLE = &H20000
  15174. Public Const PD_USEDEVMODECOPIES = &H40000
  15175. Public Const PD_USEDEVMODECOPIESANDCOLLATE = &H40000
  15176. Public Const PD_DISABLEPRINTTOFILE = &H80000
  15177. Public Const PD_HIDEPRINTTOFILE = &H100000
  15178. Public Const PD_NONETWORKBUTTON = &H200000
  15179.  
  15180. Type DEVNAMES
  15181.         wDriverOffset As Integer
  15182.         wDeviceOffset As Integer
  15183.         wOutputOffset As Integer
  15184.         wDefault As Integer
  15185. End Type
  15186.  
  15187. Public Const DN_DEFAULTPRN = &H1
  15188.  
  15189. Declare Function CommDlgExtendedError Lib "comdlg32.dll" Alias "CommDlgExtendedError" () As Long
  15190.  
  15191. Public Const WM_PSD_PAGESETUPDLG = (WM_USER)
  15192. Public Const WM_PSD_FULLPAGERECT = (WM_USER + 1)
  15193. Public Const WM_PSD_MINMARGINRECT = (WM_USER + 2)
  15194. Public Const WM_PSD_MARGINRECT = (WM_USER + 3)
  15195. Public Const WM_PSD_GREEKTEXTRECT = (WM_USER + 4)
  15196. Public Const WM_PSD_ENVSTAMPRECT = (WM_USER + 5)
  15197. Public Const WM_PSD_YAFULLPAGERECT = (WM_USER + 6)
  15198.  
  15199. Type PAGESETUPDLG
  15200.         lStructSize As Long
  15201.         hwndOwner As Long
  15202.         hDevMode As Long
  15203.         hDevNames As Long
  15204.         flags As Long
  15205.         ptPaperSize As POINTAPI
  15206.         rtMinMargin As Rect
  15207.         rtMargin As Rect
  15208.         hInstance As Long
  15209.         lCustData As Long
  15210.         lpfnPageSetupHook As Long
  15211.         lpfnPagePaintHook As Long
  15212.         lpPageSetupTemplateName As String
  15213.         hPageSetupTemplate As Long
  15214. End Type
  15215.  
  15216. Declare Function PageSetupDlg Lib "comdlg32.dll" Alias "PageSetupDlgA" (pPagesetupdlg As PAGESETUPDLG) As Long
  15217.  
  15218. Public Const PSD_DEFAULTMINMARGINS = &H0 '  default (printer's)
  15219. Public Const PSD_INWININIINTLMEASURE = &H0 '  1st of 4 possible
  15220.  
  15221. Public Const PSD_MINMARGINS = &H1 '  use caller's
  15222. Public Const PSD_MARGINS = &H2 '  use caller's
  15223. Public Const PSD_INTHOUSANDTHSOFINCHES = &H4 '  2nd of 4 possible
  15224. Public Const PSD_INHUNDREDTHSOFMILLIMETERS = &H8 '  3rd of 4 possible
  15225. Public Const PSD_DISABLEMARGINS = &H10
  15226. Public Const PSD_DISABLEPRINTER = &H20
  15227. Public Const PSD_NOWARNING = &H80 '  must be same as PD_*
  15228. Public Const PSD_DISABLEORIENTATION = &H100
  15229. Public Const PSD_RETURNDEFAULT = &H400 '  must be same as PD_*
  15230. Public Const PSD_DISABLEPAPER = &H200
  15231. Public Const PSD_SHOWHELP = &H800 '  must be same as PD_*
  15232. Public Const PSD_ENABLEPAGESETUPHOOK = &H2000 '  must be same as PD_*
  15233. Public Const PSD_ENABLEPAGESETUPTEMPLATE = &H8000 '  must be same as PD_*
  15234. Public Const PSD_ENABLEPAGESETUPTEMPLATEHANDLE = &H20000 '  must be same as PD_*
  15235. Public Const PSD_ENABLEPAGEPAINTHOOK = &H40000
  15236. Public Const PSD_DISABLEPAGEPAINTING = &H80000
  15237.  
  15238. Declare Function DdeInitialize Lib "user32" Alias "DdeInitializeA" (pidInst As Long, ByVal pfnCallback As Long, ByVal afCmd As Long, ByVal ulRes As Long) As Integer
  15239. Declare Function SetServiceBits Lib "advapi32" Alias "SetServiceBits" (ByVal hServiceStatus As Long, ByVal dwServiceBits As Long, ByVal bSetBitsOn As Boolean, ByVal bUpdateImmediately As Boolean) As Long
  15240. Declare Function CopyLZFile Lib "lz32" Alias "CopyLZFile" (ByVal n1 As Long, ByVal n2 As Long) As Long
  15241. Declare Function LZStart Lib "lz32" Alias "LZStart" () As Long
  15242. Declare Sub LZDone Lib "lz32" Alias "LZDone" ()
  15243. Declare Function mciGetYieldProc Lib "winmm" Alias "mciGetYieldProc" (ByVal mciId As Long, pdwYieldData As Long) As Long
  15244. Declare Function mciSetYieldProc Lib "winmm" Alias "mciSetYieldProc" (ByVal mciId As Long, ByVal fpYieldProc As Long, ByVal dwYieldData As Long) As Long
  15245. Declare Function midiOutGetNumDevs Lib "winmm" Alias "midiOutGetNumDevs" () As Integer
  15246. Declare Function mmioInstallIOProcA Lib "winmm" Alias "mmioInstallIOProcA" (ByVal fccIOProc As String * 4, ByVal pIOProc As Long, ByVal dwFlags As Long) As Long
  15247. Declare Function CommandLineToArgv Lib "shell32" Alias "CommandLineToArgvW" (ByVal lpCmdLine As String, pNumArgs As Integer) As Long
  15248. Declare Function IsTextUnicode Lib "advapi32" Alias "IsTextUnicode" (lpBuffer As Any, ByVal cb As Long, lpi As Long) As Long
  15249. Declare Function NotifyChangeEventLog Lib "advapi32" Alias "NotifyChangeEventLog" (ByVal hEventLog As Long, ByVal hEvent As Long) As Long
  15250. Declare Function ObjectOpenAuditAlarm Lib "advapi32" 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 Boolean, ByVal AccessGranted As Boolean, GenerateOnClose As Boolean) As Long
  15251. Declare Function SetThreadToken Lib "advapi32" Alias "SetThreadToken" (Thread As Long, ByVal Token As Long) As Long
  15252.  
  15253. Type COMMCONFIG
  15254.     dwSize As Long
  15255.     wVersion As Integer
  15256.     wReserved As Integer
  15257.     dcbx As DCB
  15258.     dwProviderSubType As Long
  15259.     dwProviderOffset As Long
  15260.     dwProviderSize As Long
  15261.     wcProviderData As Byte
  15262. End Type
  15263.  
  15264. Declare Function CommConfigDialog Lib "kernel32" Alias "CommConfigDialogA" (ByVal lpszName As String, ByVal hWnd As Long, lpCC As COMMCONFIG) As Long
  15265. 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
  15266. Declare Function DisableThreadLibraryCalls Lib "kernel32" Alias "DisableThreadLibraryCalls" (ByVal hLibModule As Long) As Long
  15267. 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
  15268. 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
  15269. Declare Function EnumResourceTypes Lib "kernel32" Alias "EnumResourceTypesA" (ByVal hModule As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  15270. Declare Function FreeEnvironmentStrings Lib "kernel32" Alias "FreeEnvironmentStringsA" (ByVal lpsz As String) As Long
  15271.  
  15272. Declare Sub FreeLibraryAndExitThread Lib "kernel32" Alias "FreeLibraryAndExitThread" (ByVal hLibModule As Long, ByVal dwExitCode As Long)
  15273. Declare Function FreeResource Lib "kernel32" Alias "FreeResource" (ByVal hResData As Long) As Long
  15274. Declare Function GetCommConfig Lib "kernel32" Alias "GetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, lpdwSize As Long) As Long
  15275. Declare Function GetCompressedFileSize Lib "kernel32" Alias "GetCompressedFileSizeA" (ByVal lpFileName As String, lpFileSizeHigh As Long) As Long
  15276. Declare Function GetDefaultCommConfig Lib "kernel32" Alias "GetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, lpdwSize As Long) As Long
  15277. Declare Function GetHandleInformation Lib "kernel32" Alias "GetHandleInformation" (ByVal hObject As Long, lpdwFlags As Long) As Long
  15278. Declare Function GetProcessHeaps Lib "kernel32" Alias "GetProcessHeaps" (ByVal NumberOfHeaps As Long, ProcessHeaps As Long) As Long
  15279. Declare Function GetProcessWorkingSetSize Lib "kernel32" Alias "GetProcessWorkingSetSize" (ByVal hProcess As Long, lpMinimumWorkingSetSize As Long, lpMaximumWorkingSetSize As Long) As Long
  15280. 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
  15281. Declare Function GetSystemTimeAdjustment Lib "kernel32" Alias "GetSystemTimeAdjustment" (lpTimeAdjustment As Long, lpTimeIncrement As Long, lpTimeAdjustmentDisabled As Boolean) As Long
  15282.  
  15283. Declare Function GlobalCompact Lib "kernel32" Alias "GlobalCompact" (ByVal dwMinFree As Long) As Long
  15284. Declare Sub GlobalFix Lib "kernel32" Alias "GlobalFix" (ByVal hMem As Long)
  15285. Declare Sub GlobalUnfix Lib "kernel32" Alias "GlobalUnfix" (ByVal hMem As Long)
  15286. Declare Function GlobalWire Lib "kernel32" Alias "GlobalWire" (ByVal hMem As Long) As Long
  15287. Declare Function GlobalUnWire Lib "kernel32" Alias "GlobalUnWire" (ByVal hMem As Long) As Long
  15288.  
  15289. Declare Function IsBadCodePtr Lib "kernel32" Alias "IsBadCodePtr" (ByVal lpfn As Long) As Long
  15290. Declare Function LocalCompact Lib "kernel32" Alias "LocalCompact" (ByVal uMinFree As Long) As Long
  15291. Declare Function LocalShrink Lib "kernel32" Alias "LocalShrink" (ByVal hMem As Long, ByVal cbNewSize As Long) As Long
  15292. 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
  15293. 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
  15294.  
  15295. Declare Function SetCommConfig Lib "kernel32" Alias "SetCommConfig" (ByVal hCommDev As Long, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long
  15296. Declare Function SetDefaultCommConfig Lib "kernel32" Alias "SetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, ByVal dwSize As Long) As Long
  15297. Declare Sub SetFileApisToANSI Lib "kernel32" Alias "SetFileApisToANSI" ()
  15298. Declare Function SetHandleInformation Lib "kernel32" Alias "SetHandleInformation" (ByVal hObject As Long, ByVal dwMask As Long, ByVal dwFlags As Long) As Long
  15299. Declare Function SetProcessWorkingSetSize Lib "kernel32" Alias "SetProcessWorkingSetSize" (ByVal hProcess As Long, ByVal dwMinimumWorkingSetSize As Long, ByVal dwMaximumWorkingSetSize As Long) As Long
  15300.  
  15301. Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  15302. Declare Function lstrcpyn Lib "kernel32" Alias "lstrcpynA" (ByVal lpString1 As String, ByVal lpString2 As String, ByVal iMaxLength As Long) As Long
  15303. Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
  15304. Declare Function SetSystemTimeAdjustment Lib "kernel32" Alias "SetSystemTimeAdjustment" (ByVal dwTimeAdjustment As Long, ByVal bTimeAdjustmentDisabled As Boolean) As Long
  15305. Declare Function SetThreadAffinityMask Lib "kernel32" Alias "SetThreadAffinityMask" (ByVal hThread As Long, ByVal dwThreadAffinityMask As Long) As Long
  15306. Declare Function SetUnhandledExceptionFilter Lib "kernel32" Alias "SetUnhandledExceptionFilter" (ByVal lpTopLevelExceptionFilter As Long) As Long
  15307. Declare Function SystemTimeToTzSpecificLocalTime Lib "kernel32" Alias "SystemTimeToTzSpecificLocalTime" (lpTimeZoneInformation As TIME_ZONE_INFORMATION, lpUniversalTime As SYSTEMTIME, lpLocalTime As SYSTEMTIME) As Long
  15308. 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
  15309.  
  15310. Type PIXELFORMATDESCRIPTOR
  15311.     nSize As Integer
  15312.     nVersion As Integer
  15313.     dwFlags As Long
  15314.     iPixelType As Byte
  15315.     cColorBits As Byte
  15316.     cRedBits As Byte
  15317.     cRedShift As Byte
  15318.     cGreenBits As Byte
  15319.     cGreenShift As Byte
  15320.     cBlueBits As Byte
  15321.     cBlueShift As Byte
  15322.     cAlphaBits As Byte
  15323.     cAlphaShift As Byte
  15324.     cAccumBits As Byte
  15325.     cAccumRedBits As Byte
  15326.     cAccumGreenBits As Byte
  15327.     cAccumBlueBits As Byte
  15328.     cAccumAlphaBits As Byte
  15329.     cDepthBits As Byte
  15330.     cStencilBits As Byte
  15331.     cAuxBuffers As Byte
  15332.     iLayerType As Byte
  15333.     bReserved As Byte
  15334.     dwLayerMask As Long
  15335.     dwVisibleMask As Long
  15336.     dwDamageMask As Long
  15337. End Type
  15338.  
  15339. Declare Function ChoosePixelFormat Lib "gdi32" Alias "ChoosePixelFormat" (ByVal hDC As Long, pPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long
  15340. Declare Function CreateDIBSection Lib "gdi32" Alias "CreateDIBSection" (ByVal hDC As Long, pBitmapInfo As BITMAPINFO, ByVal un As Long, ByVal lplpVoid As Long, ByVal handle As Long, ByVal dw As Long) As Long
  15341. Declare Function DescribePixelFormat Lib "gdi32" Alias "DescribePixelFormat" (ByVal hDC As Long, ByVal n As Long, ByVal un As Long, lpPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long
  15342. Declare Function EndDoc Lib "gdi32" Alias "EndDoc" (ByVal hDC As Long) As Long
  15343. 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
  15344. Declare Function EnumMetaFile Lib "gdi32" Alias "EnumMetaFile" (ByVal hDC As Long, ByVal hMetafile As Long, ByVal lpMFEnumProc As Long, ByVal lParam As Long) As Long
  15345. Declare Function EnumObjects Lib "gdi32" Alias "EnumObjects" (ByVal hDC As Long, ByVal n As Long, ByVal lpGOBJEnumProc As Long, lpVoid As Any) As Long
  15346.  
  15347. Declare Function FixBrushOrgEx Lib "gdi32" Alias "FixBrushOrgEx" (ByVal hDC As Long, ByVal n1 As Long, ByVal n2 As Long, lpPoint As POINTAPI) As Long
  15348. Declare Function GetBrushOrgEx Lib "gdi32" Alias "GetBrushOrgEx" (ByVal hDC As Long, lpPoint As POINTAPI) As Long
  15349. Declare Function GetCharWidth Lib "gdi32" Alias "GetCharWidthA" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, lpn As Long) As Long
  15350. Declare Function GetDIBColorTable Lib "gdi32" Alias "GetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pRGBQuad As RGBQUAD) As Long
  15351. Declare Function GetPixelFormat Lib "gdi32" Alias "GetPixelFormat" (ByVal hDC As Long) As Long
  15352. 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
  15353.  
  15354. Declare Function SetAbortProc Lib "gdi32" Alias "SetAbortProc" (ByVal hDC As Long, ByVal lpAbortProc As Long) As Long
  15355. Declare Function SetDIBColorTable Lib "gdi32" Alias "SetDIBColorTable" (ByVal hDC As Long, ByVal un1 As Long, ByVal un2 As Long, pcRGBQuad As RGBQUAD) As Long
  15356. Declare Function SetPixelFormat Lib "gdi32" Alias "SetPixelFormat" (ByVal hDC As Long, ByVal n As Long, pcPixelFormatDescriptor As PIXELFORMATDESCRIPTOR) As Long
  15357. Declare Function SwapBuffers Lib "gdi32" Alias "SwapBuffers" (ByVal hDC As Long) As Long
  15358. 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
  15359. 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
  15360. 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
  15361. 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
  15362. Declare Function GetStringTypeW Lib "kernel32" Alias "GetStringTypeW" (ByVal dwInfoType As Long, ByVal lpSrcStr As String, ByVal cchSrc As Long, lpCharType As Integer) As Long
  15363. Declare Function IsDBCSLeadByte Lib "kernel32" Alias "IsDBCSLeadByte" (ByVal TestChar As Byte) As Long
  15364. Declare Function SetLocaleInfo Lib "kernel32" Alias "SetLocaleInfoA" (ByVal Locale As Long, ByVal LCType As Long, ByVal lpLCData As String) As Long
  15365.  
  15366. Declare Function DeletePrinter Lib "winspool.drv" Alias "DeletePrinter" (ByVal hPrinter As Long) As Long
  15367.  
  15368. Declare Function FindClosePrinterChangeNotification Lib "winspool.drv" Alias "FindClosePrinterChangeNotification" (ByVal hChange As Long) As Long
  15369. Declare Function FindFirstPrinterChangeNotification Lib "winspool.drv" Alias "FindFirstPrinterChangeNotification" (ByVal hPrinter As Long, ByVal fdwFlags As Long, ByVal fdwOptions As Long, ByVal pPrinterNotifyOptions As String) As Long
  15370. Declare Function FindNextPrinterChangeNotification Lib "winspool.drv" Alias "FindNextPrinterChangeNotification" (ByVal hChange As Long, pdwChange As Long, ByVal pvReserved As String, ByVal ppPrinterNotifyInfo As Long) As Long
  15371. Declare Function GetPrinter Lib "winspool.drv" Alias "GetPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, pPrinter As Any, ByVal cbBuf As Long, pcbNeeded As Long) As Long
  15372. 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
  15373.  
  15374. 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
  15375. 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
  15376. Declare Function CascadeWindows Lib "user32" Alias "CascadeWindows" (ByVal hwndParent As Long, ByVal wHow As Long, ByVal lpRect As RECT, ByVal cKids As Long, lpkids As Long) As Integer
  15377. 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
  15378. 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
  15379. Declare Function ChildWindowFromPoint Lib "user32" Alias "ChildWindowFromPoint" (ByVal hWndParent As Long, ByVal pt As POINTAPI) As Long
  15380. Declare Function ChildWindowFromPointEx Lib "user32" Alias "ChildWindowFromPointEx" (ByVal hWnd As Long, ByVal pt As POINTAPI, ByVal un As Long) As Long
  15381. Declare Function CloseDesktop Lib "user32" Alias "CloseDesktop" (ByVal hDesktop As Long) As Long
  15382. Declare Function CloseWindowStation Lib "user32" Alias "CloseWindowStation" (ByVal hWinSta As Long) As Long
  15383.  
  15384. 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
  15385. 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
  15386. 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
  15387. 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
  15388. Declare Function CreateIconFromResource Lib "user32" Alias "CreateIconFromResource" (presbits As Byte, ByVal dwResSize As Long, ByVal fIcon As Boolean, ByVal dwVer As Long) As Long
  15389. 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
  15390.  
  15391. Declare Function DragDetect Lib "user32" Alias "DragDetect" (ByVal hWnd As Long, ByVal pt As POINTAPI) As Long
  15392. 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
  15393. Declare Function DrawAnimatedRects Lib "user32" Alias "DrawAnimatedRects" (ByVal hwnd As Long, ByVal idAni As Long, lprcFrom As Rect, lprcTo As Rect) As Long
  15394. Declare Function DrawCaption Lib "user32" Alias "DrawCaption" (ByVal hWnd As Long, ByVal hDC As Long, pcRect As Rect, ByVal un As Long) As Long
  15395. Declare Function DrawEdge Lib "user32" Alias "DrawEdge" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As Long
  15396. Declare Function DrawFrameControl Lib "user32" Alias "DrawFrameControl" (ByVal hDC As Long, lpRect As RECT, ByVal un1 As Long, ByVal un2 As Long) As Long
  15397. 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
  15398. 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
  15399.  
  15400. Type DRAWTEXTPARAMS
  15401.     cbSize As Long
  15402.     iTabLength As Long
  15403.     iLeftMargin As Long
  15404.     iRightMargin As Long
  15405.     uiLengthDrawn As Long
  15406. End Type
  15407.  
  15408. 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
  15409. Declare Function EnumChildWindows Lib "user32" Alias "EnumChildWindows" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  15410. Declare Function EnumDesktops Lib "user32" Alias "EnumDesktopsA" (ByVal hwinsta As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  15411. Declare Function EnumDesktopWindows Lib "user32" Alias "EnumDesktopWindows" (ByVal hDesktop As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long
  15412. Declare Function EnumPropsEx Lib "user32" Alias "EnumPropsExA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  15413. Declare Function EnumProps Lib "user32" Alias "EnumPropsA" (ByVal hWnd As Long, ByVal lpEnumFunc As Long) As Long
  15414. Declare Function EnumThreadWindows Lib "user32" Alias "EnumThreadWindows" (ByVal dwThreadId As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long
  15415. Declare Function EnumWindowStations Lib "user32" Alias "EnumWindowStationsA" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
  15416. Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
  15417.  
  15418. Declare Function GetKeyboardLayoutList Lib "user32" Alias "GetKeyboardLayoutList" (ByVal nBuff As Long, lpList As Long) As Long
  15419. Declare Function GetKeyboardLayout Lib "user32" Alias "GetKeyboardLayout" (ByVal dwLayout As Long) As Long
  15420. Declare Function GetMenuContextHelpId Lib "user32" Alias "GetMenuContextHelpId" (ByVal hMenu As Long) As Long
  15421. Declare Function GetMenuDefaultItem Lib "user32" Alias "GetMenuDefaultItem" (ByVal hMenu As Long, ByVal fByPos As Long, ByVal gmdiFlags As Long) As Long
  15422.  
  15423. Type MENUITEMINFO
  15424.     cbSize As Long
  15425.     fMask As Long
  15426.     fType As Long
  15427.     fState As Long
  15428.     wID As Long
  15429.     hSubMenu As Long
  15430.     hbmpChecked As Long
  15431.     hbmpUnchecked As Long
  15432.     dwItemData As Long
  15433.     dwTypeData As String
  15434.     cch As Long
  15435. End Type
  15436.  
  15437. Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo As MENUITEMINFO) As Long
  15438. Declare Function GetMenuItemRect Lib "user32" Alias "GetMenuItemRect" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal uItem As Long, lprcItem As RECT) As Long
  15439.  
  15440. Type SCROLLINFO
  15441.     cbSize As Long
  15442.     fMask As Long
  15443.     nMin As Long
  15444.     nMax As Long
  15445.     nPage As Long
  15446.     nPos As Long
  15447.     nTrackPos As Long
  15448. End Type
  15449.  
  15450. Declare Function GetScrollInfo Lib "user32" Alias "GetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpScrollInfo As SCROLLINFO) As Long
  15451. Declare Function GetSysColorBrush Lib "user32" Alias "GetSysColorBrush" (ByVal nIndex As Long) As Long
  15452. 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
  15453. Declare Function GetWindowContextHelpId Lib "user32" Alias "GetWindowContextHelpId" (ByVal hWnd As Long) As Long
  15454. Declare Function GetWindowRgn Lib "user32" Alias "GetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long) As Long
  15455. 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
  15456. Declare Function InsertMenuItem Lib "user32" Alias "InsertMenuItemA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, ByVal lpcMenuItemInfo As MENUITEMINFO) As Long
  15457. Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
  15458. 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
  15459. Declare Function LookupIconIdFromDirectoryEx Lib "user32" Alias "LookupIconIdFromDirectoryEx" (presbits As Byte, ByVal fIcon As Boolean, ByVal cxDesired As Long, ByVal cyDesired As Long, ByVal Flags As Long) As Long
  15460. Declare Function MapVirtualKeyEx Lib "user32" Alias "MapVirtualKeyExA" (ByVal uCode As Long, ByVal uMapType As Long, ByVal dwhkl As Long) As Long
  15461. Declare Function MenuItemFromPoint Lib "user32" Alias "MenuItemFromPoint" (ByVal hWnd As Long, ByVal hMenu As Long, ByVal ptScreen As POINTAPI) As Long
  15462.  
  15463. Type MSGBOXPARAMS
  15464.     cbSize As Long
  15465.     hwndOwner As Long
  15466.     hInstance As Long
  15467.     lpszText As String
  15468.     lpszCaption As String
  15469.     dwStyle As Long
  15470.     lpszIcon As String
  15471.     dwContextHelpId As Long
  15472.     lpfnMsgBoxCallback As Long
  15473.     dwLanguageId As Long
  15474. End Type
  15475.  
  15476. Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long
  15477. Declare Function OpenDesktop Lib "user32" Alias "OpenDesktopA" (ByVal lpszDesktop As String, ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long
  15478. Declare Function OpenInputDesktop Lib "user32" Alias "OpenInputDesktop" (ByVal dwFlags As Long, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long
  15479. Declare Function OpenWindowStation Lib "user32" Alias "OpenWindowStationA" (ByVal lpszWinSta As String, ByVal fInherit As Boolean, ByVal dwDesiredAccess As Long) As Long
  15480. Declare Function PaintDesktop Lib "user32" Alias "PaintDesktop" (ByVal hdc As Long) As Long
  15481.  
  15482. Type WNDCLASSEX
  15483.     cbSize As Long
  15484.     style As Long
  15485.     lpfnWndProc As Long
  15486.     cbClsExtra As Long
  15487.     cbWndExtra As Long
  15488.     hInstance As Long
  15489.     hIcon As Long
  15490.     hCursor As Long
  15491.     hbrBackground As Long
  15492.     lpszMenuName As String
  15493.     lpszClassName As String
  15494.     hIconSm As Long
  15495. End Type
  15496.  
  15497. Declare Function RegisterClassEx Lib "user32" Alias "RegisterClassExA" (pcWndClassEx As WNDCLASSEX) As Integer
  15498. Declare Function SetMenuContextHelpId Lib "user32" Alias "SetMenuContextHelpId" (ByVal hMenu As Long, ByVal dw As Long) As Long
  15499. Declare Function SetMenuDefaultItem Lib "user32" Alias "SetMenuDefaultItem" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPos As Long) As Long
  15500. Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, lpcMenuItemInfo As MENUITEMINFO) As Long
  15501. Declare Function SetMessageExtraInfo Lib "user32" Alias "SetMessageExtraInfo" (ByVal lParam As Long) As Long
  15502. Declare Function SetMessageQueue Lib "user32" Alias "SetMessageQueue" (ByVal cMessagesMax As Long) As Long
  15503. Declare Function SetProcessWindowStation Lib "user32" Alias "SetProcessWindowStation" (ByVal hWinSta As Long) As Long
  15504. Declare Function SetScrollInfo Lib "user32" Alias "SetScrollInfo" (ByVal hWnd As Long, ByVal n As Long, lpcScrollInfo As SCROLLINFO, ByVal bool As Boolean) As Long
  15505. Declare Function SetSystemCursor Lib "user32" Alias "SetSystemCursor" (ByVal hcur As Long, ByVal id As Long) As Long
  15506. Declare Function SetThreadDesktop Lib "user32" Alias "SetThreadDesktop" (ByVal hDesktop As Long) As Long
  15507. 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
  15508. Declare Function SetUserObjectInformation Lib "user32" Alias "SetUserObjectInformationA" (ByVal hObj As Long, ByVal nIndex As Long, pvInfo As Any, ByVal nLength As Long) As Long
  15509. Declare Function SetWindowContextHelpId Lib "user32" Alias "SetWindowContextHelpId" (ByVal hWnd As Long, ByVal dw As Long) As Long
  15510. Declare Function SetWindowRgn Lib "user32" Alias "SetWindowRgn" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
  15511. Declare Function SetWindowsHook Lib "user32" Alias "SetWindowsHookA" (ByVal nFilterType As Long, ByVal pfnFilterProc As Long) As Long
  15512. 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
  15513. Declare Function ShowWindowAsync Lib "user32" Alias "ShowWindowAsync" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long
  15514. Declare Function SwitchDesktop Lib "user32" Alias "SwitchDesktop" (ByVal hDesktop As Long) As Long
  15515. Declare Function TileWindows Lib "user32" Alias "TileWindows" (ByVal hwndParent As Long, ByVal wHow As Long, lpRect As Rect, ByVal cKids As Long, lpKids As Long) As Integer
  15516. 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
  15517.  
  15518. Type TPMPARAMS
  15519.     cbSize As Long
  15520.     rcExclude As Rect
  15521. End Type
  15522.  
  15523. 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
  15524. Declare Function UnhookWindowsHook Lib "user32" Alias "UnhookWindowsHook" (ByVal nCode As Long, ByVal pfnFilterProc As Long) As Long
  15525. Declare Function VkKeyScanEx Lib "user32" Alias "VkKeyScanExA" (ByVal ch As Byte, ByVal dwhkl As Long) As Integer
  15526. Declare Function WNetGetUniversalName Lib "mpr" Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long
  15527. Declare Function WNetGetUser Lib "mpr" Alias "WNetGetUserA" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
  15528. Declare Function WNetOpenEnum Lib "mpr" Alias "WNetOpenEnumA" (ByVal dwScope As Long, ByVal dwType As Long, ByVal dwUsage As Long, lpNetResource As NETRESOURCE, lphEnum As Long) As Long
  15529.  
  15530. Public Const INVALID_HANDLE_VALUE = -1
  15531.  
  15532. 'DrawEdge Constants
  15533. Public Const BDR_RAISEDOUTER = &H1
  15534. Public Const BDR_SUNKENOUTER = &H2
  15535. Public Const BDR_RAISEDINNER = &H4
  15536. Public Const BDR_SUNKENINNER = &H8
  15537.  
  15538. Public Const BDR_OUTER = &H3
  15539. Public Const BDR_INNER = &HC
  15540. Public Const BDR_RAISED = &H5
  15541. Public Const BDR_SUNKEN = &HA
  15542.  
  15543. Public Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER)
  15544. Public Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER)
  15545. Public Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
  15546. Public Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER)
  15547.  
  15548. Public Const BF_LEFT = &H1
  15549. Public Const BF_TOP = &H2
  15550. Public Const BF_RIGHT = &H4
  15551. Public Const BF_BOTTOM = &H8
  15552.  
  15553. Public Const BF_TOPLEFT = (BF_TOP Or BF_LEFT)
  15554. Public Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT)
  15555. Public Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT)
  15556. Public Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT)
  15557. Public Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
  15558.  
  15559. Public Const BF_DIAGONAL = &H10
  15560.  
  15561. ' For diagonal lines, the BF_RECT flags specify the end point of
  15562. ' the vector bounded by the rectangle parameter.
  15563. Public Const BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL Or BF_TOP Or BF_RIGHT)
  15564. Public Const BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL Or BF_TOP Or BF_LEFT)
  15565. Public Const BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL Or BF_BOTTOM Or BF_LEFT)
  15566. Public Const BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL Or BF_BOTTOM Or BF_RIGHT)
  15567.  
  15568. Public Const BF_MIDDLE = &H800    ' Fill in the middle.
  15569. Public Const BF_SOFT = &H1000     ' Use for softer buttons.
  15570. Public Const BF_ADJUST = &H2000   ' Calculate the space left over.
  15571. Public Const BF_FLAT = &H4000     ' For flat rather than 3-D borders.
  15572. Public Const BF_MONO = &H8000     ' For monochrome borders.
  15573.  
  15574.