Changeset 1207
- Timestamp:
- 9/29/2009 10:15:49 AM (4 years ago)
- Location:
- trunk/eraser6
- Files:
-
- 5 edited
-
Eraser.Util.FileSystem/Eraser.Util.FileSystem.vcproj (modified) (1 diff)
-
Eraser.Util.FileSystem/FatApi.cpp (modified) (5 diffs)
-
Eraser.Util.FileSystem/FatApi.h (modified) (2 diffs)
-
Eraser.Util/VolumeInfo.cs (modified) (1 diff)
-
Eraser.sln (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/eraser6/Eraser.Util.FileSystem/Eraser.Util.FileSystem.vcproj
r1206 r1207 24 24 OutputDirectory="$(SolutionDir)\bin\$(ConfigurationName)\$(PlatformName)" 25 25 IntermediateDirectory="obj\$(ConfigurationName)\$(PlatformName)" 26 ConfigurationType=" 1"26 ConfigurationType="2" 27 27 CharacterSet="1" 28 28 ManagedExtensions="1" -
trunk/eraser6/Eraser.Util.FileSystem/FatApi.cpp
r1206 r1207 29 29 using namespace System::IO; 30 30 using namespace System::Runtime::InteropServices; 31 using namespace Microsoft::Win32::SafeHandles; 31 32 32 33 namespace Eraser { … … 40 41 memset(BootSector, 0, sizeof(*BootSector)); 41 42 Fat = NULL; 43 44 //Open the handle to the drive 45 CString volumeName(info->VolumeId); 46 volumeName.Truncate(volumeName.GetLength() - 1); 47 VolumeHandle = gcnew SafeFileHandle(static_cast<IntPtr>(CreateFile(volumeName, 48 GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL)), 49 true); 50 VolumeStream = gcnew FileStream(VolumeHandle, FileAccess::Read); 51 52 //Then read the boot sector for information 53 array<Byte>^ bootSector = gcnew array<Byte>(sizeof(*BootSector)); 54 VolumeStream->Seek(0, SeekOrigin::Begin); 55 VolumeStream->Read(bootSector, 0, sizeof(*BootSector)); 56 Marshal::Copy(bootSector, 0, static_cast<IntPtr>(BootSector), bootSector->Length); 57 } 58 59 FatApi::FatApi(VolumeInfo^ info, Microsoft::Win32::SafeHandles::SafeFileHandle^ handle, 60 IO::FileAccess access) 61 { 62 SectorSize = info->SectorSize; 63 ClusterSize = info->ClusterSize; 64 65 BootSector = new FatBootSector(); 66 memset(BootSector, 0, sizeof(*BootSector)); 67 Fat = NULL; 68 69 //Open the handle to the drive 70 VolumeHandle = handle; 71 VolumeStream = gcnew FileStream(VolumeHandle, access); 72 73 //Then read the boot sector for information 74 array<Byte>^ bootSector = gcnew array<Byte>(sizeof(*BootSector)); 75 VolumeStream->Seek(0, SeekOrigin::Begin); 76 VolumeStream->Read(bootSector, 0, sizeof(*BootSector)); 77 Marshal::Copy(bootSector, 0, static_cast<IntPtr>(BootSector), bootSector->Length); 42 78 } 43 79 … … 251 287 { 252 288 //The previous few entries contained the correct file name. Save these entries 253 validEntries.insert(validEntries.end(), longFileNameBegin, i - 1);289 validEntries.insert(validEntries.end(), longFileNameBegin, i); 254 290 } 255 291 } … … 264 300 265 301 //Write the entries to disk 266 Api->SetFileContents( &validEntries.front(), Api->FileSize(Cluster), Cluster);302 Api->SetFileContents(Directory, Api->FileSize(Cluster), Cluster); 267 303 } 268 304 … … 272 308 if (info->VolumeFormat != L"FAT32") 273 309 throw gcnew ArgumentException(L"The volume provided is not a FAT32 volume."); 274 275 //Open the handle to the drive 276 CString volumeName(info->VolumeId); 277 volumeName.Truncate(volumeName.GetLength() - 1); 278 VolumeHandle = gcnew Microsoft::Win32::SafeHandles::SafeFileHandle( 279 static_cast<IntPtr>(CreateFile(volumeName, GENERIC_READ, 0, NULL, 280 OPEN_EXISTING, FILE_FLAG_RANDOM_ACCESS, NULL)), true); 281 VolumeStream = gcnew FileStream(VolumeHandle, FileAccess::Read); 282 283 //Then read the boot sector for information 284 array<Byte>^ bootSector = gcnew array<Byte>(sizeof(*BootSector)); 285 VolumeStream->Seek(0, SeekOrigin::Begin); 286 VolumeStream->Read(bootSector, 0, sizeof(*BootSector)); 287 Marshal::Copy(bootSector, 0, static_cast<IntPtr>(BootSector), bootSector->Length); 310 } 311 312 Fat32Api::Fat32Api(VolumeInfo^ info, Microsoft::Win32::SafeHandles::SafeFileHandle^ handle, 313 IO::FileAccess access) : FatApi(info, handle, access) 314 { 315 //Sanity checks: check that this volume is FAT32! 316 if (info->VolumeFormat != L"FAT32") 317 throw gcnew ArgumentException(L"The volume provided is not a FAT32 volume."); 288 318 } 289 319 -
trunk/eraser6/Eraser.Util.FileSystem/FatApi.h
r1206 r1207 35 35 /// Constructor. 36 36 /// 37 /// \param[in] info The volume to create the FAT API for. 37 /// \param[in] info The volume to create the FAT API for. The volume handle 38 /// created has read access only. 38 39 FatApi(VolumeInfo^ info); 40 41 /// Constructor. 42 /// 43 /// \param[in] info The volume to create the FAT API for. 44 /// \param[in] handle A handle to the volume for read/write requests. 45 /// \param[in] access The access required for the volume. 46 FatApi(VolumeInfo^ info, Microsoft::Win32::SafeHandles::SafeFileHandle^ handle, 47 IO::FileAccess access); 39 48 40 49 public: … … 143 152 public: 144 153 Fat32Api(VolumeInfo^ info); 154 Fat32Api(VolumeInfo^ info, Microsoft::Win32::SafeHandles::SafeFileHandle^ handle, 155 IO::FileAccess access); 145 156 146 157 public: -
trunk/eraser6/Eraser.Util/VolumeInfo.cs
r1139 r1207 241 241 242 242 /// <summary> 243 /// Determines the sector size of the current volume. 244 /// </summary> 245 public int SectorSize 246 { 247 get 248 { 249 uint clusterSize, sectorSize, freeClusters, totalClusters; 250 if (KernelApi.NativeMethods.GetDiskFreeSpace(VolumeId, out clusterSize, 251 out sectorSize, out freeClusters, out totalClusters)) 252 { 253 return (int)sectorSize; 254 } 255 256 throw Marshal.GetExceptionForHR(Marshal.GetHRForLastWin32Error()); 257 } 258 } 259 260 /// <summary> 243 261 /// Checks if the current user has disk quotas on the current volume. 244 262 /// </summary> -
trunk/eraser6/Eraser.sln
r1202 r1207 46 46 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Eraser.Util.Unlocker", "Eraser.Util.Unlocker\Eraser.Util.Unlocker.vcproj", "{BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}" 47 47 EndProject 48 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Eraser.Util.FileSystem", "Eraser.Util.FileSystem\Eraser.Util.FileSystem.vcproj", "{70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}" 49 EndProject 48 50 Global 49 51 GlobalSection(SolutionConfigurationPlatforms) = preSolution … … 52 54 Debug|Win32 = Debug|Win32 53 55 Debug|x64 = Debug|x64 54 Debug|x86 = Debug|x8655 56 Release|Any CPU = Release|Any CPU 56 57 Release|Mixed Platforms = Release|Mixed Platforms 57 58 Release|Win32 = Release|Win32 58 59 Release|x64 = Release|x64 59 Release|x86 = Release|x8660 60 EndGlobalSection 61 61 GlobalSection(ProjectConfigurationPlatforms) = postSolution … … 65 65 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 66 66 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|Win32.ActiveCfg = Debug|Any CPU 67 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|Win32.Build.0 = Debug|Any CPU 67 68 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|x64.ActiveCfg = Debug|Any CPU 68 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|x 86.ActiveCfg= Debug|Any CPU69 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Debug|x64.Build.0 = Debug|Any CPU 69 70 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|Any CPU.ActiveCfg = Release|Any CPU 70 71 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|Any CPU.Build.0 = Release|Any CPU … … 72 73 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|Mixed Platforms.Build.0 = Release|Any CPU 73 74 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|Win32.ActiveCfg = Release|Any CPU 75 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|Win32.Build.0 = Release|Any CPU 74 76 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|x64.ActiveCfg = Release|Any CPU 75 77 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|x64.Build.0 = Release|Any CPU 76 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|x86.ActiveCfg = Release|Any CPU77 {A9884ABF-46E8-42C1-A30B-9A3DD6C38004}.Release|x86.Build.0 = Release|Any CPU78 78 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 79 79 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|Any CPU.Build.0 = Debug|Any CPU … … 81 81 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 82 82 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|Win32.ActiveCfg = Debug|Any CPU 83 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|Win32.Build.0 = Debug|Any CPU 83 84 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|x64.ActiveCfg = Debug|Any CPU 84 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|x 86.ActiveCfg= Debug|Any CPU85 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Debug|x64.Build.0 = Debug|Any CPU 85 86 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|Any CPU.ActiveCfg = Release|Any CPU 86 87 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|Any CPU.Build.0 = Release|Any CPU … … 88 89 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|Mixed Platforms.Build.0 = Release|Any CPU 89 90 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|Win32.ActiveCfg = Release|Any CPU 91 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|Win32.Build.0 = Release|Any CPU 90 92 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|x64.ActiveCfg = Release|Any CPU 91 93 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|x64.Build.0 = Release|Any CPU 92 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|x86.ActiveCfg = Release|Any CPU93 {C1AC3255-0939-499D-A69D-725E3DD4F574}.Release|x86.Build.0 = Release|Any CPU94 94 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 95 95 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU … … 97 97 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 98 98 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|Win32.ActiveCfg = Debug|Any CPU 99 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|Win32.Build.0 = Debug|Any CPU 99 100 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|x64.ActiveCfg = Debug|Any CPU 100 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|x 86.ActiveCfg= Debug|Any CPU101 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Debug|x64.Build.0 = Debug|Any CPU 101 102 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU 102 103 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|Any CPU.Build.0 = Release|Any CPU … … 104 105 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|Mixed Platforms.Build.0 = Release|Any CPU 105 106 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|Win32.ActiveCfg = Release|Any CPU 107 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|Win32.Build.0 = Release|Any CPU 106 108 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|x64.ActiveCfg = Release|Any CPU 107 109 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|x64.Build.0 = Release|Any CPU 108 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|x86.ActiveCfg = Release|Any CPU109 {D083E1A8-3A4C-4683-9B3F-D5FEDE61B9C9}.Release|x86.Build.0 = Release|Any CPU110 110 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 111 111 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|Any CPU.Build.0 = Debug|Any CPU … … 113 113 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 114 114 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|Win32.ActiveCfg = Debug|Any CPU 115 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|Win32.Build.0 = Debug|Any CPU 115 116 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|x64.ActiveCfg = Debug|Any CPU 116 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|x 86.ActiveCfg= Debug|Any CPU117 {21752123-7BD7-4B44-B512-14A963C55FD8}.Debug|x64.Build.0 = Debug|Any CPU 117 118 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|Any CPU.ActiveCfg = Release|Any CPU 118 119 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|Any CPU.Build.0 = Release|Any CPU … … 120 121 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|Mixed Platforms.Build.0 = Release|Any CPU 121 122 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|Win32.ActiveCfg = Release|Any CPU 123 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|Win32.Build.0 = Release|Any CPU 122 124 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|x64.ActiveCfg = Release|Any CPU 123 125 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|x64.Build.0 = Release|Any CPU 124 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|x86.ActiveCfg = Release|Any CPU125 {21752123-7BD7-4B44-B512-14A963C55FD8}.Release|x86.Build.0 = Release|Any CPU126 126 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Debug|Any CPU.ActiveCfg = Debug|x86 127 127 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 128 128 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Debug|Win32.ActiveCfg = Debug|x86 129 129 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Debug|x64.ActiveCfg = Debug|x64 130 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Debug|x86.ActiveCfg = Debug|x86131 130 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|Any CPU.ActiveCfg = Release|x86 132 131 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|Mixed Platforms.ActiveCfg = Release|x86 133 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release| Mixed Platforms.Build.0= Release|x86134 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|Win32. ActiveCfg = Release|x64132 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|Win32.ActiveCfg = Release|x86 133 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|Win32.Build.0 = Release|x86 135 134 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|x64.ActiveCfg = Release|x64 136 135 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|x64.Build.0 = Release|x64 137 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|x86.ActiveCfg = Release|x86138 {318964CF-278D-41B2-A825-B9A0D1F5D766}.Release|x86.Build.0 = Release|x86139 136 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|Any CPU.ActiveCfg = Debug|Win32 140 137 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 141 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|Mixed Platforms.Build.0 = Debug|Win32142 138 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|Win32.ActiveCfg = Debug|Win32 143 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|Win32.Build.0 = Debug|Win32144 139 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|x64.ActiveCfg = Debug|Win32 145 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Debug|x86.ActiveCfg = Debug|Win32146 140 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|Any CPU.ActiveCfg = Release|Win32 147 141 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|Mixed Platforms.ActiveCfg = Release|Win32 148 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|Mixed Platforms.Build.0 = Release|Win32149 142 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|Win32.ActiveCfg = Release|Win32 150 143 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|Win32.Build.0 = Release|Win32 151 144 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|x64.ActiveCfg = Release|Win32 152 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|x86.ActiveCfg = Release|Win32153 {4F6CD250-0A08-4DB8-8E07-848E4FF01C21}.Release|x86.Build.0 = Release|Win32154 145 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|Any CPU.ActiveCfg = Debug|Win32 155 146 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 156 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|Mixed Platforms.Build.0 = Debug|Win32157 147 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|Win32.ActiveCfg = Debug|Win32 158 148 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|Win32.Build.0 = Debug|Win32 159 149 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|x64.ActiveCfg = Debug|x64 160 150 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|x64.Build.0 = Debug|x64 161 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|x86.ActiveCfg = Debug|Win32162 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Debug|x86.Build.0 = Debug|Win32163 151 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|Any CPU.ActiveCfg = Release|Win32 164 152 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|Mixed Platforms.ActiveCfg = Release|Win32 165 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|Mixed Platforms.Build.0 = Release|Win32166 153 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|Win32.ActiveCfg = Release|Win32 167 154 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|Win32.Build.0 = Release|Win32 168 155 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|x64.ActiveCfg = Release|x64 169 156 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|x64.Build.0 = Release|x64 170 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|x86.ActiveCfg = Release|Win32171 {738F455B-2220-4F8F-B87F-DA93F0B0F1BA}.Release|x86.Build.0 = Release|Win32172 157 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|Any CPU.ActiveCfg = Debug|Win32 173 158 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 … … 177 162 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|x64.ActiveCfg = Debug|x64 178 163 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|x64.Build.0 = Debug|x64 179 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|x86.ActiveCfg = Debug|Win32180 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Debug|x86.Build.0 = Debug|Win32181 164 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|Any CPU.ActiveCfg = Release|Win32 182 165 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|Mixed Platforms.ActiveCfg = Release|x64 … … 186 169 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|x64.ActiveCfg = Release|x64 187 170 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|x64.Build.0 = Release|x64 188 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|x86.ActiveCfg = Release|Win32 189 {BCFE7D20-FC82-4BBE-BFE4-7B635D70D238}.Release|x86.Build.0 = Release|Win32 171 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|Any CPU.ActiveCfg = Debug|Win32 172 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|Mixed Platforms.ActiveCfg = Debug|x64 173 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|Mixed Platforms.Build.0 = Debug|x64 174 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|Win32.ActiveCfg = Debug|Win32 175 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|Win32.Build.0 = Debug|Win32 176 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|x64.ActiveCfg = Debug|x64 177 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Debug|x64.Build.0 = Debug|x64 178 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|Any CPU.ActiveCfg = Release|Win32 179 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|Mixed Platforms.ActiveCfg = Release|x64 180 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|Mixed Platforms.Build.0 = Release|x64 181 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|Win32.ActiveCfg = Release|Win32 182 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|Win32.Build.0 = Release|Win32 183 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|x64.ActiveCfg = Release|x64 184 {70FB61E5-3F8C-4B6C-8D1B-E08FD8B957C1}.Release|x64.Build.0 = Release|x64 190 185 EndGlobalSection 191 186 GlobalSection(SolutionProperties) = preSolution
Note: See TracChangeset
for help on using the changeset viewer.
