|
|
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.