ole32: Don't treat the header as a big block in StorageImpl_SaveFileHeader.
This commit is contained in:
parent
7f3211f383
commit
f3db25fc25
|
@ -3399,29 +3399,35 @@ static HRESULT StorageImpl_LoadFileHeader(
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* Storage32Impl_SaveFileHeader
|
* Storage32Impl_SaveFileHeader
|
||||||
*
|
*
|
||||||
* This method will save to the file the header, i.e. big block -1.
|
* This method will save to the file the header
|
||||||
*/
|
*/
|
||||||
static void StorageImpl_SaveFileHeader(
|
static void StorageImpl_SaveFileHeader(
|
||||||
StorageImpl* This)
|
StorageImpl* This)
|
||||||
{
|
{
|
||||||
BYTE headerBigBlock[BIG_BLOCK_SIZE];
|
BYTE headerBigBlock[HEADER_SIZE];
|
||||||
int index;
|
int index;
|
||||||
BOOL success;
|
HRESULT hr;
|
||||||
|
ULARGE_INTEGER offset;
|
||||||
|
DWORD bytes_read, bytes_written;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get a pointer to the big block of data containing the header.
|
* Get a pointer to the big block of data containing the header.
|
||||||
*/
|
*/
|
||||||
success = StorageImpl_ReadBigBlock(This, -1, headerBigBlock);
|
offset.u.HighPart = 0;
|
||||||
|
offset.u.LowPart = 0;
|
||||||
|
hr = StorageImpl_ReadAt(This, offset, headerBigBlock, HEADER_SIZE, &bytes_read);
|
||||||
|
if (SUCCEEDED(hr) && bytes_read != HEADER_SIZE)
|
||||||
|
hr = STG_E_FILENOTFOUND;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the block read failed, the file is probably new.
|
* If the block read failed, the file is probably new.
|
||||||
*/
|
*/
|
||||||
if (!success)
|
if (FAILED(hr))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Initialize for all unknown fields.
|
* Initialize for all unknown fields.
|
||||||
*/
|
*/
|
||||||
memset(headerBigBlock, 0, BIG_BLOCK_SIZE);
|
memset(headerBigBlock, 0, HEADER_SIZE);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialize the magic number.
|
* Initialize the magic number.
|
||||||
|
@ -3492,7 +3498,7 @@ static void StorageImpl_SaveFileHeader(
|
||||||
/*
|
/*
|
||||||
* Write the big block back to the file.
|
* Write the big block back to the file.
|
||||||
*/
|
*/
|
||||||
StorageImpl_WriteBigBlock(This, -1, headerBigBlock);
|
StorageImpl_WriteAt(This, offset, headerBigBlock, HEADER_SIZE, &bytes_written);
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
Loading…
Reference in New Issue