winsync.h 28 KB

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