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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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