:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / include / ole32 / obj_oleundo.h
1 /*
2  * Defines the COM interfaces and APIs from ocidl.h which pertain to Undo/Redo
3  *
4  * Depends on 'obj_base.h'.
5  */
6
7 #ifndef __WINE_WINE_OBJ_OLEUNDO_H
8 #define __WINE_WINE_OBJ_OLEUNDO_H
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif /* defined(__cplusplus) */
13
14 /*****************************************************************************
15  * Predeclare the interfaces
16  */
17 DEFINE_GUID(IID_IQuickActivate, 0xcf51ed10, 0x62fe, 0x11cf, 0xbf, 0x86, 0x00, 0xa0, 0xc9, 0x03, 0x48, 0x36);
18 typedef struct IQuickActivate IQuickActivate,*LPQUICKACTIVATE;
19  
20 DEFINE_GUID(IID_IPointerInactive, 0x55980ba0, 0x35aa, 0x11cf, 0xb6, 0x71, 0x00, 0xaa, 0x00, 0x4c, 0xd6, 0xd8);
21 typedef struct IPointerInactive IPointerInactive,*LPPOINTERINACTIVE;
22
23 DEFINE_GUID(IID_IAdviseSinkEx, 0x3af24290, 0x0c96, 0x11ce, 0xa0, 0xcf, 0x00, 0xaa, 0x00, 0x60, 0x0a, 0xb8);
24 typedef struct IAdviseSinkEx IAdviseSinkEx,*LPADVISESINKEX;
25
26 DEFINE_GUID(IID_IOleUndoManager, 0xd001f200, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01);
27 typedef struct IOleUndoManager IOleUndoManager,*LPOLEUNDOMANAGER;
28
29 DEFINE_GUID(IID_IOleUndoUnit, 0x894ad3b0, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01);
30 typedef struct IOleUndoUnit IOleUndoUnit,*LPOLEUNDOUNIT;
31
32 DEFINE_GUID(IID_IOleParentUndoUnit, 0xa1faf330, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01);
33 typedef struct IOleParentUndoUnit IOleParentUndoUnit,*LPOLEPARENTUNDOUNIT;
34
35 DEFINE_GUID(IID_IEnumOleUndoUnits, 0xb3e7c340, 0xef97, 0x11ce, 0x9b, 0xc9, 0x00, 0xaa, 0x00, 0x60, 0x8e, 0x01);
36 typedef struct IEnumOleUndoUnits IEnumOleUndoUnits,*LPENUMOLEUNDOUNITS;
37
38 /*****************************************************************************
39  * Declare the structures
40  */
41 typedef enum tagQACONTAINERFLAGS
42 {
43         QACONTAINER_SHOWHATCHING = 0x1,
44         QACONTAINER_SHOWGRABHANDLES = 0x2,
45         QACONTAINER_USERMODE = 0x4,
46         QACONTAINER_DISPLAYASDEFAULT = 0x8,
47         QACONTAINER_UIDEAD = 0x10,
48         QACONTAINER_AUTOCLIP = 0x20,
49         QACONTAINER_MESSAGEREFLECT = 0x40,
50         QACONTAINER_SUPPORTSMNEMONICS = 0x80
51 } QACONTAINERFLAGS;
52
53 typedef DWORD OLE_COLOR;
54
55 typedef struct tagQACONTROL
56 {
57         ULONG cbSize;
58         DWORD dwMiscStatus;
59         DWORD dwViewStatus;
60         DWORD dwEventCookie;
61         DWORD dwPropNotifyCookie;
62         DWORD dwPointerActivationPolicy;
63 } QACONTROL;
64
65 typedef struct tagQACONTAINER
66 {
67         ULONG cbSize;
68         IOleClientSite *pClientSite;
69         IAdviseSinkEx *pAdviseSink;
70         IPropertyNotifySink *pPropertyNotifySink;
71         IUnknown *pUnkEventSink;
72         DWORD dwAmbientFlags;
73         OLE_COLOR colorFore;
74         OLE_COLOR colorBack;
75         IFont *pFont;
76         IOleUndoManager *pUndoMgr;
77         DWORD dwAppearance;
78         LONG lcid;
79         HPALETTE hpal;
80         struct IBindHost *pBindHost;
81 } QACONTAINER;
82
83 /*****************************************************************************
84  * IQuickActivate interface
85  */
86 #define ICOM_INTERFACE IQuickActivate
87 #define IQuickActivate_METHODS \
88         ICOM_METHOD2(HRESULT,QuickActivate, QACONTAINER*,pQaContainer, QACONTROL*,pQaControl) \
89         ICOM_METHOD1(HRESULT,SetContentExtent, LPSIZEL,pSizel) \
90         ICOM_METHOD1(HRESULT,GetContentExtent, LPSIZEL,pSizel)
91 #define IQuickActivate_IMETHODS \
92         IUnknown_IMETHODS \
93         IQuickActivate_METHODS
94 ICOM_DEFINE(IQuickActivate,IUnknown)
95 #undef ICOM_INTERFACE
96
97 /*** IUnknown methods ***/
98 #define IQuickActivate_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
99 #define IQuickActivate_AddRef(p)             ICOM_CALL (AddRef,p)
100 #define IQuickActivate_Release(p)            ICOM_CALL (Release,p)
101 /*** IQuickActivate methods ***/
102 #define IQuickActivate_QuickActivate(p,a,b)  ICOM_CALL2(QuickActivate,p,a,b)
103 #define IQuickActivate_SetContentExtent(p,a) ICOM_CALL1(SetContentExtent,p,a)
104 #define IQuickActivate_GetContentExtent(p,a) ICOM_CALL1(GetContentExtent,p,a)
105
106
107 /*****************************************************************************
108  * IPointerInactive interface
109  */
110 #define ICOM_INTERFACE IPointerInactive
111 #define IPointerInactive_METHODS \
112         ICOM_METHOD1(HRESULT,GetActivationPolicy, DWORD*,pdwPolicy) \
113         ICOM_METHOD4(HRESULT,OnInactiveMouseMove, LPCRECT,pRectBounds, LONG,x, LONG,y, DWORD,grfKeyState) \
114         ICOM_METHOD5(HRESULT,OnInactiveSetCursor, LPCRECT,pRectBounds, LONG,x, LONG,y, DWORD,dwMouseMsg, BOOL,fSetAlways) 
115 #define IPointerInactive_IMETHODS \
116         IUnknown_IMETHODS \
117         IPointerInactive_METHODS
118 ICOM_DEFINE(IPointerInactive,IUnknown)
119 #undef ICOM_INTERFACE
120
121 /*** IUnknown methods ***/
122 #define IPointerInactive_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
123 #define IPointerInactive_AddRef(p)             ICOM_CALL (AddRef,p)
124 #define IPointerInactive_Release(p)            ICOM_CALL (Release,p)
125 /*** IPointerInactive methods ***/
126 #define IPointerInactive_GetActivationPolicy(p,a)         ICOM_CALL1(GetActivationPolicy,p,a)
127 #define IPointerInactive_OnInactiveMoveMouse(p,a,b,c,d)   ICOM_CALL4(OnInactiveMoveMouse,p,a,b,c,d) 
128 #define IPointerInactive_OnInactiveSetCursor(p,a,b,c,d,e) ICOM_CALL5(OnInactiveSetCursor,p,a,b,d,e)
129
130
131 /*****************************************************************************
132  * IAdviseSinkEx interface
133  */
134 #define ICOM_INTERFACE IAdviseSinkEx
135 #define IAdviseSinkEx_METHODS \
136         ICOM_METHOD1(HRESULT,OnViewStatusChange, DWORD,dwViewStatus)
137 #define IAdviseSinkEx_IMETHODS \
138         IAdviseSink_IMETHODS \
139         IAdviseSinkEx_METHODS
140 ICOM_DEFINE(IAdviseSinkEx,IAdviseSink)
141 #undef ICOM_INTERFACE
142
143 /*** IUnknown methods ***/
144 #define IAdviseSinkEx_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
145 #define IAdviseSinkEx_AddRef(p)             ICOM_CALL (AddRef,p)
146 #define IAdviseSinkEx_Release(p)            ICOM_CALL (Release,p)
147 /*** IAdviseSink methods ***/
148 #define IAdviseSinkEx_OnDataChange(p,a,b)   ICOM_CALL2(OnDataChange,p,a,b)
149 #define IAdviseSinkEx_OnViewChange(p,a,b)   ICOM_CALL2(OnViewChange,p,a,b)
150 #define IAdviseSinkEx_OnRename(p,a)         ICOM_CALL1(OnRename,p,a)
151 #define IAdviseSinkEx_OnSave(p)             ICOM_CALL (OnSave,p)
152 #define IAdviseSinkEx_OnClose(p)            ICOM_CALL (OnClose,p)
153 /*** IAdviseSinkEx methods ***/
154 #define IAdviseSinkEx_OnViewStatusChange(p,a)  ICOM_CALL1(OnViewStatusChange,p,a)
155
156
157 /*****************************************************************************
158  * IOleUndoManager interface
159  */
160 #define ICOM_INTERFACE IOleUndoManager
161 #define IOleUndoManager_METHODS \
162         ICOM_METHOD1(HRESULT,Open, IOleParentUndoUnit*,pPUU) \
163         ICOM_METHOD2(HRESULT,Close, IOleParentUndoUnit*,pPUU, BOOL,fCommit) \
164         ICOM_METHOD1(HRESULT,Add, IOleUndoUnit*,pUU) \
165         ICOM_METHOD1(HRESULT,GetOpenParentState, DWORD*,pdwState) \
166         ICOM_METHOD1(HRESULT,DiscardFrom, IOleUndoUnit*,pUU) \
167         ICOM_METHOD1(HRESULT,UndoTo, IOleUndoUnit*,pUU) \
168         ICOM_METHOD1(HRESULT,RedoTo, IOleUndoUnit*,pUU) \
169         ICOM_METHOD1(HRESULT,EnumUndoable, IEnumOleUndoUnits**,ppEnum) \
170         ICOM_METHOD1(HRESULT,EnumRedoable, IEnumOleUndoUnits**,ppEnum) \
171         ICOM_METHOD1(HRESULT,GetLastUndoDescription, BSTR*,pBstr) \
172         ICOM_METHOD1(HRESULT,GetLastRedoDescription, BSTR*,pBstr) \
173         ICOM_METHOD1(HRESULT,Enable, BOOL,fEnable)
174 #define IOleUndoManager_IMETHODS \
175         IUnknown_IMETHODS \
176         IOleUndoManager_METHODS
177 ICOM_DEFINE(IOleUndoManager,IUnknown)
178 #undef ICOM_INTERFACE
179
180 /*** IUnknown methods ***/
181 #define IOleUndoManager_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
182 #define IOleUndoManager_AddRef(p)             ICOM_CALL (AddRef,p)
183 #define IOleUndoManager_Release(p)            ICOM_CALL (Release,p)
184 /*** IOleUndoManager methods ***/
185 #define IOleUndoManager_Open(p,a)                   ICOM_CALL1(Open,p,a)
186 #define IOleUndoManager_Close(p,a,b)                ICOM_CALL2(Close,p,a,b)
187 #define IOleUndoManager_Add(p,a)                    ICOM_CALL1(Add,p,a)
188 #define IOleUndoManager_GetOpenParentState(p,a)     ICOM_CALL1(GetOpenParentState,p,a)
189 #define IOleUndoManager_DiscardFrom(p,a)            ICOM_CALL1(DiscardFrom,p,a)
190 #define IOleUndoManager_UndoTo(p,a)                 ICOM_CALL1(UndoTo,p,a)
191 #define IOleUndoManager_RedoTo(p,a)                 ICOM_CALL1(RedoTo,p,a)
192 #define IOleUndoManager_EnumUndoable(p,a)           ICOM_CALL1(EnumUndoable,p,a)
193 #define IOleUndoManager_EnumRedoable(p,a)           ICOM_CALL1(EnumRedoable,p,a)
194 #define IOleUndoManager_GetLastUndoDescription(p,a) ICOM_CALL1(GetLastUndoDescription,p,a)
195 #define IOleUndoManager_GetLastRedoDescription(p,a) ICOM_CALL1(GetLastRedoDescription,p,a)
196 #define IOleUndoManager_Enable(p,a)                 ICOM_CALL1(Enable,p,a)
197
198
199 /*****************************************************************************
200  * IOleUndoUnit interface
201  */
202 #define ICOM_INTERFACE IOleUndoUnit
203 #define IOleUndoUnit_METHODS \
204         ICOM_METHOD1(HRESULT,Do, IOleUndoManager*,pUndoManager) \
205         ICOM_METHOD1(HRESULT,GetDescription, BSTR*,pBstr) \
206         ICOM_METHOD2(HRESULT,GetUnitType, CLSID*,pClsid, LONG*,plID) \
207         ICOM_METHOD (HRESULT,OnNextAdd)
208 #define IOleUndoUnit_IMETHODS \
209         IUnknown_IMETHODS \
210         IOleUndoUnit_METHODS
211 ICOM_DEFINE(IOleUndoUnit,IUnknown)
212 #undef ICOM_INTERFACE
213
214 /*** IUnknown methods ***/
215 #define IOleUndoUnit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
216 #define IOleUndoUnit_AddRef(p)             ICOM_CALL (AddRef,p)
217 #define IOleUndoUnit_Release(p)            ICOM_CALL (Release,p)
218 /*** IOleUndoUnit methods ***/
219 #define IOleUndoUnit_Do(p,a)               ICOM_CALL1(Do,p,a)
220 #define IOleUndoUnit_GetDescription(p,a)   ICOM_CALL1(GetDescription,p,a)
221 #define IOleUndoUnit_GetUnitType(p,a,b)    ICOM_CALL2(GetUnitType,p,a,b)
222 #define IOleUndoUnit_OnNextAdd(p)          ICOM_CALL (OnNextAdd,p)
223
224
225
226 /*****************************************************************************
227  * IOleUndoUnit interface
228  */
229 #define ICOM_INTERFACE IOleParentUndoUnit
230 #define IOleParentUndoUnit_METHODS \
231         ICOM_METHOD1(HRESULT,Open, IOleParentUndoUnit*,pPUU) \
232         ICOM_METHOD2(HRESULT,Close, IOleParentUndoUnit*,pPUU, BOOL,fCommit) \
233         ICOM_METHOD1(HRESULT,Add, IOleUndoUnit*,pUU) \
234         ICOM_METHOD1(HRESULT,FindUnit, IOleUndoUnit*,pUU) \
235         ICOM_METHOD1(HRESULT,GetParentState, DWORD*,pdwState)
236 #define IOleParentUndoUnit_IMETHODS \
237         IOleUndoUnit_IMETHODS \
238         IOleParentUndoUnit_METHODS
239 ICOM_DEFINE(IOleParentUndoUnit,IOleUndoUnit)
240 #undef ICOM_INTERFACE
241
242 /*** IUnknown methods ***/
243 #define IOleParentUndoUnit_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
244 #define IOleParentUndoUnit_AddRef(p)             ICOM_CALL (AddRef,p)
245 #define IOleParentUndoUnit_Release(p)            ICOM_CALL (Release,p)
246 /*** IOleUndoUnit methods ***/
247 #define IOleParentUndoUnit_Do(p,a)               ICOM_CALL1(Do,p,a)
248 #define IOleParentUndoUnit_GetDescription(p,a)   ICOM_CALL1(GetDescription,p,a)
249 #define IOleParentUndoUnit_GetUnitType(p,a,b)    ICOM_CALL2(GetUnitType,p,a,b)
250 #define IOleParentUndoUnit_OnNextAdd(p)          ICOM_CALL (OnNextAdd,p)
251 /*** IOleParentUndoUnit methods ***/
252 #define IOleParentUndoUnit_Open(p,a)             ICOM_CALL1(Open,p,a)
253 #define IOleParentUndoUnit_Close(p,a,b)          ICOM_CALL2(Close,p,a,b)
254 #define IOleParentUndoUnit_Add(p,a)              ICOM_CALL1(Add,p,a)
255 #define IOleParentUndoUnit_FindUnit(p,a)         ICOM_CALL1(FindUnit,p,a)
256 #define IOleParentUndoUnit_GetParentState(p,a,b) ICOM_CALL1(GetParentState,p,a)
257
258
259 /*****************************************************************************
260  * IEnumOleUndoUnits interface
261  */
262 #define ICOM_INTERFACE IEnumOleUndoUnits
263 #define IEnumOleUndoUnits_METHODS \
264         ICOM_METHOD3(HRESULT,Next, ULONG,cElt, IOleUndoUnit**,rgElt, ULONG*,pcEltFetched) \
265         ICOM_METHOD1(HRESULT,Skip, ULONG,cElt) \
266         ICOM_METHOD (HRESULT,Reset) \
267         ICOM_METHOD1(HRESULT,Clone, IEnumOleUndoUnits**,ppEnum)
268 #define IEnumOleUndoUnits_IMETHODS \
269         IUnknown_IMETHODS \
270         IEnumOleUndoUnits_METHODS
271 ICOM_DEFINE(IEnumOleUndoUnits,IUnknown)
272 #undef ICOM_INTERFACE
273
274 /*** IUnknown methods ***/
275 #define IEnumOleUndoUnits_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
276 #define IEnumOleUndoUnits_AddRef(p)             ICOM_CALL (AddRef,p)
277 #define IEnumOleUndoUnits_Release(p)            ICOM_CALL (Release,p)
278 /*** IEnumOleUndoUnits methods ***/
279 #define IEnumOleUndoUnits_Next(p,a,b,c)         ICOM_CALL3(Next,p,a,b,c)
280 #define IEnumOleUndoUnits_Skip(p,a)             ICOM_CALL1(Skip,p,a)
281 #define IEnumOleUndoUnits_Reset(p,a)            ICOM_CALL (Reset,p,a)
282 #define IEnumOleUndoUnits_Clone(p,a)            ICOM_CALL1(Clone,p,a)
283
284 #ifdef __cplusplus
285 } /* extern "C" */
286 #endif /* defined(__cplusplus) */
287
288 #endif /* __WINE_WINE_OBJ_OLEUNDO_H */
289