1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef __WINSYNC_H__
7 #define __WINSYNC_H__
8 #include <objbase.h>
9
10 #if (_WIN32_WINNT >= 0x0601)
11
12 typedef enum _CONFLICT_RESOLUTION_POLICY {
13 CRP_NONE = 0,
14 CRP_DESTINATION_PROVIDER_WINS,
15 CRP_SOURCE_PROVIDER_WINS,
16 CRP_LAST
17 } CONFLICT_RESOLUTION_POLICY;
18
19 typedef enum _FILTERING_TYPE {
20 FT_CURRENT_ITEMS_ONLY = 0
21 } FILTERING_TYPE;
22
23 typedef enum _KNOWLEDGE_COOKIE_COMPARISON_RESULT {
24 KCCR_COOKIE_KNOWLEDGE_EQUAL = 0,
25 KCCR_COOKIE_KNOWLEDGE_CONTAINED,
26 KCCR_COOKIE_KNOWLEDGE_CONTAINS,
27 KCCR_COOKIE_KNOWLEDGE_NOT_COMPARABLE
28 } KNOWLEDGE_COOKIE_COMPARISON_RESULT;
29
30 typedef enum _SYNC_FULL_ENUMERATION_ACTION {
31 SFEA_FULL_ENUMERATION = 0,
32 SFEA_PARTIAL_SYNC,
33 SFEA_ABORT
34 } SYNC_FULL_ENUMERATION_ACTION;
35
36 typedef enum _SYNC_PROGRESS_STAGE {
37 SPS_CHANGE_DETECTION = 0,
38 SPS_CHANGE_ENUMERATION,
39 SPS_CHANGE_APPLICATION
40 } SYNC_PROGRESS_STAGE;
41
42 typedef enum _SYNC_PROVIDER_ROLE {
43 SPR_SOURCE = 0,
44 SPR_DESTINATION
45 } SYNC_PROVIDER_ROLE;
46
47 typedef enum _SYNC_RESOLVE_ACTION {
48 SRA_DEFER = 0,
49 SRA_ACCEPT_DESTINATION_PROVIDER,
50 SRA_ACCEPT_SOURCE_PROVIDER,
51 SRA_MERGE,
52 SRA_TRANSFER_AND_DEFER,
53 SRA_LAST
54 } SYNC_RESOLVE_ACTION;
55
56 typedef enum _SYNC_SERIALIZATION_VERSION {
57 SYNC_SERIALIZATION_VERSION_V1 = 0,
58 SYNC_SERIALIZATION_VERSION_V2
59 } SYNC_SERIALIZATION_VERSION;
60
61 typedef enum _SYNC_STATISTICS {
62 SYNC_STATISTICS_RANGE_COUNT = 0
63 } SYNC_STATISTICS;
64
65 typedef struct _ID_PARAMETER_PAIR {
66 WINBOOL fIsVariable;
67 USHORT cbIdSize;
68 } ID_PARAMETER_PAIR;
69
70 typedef struct _ID_PARAMETERS {
71 DWORD dwSize;
72 ID_PARAMETER_PAIR replicaId;
73 ID_PARAMETER_PAIR itemId;
74 ID_PARAMETER_PAIR changeUnitId;
75 } ID_PARAMETERS;
76
77 typedef struct _SYNC_RANGE {
78 BYTE * pbClosedLowerBound;
79 BYTE * pbClosedUpperBound;
80 } SYNC_RANGE;
81
82 typedef struct _SYNC_SESSION_STATISTICS {
83 DWORD dwChangesApplied;
84 DWORD dwChangesFailed;
85 } SYNC_SESSION_STATISTICS;
86
87 typedef struct _SYNC_TIME {
88 DWORD dwDate;
89 DWORD dwTime;
90 } SYNC_TIME;
91
92 typedef struct _SYNC_VERSION {
93 DWORD dwLastUpdatingReplicaKey;
94 ULONGLONG ullTickCount;
95 } SYNC_VERSION;
96
97 #ifndef __IAsynchronousDataRetriever_FWD_DEFINED__
98 #define __IAsynchronousDataRetriever_FWD_DEFINED__
99 typedef struct IAssociatedIdentityProvider IAssociatedIdentityProvider;
100 #endif
101
102 #ifndef __IDataRetrieverCallback_FWD_DEFINED__
103 #define __IDataRetrieverCallback_FWD_DEFINED__
104 typedef struct IDataRetrieverCallback IDataRetrieverCallback;
105 #endif
106
107 #ifndef __IChangeConflict_FWD_DEFINED__
108 #define __IChangeConflict_FWD_DEFINED__
109 typedef struct IChangeConflict IChangeConflict;
110 #endif
111
112 #ifndef __IChangeUnitException_FWD_DEFINED__
113 #define __IChangeUnitException_FWD_DEFINED__
114 typedef struct IChangeUnitException IChangeUnitException;
115 #endif
116
117 #ifndef __IChangeUnitListFilterInfo_FWD_DEFINED__
118 #define __IChangeUnitListFilterInfo_FWD_DEFINED__
119 typedef struct IChangeUnitListFilterInfo IChangeUnitListFilterInfo;
120 #endif
121
122 #ifndef __ISyncFilterInfo_FWD_DEFINED__
123 #define __ISyncFilterInfo_FWD_DEFINED__
124 typedef struct ISyncFilterInfo ISyncFilterInfo;
125 #endif
126
127 #ifndef __IClockVector_FWD_DEFINED__
128 #define __IClockVector_FWD_DEFINED__
129 typedef struct IClockVector IClockVector;
130 #endif
131
132 #ifndef __IClockVectorElement_FWD_DEFINED__
133 #define __IClockVectorElement_FWD_DEFINED__
134 typedef struct IClockVectorElement IClockVectorElement;
135 #endif
136
137 #ifndef __IConstructReplicaKeyMap_FWD_DEFINED__
138 #define __IConstructReplicaKeyMap_FWD_DEFINED__
139 typedef struct IConstructReplicaKeyMap IConstructReplicaKeyMap;
140 #endif
141
142 #ifndef __ICoreFragment_FWD_DEFINED__
143 #define __ICoreFragment_FWD_DEFINED__
144 typedef struct ICoreFragment ICoreFragment;
145 #endif
146
147 #ifndef __ILoadChangeContext_FWD_DEFINED__
148 #define __ILoadChangeContext_FWD_DEFINED__
149 typedef struct ILoadChangeContext ILoadChangeContext;
150 #endif
151
152 #ifndef __ISyncChange_FWD_DEFINED__
153 #define __ISyncChange_FWD_DEFINED__
154 typedef struct ISyncChange ISyncChange;
155 #endif
156
157 #ifndef __ISyncChangeUnit_FWD_DEFINED__
158 #define __ISyncChangeUnit_FWD_DEFINED__
159 typedef struct ISyncChangeUnit ISyncChangeUnit;
160 #endif
161
162 #ifndef __IRecoverableErrorData_FWD_DEFINED__
163 #define __IRecoverableErrorData_FWD_DEFINED__
164 typedef struct IRecoverableErrorData IRecoverableErrorData;
165 #endif
166
167 #ifndef __IEnumSyncChangeUnits_FWD_DEFINED__
168 #define __IEnumSyncChangeUnits_FWD_DEFINED__
169 typedef struct IEnumSyncChangeUnits IEnumSyncChangeUnits;
170 #endif
171
172 /* Fixme: ISyncKnowledge method list is missing from MSDN */
173 #ifndef __ISyncKnowledge_FWD_DEFINED__
174 #define __ISyncKnowledge_FWD_DEFINED__
175 typedef struct ISyncKnowledge ISyncKnowledge;
176 #endif
177
178 #undef INTERFACE
179 #define INTERFACE IAsynchronousDataRetriever
180 #ifdef __GNUC__
181 #warning COM interfaces layout in this header has not been verified.
182 #warning COM interfaces with incorrect layout may not work at all.
183 __MINGW_BROKEN_INTERFACE(INTERFACE)
184 #endif
DECLARE_INTERFACE_(IAsynchronousDataRetriever,IUnknown)185 DECLARE_INTERFACE_(IAsynchronousDataRetriever,IUnknown)
186 {
187 BEGIN_INTERFACE
188
189 /* IUnknown methods */
190 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
191 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
192 STDMETHOD_(ULONG, Release)(THIS) PURE;
193
194 /* IAsynchronousDataRetriever methods */
195 STDMETHOD_(HRESULT,GetIdParameters)(THIS_ ID_PARAMETERS *pIdParameters) PURE;
196 STDMETHOD_(HRESULT,LoadChangeData)(THIS_ ILoadChangeContext *pLoadChangeContext) PURE;
197 STDMETHOD_(HRESULT,RegisterCallback)(THIS_ IDataRetrieverCallback *pDataRetrieverCallback) PURE;
198 STDMETHOD_(HRESULT,RevokeCallback)(THIS_ IDataRetrieverCallback *pDataRetrieverCallback) PURE;
199
200 END_INTERFACE
201 };
202 #ifdef COBJMACROS
203 #define IAsynchronousDataRetriever_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
204 #define IAsynchronousDataRetriever_AddRef(This) (This)->lpVtbl->AddRef(This)
205 #define IAsynchronousDataRetriever_Release(This) (This)->lpVtbl->Release(This)
206 #define IAsynchronousDataRetriever_GetIdParameters(This,pIdParameters) (This)->lpVtbl->GetIdParameters(This,pIdParameters)
207 #define IAsynchronousDataRetriever_LoadChangeData(This,pLoadChangeContext) (This)->lpVtbl->LoadChangeData(This,pLoadChangeContext)
208 #define IAsynchronousDataRetriever_RegisterCallback(This,pDataRetrieverCallback) (This)->lpVtbl->RegisterCallback(This,pDataRetrieverCallback)
209 #define IAsynchronousDataRetriever_RevokeCallback(This,pDataRetrieverCallback) (This)->lpVtbl->RevokeCallback(This,pDataRetrieverCallback)
210 #endif /*COBJMACROS*/
211
212 #undef INTERFACE
213 #define INTERFACE IDataRetrieverCallback
214 #ifdef __GNUC__
215 #warning COM interfaces layout in this header has not been verified.
216 #warning COM interfaces with incorrect layout may not work at all.
217 __MINGW_BROKEN_INTERFACE(INTERFACE)
218 #endif
DECLARE_INTERFACE_(IDataRetrieverCallback,IUnknown)219 DECLARE_INTERFACE_(IDataRetrieverCallback,IUnknown)
220 {
221 BEGIN_INTERFACE
222
223 /* IUnknown methods */
224 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
225 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
226 STDMETHOD_(ULONG, Release)(THIS) PURE;
227
228 /* IDataRetrieverCallback methods */
229 STDMETHOD_(HRESULT,LoadChangeDataComplete)(THIS_ IUnknown *pUnkData) PURE;
230 STDMETHOD_(HRESULT,LoadChangeDataError)(THIS_ HRESULT hrError) PURE;
231
232 END_INTERFACE
233 };
234 #ifdef COBJMACROS
235 #define IDataRetrieverCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
236 #define IDataRetrieverCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
237 #define IDataRetrieverCallback_Release(This) (This)->lpVtbl->Release(This)
238 #define IDataRetrieverCallback_LoadChangeDataComplete(This,pUnkData) (This)->lpVtbl->LoadChangeDataComplete(This,pUnkData)
239 #define IDataRetrieverCallback_LoadChangeDataError(This,hrError) (This)->lpVtbl->LoadChangeDataError(This,hrError)
240 #endif /*COBJMACROS*/
241
242 #undef INTERFACE
243 #define INTERFACE IChangeConflict
244 #ifdef __GNUC__
245 #warning COM interfaces layout in this header has not been verified.
246 #warning COM interfaces with incorrect layout may not work at all.
247 __MINGW_BROKEN_INTERFACE(INTERFACE)
248 #endif
DECLARE_INTERFACE_(IChangeConflict,IUnknown)249 DECLARE_INTERFACE_(IChangeConflict,IUnknown)
250 {
251 BEGIN_INTERFACE
252
253 /* IUnknown methods */
254 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
255 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
256 STDMETHOD_(ULONG, Release)(THIS) PURE;
257
258 /* IChangeConflict methods */
259 STDMETHOD_(HRESULT,GetDestinationProviderConflictingChange)(THIS_ ISyncChange **ppConflictingChange) PURE;
260 STDMETHOD_(HRESULT,GetDestinationProviderConflictingData)(THIS_ IUnknown **ppConflictingData) PURE;
261 STDMETHOD_(HRESULT,GetResolveActionForChange)(THIS_ SYNC_RESOLVE_ACTION *pResolveAction) PURE;
262 STDMETHOD_(HRESULT,GetResolveActionForChangeUnit)(THIS_ ISyncChangeUnit *pChangeUnit,SYNC_RESOLVE_ACTION *pResolveAction) PURE;
263 STDMETHOD_(HRESULT,GetSourceProviderConflictingChange)(THIS_ ISyncChange **ppSyncChange) PURE;
264 STDMETHOD_(HRESULT,GetSourceProviderConflictingData)(THIS_ IUnknown **ppConflictingData) PURE;
265 STDMETHOD_(HRESULT,SetResolveActionForChange)(THIS_ SYNC_RESOLVE_ACTION resolveAction) PURE;
266 STDMETHOD_(HRESULT,SetResolveActionForChangeUnit)(THIS_ ISyncChangeUnit *pChangeUnit,SYNC_RESOLVE_ACTION resolveAction) PURE;
267
268 END_INTERFACE
269 };
270 #ifdef COBJMACROS
271 #define IChangeConflict_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
272 #define IChangeConflict_AddRef(This) (This)->lpVtbl->AddRef(This)
273 #define IChangeConflict_Release(This) (This)->lpVtbl->Release(This)
274 #define IChangeConflict_GetDestinationProviderConflictingChange(This,ppConflictingChange) (This)->lpVtbl->GetDestinationProviderConflictingChange(This,ppConflictingChange)
275 #define IChangeConflict_GetDestinationProviderConflictingData(This,ppConflictingData) (This)->lpVtbl->GetDestinationProviderConflictingData(This,ppConflictingData)
276 #define IChangeConflict_GetResolveActionForChange(This,pResolveAction) (This)->lpVtbl->GetResolveActionForChange(This,pResolveAction)
277 #define IChangeConflict_GetResolveActionForChangeUnit(This,pChangeUnit,pResolveAction) (This)->lpVtbl->GetResolveActionForChangeUnit(This,pChangeUnit,pResolveAction)
278 #define IChangeConflict_GetSourceProviderConflictingChange(This,ppSyncChange) (This)->lpVtbl->GetSourceProviderConflictingChange(This,ppSyncChange)
279 #define IChangeConflict_GetSourceProviderConflictingData(This,ppConflictingData) (This)->lpVtbl->GetSourceProviderConflictingData(This,ppConflictingData)
280 #define IChangeConflict_SetResolveActionForChange(This,resolveAction) (This)->lpVtbl->SetResolveActionForChange(This,resolveAction)
281 #define IChangeConflict_SetResolveActionForChangeUnit(This,pChangeUnit,resolveAction) (This)->lpVtbl->SetResolveActionForChangeUnit(This,pChangeUnit,resolveAction)
282 #endif /*COBJMACROS*/
283
284 #undef INTERFACE
285 #define INTERFACE IChangeUnitException
286 #ifdef __GNUC__
287 #warning COM interfaces layout in this header has not been verified.
288 #warning COM interfaces with incorrect layout may not work at all.
289 __MINGW_BROKEN_INTERFACE(INTERFACE)
290 #endif
DECLARE_INTERFACE_(IChangeUnitException,IUnknown)291 DECLARE_INTERFACE_(IChangeUnitException,IUnknown)
292 {
293 BEGIN_INTERFACE
294
295 /* IUnknown methods */
296 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
297 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
298 STDMETHOD_(ULONG, Release)(THIS) PURE;
299
300 /* IChangeUnitException methods */
301 STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD *pcbIdSize) PURE;
302 STDMETHOD_(HRESULT,GetClockVector)(THIS_ REFIID riid,void **ppUnk) PURE;
303 STDMETHOD_(HRESULT,GetItemId)(THIS_ DWORD *pcbIdSize) PURE;
304
305 END_INTERFACE
306 };
307 #ifdef COBJMACROS
308 #define IChangeUnitException_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
309 #define IChangeUnitException_AddRef(This) (This)->lpVtbl->AddRef(This)
310 #define IChangeUnitException_Release(This) (This)->lpVtbl->Release(This)
311 #define IChangeUnitException_GetChangeUnitId(This,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,pcbIdSize)
312 #define IChangeUnitException_GetClockVector(This,riid,ppUnk) (This)->lpVtbl->GetClockVector(This,riid,ppUnk)
313 #define IChangeUnitException_GetItemId(This,pcbIdSize) (This)->lpVtbl->GetItemId(This,pcbIdSize)
314 #endif /*COBJMACROS*/
315
316 #undef INTERFACE
317 #define INTERFACE ISyncFilterInfo
DECLARE_INTERFACE_(ISyncFilterInfo,IUnknown)318 DECLARE_INTERFACE_(ISyncFilterInfo,IUnknown)
319 {
320 BEGIN_INTERFACE
321
322 /* IUnknown methods */
323 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
324 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
325 STDMETHOD_(ULONG, Release)(THIS) PURE;
326
327 /* ISyncFilterInfo methods */
328 STDMETHOD_(HRESULT,Serialize)(THIS_ DWORD *pcbBuffer) PURE;
329
330 END_INTERFACE
331 };
332 #ifdef COBJMACROS
333 #define ISyncFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
334 #define ISyncFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
335 #define ISyncFilterInfo_Release(This) (This)->lpVtbl->Release(This)
336 #define ISyncFilterInfo_Serialize(This,pcbBuffer) (This)->lpVtbl->Serialize(This,pcbBuffer)
337 #endif /*COBJMACROS*/
338
339 #undef INTERFACE
340 #define INTERFACE IChangeUnitListFilterInfo
341 #ifdef __GNUC__
342 #warning COM interfaces layout in this header has not been verified.
343 #warning COM interfaces with incorrect layout may not work at all.
344 __MINGW_BROKEN_INTERFACE(INTERFACE)
345 #endif
DECLARE_INTERFACE_(IChangeUnitListFilterInfo,ISyncFilterInfo)346 DECLARE_INTERFACE_(IChangeUnitListFilterInfo,ISyncFilterInfo)
347 {
348 BEGIN_INTERFACE
349
350 /* IUnknown methods */
351 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
352 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
353 STDMETHOD_(ULONG, Release)(THIS) PURE;
354
355 /* ISyncFilterInfo methods */
356 STDMETHOD_(HRESULT,Serialize)(THIS_ DWORD *pcbBuffer) PURE;
357
358 /* IChangeUnitListFilterInfo methods */
359 STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD dwChangeUnitIdIndex,DWORD *pcbIdSize) PURE;
360 STDMETHOD_(HRESULT,GetChangeUnitIdCount)(THIS_ DWORD *pdwChangeUnitIdCount) PURE;
361 STDMETHOD_(HRESULT,Initialize)(THIS_ const BYTE * const *ppbChangeUnitIds,DWORD dwChangeUnitCount) PURE;
362
363 END_INTERFACE
364 };
365 #ifdef COBJMACROS
366 #define IChangeUnitListFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
367 #define IChangeUnitListFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
368 #define IChangeUnitListFilterInfo_Release(This) (This)->lpVtbl->Release(This)
369 #define IChangeUnitListFilterInfo_Serialize(This,pcbBuffer) (This)->lpVtbl->Serialize(This,pcbBuffer)
370 #define IChangeUnitListFilterInfo_GetChangeUnitId(This,dwChangeUnitIdIndex,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,dwChangeUnitIdIndex,pcbIdSize)
371 #define IChangeUnitListFilterInfo_GetChangeUnitIdCount(This,pdwChangeUnitIdCount) (This)->lpVtbl->GetChangeUnitIdCount(This,pdwChangeUnitIdCount)
372 #define IChangeUnitListFilterInfo_Initialize(This,ppbChangeUnitIds,dwChangeUnitCount) (This)->lpVtbl->Initialize(This,ppbChangeUnitIds,dwChangeUnitCount)
373 #endif /*COBJMACROS*/
374
375 #undef INTERFACE
376 #define INTERFACE IClockVector
377 #ifdef __GNUC__
378 #warning COM interfaces layout in this header has not been verified.
379 #warning COM interfaces with incorrect layout may not work at all.
380 __MINGW_BROKEN_INTERFACE(INTERFACE)
381 #endif
DECLARE_INTERFACE_(IClockVector,IUnknown)382 DECLARE_INTERFACE_(IClockVector,IUnknown)
383 {
384 BEGIN_INTERFACE
385
386 /* IUnknown methods */
387 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
388 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
389 STDMETHOD_(ULONG, Release)(THIS) PURE;
390
391 /* IClockVector methods */
392 STDMETHOD_(HRESULT,GetClockVectorElementCount)(THIS_ DWORD *pdwCount) PURE;
393 STDMETHOD_(HRESULT,GetClockVectorElements)(THIS_ REFIID riid,void **ppiEnumClockVector) PURE;
394
395 END_INTERFACE
396 };
397 #ifdef COBJMACROS
398 #define IClockVector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
399 #define IClockVector_AddRef(This) (This)->lpVtbl->AddRef(This)
400 #define IClockVector_Release(This) (This)->lpVtbl->Release(This)
401 #define IClockVector_GetClockVectorElementCount(This,pdwCount) (This)->lpVtbl->GetClockVectorElementCount(This,pdwCount)
402 #define IClockVector_GetClockVectorElements(This,riid,ppiEnumClockVector) (This)->lpVtbl->GetClockVectorElements(This,riid,ppiEnumClockVector)
403 #endif /*COBJMACROS*/
404
405 #undef INTERFACE
406 #define INTERFACE IClockVectorElement
407 #ifdef __GNUC__
408 #warning COM interfaces layout in this header has not been verified.
409 #warning COM interfaces with incorrect layout may not work at all.
410 __MINGW_BROKEN_INTERFACE(INTERFACE)
411 #endif
DECLARE_INTERFACE_(IClockVectorElement,IUnknown)412 DECLARE_INTERFACE_(IClockVectorElement,IUnknown)
413 {
414 BEGIN_INTERFACE
415
416 /* IUnknown methods */
417 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
418 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
419 STDMETHOD_(ULONG, Release)(THIS) PURE;
420
421 /* IClockVectorElement methods */
422 STDMETHOD_(HRESULT,GetReplicaKey)(THIS_ DWORD *pdwReplicaKey) PURE;
423 STDMETHOD_(HRESULT,GetTickCount)(THIS_ ULONGLONG *pullTickCount) PURE;
424
425 END_INTERFACE
426 };
427 #ifdef COBJMACROS
428 #define IClockVectorElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
429 #define IClockVectorElement_AddRef(This) (This)->lpVtbl->AddRef(This)
430 #define IClockVectorElement_Release(This) (This)->lpVtbl->Release(This)
431 #define IClockVectorElement_GetReplicaKey(This,pdwReplicaKey) (This)->lpVtbl->GetReplicaKey(This,pdwReplicaKey)
432 #define IClockVectorElement_GetTickCount(This,pullTickCount) (This)->lpVtbl->GetTickCount(This,pullTickCount)
433 #endif /*COBJMACROS*/
434
435 #undef INTERFACE
436 #define INTERFACE IConstructReplicaKeyMap
DECLARE_INTERFACE_(IConstructReplicaKeyMap,IUnknown)437 DECLARE_INTERFACE_(IConstructReplicaKeyMap,IUnknown)
438 {
439 BEGIN_INTERFACE
440
441 /* IUnknown methods */
442 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
443 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
444 STDMETHOD_(ULONG, Release)(THIS) PURE;
445
446 /* IConstructReplicaKeyMap methods */
447 STDMETHOD_(HRESULT,FindOrAddReplica)(THIS_ BYTE *pbReplicaId,DWORD *pdwReplicaKey) PURE;
448
449 END_INTERFACE
450 };
451 #ifdef COBJMACROS
452 #define IConstructReplicaKeyMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
453 #define IConstructReplicaKeyMap_AddRef(This) (This)->lpVtbl->AddRef(This)
454 #define IConstructReplicaKeyMap_Release(This) (This)->lpVtbl->Release(This)
455 #define IConstructReplicaKeyMap_FindOrAddReplica(This,pbReplicaId,pdwReplicaKey) (This)->lpVtbl->FindOrAddReplica(This,pbReplicaId,pdwReplicaKey)
456 #endif /*COBJMACROS*/
457
458 #undef INTERFACE
459 #define INTERFACE ICoreFragment
460 #ifdef __GNUC__
461 #warning COM interfaces layout in this header has not been verified.
462 #warning COM interfaces with incorrect layout may not work at all.
463 __MINGW_BROKEN_INTERFACE(INTERFACE)
464 #endif
DECLARE_INTERFACE_(ICoreFragment,IUnknown)465 DECLARE_INTERFACE_(ICoreFragment,IUnknown)
466 {
467 BEGIN_INTERFACE
468
469 /* IUnknown methods */
470 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
471 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
472 STDMETHOD_(ULONG, Release)(THIS) PURE;
473
474 /* ICoreFragment methods */
475 STDMETHOD_(HRESULT,GetColumnCount)(THIS_ DWORD *pColumnCount) PURE;
476 STDMETHOD_(HRESULT,GetRangeCount)(THIS_ DWORD *pRangeCount) PURE;
477 STDMETHOD_(HRESULT,NextColumn)(THIS_ DWORD *pChangeUnitIdSize) PURE;
478 STDMETHOD_(HRESULT,NextRange)(THIS_ DWORD *pItemIdSize,IClockVector **piClockVector) PURE;
479 STDMETHOD_(HRESULT,Reset)(THIS) PURE;
480
481 END_INTERFACE
482 };
483 #ifdef COBJMACROS
484 #define ICoreFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
485 #define ICoreFragment_AddRef(This) (This)->lpVtbl->AddRef(This)
486 #define ICoreFragment_Release(This) (This)->lpVtbl->Release(This)
487 #define ICoreFragment_GetColumnCount(This,pColumnCount) (This)->lpVtbl->GetColumnCount(This,pColumnCount)
488 #define ICoreFragment_GetRangeCount(This,pRangeCount) (This)->lpVtbl->GetRangeCount(This,pRangeCount)
489 #define ICoreFragment_NextColumn(This,pChangeUnitIdSize) (This)->lpVtbl->NextColumn(This,pChangeUnitIdSize)
490 #define ICoreFragment_NextRange(This,pItemIdSize,piClockVector) (This)->lpVtbl->NextRange(This,pItemIdSize,piClockVector)
491 #define ICoreFragment_Reset() (This)->lpVtbl->Reset(This)
492 #endif /*COBJMACROS*/
493
494 #undef INTERFACE
495 #define INTERFACE ILoadChangeContext
496 #ifdef __GNUC__
497 #warning COM interfaces layout in this header has not been verified.
498 #warning COM interfaces with incorrect layout may not work at all.
499 __MINGW_BROKEN_INTERFACE(INTERFACE)
500 #endif
DECLARE_INTERFACE_(ILoadChangeContext,IUnknown)501 DECLARE_INTERFACE_(ILoadChangeContext,IUnknown)
502 {
503 BEGIN_INTERFACE
504
505 /* IUnknown methods */
506 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
507 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
508 STDMETHOD_(ULONG, Release)(THIS) PURE;
509
510 /* ILoadChangeContext methods */
511 STDMETHOD_(HRESULT,GetSyncChange)(THIS_ ISyncChange **ppSyncChange) PURE;
512 STDMETHOD_(HRESULT,SetRecoverableErrorOnChange)(THIS_ HRESULT hrError,IRecoverableErrorData *pErrorData) PURE;
513 STDMETHOD_(HRESULT,SetRecoverableErrorOnChangeUnit)(THIS_ HRESULT hrError,ISyncChangeUnit *pChangeUnit,IRecoverableErrorData *pErrorData) PURE;
514
515 END_INTERFACE
516 };
517 #ifdef COBJMACROS
518 #define ILoadChangeContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
519 #define ILoadChangeContext_AddRef(This) (This)->lpVtbl->AddRef(This)
520 #define ILoadChangeContext_Release(This) (This)->lpVtbl->Release(This)
521 #define ILoadChangeContext_GetSyncChange(This,ppSyncChange) (This)->lpVtbl->GetSyncChange(This,ppSyncChange)
522 #define ILoadChangeContext_SetRecoverableErrorOnChange(This,hrError,pErrorData) (This)->lpVtbl->SetRecoverableErrorOnChange(This,hrError,pErrorData)
523 #define ILoadChangeContext_SetRecoverableErrorOnChangeUnit(This,hrError,pChangeUnit,pErrorData) (This)->lpVtbl->SetRecoverableErrorOnChangeUnit(This,hrError,pChangeUnit,pErrorData)
524 #endif /*COBJMACROS*/
525
526 #undef INTERFACE
527 #define INTERFACE ISyncChange
528 #ifdef __GNUC__
529 #warning COM interfaces layout in this header has not been verified.
530 #warning COM interfaces with incorrect layout may not work at all.
531 __MINGW_BROKEN_INTERFACE(INTERFACE)
532 #endif
DECLARE_INTERFACE_(ISyncChange,IUnknown)533 DECLARE_INTERFACE_(ISyncChange,IUnknown)
534 {
535 BEGIN_INTERFACE
536
537 /* IUnknown methods */
538 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
539 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
540 STDMETHOD_(ULONG, Release)(THIS) PURE;
541
542 /* ISyncChange methods */
543 STDMETHOD_(HRESULT,GetChangeUnits)(THIS_ IEnumSyncChangeUnits **ppEnum) PURE;
544 STDMETHOD_(HRESULT,GetChangeVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE;
545 STDMETHOD_(HRESULT,GetCreationVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE;
546 STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE;
547 STDMETHOD_(HRESULT,GetLearnedKnowledge)(THIS_ ISyncKnowledge **ppMadeWithKnowledge) PURE;
548 STDMETHOD_(HRESULT,GetMadeWithKnowledge)(THIS_ ISyncKnowledge **ppMadeWithKnowledge) PURE;
549 STDMETHOD_(HRESULT,GetOwnerReplicaId)(THIS_ DWORD *pcbIdSize) PURE;
550 STDMETHOD_(HRESULT,GetRootItemId)(THIS_ DWORD *pcbIdSize) PURE;
551 STDMETHOD_(HRESULT,GetWorkEstimate)(THIS_ DWORD *pdwWork) PURE;
552 STDMETHOD_(HRESULT,SetWorkEstimate)(THIS_ DWORD dwWork) PURE;
553
554 END_INTERFACE
555 };
556 #ifdef COBJMACROS
557 #define ISyncChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
558 #define ISyncChange_AddRef(This) (This)->lpVtbl->AddRef(This)
559 #define ISyncChange_Release(This) (This)->lpVtbl->Release(This)
560 #define ISyncChange_GetChangeUnits(This,ppEnum) (This)->lpVtbl->GetChangeUnits(This,ppEnum)
561 #define ISyncChange_GetChangeVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetChangeVersion(This,pbCurrentReplicaId,pVersion)
562 #define ISyncChange_GetCreationVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetCreationVersion(This,pbCurrentReplicaId,pVersion)
563 #define ISyncChange_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
564 #define ISyncChange_GetLearnedKnowledge(This,ppMadeWithKnowledge) (This)->lpVtbl->GetLearnedKnowledge(This,ppMadeWithKnowledge)
565 #define ISyncChange_GetMadeWithKnowledge(This,ppMadeWithKnowledge) (This)->lpVtbl->GetMadeWithKnowledge(This,ppMadeWithKnowledge)
566 #define ISyncChange_GetOwnerReplicaId(This,pcbIdSize) (This)->lpVtbl->GetOwnerReplicaId(This,pcbIdSize)
567 #define ISyncChange_GetRootItemId(This,pcbIdSize) (This)->lpVtbl->GetRootItemId(This,pcbIdSize)
568 #define ISyncChange_GetWorkEstimate(This,pdwWork) (This)->lpVtbl->GetWorkEstimate(This,pdwWork)
569 #define ISyncChange_SetWorkEstimate(This,dwWork) (This)->lpVtbl->SetWorkEstimate(This,dwWork)
570 #endif /*COBJMACROS*/
571
572 #undef INTERFACE
573 #define INTERFACE ISyncChangeUnit
574 #ifdef __GNUC__
575 #warning COM interfaces layout in this header has not been verified.
576 #warning COM interfaces with incorrect layout may not work at all.
577 __MINGW_BROKEN_INTERFACE(INTERFACE)
578 #endif
DECLARE_INTERFACE_(ISyncChangeUnit,IUnknown)579 DECLARE_INTERFACE_(ISyncChangeUnit,IUnknown)
580 {
581 BEGIN_INTERFACE
582
583 /* IUnknown methods */
584 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
585 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
586 STDMETHOD_(ULONG, Release)(THIS) PURE;
587
588 /* ISyncChangeUnit methods */
589 STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD *pcbIdSize) PURE;
590 STDMETHOD_(HRESULT,GetChangeUnitVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE;
591 STDMETHOD_(HRESULT,GetItemChange)(THIS_ ISyncChange **ppSyncChange) PURE;
592
593 END_INTERFACE
594 };
595 #ifdef COBJMACROS
596 #define ISyncChangeUnit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
597 #define ISyncChangeUnit_AddRef(This) (This)->lpVtbl->AddRef(This)
598 #define ISyncChangeUnit_Release(This) (This)->lpVtbl->Release(This)
599 #define ISyncChangeUnit_GetChangeUnitId(This,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,pcbIdSize)
600 #define ISyncChangeUnit_GetChangeUnitVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetChangeUnitVersion(This,pbCurrentReplicaId,pVersion)
601 #define ISyncChangeUnit_GetItemChange(This,ppSyncChange) (This)->lpVtbl->GetItemChange(This,ppSyncChange)
602 #endif /*COBJMACROS*/
603
604 #undef INTERFACE
605 #define INTERFACE IRecoverableErrorData
606 #ifdef __GNUC__
607 #warning COM interfaces layout in this header has not been verified.
608 #warning COM interfaces with incorrect layout may not work at all.
609 __MINGW_BROKEN_INTERFACE(INTERFACE)
610 #endif
DECLARE_INTERFACE_(IRecoverableErrorData,IUnknown)611 DECLARE_INTERFACE_(IRecoverableErrorData,IUnknown)
612 {
613 BEGIN_INTERFACE
614
615 /* IUnknown methods */
616 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
617 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
618 STDMETHOD_(ULONG, Release)(THIS) PURE;
619
620 /* IRecoverableErrorData methods */
621 STDMETHOD_(HRESULT,GetErrorDescription)(THIS_ DWORD *pcchErrorDescription) PURE;
622 STDMETHOD_(HRESULT,GetItemDisplayName)(THIS_ DWORD *pcchItemDisplayName) PURE;
623 STDMETHOD_(HRESULT,Initialize)(THIS_ LPCWSTR pcszItemDisplayName,LPCWSTR pcszErrorDescription) PURE;
624
625 END_INTERFACE
626 };
627 #ifdef COBJMACROS
628 #define IRecoverableErrorData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
629 #define IRecoverableErrorData_AddRef(This) (This)->lpVtbl->AddRef(This)
630 #define IRecoverableErrorData_Release(This) (This)->lpVtbl->Release(This)
631 #define IRecoverableErrorData_GetErrorDescription(This,pcchErrorDescription) (This)->lpVtbl->GetErrorDescription(This,pcchErrorDescription)
632 #define IRecoverableErrorData_GetItemDisplayName(This,pcchItemDisplayName) (This)->lpVtbl->GetItemDisplayName(This,pcchItemDisplayName)
633 #define IRecoverableErrorData_Initialize(This,pcszItemDisplayName,pcszErrorDescription) (This)->lpVtbl->Initialize(This,pcszItemDisplayName,pcszErrorDescription)
634 #endif /*COBJMACROS*/
635
636 #undef INTERFACE
637 #define INTERFACE IEnumSyncChangeUnits
638 #ifdef __GNUC__
639 #warning COM interfaces layout in this header has not been verified.
640 #warning COM interfaces with incorrect layout may not work at all.
641 __MINGW_BROKEN_INTERFACE(INTERFACE)
642 #endif
DECLARE_INTERFACE_(IEnumSyncChangeUnits,IUnknown)643 DECLARE_INTERFACE_(IEnumSyncChangeUnits,IUnknown)
644 {
645 BEGIN_INTERFACE
646
647 /* IUnknown methods */
648 STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
649 STDMETHOD_(ULONG, AddRef)(THIS) PURE;
650 STDMETHOD_(ULONG, Release)(THIS) PURE;
651
652 /* IEnumSyncChangeUnits methods */
653 STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSyncChangeUnits **ppEnum) PURE;
654 STDMETHOD_(HRESULT,Next)(THIS_ ULONG cChanges,ISyncChangeUnit **ppChangeUnit,ULONG *pcFetched) PURE;
655 STDMETHOD_(HRESULT,Reset)(THIS) PURE;
656 STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cChanges) PURE;
657
658 END_INTERFACE
659 };
660 #ifdef COBJMACROS
661 #define IEnumSyncChangeUnits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
662 #define IEnumSyncChangeUnits_AddRef(This) (This)->lpVtbl->AddRef(This)
663 #define IEnumSyncChangeUnits_Release(This) (This)->lpVtbl->Release(This)
664 #define IEnumSyncChangeUnits_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
665 #define IEnumSyncChangeUnits_Next(This,cChanges,ppChangeUnit,pcFetched) (This)->lpVtbl->Next(This,cChanges,ppChangeUnit,pcFetched)
666 #define IEnumSyncChangeUnits_Reset() (This)->lpVtbl->Reset(This)
667 #define IEnumSyncChangeUnits_Skip(This,cChanges) (This)->lpVtbl->Skip(This,cChanges)
668 #endif /*COBJMACROS*/
669
670 #endif /*(_WIN32_WINNT >= 0x0601)*/
671 #endif /* __WINSYNC_H__ */
672