diff --git a/reactos/tools/cabman/cabinet.cxx b/reactos/tools/cabman/cabinet.cxx index e1b28b40648..4a3eddb584c 100755 --- a/reactos/tools/cabman/cabinet.cxx +++ b/reactos/tools/cabman/cabinet.cxx @@ -11,6 +11,7 @@ * CSH 15/08-2003 Made it portable * CF 04/05-2007 Reformatted the code to be more consistent and use TABs instead of spaces * CF 04/05-2007 Made it compatible with 64-bit operating systems + * CF 18/08-2007 Use typedefs64.h and the Windows types for compatibility with 64-bit operating systems * TODO: * - Checksum of datablocks should be calculated * - EXTRACT.EXE complains if a disk is created manually @@ -28,31 +29,31 @@ #if defined(WIN32) #define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static int32_t _GetSizeOfFile(FILEHANDLE handle) +static LONG _GetSizeOfFile(FILEHANDLE handle) { - uint32_t size = GetFileSize(handle, NULL); + ULONG size = GetFileSize(handle, NULL); if (size == INVALID_FILE_SIZE) return -1; return size; } #define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, uint32_t size, uint32_t* bytesread) +static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) { return ReadFile(handle, buffer, size, (LPDWORD)bytesread, NULL) != 0; } #else #define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static int32_t _GetSizeOfFile(FILEHANDLE handle) +static LONG _GetSizeOfFile(FILEHANDLE handle) { - int32_t size; + LONG size; fseek(handle, 0, SEEK_END); size = ftell(handle); fseek(handle, 0, SEEK_SET); return size; } #define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, uint32_t size, uint32_t* bytesread) +static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) { *bytesread = fread(buffer, 1, size, handle); return *bytesread == size; @@ -64,10 +65,10 @@ static bool _ReadFileData(FILEHANDLE handle, void* buffer, uint32_t size, uint32 #if 0 #ifdef DBG -void DumpBuffer(void* Buffer, uint32_t Size) +void DumpBuffer(void* Buffer, ULONG Size) { FILEHANDLE FileHandle; - uint32_t BytesWritten; + ULONG BytesWritten; /* Create file, overwrite if it already exists */ FileHandle = CreateFile("dump.bin", // Create this file @@ -79,13 +80,13 @@ void DumpBuffer(void* Buffer, uint32_t Size) NULL); // No attribute template if (FileHandle == INVALID_HANDLE_VALUE) { - DPRINT(MID_TRACE, ("ERROR OPENING '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("ERROR OPENING '%d'.\n", (ULONG)GetLastError())); return; } if (!WriteFile(FileHandle, Buffer, Size, &BytesWritten, NULL)) { - DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (ULONG)GetLastError())); } CloseFile(FileHandle); @@ -114,7 +115,7 @@ CCFDATAStorage::~CCFDATAStorage() } -uint32_t CCFDATAStorage::Create(char* FileName) +ULONG CCFDATAStorage::Create(char* FileName) /* * FUNCTION: Creates the file * ARGUMENTS: @@ -143,7 +144,7 @@ uint32_t CCFDATAStorage::Create(char* FileName) NULL); // No attribute template if (FileHandle == INVALID_HANDLE_VALUE) { - DPRINT(MID_TRACE, ("ERROR '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("ERROR '%d'.\n", (ULONG)GetLastError())); return CAB_STATUS_CANNOT_CREATE; } #else /* !WIN32 */ @@ -153,7 +154,7 @@ uint32_t CCFDATAStorage::Create(char* FileName) /* FileHandle = fopen(FullName, "w+b"); if (FileHandle == NULL) { - DPRINT(MID_TRACE, ("ERROR '%d'.\n", (unsigned int)errno)); + DPRINT(MID_TRACE, ("ERROR '%d'.\n", (ULONG)errno)); return CAB_STATUS_CANNOT_CREATE; } */ @@ -165,7 +166,7 @@ uint32_t CCFDATAStorage::Create(char* FileName) } -uint32_t CCFDATAStorage::Destroy() +ULONG CCFDATAStorage::Destroy() /* * FUNCTION: Destroys the file * RETURNS: @@ -182,7 +183,7 @@ uint32_t CCFDATAStorage::Destroy() } -uint32_t CCFDATAStorage::Truncate() +ULONG CCFDATAStorage::Truncate() /* * FUNCTION: Truncate the scratch file to zero bytes * RETURNS: @@ -199,7 +200,7 @@ uint32_t CCFDATAStorage::Truncate() FileHandle = tmpfile(); if (FileHandle == NULL) { - DPRINT(MID_TRACE, ("ERROR '%d'.\n", (unsigned int)errno)); + DPRINT(MID_TRACE, ("ERROR '%d'.\n", (ULONG)errno)); return CAB_STATUS_FAILURE; } #endif @@ -207,7 +208,7 @@ uint32_t CCFDATAStorage::Truncate() } -uint32_t CCFDATAStorage::Position() +ULONG CCFDATAStorage::Position() /* * FUNCTION: Returns current position in file * RETURNS: @@ -217,12 +218,12 @@ uint32_t CCFDATAStorage::Position() #if defined(WIN32) return SetFilePointer(FileHandle, 0, NULL, FILE_CURRENT); #else - return (uint32_t)ftell(FileHandle); + return (ULONG)ftell(FileHandle); #endif } -uint32_t CCFDATAStorage::Seek(int32_t Position) +ULONG CCFDATAStorage::Seek(LONG Position) /* * FUNCTION: Seeks to an absolute position * ARGUMENTS: @@ -248,7 +249,7 @@ uint32_t CCFDATAStorage::Seek(int32_t Position) } -uint32_t CCFDATAStorage::ReadBlock(PCFDATA Data, void* Buffer, uint32_t* BytesRead) +ULONG CCFDATAStorage::ReadBlock(PCFDATA Data, void* Buffer, PULONG BytesRead) /* * FUNCTION: Reads a CFDATA block from the file * ARGUMENTS: @@ -272,7 +273,7 @@ uint32_t CCFDATAStorage::ReadBlock(PCFDATA Data, void* Buffer, uint32_t* BytesRe } -uint32_t CCFDATAStorage::WriteBlock(PCFDATA Data, void* Buffer, uint32_t* BytesWritten) +ULONG CCFDATAStorage::WriteBlock(PCFDATA Data, void* Buffer, PULONG BytesWritten) /* * FUNCTION: Writes a CFDATA block to the file * ARGUMENTS: @@ -419,7 +420,7 @@ char* CCabinet::GetFileName(char* Path) * Pointer to filename */ { - uint32_t i, j; + ULONG i, j; j = i = (Path[0] ? (Path[1] == ':' ? 2 : 0) : 0); @@ -439,7 +440,7 @@ void CCabinet::RemoveFileName(char* Path) */ { char* FileName; - uint32_t i; + ULONG i; i = (Path [0] ? (Path[1] == ':' ? 2 : 0) : 0); FileName = GetFileName(Path + i); @@ -453,7 +454,7 @@ void CCabinet::RemoveFileName(char* Path) bool CCabinet::NormalizePath(char* Path, - uint32_t Length) + ULONG Length) /* * FUNCTION: Normalizes a path * ARGUMENTS: @@ -463,10 +464,10 @@ bool CCabinet::NormalizePath(char* Path, * true if there was enough room in Path, or false */ { - uint32_t n; + ULONG n; bool OK = true; - if ((n = (uint32_t)strlen(Path)) && + if ((n = (ULONG)strlen(Path)) && (!IsSeparator(Path[n - 1])) && (OK = ((n + 1) < Length))) { @@ -532,7 +533,7 @@ bool CCabinet::SetCabinetReservedFile(char* FileName) */ { FILEHANDLE FileHandle; - uint32_t BytesRead; + ULONG BytesRead; #if defined(WIN32) FileHandle = CreateFile(ConvertPath(FileName, true), // Open this file @@ -557,7 +558,7 @@ bool CCabinet::SetCabinetReservedFile(char* FileName) #endif CabinetReservedFileSize = GetSizeOfFile(FileHandle); - if (CabinetReservedFileSize == (uint32_t)-1) + if (CabinetReservedFileSize == (ULONG)-1) { DPRINT(MIN_TRACE, ("Cannot read from cabinet reserved file.\n")); return false; @@ -601,7 +602,7 @@ char* CCabinet::GetCabinetReservedFile() } -uint32_t CCabinet::GetCurrentDiskNumber() +ULONG CCabinet::GetCurrentDiskNumber() /* * FUNCTION: Returns current disk number * RETURNS: @@ -612,7 +613,7 @@ uint32_t CCabinet::GetCurrentDiskNumber() } -uint32_t CCabinet::Open() +ULONG CCabinet::Open() /* * FUNCTION: Opens a cabinet file * RETURNS: @@ -620,13 +621,13 @@ uint32_t CCabinet::Open() */ { PCFFOLDER_NODE FolderNode; - uint32_t Status; - uint32_t Index; + ULONG Status; + ULONG Index; if (!FileOpen) { - uint32_t BytesRead; - uint32_t Size; + ULONG BytesRead; + ULONG Size; OutputBuffer = AllocateMemory(CAB_BLOCKSIZE + 12); // This should be enough if (!OutputBuffer) @@ -661,7 +662,7 @@ uint32_t CCabinet::Open() if ((Status = ReadBlock(&CABHeader, sizeof(CFHEADER), &BytesRead)) != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } @@ -683,10 +684,10 @@ uint32_t CCabinet::Open() /* Read/skip any reserved bytes */ if (CABHeader.Flags & CAB_FLAG_RESERVE) { - if ((Status = ReadBlock(&Size, sizeof(uint32_t), &BytesRead)) + if ((Status = ReadBlock(&Size, sizeof(ULONG), &BytesRead)) != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } CabinetReserved = Size & 0xFFFF; @@ -761,7 +762,7 @@ uint32_t CCabinet::Open() if ((Status = ReadBlock(&FolderNode->Folder, sizeof(CFFOLDER), &BytesRead)) != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } } @@ -770,7 +771,7 @@ uint32_t CCabinet::Open() Status = ReadFileTable(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("ReadFileTable() failed (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("ReadFileTable() failed (%d).\n", (ULONG)Status)); return Status; } @@ -781,7 +782,7 @@ uint32_t CCabinet::Open() Status = ReadDataBlocks(FolderNode); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("ReadDataBlocks() failed (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("ReadDataBlocks() failed (%d).\n", (ULONG)Status)); return Status; } FolderNode = FolderNode->Next; @@ -804,7 +805,7 @@ void CCabinet::Close() } -uint32_t CCabinet::FindFirst(char* FileName, +ULONG CCabinet::FindFirst(char* FileName, PCAB_SEARCH Search) /* * FUNCTION: Finds the first file in the cabinet that matches a search criteria @@ -822,7 +823,7 @@ uint32_t CCabinet::FindFirst(char* FileName, } -uint32_t CCabinet::FindNext(PCAB_SEARCH Search) +ULONG CCabinet::FindNext(PCAB_SEARCH Search) /* * FUNCTION: Finds next file in the cabinet that matches a search criteria * ARGUMENTS: @@ -831,7 +832,7 @@ uint32_t CCabinet::FindNext(PCAB_SEARCH Search) * Status of operation */ { - uint32_t Status; + ULONG Status; if (RestartSearch) { @@ -881,7 +882,7 @@ uint32_t CCabinet::FindNext(PCAB_SEARCH Search) } -uint32_t CCabinet::ExtractFile(char* FileName) +ULONG CCabinet::ExtractFile(char* FileName) /* * FUNCTION: Extracts a file from the cabinet * ARGUMENTS: @@ -890,21 +891,21 @@ uint32_t CCabinet::ExtractFile(char* FileName) * Status of operation */ { - uint32_t Size; - uint32_t Offset; - uint32_t BytesRead; - uint32_t BytesToRead; - uint32_t BytesWritten; - uint32_t BytesSkipped; - uint32_t BytesToWrite; - uint32_t TotalBytesRead; - uint32_t CurrentOffset; + ULONG Size; + ULONG Offset; + ULONG BytesRead; + ULONG BytesToRead; + ULONG BytesWritten; + ULONG BytesSkipped; + ULONG BytesToWrite; + ULONG TotalBytesRead; + ULONG CurrentOffset; unsigned char* Buffer; unsigned char* CurrentBuffer; FILEHANDLE DestFile; PCFFILE_NODE File; CFDATA CFData; - uint32_t Status; + ULONG Status; bool Skip; #if defined(WIN32) FILETIME FileTime; @@ -915,7 +916,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) Status = LocateFile(FileName, &File); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MID_TRACE, ("Cannot locate file (%d).\n", (unsigned int)Status)); + DPRINT(MID_TRACE, ("Cannot locate file (%d).\n", (ULONG)Status)); return Status; } @@ -936,10 +937,10 @@ uint32_t CCabinet::ExtractFile(char* FileName) } DPRINT(MAX_TRACE, ("Extracting file at uncompressed offset (0x%X) Size (%d bytes) AO (0x%X) UO (0x%X).\n", - (unsigned int)File->File.FileOffset, - (unsigned int)File->File.FileSize, - (unsigned int)File->DataBlock->AbsoluteOffset, - (unsigned int)File->DataBlock->UncompOffset)); + (ULONG)File->File.FileOffset, + (ULONG)File->File.FileSize, + (ULONG)File->DataBlock->AbsoluteOffset, + (ULONG)File->DataBlock->UncompOffset)); strcpy(DestName, DestPath); strcat(DestName, FileName); @@ -1057,12 +1058,12 @@ uint32_t CCabinet::ExtractFile(char* FileName) do { DPRINT(MAX_TRACE, ("CO (0x%lX) ReuseBlock (%d) Offset (0x%lX) Size (%ld) BytesLeftInBlock (%ld)\n", - File->DataBlock->UncompOffset, (unsigned int)ReuseBlock, Offset, Size, + File->DataBlock->UncompOffset, (ULONG)ReuseBlock, Offset, Size, BytesLeftInBlock)); if (/*(CurrentDataNode != File->DataBlock) &&*/ (!ReuseBlock) || (BytesLeftInBlock <= 0)) { - DPRINT(MAX_TRACE, ("Filling buffer. ReuseBlock (%d)\n", (unsigned int)ReuseBlock)); + DPRINT(MAX_TRACE, ("Filling buffer. ReuseBlock (%d)\n", (ULONG)ReuseBlock)); CurrentBuffer = Buffer; TotalBytesRead = 0; @@ -1075,28 +1076,28 @@ uint32_t CCabinet::ExtractFile(char* FileName) { CloseFile(DestFile); FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } DPRINT(MAX_TRACE, ("Data block: Checksum (0x%X) CompSize (%d bytes) UncompSize (%d bytes)\n", - (unsigned int)CFData.Checksum, - (unsigned int)CFData.CompSize, - (unsigned int)CFData.UncompSize)); + (ULONG)CFData.Checksum, + (ULONG)CFData.CompSize, + (ULONG)CFData.UncompSize)); ASSERT(CFData.CompSize <= CAB_BLOCKSIZE + 12); BytesToRead = CFData.CompSize; DPRINT(MAX_TRACE, ("Read: (0x%lX,0x%lX).\n", - (uintptr_t)CurrentBuffer, (uintptr_t)Buffer)); + (_W64 unsigned long)CurrentBuffer, (_W64 unsigned long)Buffer)); if (((Status = ReadBlock(CurrentBuffer, BytesToRead, &BytesRead)) != CAB_STATUS_SUCCESS) || (BytesToRead != BytesRead)) { CloseFile(DestFile); FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } @@ -1104,7 +1105,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) /* if (CFData.Checksum != 0) { - uint32_t Checksum = ComputeChecksum(CurrentBuffer, BytesRead, 0); + ULONG Checksum = ComputeChecksum(CurrentBuffer, BytesRead, 0); if (Checksum != CFData.Checksum) { CloseFile(DestFile); @@ -1144,7 +1145,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) Status = LocateFile(TempName, &File); if (Status == CAB_STATUS_NOFILE) { - DPRINT(MID_TRACE, ("Cannot locate file (%d).\n", (unsigned int)Status)); + DPRINT(MID_TRACE, ("Cannot locate file (%d).\n", (ULONG)Status)); return Status; } @@ -1171,10 +1172,10 @@ uint32_t CCabinet::ExtractFile(char* FileName) #endif DPRINT(MAX_TRACE, ("Continuing extraction of file at uncompressed offset (0x%X) Size (%d bytes) AO (0x%X) UO (0x%X).\n", - (unsigned int)File->File.FileOffset, - (unsigned int)File->File.FileSize, - (unsigned int)File->DataBlock->AbsoluteOffset, - (unsigned int)File->DataBlock->UncompOffset)); + (ULONG)File->File.FileOffset, + (ULONG)File->File.FileSize, + (ULONG)File->DataBlock->AbsoluteOffset, + (ULONG)File->DataBlock->UncompOffset)); CurrentDataNode = File->DataBlock; ReuseBlock = true; @@ -1207,7 +1208,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) } else { - DPRINT(MAX_TRACE, ("Using same buffer. ReuseBlock (%d)\n", (unsigned int)ReuseBlock)); + DPRINT(MAX_TRACE, ("Using same buffer. ReuseBlock (%d)\n", (ULONG)ReuseBlock)); BytesToWrite = BytesLeftInBlock; @@ -1220,7 +1221,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) { CloseFile(DestFile); FreeMemory(Buffer); - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } @@ -1262,21 +1263,21 @@ uint32_t CCabinet::ExtractFile(char* FileName) BytesToWrite = Size; DPRINT(MAX_TRACE, ("Offset (0x%X) CurrentOffset (0x%X) ToWrite (%d) Skipped (%d)(%d) Size (%d).\n", - (unsigned int)Offset, - (unsigned int)CurrentOffset, - (unsigned int)BytesToWrite, - (unsigned int)BytesSkipped, (unsigned int)Skip, - (unsigned int)Size)); + (ULONG)Offset, + (ULONG)CurrentOffset, + (ULONG)BytesToWrite, + (ULONG)BytesSkipped, (ULONG)Skip, + (ULONG)Size)); #if defined(WIN32) - if (!WriteFile(DestFile, (void*)((uintptr_t)OutputBuffer + BytesSkipped), + if (!WriteFile(DestFile, (void*)((unsigned long *)OutputBuffer + BytesSkipped), BytesToWrite, (LPDWORD)&BytesWritten, NULL) || (BytesToWrite != BytesWritten)) { DPRINT(MIN_TRACE, ("Status 0x%lX.\n", GetLastError())); #else BytesWritten = BytesToWrite; - if (fwrite((void*)((uintptr_t)OutputBuffer + BytesSkipped), + if (fwrite((void*)((unsigned long *)OutputBuffer + BytesSkipped), BytesToWrite, 1, DestFile) < 1) { #endif @@ -1302,7 +1303,7 @@ uint32_t CCabinet::ExtractFile(char* FileName) } -void CCabinet::SelectCodec(uint32_t Id) +void CCabinet::SelectCodec(ULONG Id) /* * FUNCTION: Selects codec engine to use * ARGUMENTS: @@ -1343,14 +1344,14 @@ void CCabinet::SelectCodec(uint32_t Id) /* CAB write methods */ -uint32_t CCabinet::NewCabinet() +ULONG CCabinet::NewCabinet() /* * FUNCTION: Creates a new cabinet * RETURNS: * Status of operation */ { - uint32_t Status; + ULONG Status; CurrentDiskNumber = 0; @@ -1414,7 +1415,7 @@ uint32_t CCabinet::NewCabinet() } -uint32_t CCabinet::NewDisk() +ULONG CCabinet::NewDisk() /* * FUNCTION: Forces a new disk to be created * RETURNS: @@ -1438,7 +1439,7 @@ uint32_t CCabinet::NewDisk() } -uint32_t CCabinet::NewFolder() +ULONG CCabinet::NewFolder() /* * FUNCTION: Forces a new folder to be created * RETURNS: @@ -1483,7 +1484,7 @@ uint32_t CCabinet::NewFolder() } -uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) +ULONG CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) /* * FUNCTION: Writes a file to the scratch file * ARGUMENTS: @@ -1492,10 +1493,10 @@ uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) * Status of operation */ { - uint32_t BytesToRead; - uint32_t BytesRead; - uint32_t Status; - uint32_t Size; + ULONG BytesToRead; + ULONG BytesRead; + ULONG Status; + ULONG Size; if (!ContinueFile) { @@ -1540,11 +1541,11 @@ uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) FileNode->File.FileOffset = CurrentFolderNode->UncompOffset; CurrentFolderNode->UncompOffset += TotalBytesLeft; - FileNode->File.FileControlID = (uint16_t)(NextFolderNumber - 1); + FileNode->File.FileControlID = (USHORT)(NextFolderNumber - 1); CurrentFolderNode->Commit = true; PrevCabinetNumber = CurrentDiskNumber; - Size = sizeof(CFFILE) + (uint32_t)strlen(GetFileName(FileNode->FileName)) + 1; + Size = sizeof(CFFILE) + (ULONG)strlen(GetFileName(FileNode->FileName)) + 1; CABHeader.FileTableOffset += Size; TotalFileSize += Size; DiskSize += Size; @@ -1556,7 +1557,7 @@ uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) { do { - if (TotalBytesLeft > (uint32_t)CAB_BLOCKSIZE - CurrentIBufferSize) + if (TotalBytesLeft > (ULONG)CAB_BLOCKSIZE - CurrentIBufferSize) BytesToRead = CAB_BLOCKSIZE - CurrentIBufferSize; else BytesToRead = TotalBytesLeft; @@ -1570,7 +1571,7 @@ uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) *(unsigned char**)&CurrentIBuffer += BytesRead; - CurrentIBufferSize += (uint16_t)BytesRead; + CurrentIBufferSize += (USHORT)BytesRead; if (CurrentIBufferSize == CAB_BLOCKSIZE) { @@ -1614,7 +1615,7 @@ uint32_t CCabinet::WriteFileToScratchStorage(PCFFILE_NODE FileNode) } -uint32_t CCabinet::WriteDisk(uint32_t MoreDisks) +ULONG CCabinet::WriteDisk(ULONG MoreDisks) /* * FUNCTION: Forces the current disk to be written * ARGUMENTS: @@ -1624,7 +1625,7 @@ uint32_t CCabinet::WriteDisk(uint32_t MoreDisks) */ { PCFFILE_NODE FileNode; - uint32_t Status; + ULONG Status; ContinueFile = false; FileNode = FileListHead; @@ -1700,7 +1701,7 @@ uint32_t CCabinet::WriteDisk(uint32_t MoreDisks) } -uint32_t CCabinet::CommitDisk(uint32_t MoreDisks) +ULONG CCabinet::CommitDisk(ULONG MoreDisks) /* * FUNCTION: Commits the current disk * ARGUMENTS: @@ -1710,7 +1711,7 @@ uint32_t CCabinet::CommitDisk(uint32_t MoreDisks) */ { PCFFOLDER_NODE FolderNode; - uint32_t Status; + ULONG Status; OnCabinetName(CurrentDiskNumber, CabinetName); @@ -1725,7 +1726,7 @@ uint32_t CCabinet::CommitDisk(uint32_t MoreDisks) NULL); // No attribute template if (FileHandle == INVALID_HANDLE_VALUE) { - uint32_t Status; + ULONG Status; /* If file exists, ask to overwrite file */ if (((Status = GetLastError()) == ERROR_FILE_EXISTS) && (OnOverwrite(NULL, CabinetName))) @@ -1806,7 +1807,7 @@ uint32_t CCabinet::CommitDisk(uint32_t MoreDisks) } -uint32_t CCabinet::CloseDisk() +ULONG CCabinet::CloseDisk() /* * FUNCTION: Closes the current disk * RETURNS: @@ -1824,14 +1825,14 @@ uint32_t CCabinet::CloseDisk() } -uint32_t CCabinet::CloseCabinet() +ULONG CCabinet::CloseCabinet() /* * FUNCTION: Closes the current cabinet * RETURNS: * Status of operation */ { - uint32_t Status; + ULONG Status; DestroyFileNodes(); @@ -1862,7 +1863,7 @@ uint32_t CCabinet::CloseCabinet() } -uint32_t CCabinet::AddFile(char* FileName) +ULONG CCabinet::AddFile(char* FileName) /* * FUNCTION: Adds a file to the current disk * ARGUMENTS: @@ -1923,7 +1924,7 @@ uint32_t CCabinet::AddFile(char* FileName) /* FIXME: Check for and handle large files (>= 2GB) */ FileNode->File.FileSize = GetSizeOfFile(SrcFile); - if (FileNode->File.FileSize == (uint32_t)-1) + if (FileNode->File.FileSize == (ULONG)-1) { DPRINT(MIN_TRACE, ("Cannot read from file.\n")); FreeMemory(NewFileName); @@ -1940,7 +1941,7 @@ uint32_t CCabinet::AddFile(char* FileName) } -void CCabinet::SetMaxDiskSize(uint32_t Size) +void CCabinet::SetMaxDiskSize(ULONG Size) /* * FUNCTION: Sets the maximum size of the current disk * ARGUMENTS: @@ -2008,7 +2009,7 @@ void CCabinet::OnAdd(PCFFILE File, } -bool CCabinet::OnDiskLabel(uint32_t Number, char* Label) +bool CCabinet::OnDiskLabel(ULONG Number, char* Label) /* * FUNCTION: Called when a disk needs a label * ARGUMENTS: @@ -2022,7 +2023,7 @@ bool CCabinet::OnDiskLabel(uint32_t Number, char* Label) } -bool CCabinet::OnCabinetName(uint32_t Number, char* Name) +bool CCabinet::OnCabinetName(ULONG Number, char* Name) /* * FUNCTION: Called when a cabinet needs a name * ARGUMENTS: @@ -2037,7 +2038,7 @@ bool CCabinet::OnCabinetName(uint32_t Number, char* Name) #endif /* CAB_READ_ONLY */ -PCFFOLDER_NODE CCabinet::LocateFolderNode(uint32_t Index) +PCFFOLDER_NODE CCabinet::LocateFolderNode(ULONG Index) /* * FUNCTION: Locates a folder node * ARGUMENTS: @@ -2069,7 +2070,7 @@ PCFFOLDER_NODE CCabinet::LocateFolderNode(uint32_t Index) } -uint32_t CCabinet::GetAbsoluteOffset(PCFFILE_NODE File) +ULONG CCabinet::GetAbsoluteOffset(PCFFILE_NODE File) /* * FUNCTION: Returns the absolute offset of a file * ARGUMENTS: @@ -2082,16 +2083,16 @@ uint32_t CCabinet::GetAbsoluteOffset(PCFFILE_NODE File) DPRINT(MAX_TRACE, ("FileName '%s' FileOffset (0x%X) FileSize (%d).\n", (char*)File->FileName, - (unsigned int)File->File.FileOffset, - (unsigned int)File->File.FileSize)); + (ULONG)File->File.FileOffset, + (ULONG)File->File.FileSize)); Node = CurrentFolderNode->DataListHead; while (Node != NULL) { DPRINT(MAX_TRACE, ("GetAbsoluteOffset(): Comparing (0x%X, 0x%X) (%d).\n", - (unsigned int)Node->UncompOffset, - (unsigned int)Node->UncompOffset + Node->Data.UncompSize, - (unsigned int)Node->Data.UncompSize)); + (ULONG)Node->UncompOffset, + (ULONG)Node->UncompOffset + Node->Data.UncompSize, + (ULONG)Node->Data.UncompSize)); /* Node->Data.UncompSize will be 0 if the block is split (ie. it is the last block in this cabinet) */ @@ -2110,7 +2111,7 @@ uint32_t CCabinet::GetAbsoluteOffset(PCFFILE_NODE File) } -uint32_t CCabinet::LocateFile(char* FileName, +ULONG CCabinet::LocateFile(char* FileName, PCFFILE_NODE *File) /* * FUNCTION: Locates a file in the cabinet @@ -2124,7 +2125,7 @@ uint32_t CCabinet::LocateFile(char* FileName, */ { PCFFILE_NODE Node; - uint32_t Status; + ULONG Status; DPRINT(MAX_TRACE, ("FileName '%s'\n", FileName)); @@ -2137,7 +2138,7 @@ uint32_t CCabinet::LocateFile(char* FileName, if (!CurrentFolderNode) { DPRINT(MID_TRACE, ("Folder with index number (%d) not found.\n", - (unsigned int)Node->File.FileControlID)); + (ULONG)Node->File.FileControlID)); return CAB_STATUS_INVALID_CAB; } @@ -2155,7 +2156,7 @@ uint32_t CCabinet::LocateFile(char* FileName, } -uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) +ULONG CCabinet::ReadString(char* String, ULONG MaxLength) /* * FUNCTION: Reads a NULL-terminated string from the cabinet * ARGUMENTS: @@ -2165,10 +2166,10 @@ uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) * Status of operation */ { - uint32_t BytesRead; - uint32_t Offset; - uint32_t Status; - uint32_t Size; + ULONG BytesRead; + ULONG Offset; + ULONG Status; + ULONG Size; bool Found; Offset = 0; @@ -2186,7 +2187,7 @@ uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) Status = ReadBlock(&String[Offset], Size, &BytesRead); if ((Status != CAB_STATUS_SUCCESS) || (BytesRead != Size)) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } @@ -2207,8 +2208,8 @@ uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) Size = (BytesRead - Size) - 1; #if defined(WIN32) SetLastError(NO_ERROR); - (unsigned int)SetFilePointer(FileHandle, - -(int32_t)Size, + (ULONG)SetFilePointer(FileHandle, + -(LONG)Size, NULL, FILE_CURRENT); if (GetLastError() != NO_ERROR) @@ -2217,7 +2218,7 @@ uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) return CAB_STATUS_INVALID_CAB; } #else - if (fseek(FileHandle, (off_t)(-(int32_t)Size), SEEK_CUR) != 0) + if (fseek(FileHandle, (off_t)(-(LONG)Size), SEEK_CUR) != 0) { DPRINT(MIN_TRACE, ("fseek() failed.\n")); return CAB_STATUS_INVALID_CAB; @@ -2227,16 +2228,16 @@ uint32_t CCabinet::ReadString(char* String, uint32_t MaxLength) } -uint32_t CCabinet::ReadFileTable() +ULONG CCabinet::ReadFileTable() /* * FUNCTION: Reads the file table from the cabinet file * RETURNS: * Status of operation */ { - uint32_t i; - uint32_t Status; - uint32_t BytesRead; + ULONG i; + ULONG Status; + ULONG BytesRead; PCFFILE_NODE File; DPRINT(MAX_TRACE, ("Reading file table at absolute offset (0x%lX).\n", @@ -2275,7 +2276,7 @@ uint32_t CCabinet::ReadFileTable() if ((Status = ReadBlock(&File->File, sizeof(CFFILE), &BytesRead)) != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } @@ -2293,16 +2294,16 @@ uint32_t CCabinet::ReadFileTable() DPRINT(MAX_TRACE, ("Found file '%s' at uncompressed offset (0x%X). Size (%d bytes) ControlId (0x%X).\n", (char*)File->FileName, - (unsigned int)File->File.FileOffset, - (unsigned int)File->File.FileSize, - (unsigned int)File->File.FileControlID)); + (ULONG)File->File.FileOffset, + (ULONG)File->File.FileSize, + (ULONG)File->File.FileControlID)); } return CAB_STATUS_SUCCESS; } -uint32_t CCabinet::ReadDataBlocks(PCFFOLDER_NODE FolderNode) +ULONG CCabinet::ReadDataBlocks(PCFFOLDER_NODE FolderNode) /* * FUNCTION: Reads all CFDATA blocks for a folder from the cabinet file * ARGUMENTS: @@ -2311,12 +2312,12 @@ uint32_t CCabinet::ReadDataBlocks(PCFFOLDER_NODE FolderNode) * Status of operation */ { - uint32_t AbsoluteOffset; - uint32_t UncompOffset; + ULONG AbsoluteOffset; + ULONG UncompOffset; PCFDATA_NODE Node; - uint32_t BytesRead; - uint32_t Status; - uint32_t i; + ULONG BytesRead; + ULONG Status; + ULONG i; DPRINT(MAX_TRACE, ("Reading data blocks for folder (%lu) at absolute offset (0x%lX).\n", FolderNode->Index, FolderNode->Folder.DataOffset)); @@ -2356,16 +2357,16 @@ uint32_t CCabinet::ReadDataBlocks(PCFFOLDER_NODE FolderNode) if ((Status = ReadBlock(&Node->Data, sizeof(CFDATA), &BytesRead)) != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from file (%d).\n", (ULONG)Status)); return CAB_STATUS_INVALID_CAB; } DPRINT(MAX_TRACE, ("AbsOffset (0x%X) UncompOffset (0x%X) Checksum (0x%X) CompSize (%d) UncompSize (%d).\n", - (unsigned int)AbsoluteOffset, - (unsigned int)UncompOffset, - (unsigned int)Node->Data.Checksum, - (unsigned int)Node->Data.CompSize, - (unsigned int)Node->Data.UncompSize)); + (ULONG)AbsoluteOffset, + (ULONG)UncompOffset, + (ULONG)Node->Data.Checksum, + (ULONG)Node->Data.CompSize, + (ULONG)Node->Data.UncompSize)); Node->AbsoluteOffset = AbsoluteOffset; Node->UncompOffset = UncompOffset; @@ -2551,7 +2552,7 @@ void CCabinet::DestroyDeletedFileNodes() DPRINT(MAX_TRACE, ("Deleting file: '%s'\n", CurNode->FileName)); - TotalFileSize -= (sizeof(CFFILE) + (uint32_t)strlen(GetFileName(CurNode->FileName)) + 1); + TotalFileSize -= (sizeof(CFFILE) + (ULONG)strlen(GetFileName(CurNode->FileName)) + 1); if (CurNode->FileName) FreeMemory(CurNode->FileName); @@ -2626,9 +2627,9 @@ void CCabinet::DestroyDeletedFolderNodes() } -uint32_t CCabinet::ComputeChecksum(void* Buffer, - unsigned int Size, - uint32_t Seed) +ULONG CCabinet::ComputeChecksum(void* Buffer, + ULONG Size, + ULONG Seed) /* * FUNCTION: Computes checksum for data block * ARGUMENTS: @@ -2640,9 +2641,9 @@ uint32_t CCabinet::ComputeChecksum(void* Buffer, */ { int UlongCount; // Number of ULONGs in block - uint32_t Checksum; // Checksum accumulator + ULONG Checksum; // Checksum accumulator unsigned char* pb; - uint32_t ul; + ULONG ul; /* FIXME: Doesn't seem to be correct. EXTRACT.EXE won't accept checksums computed by this routine */ @@ -2656,11 +2657,11 @@ uint32_t CCabinet::ComputeChecksum(void* Buffer, /* Checksum integral multiple of ULONGs */ while (UlongCount-- > 0) { - /* NOTE: Build uint32_t in big/little-endian independent manner */ + /* NOTE: Build ULONG in big/little-endian independent manner */ ul = *pb++; // Get low-order byte - ul |= (((uint32_t)(*pb++)) << 8); // Add 2nd byte - ul |= (((uint32_t)(*pb++)) << 16); // Add 3nd byte - ul |= (((uint32_t)(*pb++)) << 24); // Add 4th byte + ul |= (((ULONG)(*pb++)) << 8); // Add 2nd byte + ul |= (((ULONG)(*pb++)) << 16); // Add 3nd byte + ul |= (((ULONG)(*pb++)) << 24); // Add 4th byte Checksum ^= ul; // Update checksum } @@ -2670,9 +2671,9 @@ uint32_t CCabinet::ComputeChecksum(void* Buffer, switch (Size % 4) { case 3: - ul |= (((uint32_t)(*pb++)) << 16); // Add 3rd byte + ul |= (((ULONG)(*pb++)) << 16); // Add 3rd byte case 2: - ul |= (((uint32_t)(*pb++)) << 8); // Add 2nd byte + ul |= (((ULONG)(*pb++)) << 8); // Add 2nd byte case 1: ul |= *pb++; // Get low-order byte default: @@ -2685,15 +2686,15 @@ uint32_t CCabinet::ComputeChecksum(void* Buffer, } -uint32_t CCabinet::ReadBlock(void* Buffer, - uint32_t Size, - uint32_t* BytesRead) +ULONG CCabinet::ReadBlock(void* Buffer, + ULONG Size, + PULONG BytesRead) /* * FUNCTION: Read a block of data from file * ARGUMENTS: * Buffer = Pointer to data buffer * Size = Length of data buffer - * BytesRead = Pointer to uint32_t that on return will contain + * BytesRead = Pointer to ULONG that on return will contain * number of bytes read * RETURNS: * Status of operation @@ -2706,22 +2707,22 @@ uint32_t CCabinet::ReadBlock(void* Buffer, #ifndef CAB_READ_ONLY -uint32_t CCabinet::InitCabinetHeader() +ULONG CCabinet::InitCabinetHeader() /* * FUNCTION: Initializes cabinet header and optional fields * RETURNS: * Status of operation */ { - uint32_t TotalSize; - uint32_t Size; + ULONG TotalSize; + ULONG Size; CABHeader.FileTableOffset = 0; // Not known yet CABHeader.FolderCount = 0; // Not known yet CABHeader.FileCount = 0; // Not known yet CABHeader.Flags = 0; // Not known yet - CABHeader.CabinetNumber = (uint16_t)CurrentDiskNumber; + CABHeader.CabinetNumber = (USHORT)CurrentDiskNumber; if ((CurrentDiskNumber > 0) && (OnCabinetName(PrevCabinetNumber, CabinetPrev))) { @@ -2745,10 +2746,10 @@ uint32_t CCabinet::InitCabinetHeader() DPRINT(MAX_TRACE, ("CabinetPrev '%s'.\n", CabinetPrev)); /* Calculate size of name of previous cabinet */ - TotalSize += (uint32_t)strlen(CabinetPrev) + 1; + TotalSize += (ULONG)strlen(CabinetPrev) + 1; /* Calculate size of label of previous disk */ - TotalSize += (uint32_t)strlen(DiskPrev) + 1; + TotalSize += (ULONG)strlen(DiskPrev) + 1; } if ((CABHeader.Flags & CAB_FLAG_HASNEXT) > 0) @@ -2757,12 +2758,12 @@ uint32_t CCabinet::InitCabinetHeader() DPRINT(MAX_TRACE, ("CabinetNext '%s'.\n", CabinetNext)); /* Calculate size of name of next cabinet */ - Size = (uint32_t)strlen(CabinetNext) + 1; + Size = (ULONG)strlen(CabinetNext) + 1; TotalSize += Size; NextFieldsSize = Size; /* Calculate size of label of next disk */ - Size = (uint32_t)strlen(DiskNext) + 1; + Size = (ULONG)strlen(DiskNext) + 1; TotalSize += Size; NextFieldsSize += Size; } @@ -2774,7 +2775,7 @@ uint32_t CCabinet::InitCabinetHeader() { CABHeader.Flags |= CAB_FLAG_RESERVE; TotalSize += CabinetReservedFileSize; - TotalSize += sizeof(uint32_t); /* For CabinetResSize, FolderResSize, and FileResSize fields */ + TotalSize += sizeof(ULONG); /* For CabinetResSize, FolderResSize, and FileResSize fields */ } DiskSize += TotalSize; @@ -2785,7 +2786,7 @@ uint32_t CCabinet::InitCabinetHeader() } -uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) +ULONG CCabinet::WriteCabinetHeader(bool MoreDisks) /* * FUNCTION: Writes the cabinet header and optional fields * ARGUMENTS: @@ -2796,8 +2797,8 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) { PCFFOLDER_NODE FolderNode; PCFFILE_NODE FileNode; - uint32_t BytesWritten; - uint32_t Size; + ULONG BytesWritten; + ULONG Size; if (MoreDisks) { @@ -2860,20 +2861,20 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) /* Write per-cabinet reserved area if present */ if (CABHeader.Flags & CAB_FLAG_RESERVE) { - uint32_t ReservedSize; + ULONG ReservedSize; ReservedSize = CabinetReservedFileSize & 0xffff; ReservedSize |= (0 << 16); /* Folder reserved area size */ ReservedSize |= (0 << 24); /* Folder reserved area size */ #if defined(WIN32) - if (!WriteFile(FileHandle, &ReservedSize, sizeof(uint32_t), (LPDWORD)&BytesWritten, NULL)) + if (!WriteFile(FileHandle, &ReservedSize, sizeof(ULONG), (LPDWORD)&BytesWritten, NULL)) { DPRINT(MIN_TRACE, ("Cannot write to file.\n")); return CAB_STATUS_CANNOT_WRITE; } #else - BytesWritten = sizeof(uint32_t); - if (fwrite(&ReservedSize, sizeof(uint32_t), 1, FileHandle) < 1) + BytesWritten = sizeof(ULONG); + if (fwrite(&ReservedSize, sizeof(ULONG), 1, FileHandle) < 1) { DPRINT(MIN_TRACE, ("Cannot write to file.\n")); return CAB_STATUS_CANNOT_WRITE; @@ -2901,7 +2902,7 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) DPRINT(MAX_TRACE, ("CabinetPrev '%s'.\n", CabinetPrev)); /* Write name of previous cabinet */ - Size = (uint32_t)strlen(CabinetPrev) + 1; + Size = (ULONG)strlen(CabinetPrev) + 1; #if defined(WIN32) if (!WriteFile(FileHandle, CabinetPrev, Size, (LPDWORD)&BytesWritten, NULL)) { @@ -2920,7 +2921,7 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) DPRINT(MAX_TRACE, ("DiskPrev '%s'.\n", DiskPrev)); /* Write label of previous disk */ - Size = (uint32_t)strlen(DiskPrev) + 1; + Size = (ULONG)strlen(DiskPrev) + 1; #if defined(WIN32) if (!WriteFile(FileHandle, DiskPrev, Size, (LPDWORD)&BytesWritten, NULL)) { @@ -2942,7 +2943,7 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) DPRINT(MAX_TRACE, ("CabinetNext '%s'.\n", CabinetNext)); /* Write name of next cabinet */ - Size = (uint32_t)strlen(CabinetNext) + 1; + Size = (ULONG)strlen(CabinetNext) + 1; #if defined(WIN32) if (!WriteFile(FileHandle, CabinetNext, Size, (LPDWORD)&BytesWritten, NULL)) { @@ -2961,7 +2962,7 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) DPRINT(MAX_TRACE, ("DiskNext '%s'.\n", DiskNext)); /* Write label of next disk */ - Size = (uint32_t)strlen(DiskNext) + 1; + Size = (ULONG)strlen(DiskNext) + 1; #if defined(WIN32) if (!WriteFile(FileHandle, DiskNext, Size, (LPDWORD)&BytesWritten, NULL)) { @@ -2982,7 +2983,7 @@ uint32_t CCabinet::WriteCabinetHeader(bool MoreDisks) } -uint32_t CCabinet::WriteFolderEntries() +ULONG CCabinet::WriteFolderEntries() /* * FUNCTION: Writes folder entries * RETURNS: @@ -2990,7 +2991,7 @@ uint32_t CCabinet::WriteFolderEntries() */ { PCFFOLDER_NODE FolderNode; - uint32_t BytesWritten; + ULONG BytesWritten; DPRINT(MAX_TRACE, ("Writing folder table.\n")); @@ -3028,7 +3029,7 @@ uint32_t CCabinet::WriteFolderEntries() } -uint32_t CCabinet::WriteFileEntries() +ULONG CCabinet::WriteFileEntries() /* * FUNCTION: Writes file entries for all files * RETURNS: @@ -3036,7 +3037,7 @@ uint32_t CCabinet::WriteFileEntries() */ { PCFFILE_NODE File; - uint32_t BytesWritten; + ULONG BytesWritten; bool SetCont = false; DPRINT(MAX_TRACE, ("Writing file table.\n")); @@ -3109,7 +3110,7 @@ uint32_t CCabinet::WriteFileEntries() } -uint32_t CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) +ULONG CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) /* * FUNCTION: Writes data blocks to the cabinet * ARGUMENTS: @@ -3119,9 +3120,9 @@ uint32_t CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) */ { PCFDATA_NODE DataNode; - uint32_t BytesWritten; - uint32_t BytesRead; - uint32_t Status; + ULONG BytesWritten; + ULONG BytesRead; + ULONG Status; DataNode = FolderNode->DataListHead; if (DataNode != NULL) @@ -3140,7 +3141,7 @@ uint32_t CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) Status = ScratchFile->ReadBlock(&DataNode->Data, InputBuffer, &BytesRead); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot read from scratch file (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot read from scratch file (%d).\n", (ULONG)Status)); return Status; } @@ -3182,15 +3183,15 @@ uint32_t CCabinet::CommitDataBlocks(PCFFOLDER_NODE FolderNode) } -uint32_t CCabinet::WriteDataBlock() +ULONG CCabinet::WriteDataBlock() /* * FUNCTION: Writes the current data block to the scratch file * RETURNS: * Status of operation */ { - uint32_t Status; - uint32_t BytesWritten; + ULONG Status; + ULONG BytesWritten; PCFDATA_NODE DataNode; if (!BlockIsSplit) @@ -3224,14 +3225,14 @@ uint32_t CCabinet::WriteDataBlock() if (BlockIsSplit) { - DataNode->Data.CompSize = (uint16_t)(MaxDiskSize - DiskSize); + DataNode->Data.CompSize = (USHORT)(MaxDiskSize - DiskSize); DataNode->Data.UncompSize = 0; CreateNewDisk = true; } else { - DataNode->Data.CompSize = (uint16_t)CurrentOBufferSize; - DataNode->Data.UncompSize = (uint16_t)CurrentIBufferSize; + DataNode->Data.CompSize = (USHORT)CurrentOBufferSize; + DataNode->Data.UncompSize = (USHORT)CurrentIBufferSize; } DataNode->Data.Checksum = 0; @@ -3241,9 +3242,9 @@ uint32_t CCabinet::WriteDataBlock() //DataNode->Data.Checksum = ComputeChecksum(CurrentOBuffer, DataNode->Data.CompSize, 0); DPRINT(MAX_TRACE, ("Writing block. Checksum (0x%X) CompSize (%d) UncompSize (%d).\n", - (unsigned int)DataNode->Data.Checksum, - (unsigned int)DataNode->Data.CompSize, - (unsigned int)DataNode->Data.UncompSize)); + (ULONG)DataNode->Data.Checksum, + (ULONG)DataNode->Data.CompSize, + (ULONG)DataNode->Data.UncompSize)); Status = ScratchFile->WriteBlock(&DataNode->Data, CurrentOBuffer, &BytesWritten); @@ -3269,12 +3270,11 @@ uint32_t CCabinet::WriteDataBlock() return CAB_STATUS_SUCCESS; } - #if !defined(WIN32) void CCabinet::ConvertDateAndTime(time_t* Time, - uint16_t* DosDate, - uint16_t* DosTime) + PUSHORT DosDate, + PUSHORT DosTime) /* * FUNCTION: Returns file times of a file * ARGUMENTS: @@ -3304,7 +3304,7 @@ void CCabinet::ConvertDateAndTime(time_t* Time, #endif // !WIN32 -uint32_t CCabinet::GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File) +ULONG CCabinet::GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File) /* * FUNCTION: Returns file times of a file * ARGUMENTS: @@ -3344,7 +3344,7 @@ uint32_t CCabinet::GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File) } -uint32_t CCabinet::GetAttributesOnFile(PCFFILE_NODE File) +ULONG CCabinet::GetAttributesOnFile(PCFFILE_NODE File) /* * FUNCTION: Returns attributes on a file * ARGUMENTS: @@ -3354,7 +3354,7 @@ uint32_t CCabinet::GetAttributesOnFile(PCFFILE_NODE File) */ { #if defined(WIN32) - int32_t Attributes; + LONG Attributes; Attributes = GetFileAttributes(File->FileName); if (Attributes == -1) @@ -3407,7 +3407,7 @@ uint32_t CCabinet::GetAttributesOnFile(PCFFILE_NODE File) } -uint32_t CCabinet::SetAttributesOnFile(PCFFILE_NODE File) +ULONG CCabinet::SetAttributesOnFile(PCFFILE_NODE File) /* * FUNCTION: Sets attributes on a file * ARGUMENTS: @@ -3417,7 +3417,7 @@ uint32_t CCabinet::SetAttributesOnFile(PCFFILE_NODE File) */ { #if defined(WIN32) - uint32_t Attributes = 0; + ULONG Attributes = 0; if (File->File.Attributes & CAB_ATTRIB_READONLY) Attributes |= FILE_ATTRIBUTE_READONLY; diff --git a/reactos/tools/cabman/cabinet.h b/reactos/tools/cabman/cabinet.h index 09f12b76294..091a1a1d421 100755 --- a/reactos/tools/cabman/cabinet.h +++ b/reactos/tools/cabman/cabinet.h @@ -14,13 +14,15 @@ #include #include #include +#include +typedef unsigned short USHORT, *PUSHORT; +#define _W64 #include #ifndef MAX_PATH #define MAX_PATH 260 #endif #endif -#include #include #include #include @@ -58,11 +60,7 @@ #ifdef DBG -extern uint32_t DebugTraceLevel; - -#ifdef _MSC_VER -#define __FUNCTION__ "" -#endif//_MSC_VER +extern ULONG DebugTraceLevel; #define DPRINT(_t_, _x_) \ if (((DebugTraceLevel & NORMAL_MASK) >= _t_) || \ @@ -123,20 +121,20 @@ extern uint32_t DebugTraceLevel; typedef struct _CFHEADER { - uint32_t Signature; // File signature 'MSCF' (CAB_SIGNATURE) - uint32_t Reserved1; // Reserved field - uint32_t CabinetSize; // Cabinet file size - uint32_t Reserved2; // Reserved field - uint32_t FileTableOffset; // Offset of first CFFILE - uint32_t Reserved3; // Reserved field - uint16_t Version; // Cabinet version (CAB_VERSION) - uint16_t FolderCount; // Number of folders - uint16_t FileCount; // Number of files - uint16_t Flags; // Cabinet flags (CAB_FLAG_*) - uint16_t SetID; // Cabinet set id - uint16_t CabinetNumber; // Zero-based cabinet number + ULONG Signature; // File signature 'MSCF' (CAB_SIGNATURE) + ULONG Reserved1; // Reserved field + ULONG CabinetSize; // Cabinet file size + ULONG Reserved2; // Reserved field + ULONG FileTableOffset; // Offset of first CFFILE + ULONG Reserved3; // Reserved field + USHORT Version; // Cabinet version (CAB_VERSION) + USHORT FolderCount; // Number of folders + USHORT FileCount; // Number of files + USHORT Flags; // Cabinet flags (CAB_FLAG_*) + USHORT SetID; // Cabinet set id + USHORT CabinetNumber; // Zero-based cabinet number /* Optional fields (depends on Flags) - uint16_t CabinetResSize // Per-cabinet reserved area size + USHORT CabinetResSize // Per-cabinet reserved area size char FolderResSize // Per-folder reserved area size char FileResSize // Per-file reserved area size char CabinetReserved[] // Per-cabinet reserved area @@ -150,9 +148,9 @@ typedef struct _CFHEADER typedef struct _CFFOLDER { - uint32_t DataOffset; // Absolute offset of first CFDATA block in this folder - uint16_t DataBlockCount; // Number of CFDATA blocks in this folder in this cabinet - uint16_t CompressionType; // Type of compression used for all CFDATA blocks in this folder + ULONG DataOffset; // Absolute offset of first CFDATA block in this folder + USHORT DataBlockCount; // Number of CFDATA blocks in this folder in this cabinet + USHORT CompressionType; // Type of compression used for all CFDATA blocks in this folder /* Optional fields (depends on Flags) char FolderReserved[] // Per-folder reserved area */ @@ -161,21 +159,21 @@ typedef struct _CFFOLDER typedef struct _CFFILE { - uint32_t FileSize; // Uncompressed file size in bytes - uint32_t FileOffset; // Uncompressed offset of file in the folder - uint16_t FileControlID; // File control ID (CAB_FILE_*) - uint16_t FileDate; // File date stamp, as used by DOS - uint16_t FileTime; // File time stamp, as used by DOS - uint16_t Attributes; // File attributes (CAB_ATTRIB_*) + ULONG FileSize; // Uncompressed file size in bytes + ULONG FileOffset; // Uncompressed offset of file in the folder + USHORT FileControlID; // File control ID (CAB_FILE_*) + USHORT FileDate; // File date stamp, as used by DOS + USHORT FileTime; // File time stamp, as used by DOS + USHORT Attributes; // File attributes (CAB_ATTRIB_*) /* After this is the NULL terminated filename */ } CFFILE, *PCFFILE; typedef struct _CFDATA { - uint32_t Checksum; // Checksum of CFDATA entry - uint16_t CompSize; // Number of compressed bytes in this block - uint16_t UncompSize; // Number of uncompressed bytes in this block + ULONG Checksum; // Checksum of CFDATA entry + USHORT CompSize; // Number of compressed bytes in this block + USHORT UncompSize; // Number of uncompressed bytes in this block /* Optional fields (depends on Flags) char DataReserved[] // Per-datablock reserved area */ @@ -185,9 +183,9 @@ typedef struct _CFDATA_NODE { struct _CFDATA_NODE *Next; struct _CFDATA_NODE *Prev; - uint32_t ScratchFilePosition; // Absolute offset in scratch file - uint32_t AbsoluteOffset; // Absolute offset in cabinet - uint32_t UncompOffset; // Uncompressed offset in folder + ULONG ScratchFilePosition; // Absolute offset in scratch file + ULONG AbsoluteOffset; // Absolute offset in cabinet + ULONG UncompOffset; // Uncompressed offset in folder CFDATA Data; } CFDATA_NODE, *PCFDATA_NODE; @@ -195,12 +193,12 @@ typedef struct _CFFOLDER_NODE { struct _CFFOLDER_NODE *Next; struct _CFFOLDER_NODE *Prev; - uint32_t UncompOffset; // File size accumulator - uint32_t AbsoluteOffset; - uint32_t TotalFolderSize; // Total size of folder in current disk + ULONG UncompOffset; // File size accumulator + ULONG AbsoluteOffset; + ULONG TotalFolderSize; // Total size of folder in current disk PCFDATA_NODE DataListHead; PCFDATA_NODE DataListTail; - uint32_t Index; + ULONG Index; bool Commit; // true if the folder should be committed bool Delete; // true if marked for deletion CFFOLDER Folder; @@ -254,15 +252,15 @@ public: /* Default destructor */ virtual ~CCABCodec() {}; /* Compresses a data block */ - virtual uint32_t Compress(void* OutputBuffer, + virtual ULONG Compress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) = 0; + ULONG InputLength, + PULONG OutputLength) = 0; /* Uncompresses a data block */ - virtual uint32_t Uncompress(void* OutputBuffer, + virtual ULONG Uncompress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) = 0; + ULONG InputLength, + PULONG OutputLength) = 0; }; @@ -289,13 +287,13 @@ public: CCFDATAStorage(); /* Default destructor */ virtual ~CCFDATAStorage(); - uint32_t Create(char* FileName); - uint32_t Destroy(); - uint32_t Truncate(); - uint32_t Position(); - uint32_t Seek(int32_t Position); - uint32_t ReadBlock(PCFDATA Data, void* Buffer, uint32_t* BytesRead); - uint32_t WriteBlock(PCFDATA Data, void* Buffer, uint32_t* BytesWritten); + ULONG Create(char* FileName); + ULONG Destroy(); + ULONG Truncate(); + ULONG Position(); + ULONG Seek(LONG Position); + ULONG ReadBlock(PCFDATA Data, void* Buffer, PULONG BytesRead); + ULONG WriteBlock(PCFDATA Data, void* Buffer, PULONG BytesWritten); private: char FullName[MAX_PATH]; bool FileCreated; @@ -319,7 +317,7 @@ public: /* Removes a filename from a fully qualified filename */ void RemoveFileName(char* Path); /* Normalizes a path */ - bool NormalizePath(char* Path, uint32_t Length); + bool NormalizePath(char* Path, ULONG Length); /* Returns name of cabinet file */ char* GetCabinetName(); /* Sets the name of the cabinet file */ @@ -333,40 +331,40 @@ public: /* Returns destination path */ char* GetDestinationPath(); /* Returns zero-based current disk number */ - uint32_t GetCurrentDiskNumber(); + ULONG GetCurrentDiskNumber(); /* Opens the current cabinet file */ - uint32_t Open(); + ULONG Open(); /* Closes the current open cabinet file */ void Close(); /* Locates the first file in the current cabinet file that matches a search criteria */ - uint32_t FindFirst(char* FileName, PCAB_SEARCH Search); + ULONG FindFirst(char* FileName, PCAB_SEARCH Search); /* Locates the next file in the current cabinet file */ - uint32_t FindNext(PCAB_SEARCH Search); + ULONG FindNext(PCAB_SEARCH Search); /* Extracts a file from the current cabinet file */ - uint32_t ExtractFile(char* FileName); + ULONG ExtractFile(char* FileName); /* Select codec engine to use */ - void SelectCodec(uint32_t Id); + void SelectCodec(ULONG Id); #ifndef CAB_READ_ONLY /* Creates a new cabinet file */ - uint32_t NewCabinet(); + ULONG NewCabinet(); /* Forces a new disk to be created */ - uint32_t NewDisk(); + ULONG NewDisk(); /* Forces a new folder to be created */ - uint32_t NewFolder(); + ULONG NewFolder(); /* Writes a file to scratch storage */ - uint32_t WriteFileToScratchStorage(PCFFILE_NODE FileNode); + ULONG WriteFileToScratchStorage(PCFFILE_NODE FileNode); /* Forces the current disk to be written */ - uint32_t WriteDisk(uint32_t MoreDisks); + ULONG WriteDisk(ULONG MoreDisks); /* Commits the current disk */ - uint32_t CommitDisk(uint32_t MoreDisks); + ULONG CommitDisk(ULONG MoreDisks); /* Closes the current disk */ - uint32_t CloseDisk(); + ULONG CloseDisk(); /* Closes the current cabinet */ - uint32_t CloseCabinet(); + ULONG CloseCabinet(); /* Adds a file to the current disk */ - uint32_t AddFile(char* FileName); + ULONG AddFile(char* FileName); /* Sets the maximum size of the current disk */ - void SetMaxDiskSize(uint32_t Size); + void SetMaxDiskSize(ULONG Size); #endif /* CAB_READ_ONLY */ /* Default event handlers */ @@ -381,17 +379,17 @@ public: /* Handler called when a file is about to be added */ virtual void OnAdd(PCFFILE Entry, char* FileName); /* Handler called when a cabinet need a name */ - virtual bool OnCabinetName(uint32_t Number, char* Name); + virtual bool OnCabinetName(ULONG Number, char* Name); /* Handler called when a disk needs a label */ - virtual bool OnDiskLabel(uint32_t Number, char* Label); + virtual bool OnDiskLabel(ULONG Number, char* Label); #endif /* CAB_READ_ONLY */ private: - PCFFOLDER_NODE LocateFolderNode(uint32_t Index); - uint32_t GetAbsoluteOffset(PCFFILE_NODE File); - uint32_t LocateFile(char* FileName, PCFFILE_NODE *File); - uint32_t ReadString(char* String, uint32_t MaxLength); - uint32_t ReadFileTable(); - uint32_t ReadDataBlocks(PCFFOLDER_NODE FolderNode); + PCFFOLDER_NODE LocateFolderNode(ULONG Index); + ULONG GetAbsoluteOffset(PCFFILE_NODE File); + ULONG LocateFile(char* FileName, PCFFILE_NODE *File); + ULONG ReadString(char* String, ULONG MaxLength); + ULONG ReadFileTable(); + ULONG ReadDataBlocks(PCFFOLDER_NODE FolderNode); PCFFOLDER_NODE NewFolderNode(); PCFFILE_NODE NewFileNode(); PCFDATA_NODE NewDataNode(PCFFOLDER_NODE FolderNode); @@ -400,45 +398,45 @@ private: void DestroyDeletedFileNodes(); void DestroyFolderNodes(); void DestroyDeletedFolderNodes(); - uint32_t ComputeChecksum(void* Buffer, unsigned int Size, uint32_t Seed); - uint32_t ReadBlock(void* Buffer, uint32_t Size, uint32_t* BytesRead); + ULONG ComputeChecksum(void* Buffer, ULONG Size, ULONG Seed); + ULONG ReadBlock(void* Buffer, ULONG Size, PULONG BytesRead); #ifndef CAB_READ_ONLY - uint32_t InitCabinetHeader(); - uint32_t WriteCabinetHeader(bool MoreDisks); - uint32_t WriteFolderEntries(); - uint32_t WriteFileEntries(); - uint32_t CommitDataBlocks(PCFFOLDER_NODE FolderNode); - uint32_t WriteDataBlock(); - uint32_t GetAttributesOnFile(PCFFILE_NODE File); - uint32_t SetAttributesOnFile(PCFFILE_NODE File); - uint32_t GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File); + ULONG InitCabinetHeader(); + ULONG WriteCabinetHeader(bool MoreDisks); + ULONG WriteFolderEntries(); + ULONG WriteFileEntries(); + ULONG CommitDataBlocks(PCFFOLDER_NODE FolderNode); + ULONG WriteDataBlock(); + ULONG GetAttributesOnFile(PCFFILE_NODE File); + ULONG SetAttributesOnFile(PCFFILE_NODE File); + ULONG GetFileTimes(FILEHANDLE FileHandle, PCFFILE_NODE File); #if !defined(WIN32) - void ConvertDateAndTime(time_t* Time, uint16_t* DosDate, uint16_t* DosTime); + void ConvertDateAndTime(time_t* Time, PUSHORT DosDate, PUSHORT DosTime); #endif #endif /* CAB_READ_ONLY */ - uint32_t CurrentDiskNumber; // Zero based disk number + ULONG CurrentDiskNumber; // Zero based disk number char CabinetName[256]; // Filename of current cabinet char CabinetPrev[256]; // Filename of previous cabinet char DiskPrev[256]; // Label of cabinet in file CabinetPrev char CabinetNext[256]; // Filename of next cabinet char DiskNext[256]; // Label of cabinet in file CabinetNext - uint32_t TotalHeaderSize; // Size of header and optional fields - uint32_t NextFieldsSize; // Size of next cabinet name and next disk label - uint32_t TotalFolderSize; // Size of all folder entries - uint32_t TotalFileSize; // Size of all file entries - uint32_t FolderUncompSize; // Uncompressed size of folder - uint32_t BytesLeftInBlock; // Number of bytes left in current block + ULONG TotalHeaderSize; // Size of header and optional fields + ULONG NextFieldsSize; // Size of next cabinet name and next disk label + ULONG TotalFolderSize; // Size of all folder entries + ULONG TotalFileSize; // Size of all file entries + ULONG FolderUncompSize; // Uncompressed size of folder + ULONG BytesLeftInBlock; // Number of bytes left in current block bool ReuseBlock; char DestPath[MAX_PATH]; char CabinetReservedFile[MAX_PATH]; void* CabinetReservedFileBuffer; - uint32_t CabinetReservedFileSize; + ULONG CabinetReservedFileSize; FILEHANDLE FileHandle; bool FileOpen; CFHEADER CABHeader; - uint32_t CabinetReserved; - uint32_t FolderReserved; - uint32_t DataReserved; + ULONG CabinetReserved; + ULONG FolderReserved; + ULONG DataReserved; PCFFOLDER_NODE FolderListHead; PCFFOLDER_NODE FolderListTail; PCFFOLDER_NODE CurrentFolderNode; @@ -446,32 +444,32 @@ private: PCFFILE_NODE FileListHead; PCFFILE_NODE FileListTail; CCABCodec *Codec; - uint32_t CodecId; + ULONG CodecId; bool CodecSelected; void* InputBuffer; void* CurrentIBuffer; // Current offset in input buffer - uint32_t CurrentIBufferSize; // Bytes left in input buffer + ULONG CurrentIBufferSize; // Bytes left in input buffer void* OutputBuffer; - uint32_t TotalCompSize; // Total size of current CFDATA block + ULONG TotalCompSize; // Total size of current CFDATA block void* CurrentOBuffer; // Current offset in output buffer - uint32_t CurrentOBufferSize; // Bytes left in output buffer - uint32_t BytesLeftInCabinet; + ULONG CurrentOBufferSize; // Bytes left in output buffer + ULONG BytesLeftInCabinet; bool RestartSearch; - uint32_t LastFileOffset; // Uncompressed offset of last extracted file + ULONG LastFileOffset; // Uncompressed offset of last extracted file #ifndef CAB_READ_ONLY - uint32_t LastBlockStart; // Uncompressed offset of last block in folder - uint32_t MaxDiskSize; - uint32_t DiskSize; - uint32_t PrevCabinetNumber; // Previous cabinet number (where split file starts) + ULONG LastBlockStart; // Uncompressed offset of last block in folder + ULONG MaxDiskSize; + ULONG DiskSize; + ULONG PrevCabinetNumber; // Previous cabinet number (where split file starts) bool CreateNewDisk; bool CreateNewFolder; CCFDATAStorage *ScratchFile; FILEHANDLE SourceFile; bool ContinueFile; - uint32_t TotalBytesLeft; + ULONG TotalBytesLeft; bool BlockIsSplit; // true if current data block is split - uint32_t NextFolderNumber; // Zero based folder number + ULONG NextFolderNumber; // Zero based folder number #endif /* CAB_READ_ONLY */ }; diff --git a/reactos/tools/cabman/cabman.h b/reactos/tools/cabman/cabman.h index 9b7a9b6fad8..8d3ddb14bf7 100755 --- a/reactos/tools/cabman/cabman.h +++ b/reactos/tools/cabman/cabman.h @@ -37,7 +37,7 @@ private: virtual void OnAdd(PCFFILE Entry, char* FileName); /* Configuration */ bool ProcessAll; - uint32_t Mode; + ULONG Mode; bool PromptOnOverwrite; char Location[MAX_PATH]; char FileName[MAX_PATH]; diff --git a/reactos/tools/cabman/cabman.sln b/reactos/tools/cabman/cabman.sln new file mode 100644 index 00000000000..1ebda2ad43c --- /dev/null +++ b/reactos/tools/cabman/cabman.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual C++ Express 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cabman", "cabman.vcproj", "{3A9CBD2C-BD87-4838-917E-F85C49BC3617}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3A9CBD2C-BD87-4838-917E-F85C49BC3617}.Debug|Win32.ActiveCfg = Debug|Win32 + {3A9CBD2C-BD87-4838-917E-F85C49BC3617}.Debug|Win32.Build.0 = Debug|Win32 + {3A9CBD2C-BD87-4838-917E-F85C49BC3617}.Release|Win32.ActiveCfg = Release|Win32 + {3A9CBD2C-BD87-4838-917E-F85C49BC3617}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/reactos/tools/cabman/cabman.vcproj b/reactos/tools/cabman/cabman.vcproj new file mode 100644 index 00000000000..762cbf88012 --- /dev/null +++ b/reactos/tools/cabman/cabman.vcproj @@ -0,0 +1,232 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/reactos/tools/cabman/dfp.cxx b/reactos/tools/cabman/dfp.cxx index 6b9ac332769..c5231d5af23 100755 --- a/reactos/tools/cabman/dfp.cxx +++ b/reactos/tools/cabman/dfp.cxx @@ -12,6 +12,7 @@ * CSH 15/08-2003 Made it portable * CF 04/05-2007 Reformatted the code to be more consistent and use TABs instead of spaces * CF 04/05-2007 Made it compatible with 64-bit operating systems + * CF 18/08-2007 Use typedefs64.h and the Windows types for compatibility with 64-bit operating systems */ #include #include @@ -21,31 +22,31 @@ #if defined(WIN32) #define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static int32_t _GetSizeOfFile(FILEHANDLE handle) +static LONG _GetSizeOfFile(FILEHANDLE handle) { - uint32_t size = GetFileSize(handle, NULL); + ULONG size = GetFileSize(handle, NULL); if (size == INVALID_FILE_SIZE) return -1; return size; } #define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, uint32_t size, uint32_t* bytesread) +static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) { return ReadFile(handle, buffer, size, (LPDWORD)bytesread, NULL); } #else #define GetSizeOfFile(handle) _GetSizeOfFile(handle) -static int32_t _GetSizeOfFile(FILEHANDLE handle) +static LONG _GetSizeOfFile(FILEHANDLE handle) { - int32_t size; + LONG size; fseek(handle, 0, SEEK_END); size = ftell(handle); fseek(handle, 0, SEEK_SET); return size; } #define ReadFileData(handle, buffer, size, bytesread) _ReadFileData(handle, buffer, size, bytesread) -static bool _ReadFileData(FILEHANDLE handle, void* buffer, uint32_t size, uint32_t* bytesread) +static bool _ReadFileData(FILEHANDLE handle, void* buffer, ULONG size, PULONG bytesread) { *bytesread = fread(buffer, 1, size, handle); return *bytesread == size; @@ -128,7 +129,7 @@ void CDFParser::WriteInfLine(char* InfLine) char eolbuf[2]; char* destpath; #if defined(WIN32) - uint32_t BytesWritten; + ULONG BytesWritten; #endif if (DontGenerateInf) @@ -160,14 +161,14 @@ void CDFParser::WriteInfLine(char* InfLine) NULL); // No attribute template if (InfFileHandle == INVALID_HANDLE_VALUE) { - DPRINT(MID_TRACE, ("Error creating '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("Error creating '%d'.\n", (ULONG)GetLastError())); return; } #else /* !WIN32 */ InfFileHandle = fopen(buf, "wb"); if (InfFileHandle == NULL) { - DPRINT(MID_TRACE, ("Error creating '%d'.\n", (unsigned int)errno)); + DPRINT(MID_TRACE, ("Error creating '%d'.\n", (ULONG)errno)); return; } #endif @@ -176,7 +177,7 @@ void CDFParser::WriteInfLine(char* InfLine) #if defined(WIN32) if (!WriteFile(InfFileHandle, InfLine, (DWORD)strlen(InfLine), (LPDWORD)&BytesWritten, NULL)) { - DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (ULONG)GetLastError())); return; } #else @@ -190,7 +191,7 @@ void CDFParser::WriteInfLine(char* InfLine) #if defined(WIN32) if (!WriteFile(InfFileHandle, eolbuf, sizeof(eolbuf), (LPDWORD)&BytesWritten, NULL)) { - DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (unsigned int)GetLastError())); + DPRINT(MID_TRACE, ("ERROR WRITING '%d'.\n", (ULONG)GetLastError())); return; } #else @@ -200,7 +201,7 @@ void CDFParser::WriteInfLine(char* InfLine) } -uint32_t CDFParser::Load(char* FileName) +ULONG CDFParser::Load(char* FileName) /* * FUNCTION: Loads a directive file into memory * ARGUMENTS: @@ -209,8 +210,8 @@ uint32_t CDFParser::Load(char* FileName) * Status of operation */ { - uint32_t BytesRead; - int32_t FileSize; + ULONG BytesRead; + LONG FileSize; if (FileLoaded) return CAB_STATUS_SUCCESS; @@ -239,7 +240,7 @@ uint32_t CDFParser::Load(char* FileName) return CAB_STATUS_CANNOT_OPEN; } - FileBufferSize = (uint32_t)FileSize; + FileBufferSize = (ULONG)FileSize; FileBuffer = (char*)AllocateMemory(FileBufferSize); if (!FileBuffer) @@ -266,7 +267,7 @@ uint32_t CDFParser::Load(char* FileName) } -uint32_t CDFParser::Parse() +ULONG CDFParser::Parse() /* * FUNCTION: Parses a loaded directive file * RETURNS: @@ -274,7 +275,7 @@ uint32_t CDFParser::Parse() */ { bool Command; - uint32_t Status; + ULONG Status; if (!FileLoaded) return CAB_STATUS_NOFILE; @@ -346,7 +347,7 @@ uint32_t CDFParser::Parse() if (Status == CAB_STATUS_FAILURE) { - printf("Directive file contains errors at line %d.\n", (unsigned int)CurrentLine); + printf("Directive file contains errors at line %d.\n", (ULONG)CurrentLine); DPRINT(MID_TRACE, ("Error while executing command.\n")); } @@ -360,7 +361,7 @@ uint32_t CDFParser::Parse() if (Status != CAB_STATUS_SUCCESS) { - printf("Directive file contains errors at line %d.\n", (unsigned int)CurrentLine); + printf("Directive file contains errors at line %d.\n", (ULONG)CurrentLine); DPRINT(MID_TRACE, ("Error while copying file.\n")); } @@ -381,8 +382,8 @@ uint32_t CDFParser::Parse() break; default: - printf("Directive file contains errors at line %d.\n", (unsigned int)CurrentLine); - DPRINT(MID_TRACE, ("Token is (%d).\n", (unsigned int)CurrentToken)); + printf("Directive file contains errors at line %d.\n", (ULONG)CurrentLine); + DPRINT(MID_TRACE, ("Token is (%d).\n", (ULONG)CurrentToken)); return CAB_STATUS_SUCCESS; } NextToken(); @@ -401,7 +402,7 @@ uint32_t CDFParser::Parse() Status = CloseDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (ULONG)Status)); return Status; } } @@ -411,7 +412,7 @@ uint32_t CDFParser::Parse() Status = CloseCabinet(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot close cabinet (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot close cabinet (%d).\n", (ULONG)Status)); return Status; } } @@ -437,7 +438,7 @@ void CDFParser::SetFileRelativePath(char* Path) } -bool CDFParser::OnDiskLabel(uint32_t Number, char* Label) +bool CDFParser::OnDiskLabel(ULONG Number, char* Label) /* * FUNCTION: Called when a disk needs a label * ARGUMENTS: @@ -448,13 +449,13 @@ bool CDFParser::OnDiskLabel(uint32_t Number, char* Label) */ { char Buffer[20]; - unsigned int i; + ULONG i; int j; char ch; Number += 1; - DPRINT(MID_TRACE, ("Giving disk (%d) a label...\n", (unsigned int)Number)); + DPRINT(MID_TRACE, ("Giving disk (%d) a label...\n", (ULONG)Number)); if (GetDiskName(&DiskLabel, Number, Label)) return true; @@ -470,7 +471,7 @@ bool CDFParser::OnDiskLabel(uint32_t Number, char* Label) { sprintf(Buffer, "%lu", Number); strcat(Label, Buffer); - j += (int)strlen(Buffer); + j += (LONG)strlen(Buffer); } else { @@ -489,7 +490,7 @@ bool CDFParser::OnDiskLabel(uint32_t Number, char* Label) } -bool CDFParser::OnCabinetName(uint32_t Number, char* Name) +bool CDFParser::OnCabinetName(ULONG Number, char* Name) /* * FUNCTION: Called when a cabinet needs a name * ARGUMENTS: @@ -500,13 +501,13 @@ bool CDFParser::OnCabinetName(uint32_t Number, char* Name) */ { char Buffer[MAX_PATH]; - unsigned int i; + ULONG i; int j; char ch; Number += 1; - DPRINT(MID_TRACE, ("Giving cabinet (%d) a name...\n", (unsigned int)Number)); + DPRINT(MID_TRACE, ("Giving cabinet (%d) a name...\n", (ULONG)Number)); if (GetDiskName(&CabinetName, Number, Buffer)) { @@ -518,7 +519,7 @@ bool CDFParser::OnCabinetName(uint32_t Number, char* Name) if (CabinetNameTemplateSet) { strcpy(Name, GetDestinationPath()); - j = (int)strlen(Name); + j = (LONG)strlen(Name); for (i = 0; i < strlen(CabinetNameTemplate); i++) { ch = CabinetNameTemplate[i]; @@ -526,7 +527,7 @@ bool CDFParser::OnCabinetName(uint32_t Number, char* Name) { sprintf(Buffer, "%lu", Number); strcat(Name, Buffer); - j += (int)strlen(Buffer); + j += (LONG)strlen(Buffer); } else { @@ -544,7 +545,7 @@ bool CDFParser::OnCabinetName(uint32_t Number, char* Name) } -bool CDFParser::SetDiskName(PCABINET_NAME *List, uint32_t Number, char* String) +bool CDFParser::SetDiskName(PCABINET_NAME *List, ULONG Number, char* String) /* * FUNCTION: Sets an entry in a list * ARGUMENTS: @@ -582,7 +583,7 @@ bool CDFParser::SetDiskName(PCABINET_NAME *List, uint32_t Number, char* String) } -bool CDFParser::GetDiskName(PCABINET_NAME *List, uint32_t Number, char* String) +bool CDFParser::GetDiskName(PCABINET_NAME *List, ULONG Number, char* String) /* * FUNCTION: Returns an entry in a list * ARGUMENTS: @@ -610,7 +611,7 @@ bool CDFParser::GetDiskName(PCABINET_NAME *List, uint32_t Number, char* String) } -bool CDFParser::SetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t Value) +bool CDFParser::SetDiskNumber(PDISK_NUMBER *List, ULONG Number, ULONG Value) /* * FUNCTION: Sets an entry in a list * ARGUMENTS: @@ -648,7 +649,7 @@ bool CDFParser::SetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t Valu } -bool CDFParser::GetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t* Value) +bool CDFParser::GetDiskNumber(PDISK_NUMBER *List, ULONG Number, PULONG Value) /* * FUNCTION: Returns an entry in a list * ARGUMENTS: @@ -676,7 +677,7 @@ bool CDFParser::GetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t* Val } -bool CDFParser::DoDiskLabel(uint32_t Number, char* Label) +bool CDFParser::DoDiskLabel(ULONG Number, char* Label) /* * FUNCTION: Sets the label of a disk * ARGUMENTS: @@ -686,7 +687,7 @@ bool CDFParser::DoDiskLabel(uint32_t Number, char* Label) * false if there was not enough free memory available */ { - DPRINT(MID_TRACE, ("Setting label of disk (%d) to '%s'\n", (unsigned int)Number, Label)); + DPRINT(MID_TRACE, ("Setting label of disk (%d) to '%s'\n", (ULONG)Number, Label)); return SetDiskName(&DiskLabel, Number, Label); } @@ -706,7 +707,7 @@ void CDFParser::DoDiskLabelTemplate(char* Template) } -bool CDFParser::DoCabinetName(uint32_t Number, char* Name) +bool CDFParser::DoCabinetName(ULONG Number, char* Name) /* * FUNCTION: Sets the name of a cabinet * ARGUMENTS: @@ -716,7 +717,7 @@ bool CDFParser::DoCabinetName(uint32_t Number, char* Name) * false if there was not enough free memory available */ { - DPRINT(MID_TRACE, ("Setting name of cabinet (%d) to '%s'\n", (unsigned int)Number, Name)); + DPRINT(MID_TRACE, ("Setting name of cabinet (%d) to '%s'\n", (ULONG)Number, Name)); return SetDiskName(&CabinetName, Number, Name); } @@ -736,7 +737,7 @@ void CDFParser::DoCabinetNameTemplate(char* Template) } -uint32_t CDFParser::DoMaxDiskSize(bool NumberValid, uint32_t Number) +ULONG CDFParser::DoMaxDiskSize(bool NumberValid, ULONG Number) /* * FUNCTION: Sets the maximum disk size * ARGUMENTS: @@ -748,7 +749,7 @@ uint32_t CDFParser::DoMaxDiskSize(bool NumberValid, uint32_t Number) * Standard sizes are 2.88M, 1.44M, 1.25M, 1.2M, 720K, 360K, and CDROM */ { - uint32_t A, B, Value; + ULONG A, B, Value; if (IsNextToken(TokenInteger, true)) { @@ -853,14 +854,14 @@ void CDFParser::DoInfFileName(char* FileName) InfFileNameSet = true; } -uint32_t CDFParser::SetupNewDisk() +ULONG CDFParser::SetupNewDisk() /* * FUNCTION: Sets up parameters for a new disk * RETURNS: * Status of operation */ { - uint32_t Value; + ULONG Value; if (!GetDiskNumber(&MaxDiskSize, GetCurrentDiskNumber(), &Value)) { @@ -875,7 +876,7 @@ uint32_t CDFParser::SetupNewDisk() } -uint32_t CDFParser::PerformSetCommand() +ULONG CDFParser::PerformSetCommand() /* * FUNCTION: Performs a set variable command * RETURNS: @@ -884,7 +885,7 @@ uint32_t CDFParser::PerformSetCommand() { SETTYPE SetType; bool NumberValid = false; - uint32_t Number = 0; + ULONG Number = 0; if (!IsNextToken(TokenIdentifier, true)) return CAB_STATUS_FAILURE; @@ -971,7 +972,7 @@ uint32_t CDFParser::PerformSetCommand() } -uint32_t CDFParser::PerformNewCommand() +ULONG CDFParser::PerformNewCommand() /* * FUNCTION: Performs a new disk|cabinet|folder command * RETURNS: @@ -979,7 +980,7 @@ uint32_t CDFParser::PerformNewCommand() */ { NEWTYPE NewType; - uint32_t Status; + ULONG Status; if (!IsNextToken(TokenIdentifier, true)) return CAB_STATUS_FAILURE; @@ -1003,7 +1004,7 @@ uint32_t CDFParser::PerformNewCommand() Status = CloseDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (ULONG)Status)); return CAB_STATUS_SUCCESS; } DiskCreated = false; @@ -1012,7 +1013,7 @@ uint32_t CDFParser::PerformNewCommand() Status = NewDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot create disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot create disk (%d).\n", (ULONG)Status)); return CAB_STATUS_SUCCESS; } DiskCreated = true; @@ -1027,7 +1028,7 @@ uint32_t CDFParser::PerformNewCommand() Status = CloseDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (ULONG)Status)); return CAB_STATUS_SUCCESS; } DiskCreated = false; @@ -1036,7 +1037,7 @@ uint32_t CDFParser::PerformNewCommand() Status = NewCabinet(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (ULONG)Status)); return CAB_STATUS_SUCCESS; } DiskCreated = true; @@ -1054,7 +1055,7 @@ uint32_t CDFParser::PerformNewCommand() } -uint32_t CDFParser::PerformInfBeginCommand() +ULONG CDFParser::PerformInfBeginCommand() /* * FUNCTION: Begins inf mode * RETURNS: @@ -1066,7 +1067,7 @@ uint32_t CDFParser::PerformInfBeginCommand() } -uint32_t CDFParser::PerformInfEndCommand() +ULONG CDFParser::PerformInfEndCommand() /* * FUNCTION: Begins inf mode * RETURNS: @@ -1078,7 +1079,7 @@ uint32_t CDFParser::PerformInfEndCommand() } -uint32_t CDFParser::PerformCommand() +ULONG CDFParser::PerformCommand() /* * FUNCTION: Performs a command * RETURNS: @@ -1098,15 +1099,15 @@ uint32_t CDFParser::PerformCommand() } -uint32_t CDFParser::PerformFileCopy() +ULONG CDFParser::PerformFileCopy() /* * FUNCTION: Performs a file copy * RETURNS: * Status of operation */ { - uint32_t Status; - uint32_t i, j; + ULONG Status; + ULONG i, j; char ch; char SrcName[MAX_PATH]; char DstName[MAX_PATH]; @@ -1139,7 +1140,7 @@ uint32_t CDFParser::PerformFileCopy() if (CurrentToken != TokenEnd) { - j = (uint32_t)strlen(CurrentString); i = 0; + j = (ULONG)strlen(CurrentString); i = 0; while ((CurrentChar + i < LineLength) && ((ch = Line[CurrentChar + i]) != ' ') && (ch != 0x09) && @@ -1159,7 +1160,7 @@ uint32_t CDFParser::PerformFileCopy() if (CurrentToken != TokenEnd) { - j = (uint32_t)strlen(CurrentString); i = 0; + j = (ULONG)strlen(CurrentString); i = 0; while ((CurrentChar + i < LineLength) && ((ch = Line[CurrentChar + i]) != ' ') && (ch != 0x09) && @@ -1181,7 +1182,7 @@ uint32_t CDFParser::PerformFileCopy() Status = NewCabinet(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (ULONG)Status)); printf("Cannot create cabinet.\n"); return CAB_STATUS_FAILURE; } @@ -1192,7 +1193,7 @@ uint32_t CDFParser::PerformFileCopy() Status = NewDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot create disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot create disk (%d).\n", (ULONG)Status)); printf("Cannot create disk.\n"); return CAB_STATUS_FAILURE; } @@ -1275,7 +1276,7 @@ bool CDFParser::ReadLine() * true if there is a new line, false if not */ { - uint32_t i, j; + ULONG i, j; char ch; if (CurrentOffset >= FileBufferSize) @@ -1312,7 +1313,7 @@ void CDFParser::NextToken() * FUNCTION: Reads the next token from the current line */ { - uint32_t i; + ULONG i; char ch = ' '; if (CurrentChar >= LineLength) diff --git a/reactos/tools/cabman/dfp.h b/reactos/tools/cabman/dfp.h index 5752cab6add..22176cdd1d3 100755 --- a/reactos/tools/cabman/dfp.h +++ b/reactos/tools/cabman/dfp.h @@ -11,14 +11,14 @@ typedef struct _CABINET_NAME { struct _CABINET_NAME *Next; - uint32_t DiskNumber; + ULONG DiskNumber; char Name[128]; } CABINET_NAME, *PCABINET_NAME; typedef struct _DISK_NUMBER { struct _DISK_NUMBER *Next; - uint32_t DiskNumber; - uint32_t Number; + ULONG DiskNumber; + ULONG Number; } DISK_NUMBER, *PDISK_NUMBER; typedef enum { @@ -58,35 +58,35 @@ class CDFParser : public CCabinet { public: CDFParser(); virtual ~CDFParser(); - uint32_t Load(char* FileName); - uint32_t Parse(); + ULONG Load(char* FileName); + ULONG Parse(); void SetFileRelativePath(char* Path); bool InfFileOnly; bool DontGenerateInf; char FileRelativePath[300]; private: /* Event handlers */ - virtual bool OnDiskLabel(uint32_t Number, char* Label); - virtual bool OnCabinetName(uint32_t Number, char* Name); + virtual bool OnDiskLabel(ULONG Number, char* Label); + virtual bool OnCabinetName(ULONG Number, char* Name); void WriteInfLine(char* InfLine); - bool SetDiskName(PCABINET_NAME *List, uint32_t Number, char* String); - bool GetDiskName(PCABINET_NAME *List, uint32_t Number, char* String); - bool SetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t Value); - bool GetDiskNumber(PDISK_NUMBER *List, uint32_t Number, uint32_t* Value); - bool DoDiskLabel(uint32_t Number, char* Label); + bool SetDiskName(PCABINET_NAME *List, ULONG Number, char* String); + bool GetDiskName(PCABINET_NAME *List, ULONG Number, char* String); + bool SetDiskNumber(PDISK_NUMBER *List, ULONG Number, ULONG Value); + bool GetDiskNumber(PDISK_NUMBER *List, ULONG Number, PULONG Value); + bool DoDiskLabel(ULONG Number, char* Label); void DoDiskLabelTemplate(char* Template); - bool DoCabinetName(uint32_t Number, char* Name); + bool DoCabinetName(ULONG Number, char* Name); void DoCabinetNameTemplate(char* Template); void DoInfFileName(char* InfFileName); - uint32_t DoMaxDiskSize(bool NumberValid, uint32_t Number); - uint32_t SetupNewDisk(); - uint32_t PerformSetCommand(); - uint32_t PerformNewCommand(); - uint32_t PerformInfBeginCommand(); - uint32_t PerformInfEndCommand(); - uint32_t PerformCommand(); - uint32_t PerformFileCopy(); + ULONG DoMaxDiskSize(bool NumberValid, ULONG Number); + ULONG SetupNewDisk(); + ULONG PerformSetCommand(); + ULONG PerformNewCommand(); + ULONG PerformInfBeginCommand(); + ULONG PerformInfEndCommand(); + ULONG PerformCommand(); + ULONG PerformFileCopy(); void SkipSpaces(); bool IsNextToken(DFP_TOKEN Token, bool NoSpaces); bool ReadLine(); @@ -95,15 +95,15 @@ private: bool FileLoaded; FILEHANDLE FileHandle; char* FileBuffer; - uint32_t FileBufferSize; - uint32_t CurrentOffset; + ULONG FileBufferSize; + ULONG CurrentOffset; char Line[128]; - uint32_t LineLength; - uint32_t CurrentLine; - uint32_t CurrentChar; + ULONG LineLength; + ULONG CurrentLine; + ULONG CurrentChar; /* Token */ DFP_TOKEN CurrentToken; - uint32_t CurrentInteger; + ULONG CurrentInteger; char CurrentString[256]; /* State */ @@ -112,27 +112,27 @@ private: bool FolderCreated; /* Standard directive variable */ bool Cabinet; - uint32_t CabinetFileCountThreshold; + ULONG CabinetFileCountThreshold; PCABINET_NAME CabinetName; bool CabinetNameTemplateSet; char CabinetNameTemplate[128]; bool InfFileNameSet; char InfFileName[256]; bool Compress; - uint32_t CompressionType; + ULONG CompressionType; PCABINET_NAME DiskLabel; bool DiskLabelTemplateSet; char DiskLabelTemplate[128]; - uint32_t FolderFileCountThreshold; - uint32_t FolderSizeThreshold; - uint32_t MaxCabinetSize; - uint32_t MaxDiskFileCount; + ULONG FolderFileCountThreshold; + ULONG FolderSizeThreshold; + ULONG MaxCabinetSize; + ULONG MaxDiskFileCount; PDISK_NUMBER MaxDiskSize; bool MaxDiskSizeAllSet; - uint32_t MaxDiskSizeAll; - uint32_t ReservePerCabinetSize; - uint32_t ReservePerDataBlockSize; - uint32_t ReservePerFolderSize; + ULONG MaxDiskSizeAll; + ULONG ReservePerCabinetSize; + ULONG ReservePerDataBlockSize; + ULONG ReservePerFolderSize; char SourceDir[256]; FILEHANDLE InfFileHandle; bool InfModeEnabled; diff --git a/reactos/tools/cabman/main.cxx b/reactos/tools/cabman/main.cxx index eee6b4f5a83..02a9911b7cc 100755 --- a/reactos/tools/cabman/main.cxx +++ b/reactos/tools/cabman/main.cxx @@ -10,6 +10,7 @@ * CSH 15/08-2003 Made it portable * CF 04/05-2007 Reformatted the code to be more consistent and use TABs instead of spaces * CF 04/05-2007 Made it compatible with 64-bit operating systems + * CF 18/08-2007 Use typedefs64.h and the Windows types for compatibility with 64-bit operating systems */ #include #include @@ -20,9 +21,9 @@ #ifdef DBG -uint32_t DebugTraceLevel = MIN_TRACE; -//uint32_t DebugTraceLevel = MID_TRACE; -//uint32_t DebugTraceLevel = MAX_TRACE; +ULONG DebugTraceLevel = MIN_TRACE; +//ULONG DebugTraceLevel = MID_TRACE; +//ULONG DebugTraceLevel = MAX_TRACE; #endif /* DBG */ @@ -30,7 +31,7 @@ uint32_t DebugTraceLevel = MIN_TRACE; #define CM_VERSION "0.9" -char* Pad(char* Str, char PadChar, unsigned int Length) +char* Pad(char* Str, char PadChar, ULONG Length) /* * FUNCTION: Pads a string with a character to make a given length * ARGUMENTS: @@ -43,9 +44,9 @@ char* Pad(char* Str, char PadChar, unsigned int Length) * Str must be at least Length + 1 bytes */ { - unsigned int Len; + ULONG Len; - Len = (uint32_t)strlen(Str); + Len = (ULONG)strlen(Str); if (Len < Length) { @@ -56,7 +57,7 @@ char* Pad(char* Str, char PadChar, unsigned int Length) } -char* Date2Str(char* Str, uint16_t Date) +char* Date2Str(char* Str, USHORT Date) /* * FUNCTION: Converts a DOS style date to a string * ARGUMENTS: @@ -66,7 +67,7 @@ char* Date2Str(char* Str, uint16_t Date) * Pointer to string */ { - uint32_t dw; + ULONG dw; /* Month */ Str[0] = (char)('0' + ((Date & 0x01E0) >> 5) / 10); @@ -87,7 +88,7 @@ char* Date2Str(char* Str, uint16_t Date) } -char* Time2Str(char* Str, uint16_t Time) +char* Time2Str(char* Str, USHORT Time) /* * FUNCTION: Converts a DOS style time to a string * ARGUMENTS: @@ -98,8 +99,8 @@ char* Time2Str(char* Str, uint16_t Time) */ { bool PM; - uint32_t Hour; - uint32_t dw; + ULONG Hour; + ULONG dw; Hour = ((Time & 0xF800) >> 11); PM = (Hour >= 12); @@ -127,7 +128,7 @@ char* Time2Str(char* Str, uint16_t Time) } -char* Attr2Str(char* Str, uint16_t Attr) +char* Attr2Str(char* Str, USHORT Attr) /* * FUNCTION: Converts attributes to a string * ARGUMENTS: @@ -365,7 +366,7 @@ bool CCABManager::CreateCabinet() * FUNCTION: Create cabinet */ { - uint32_t Status; + ULONG Status; Status = Load((char*)&FileName); if (Status != CAB_STATUS_SUCCESS) @@ -385,19 +386,19 @@ bool CCABManager::CreateSimpleCabinet() * FUNCTION: Create cabinet */ { - uint32_t Status; + ULONG Status; Status = NewCabinet(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot create cabinet (%d).\n", (ULONG)Status)); return false; } Status = AddFile(FileName); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot add file to cabinet (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot add file to cabinet (%d).\n", (ULONG)Status)); return false; } @@ -406,7 +407,7 @@ bool CCABManager::CreateSimpleCabinet() Status = CloseDisk(); if (Status != CAB_STATUS_SUCCESS) { - DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (unsigned int)Status)); + DPRINT(MIN_TRACE, ("Cannot write disk (%d).\n", (ULONG)Status)); return false; } @@ -423,8 +424,8 @@ bool CCABManager::DisplayCabinet() { CAB_SEARCH Search; char Str[20]; - uint32_t FileCount = 0; - uint32_t ByteCount = 0; + ULONG FileCount = 0; + ULONG ByteCount = 0; if (Open() == CAB_STATUS_SUCCESS) { @@ -486,7 +487,7 @@ bool CCABManager::ExtractFromCabinet() */ { CAB_SEARCH Search; - uint32_t Status; + ULONG Status; if (Open() == CAB_STATUS_SUCCESS) { @@ -513,7 +514,7 @@ bool CCABManager::ExtractFromCabinet() return false; default: - printf("Unspecified error code (%d).\n", (unsigned int)Status); + printf("Unspecified error code (%d).\n", (ULONG)Status); return false; } } while (FindNext(&Search) == CAB_STATUS_SUCCESS); diff --git a/reactos/tools/cabman/mszip.cxx b/reactos/tools/cabman/mszip.cxx index d760293f66d..d129fc5645c 100755 --- a/reactos/tools/cabman/mszip.cxx +++ b/reactos/tools/cabman/mszip.cxx @@ -12,6 +12,7 @@ * CSH 15/08-2003 Made it portable * CF 04/05-2007 Reformatted the code to be more consistent and use TABs instead of spaces * CF 04/05-2007 Made it compatible with 64-bit operating systems + * CF 18/08-2007 Use typedefs64.h and the Windows types for compatibility with 64-bit operating systems */ #include #include "mszip.h" @@ -53,10 +54,10 @@ CMSZipCodec::~CMSZipCodec() } -uint32_t CMSZipCodec::Compress(void* OutputBuffer, +ULONG CMSZipCodec::Compress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) + ULONG InputLength, + PULONG OutputLength) /* * FUNCTION: Compresses data in a buffer * ARGUMENTS: @@ -66,16 +67,16 @@ uint32_t CMSZipCodec::Compress(void* OutputBuffer, * OutputLength = Address of buffer to place size of compressed data */ { - uint16_t* Magic; + PUSHORT Magic; DPRINT(MAX_TRACE, ("InputLength (%lu).\n", InputLength)); - Magic = (uint16_t*)OutputBuffer; + Magic = (PUSHORT)OutputBuffer; *Magic = MSZIP_MAGIC; ZStream.next_in = (unsigned char*)InputBuffer; ZStream.avail_in = InputLength; - ZStream.next_out = (unsigned char*)((uintptr_t)OutputBuffer + 2); + ZStream.next_out = (unsigned char*)((_W64 unsigned long)OutputBuffer + 2); ZStream.avail_out = CAB_BLOCKSIZE + 12; /* WindowBits is passed < 0 to tell that there is no zlib header */ @@ -113,10 +114,10 @@ uint32_t CMSZipCodec::Compress(void* OutputBuffer, } -uint32_t CMSZipCodec::Uncompress(void* OutputBuffer, +ULONG CMSZipCodec::Uncompress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) + ULONG InputLength, + PULONG OutputLength) /* * FUNCTION: Uncompresses data in a buffer * ARGUMENTS: @@ -126,11 +127,11 @@ uint32_t CMSZipCodec::Uncompress(void* OutputBuffer, * OutputLength = Address of buffer to place size of uncompressed data */ { - uint16_t Magic; + USHORT Magic; DPRINT(MAX_TRACE, ("InputLength (%lu).\n", InputLength)); - Magic = *((uint16_t*)InputBuffer); + Magic = *((PUSHORT)InputBuffer); if (Magic != MSZIP_MAGIC) { @@ -138,7 +139,7 @@ uint32_t CMSZipCodec::Uncompress(void* OutputBuffer, return CS_BADSTREAM; } - ZStream.next_in = (unsigned char*)((uintptr_t)InputBuffer + 2); + ZStream.next_in = (unsigned char*)((_W64 unsigned long)InputBuffer + 2); ZStream.avail_in = InputLength - 2; ZStream.next_out = (unsigned char*)OutputBuffer; ZStream.avail_out = CAB_BLOCKSIZE + 12; diff --git a/reactos/tools/cabman/mszip.h b/reactos/tools/cabman/mszip.h index 981090ca0f6..291ddde251e 100755 --- a/reactos/tools/cabman/mszip.h +++ b/reactos/tools/cabman/mszip.h @@ -22,15 +22,15 @@ public: /* Default destructor */ virtual ~CMSZipCodec(); /* Compresses a data block */ - virtual uint32_t Compress(void* OutputBuffer, + virtual ULONG Compress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength); + ULONG InputLength, + PULONG OutputLength); /* Uncompresses a data block */ - virtual uint32_t Uncompress(void* OutputBuffer, + virtual ULONG Uncompress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength); + ULONG InputLength, + PULONG OutputLength); private: int Status; z_stream ZStream; /* Zlib stream */ diff --git a/reactos/tools/cabman/raw.cxx b/reactos/tools/cabman/raw.cxx index 1b237543aa0..60281c85da6 100755 --- a/reactos/tools/cabman/raw.cxx +++ b/reactos/tools/cabman/raw.cxx @@ -10,6 +10,7 @@ * CSH 15/08-2003 Made it portable * CF 04/05-2007 Reformatted the code to be more consistent and use TABs instead of spaces * CF 04/05-2007 Made it compatible with 64-bit operating systems + * CF 18/08-2007 Use typedefs64.h and the Windows types for compatibility with 64-bit operating systems */ #include "raw.h" @@ -32,10 +33,10 @@ CRawCodec::~CRawCodec() } -uint32_t CRawCodec::Compress(void* OutputBuffer, - void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) +ULONG CRawCodec::Compress(void* OutputBuffer, + void* InputBuffer, + ULONG InputLength, + PULONG OutputLength) /* * FUNCTION: Compresses data in a buffer * ARGUMENTS: @@ -50,10 +51,10 @@ uint32_t CRawCodec::Compress(void* OutputBuffer, return CS_SUCCESS; } -uint32_t CRawCodec::Uncompress(void* OutputBuffer, - void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength) +ULONG CRawCodec::Uncompress(void* OutputBuffer, + void* InputBuffer, + ULONG InputLength, + PULONG OutputLength) /* * FUNCTION: Uncompresses data in a buffer * ARGUMENTS: diff --git a/reactos/tools/cabman/raw.h b/reactos/tools/cabman/raw.h index f8cc30ae4d4..e26eadfce91 100755 --- a/reactos/tools/cabman/raw.h +++ b/reactos/tools/cabman/raw.h @@ -19,15 +19,15 @@ public: /* Default destructor */ virtual ~CRawCodec(); /* Compresses a data block */ - virtual uint32_t Compress(void* OutputBuffer, + virtual ULONG Compress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength); + ULONG InputLength, + PULONG OutputLength); /* Uncompresses a data block */ - virtual uint32_t Uncompress(void* OutputBuffer, + virtual ULONG Uncompress(void* OutputBuffer, void* InputBuffer, - uint32_t InputLength, - uint32_t* OutputLength); + ULONG InputLength, + PULONG OutputLength); }; #endif /* __RAW_H */