home *** CD-ROM | disk | FTP | other *** search
/ Freelog 15 / FREELOG 15.ISO / WebMaster / Perl / PERL5106.ZIP / perl5 / Lib / NT.PH < prev    next >
Encoding:
Text File  |  1996-01-18  |  5.5 KB  |  198 lines

  1. # (c) 1995 Microsoft Corporation. All rights reserved
  2. #          Developed by hip communications inc., http://info.hip.com/info
  3.  
  4. # WYT 1995-05-18 Wei-Yuen Tan (wyt@hip.com)
  5. # reg.ph - macro definitions for NT Registry Extensions
  6. #          auto-extracted from windows.h, winreg.h, winnt.h
  7. #          EDIT AT YOUR OWN RISK!
  8.  
  9. eval '
  10.  
  11. # miscellaneous
  12.  
  13. sub NULL { (0);}
  14. sub WIN31_CLASS { &NULL;}
  15.  
  16. # eventlog read flags
  17.  
  18. sub EVENTLOG_SEQUENTIAL_READ {0x0001;}
  19. sub EVENTLOG_SEEK_READ {0x0002;}
  20. sub EVENTLOG_FORWARDS_READ {0x0004;}
  21. sub EVENTLOG_BACKWARDS_READ {0x0008;}
  22.  
  23. # event types
  24.  
  25. sub EVENTLOG_SUCCESS {0x0000;}
  26. sub EVENTLOG_ERROR_TYPE {0x0001;}
  27. sub EVENTLOG_WARNING_TYPE {0x0002;}
  28. sub EVENTLOG_INFORMATION_TYPE {0x0004;}
  29. sub EVENTLOG_AUDIT_SUCCESS {0x0008;}
  30. sub EVENTLOG_AUDIT_FAILURE {0x0010;}
  31.  
  32. # write flags for auditing for paired events.
  33.  
  34. sub EVENTLOG_START_PAIRED_EVENT {0x0001;}
  35. sub EVENTLOG_END_PAIRED_EVENT {0x0002;}
  36. sub EVENTLOG_END_ALL_PAIRED_EVENTS {0x0004;}
  37. sub EVENTLOG_PAIRED_EVENT_ACTIVE {0x0008;}
  38. sub EVENTLOG_PAIRED_EVENT_INACTIVE {0x0010;}
  39.  
  40. # predefined registry handles.
  41.  
  42. sub HKEY_CLASSES_ROOT {( 0x80000000 );}
  43. sub HKEY_CURRENT_USER {( 0x80000001 );}
  44. sub HKEY_LOCAL_MACHINE {( 0x80000002 );}
  45. sub HKEY_USERS {( 0x80000003 );}
  46. sub HKEY_PERFORMANCE_DATA {( 0x80000004 );}
  47. sub HKEY_PERFORMANCE_TEXT {( 0x80000050 );}
  48. sub HKEY_PERFORMANCE_NLSTEXT {( 0x80000060 );}
  49.  
  50. # registry key access modes.
  51.  
  52. sub DELETE {(0x00010000);}
  53. sub READ_CONTROL {(0x00020000);}
  54. sub WRITE_DAC {(0x00040000);}
  55. sub WRITE_OWNER {(0x00080000);}
  56. sub SYNCHRONIZE {(0x00100000);}
  57. sub STANDARD_RIGHTS_REQUIRED {(0x000F0000);}
  58. sub STANDARD_RIGHTS_READ {( &READ_CONTROL);}
  59. sub STANDARD_RIGHTS_WRITE {( &READ_CONTROL);}
  60. sub STANDARD_RIGHTS_EXECUTE {( &READ_CONTROL);}
  61. sub STANDARD_RIGHTS_ALL {(0x001F0000);}
  62. sub SPECIFIC_RIGHTS_ALL {(0x0000FFFF);}
  63. sub ACCESS_SYSTEM_SECURITY {(0x01000000);}
  64. sub MAXIMUM_ALLOWED {(0x02000000);}
  65. sub GENERIC_READ {(0x80000000);}
  66. sub GENERIC_WRITE {(0x40000000);}
  67. sub GENERIC_EXECUTE {(0x20000000);}
  68. sub GENERIC_ALL {(0x10000000);}
  69. sub KEY_QUERY_VALUE {(0x0001);}
  70. sub KEY_SET_VALUE {(0x0002);}
  71. sub KEY_CREATE_SUB_KEY {(0x0004);}
  72. sub KEY_ENUMERATE_SUB_KEYS {(0x0008);}
  73. sub KEY_NOTIFY {(0x0010);}
  74. sub KEY_CREATE_LINK {(0x0020);}
  75. sub KEY_READ {(( &STANDARD_RIGHTS_READ |  &KEY_QUERY_VALUE |  &KEY_ENUMERATE_SUB_KEYS |  &KEY_NOTIFY) & (~ &SYNCHRONIZE));}
  76. sub KEY_WRITE {(( &STANDARD_RIGHTS_WRITE |  &KEY_SET_VALUE |  &KEY_CREATE_SUB_KEY) & (~ &SYNCHRONIZE));}
  77. sub KEY_EXECUTE {(( &KEY_READ) & (~ &SYNCHRONIZE));}
  78. sub KEY_ALL_ACCESS {(( &STANDARD_RIGHTS_ALL |  &KEY_QUERY_VALUE |  &KEY_SET_VALUE |  &KEY_CREATE_SUB_KEY |  &KEY_ENUMERATE_SUB_KEYS |  &KEY_NOTIFY |  &KEY_CREATE_LINK) & (~ &SYNCHRONIZE));}
  79.  
  80. # registry key creation options
  81.  
  82. sub REG_OPTION_RESERVED {(0x00000000);}
  83. sub REG_OPTION_NON_VOLATILE {(0x00000000);}
  84. sub REG_OPTION_VOLATILE {(0x00000001);}
  85. sub REG_OPTION_CREATE_LINK {(0x00000002);}
  86. sub REG_OPTION_BACKUP_RESTORE {(0x00000004);}
  87. sub REG_LEGAL_OPTION {( ®_OPTION_RESERVED |  ®_OPTION_NON_VOLATILE |  ®_OPTION_VOLATILE |  ®_OPTION_CREATE_LINK |  ®_OPTION_BACKUP_RESTORE);}
  88.  
  89. # miscellaneous registry stuff.
  90.  
  91. sub REG_CREATED_NEW_KEY {(0x00000001);}
  92. sub REG_OPENED_EXISTING_KEY {(0x00000002);}
  93. sub REG_WHOLE_HIVE_VOLATILE {(0x00000001);}
  94. sub REG_REFRESH_HIVE {(0x00000002);}
  95.  
  96. # registry data types
  97.  
  98. sub REG_NONE {( 0 );}
  99. sub REG_SZ {( 1 );}
  100. sub REG_EXPAND_SZ {( 2 );}
  101. sub REG_BINARY {( 3 );}
  102. sub REG_DWORD {( 4 );}
  103. sub REG_DWORD_LITTLE_ENDIAN {( 4 );}
  104. sub REG_DWORD_BIG_ENDIAN {( 5 );}
  105. sub REG_LINK {( 6 );}
  106. sub REG_MULTI_SZ {( 7 );}
  107. sub REG_RESOURCE_LIST {( 8 );}
  108. sub REG_FULL_RESOURCE_DESCRIPTOR {( 9 );}
  109. sub REG_RESOURCE_REQUIREMENTS_LIST {( 10 );}
  110.  
  111. # OLE Automation data types.
  112.  
  113. sub VT_EMPTY {0;}
  114. sub VT_NULL {1;}
  115. sub VT_I2 {2;}
  116. sub VT_I4 {3;}
  117. sub VT_R4 {4;}
  118. sub VT_R8 {5;}
  119. sub VT_CY {6;}
  120. sub VT_DATE {7;}
  121. sub VT_BSTR {8;}
  122. sub VT_DISPATCH {9;}
  123. sub VT_ERROR {10;}
  124. sub VT_BOOL {11;}
  125. sub VT_VARIANT {12;}
  126. sub VT_UNKNOWN {13;}
  127. sub VT_I1 {16;}
  128. sub VT_UI1 {17;}
  129. sub VT_UI2 {18;}
  130. sub VT_UI4 {19;}
  131. sub VT_I8 {20;}
  132. sub VT_UI8 {21;}
  133. sub VT_INT {22;}
  134. sub VT_UINT {23;}
  135. sub VT_VOID {24;}
  136. sub VT_HRESULT {25;}
  137. sub VT_PTR {26;}
  138. sub VT_SAFEARRAY {27;}
  139. sub VT_CARRAY {28;}
  140. sub VT_USERDEFINED {29;}
  141. sub VT_LPSTR {30;}
  142. sub VT_LPWSTR {31;}
  143. sub VT_FILETIME {64;}
  144. sub VT_BLOB {65;}
  145. sub VT_STREAM {66;}
  146. sub VT_STORAGE {67;}
  147. sub VT_STREAMED_OBJECT {68;}
  148. sub VT_STORED_OBJECT {69;}
  149. sub VT_BLOB_OBJECT {70;}
  150. sub VT_CF {71;}
  151. sub VT_CLSID {72;}
  152.  
  153. @supportedTypes = (
  154.     &VT_UI1,
  155.     &VT_I2,
  156.     &VT_I4,
  157.     &VT_R4,
  158.     &VT_R8,
  159.     &VT_DATE,
  160.     &VT_SAFEARRAY,
  161.     &VT_BSTR,
  162.     &VT_CY,
  163.     &VT_EMPTY,
  164.     &VT_ERROR,
  165.     &VT_DISPATCH,
  166.     &VT_VARIANT, 
  167.     &VT_UNKNOWN,
  168.     &VT_USERDEFINED,
  169.     &VT_BOOL,
  170.     );
  171.  
  172. sub Win32OLESupportedType {
  173.     my( $type ) = @_;
  174.     scalar( grep( do { $type == $_ }, @supportedTypes ) );
  175. }
  176.  
  177. # Typelib
  178.  
  179. sub TKIND_ENUM {0;}
  180. sub TKIND_RECORD { &TKIND_ENUM + 1;}
  181. sub TKIND_MODULE { &TKIND_RECORD + 1;}
  182. sub TKIND_INTERFACE { &TKIND_MODULE + 1;}
  183. sub TKIND_DISPATCH { &TKIND_INTERFACE + 1;}
  184. sub TKIND_COCLASS { &TKIND_DISPATCH + 1;}
  185. sub TKIND_ALIAS { &TKIND_COCLASS + 1;}
  186. sub TKIND_UNION { &TKIND_ALIAS + 1;}
  187. sub TKIND_MAX { &TKIND_UNION + 1;}
  188.  
  189. # security information
  190.  
  191. sub OWNER_SECURITY_INFORMATION {(0x00000001);}
  192. sub GROUP_SECURITY_INFORMATION {(0x00000002);}
  193. sub DACL_SECURITY_INFORMATION {(0x00000004);}
  194. sub SACL_SECURITY_INFORMATION {(0x00000008);}
  195. 1;
  196.  
  197. ';
  198.