|
|
1.1 root 1: // moniker.h - moniker and related interfaces and APIs
2: #if !defined( _MONIKER_H_ )
3: #define _MONIKER_H_
4:
5: #define MK_E_CONNECTMANUALLY MK_E_FIRST
6: #define MK_E_EXCEEDEDDEADLINE (MK_E_FIRST + 1)
7: #define MK_E_NEEDGENERIC (MK_E_FIRST + 2)
8: #define MK_E_UNAVAILABLE (MK_E_FIRST + 3)
9: #define MK_E_SYNTAX (MK_E_FIRST + 4)
10: #define MK_E_NOOBJECT (MK_E_FIRST + 5)
11: #define MK_E_INVALIDEXTENSION (MK_E_FIRST + 6)
12: #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED (MK_E_FIRST + 7)
13: #define MK_E_NOTBINDABLE (MK_E_FIRST + 8)
14: #define MK_E_NOTBOUND (MK_E_FIRST + 9)
15: // called IBindCtx->RevokeObjectBound for an
16: // object which was not bound
17: #define MK_E_CANTOPENFILE (MK_E_FIRST + 10)
18: #define MK_E_MUSTBOTHERUSER (MK_E_FIRST + 11)
19: #define MK_E_NOINVERSE (MK_E_FIRST + 12)
20: #define MK_E_NOSTORAGE (MK_E_FIRST + 13)
21: #define MK_E_NOPREFIX (MK_E_FIRST + 14)
22:
23:
24: // reserved MK_S_FIRST
25: // reserved (MK_S_FIRST + 1)
26: #define MK_S_REDUCED_TO_SELF (MK_S_FIRST + 2)
27: // reserved (MK_S_FIRST + 3)
28: #define MK_S_ME (MK_S_FIRST + 4)
29: #define MK_S_HIM (MK_S_FIRST + 5)
30: #define MK_S_US (MK_S_FIRST + 6)
31: #ifdef OLE2SHIP
32: #define MK_S_MONIKERALREADYREGISTERED (MK_S_FIRST + 7)
33: #else
34: #define MK_S_MONIKERALREADYREGISTERED (MK_S_FIRST + 6)
35: #endif
36:
37:
38:
39: // bind options; variable sized
40: typedef struct FARSTRUCT tagBIND_OPTS
41: {
42: DWORD cbStruct; // sizeof(BIND_OPTS)
43: DWORD grfFlags;
44: DWORD grfMode;
45: DWORD dwTickCountDeadline;
46: } BIND_OPTS, FAR* LPBIND_OPTS;
47:
48:
49: // bind flags; controls binding; stored in bind options above
50: typedef enum
51: {
52: BIND_MAYBOTHERUSER = 1,
53: BIND_JUSTTESTEXISTENCE = 2
54: } BIND_FLAGS;
55:
56:
57: // system moniker types; returned from IsSystemMoniker.
58: typedef enum tagMKSYS
59: {
60: MKSYS_NONE = 0,
61: MKSYS_GENERICCOMPOSITE = 1,
62: MKSYS_FILEMONIKER = 2,
63: MKSYS_ANTIMONIKER = 3,
64: MKSYS_ITEMMONIKER = 4,
65: MKSYS_POINTERMONIKER = 5
66: }MKSYS;
67:
68:
69: // bit wise enum to control how much reduction takes place.
70: typedef enum tagMKREDUCE
71: {
72: MKRREDUCE_ONE = 3<<16,
73: MKRREDUCE_TOUSER = 2<<16,
74: MKRREDUCE_THROUGHUSER = 1<<16,
75: MKRREDUCE_ALL = 0
76: } MKRREDUCE;
77:
78:
79: #if defined(__cplusplus)
80: interface IEnumMoniker;
81: interface IRunningObjectTable;
82: #else
83: typedef interface IEnumMoniker IEnumMoniker;
84: typedef interface IRunningObjectTable IRunningObjectTable;
85: #endif
86:
87: typedef IEnumMoniker FAR* LPENUMMONIKER;
88: typedef IRunningObjectTable FAR* LPRUNNINGOBJECTTABLE;
89:
90:
91:
92: #undef INTERFACE
93: #define INTERFACE IBindCtx
94:
95: DECLARE_INTERFACE_(IBindCtx, IUnknown)
96: {
97: // *** IUnknown methods ***
98: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
99: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
100: STDMETHOD_(ULONG,Release) (THIS) PURE;
101:
102: // *** IBindCtx methods ***
103: STDMETHOD(RegisterObjectBound) (THIS_ LPUNKNOWN punk) PURE;
104: STDMETHOD(RevokeObjectBound) (THIS_ LPUNKNOWN punk) PURE;
105: STDMETHOD(ReleaseBoundObjects) (THIS) PURE;
106:
107: STDMETHOD(SetBindOptions) (THIS_ LPBIND_OPTS pbindopts) PURE;
108: STDMETHOD(GetBindOptions) (THIS_ LPBIND_OPTS pbindopts) PURE;
109: STDMETHOD(GetRunningObjectTable) (THIS_ LPRUNNINGOBJECTTABLE FAR*
110: pprot) PURE;
111: STDMETHOD(RegisterObjectParam) (THIS_ LPSTR lpszKey, LPUNKNOWN punk) PURE;
112: STDMETHOD(GetObjectParam) (THIS_ LPSTR lpszKey, LPUNKNOWN FAR* ppunk) PURE;
113: STDMETHOD(EnumObjectParam) (THIS_ LPENUMSTRING FAR* ppenum) PURE;
114: STDMETHOD(RevokeObjectParam) (THIS_ LPSTR lpszKey) PURE;
115: };
116: typedef IBindCtx FAR* LPBC;
117: typedef IBindCtx FAR* LPBINDCTX;
118:
119:
120:
121: #undef INTERFACE
122: #define INTERFACE IMoniker
123:
124: DECLARE_INTERFACE_(IMoniker, IPersistStream)
125: {
126: // *** IUnknown methods ***
127: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
128: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
129: STDMETHOD_(ULONG,Release) (THIS) PURE;
130:
131: // *** IPersist methods ***
132: STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
133:
134: // *** IPersistStream methods ***
135: STDMETHOD(IsDirty) (THIS) PURE;
136: STDMETHOD(Load) (THIS_ LPSTREAM pStm) PURE;
137: STDMETHOD(Save) (THIS_ LPSTREAM pStm,
138: BOOL fClearDirty) PURE;
139: STDMETHOD(GetSizeMax) (THIS_ ULARGE_INTEGER FAR * pcbSize) PURE;
140:
141: // *** IMoniker methods ***
142: STDMETHOD(BindToObject) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
143: REFIID riidResult, LPVOID FAR* ppvResult) PURE;
144: STDMETHOD(BindToStorage) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
145: REFIID riid, LPVOID FAR* ppvObj) PURE;
146: STDMETHOD(Reduce) (THIS_ LPBC pbc, DWORD dwReduceHowFar, LPMONIKER FAR*
147: ppmkToLeft, LPMONIKER FAR * ppmkReduced) PURE;
148: STDMETHOD(ComposeWith) (THIS_ LPMONIKER pmkRight, BOOL fOnlyIfNotGeneric,
149: LPMONIKER FAR* ppmkComposite) PURE;
150: STDMETHOD(Enum) (THIS_ BOOL fForward, LPENUMMONIKER FAR* ppenumMoniker)
151: PURE;
152: STDMETHOD(IsEqual) (THIS_ LPMONIKER pmkOtherMoniker) PURE;
153: STDMETHOD(Hash) (THIS_ LPDWORD pdwHash) PURE;
154: STDMETHOD(IsRunning) (THIS_ LPBC pbc, LPMONIKER pmkToLeft, LPMONIKER
155: pmkNewlyRunning) PURE;
156: STDMETHOD(GetTimeOfLastChange) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
157: FILETIME FAR* pfiletime) PURE;
158: STDMETHOD(Inverse) (THIS_ LPMONIKER FAR* ppmk) PURE;
159: STDMETHOD(CommonPrefixWith) (THIS_ LPMONIKER pmkOther, LPMONIKER FAR*
160: ppmkPrefix) PURE;
161: STDMETHOD(RelativePathTo) (THIS_ LPMONIKER pmkOther, LPMONIKER FAR*
162: ppmkRelPath) PURE;
163: STDMETHOD(GetDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
164: LPSTR FAR* lplpszDisplayName) PURE;
165: STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
166: LPSTR lpszDisplayName, ULONG FAR* pchEaten,
167: LPMONIKER FAR* ppmkOut) PURE;
168: STDMETHOD(IsSystemMoniker) (THIS_ LPDWORD pdwMksys) PURE;
169: };
170: typedef IMoniker FAR* LPMONIKER;
171:
172:
173:
174: #undef INTERFACE
175: #define INTERFACE IRunningObjectTable
176:
177: DECLARE_INTERFACE_(IRunningObjectTable, IUnknown)
178: {
179: // *** IUnknown methods ***
180: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
181: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
182: STDMETHOD_(ULONG,Release) (THIS) PURE;
183:
184: // *** IRunningObjectTable methods ***
185: STDMETHOD(Register) (THIS_ DWORD grfFlags, LPUNKNOWN punkObject,
186: LPMONIKER pmkObjectName, DWORD FAR * pdwRegister) PURE;
187: STDMETHOD(Revoke) (THIS_ DWORD dwRegister) PURE;
188: STDMETHOD(IsRunning) (THIS_ LPMONIKER pmkObjectName) PURE;
189: STDMETHOD(GetObject) (THIS_ LPMONIKER pmkObjectName,
190: LPUNKNOWN FAR* ppunkObject) PURE;
191: STDMETHOD(NoteChangeTime) (THIS_ DWORD dwRegister, FILETIME FAR * pfiletime) PURE;
192: STDMETHOD(GetTimeOfLastChange) (THIS_ LPMONIKER pmkObjectName, FILETIME FAR * pfiletime) PURE;
193: STDMETHOD(EnumRunning) (THIS_ LPENUMMONIKER FAR * ppenumMoniker ) PURE;
194: #ifndef OLE2SHIP
195: STDMETHOD(Advise) (THIS_ IAdviseSink FAR * pAdvSink, DWORD FAR * pdwConnection ) PURE;
196: STDMETHOD(Unadvise) (THIS_ DWORD dwConnection ) PURE;
197: STDMETHOD(EnumAdvise) (THIS_ IEnumSTATDATA FAR * ppenumAdvise) PURE;
198: #endif
199: };
200: typedef IRunningObjectTable FAR* LPRUNNINGOBJECTTABLE;
201:
202:
203:
204: #undef INTERFACE
205: #define INTERFACE IEnumMoniker
206:
207: DECLARE_INTERFACE_(IEnumMoniker, IUnknown)
208: {
209: // *** IUnknown methods ***
210: STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
211: STDMETHOD_(ULONG,AddRef) (THIS) PURE;
212: STDMETHOD_(ULONG,Release) (THIS) PURE;
213:
214: // *** IEnumOleDataObject methods ***
215: STDMETHOD(Next) (THIS_ ULONG celt, LPMONIKER FAR* rgelt, ULONG FAR* pceltFetched) PURE;
216: STDMETHOD(Skip) (THIS_ ULONG celt) PURE;
217: STDMETHOD(Reset) (THIS) PURE;
218: STDMETHOD(Clone) (THIS_ IEnumMoniker FAR* FAR* ppenm) PURE;
219: };
220: typedef IEnumMoniker FAR* LPENUMMONIKER;
221:
222:
223:
224:
225: STDAPI BindMoniker(LPMONIKER pmk, DWORD grfOpt, REFIID iidResult, LPVOID FAR* ppvResult);
226: STDAPI MkParseDisplayName(LPBC pbc, LPSTR szUserName,
227: ULONG FAR * pchEaten, LPMONIKER FAR * ppmk);
228: STDAPI MonikerRelativePathTo(LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER
229: FAR* ppmkRelPath, BOOL fCalledFromMethod);
230: #ifdef OLE2SHIP
231: STDAPI MonikerCommonPrefixWith(LPMONIKER pmkThis, LPMONIKER pmkOther,
232: LPMONIKER FAR* ppmkCommon);
233: #endif
234: STDAPI CreateBindCtx(DWORD reserved, LPBC FAR* ppbc);
235: STDAPI CreateGenericComposite(LPMONIKER pmkFirst, LPMONIKER pmkRest,
236: LPMONIKER FAR* ppmkComposite);
237: STDAPI GetClassFile (LPCSTR szFilename, CLSID FAR* pclsid);
238:
239: STDAPI CreateFileMoniker(LPSTR lpszPathName, LPMONIKER FAR* ppmk);
240: STDAPI CreateItemMoniker(LPSTR lpszDelim, LPSTR lpszItem,
241: LPMONIKER FAR* ppmk);
242: STDAPI CreateAntiMoniker(LPMONIKER FAR* ppmk);
243: STDAPI CreatePointerMoniker(LPUNKNOWN punk, LPMONIKER FAR* ppmk);
244:
245: STDAPI GetRunningObjectTable( DWORD reserved, LPRUNNINGOBJECTTABLE FAR* pprot);
246:
247:
248: #ifndef OLE2SHIP
249:
250: #define MK_E_EXCEEDED_DEADLINE MK_E_EXCEEDEDDEADLINE
251: #define MK_E_NEED_GENERIC MK_E_NEEDGENERIC
252: #define MK_E_INVALID_EXTENSION MK_E_INVALIDEXTENSION
253: #define MK_E_INTERMEDIATE_INTERFACE_NOT_SUPPORTED MK_E_INTERMEDIATEINTERFACENONOT_SUPPORTED
254: #define MK_E_NOT_BINDABLE MK_E_NOTBINDABLE
255: #define S_TRUE S_OK
256: #define MK_S_NOT_RUNNING MK_S_FIRST
257: #define MK_S_NO_STORAGE (MK_S_FIRST + 1)
258: #define MK_S_NOPREFIX (MK_S_FIRST + 3)
259:
260: #endif
261:
262: #endif // _MONIKER_H_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.