Data Structures |
| struct | DirEntry |
| struct | StorageBaseImpl |
| struct | StorageBaseImplVtbl |
| struct | StorageImpl |
| struct | StgStreamImpl |
| struct | BlockChainRun |
| struct | BlockChainBlock |
| struct | BlockChainStream |
| struct | SmallBlockChainStream |
Defines |
| #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 | htole32(x) (x) |
| #define | htole16(x) (x) |
| #define | lendian32toh(x) (x) |
| #define | lendian16toh(x) (x) |
Typedefs |
| typedef ULONG | DirRef |
Functions |
| HRESULT | FileLockBytesImpl_Construct (HANDLE hFile, DWORD openFlags, LPCWSTR pwcsName, ILockBytes **pLockBytes) DECLSPEC_HIDDEN |
| void | OLECONVERT_CreateOleStream (LPSTORAGE pStorage) DECLSPEC_HIDDEN |
| HRESULT | OLECONVERT_CreateCompObjStream (LPSTORAGE pStorage, LPCSTR strOleTypeName) DECLSPEC_HIDDEN |
| 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) |
| void | StorageBaseImpl_AddStream (StorageBaseImpl *stg, StgStreamImpl *strm) DECLSPEC_HIDDEN |
| void | StorageBaseImpl_RemoveStream (StorageBaseImpl *stg, StgStreamImpl *strm) DECLSPEC_HIDDEN |
| HRESULT | StorageImpl_ReadRawDirEntry (StorageImpl *This, ULONG index, BYTE *buffer) DECLSPEC_HIDDEN |
| void | UpdateRawDirEntry (BYTE *buffer, const DirEntry *newData) DECLSPEC_HIDDEN |
| HRESULT | StorageImpl_WriteRawDirEntry (StorageImpl *This, ULONG index, const BYTE *buffer) DECLSPEC_HIDDEN |
| HRESULT | StorageImpl_ReadDirEntry (StorageImpl *This, DirRef index, DirEntry *buffer) DECLSPEC_HIDDEN |
| HRESULT | StorageImpl_WriteDirEntry (StorageImpl *This, DirRef index, const DirEntry *buffer) DECLSPEC_HIDDEN |
| BlockChainStream * | Storage32Impl_SmallBlocksToBigBlocks (StorageImpl *This, SmallBlockChainStream **ppsbChain) DECLSPEC_HIDDEN |
| SmallBlockChainStream * | Storage32Impl_BigBlocksToSmallBlocks (StorageImpl *This, BlockChainStream **ppbbChain, ULARGE_INTEGER newSize) DECLSPEC_HIDDEN |
| StgStreamImpl * | StgStreamImpl_Construct (StorageBaseImpl *parentStorage, DWORD grfMode, DirRef dirEntry) DECLSPEC_HIDDEN |
| void | StorageUtl_ReadWord (const BYTE *buffer, ULONG offset, WORD *value) DECLSPEC_HIDDEN |
| void | StorageUtl_WriteWord (BYTE *buffer, ULONG offset, WORD value) DECLSPEC_HIDDEN |
| void | StorageUtl_ReadDWord (const BYTE *buffer, ULONG offset, DWORD *value) DECLSPEC_HIDDEN |
| void | StorageUtl_WriteDWord (BYTE *buffer, ULONG offset, DWORD value) DECLSPEC_HIDDEN |
| void | StorageUtl_ReadULargeInteger (const BYTE *buffer, ULONG offset, ULARGE_INTEGER *value) DECLSPEC_HIDDEN |
| void | StorageUtl_WriteULargeInteger (BYTE *buffer, ULONG offset, const ULARGE_INTEGER *value) DECLSPEC_HIDDEN |
| void | StorageUtl_ReadGUID (const BYTE *buffer, ULONG offset, GUID *value) DECLSPEC_HIDDEN |
| void | StorageUtl_WriteGUID (BYTE *buffer, ULONG offset, const GUID *value) DECLSPEC_HIDDEN |
| void | StorageUtl_CopyDirEntryToSTATSTG (StorageBaseImpl *storage, STATSTG *destination, const DirEntry *source, int statFlags) DECLSPEC_HIDDEN |
| BlockChainStream * | BlockChainStream_Construct (StorageImpl *parentStorage, ULONG *headOfStreamPlaceHolder, DirRef dirEntry) DECLSPEC_HIDDEN |
| void | BlockChainStream_Destroy (BlockChainStream *This) DECLSPEC_HIDDEN |
| HRESULT | BlockChainStream_ReadAt (BlockChainStream *This, ULARGE_INTEGER offset, ULONG size, void *buffer, ULONG *bytesRead) DECLSPEC_HIDDEN |
| HRESULT | BlockChainStream_WriteAt (BlockChainStream *This, ULARGE_INTEGER offset, ULONG size, const void *buffer, ULONG *bytesWritten) DECLSPEC_HIDDEN |
| BOOL | BlockChainStream_SetSize (BlockChainStream *This, ULARGE_INTEGER newSize) DECLSPEC_HIDDEN |
| HRESULT | BlockChainStream_Flush (BlockChainStream *This) DECLSPEC_HIDDEN |
| SmallBlockChainStream * | SmallBlockChainStream_Construct (StorageImpl *parentStorage, ULONG *headOfStreamPlaceHolder, DirRef dirEntry) DECLSPEC_HIDDEN |
| void | SmallBlockChainStream_Destroy (SmallBlockChainStream *This) DECLSPEC_HIDDEN |
| HRESULT | SmallBlockChainStream_ReadAt (SmallBlockChainStream *This, ULARGE_INTEGER offset, ULONG size, void *buffer, ULONG *bytesRead) DECLSPEC_HIDDEN |
| HRESULT | SmallBlockChainStream_WriteAt (SmallBlockChainStream *This, ULARGE_INTEGER offset, ULONG size, const void *buffer, ULONG *bytesWritten) DECLSPEC_HIDDEN |
| BOOL | SmallBlockChainStream_SetSize (SmallBlockChainStream *This, ULARGE_INTEGER newSize) DECLSPEC_HIDDEN |
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_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 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_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 |