2 * Defines the COM interfaces and APIs related to the moniker functionality.
4 * This file depends on 'obj_storage.h' and 'obj_base.h'.
9 #ifndef __WINE_WINE_OBJ_MONIKER_H
10 #define __WINE_WINE_OBJ_MONIKER_H
12 #include "wine/obj_misc.h"
13 /*****************************************************************************
14 * Predeclare the interfaces
16 DEFINE_OLEGUID(IID_IBindCtx,0xe,0,0);
17 typedef struct IBindCtx IBindCtx,*LPBINDCTX;
18 typedef LPBINDCTX LPBC;
20 DEFINE_OLEGUID(IID_IClassActivator, 0x00000140L, 0, 0);
21 typedef struct IClassActivator IClassActivator,*LPCLASSACTIVATOR;
23 DEFINE_OLEGUID(IID_IEnumMoniker, 0x00000102L, 0, 0);
24 typedef struct IEnumMoniker IEnumMoniker,*LPENUMMONIKER;
26 DEFINE_OLEGUID(IID_IMoniker, 0x0000000fL, 0, 0);
27 typedef struct IMoniker IMoniker,*LPMONIKER;
29 DEFINE_GUID (IID_IROTData, 0xf29f6bc0L, 0x5021, 0x11ce, 0xaa, 0x15, 0x00, 0x00, 0x69, 0x01, 0x29, 0x3f);
30 typedef struct IROTData IROTData,*LPROTDATA;
32 DEFINE_OLEGUID(IID_IRunnableObject, 0x00000126L, 0, 0);
33 typedef struct IRunnableObject IRunnableObject,*LPRUNNABLEOBJECT;
35 DEFINE_OLEGUID(IID_IRunningObjectTable, 0x00000010L, 0, 0);
36 typedef struct IRunningObjectTable IRunningObjectTable,*LPRUNNINGOBJECTTABLE;
38 typedef struct COSERVERINFO COSERVERINFO; // must be defined !
41 /*********************************************************************************
42 * BIND_OPTS and BIND_OPTS2 structures definition
43 * Thes structures contain parameters used during a moniker-binding operation.
44 *********************************************************************************/
45 typedef struct tagBIND_OPTS{
50 DWORD dwTickCountDeadline;
51 } BIND_OPTS, * LPBIND_OPTS;
53 typedef struct tagBIND_OPTS2{
58 DWORD dwTickCountDeadline;
62 COSERVERINFO* pServerInfo;
64 } BIND_OPTS2, * LPBIND_OPTS2;
66 /*****************************************************************************
69 #define ICOM_INTERFACE IBindCtx
70 ICOM_BEGIN(IBindCtx,IUnknown)
71 ICOM_METHOD1 (HRESULT, RegisterObjectBound,IUnknown*,punk);
72 ICOM_METHOD1 (HRESULT, RevokeObjectBound,IUnknown*,punk);
73 ICOM_METHOD (HRESULT, ReleaseObjects);
74 ICOM_METHOD1 (HRESULT, SetBindOptions,LPBIND_OPTS2,pbindopts);
75 ICOM_METHOD1 (HRESULT, GetBindOptions,LPBIND_OPTS2,pbindopts);
76 ICOM_METHOD1 (HRESULT, GetRunningObjectTable,IRunningObjectTable**,pprot);
77 ICOM_METHOD2 (HRESULT, RegisterObjectParam,LPOLESTR32,pszkey,IUnknown*,punk);
78 ICOM_METHOD2 (HRESULT, GetObjectParam,LPOLESTR32,pszkey,IUnknown*,punk);
79 ICOM_METHOD1 (HRESULT, EnumObjectParam,IEnumString**,ppenum);
80 ICOM_METHOD1 (HRESULT, RevokeObjectParam,LPOLESTR32,pszkey);
85 #if !defined(__cplusplus) || defined(CINTERFACE)
86 /*** IUnknown methods ***/
87 #define IBindCtx_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
88 #define IBindCtxr_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
89 #define IBindCtx_Release(p) ICOM_ICALL (IUnknown,Release,p)
91 #define IBindCtx_RegisterObjectBound(p,a) ICOM_CALL1 (RegisterObjectBound,p,a);
92 #define IBindCtx_RevokeObjectBound(p,a) ICOM_CALL1 (RevokeObjectBound,p,a);
93 #define IBindCtx_ReleaseObjects(p) ICOM_CALL (ReleaseObjects,p);
94 #define IBindCtx_SetBindOptions(p,a) ICOM_CALL1 (SetBindOptions,p,a);
95 #define IBindCtx_GetBindOptions(p,a) ICOM_CALL1 (GetBindOptions,p,a);
96 #define IBindCtx_GetRunningObjectTable(p,a) ICOM_CALL1 (GetRunningObjectTable,p,a);
97 #define IBindCtx_RegisterObjectParam(p,a,b) ICOM_CALL2 (RegisterObjectParam,p,a,b);
98 #define IBindCtx_GetObjectParam(p,a,b) ICOM_CALL2 (GetObjectParam,p,a,b);
99 #define IBindCtx_EnumObjectParam(p,a) ICOM_CALL1 (EnumObjectParam,p,a);
100 #define IBindCtx_RevokeObjectParam(p,a) ICOM_CALL1 (RevokeObjectParam,p,a);
104 #define CreateBindCtx WINELIB_NAME(CreateBindCtx)
105 /*****************************************************************************
106 * IClassActivator interface
108 /* FIXME: not implemented */
110 /*****************************************************************************
111 * IEnumMoniker interface
113 /* FIXME: not implemented */
115 /*****************************************************************************
118 #define ICOM_INTERFACE IMoniker
119 ICOM_BEGIN(IMoniker,IPersistStream)
120 ICOM_METHOD4 (HRESULT,BindToObject,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult);
121 ICOM_METHOD4 (HRESULT,BindToStorage,IBindCtx*,pbc,IMoniker*,pmkToLeft,REFIID,riid,VOID**,ppvResult);
122 ICOM_METHOD4 (HRESULT,Reduce,IBindCtx*,pbc,DWORD,dwReduceHowFar,IMoniker**,ppmkToLeft,IMoniker**,ppmkReduced);
123 ICOM_METHOD3 (HRESULT,ComposeWith,IMoniker*,pmkRight,BOOL32,fOnlyIfNotGeneric,IMoniker**,ppmkComposite);
124 ICOM_METHOD2 (HRESULT,Enum,BOOL32,fForward,IEnumMoniker**,ppenumMoniker);
125 ICOM_METHOD1 (HRESULT,IsEqual,IMoniker*, pmkOtherMoniker);
126 ICOM_METHOD1 (HRESULT,Hash,DWORD*,pdwHash);
127 ICOM_METHOD3 (HRESULT,IsRunning,IBindCtx*,pbc,IMoniker*,pmkToLeft,IMoniker*,pmkNewlyRunning);
128 ICOM_METHOD3 (HRESULT,GetTimeOfLastChange,IBindCtx*,pbc,IMoniker*,pmkToLeft,FILETIME*,pFileTime);
129 ICOM_METHOD1 (HRESULT,Inverse,IMoniker**,ppmk);
130 ICOM_METHOD2 (HRESULT,CommonPrefixWith,IMoniker*,pmkOther,IMoniker**,ppmkPrefix);
131 ICOM_METHOD2 (HRESULT,RelativePathTo,IMoniker*,pmOther,IMoniker**,ppmkRelPath);
132 ICOM_METHOD3 (HRESULT,GetDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,*ppszDisplayName);
133 ICOM_METHOD5 (HRESULT,ParseDisplayName,IBindCtx*,pbc,IMoniker*,pmkToLeft,LPOLESTR32,pszDisplayName,ULONG*,pchEaten,IMoniker**,ppmkOut);
134 ICOM_METHOD1 (HRESULT,IsSystemMoniker,DWORD*,pwdMksys);
136 #undef ICOM_INTERFACE
138 #if !defined(__cplusplus) || defined(CINTERFACE)
139 /*** IUnknown methods ***/
140 #define IMoniker_QueryInterface(p,a,b) ICOM_ICALL2(IUnknown,QueryInterface,p,a,b)
141 #define IMoniker_AddRef(p) ICOM_ICALL (IUnknown,AddRef,p)
142 #define IMoniker_Release(p) ICOM_ICALL (IUnknown,Release,p)
143 /*** IPersist methods ***/
144 #define IMoniker_GetClassID(p,a) ICOM_ICALL1(IPersist,GetClassID,p,a)
145 /*** IPersistStream ***/
146 #define IMoniker_Stream_IsDirty(p) ICOM_ICALL(IPersistStream,IsDirty,p)
147 #define IMoniker_Stream_Load(p,a) ICOM_ICALL1(IPersistStream,Load,p,a)
148 #define IMoniker_Stream_Save(p,a,b) ICOM_ICALL2(IPersistStream,Save,p,a,b)
149 #define IMoniker_Stream_GetSizeMax(p,a) ICOM_ICALL1(IPersistStream,GetSizeMax,p,a)
151 #define IMoniker_BindToObject(p,a,b,c,d) ICOM_CALL4(BindToObject,p,a,b,c,d)
152 #define IMoniker_BindToStorage(p,a,b,c,d) ICOM_CALL4(BindToStorage,p,a,b,c,d)
153 #define IMoniker_Reduce(p,a,b,c,d) ICOM_CALL4(Reduce,p,a,b,c,d)
154 #define IMoniker_ComposeWith(p,a,b,c) ICOM_CALL3(ComposeWith,p,a,b,c)
155 #define IMoniker_Enum(p,a,b) ICOM_CALL2(Enum,p,a,b)
156 #define IMoniker_IsEqual(p,a) ICOM_CALL1(IsEqual,p,a)
157 #define IMoniker_Hash(p,a) ICOM_CALL1(Hash,p,a)
158 #define IMoniker_IsRunning(p,a,b,c) ICOM_CALL3(IsRunning,p,a,b,c)
159 #define IMoniker_GetTimeOfLastChange(p,a,b,c) ICOM_CALL3(GetTimeOfLastChange,p,a,b,c)
160 #define IMoniker_Inverse(p,a) ICOM_CALL1(Inverse,p,a)
161 #define IMoniker_CommonPrefixWith(p,a,b) ICOM_CALL2(CommonPrefixWith,p,a,b)
162 #define IMoniker_RelativePathTo(p,a,b) ICOM_CALL2(RelativePathTo,p,a,b)
163 #define IMoniker_GetDisplayName(p,a,b,c) ICOM_CALL3(GetDisplayName,p,a,b,c)
164 #define IMoniker_ParseDisplayName(p,a,b,c,d,e) ICOM_CALL5(ParseDisplayName,p,a,b,c,d,e)
165 #define IMoniker_IsSystemMoniker(p,a) ICOM_CALL1(IsSystemMonker,p,a)
168 #define CreateFileMoniker WINELIB_NAME(CreateFileMoniker)
169 #define CreateItemMoniker WINELIB_NAME(CreateItemMoniker)
172 /*****************************************************************************
175 /* FIXME: not implemented */
178 /*****************************************************************************
179 * IRunnableObject interface
181 /* FIXME: not implemented */
184 /*****************************************************************************
185 * IRunningObjectTable interface
187 /* FIXME: not implemented */
190 #endif /* __WINE_WINE_OBJ_MONIKER_H */