summaryrefslogtreecommitdiffstats
path: root/private/ole32/dbgexts/drot.h
blob: fb9d651abbae2584704a2af1d933899d5f308a73 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright (C) Microsoft Corporation, 1995
//
//  File:       drot.h
//
//  Contents:   Contains structure definitons for the significant ROT
//              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
//              06-26-95 BruceMa    Add SCM ROT support
//
//--------------------------------------------------------------------------


#define SCM_HASH_SIZE 251


struct SCMREGKEY
{
    DWORD               dwEntryLoc;
    DWORD               dwScmId;
};




struct SRotItem
{
    WORD		_wItemSig;
    BOOL                _fDontCallApp;
    SCMREGKEY           _scmregkey;
    HAPT		_hApt;
};





struct SCliRotHintTable
{
    BYTE               *_pbHintArray;
    HANDLE              _hSm;
};





struct SRunningObjectTable
{
    LPVOID              _vtbl;
    SArrayFValue     	_afvRotList;
    SCliRotHintTable    _crht;
    WORD                _wSigRotItem;
};




struct SPerMachineROT
{
    SMutexSem           _mxs;
    DWORD               _dwTotalAcctsReg;
    SArrayFValue        _safvRotAcctTable;
};




struct SScmRotHintTable
{
    HANDLE              _hSm;
};




struct MNKEQBUF
{
    DWORD               _cbSize;
    CLSID               _clsid;
    WCHAR               _wszName[1];
};




struct IFData
{
    DWORD               _UNUSED[3];
    GUID                _oid;
    DWORD               _UNUSED2;
    IID                 _iid;
    DWORD               _UNUSED3[4];
    WCHAR               _wszEndPoint[64];
};




struct SScmRotEntry
{
    LPVOID              _vtbl;
    SScmRotEntry       *_sheNext;
    DWORD               _dwSig;
    DWORD               _dwScmRotId;
    DWORD               _dwProcessID;
    FILETIME            _filetimeLastChange;
    IFData             *_pifdObject;
    MNKEQBUF           *_pmkeqbufKey;
    IFData             *_pifdObjectName;
    BYTE                _ab[1];
};




struct SScmHashEntry
{
    SScmHashEntry *     _sheNext;
};




struct SScmHashTable
{
    DWORD               UNUSED;
    SScmHashEntry     **_apsheHashTable;
    DWORD               _ndwHashTableSize;
    DWORD               _ndwCount;
};




struct SScmRot
{
    SMutexSem           _mxs;
    DWORD               _dwIdCntr;
    SScmRotHintTable    _rht;
    SScmHashTable       _sht;
};




struct SRotAcctEntry
{
    DWORD               UNUSED;
    WCHAR              *unicodestringSID;
    SScmRot            *pscmrot;
};