ole32: Move the low-level functionality of WriteProperty to a new function.
diff --git a/dlls/ole32/storage32.c b/dlls/ole32/storage32.c
index 4ff9f89..86c174b 100644
--- a/dlls/ole32/storage32.c
+++ b/dlls/ole32/storage32.c
@@ -3072,6 +3072,32 @@
}
/******************************************************************************
+ * StorageImpl_WriteRawDirEntry
+ *
+ * This method will write the raw data from a directory entry in the file.
+ *
+ * buffer must be PROPSET_BLOCK_SIZE bytes long.
+ */
+HRESULT StorageImpl_WriteRawDirEntry(StorageImpl *This, ULONG index, const BYTE *buffer)
+{
+ ULARGE_INTEGER offset;
+ HRESULT hr;
+ ULONG bytesRead;
+
+ offset.u.HighPart = 0;
+ offset.u.LowPart = index * PROPSET_BLOCK_SIZE;
+
+ hr = BlockChainStream_WriteAt(
+ This->rootBlockChain,
+ offset,
+ PROPSET_BLOCK_SIZE,
+ buffer,
+ &bytesRead);
+
+ return hr;
+}
+
+/******************************************************************************
* Storage32Impl_ReadProperty
*
* This method will read the specified property from the property chain.
@@ -3171,12 +3197,7 @@
const StgProperty* buffer)
{
BYTE currentProperty[PROPSET_BLOCK_SIZE];
- ULARGE_INTEGER offsetInPropSet;
HRESULT writeRes;
- ULONG bytesWritten;
-
- offsetInPropSet.u.HighPart = 0;
- offsetInPropSet.u.LowPart = index * PROPSET_BLOCK_SIZE;
memset(currentProperty, 0, PROPSET_BLOCK_SIZE);
@@ -3242,11 +3263,7 @@
OFFSET_PS_SIZE,
buffer->size.u.LowPart);
- writeRes = BlockChainStream_WriteAt(This->rootBlockChain,
- offsetInPropSet,
- PROPSET_BLOCK_SIZE,
- currentProperty,
- &bytesWritten);
+ writeRes = StorageImpl_WriteRawDirEntry(This, index, currentProperty);
return SUCCEEDED(writeRes) ? TRUE : FALSE;
}
diff --git a/dlls/ole32/storage32.h b/dlls/ole32/storage32.h
index 281948e..bbc6a5d 100644
--- a/dlls/ole32/storage32.h
+++ b/dlls/ole32/storage32.h
@@ -295,6 +295,11 @@
ULONG index,
BYTE *buffer);
+HRESULT StorageImpl_WriteRawDirEntry(
+ StorageImpl *This,
+ ULONG index,
+ const BYTE *buffer);
+
BOOL StorageImpl_ReadProperty(
StorageImpl* This,
ULONG index,