home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 9 Archive / 09-Archive.zip / unzip540.zip / win32 / rsxntwin.h < prev    next >
C/C++ Source or Header  |  1998-02-18  |  5KB  |  156 lines

  1. /* rsxntwin.h
  2.  *
  3.  * fills some gaps in the rsxnt 1.3 win32 header files (<windows.h>) that are
  4.  * required for compiling Info-ZIP sources for Win NT / Win 95
  5.  */
  6.  
  7. #ifdef __RSXNT__
  8. #if !defined (_RSXNTWIN_H)
  9. #define _RSXNTWIN_H
  10.  
  11. #ifdef TFUNCT   /* TFUNCT is undefined when MSSDK headers are used */
  12.  
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16.  
  17. #define PASCAL __stdcall
  18.  
  19. #define ANYSIZE_ARRAY 1
  20.  
  21. #ifndef TIME_ZONE_ID_UNKNOWN
  22. #  define TIME_ZONE_ID_UNKNOWN  0
  23. #endif
  24.  
  25. #define FILE_ATTRIBUTE_HIDDEN   0x00000002
  26. #define FILE_ATTRIBUTE_SYSTEM   0x00000004
  27.  
  28. #define FILE_SHARE_DELETE       0x00000004
  29.  
  30. #define FILE_PERSISTENT_ACLS    0x00000008
  31.  
  32. #define HFILE_ERROR        ((HFILE)-1)
  33.  
  34. #define FS_PERSISTENT_ACLS      FILE_PERSISTENT_ACLS
  35.  
  36.  
  37. BOOL WINAPI DosDateTimeToFileTime(WORD, WORD, LPFILETIME);
  38.  
  39.  
  40. #ifndef SetVolumeLabel
  41. #define SetVolumeLabel TFUNCT(SetVolumeLabel)
  42. #endif
  43. BOOL WINAPI SetVolumeLabel(LPCTSTR, LPCTSTR);
  44.  
  45.  
  46. #ifndef GetDriveType
  47. #define GetDriveType TFUNCT(GetDriveType)
  48. #endif
  49. DWORD GetDriveType(LPCTSTR);
  50.  
  51. #define DRIVE_UNKNOWN     0
  52. #define DRIVE_REMOVABLE   2
  53. #define DRIVE_FIXED       3
  54. #define DRIVE_REMOTE      4
  55. #define DRIVE_CDROM       5
  56. #define DRIVE_RAMDISK     6
  57.  
  58. #ifndef SearchPath
  59. #define SearchPath TFUNCT(SearchPath)
  60. #endif
  61. BOOL WINAPI SearchPath(LPCTSTR, LPCTSTR, LPCTSTR, UINT, LPTSTR, LPTSTR *);
  62.  
  63. #define ERROR_SUCCESS                   0
  64. #define ERROR_INSUFFICIENT_BUFFER       122
  65.  
  66. LONG WINAPI InterlockedExchange(LPLONG, LONG);
  67.  
  68. #define ACCESS_SYSTEM_SECURITY          0x01000000L
  69.  
  70. typedef PVOID PSECURITY_DESCRIPTOR;
  71. typedef PVOID PSID;
  72. typedef struct _ACL {
  73.     BYTE  AclRevision;
  74.     BYTE  Sbz1;
  75.     WORD   AclSize;
  76.     WORD   AceCount;
  77.     WORD   Sbz2;
  78. } ACL;
  79. typedef ACL *PACL;
  80.  
  81. typedef struct _LUID {
  82.     DWORD LowPart;
  83.     LONG HighPart;
  84. } LUID, *PLUID;
  85.  
  86. typedef struct _LUID_AND_ATTRIBUTES {
  87.     LUID Luid;
  88.     DWORD Attributes;
  89.     } LUID_AND_ATTRIBUTES, * PLUID_AND_ATTRIBUTES;
  90.  
  91. typedef struct _TOKEN_PRIVILEGES {
  92.     DWORD PrivilegeCount;
  93.     LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
  94. } TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES;
  95.  
  96. #define TOKEN_QUERY             0x0008
  97. #define TOKEN_ADJUST_PRIVILEGES 0x0020
  98.  
  99. BOOL WINAPI OpenProcessToken(HANDLE, DWORD, PHANDLE);
  100. BOOL WINAPI AdjustTokenPrivileges(HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD,
  101.                 PTOKEN_PRIVILEGES, PDWORD);
  102.  
  103. #ifndef LookupPrivilegeValue
  104. #define LookupPrivilegeValue TFUNCT(LookupPrivilegeValue)
  105. #endif
  106. BOOL WINAPI LookupPrivilegeValue(LPCTSTR, LPCTSTR, PLUID);
  107.  
  108. typedef DWORD SECURITY_INFORMATION, *PSECURITY_INFORMATION;
  109. #define OWNER_SECURITY_INFORMATION      0x00000001L
  110. #define GROUP_SECURITY_INFORMATION      0x00000002L
  111. #define DACL_SECURITY_INFORMATION       0x00000004L
  112. #define SACL_SECURITY_INFORMATION       0x00000008L
  113.  
  114. typedef WORD SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
  115. #define SE_DACL_PRESENT         0x0004
  116. #define SE_SACL_PRESENT         0x0010
  117.  
  118. #define SE_PRIVILEGE_ENABLED    0x00000002L
  119.  
  120. #define SE_SECURITY_NAME                  TEXT("SeSecurityPrivilege")
  121. #define SE_BACKUP_NAME                    TEXT("SeBackupPrivilege")
  122. #define SE_RESTORE_NAME                   TEXT("SeRestorePrivilege")
  123.  
  124. BOOL WINAPI GetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION,
  125.                 PSECURITY_DESCRIPTOR, DWORD, LPDWORD);
  126. BOOL WINAPI SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION,
  127.                 PSECURITY_DESCRIPTOR);
  128. BOOL WINAPI IsValidSid(PSID);
  129. BOOL WINAPI IsValidAcl(PACL);
  130. BOOL WINAPI InitializeSecurityDescriptor(PSECURITY_DESCRIPTOR);
  131. BOOL WINAPI IsValidSecurityDescriptor(PSECURITY_DESCRIPTOR);
  132. DWORD WINAPI GetSecurityDescriptorLength(PSECURITY_DESCRIPTOR);
  133. BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,
  134.                 PSECURITY_DESCRIPTOR_CONTROL, LPDWORD);
  135. BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,
  136.                 SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL);
  137. BOOL WINAPI GetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR,
  138.                                       LPBOOL, PACL *, LPBOOL);
  139. BOOL WINAPI SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
  140. BOOL WINAPI GetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR,
  141.                                       LPBOOL, PACL *, LPBOOL);
  142. BOOL WINAPI SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL);
  143. BOOL WINAPI GetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
  144. BOOL WINAPI SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL);
  145. BOOL WINAPI GetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID *, LPBOOL);
  146. BOOL WINAPI SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL);
  147. VOID WINAPI InitializeCriticalSection();
  148.  
  149. #ifdef __cplusplus
  150. }
  151. #endif
  152.  
  153. #endif /* TFUNCT */
  154. #endif /* !defined (_RSXNTWIN_H) */
  155. #endif /* __RSXNT__ */
  156.