/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef __WINSYNC_H__ #define __WINSYNC_H__ #include <objbase.h> #if (_WIN32_WINNT >= 0x0601) typedef enum _CONFLICT_RESOLUTION_POLICY { CRP_NONE = 0, CRP_DESTINATION_PROVIDER_WINS, CRP_SOURCE_PROVIDER_WINS, CRP_LAST } CONFLICT_RESOLUTION_POLICY; typedef enum _FILTERING_TYPE { FT_CURRENT_ITEMS_ONLY = 0 } FILTERING_TYPE; typedef enum _KNOWLEDGE_COOKIE_COMPARISON_RESULT { KCCR_COOKIE_KNOWLEDGE_EQUAL = 0, KCCR_COOKIE_KNOWLEDGE_CONTAINED, KCCR_COOKIE_KNOWLEDGE_CONTAINS, KCCR_COOKIE_KNOWLEDGE_NOT_COMPARABLE } KNOWLEDGE_COOKIE_COMPARISON_RESULT; typedef enum _SYNC_FULL_ENUMERATION_ACTION { SFEA_FULL_ENUMERATION = 0, SFEA_PARTIAL_SYNC, SFEA_ABORT } SYNC_FULL_ENUMERATION_ACTION; typedef enum _SYNC_PROGRESS_STAGE { SPS_CHANGE_DETECTION = 0, SPS_CHANGE_ENUMERATION, SPS_CHANGE_APPLICATION } SYNC_PROGRESS_STAGE; typedef enum _SYNC_PROVIDER_ROLE { SPR_SOURCE = 0, SPR_DESTINATION } SYNC_PROVIDER_ROLE; typedef enum _SYNC_RESOLVE_ACTION { SRA_DEFER = 0, SRA_ACCEPT_DESTINATION_PROVIDER, SRA_ACCEPT_SOURCE_PROVIDER, SRA_MERGE, SRA_TRANSFER_AND_DEFER, SRA_LAST } SYNC_RESOLVE_ACTION; typedef enum _SYNC_SERIALIZATION_VERSION { SYNC_SERIALIZATION_VERSION_V1 = 0, SYNC_SERIALIZATION_VERSION_V2 } SYNC_SERIALIZATION_VERSION; typedef enum _SYNC_STATISTICS { SYNC_STATISTICS_RANGE_COUNT = 0 } SYNC_STATISTICS; typedef struct _ID_PARAMETER_PAIR { WINBOOL fIsVariable; USHORT cbIdSize; } ID_PARAMETER_PAIR; typedef struct _ID_PARAMETERS { DWORD dwSize; ID_PARAMETER_PAIR replicaId; ID_PARAMETER_PAIR itemId; ID_PARAMETER_PAIR changeUnitId; } ID_PARAMETERS; typedef struct _SYNC_RANGE { BYTE * pbClosedLowerBound; BYTE * pbClosedUpperBound; } SYNC_RANGE; typedef struct _SYNC_SESSION_STATISTICS { DWORD dwChangesApplied; DWORD dwChangesFailed; } SYNC_SESSION_STATISTICS; typedef struct _SYNC_TIME { DWORD dwDate; DWORD dwTime; } SYNC_TIME; typedef struct _SYNC_VERSION { DWORD dwLastUpdatingReplicaKey; ULONGLONG ullTickCount; } SYNC_VERSION; #ifndef __IAsynchronousDataRetriever_FWD_DEFINED__ #define __IAsynchronousDataRetriever_FWD_DEFINED__ typedef struct IAssociatedIdentityProvider IAssociatedIdentityProvider; #endif #ifndef __IDataRetrieverCallback_FWD_DEFINED__ #define __IDataRetrieverCallback_FWD_DEFINED__ typedef struct IDataRetrieverCallback IDataRetrieverCallback; #endif #ifndef __IChangeConflict_FWD_DEFINED__ #define __IChangeConflict_FWD_DEFINED__ typedef struct IChangeConflict IChangeConflict; #endif #ifndef __IChangeUnitException_FWD_DEFINED__ #define __IChangeUnitException_FWD_DEFINED__ typedef struct IChangeUnitException IChangeUnitException; #endif #ifndef __IChangeUnitListFilterInfo_FWD_DEFINED__ #define __IChangeUnitListFilterInfo_FWD_DEFINED__ typedef struct IChangeUnitListFilterInfo IChangeUnitListFilterInfo; #endif #ifndef __ISyncFilterInfo_FWD_DEFINED__ #define __ISyncFilterInfo_FWD_DEFINED__ typedef struct ISyncFilterInfo ISyncFilterInfo; #endif #ifndef __IClockVector_FWD_DEFINED__ #define __IClockVector_FWD_DEFINED__ typedef struct IClockVector IClockVector; #endif #ifndef __IClockVectorElement_FWD_DEFINED__ #define __IClockVectorElement_FWD_DEFINED__ typedef struct IClockVectorElement IClockVectorElement; #endif #ifndef __IConstructReplicaKeyMap_FWD_DEFINED__ #define __IConstructReplicaKeyMap_FWD_DEFINED__ typedef struct IConstructReplicaKeyMap IConstructReplicaKeyMap; #endif #ifndef __ICoreFragment_FWD_DEFINED__ #define __ICoreFragment_FWD_DEFINED__ typedef struct ICoreFragment ICoreFragment; #endif #ifndef __ILoadChangeContext_FWD_DEFINED__ #define __ILoadChangeContext_FWD_DEFINED__ typedef struct ILoadChangeContext ILoadChangeContext; #endif #ifndef __ISyncChange_FWD_DEFINED__ #define __ISyncChange_FWD_DEFINED__ typedef struct ISyncChange ISyncChange; #endif #ifndef __ISyncChangeUnit_FWD_DEFINED__ #define __ISyncChangeUnit_FWD_DEFINED__ typedef struct ISyncChangeUnit ISyncChangeUnit; #endif #ifndef __IRecoverableErrorData_FWD_DEFINED__ #define __IRecoverableErrorData_FWD_DEFINED__ typedef struct IRecoverableErrorData IRecoverableErrorData; #endif #ifndef __IEnumSyncChangeUnits_FWD_DEFINED__ #define __IEnumSyncChangeUnits_FWD_DEFINED__ typedef struct IEnumSyncChangeUnits IEnumSyncChangeUnits; #endif /* Fixme: ISyncKnowledge method list is missing from MSDN */ #ifndef __ISyncKnowledge_FWD_DEFINED__ #define __ISyncKnowledge_FWD_DEFINED__ typedef struct ISyncKnowledge ISyncKnowledge; #endif #undef INTERFACE #define INTERFACE IAsynchronousDataRetriever #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IAsynchronousDataRetriever,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IAsynchronousDataRetriever methods */ STDMETHOD_(HRESULT,GetIdParameters)(THIS_ ID_PARAMETERS *pIdParameters) PURE; STDMETHOD_(HRESULT,LoadChangeData)(THIS_ ILoadChangeContext *pLoadChangeContext) PURE; STDMETHOD_(HRESULT,RegisterCallback)(THIS_ IDataRetrieverCallback *pDataRetrieverCallback) PURE; STDMETHOD_(HRESULT,RevokeCallback)(THIS_ IDataRetrieverCallback *pDataRetrieverCallback) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IAsynchronousDataRetriever_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IAsynchronousDataRetriever_AddRef(This) (This)->lpVtbl->AddRef(This) #define IAsynchronousDataRetriever_Release(This) (This)->lpVtbl->Release(This) #define IAsynchronousDataRetriever_GetIdParameters(This,pIdParameters) (This)->lpVtbl->GetIdParameters(This,pIdParameters) #define IAsynchronousDataRetriever_LoadChangeData(This,pLoadChangeContext) (This)->lpVtbl->LoadChangeData(This,pLoadChangeContext) #define IAsynchronousDataRetriever_RegisterCallback(This,pDataRetrieverCallback) (This)->lpVtbl->RegisterCallback(This,pDataRetrieverCallback) #define IAsynchronousDataRetriever_RevokeCallback(This,pDataRetrieverCallback) (This)->lpVtbl->RevokeCallback(This,pDataRetrieverCallback) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IDataRetrieverCallback #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IDataRetrieverCallback,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IDataRetrieverCallback methods */ STDMETHOD_(HRESULT,LoadChangeDataComplete)(THIS_ IUnknown *pUnkData) PURE; STDMETHOD_(HRESULT,LoadChangeDataError)(THIS_ HRESULT hrError) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IDataRetrieverCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IDataRetrieverCallback_AddRef(This) (This)->lpVtbl->AddRef(This) #define IDataRetrieverCallback_Release(This) (This)->lpVtbl->Release(This) #define IDataRetrieverCallback_LoadChangeDataComplete(This,pUnkData) (This)->lpVtbl->LoadChangeDataComplete(This,pUnkData) #define IDataRetrieverCallback_LoadChangeDataError(This,hrError) (This)->lpVtbl->LoadChangeDataError(This,hrError) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IChangeConflict #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IChangeConflict,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IChangeConflict methods */ STDMETHOD_(HRESULT,GetDestinationProviderConflictingChange)(THIS_ ISyncChange **ppConflictingChange) PURE; STDMETHOD_(HRESULT,GetDestinationProviderConflictingData)(THIS_ IUnknown **ppConflictingData) PURE; STDMETHOD_(HRESULT,GetResolveActionForChange)(THIS_ SYNC_RESOLVE_ACTION *pResolveAction) PURE; STDMETHOD_(HRESULT,GetResolveActionForChangeUnit)(THIS_ ISyncChangeUnit *pChangeUnit,SYNC_RESOLVE_ACTION *pResolveAction) PURE; STDMETHOD_(HRESULT,GetSourceProviderConflictingChange)(THIS_ ISyncChange **ppSyncChange) PURE; STDMETHOD_(HRESULT,GetSourceProviderConflictingData)(THIS_ IUnknown **ppConflictingData) PURE; STDMETHOD_(HRESULT,SetResolveActionForChange)(THIS_ SYNC_RESOLVE_ACTION resolveAction) PURE; STDMETHOD_(HRESULT,SetResolveActionForChangeUnit)(THIS_ ISyncChangeUnit *pChangeUnit,SYNC_RESOLVE_ACTION resolveAction) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IChangeConflict_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IChangeConflict_AddRef(This) (This)->lpVtbl->AddRef(This) #define IChangeConflict_Release(This) (This)->lpVtbl->Release(This) #define IChangeConflict_GetDestinationProviderConflictingChange(This,ppConflictingChange) (This)->lpVtbl->GetDestinationProviderConflictingChange(This,ppConflictingChange) #define IChangeConflict_GetDestinationProviderConflictingData(This,ppConflictingData) (This)->lpVtbl->GetDestinationProviderConflictingData(This,ppConflictingData) #define IChangeConflict_GetResolveActionForChange(This,pResolveAction) (This)->lpVtbl->GetResolveActionForChange(This,pResolveAction) #define IChangeConflict_GetResolveActionForChangeUnit(This,pChangeUnit,pResolveAction) (This)->lpVtbl->GetResolveActionForChangeUnit(This,pChangeUnit,pResolveAction) #define IChangeConflict_GetSourceProviderConflictingChange(This,ppSyncChange) (This)->lpVtbl->GetSourceProviderConflictingChange(This,ppSyncChange) #define IChangeConflict_GetSourceProviderConflictingData(This,ppConflictingData) (This)->lpVtbl->GetSourceProviderConflictingData(This,ppConflictingData) #define IChangeConflict_SetResolveActionForChange(This,resolveAction) (This)->lpVtbl->SetResolveActionForChange(This,resolveAction) #define IChangeConflict_SetResolveActionForChangeUnit(This,pChangeUnit,resolveAction) (This)->lpVtbl->SetResolveActionForChangeUnit(This,pChangeUnit,resolveAction) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IChangeUnitException #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IChangeUnitException,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IChangeUnitException methods */ STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD *pcbIdSize) PURE; STDMETHOD_(HRESULT,GetClockVector)(THIS_ REFIID riid,void **ppUnk) PURE; STDMETHOD_(HRESULT,GetItemId)(THIS_ DWORD *pcbIdSize) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IChangeUnitException_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IChangeUnitException_AddRef(This) (This)->lpVtbl->AddRef(This) #define IChangeUnitException_Release(This) (This)->lpVtbl->Release(This) #define IChangeUnitException_GetChangeUnitId(This,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,pcbIdSize) #define IChangeUnitException_GetClockVector(This,riid,ppUnk) (This)->lpVtbl->GetClockVector(This,riid,ppUnk) #define IChangeUnitException_GetItemId(This,pcbIdSize) (This)->lpVtbl->GetItemId(This,pcbIdSize) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE ISyncFilterInfo DECLARE_INTERFACE_(ISyncFilterInfo,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ISyncFilterInfo methods */ STDMETHOD_(HRESULT,Serialize)(THIS_ DWORD *pcbBuffer) PURE; END_INTERFACE }; #ifdef COBJMACROS #define ISyncFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ISyncFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This) #define ISyncFilterInfo_Release(This) (This)->lpVtbl->Release(This) #define ISyncFilterInfo_Serialize(This,pcbBuffer) (This)->lpVtbl->Serialize(This,pcbBuffer) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IChangeUnitListFilterInfo #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IChangeUnitListFilterInfo,ISyncFilterInfo) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ISyncFilterInfo methods */ STDMETHOD_(HRESULT,Serialize)(THIS_ DWORD *pcbBuffer) PURE; /* IChangeUnitListFilterInfo methods */ STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD dwChangeUnitIdIndex,DWORD *pcbIdSize) PURE; STDMETHOD_(HRESULT,GetChangeUnitIdCount)(THIS_ DWORD *pdwChangeUnitIdCount) PURE; STDMETHOD_(HRESULT,Initialize)(THIS_ const BYTE * const *ppbChangeUnitIds,DWORD dwChangeUnitCount) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IChangeUnitListFilterInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IChangeUnitListFilterInfo_AddRef(This) (This)->lpVtbl->AddRef(This) #define IChangeUnitListFilterInfo_Release(This) (This)->lpVtbl->Release(This) #define IChangeUnitListFilterInfo_Serialize(This,pcbBuffer) (This)->lpVtbl->Serialize(This,pcbBuffer) #define IChangeUnitListFilterInfo_GetChangeUnitId(This,dwChangeUnitIdIndex,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,dwChangeUnitIdIndex,pcbIdSize) #define IChangeUnitListFilterInfo_GetChangeUnitIdCount(This,pdwChangeUnitIdCount) (This)->lpVtbl->GetChangeUnitIdCount(This,pdwChangeUnitIdCount) #define IChangeUnitListFilterInfo_Initialize(This,ppbChangeUnitIds,dwChangeUnitCount) (This)->lpVtbl->Initialize(This,ppbChangeUnitIds,dwChangeUnitCount) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IClockVector #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IClockVector,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IClockVector methods */ STDMETHOD_(HRESULT,GetClockVectorElementCount)(THIS_ DWORD *pdwCount) PURE; STDMETHOD_(HRESULT,GetClockVectorElements)(THIS_ REFIID riid,void **ppiEnumClockVector) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IClockVector_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IClockVector_AddRef(This) (This)->lpVtbl->AddRef(This) #define IClockVector_Release(This) (This)->lpVtbl->Release(This) #define IClockVector_GetClockVectorElementCount(This,pdwCount) (This)->lpVtbl->GetClockVectorElementCount(This,pdwCount) #define IClockVector_GetClockVectorElements(This,riid,ppiEnumClockVector) (This)->lpVtbl->GetClockVectorElements(This,riid,ppiEnumClockVector) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IClockVectorElement #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IClockVectorElement,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IClockVectorElement methods */ STDMETHOD_(HRESULT,GetReplicaKey)(THIS_ DWORD *pdwReplicaKey) PURE; STDMETHOD_(HRESULT,GetTickCount)(THIS_ ULONGLONG *pullTickCount) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IClockVectorElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IClockVectorElement_AddRef(This) (This)->lpVtbl->AddRef(This) #define IClockVectorElement_Release(This) (This)->lpVtbl->Release(This) #define IClockVectorElement_GetReplicaKey(This,pdwReplicaKey) (This)->lpVtbl->GetReplicaKey(This,pdwReplicaKey) #define IClockVectorElement_GetTickCount(This,pullTickCount) (This)->lpVtbl->GetTickCount(This,pullTickCount) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IConstructReplicaKeyMap DECLARE_INTERFACE_(IConstructReplicaKeyMap,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IConstructReplicaKeyMap methods */ STDMETHOD_(HRESULT,FindOrAddReplica)(THIS_ BYTE *pbReplicaId,DWORD *pdwReplicaKey) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IConstructReplicaKeyMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IConstructReplicaKeyMap_AddRef(This) (This)->lpVtbl->AddRef(This) #define IConstructReplicaKeyMap_Release(This) (This)->lpVtbl->Release(This) #define IConstructReplicaKeyMap_FindOrAddReplica(This,pbReplicaId,pdwReplicaKey) (This)->lpVtbl->FindOrAddReplica(This,pbReplicaId,pdwReplicaKey) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE ICoreFragment #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(ICoreFragment,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ICoreFragment methods */ STDMETHOD_(HRESULT,GetColumnCount)(THIS_ DWORD *pColumnCount) PURE; STDMETHOD_(HRESULT,GetRangeCount)(THIS_ DWORD *pRangeCount) PURE; STDMETHOD_(HRESULT,NextColumn)(THIS_ DWORD *pChangeUnitIdSize) PURE; STDMETHOD_(HRESULT,NextRange)(THIS_ DWORD *pItemIdSize,IClockVector **piClockVector) PURE; STDMETHOD_(HRESULT,Reset)(THIS) PURE; END_INTERFACE }; #ifdef COBJMACROS #define ICoreFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ICoreFragment_AddRef(This) (This)->lpVtbl->AddRef(This) #define ICoreFragment_Release(This) (This)->lpVtbl->Release(This) #define ICoreFragment_GetColumnCount(This,pColumnCount) (This)->lpVtbl->GetColumnCount(This,pColumnCount) #define ICoreFragment_GetRangeCount(This,pRangeCount) (This)->lpVtbl->GetRangeCount(This,pRangeCount) #define ICoreFragment_NextColumn(This,pChangeUnitIdSize) (This)->lpVtbl->NextColumn(This,pChangeUnitIdSize) #define ICoreFragment_NextRange(This,pItemIdSize,piClockVector) (This)->lpVtbl->NextRange(This,pItemIdSize,piClockVector) #define ICoreFragment_Reset() (This)->lpVtbl->Reset(This) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE ILoadChangeContext #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(ILoadChangeContext,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ILoadChangeContext methods */ STDMETHOD_(HRESULT,GetSyncChange)(THIS_ ISyncChange **ppSyncChange) PURE; STDMETHOD_(HRESULT,SetRecoverableErrorOnChange)(THIS_ HRESULT hrError,IRecoverableErrorData *pErrorData) PURE; STDMETHOD_(HRESULT,SetRecoverableErrorOnChangeUnit)(THIS_ HRESULT hrError,ISyncChangeUnit *pChangeUnit,IRecoverableErrorData *pErrorData) PURE; END_INTERFACE }; #ifdef COBJMACROS #define ILoadChangeContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ILoadChangeContext_AddRef(This) (This)->lpVtbl->AddRef(This) #define ILoadChangeContext_Release(This) (This)->lpVtbl->Release(This) #define ILoadChangeContext_GetSyncChange(This,ppSyncChange) (This)->lpVtbl->GetSyncChange(This,ppSyncChange) #define ILoadChangeContext_SetRecoverableErrorOnChange(This,hrError,pErrorData) (This)->lpVtbl->SetRecoverableErrorOnChange(This,hrError,pErrorData) #define ILoadChangeContext_SetRecoverableErrorOnChangeUnit(This,hrError,pChangeUnit,pErrorData) (This)->lpVtbl->SetRecoverableErrorOnChangeUnit(This,hrError,pChangeUnit,pErrorData) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE ISyncChange #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(ISyncChange,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ISyncChange methods */ STDMETHOD_(HRESULT,GetChangeUnits)(THIS_ IEnumSyncChangeUnits **ppEnum) PURE; STDMETHOD_(HRESULT,GetChangeVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE; STDMETHOD_(HRESULT,GetCreationVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE; STDMETHOD_(HRESULT,GetFlags)(THIS_ DWORD *pdwFlags) PURE; STDMETHOD_(HRESULT,GetLearnedKnowledge)(THIS_ ISyncKnowledge **ppMadeWithKnowledge) PURE; STDMETHOD_(HRESULT,GetMadeWithKnowledge)(THIS_ ISyncKnowledge **ppMadeWithKnowledge) PURE; STDMETHOD_(HRESULT,GetOwnerReplicaId)(THIS_ DWORD *pcbIdSize) PURE; STDMETHOD_(HRESULT,GetRootItemId)(THIS_ DWORD *pcbIdSize) PURE; STDMETHOD_(HRESULT,GetWorkEstimate)(THIS_ DWORD *pdwWork) PURE; STDMETHOD_(HRESULT,SetWorkEstimate)(THIS_ DWORD dwWork) PURE; END_INTERFACE }; #ifdef COBJMACROS #define ISyncChange_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ISyncChange_AddRef(This) (This)->lpVtbl->AddRef(This) #define ISyncChange_Release(This) (This)->lpVtbl->Release(This) #define ISyncChange_GetChangeUnits(This,ppEnum) (This)->lpVtbl->GetChangeUnits(This,ppEnum) #define ISyncChange_GetChangeVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetChangeVersion(This,pbCurrentReplicaId,pVersion) #define ISyncChange_GetCreationVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetCreationVersion(This,pbCurrentReplicaId,pVersion) #define ISyncChange_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags) #define ISyncChange_GetLearnedKnowledge(This,ppMadeWithKnowledge) (This)->lpVtbl->GetLearnedKnowledge(This,ppMadeWithKnowledge) #define ISyncChange_GetMadeWithKnowledge(This,ppMadeWithKnowledge) (This)->lpVtbl->GetMadeWithKnowledge(This,ppMadeWithKnowledge) #define ISyncChange_GetOwnerReplicaId(This,pcbIdSize) (This)->lpVtbl->GetOwnerReplicaId(This,pcbIdSize) #define ISyncChange_GetRootItemId(This,pcbIdSize) (This)->lpVtbl->GetRootItemId(This,pcbIdSize) #define ISyncChange_GetWorkEstimate(This,pdwWork) (This)->lpVtbl->GetWorkEstimate(This,pdwWork) #define ISyncChange_SetWorkEstimate(This,dwWork) (This)->lpVtbl->SetWorkEstimate(This,dwWork) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE ISyncChangeUnit #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(ISyncChangeUnit,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* ISyncChangeUnit methods */ STDMETHOD_(HRESULT,GetChangeUnitId)(THIS_ DWORD *pcbIdSize) PURE; STDMETHOD_(HRESULT,GetChangeUnitVersion)(THIS_ const BYTE *pbCurrentReplicaId,SYNC_VERSION *pVersion) PURE; STDMETHOD_(HRESULT,GetItemChange)(THIS_ ISyncChange **ppSyncChange) PURE; END_INTERFACE }; #ifdef COBJMACROS #define ISyncChangeUnit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define ISyncChangeUnit_AddRef(This) (This)->lpVtbl->AddRef(This) #define ISyncChangeUnit_Release(This) (This)->lpVtbl->Release(This) #define ISyncChangeUnit_GetChangeUnitId(This,pcbIdSize) (This)->lpVtbl->GetChangeUnitId(This,pcbIdSize) #define ISyncChangeUnit_GetChangeUnitVersion(This,pbCurrentReplicaId,pVersion) (This)->lpVtbl->GetChangeUnitVersion(This,pbCurrentReplicaId,pVersion) #define ISyncChangeUnit_GetItemChange(This,ppSyncChange) (This)->lpVtbl->GetItemChange(This,ppSyncChange) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IRecoverableErrorData #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IRecoverableErrorData,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IRecoverableErrorData methods */ STDMETHOD_(HRESULT,GetErrorDescription)(THIS_ DWORD *pcchErrorDescription) PURE; STDMETHOD_(HRESULT,GetItemDisplayName)(THIS_ DWORD *pcchItemDisplayName) PURE; STDMETHOD_(HRESULT,Initialize)(THIS_ LPCWSTR pcszItemDisplayName,LPCWSTR pcszErrorDescription) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IRecoverableErrorData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IRecoverableErrorData_AddRef(This) (This)->lpVtbl->AddRef(This) #define IRecoverableErrorData_Release(This) (This)->lpVtbl->Release(This) #define IRecoverableErrorData_GetErrorDescription(This,pcchErrorDescription) (This)->lpVtbl->GetErrorDescription(This,pcchErrorDescription) #define IRecoverableErrorData_GetItemDisplayName(This,pcchItemDisplayName) (This)->lpVtbl->GetItemDisplayName(This,pcchItemDisplayName) #define IRecoverableErrorData_Initialize(This,pcszItemDisplayName,pcszErrorDescription) (This)->lpVtbl->Initialize(This,pcszItemDisplayName,pcszErrorDescription) #endif /*COBJMACROS*/ #undef INTERFACE #define INTERFACE IEnumSyncChangeUnits #ifdef __GNUC__ #warning COM interfaces layout in this header has not been verified. #warning COM interfaces with incorrect layout may not work at all. __MINGW_BROKEN_INTERFACE(INTERFACE) #endif DECLARE_INTERFACE_(IEnumSyncChangeUnits,IUnknown) { BEGIN_INTERFACE /* IUnknown methods */ STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE; STDMETHOD_(ULONG, AddRef)(THIS) PURE; STDMETHOD_(ULONG, Release)(THIS) PURE; /* IEnumSyncChangeUnits methods */ STDMETHOD_(HRESULT,Clone)(THIS_ IEnumSyncChangeUnits **ppEnum) PURE; STDMETHOD_(HRESULT,Next)(THIS_ ULONG cChanges,ISyncChangeUnit **ppChangeUnit,ULONG *pcFetched) PURE; STDMETHOD_(HRESULT,Reset)(THIS) PURE; STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cChanges) PURE; END_INTERFACE }; #ifdef COBJMACROS #define IEnumSyncChangeUnits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) #define IEnumSyncChangeUnits_AddRef(This) (This)->lpVtbl->AddRef(This) #define IEnumSyncChangeUnits_Release(This) (This)->lpVtbl->Release(This) #define IEnumSyncChangeUnits_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum) #define IEnumSyncChangeUnits_Next(This,cChanges,ppChangeUnit,pcFetched) (This)->lpVtbl->Next(This,cChanges,ppChangeUnit,pcFetched) #define IEnumSyncChangeUnits_Reset() (This)->lpVtbl->Reset(This) #define IEnumSyncChangeUnits_Skip(This,cChanges) (This)->lpVtbl->Skip(This,cChanges) #endif /*COBJMACROS*/ #endif /*(_WIN32_WINNT >= 0x0601)*/ #endif /* __WINSYNC_H__ */