Home | History | Annotate | Download | only in include
      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