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 12typedef 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 19typedef enum _FILTERING_TYPE { 20 FT_CURRENT_ITEMS_ONLY = 0 21} FILTERING_TYPE; 22 23typedef 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 30typedef enum _SYNC_FULL_ENUMERATION_ACTION { 31 SFEA_FULL_ENUMERATION = 0, 32 SFEA_PARTIAL_SYNC, 33 SFEA_ABORT 34} SYNC_FULL_ENUMERATION_ACTION; 35 36typedef enum _SYNC_PROGRESS_STAGE { 37 SPS_CHANGE_DETECTION = 0, 38 SPS_CHANGE_ENUMERATION, 39 SPS_CHANGE_APPLICATION 40} SYNC_PROGRESS_STAGE; 41 42typedef enum _SYNC_PROVIDER_ROLE { 43 SPR_SOURCE = 0, 44 SPR_DESTINATION 45} SYNC_PROVIDER_ROLE; 46 47typedef 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 56typedef enum _SYNC_SERIALIZATION_VERSION { 57 SYNC_SERIALIZATION_VERSION_V1 = 0, 58 SYNC_SERIALIZATION_VERSION_V2 59} SYNC_SERIALIZATION_VERSION; 60 61typedef enum _SYNC_STATISTICS { 62 SYNC_STATISTICS_RANGE_COUNT = 0 63} SYNC_STATISTICS; 64 65typedef struct _ID_PARAMETER_PAIR { 66 WINBOOL fIsVariable; 67 USHORT cbIdSize; 68} ID_PARAMETER_PAIR; 69 70typedef 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 77typedef struct _SYNC_RANGE { 78 BYTE * pbClosedLowerBound; 79 BYTE * pbClosedUpperBound; 80} SYNC_RANGE; 81 82typedef struct _SYNC_SESSION_STATISTICS { 83 DWORD dwChangesApplied; 84 DWORD dwChangesFailed; 85} SYNC_SESSION_STATISTICS; 86 87typedef struct _SYNC_TIME { 88 DWORD dwDate; 89 DWORD dwTime; 90} SYNC_TIME; 91 92typedef struct _SYNC_VERSION { 93 DWORD dwLastUpdatingReplicaKey; 94 ULONGLONG ullTickCount; 95} SYNC_VERSION; 96 97#ifndef __IAsynchronousDataRetriever_FWD_DEFINED__ 98#define __IAsynchronousDataRetriever_FWD_DEFINED__ 99typedef struct IAssociatedIdentityProvider IAssociatedIdentityProvider; 100#endif 101 102#ifndef __IDataRetrieverCallback_FWD_DEFINED__ 103#define __IDataRetrieverCallback_FWD_DEFINED__ 104typedef struct IDataRetrieverCallback IDataRetrieverCallback; 105#endif 106 107#ifndef __IChangeConflict_FWD_DEFINED__ 108#define __IChangeConflict_FWD_DEFINED__ 109typedef struct IChangeConflict IChangeConflict; 110#endif 111 112#ifndef __IChangeUnitException_FWD_DEFINED__ 113#define __IChangeUnitException_FWD_DEFINED__ 114typedef struct IChangeUnitException IChangeUnitException; 115#endif 116 117#ifndef __IChangeUnitListFilterInfo_FWD_DEFINED__ 118#define __IChangeUnitListFilterInfo_FWD_DEFINED__ 119typedef struct IChangeUnitListFilterInfo IChangeUnitListFilterInfo; 120#endif 121 122#ifndef __ISyncFilterInfo_FWD_DEFINED__ 123#define __ISyncFilterInfo_FWD_DEFINED__ 124typedef struct ISyncFilterInfo ISyncFilterInfo; 125#endif 126 127#ifndef __IClockVector_FWD_DEFINED__ 128#define __IClockVector_FWD_DEFINED__ 129typedef struct IClockVector IClockVector; 130#endif 131 132#ifndef __IClockVectorElement_FWD_DEFINED__ 133#define __IClockVectorElement_FWD_DEFINED__ 134typedef struct IClockVectorElement IClockVectorElement; 135#endif 136 137#ifndef __IConstructReplicaKeyMap_FWD_DEFINED__ 138#define __IConstructReplicaKeyMap_FWD_DEFINED__ 139typedef struct IConstructReplicaKeyMap IConstructReplicaKeyMap; 140#endif 141 142#ifndef __ICoreFragment_FWD_DEFINED__ 143#define __ICoreFragment_FWD_DEFINED__ 144typedef struct ICoreFragment ICoreFragment; 145#endif 146 147#ifndef __ILoadChangeContext_FWD_DEFINED__ 148#define __ILoadChangeContext_FWD_DEFINED__ 149typedef struct ILoadChangeContext ILoadChangeContext; 150#endif 151 152#ifndef __ISyncChange_FWD_DEFINED__ 153#define __ISyncChange_FWD_DEFINED__ 154typedef struct ISyncChange ISyncChange; 155#endif 156 157#ifndef __ISyncChangeUnit_FWD_DEFINED__ 158#define __ISyncChangeUnit_FWD_DEFINED__ 159typedef struct ISyncChangeUnit ISyncChangeUnit; 160#endif 161 162#ifndef __IRecoverableErrorData_FWD_DEFINED__ 163#define __IRecoverableErrorData_FWD_DEFINED__ 164typedef struct IRecoverableErrorData IRecoverableErrorData; 165#endif 166 167#ifndef __IEnumSyncChangeUnits_FWD_DEFINED__ 168#define __IEnumSyncChangeUnits_FWD_DEFINED__ 169typedef 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__ 175typedef 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 185DECLARE_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 219DECLARE_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 249DECLARE_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 291DECLARE_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 318DECLARE_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 346DECLARE_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 382DECLARE_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 412DECLARE_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 437DECLARE_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 465DECLARE_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 501DECLARE_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 533DECLARE_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 579DECLARE_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 611DECLARE_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 643DECLARE_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