ReactOS 0.4.16-dev-2332-g4cba65d
storage32.h File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "winnt.h"
#include "objbase.h"
#include "winreg.h"
#include "winternl.h"
#include "wine/list.h"
Include dependency graph for storage32.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DirEntry
 
struct  StorageBaseImpl
 
struct  StorageBaseImplVtbl
 
struct  StorageImpl
 
struct  StgStreamImpl
 

Macros

#define DIRENTRY_NAME_MAX_LEN   0x20
 
#define DIRENTRY_NAME_BUFFER_LEN   0x40
 
#define RAW_DIRENTRY_SIZE   0x00000080
 
#define HEADER_SIZE   512
 
#define MIN_BIG_BLOCK_SIZE   0x200
 
#define MAX_BIG_BLOCK_SIZE   0x1000
 
#define DIRENTRY_RELATION_PREVIOUS   0
 
#define DIRENTRY_RELATION_NEXT   1
 
#define DIRENTRY_RELATION_DIR   2
 
#define STGTY_ROOT   0x05
 
#define COUNT_BBDEPOTINHEADER   109
 
#define LIMIT_TO_USE_SMALL_BLOCK   0x1000
 
#define STGM_ACCESS_MODE(stgm)   ((stgm)&0x0000f)
 
#define STGM_SHARE_MODE(stgm)   ((stgm)&0x000f0)
 
#define STGM_CREATE_MODE(stgm)   ((stgm)&0x0f000)
 
#define STGM_KNOWN_FLAGS
 
#define BLOCKCHAIN_CACHE_SIZE   4
 
#define RANGELOCK_UNK1_FIRST   0x7ffffe00
 
#define RANGELOCK_UNK1_LAST   0x7fffff57
 
#define RANGELOCK_PRIORITY1_FIRST   0x7fffff58
 
#define RANGELOCK_PRIORITY1_LAST   0x7fffff6b
 
#define RANGELOCK_NOSNAPSHOT_FIRST   0x7fffff6c
 
#define RANGELOCK_NOSNAPSHOT_LAST   0x7fffff7f
 
#define RANGELOCK_COMMIT   0x7fffff80
 
#define RANGELOCK_PRIORITY2_FIRST   0x7fffff81
 
#define RANGELOCK_PRIORITY2_LAST   0x7fffff91
 
#define RANGELOCK_CHECKLOCKS   0x7fffff92
 
#define RANGELOCK_READ_FIRST   0x7fffff93
 
#define RANGELOCK_READ_LAST   0x7fffffa6
 
#define RANGELOCK_WRITE_FIRST   0x7fffffa7
 
#define RANGELOCK_WRITE_LAST   0x7fffffba
 
#define RANGELOCK_DENY_READ_FIRST   0x7fffffbb
 
#define RANGELOCK_DENY_READ_LAST   0x7fffffce
 
#define RANGELOCK_DENY_WRITE_FIRST   0x7fffffcf
 
#define RANGELOCK_DENY_WRITE_LAST   0x7fffffe2
 
#define RANGELOCK_UNK2_FIRST   0x7fffffe3
 
#define RANGELOCK_UNK2_LAST   0x7fffffff
 
#define RANGELOCK_TRANSACTION_FIRST   RANGELOCK_COMMIT
 
#define RANGELOCK_TRANSACTION_LAST   RANGELOCK_CHECKLOCKS
 
#define RANGELOCK_FIRST   RANGELOCK_UNK1_FIRST
 
#define RANGELOCK_LAST   RANGELOCK_UNK2_LAST
 
#define WINE_LOCK_READ   0x80000000
 
#define htole32(x)   (x)
 
#define htole16(x)   (x)
 
#define lendian32toh(x)   (x)
 
#define lendian16toh(x)   (x)
 

Typedefs

typedef struct StorageBaseImpl StorageBaseImpl
 
typedef struct StorageBaseImplVtbl StorageBaseImplVtbl
 
typedef struct StorageImpl StorageImpl
 
typedef struct BlockChainStream BlockChainStream
 
typedef struct SmallBlockChainStream SmallBlockChainStream
 
typedef struct IEnumSTATSTGImpl IEnumSTATSTGImpl
 
typedef struct DirEntry DirEntry
 
typedef struct StgStreamImpl StgStreamImpl
 
typedef ULONG DirRef
 

Enumerations

enum  swmr_mode { SWMR_None , SWMR_Writer , SWMR_Reader }
 

Functions

HRESULT FileLockBytesImpl_Construct (HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes)
 
HRESULT STORAGE_CreateOleStream (IStorage *, DWORD)
 
HRESULT OLECONVERT_CreateCompObjStream (LPSTORAGE pStorage, LPCSTR strOleTypeName)
 
static void StorageBaseImpl_Destroy (StorageBaseImpl *This)
 
static void StorageBaseImpl_Invalidate (StorageBaseImpl *This)
 
static HRESULT StorageBaseImpl_Flush (StorageBaseImpl *This)
 
static HRESULT StorageBaseImpl_GetFilename (StorageBaseImpl *This, LPWSTR *result)
 
static HRESULT StorageBaseImpl_CreateDirEntry (StorageBaseImpl *This, const DirEntry *newData, DirRef *index)
 
static HRESULT StorageBaseImpl_WriteDirEntry (StorageBaseImpl *This, DirRef index, const DirEntry *data)
 
static HRESULT StorageBaseImpl_ReadDirEntry (StorageBaseImpl *This, DirRef index, DirEntry *data)
 
static HRESULT StorageBaseImpl_DestroyDirEntry (StorageBaseImpl *This, DirRef index)
 
static HRESULT StorageBaseImpl_StreamReadAt (StorageBaseImpl *This, DirRef index, ULARGE_INTEGER offset, ULONG size, void *buffer, ULONG *bytesRead)
 
static HRESULT StorageBaseImpl_StreamWriteAt (StorageBaseImpl *This, DirRef index, ULARGE_INTEGER offset, ULONG size, const void *buffer, ULONG *bytesWritten)
 
static HRESULT StorageBaseImpl_StreamSetSize (StorageBaseImpl *This, DirRef index, ULARGE_INTEGER newsize)
 
static HRESULT StorageBaseImpl_StreamLink (StorageBaseImpl *This, DirRef dst, DirRef src)
 
static HRESULT StorageBaseImpl_GetTransactionSig (StorageBaseImpl *This, ULONG *result, BOOL refresh)
 
static HRESULT StorageBaseImpl_SetTransactionSig (StorageBaseImpl *This, ULONG value)
 
static HRESULT StorageBaseImpl_LockTransaction (StorageBaseImpl *This, BOOL write)
 
static HRESULT StorageBaseImpl_UnlockTransaction (StorageBaseImpl *This, BOOL write)
 
void StorageBaseImpl_AddStream (StorageBaseImpl *stg, StgStreamImpl *strm)
 
void StorageBaseImpl_RemoveStream (StorageBaseImpl *stg, StgStreamImpl *strm)
 
static StgStreamImplimpl_from_IStream (IStream *iface)
 
StgStreamImplStgStreamImpl_Construct (StorageBaseImpl *parentStorage, DWORD grfMode, DirRef dirEntry)
 
void StorageUtl_ReadWord (const BYTE *buffer, ULONG offset, WORD *value)
 
void StorageUtl_WriteWord (void *buffer, ULONG offset, WORD value)
 
void StorageUtl_ReadDWord (const BYTE *buffer, ULONG offset, DWORD *value)
 
void StorageUtl_WriteDWord (void *buffer, ULONG offset, DWORD value)
 
void StorageUtl_ReadULargeInteger (const BYTE *buffer, ULONG offset, ULARGE_INTEGER *value)
 
void StorageUtl_WriteULargeInteger (void *buffer, ULONG offset, const ULARGE_INTEGER *value)
 
void StorageUtl_ReadGUID (const BYTE *buffer, ULONG offset, GUID *value)
 
void StorageUtl_WriteGUID (void *buffer, ULONG offset, const GUID *value)
 
void StorageUtl_CopyDirEntryToSTATSTG (StorageBaseImpl *storage, STATSTG *destination, const DirEntry *source, int statFlags)
 

Variables

static const ULONG OFFSET_MINORVERSION = 0x00000018
 
static const ULONG OFFSET_MAJORVERSION = 0x0000001a
 
static const ULONG OFFSET_BYTEORDERMARKER = 0x0000001c
 
static const ULONG OFFSET_BIGBLOCKSIZEBITS = 0x0000001e
 
static const ULONG OFFSET_SMALLBLOCKSIZEBITS = 0x00000020
 
static const ULONG OFFSET_DIRSECTORCOUNT = 0x00000028
 
static const ULONG OFFSET_BBDEPOTCOUNT = 0x0000002C
 
static const ULONG OFFSET_ROOTSTARTBLOCK = 0x00000030
 
static const ULONG OFFSET_TRANSACTIONSIG = 0x00000034
 
static const ULONG OFFSET_SMALLBLOCKLIMIT = 0x00000038
 
static const ULONG OFFSET_SBDEPOTSTART = 0x0000003C
 
static const ULONG OFFSET_SBDEPOTCOUNT = 0x00000040
 
static const ULONG OFFSET_EXTBBDEPOTSTART = 0x00000044
 
static const ULONG OFFSET_EXTBBDEPOTCOUNT = 0x00000048
 
static const ULONG OFFSET_BBDEPOTSTART = 0x0000004C
 
static const ULONG OFFSET_PS_NAME = 0x00000000
 
static const ULONG OFFSET_PS_NAMELENGTH = 0x00000040
 
static const ULONG OFFSET_PS_STGTYPE = 0x00000042
 
static const ULONG OFFSET_PS_LEFTCHILD = 0x00000044
 
static const ULONG OFFSET_PS_RIGHTCHILD = 0x00000048
 
static const ULONG OFFSET_PS_DIRROOT = 0x0000004C
 
static const ULONG OFFSET_PS_GUID = 0x00000050
 
static const ULONG OFFSET_PS_CTIMELOW = 0x00000064
 
static const ULONG OFFSET_PS_CTIMEHIGH = 0x00000068
 
static const ULONG OFFSET_PS_MTIMELOW = 0x0000006C
 
static const ULONG OFFSET_PS_MTIMEHIGH = 0x00000070
 
static const ULONG OFFSET_PS_STARTBLOCK = 0x00000074
 
static const ULONG OFFSET_PS_SIZE = 0x00000078
 
static const ULONG OFFSET_PS_SIZE_HIGH = 0x0000007C
 
static const WORD DEF_BIG_BLOCK_SIZE_BITS = 0x0009
 
static const WORD MIN_BIG_BLOCK_SIZE_BITS = 0x0009
 
static const WORD MAX_BIG_BLOCK_SIZE_BITS = 0x000c
 
static const WORD DEF_SMALL_BLOCK_SIZE_BITS = 0x0006
 
static const WORD DEF_BIG_BLOCK_SIZE = 0x0200
 
static const WORD DEF_SMALL_BLOCK_SIZE = 0x0040
 
static const ULONG BLOCK_FIRST_SPECIAL = 0xFFFFFFFB
 
static const ULONG BLOCK_EXTBBDEPOT = 0xFFFFFFFC
 
static const ULONG BLOCK_SPECIAL = 0xFFFFFFFD
 
static const ULONG BLOCK_END_OF_CHAIN = 0xFFFFFFFE
 
static const ULONG BLOCK_UNUSED = 0xFFFFFFFF
 
static const ULONG DIRENTRY_NULL = 0xFFFFFFFF
 

Macro Definition Documentation

◆ BLOCKCHAIN_CACHE_SIZE

#define BLOCKCHAIN_CACHE_SIZE   4

Definition at line 363 of file storage32.h.

◆ COUNT_BBDEPOTINHEADER

#define COUNT_BBDEPOTINHEADER   109

Definition at line 110 of file storage32.h.

◆ DIRENTRY_NAME_BUFFER_LEN

#define DIRENTRY_NAME_BUFFER_LEN   0x40

Definition at line 89 of file storage32.h.

◆ DIRENTRY_NAME_MAX_LEN

#define DIRENTRY_NAME_MAX_LEN   0x20

Definition at line 88 of file storage32.h.

◆ DIRENTRY_RELATION_DIR

#define DIRENTRY_RELATION_DIR   2

Definition at line 103 of file storage32.h.

◆ DIRENTRY_RELATION_NEXT

#define DIRENTRY_RELATION_NEXT   1

Definition at line 102 of file storage32.h.

◆ DIRENTRY_RELATION_PREVIOUS

#define DIRENTRY_RELATION_PREVIOUS   0

Definition at line 101 of file storage32.h.

◆ HEADER_SIZE

#define HEADER_SIZE   512

Definition at line 93 of file storage32.h.

◆ htole16

#define htole16 (   x)    (x)

Definition at line 546 of file storage32.h.

◆ htole32

#define htole32 (   x)    (x)

Definition at line 543 of file storage32.h.

◆ lendian16toh

#define lendian16toh (   x)    (x)

Definition at line 549 of file storage32.h.

◆ lendian32toh

#define lendian32toh (   x)    (x)

Definition at line 548 of file storage32.h.

◆ LIMIT_TO_USE_SMALL_BLOCK

#define LIMIT_TO_USE_SMALL_BLOCK   0x1000

Definition at line 113 of file storage32.h.

◆ MAX_BIG_BLOCK_SIZE

#define MAX_BIG_BLOCK_SIZE   0x1000

Definition at line 96 of file storage32.h.

◆ MIN_BIG_BLOCK_SIZE

#define MIN_BIG_BLOCK_SIZE   0x200

Definition at line 95 of file storage32.h.

◆ RANGELOCK_CHECKLOCKS

#define RANGELOCK_CHECKLOCKS   0x7fffff92

Definition at line 506 of file storage32.h.

◆ RANGELOCK_COMMIT

#define RANGELOCK_COMMIT   0x7fffff80

Definition at line 503 of file storage32.h.

◆ RANGELOCK_DENY_READ_FIRST

#define RANGELOCK_DENY_READ_FIRST   0x7fffffbb

Definition at line 511 of file storage32.h.

◆ RANGELOCK_DENY_READ_LAST

#define RANGELOCK_DENY_READ_LAST   0x7fffffce

Definition at line 512 of file storage32.h.

◆ RANGELOCK_DENY_WRITE_FIRST

#define RANGELOCK_DENY_WRITE_FIRST   0x7fffffcf

Definition at line 513 of file storage32.h.

◆ RANGELOCK_DENY_WRITE_LAST

#define RANGELOCK_DENY_WRITE_LAST   0x7fffffe2

Definition at line 514 of file storage32.h.

◆ RANGELOCK_FIRST

#define RANGELOCK_FIRST   RANGELOCK_UNK1_FIRST

Definition at line 519 of file storage32.h.

◆ RANGELOCK_LAST

#define RANGELOCK_LAST   RANGELOCK_UNK2_LAST

Definition at line 520 of file storage32.h.

◆ RANGELOCK_NOSNAPSHOT_FIRST

#define RANGELOCK_NOSNAPSHOT_FIRST   0x7fffff6c

Definition at line 501 of file storage32.h.

◆ RANGELOCK_NOSNAPSHOT_LAST

#define RANGELOCK_NOSNAPSHOT_LAST   0x7fffff7f

Definition at line 502 of file storage32.h.

◆ RANGELOCK_PRIORITY1_FIRST

#define RANGELOCK_PRIORITY1_FIRST   0x7fffff58

Definition at line 499 of file storage32.h.

◆ RANGELOCK_PRIORITY1_LAST

#define RANGELOCK_PRIORITY1_LAST   0x7fffff6b

Definition at line 500 of file storage32.h.

◆ RANGELOCK_PRIORITY2_FIRST

#define RANGELOCK_PRIORITY2_FIRST   0x7fffff81

Definition at line 504 of file storage32.h.

◆ RANGELOCK_PRIORITY2_LAST

#define RANGELOCK_PRIORITY2_LAST   0x7fffff91

Definition at line 505 of file storage32.h.

◆ RANGELOCK_READ_FIRST

#define RANGELOCK_READ_FIRST   0x7fffff93

Definition at line 507 of file storage32.h.

◆ RANGELOCK_READ_LAST

#define RANGELOCK_READ_LAST   0x7fffffa6

Definition at line 508 of file storage32.h.

◆ RANGELOCK_TRANSACTION_FIRST

#define RANGELOCK_TRANSACTION_FIRST   RANGELOCK_COMMIT

Definition at line 517 of file storage32.h.

◆ RANGELOCK_TRANSACTION_LAST

#define RANGELOCK_TRANSACTION_LAST   RANGELOCK_CHECKLOCKS

Definition at line 518 of file storage32.h.

◆ RANGELOCK_UNK1_FIRST

#define RANGELOCK_UNK1_FIRST   0x7ffffe00

Definition at line 497 of file storage32.h.

◆ RANGELOCK_UNK1_LAST

#define RANGELOCK_UNK1_LAST   0x7fffff57

Definition at line 498 of file storage32.h.

◆ RANGELOCK_UNK2_FIRST

#define RANGELOCK_UNK2_FIRST   0x7fffffe3

Definition at line 515 of file storage32.h.

◆ RANGELOCK_UNK2_LAST

#define RANGELOCK_UNK2_LAST   0x7fffffff

Definition at line 516 of file storage32.h.

◆ RANGELOCK_WRITE_FIRST

#define RANGELOCK_WRITE_FIRST   0x7fffffa7

Definition at line 509 of file storage32.h.

◆ RANGELOCK_WRITE_LAST

#define RANGELOCK_WRITE_LAST   0x7fffffba

Definition at line 510 of file storage32.h.

◆ RAW_DIRENTRY_SIZE

#define RAW_DIRENTRY_SIZE   0x00000080

Definition at line 91 of file storage32.h.

◆ STGM_ACCESS_MODE

#define STGM_ACCESS_MODE (   stgm)    ((stgm)&0x0000f)

Definition at line 115 of file storage32.h.

◆ STGM_CREATE_MODE

#define STGM_CREATE_MODE (   stgm)    ((stgm)&0x0f000)

Definition at line 117 of file storage32.h.

◆ STGM_KNOWN_FLAGS

#define STGM_KNOWN_FLAGS
Value:
(0xf0ff | \
#define STGM_CONVERT
Definition: objbase.h:944
#define STGM_DIRECT_SWMR
Definition: objbase.h:948
#define STGM_TRANSACTED
Definition: objbase.h:932
#define STGM_DELETEONRELEASE
Definition: objbase.h:942
#define STGM_NOSNAPSHOT
Definition: objbase.h:947
#define STGM_SIMPLE
Definition: objbase.h:933
#define STGM_PRIORITY
Definition: objbase.h:941
#define STGM_NOSCRATCH
Definition: objbase.h:946

Definition at line 119 of file storage32.h.

◆ STGM_SHARE_MODE

#define STGM_SHARE_MODE (   stgm)    ((stgm)&0x000f0)

Definition at line 116 of file storage32.h.

◆ STGTY_ROOT

#define STGTY_ROOT   0x05

Definition at line 108 of file storage32.h.

◆ WINE_LOCK_READ

#define WINE_LOCK_READ   0x80000000

Definition at line 523 of file storage32.h.

Typedef Documentation

◆ BlockChainStream

Definition at line 130 of file storage32.h.

◆ DirEntry

Definition at line 133 of file storage32.h.

◆ DirRef

typedef ULONG DirRef

Definition at line 139 of file storage32.h.

◆ IEnumSTATSTGImpl

Definition at line 132 of file storage32.h.

◆ SmallBlockChainStream

Definition at line 131 of file storage32.h.

◆ StgStreamImpl

Definition at line 134 of file storage32.h.

◆ StorageBaseImpl

Definition at line 127 of file storage32.h.

◆ StorageBaseImplVtbl

Definition at line 128 of file storage32.h.

◆ StorageImpl

Definition at line 129 of file storage32.h.

Enumeration Type Documentation

◆ swmr_mode

Enumerator
SWMR_None 
SWMR_Writer 
SWMR_Reader 

Definition at line 169 of file storage32.h.

170{
171 SWMR_None,
174};
@ SWMR_Reader
Definition: storage32.h:173
@ SWMR_None
Definition: storage32.h:171
@ SWMR_Writer
Definition: storage32.h:172

Function Documentation

◆ FileLockBytesImpl_Construct()

HRESULT FileLockBytesImpl_Construct ( HANDLE  hFile,
DWORD  openFlags,
LPCWSTR  pwcsName,
ILockBytes **  pLockBytes 
)

Definition at line 86 of file filelockbytes.c.

87{
89 WCHAR fullpath[MAX_PATH];
90
92 return E_FAIL;
93
95
96 if (!This)
97 return E_OUTOFMEMORY;
98
99 This->ILockBytes_iface.lpVtbl = &FileLockBytesImpl_Vtbl;
100 This->ref = 1;
101 This->hfile = hFile;
102 This->flProtect = GetProtectMode(openFlags);
103
104 if(pwcsName) {
105 if (!GetFullPathNameW(pwcsName, MAX_PATH, fullpath, NULL))
106 {
107 lstrcpynW(fullpath, pwcsName, MAX_PATH);
108 }
109 This->pwcsName = HeapAlloc(GetProcessHeap(), 0,
110 (lstrlenW(fullpath)+1)*sizeof(WCHAR));
111 if (!This->pwcsName)
112 {
114 return E_OUTOFMEMORY;
115 }
116 lstrcpyW(This->pwcsName, fullpath);
117 }
118 else
119 This->pwcsName = NULL;
120
121 *pLockBytes = &This->ILockBytes_iface;
122
123 return S_OK;
124}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_FAIL
Definition: ddrawi.h:102
#define NULL
Definition: types.h:112
#define GetProcessHeap()
Definition: compat.h:736
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define HeapAlloc
Definition: compat.h:733
#define MAX_PATH
Definition: compat.h:34
#define HeapFree(x, y, z)
Definition: compat.h:735
#define lstrcpyW
Definition: compat.h:749
#define lstrcpynW
Definition: compat.h:738
#define lstrlenW
Definition: compat.h:750
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
Definition: path.c:1106
static const ILockBytesVtbl FileLockBytesImpl_Vtbl
Definition: filelockbytes.c:53
static DWORD GetProtectMode(DWORD openFlags)
Definition: filelockbytes.c:70
#define S_OK
Definition: intsafe.h:52
_In_ HANDLE hFile
Definition: mswsock.h:90
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by StorageImpl_Construct().

◆ impl_from_IStream()

static StgStreamImpl * impl_from_IStream ( IStream iface)
inlinestatic

Definition at line 458 of file storage32.h.

459{
460 return CONTAINING_RECORD(iface, StgStreamImpl, IStream_iface);
461}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

◆ OLECONVERT_CreateCompObjStream()

HRESULT OLECONVERT_CreateCompObjStream ( LPSTORAGE  pStorage,
LPCSTR  strOleTypeName 
)

Definition at line 9784 of file storage32.c.

9785{
9786 IStream *pStream;
9787 HRESULT hStorageRes, hRes = S_OK;
9788 OLECONVERT_ISTORAGE_COMPOBJ IStorageCompObj;
9790
9791 static const BYTE pCompObjUnknown1[] = {0x01, 0x00, 0xFE, 0xFF, 0x03, 0x0A, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF};
9792 static const BYTE pCompObjUnknown2[] = {0xF4, 0x39, 0xB2, 0x71};
9793
9794 /* Initialize the CompObj structure */
9795 memset(&IStorageCompObj, 0, sizeof(IStorageCompObj));
9796 memcpy(IStorageCompObj.byUnknown1, pCompObjUnknown1, sizeof(pCompObjUnknown1));
9797 memcpy(IStorageCompObj.byUnknown2, pCompObjUnknown2, sizeof(pCompObjUnknown2));
9798
9799
9800 /* Create a CompObj stream if it doesn't exist */
9801 hStorageRes = IStorage_CreateStream(pStorage, L"\1CompObj",
9802 STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &pStream );
9803 if(hStorageRes == S_OK)
9804 {
9805 /* copy the OleTypeName to the compobj struct */
9806 IStorageCompObj.dwOleTypeNameLength = strlen(strOleTypeName)+1;
9807 strcpy(IStorageCompObj.strOleTypeName, strOleTypeName);
9808
9809 /* copy the OleTypeName to the compobj struct */
9810 /* Note: in the test made, these were Identical */
9811 IStorageCompObj.dwProgIDNameLength = strlen(strOleTypeName)+1;
9812 strcpy(IStorageCompObj.strProgIDName, strOleTypeName);
9813
9814 /* Get the CLSID */
9815 MultiByteToWideChar( CP_ACP, 0, IStorageCompObj.strProgIDName, -1,
9816 bufferW, OLESTREAM_MAX_STR_LEN );
9817 hRes = CLSIDFromProgID(bufferW, &(IStorageCompObj.clsid));
9818
9819 if(hRes == S_OK)
9820 {
9821 HKEY hKey;
9822 LONG hErr;
9823 /* Get the CLSID Default Name from the Registry */
9825 if(hErr == ERROR_SUCCESS)
9826 {
9827 char strTemp[OLESTREAM_MAX_STR_LEN];
9828 IStorageCompObj.dwCLSIDNameLength = OLESTREAM_MAX_STR_LEN;
9829 hErr = RegQueryValueA(hKey, NULL, strTemp, (LONG*) &(IStorageCompObj.dwCLSIDNameLength));
9830 if(hErr == ERROR_SUCCESS)
9831 {
9832 strcpy(IStorageCompObj.strCLSIDName, strTemp);
9833 }
9835 }
9836 }
9837
9838 /* Write CompObj Structure to stream */
9839 hRes = IStream_Write(pStream, IStorageCompObj.byUnknown1, sizeof(IStorageCompObj.byUnknown1), NULL);
9840
9841 WriteClassStm(pStream,&(IStorageCompObj.clsid));
9842
9843 hRes = IStream_Write(pStream, &(IStorageCompObj.dwCLSIDNameLength), sizeof(IStorageCompObj.dwCLSIDNameLength), NULL);
9844 if(IStorageCompObj.dwCLSIDNameLength > 0)
9845 {
9846 hRes = IStream_Write(pStream, IStorageCompObj.strCLSIDName, IStorageCompObj.dwCLSIDNameLength, NULL);
9847 }
9848 hRes = IStream_Write(pStream, &(IStorageCompObj.dwOleTypeNameLength) , sizeof(IStorageCompObj.dwOleTypeNameLength), NULL);
9849 if(IStorageCompObj.dwOleTypeNameLength > 0)
9850 {
9851 hRes = IStream_Write(pStream, IStorageCompObj.strOleTypeName , IStorageCompObj.dwOleTypeNameLength, NULL);
9852 }
9853 hRes = IStream_Write(pStream, &(IStorageCompObj.dwProgIDNameLength) , sizeof(IStorageCompObj.dwProgIDNameLength), NULL);
9854 if(IStorageCompObj.dwProgIDNameLength > 0)
9855 {
9856 hRes = IStream_Write(pStream, IStorageCompObj.strProgIDName , IStorageCompObj.dwProgIDNameLength, NULL);
9857 }
9858 hRes = IStream_Write(pStream, IStorageCompObj.byUnknown2 , sizeof(IStorageCompObj.byUnknown2), NULL);
9859 IStream_Release(pStream);
9860 }
9861 return hRes;
9862}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LSTATUS WINAPI RegQueryValueA(HKEY hkey, LPCSTR name, LPSTR data, LPLONG count)
Definition: reg.c:4212
HRESULT WINAPI DECLSPEC_HOTPATCH CLSIDFromProgID(LPCOLESTR progid, CLSID *clsid)
Definition: combase.c:1437
static LSTATUS open_classes_key(HKEY hkey, const WCHAR *name, REGSAM access, HKEY *retkey)
Definition: combase.c:297
HRESULT WINAPI WriteClassStm(IStream *pStm, REFCLSID rclsid)
Definition: storage32.c:96
#define CP_ACP
Definition: compat.h:109
#define MultiByteToWideChar
Definition: compat.h:110
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1592
#define OLESTREAM_MAX_STR_LEN
Definition: storage32.c:9336
#define L(x)
Definition: resources.c:13
FxAutoRegKey hKey
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define MAXIMUM_ALLOWED
Definition: nt_native.h:83
#define STGM_SHARE_EXCLUSIVE
Definition: objbase.h:940
#define STGM_WRITE
Definition: objbase.h:935
long LONG
Definition: pedump.c:60
strcpy
Definition: string.h:131
#define memset(x, y, z)
Definition: compat.h:39
CHAR strCLSIDName[OLESTREAM_MAX_STR_LEN]
Definition: storage32.c:9360
CHAR strOleTypeName[OLESTREAM_MAX_STR_LEN]
Definition: storage32.c:9362
CHAR strProgIDName[OLESTREAM_MAX_STR_LEN]
Definition: storage32.c:9364
#define HKEY_CLASSES_ROOT
Definition: winreg.h:10
unsigned char BYTE
Definition: xxhash.c:193

Referenced by OleConvertOLESTREAMToIStorage(), and render_embed_source_hack().

◆ StgStreamImpl_Construct()

StgStreamImpl * StgStreamImpl_Construct ( StorageBaseImpl parentStorage,
DWORD  grfMode,
DirRef  dirEntry 
)

Definition at line 660 of file stg_stream.c.

664{
665 StgStreamImpl* newStream;
666
667 newStream = HeapAlloc(GetProcessHeap(), 0, sizeof(StgStreamImpl));
668
669 if (newStream)
670 {
671 /*
672 * Set-up the virtual function table and reference count.
673 */
674 newStream->IStream_iface.lpVtbl = &StgStreamVtbl;
675 newStream->ref = 0;
676
677 newStream->parentStorage = parentStorage;
678
679 /*
680 * We want to nail-down the reference to the storage in case the
681 * stream out-lives the storage in the client application.
682 *
683 * -- IStorage_AddRef(&newStream->parentStorage->IStorage_iface);
684 *
685 * No, don't do this. Some apps call IStorage_Release without
686 * calling IStream_Release first. If we grab a reference the
687 * file is not closed, and the app fails when it tries to
688 * reopen the file (Easy-PC, for example)
689 */
690
691 newStream->grfMode = grfMode;
692 newStream->dirEntry = dirEntry;
693
694 /*
695 * Start the stream at the beginning.
696 */
697 newStream->currentPosition.HighPart = 0;
698 newStream->currentPosition.LowPart = 0;
699
700 /* add us to the storage's list of active streams */
701 StorageBaseImpl_AddStream(parentStorage, newStream);
702 }
703
704 return newStream;
705}
void StorageBaseImpl_AddStream(StorageBaseImpl *stg, StgStreamImpl *strm)
Definition: storage32.c:2702
static const IStreamVtbl StgStreamVtbl
Definition: stg_stream.c:631
IStream IStream_iface
Definition: storage32.h:429
StorageBaseImpl * parentStorage
Definition: storage32.h:440
DWORD grfMode
Definition: storage32.h:445
ULARGE_INTEGER currentPosition
Definition: storage32.h:455
DirRef dirEntry
Definition: storage32.h:450
$ULONG LowPart
Definition: ntbasedef.h:581
$ULONG HighPart
Definition: ntbasedef.h:582

Referenced by StgStreamImpl_Clone(), StorageBaseImpl_CopyChildEntryTo(), StorageBaseImpl_CreateStream(), and StorageBaseImpl_OpenStream().

◆ STORAGE_CreateOleStream()

HRESULT STORAGE_CreateOleStream ( IStorage storage,
DWORD  flags 
)

Definition at line 9079 of file storage32.c.

9080{
9081 static const DWORD version_magic = 0x02000001;
9082 IStream *stream;
9083 HRESULT hr;
9084
9085 hr = IStorage_CreateStream(storage, L"\1Ole", STGM_WRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &stream);
9086 if (hr == S_OK)
9087 {
9088 struct empty_1ole_stream {
9089 DWORD version_magic;
9090 DWORD flags;
9091 DWORD update_options;
9093 DWORD mon_stream_size;
9094 };
9095 struct empty_1ole_stream stream_data;
9096
9097 stream_data.version_magic = version_magic;
9098 stream_data.flags = flags;
9099 stream_data.update_options = 0;
9100 stream_data.reserved = 0;
9101 stream_data.mon_stream_size = 0;
9102
9103 hr = IStream_Write(stream, &stream_data, sizeof(stream_data), NULL);
9104 IStream_Release(stream);
9105 }
9106
9107 return hr;
9108}
r reserved
Definition: btrfs.c:3006
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
static const char stream_data[]
Definition: mlang.c:2327
HRESULT hr
Definition: shlfolder.c:183
Definition: parse.h:23

Referenced by DefaultHandler_IPersistStorage_InitNew(), load_ole_stream(), OleConvertOLESTREAMToIStorage(), render_embed_source_hack(), and SetConvertStg().

◆ StorageBaseImpl_AddStream()

void StorageBaseImpl_AddStream ( StorageBaseImpl stg,
StgStreamImpl strm 
)

Definition at line 2702 of file storage32.c.

2703{
2704 TRACE("Stream added (stg=%p strm=%p)\n", stg, strm);
2705 list_add_tail(&stg->strmHead,&strm->StrmListEntry);
2706}
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
Definition: list.h:83
#define TRACE(s)
Definition: solgame.cpp:4
struct list StrmListEntry
Definition: storage32.h:435
struct list strmHead
Definition: storage32.h:196

Referenced by StgStreamImpl_Construct().

◆ StorageBaseImpl_CreateDirEntry()

static HRESULT StorageBaseImpl_CreateDirEntry ( StorageBaseImpl This,
const DirEntry newData,
DirRef index 
)
inlinestatic

◆ StorageBaseImpl_Destroy()

static void StorageBaseImpl_Destroy ( StorageBaseImpl This)
inlinestatic

Definition at line 258 of file storage32.h.

259{
260 This->baseVtbl->Destroy(This);
261}

Referenced by StorageBaseImpl_Release().

◆ StorageBaseImpl_DestroyDirEntry()

◆ StorageBaseImpl_Flush()

◆ StorageBaseImpl_GetFilename()

static HRESULT StorageBaseImpl_GetFilename ( StorageBaseImpl This,
LPWSTR result 
)
inlinestatic

Definition at line 273 of file storage32.h.

274{
275 return This->baseVtbl->GetFilename(This, result);
276}
GLuint64EXT * result
Definition: glext.h:11304

Referenced by StgOpenStorage(), StorageInternalImpl_GetFilename(), StorageUtl_CopyDirEntryToSTATSTG(), TransactedSharedImpl_GetFilename(), and TransactedSnapshotImpl_GetFilename().

◆ StorageBaseImpl_GetTransactionSig()

static HRESULT StorageBaseImpl_GetTransactionSig ( StorageBaseImpl This,
ULONG result,
BOOL  refresh 
)
inlinestatic

Definition at line 333 of file storage32.h.

335{
336 return This->baseVtbl->GetTransactionSig(This, result, refresh);
337}

Referenced by TransactedSharedImpl_Commit(), TransactedSharedImpl_Construct(), TransactedSnapshotImpl_Commit(), and TransactedSnapshotImpl_Construct().

◆ StorageBaseImpl_Invalidate()

static void StorageBaseImpl_Invalidate ( StorageBaseImpl This)
inlinestatic

Definition at line 263 of file storage32.h.

264{
265 This->baseVtbl->Invalidate(This);
266}

Referenced by deleteStorageContents(), and StorageBaseImpl_DeleteAll().

◆ StorageBaseImpl_LockTransaction()

static HRESULT StorageBaseImpl_LockTransaction ( StorageBaseImpl This,
BOOL  write 
)
inlinestatic

Definition at line 345 of file storage32.h.

346{
347 return This->baseVtbl->LockTransaction(This, write);
348}
#define write
Definition: acwin.h:97

Referenced by TransactedSharedImpl_Commit(), TransactedSharedImpl_Construct(), and TransactedSnapshotImpl_Commit().

◆ StorageBaseImpl_ReadDirEntry()

◆ StorageBaseImpl_RemoveStream()

void StorageBaseImpl_RemoveStream ( StorageBaseImpl stg,
StgStreamImpl strm 
)

Definition at line 2708 of file storage32.c.

2709{
2710 TRACE("Stream removed (stg=%p strm=%p)\n", stg,strm);
2711 list_remove(&(strm->StrmListEntry));
2712}
static void list_remove(struct list_entry *entry)
Definition: list.h:90

Referenced by StgStreamImpl_Release().

◆ StorageBaseImpl_SetTransactionSig()

static HRESULT StorageBaseImpl_SetTransactionSig ( StorageBaseImpl This,
ULONG  value 
)
inlinestatic

Definition at line 339 of file storage32.h.

341{
342 return This->baseVtbl->SetTransactionSig(This, value);
343}
Definition: pdh_main.c:96

Referenced by TransactedSharedImpl_Commit(), and TransactedSnapshotImpl_Commit().

◆ StorageBaseImpl_StreamLink()

static HRESULT StorageBaseImpl_StreamLink ( StorageBaseImpl This,
DirRef  dst,
DirRef  src 
)
inlinestatic

Definition at line 327 of file storage32.h.

329{
330 return This->baseVtbl->StreamLink(This, dst, src);
331}
GLenum src
Definition: glext.h:6340
GLenum GLenum dst
Definition: glext.h:6340

Referenced by StorageInternalImpl_StreamLink(), TransactedSharedImpl_StreamLink(), and TransactedSnapshotImpl_CopyTree().

◆ StorageBaseImpl_StreamReadAt()

static HRESULT StorageBaseImpl_StreamReadAt ( StorageBaseImpl This,
DirRef  index,
ULARGE_INTEGER  offset,
ULONG  size,
void buffer,
ULONG bytesRead 
)
inlinestatic

Definition at line 303 of file storage32.h.

305{
306 return This->baseVtbl->StreamReadAt(This, index, offset, size, buffer, bytesRead);
307}
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
GLintptr offset
Definition: glext.h:5920

Referenced by StgStreamImpl_Read(), StorageBaseImpl_CopyStream(), StorageInternalImpl_StreamReadAt(), TransactedSharedImpl_StreamReadAt(), and TransactedSnapshotImpl_StreamReadAt().

◆ StorageBaseImpl_StreamSetSize()

◆ StorageBaseImpl_StreamWriteAt()

static HRESULT StorageBaseImpl_StreamWriteAt ( StorageBaseImpl This,
DirRef  index,
ULARGE_INTEGER  offset,
ULONG  size,
const void buffer,
ULONG bytesWritten 
)
inlinestatic

Definition at line 311 of file storage32.h.

313{
314 return This->baseVtbl->StreamWriteAt(This, index, offset, size, buffer, bytesWritten);
315}
GLenum GLsizei GLuint GLint * bytesWritten
Definition: glext.h:11123

Referenced by StgStreamImpl_Write(), StorageBaseImpl_CopyStream(), StorageInternalImpl_StreamWriteAt(), TransactedSharedImpl_StreamWriteAt(), and TransactedSnapshotImpl_StreamWriteAt().

◆ StorageBaseImpl_UnlockTransaction()

static HRESULT StorageBaseImpl_UnlockTransaction ( StorageBaseImpl This,
BOOL  write 
)
inlinestatic

Definition at line 350 of file storage32.h.

351{
352 return This->baseVtbl->UnlockTransaction(This, write);
353}

Referenced by TransactedSharedImpl_Commit(), TransactedSharedImpl_Construct(), and TransactedSnapshotImpl_Commit().

◆ StorageBaseImpl_WriteDirEntry()

◆ StorageUtl_CopyDirEntryToSTATSTG()

void StorageUtl_CopyDirEntryToSTATSTG ( StorageBaseImpl storage,
STATSTG *  destination,
const DirEntry source,
int  statFlags 
)

Definition at line 6979 of file storage32.c.

6984{
6985 /*
6986 * The copy of the string occurs only when the flag is not set
6987 */
6988 if (!(statFlags & STATFLAG_NONAME) && source->stgType == STGTY_ROOT)
6989 {
6990 /* Use the filename for the root storage. */
6991 destination->pwcsName = 0;
6992 StorageBaseImpl_GetFilename(storage, &destination->pwcsName);
6993 }
6994 else if( ((statFlags & STATFLAG_NONAME) != 0) ||
6995 (source->name[0] == 0) )
6996 {
6997 destination->pwcsName = 0;
6998 }
6999 else
7000 {
7001 destination->pwcsName =
7002 CoTaskMemAlloc((lstrlenW(source->name)+1)*sizeof(WCHAR));
7003
7004 lstrcpyW(destination->pwcsName, source->name);
7005 }
7006
7007 switch (source->stgType)
7008 {
7009 case STGTY_STORAGE:
7010 case STGTY_ROOT:
7011 destination->type = STGTY_STORAGE;
7012 break;
7013 case STGTY_STREAM:
7014 destination->type = STGTY_STREAM;
7015 break;
7016 default:
7017 destination->type = STGTY_STREAM;
7018 break;
7019 }
7020
7021 destination->cbSize = source->size;
7022/*
7023 currentReturnStruct->mtime = {0}; TODO
7024 currentReturnStruct->ctime = {0};
7025 currentReturnStruct->atime = {0};
7026*/
7027 destination->grfMode = 0;
7028 destination->grfLocksSupported = 0;
7029 destination->clsid = source->clsid;
7030 destination->grfStateBits = 0;
7031 destination->reserved = 0;
7032}
void *WINAPI CoTaskMemAlloc(SIZE_T size)
Definition: malloc.c:381
static HRESULT StorageBaseImpl_GetFilename(StorageBaseImpl *This, LPWSTR *result)
Definition: storage32.h:273
#define STGTY_ROOT
Definition: storage32.h:108

Referenced by IEnumSTATSTGImpl_Next(), StgStreamImpl_Stat(), and StorageBaseImpl_Stat().

◆ StorageUtl_ReadDWord()

◆ StorageUtl_ReadGUID()

void StorageUtl_ReadGUID ( const BYTE buffer,
ULONG  offset,
GUID value 
)

Definition at line 6961 of file storage32.c.

6962{
6964 StorageUtl_ReadWord(buffer, offset+4, &(value->Data2));
6965 StorageUtl_ReadWord(buffer, offset+6, &(value->Data3));
6966
6967 memcpy(value->Data4, buffer+offset+8, sizeof(value->Data4));
6968}
void StorageUtl_ReadWord(const BYTE *buffer, ULONG offset, WORD *value)
Definition: storage32.c:6906
void StorageUtl_ReadDWord(const BYTE *buffer, ULONG offset, DWORD *value)
Definition: storage32.c:6920

Referenced by propertystorage_read_scalar(), PropertyStorage_ReadFmtIdOffsetFromStream(), PropertyStorage_ReadHeaderFromStream(), and StorageImpl_ReadDirEntry().

◆ StorageUtl_ReadULargeInteger()

void StorageUtl_ReadULargeInteger ( const BYTE buffer,
ULONG  offset,
ULARGE_INTEGER value 
)

Definition at line 6934 of file storage32.c.

6936{
6937#ifdef WORDS_BIGENDIAN
6938 ULARGE_INTEGER tmp;
6939
6940 memcpy(&tmp, buffer + offset, sizeof(ULARGE_INTEGER));
6941 value->u.LowPart = htole32(tmp.HighPart);
6942 value->u.HighPart = htole32(tmp.LowPart);
6943#else
6945#endif
6946}
#define htole32(x)
Definition: storage32.h:543

Referenced by buffer_read_uint64().

◆ StorageUtl_ReadWord()

void StorageUtl_ReadWord ( const BYTE buffer,
ULONG  offset,
WORD value 
)

Definition at line 6906 of file storage32.c.

6907{
6908 WORD tmp;
6909
6910 memcpy(&tmp, buffer+offset, sizeof(WORD));
6911 *value = lendian16toh(tmp);
6912}
unsigned short WORD
Definition: ntddk_ex.h:93
#define lendian16toh(x)
Definition: storage32.h:549

Referenced by buffer_read_word(), PropertyStorage_ReadHeaderFromStream(), StorageImpl_CreateDirEntry(), StorageImpl_LoadFileHeader(), StorageImpl_ReadDirEntry(), and StorageUtl_ReadGUID().

◆ StorageUtl_WriteDWord()

◆ StorageUtl_WriteGUID()

void StorageUtl_WriteGUID ( void buffer,
ULONG  offset,
const GUID value 
)

Definition at line 6970 of file storage32.c.

6971{
6975
6976 memcpy((BYTE *)buffer + offset + 8, value->Data4, sizeof(value->Data4));
6977}
void StorageUtl_WriteDWord(void *buffer, ULONG offset, DWORD value)
Definition: storage32.c:6928
void StorageUtl_WriteWord(void *buffer, ULONG offset, WORD value)
Definition: storage32.c:6914

Referenced by PropertyStorage_MakeFmtIdOffset(), PropertyStorage_MakeHeader(), PropertyStorage_WritePropertyToStream(), and UpdateRawDirEntry().

◆ StorageUtl_WriteULargeInteger()

void StorageUtl_WriteULargeInteger ( void buffer,
ULONG  offset,
const ULARGE_INTEGER value 
)

Definition at line 6948 of file storage32.c.

6949{
6950#ifdef WORDS_BIGENDIAN
6951 ULARGE_INTEGER tmp;
6952
6953 tmp.LowPart = htole32(value->u.HighPart);
6954 tmp.HighPart = htole32(value->u.LowPart);
6955 memcpy((BYTE *)buffer + offset, &tmp, sizeof(ULARGE_INTEGER));
6956#else
6957 memcpy((BYTE *)buffer + offset, value, sizeof(ULARGE_INTEGER));
6958#endif
6959}

Referenced by PropertyStorage_WritePropertyToStream().

◆ StorageUtl_WriteWord()

void StorageUtl_WriteWord ( void buffer,
ULONG  offset,
WORD  value 
)

Variable Documentation

◆ BLOCK_END_OF_CHAIN

◆ BLOCK_EXTBBDEPOT

const ULONG BLOCK_EXTBBDEPOT = 0xFFFFFFFC
static

Definition at line 82 of file storage32.h.

Referenced by StorageImpl_GetNextFreeBigBlock().

◆ BLOCK_FIRST_SPECIAL

const ULONG BLOCK_FIRST_SPECIAL = 0xFFFFFFFB
static

◆ BLOCK_SPECIAL

◆ BLOCK_UNUSED

◆ DEF_BIG_BLOCK_SIZE

const WORD DEF_BIG_BLOCK_SIZE = 0x0200
static

Definition at line 79 of file storage32.h.

◆ DEF_BIG_BLOCK_SIZE_BITS

const WORD DEF_BIG_BLOCK_SIZE_BITS = 0x0009
static

Definition at line 75 of file storage32.h.

◆ DEF_SMALL_BLOCK_SIZE

const WORD DEF_SMALL_BLOCK_SIZE = 0x0040
static

◆ DEF_SMALL_BLOCK_SIZE_BITS

const WORD DEF_SMALL_BLOCK_SIZE_BITS = 0x0006
static

Definition at line 78 of file storage32.h.

Referenced by StorageImpl_Refresh().

◆ DIRENTRY_NULL

◆ MAX_BIG_BLOCK_SIZE_BITS

const WORD MAX_BIG_BLOCK_SIZE_BITS = 0x000c
static

Definition at line 77 of file storage32.h.

Referenced by StorageImpl_Refresh().

◆ MIN_BIG_BLOCK_SIZE_BITS

const WORD MIN_BIG_BLOCK_SIZE_BITS = 0x0009
static

Definition at line 76 of file storage32.h.

Referenced by StorageImpl_Refresh().

◆ OFFSET_BBDEPOTCOUNT

const ULONG OFFSET_BBDEPOTCOUNT = 0x0000002C
static

Definition at line 52 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_BBDEPOTSTART

const ULONG OFFSET_BBDEPOTSTART = 0x0000004C
static

Definition at line 60 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_BIGBLOCKSIZEBITS

const ULONG OFFSET_BIGBLOCKSIZEBITS = 0x0000001e
static

Definition at line 49 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_BYTEORDERMARKER

const ULONG OFFSET_BYTEORDERMARKER = 0x0000001c
static

Definition at line 48 of file storage32.h.

Referenced by StorageImpl_SaveFileHeader().

◆ OFFSET_DIRSECTORCOUNT

const ULONG OFFSET_DIRSECTORCOUNT = 0x00000028
static

Definition at line 51 of file storage32.h.

Referenced by StorageImpl_SaveFileHeader().

◆ OFFSET_EXTBBDEPOTCOUNT

const ULONG OFFSET_EXTBBDEPOTCOUNT = 0x00000048
static

Definition at line 59 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_EXTBBDEPOTSTART

const ULONG OFFSET_EXTBBDEPOTSTART = 0x00000044
static

Definition at line 58 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_MAJORVERSION

const ULONG OFFSET_MAJORVERSION = 0x0000001a
static

Definition at line 47 of file storage32.h.

Referenced by StorageImpl_SaveFileHeader().

◆ OFFSET_MINORVERSION

const ULONG OFFSET_MINORVERSION = 0x00000018
static

Definition at line 46 of file storage32.h.

Referenced by StorageImpl_SaveFileHeader().

◆ OFFSET_PS_CTIMEHIGH

const ULONG OFFSET_PS_CTIMEHIGH = 0x00000068
static

Definition at line 69 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_CTIMELOW

const ULONG OFFSET_PS_CTIMELOW = 0x00000064
static

Definition at line 68 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_DIRROOT

const ULONG OFFSET_PS_DIRROOT = 0x0000004C
static

Definition at line 66 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_GUID

const ULONG OFFSET_PS_GUID = 0x00000050
static

Definition at line 67 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_LEFTCHILD

const ULONG OFFSET_PS_LEFTCHILD = 0x00000044
static

Definition at line 64 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_MTIMEHIGH

const ULONG OFFSET_PS_MTIMEHIGH = 0x00000070
static

Definition at line 71 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_MTIMELOW

const ULONG OFFSET_PS_MTIMELOW = 0x0000006C
static

Definition at line 70 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_NAME

const ULONG OFFSET_PS_NAME = 0x00000000
static

Definition at line 61 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_NAMELENGTH

const ULONG OFFSET_PS_NAMELENGTH = 0x00000040
static

◆ OFFSET_PS_RIGHTCHILD

const ULONG OFFSET_PS_RIGHTCHILD = 0x00000048
static

Definition at line 65 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_SIZE

const ULONG OFFSET_PS_SIZE = 0x00000078
static

Definition at line 73 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_SIZE_HIGH

const ULONG OFFSET_PS_SIZE_HIGH = 0x0000007C
static

Definition at line 74 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_STARTBLOCK

const ULONG OFFSET_PS_STARTBLOCK = 0x00000074
static

Definition at line 72 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_PS_STGTYPE

const ULONG OFFSET_PS_STGTYPE = 0x00000042
static

Definition at line 63 of file storage32.h.

Referenced by StorageImpl_ReadDirEntry(), and UpdateRawDirEntry().

◆ OFFSET_ROOTSTARTBLOCK

const ULONG OFFSET_ROOTSTARTBLOCK = 0x00000030
static

Definition at line 53 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_SBDEPOTCOUNT

const ULONG OFFSET_SBDEPOTCOUNT = 0x00000040
static

Definition at line 57 of file storage32.h.

Referenced by StorageImpl_SaveFileHeader().

◆ OFFSET_SBDEPOTSTART

const ULONG OFFSET_SBDEPOTSTART = 0x0000003C
static

Definition at line 56 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_SMALLBLOCKLIMIT

const ULONG OFFSET_SMALLBLOCKLIMIT = 0x00000038
static

Definition at line 55 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_SMALLBLOCKSIZEBITS

const ULONG OFFSET_SMALLBLOCKSIZEBITS = 0x00000020
static

Definition at line 50 of file storage32.h.

Referenced by StorageImpl_LoadFileHeader(), and StorageImpl_SaveFileHeader().

◆ OFFSET_TRANSACTIONSIG

const ULONG OFFSET_TRANSACTIONSIG = 0x00000034
static