Subversion Repositories recyclebinunit

Rev

Rev 76 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit RecBinUnitLowLvl;
  2.  
  3. // TODO: Gain more information about drive '@' / Homedrive / Netdrive? Win2000 source
  4. //       + überall verwenden
  5.  
  6. interface
  7.  
  8. uses
  9.   Windows;
  10.  
  11. type
  12.   TRbInfo12Header = record
  13.     unknown1: DWORD; // For INFO2 always 05 00 00 00 ?
  14.     unknown2: DWORD; // For INFO2 always 00 00 00 00 ?
  15.     unknown3: DWORD; // For INFO2 always 00 00 00 00 ?
  16.     recordLength: DWORD; // 0x181  =  INFO  structure (without Unicode)
  17.                          // 0x320  =  INFO2 structure (with Unicode)
  18.     totalSize: DWORD; // INFO file: sum of all "originalSize" values
  19.                       // INFO2 file: always zero?
  20.   end;
  21.  
  22. type
  23.   TRbInfoRecord = record
  24.     sourceAnsi: array[0..MAX_PATH-3] of AnsiChar; // 258 elements
  25.     recordNumber: DWORD;
  26.     sourceDrive: DWORD;
  27.     deletionTime: FILETIME;
  28.     originalSize: DWORD; // Size occupied on disk. Not the actual file size.
  29.                          // INFO2, for folders: The whole folder size with contents
  30.   end;
  31.  
  32. type
  33.   TRbInfo2Record = record
  34.     sourceAnsi: array[0..MAX_PATH-3] of AnsiChar; // 258 elements
  35.     recordNumber: DWORD;
  36.     sourceDrive: DWORD;
  37.     deletionTime: FILETIME;
  38.     originalSize: DWORD;
  39.     sourceUnicode: array[0..MAX_PATH-3] of WideChar; // 258 elements
  40.     unknown1: DWORD; // Dummy?
  41.   end;
  42.  
  43. type
  44.   TRbVistaRecord = record
  45.     signature: int64; // Always 01 00 00 00 00 00 00 00 ?
  46.     originalSize: int64;
  47.     deletionTime: FILETIME;
  48.     sourceUnicode: array[0..MAX_PATH-1] of WideChar;
  49.   end;
  50.  
  51. type
  52.   // Windows 95
  53.   // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\BitBucket: PurgeInfo (Binary)
  54.   TRbWin95PurgeInfo = record
  55.     cbSize: DWORD;
  56.     bGlobalSettings: BOOL;
  57.     percentDrive: array['A'..'Z'] of WORD; // 0x00..0x64 = 0%..100%
  58.     percentHomedrive: WORD;
  59.     percentGlobal: WORD;
  60.     NukeOnDeleteBits: DWORD; // Flags "Nuke on delete"
  61.                              // Bit 0 (LSB): Drive A
  62.                              // Bit 1: Drive B
  63.                              // ...
  64.                              // Bit 25: Drive Z
  65.                              // Bit 26: Homedrive
  66.                              // Bit 27: Global
  67.                              // Bit 28..31 (MSB) probably unused
  68.     unknown1: DWORD; // For example 04 0D 02 00
  69.   end;               // or          C4 0C 02 00
  70.  
  71. implementation
  72.  
  73. end.
  74.