Subversion Repositories recyclebinunit

Rev

Rev 100 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 100 Rev 101
Line 13... Line 13...
13
                           // Win NT4:               02 00 00 00   (Win96/Cairo?)
13
                           // Win NT4:               02 00 00 00   (Win96/Cairo?)
14
                           // Win95 (with IE4), 98:  04 00 00 00
14
                           // Win95 (with IE4), 98:  04 00 00 00
15
                           // Win Me, 2000, XP:      05 00 00 00   (NT4+IE4, NT5?)
15
                           // Win Me, 2000, XP:      05 00 00 00   (NT4+IE4, NT5?)
16
    totalEntries: DWORD;   // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
16
    totalEntries: DWORD;   // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
17
    nextPossibleID: DWORD; // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
17
    nextPossibleID: DWORD; // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
18
    recordLength: DWORD;   // 0x181  =  ANSI records
18
    recordLength: DWORD;   // 0x118  =  ANSI records
19
                           // 0x320  =  Unicode records
19
                           // 0x320  =  Unicode records
20
    totalSize: DWORD;      // sum of all "originalSize" values;
20
    totalSize: DWORD;      // sum of all "originalSize" values;
21
                           // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
21
                           // Only Win95 (without IE4) and Win NT4, other OS versions will use the registry instead and might write information on WM_ENDSESSION for compatibility reasons
22
  end;
22
  end;
23
 
23
 
Line 62... Line 62...
62
  PRbVistaRecord2Head = ^TRbVistaRecord2Head;
62
  PRbVistaRecord2Head = ^TRbVistaRecord2Head;
63
  TRbVistaRecord2Head = packed record
63
  TRbVistaRecord2Head = packed record
64
    version: int64; // Always 02 00 00 00 00 00 00 00
64
    version: int64; // Always 02 00 00 00 00 00 00 00
65
    originalSize: int64;
65
    originalSize: int64;
66
    deletionTime: FILETIME;
66
    deletionTime: FILETIME;
67
    (* sourceUnicode: BSTR; *)
-
 
68
    sourceCountChars: DWORD; // including NUL
67
    sourceCountChars: DWORD; // including NUL
69
    //sourceUnicode: array[0..sourceCountChars-1] of WideChar;
68
    //sourceUnicode: array[0..sourceCountChars-1] of WideChar;
70
  end;
69
  end;
71
 
70
 
72
type
71
type
73
  // Windows 95 (tested with 4.00.950 and Win95b) + Windows NT 4
72
  // Windows 95 (tested with 4.00.180 and above) + Windows NT 4
74
  // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\BitBucket: PurgeInfo (Binary)
73
  // HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\BitBucket: PurgeInfo (Binary)
75
  // TODO: also explain this in FORMAT.md ?
74
  // TODO: also explain this in FORMAT.md ?
76
  PRbWin95PurgeInfo = ^TRbWin95PurgeInfo;
75
  PRbWin95PurgeInfo = ^TRbWin95PurgeInfo;
77
  TRbWin95PurgeInfo = packed record
76
  TRbWin95PurgeInfo = packed record
78
    cbSize: DWORD; // 0x48 = 72
77
    cbSize: DWORD; // 0x48 = 72
Line 86... Line 85...
86
                             // ...
85
                             // ...
87
                             // Bit 25: Drive Z
86
                             // Bit 25: Drive Z
88
                             // Bit 26: "Network home drive"
87
                             // Bit 26: "Network home drive"
89
                             // Bit 27: Global
88
                             // Bit 27: Global
90
                             // Bit 28..31 (MSB) unused
89
                             // Bit 28..31 (MSB) unused
91
    dummy: DWORD; // "dummy to force a new size" ?! (TODO: was there a Windows version that had a smaller size (0x44), i.e. a different version of this record?)
90
    dummy: DWORD; // "dummy to force a new size" ?! But the 0x48 format was already in Win95 beta build 180, which is the first known build with this recycle bin implementation!
92
  end;
91
  end;
93
 
92
 
94
implementation
93
implementation
95
 
94
 
96
end.
95
end.