Optimized include/*.h: (recursively) include all headers needed by
[wine] / include / wine / obj_moniker.h
1 /*
2  * Defines the COM interfaces and APIs related to the moniker functionality.
3  *
4  * This file depends on 'obj_storage.h' and 'obj_base.h'.
5  */
6
7
8
9 #ifndef __WINE_WINE_OBJ_MONIKER_H
10 #define __WINE_WINE_OBJ_MONIKER_H
11
12 #include "wine/obj_misc.h"
13 /*****************************************************************************
14  * Predeclare the interfaces
15  */
16 DEFINE_OLEGUID(IID_IBindCtx,0xe,0,0);
17 typedef struct IBindCtx IBindCtx,*LPBINDCTX;
18 typedef LPBINDCTX LPBC;
19
20 DEFINE_OLEGUID(IID_IClassActivator,     0x00000140L, 0, 0);
21 typedef struct IClassActivator IClassActivator,*LPCLASSACTIVATOR;
22
23 DEFINE_OLEGUID(IID_IEnumMoniker,        0x00000102L, 0, 0);
24 typedef struct IEnumMoniker IEnumMoniker,*LPENUMMONIKER;
25
26 DEFINE_OLEGUID(IID_IMoniker,            0x0000000fL, 0, 0);
27 typedef struct IMoniker IMoniker,*LPMONIKER;
28
29 DEFINE_GUID   (IID_IROTData,            0xf29f6bc0L, 0x5021, 0x11ce, 0xaa, 0x15, 0x00, 0x00, 0x69, 0x01, 0x29, 0x3f);
30 typedef struct IROTData IROTData,*LPROTDATA;
31
32 DEFINE_OLEGUID(IID_IRunnableObject,     0x00000126L, 0, 0);
33 typedef struct IRunnableObject IRunnableObject,*LPRUNNABLEOBJECT;
34
35 DEFINE_OLEGUID(IID_IRunningObjectTable, 0x00000010L, 0, 0);
36 typedef struct IRunningObjectTable IRunningObjectTable,*LPRUNNINGOBJECTTABLE;
37
38 typedef struct  COSERVERINFO COSERVERINFO; // must be defined !
39
40
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{
46
47     DWORD cbStruct;
48     DWORD grfFlags;
49     DWORD grfMode;
50     DWORD dwTickCountDeadline;
51 } BIND_OPTS, * LPBIND_OPTS;
52
53 typedef struct tagBIND_OPTS2{
54
55     DWORD cbStruct;
56     DWORD grfFlags;
57     DWORD grfMode;
58     DWORD dwTickCountDeadline;
59     DWORD dwTrackFlags;
60     DWORD dwClassContext;
61     LCID  locale;
62     COSERVERINFO* pServerInfo;
63     
64 } BIND_OPTS2, * LPBIND_OPTS2;
65
66 /*****************************************************************************
67  * IBindCtx interface
68  */
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);
81 ICOM_END(IBindCtx)
82
83 #undef ICOM_INTERFACE
84
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)
90 /* IBindCtx methods*/
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);
101
102 #endif
103
104 #define CreateBindCtx WINELIB_NAME(CreateBindCtx)
105 /*****************************************************************************
106  * IClassActivator interface
107  */
108 /* FIXME: not implemented */
109
110 /*****************************************************************************
111  * IEnumMoniker interface
112  */
113 /* FIXME: not implemented */
114
115 /*****************************************************************************
116  * IMoniker interface
117  */
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);
135 ICOM_END(IMoniker)
136 #undef ICOM_INTERFACE
137
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)
150 /* IMonker methods*/
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)
166 #endif
167
168 #define CreateFileMoniker WINELIB_NAME(CreateFileMoniker)
169 #define CreateItemMoniker WINELIB_NAME(CreateItemMoniker)
170
171
172 /*****************************************************************************
173  * IROTData interface
174  */
175 /* FIXME: not implemented */
176
177
178 /*****************************************************************************
179  * IRunnableObject interface
180  */
181 /* FIXME: not implemented */
182
183
184 /*****************************************************************************
185  * IRunningObjectTable interface
186  */
187 /* FIXME: not implemented */
188
189
190 #endif /* __WINE_WINE_OBJ_MONIKER_H */