diff options
Diffstat (limited to 'private/ole32/dbgexts/dshrdmem.h')
-rw-r--r-- | private/ole32/dbgexts/dshrdmem.h | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/private/ole32/dbgexts/dshrdmem.h b/private/ole32/dbgexts/dshrdmem.h new file mode 100644 index 000000000..27aa83adc --- /dev/null +++ b/private/ole32/dbgexts/dshrdmem.h @@ -0,0 +1,179 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (C) Microsoft Corporation, 1995 +// +// File: dshrdmem.h +// +// Contents: Contains structure definitons for the significant file +// extensions table classes which the ntsd extensions need +// to access. These ole classes cannot be accessed more +// cleanly because typically the members of interest are private. +// +// WARNING. IF THE REFERENCED OLE CLASSES CHANGE, THEN THESE +// DEFINITIONS MUST CHANGE! +// +// History: 06-01-95 BruceMa Created +// +//-------------------------------------------------------------------------- + + + + + +struct DWORDPAIR +{ + DWORD dw1; // IID + DWORD dw2; // CLSID +}; + + + + +struct GUIDPAIR +{ + GUID guid1; // IID + GUID guid2; // CLSID +}; + + + + +struct GUIDMAP +{ + ULONG ulSize; // size of table + ULONG ulFreeSpace; // Free space in table + ULONG ulCntShort; // number of entries in the short list + ULONG ulCntLong; // number of entries in the long list +}; + + + +struct SShrdTblHdr +{ + DWORD dwSeqNum; // update sequence number + ULONG OffsIIDTbl; // offset of the start of IID table + ULONG OffsPatTbl; // offset to start of file pattern table + ULONG OffsExtTbl; // offset to file extension table + ULONG OffsClsTbl; // offset to start of CLSID table + ULONG pad[1]; // pad to 8 byte boundary +}; + + + + +struct SSharedMemoryBlock +{ + HANDLE _hMem; + BYTE *_pbBase; + ULONG _culCommitSize; // current commit size + ULONG _culInitCommitSize; // initial commit size + BOOL _fCreated; // mem created vs already existed + BOOL _fReadWrite; // want read/write access +}; + + + + +struct SSmMutex +{ + BOOL _fCreated; + HANDLE _hMutex; +}; + + + + +struct SPSClsidTbl +{ + GUIDMAP * _pGuidMap; // ptr to table header + DWORDPAIR * _pShortList; // list of OLE style guids + GUIDPAIR * _pLongList; // list of non OLE style guids +}; + + + + +struct STblHdr +{ + ULONG ulSize; // size of pattern table + ULONG cbLargest; // largest pattern size + ULONG OffsStart; // offset to start of entries + ULONG OffsEnd; // offset to end of entries +}; + + + + +struct SPatternEntry +{ + CLSID clsid; // index of clsid the pattern maps to + ULONG ulEntryLen; // length of this entry + LONG lFileOffset; // offset in file where pattern begins + ULONG ulCb; // count bytes in pattern + BYTE abData[128]; // start of mask & pattern strings +}; + + + + +struct SPatternTbl +{ + STblHdr *_pTblHdr; // ptr to table header struct + BYTE *_pStart; // ptr to first entry in the memory block +}; + + + + +struct SExtTblHdr +{ + ULONG ulSize; // table size + ULONG cEntries; // count of entries in table + ULONG OffsStart; // offset to start of entries + ULONG OffsEnd; // offset to end of entries +}; + + + + + +struct SExtEntry +{ + CLSID Clsid; // clsid the extension maps to + ULONG ulEntryLen; // length of this entry + WCHAR wszExt[1]; // start of filename extension +}; + + + + + +struct SFileExtTbl +{ + SExtTblHdr *_pTblHdr; // ptr to table header structure + BYTE *_pStart; // ptr to first entry in the memory block +}; + + + + +struct SDllShrdTbl +{ + SSharedMemoryBlock _smb; // shared memory block + SSmMutex _mxs; // shared mutex + HANDLE _hRegEvent; // shared event handle + + SPSClsidTbl _PSClsidTbl; // proxy stub clsid table + SPatternTbl _PatternTbl; // file pattern table + SFileExtTbl _FileExtTbl; // file extension table + + SShrdTblHdr *_pShrdTblHdr; // shared mem copy of table + DWORD _dwSeqNum; // sequence number +}; + + + + + + |