' ########################################################################################
' Microsoft Windows
' File: SyncMgr.inc
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
' ########################################################################################
' Library name: SyncMgrObjects
' Version: 1.0, Locale ID = 0
' Documentation string: Microsoft Sync Center Objects
' Library GUID: {BFF8075E-5A75-4C59-B35A-BD4804636DD4}
' ########################################################################################
#IF NOT %DEF(PBX_SyncMgr_PBI)
#DEFINE PBX_SyncMgr_PBI
%EQUATE `SYNCMGR_INC = 1
' /* header files for imported files */
#INCLUDE ONCE "Legacy/COM/ObjIdl.inc"
#INCLUDE ONCE "Legacy/COM/OleIdl.inc"
#INCLUDE ONCE "Legacy/COM/ShObjIdl.inc"
#INCLUDE ONCE "Legacy/COM/OLE2UTILS.inc"
%EQUATE `MAX_SYNCMGR_ID = 64
%EQUATE `MAX_SYNCMGR_PROGRESSTEXT = 260
%EQUATE `MAX_SYNCMGR_NAME = 128
' ========================================================================================
' ClsIDs (Class identifiers)
' ========================================================================================
$CLSID_ConflictFolder = GUID$("{289978AC-A101-4341-A817-21EBA7FD046D}")
$CLSID_SimpleConflictPresenter = GUID$("{7A0F6AB7-ED84-46B6-B47E-02AA159A152B}")
$CLSID_SyncMgrClient = GUID$("{1202DB60-1DAC-42C5-AED5-1ABDD432248E}")
$CLSID_SyncMgrControl = GUID$("{1A1F4206-0688-4E7F-BE03-D82EC69DF9A5}")
$CLSID_SyncMgrFolder = GUID$("{9C73F5E5-7AE7-4E32-A8E8-8D23B85255BF}")
$CLSID_SyncMgrScheduleWizard = GUID$("{8D8B8E30-C451-421B-8553-D2976AFA648C}")
$CLSID_SyncResultsFolder = GUID$("{71D99464-3B6B-475C-B241-E15883207529}")
$CLSID_SyncSetupFolder = GUID$("{2E9E59C0-B437-4981-A647-9C34B9B90891}")
' ========================================================================================
' IIDs (Interface identifiers)
' ========================================================================================
$IID_ISyncMgrHandlerCollection = GUID$("{A7F337A3-D20B-45CB-9ED7-87D094CA5045}")
$IID_ISyncMgrHandler = GUID$("{04EC2E43-AC77-49F9-9B98-0307EF7A72A2}")
$IID_ISyncMgrHandlerInfo = GUID$("{4FF1D798-ECF7-4524-AA81-1E362A0AEF3A}")
$IID_ISyncMgrSyncItemContainer = GUID$("{90701133-BE32-4129-A65C-99E616CAFFF4}")
$IID_ISyncMgrSyncItem = GUID$("{B20B24CE-2593-4F04-BD8B-7AD6C45051CD}")
$IID_ISyncMgrSyncItemInfo = GUID$("{E7FD9502-BE0C-4464-90A1-2B5277031232}")
$IID_IEnumSyncMgrSyncItems = GUID$("{54B3ABF3-F085-4181-B546-E29C403C726B}")
$IID_ISyncMgrSessionCreator = GUID$("{17F48517-F305-4321-A08D-B25A834918FD}")
$IID_ISyncMgrSyncCallback = GUID$("{884CCD87-B139-4937-A4BA-4F8E19513FBE}")
$IID_ISyncMgrUIOperation = GUID$("{FC7CFA47-DFE1-45B5-A049-8CFD82BEC271}")
$IID_ISyncMgrEventLinkUIOperation = GUID$("{64522E52-848B-4015-89CE-5A36F00B94FF}")
$IID_ISyncMgrScheduleWizardUIOperation = GUID$("{459A6C84-21D2-4DDC-8A53-F023A46066F2}")
$IID_ISyncMgrSyncResult = GUID$("{2B90F17E-5A3E-4B33-BB7F-1BC48056B94D}")
$IID_ISyncMgrControl = GUID$("{9B63616C-36B2-46BC-959F-C1593952D19B}")
$IID_ISyncMgrEventStore = GUID$("{37E412F9-016E-44C2-81FF-DB3ADD774266}")
$IID_ISyncMgrEvent = GUID$("{FEE0EF8B-46BD-4DB4-B7E6-FF2C687313BC}")
$IID_IEnumSyncMgrEvents = GUID$("{C81A1D4E-8CF7-4683-80E0-BCAE88D677B6}")
$IID_ISyncMgrConflictStore = GUID$("{CF8FC579-C396-4774-85F1-D908A831156E}")
$IID_IEnumSyncMgrConflict = GUID$("{82705914-DDA3-4893-BA99-49DE6C8C8036}")
$IID_ISyncMgrConflict = GUID$("{9C204249-C443-4BA4-85ED-C972681DB137}")
$IID_ISyncMgrResolutionHandler = GUID$("{40A3D052-8BFF-4C4B-A338-D4A395700DE9}")
$IID_ISyncMgrConflictPresenter = GUID$("{0B4F5353-FD2B-42CD-8763-4779F2D508A3}")
$IID_ISyncMgrConflictResolveInfo = GUID$("{C405A219-25A2-442E-8743-B845A2CEE93F}")
$IID_ISyncMgrConflictFolder = GUID$("{59287F5E-BC81-4FCA-A7F1-E5A8ECDB1D69}")
$IID_ISyncMgrConflictItems = GUID$("{9C7EAD52-8023-4936-A4DB-D2A9A99E436A}")
$IID_ISyncMgrConflictResolutionItems = GUID$("{458725B9-129D-4135-A998-9CEAFEC27007}")
' ########################################################################################
' ISyncMgrHandlerCollection interface
' IID = A7F337A3-D20B-45CB-9ED7-87D094CA5045
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrHandlerCollection_INTERFACE_DEFINED)
 %ISyncMgrHandlerCollection_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrHandlerCollection $IID_ISyncMgrHandlerCollection
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetHandlerEnumerator ( ' VTable offset = 12
 BYREF ppenum AS IEnumString
 ) AS LONG
 ' =====================================================================================
 METHOD BindToHandler ( ' VTable offset = 16
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF riid AS GUID
 , BYREF ppv AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrHandlerCollection_INTERFACE_DEFINED__ */
' enum SYNCMGR_HANDLER_CAPABILITIES
%EQUATE `SYNCMGR_HCM_NONE = 0
%EQUATE `SYNCMGR_HCM_PROVIDES_ICON = &H1
%EQUATE `SYNCMGR_HCM_EVENT_STORE = &H2
%EQUATE `SYNCMGR_HCM_CONFLICT_STORE = &H4
%EQUATE `SYNCMGR_HCM_SUPPORTS_CONCURRENT_SESSIONS = &H10
%EQUATE `SYNCMGR_HCM_CAN_BROWSE_CONTENT = &H10000
%EQUATE `SYNCMGR_HCM_CAN_SHOW_SCHEDULE = &H20000
%EQUATE `SYNCMGR_HCM_QUERY_BEFORE_ACTIVATE = &H100000
%EQUATE `SYNCMGR_HCM_QUERY_BEFORE_DEACTIVATE = &H200000
%EQUATE `SYNCMGR_HCM_QUERY_BEFORE_ENABLE = &H400000
%EQUATE `SYNCMGR_HCM_QUERY_BEFORE_DISABLE = &H800000
%EQUATE `SYNCMGR_HCM_VALID_MASK = &Hf30017
' enum %SYNCMGR_HANDLER_POLICIES
%EQUATE `SYNCMGR_HPM_NONE = 0
%EQUATE `SYNCMGR_HPM_PREVENT_ACTIVATE = &H1
%EQUATE `SYNCMGR_HPM_PREVENT_DEACTIVATE = &H2
%EQUATE `SYNCMGR_HPM_PREVENT_ENABLE = &H4
%EQUATE `SYNCMGR_HPM_PREVENT_DISABLE = &H8
%EQUATE `SYNCMGR_HPM_PREVENT_START_SYNC = &H10
%EQUATE `SYNCMGR_HPM_PREVENT_STOP_SYNC = &H20
%EQUATE `SYNCMGR_HPM_DISABLE_ENABLE = &H100
%EQUATE `SYNCMGR_HPM_DISABLE_DISABLE = &H200
%EQUATE `SYNCMGR_HPM_DISABLE_START_SYNC = &H400
%EQUATE `SYNCMGR_HPM_DISABLE_STOP_SYNC = &H800
%EQUATE `SYNCMGR_HPM_DISABLE_BROWSE = &H1000
%EQUATE `SYNCMGR_HPM_DISABLE_SCHEDULE = &H2000
%EQUATE `SYNCMGR_HPM_HIDDEN_BY_DEFAULT = &H10000
%EQUATE `SYNCMGR_HPM_BACKGROUND_SYNC_ONLY = %SYNCMGR_HPM_PREVENT_START_SYNC OR %SYNCMGR_HPM_PREVENT_STOP_SYNC
%EQUATE `SYNCMGR_HPM_VALID_MASK = &H12f3f
' ########################################################################################
' ISyncMgrHandler interface
' IID = 04EC2E43-AC77-49F9-9B98-0307EF7A72A2
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrHandler_INTERFACE_DEFINED)
 %ISyncMgrHandler_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrHandler $IID_ISyncMgrHandler
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetName ( ' VTable offset = 12
 BYREF ppszName AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetHandlerInfo ( ' VTable offset = 16
 BYREF ppHandlerInfo AS ISyncMgrHandlerInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetObject ( ' VTable offset = 20
 BYREF rguidObjectID AS GUID
 , BYREF riid AS GUID
 , BYREF ppv AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetCapabilities ( ' VTable offset = 24
 BYREF pmCapabilities AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPolicies ( ' VTable offset = 28
 BYREF pmPolicies AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Activate ( ' VTable offset = 32
 BYVAL fActivate AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Enable ( ' VTable offset = 36
 BYVAL fEnable AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Synchronize ( ' VTable offset = 40
 BYVAL ppszItemIDs AS DWORD
 , BYVAL cItems AS DWORD
 , BYVAL hwndOwner AS DWORD
 , BYVAL pSessionCreator AS ISyncMgrSessionCreator
 , BYVAL punk AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrHandler_INTERFACE_DEFINED__ */
' enum SYNCMGR_HANDLER_TYPE
%EQUATE `SYNCMGR_HT_UNSPECIFIED = 0
%EQUATE `SYNCMGR_HT_APPLICATION = 1
%EQUATE `SYNCMGR_HT_DEVICE = 2
%EQUATE `SYNCMGR_HT_FOLDER = 3
%EQUATE `SYNCMGR_HT_SERVICE = 4
%EQUATE `SYNCMGR_HT_COMPUTER = 5
%EQUATE `SYNCMGR_HT_MIN = 0
%EQUATE `SYNCMGR_HT_MAX = %SYNCMGR_HT_COMPUTER
' ########################################################################################
' ISyncMgrHandlerInfo interface
' IID = 4FF1D798-ECF7-4524-AA81-1E362A0AEF3A
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrHandlerInfo_INTERFACE_DEFINED)
 %ISyncMgrHandlerInfo_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrHandlerInfo $IID_ISyncMgrHandlerInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetType ( ' VTable offset = 12
 BYREF pnType AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetTypeLabel ( ' VTable offset = 16
 BYREF ppszTypeLabel AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetComment ( ' VTable offset = 20
 BYREF ppszComment AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLastSyncTime ( ' VTable offset = 24
 BYREF pftLastSync AS FILETIME
 ) AS LONG
 ' =====================================================================================
 METHOD IsActive ( ' VTable offset = 28
 ) AS LONG
 ' =====================================================================================
 METHOD IsEnabled ( ' VTable offset = 32
 ) AS LONG
 ' =====================================================================================
 METHOD IsConnected ( ' VTable offset = 36
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrHandlerInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrSyncItemContainer interface
' IID = 90701133-BE32-4129-A65C-99E616CAFFF4
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSyncItemContainer_INTERFACE_DEFINED)
 %ISyncMgrSyncItemContainer_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSyncItemContainer $IID_ISyncMgrSyncItemContainer
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetSyncItem ( ' VTable offset = 12
 BYREF pszItemID AS WSTRINGZ
 , BYREF ppItem AS ISyncMgrSyncItem
 ) AS LONG
 ' =====================================================================================
 METHOD GetSyncItemEnumerator ( ' VTable offset = 16
 BYREF ppenum AS IEnumSyncMgrSyncItems
 ) AS LONG
 ' =====================================================================================
 METHOD GetSyncItemCount ( ' VTable offset = 20
 BYREF pcItems AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSyncItemContainer_INTERFACE_DEFINED__ */
' enum SYNCMGR_ITEM_CAPABILITIES
%EQUATE `SYNCMGR_ICM_NONE = 0
%EQUATE `SYNCMGR_ICM_PROVIDES_ICON = &H1
%EQUATE `SYNCMGR_ICM_EVENT_STORE = &H2
%EQUATE `SYNCMGR_ICM_CONFLICT_STORE = &H4
%EQUATE `SYNCMGR_ICM_CAN_DELETE = &H10
%EQUATE `SYNCMGR_ICM_CAN_BROWSE_CONTENT = &H10000
%EQUATE `SYNCMGR_ICM_QUERY_BEFORE_ENABLE = &H100000
%EQUATE `SYNCMGR_ICM_QUERY_BEFORE_DISABLE = &H200000
%EQUATE `SYNCMGR_ICM_QUERY_BEFORE_DELETE = &H400000
%EQUATE `SYNCMGR_ICM_VALID_MASK = &H710017
' enum SYNCMGR_ITEM_POLICIES
%EQUATE `SYNCMGR_IPM_NONE = 0
%EQUATE `SYNCMGR_IPM_PREVENT_ENABLE = &H1
%EQUATE `SYNCMGR_IPM_PREVENT_DISABLE = &H2
%EQUATE `SYNCMGR_IPM_PREVENT_START_SYNC = &H4
%EQUATE `SYNCMGR_IPM_PREVENT_STOP_SYNC = &H8
%EQUATE `SYNCMGR_IPM_DISABLE_ENABLE = &H10
%EQUATE `SYNCMGR_IPM_DISABLE_DISABLE = &H20
%EQUATE `SYNCMGR_IPM_DISABLE_START_SYNC = &H40
%EQUATE `SYNCMGR_IPM_DISABLE_STOP_SYNC = &H80
%EQUATE `SYNCMGR_IPM_DISABLE_BROWSE = &H100
%EQUATE `SYNCMGR_IPM_DISABLE_DELETE = &H200
%EQUATE `SYNCMGR_IPM_HIDDEN_BY_DEFAULT = &H10000
%EQUATE `SYNCMGR_IPM_VALID_MASK = &H102ff
' ########################################################################################
' ISyncMgrSyncItem interface
' IID = B20B24CE-2593-4F04-BD8B-7AD6C45051CD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSyncItem_INTERFACE_DEFINED)
 %ISyncMgrSyncItem_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSyncItem $IID_ISyncMgrSyncItem
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetItemID ( ' VTable offset = 12
 BYREF ppszItemID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetName ( ' VTable offset = 16
 BYREF ppszName AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetItemInfo ( ' VTable offset = 20
 BYREF ppItemInfo AS ISyncMgrSyncItemInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetObject ( ' VTable offset = 24
 BYREF rguidObjectID AS GUID
 , BYREF riid AS GUID
 , BYREF ppv AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD GetCapabilities ( ' VTable offset = 28
 BYREF pmCapabilities AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPolicies ( ' VTable offset = 32
 BYREF pmPolicies AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Enable ( ' VTable offset = 36
 BYVAL fEnable AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD Delete ( ' VTable offset = 40
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSyncItem_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrSyncItemInfo interface
' IID = E7FD9502-BE0C-4464-90A1-2B5277031232
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSyncItemInfo_INTERFACE_DEFINED)
 %ISyncMgrSyncItemInfo_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSyncItemInfo $IID_ISyncMgrSyncItemInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetTypeLabel ( ' VTable offset = 12
 BYREF ppszTypeLabel AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetComment ( ' VTable offset = 16
 BYREF ppszComment AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLastSyncTime ( ' VTable offset = 20
 BYREF pftLastSync AS FILETIME
 ) AS LONG
 ' =====================================================================================
 METHOD IsEnabled ( ' VTable offset = 24
 ) AS LONG
 ' =====================================================================================
 METHOD IsConnected ( ' VTable offset = 28
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSyncItemInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' IEnumSyncMgrSyncItems interface
' IID = 54B3ABF3-F085-4181-B546-E29C403C726B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumSyncMgrSyncItems_INTERFACE_DEFINED)
 %IEnumSyncMgrSyncItems_INTERFACE_DEFINED = 1
INTERFACE IEnumSyncMgrSyncItems $IID_IEnumSyncMgrSyncItems
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgelt AS ISyncMgrSyncItem
 , BYREF pceltFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppenum AS IEnumSyncMgrSyncItems
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumSyncMgrSyncItems_INTERFACE_DEFINED__ */
' enum SYNCMGR_PROGRESS_STATUS
%EQUATE `SYNCMGR_PS_UPDATING = 1
%EQUATE `SYNCMGR_PS_UPDATING_INDETERMINATE = 2
%EQUATE `SYNCMGR_PS_SUCCEEDED = 3
%EQUATE `SYNCMGR_PS_FAILED = 4
%EQUATE `SYNCMGR_PS_CANCELED = 5
%EQUATE `SYNCMGR_PS_DISCONNECTED = 6
%EQUATE `SYNCMGR_PS_MAX = %SYNCMGR_PS_DISCONNECTED
' enum SYNCMGR_CANCEL_REQUEST
%EQUATE `SYNCMGR_CR_NONE = 0
%EQUATE `SYNCMGR_CR_CANCEL_ITEM = 1
%EQUATE `SYNCMGR_CR_CANCEL_ALL = 2
%EQUATE `SYNCMGR_CR_MAX = %SYNCMGR_CR_CANCEL_ALL
' enum SYNCMGR_EVENT_LEVEL
%EQUATE `SYNCMGR_EL_INFORMATION = 1
%EQUATE `SYNCMGR_EL_WARNING = 2
%EQUATE `SYNCMGR_EL_ERROR = 3
%EQUATE `SYNCMGR_EL_MAX = %SYNCMGR_EL_ERROR
' enum SYNCMGR_EVENT_FLAGS
%EQUATE `SYNCMGR_EF_NONE = 0
%EQUATE `SYNCMGR_EF_VALID = 0
' ########################################################################################
' ISyncMgrSessionCreator interface
' IID = 17F48517-F305-4321-A08D-B25A834918FD
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSessionCreator_INTERFACE_DEFINED)
 %ISyncMgrSessionCreator_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSessionCreator $IID_ISyncMgrSessionCreator
 INHERIT IUnknown
 ' =====================================================================================
 METHOD CreateSession ( ' VTable offset = 12
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF ppszItemIDs AS WSTRINGZ
 , BYVAL cItems AS DWORD
 , BYREF ppCallback AS ISyncMgrSyncCallback
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSessionCreator_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrSyncCallback interface
' IID = 884CCD87-B139-4937-A4BA-4F8E19513FBE
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSyncCallback_INTERFACE_DEFINED)
 %ISyncMgrSyncCallback_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSyncCallback $IID_ISyncMgrSyncCallback
 INHERIT IUnknown
 ' =====================================================================================
 METHOD ReportProgress ( ' VTable offset = 12
 BYREF pszItemID AS WSTRINGZ
 , BYREF pszProgressText AS WSTRINGZ
 , BYVAL nStatus AS LONG
 , BYVAL uCurrentStep AS DWORD
 , BYVAL uMaxStep AS DWORD
 , BYREF pnCancelRequest AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetHandlerProgressText ( ' VTable offset = 16
 BYREF pszProgressText AS WSTRINGZ
 , BYREF pnCancelRequest AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD ReportEvent ( ' VTable offset = 20
 BYREF pszItemID AS WSTRINGZ
 , BYVAL nLevel AS LONG
 , BYVAL nFlags AS DWORD
 , BYREF pszName AS WSTRINGZ
 , BYREF pszDescription AS WSTRINGZ
 , BYREF pszLinkText AS WSTRINGZ
 , BYREF pszLinkReference AS WSTRINGZ
 , BYREF pszContext AS WSTRINGZ
 , BYREF pguidEventID AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD CanContinue ( ' VTable offset = 24
 BYREF pszItemID AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD QueryForAdditionalItems ( ' VTable offset = 28
 BYREF ppenumItemIDs AS IEnumString
 , BYREF ppenumPunks AS IEnumUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD AddItemToSession ( ' VTable offset = 32
 BYREF pszItemID AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD AddIUnknownToSession ( ' VTable offset = 36
 BYVAL punk AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD ProposeItem ( ' VTable offset = 40
 BYVAL pNewItem AS ISyncMgrSyncItem
 ) AS LONG
 ' =====================================================================================
 METHOD CommitItem ( ' VTable offset = 44
 BYREF pszItemID AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD ReportManualSync ( ' VTable offset = 48
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSyncCallback_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrUIOperation interface
' IID = FC7CFA47-DFE1-45B5-A049-8CFD82BEC271
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrUIOperation_INTERFACE_DEFINED)
 %ISyncMgrUIOperation_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrUIOperation $IID_ISyncMgrUIOperation
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Run ( ' VTable offset = 12
 BYVAL hwndOwner AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrUIOperation_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrEventLinkUIOperation interface
' IID = 64522E52-848B-4015-89CE-5A36F00B94FF
' Inherited interface = ISyncMgrUIOperation
' ########################################################################################
#IF NOT %DEF(%ISyncMgrEventLinkUIOperation_INTERFACE_DEFINED)
 %ISyncMgrEventLinkUIOperation_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrEventLinkUIOperation $IID_ISyncMgrEventLinkUIOperation
 INHERIT IUnknown
 ' =====================================================================================
 ' ISyncMgrUIOperation Method
 ' =====================================================================================
 METHOD Run ( ' VTable offset = 12
 BYVAL hwndOwner AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ISyncMgrEventLinkUIOperation Method
 ' =====================================================================================
 METHOD Init ( ' VTable offset = 16
 BYREF rguidEventID AS GUID
 , BYVAL pEvent AS ISyncMgrEvent
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrEventLinkUIOperation_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrScheduleWizardUIOperation interface
' IID = 459A6C84-21D2-4DDC-8A53-F023A46066F2
' Inherited interface = ISyncMgrUIOperation
' ########################################################################################
#IF NOT %DEF(%ISyncMgrScheduleWizardUIOperation_INTERFACE_DEFINED)
 %ISyncMgrScheduleWizardUIOperation_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrScheduleWizardUIOperation $IID_ISyncMgrScheduleWizardUIOperation
 INHERIT IUnknown
 ' =====================================================================================
 ' ISyncMgrUIOperation Method
 ' =====================================================================================
 METHOD Run ( ' VTable offset = 12
 BYVAL hwndOwner AS DWORD
 ) AS LONG
 ' =====================================================================================
 ' =====================================================================================
 ' ISyncMgrScheduleWizardUIOperation Method
 ' =====================================================================================
 METHOD InitWizard ( ' VTable offset = 16
 BYREF pszHandlerID AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrScheduleWizardUIOperation_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrSyncResult interface
' IID = 2B90F17E-5A3E-4B33-BB7F-1BC48056B94D
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrSyncResult_INTERFACE_DEFINED)
 %ISyncMgrSyncResult_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrSyncResult $IID_ISyncMgrSyncResult
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Result ( ' VTable offset = 12
 BYVAL nStatus AS LONG
 , BYVAL cError AS DWORD
 , BYVAL cConflicts AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrSyncResult_INTERFACE_DEFINED__ */
' enum SYNCMGR_CONTROL_FLAGS
%EQUATE `SYNCMGR_CF_NONE = 0
%EQUATE `SYNCMGR_CF_NOWAIT = 0
%EQUATE `SYNCMGR_CF_WAIT = &H1
%EQUATE `SYNCMGR_CF_NOUI = &H2
%EQUATE `SYNCMGR_CF_VALID = &H3
' enum SYNCMGR_SYNC_CONTROL_FLAGS
%EQUATE `SYNCMGR_SCF_NONE = 0
%EQUATE `SYNCMGR_SCF_IGNORE_IF_ALREADY_SYNCING = &H1
%EQUATE `SYNCMGR_SCF_VALID = &H1
' enum SYNCMGR_UPDATE_REASON
%EQUATE `SYNCMGR_UR_ADDED = 0
%EQUATE `SYNCMGR_UR_CHANGED = 1
%EQUATE `SYNCMGR_UR_REMOVED = 2
%EQUATE `SYNCMGR_UR_MAX = %SYNCMGR_UR_REMOVED
' ########################################################################################
' ISyncMgrControl interface
' IID = 9B63616C-36B2-46BC-959F-C1593952D19B
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrControl_INTERFACE_DEFINED)
 %ISyncMgrControl_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrControl $IID_ISyncMgrControl
 INHERIT IUnknown
 ' =====================================================================================
 METHOD StartHandlerSync ( ' VTable offset = 12
 BYREF pszHandlerID AS WSTRINGZ
 , BYVAL hwndOwner AS DWORD
 , BYVAL punk AS IUnknown
 , BYVAL nSyncControlFlags AS DWORD
 , BYVAL pResult AS ISyncMgrSyncResult
 ) AS LONG
 ' =====================================================================================
 METHOD StartItemSync ( ' VTable offset = 16
 BYREF pszHandlerID AS WSTRINGZ
 , BYVAL ppszItemIDs AS DWORD
 , BYVAL cItems AS DWORD
 , BYVAL hwndOwner AS DWORD
 , BYVAL punk AS IUnknown
 , BYVAL nSyncControlFlags AS DWORD
 , BYVAL pResult AS ISyncMgrSyncResult
 ) AS LONG
 ' =====================================================================================
 METHOD StartSyncAll ( ' VTable offset = 20
 BYVAL hwndOwner AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD StopHandlerSync ( ' VTable offset = 24
 BYREF pszHandlerID AS WSTRINGZ
 ) AS LONG
 ' =====================================================================================
 METHOD StopItemSync ( ' VTable offset = 28
 BYREF pszHandlerID AS WSTRINGZ
 , BYVAL ppszItemIDs AS DWORD
 , BYVAL cItems AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD StopSyncAll ( ' VTable offset = 32
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateHandlerCollection ( ' VTable offset = 36
 BYREF rclsidCollectionID AS GUID
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateHandler ( ' VTable offset = 40
 BYREF pszHandlerID AS WSTRINGZ
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateItem ( ' VTable offset = 44
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateEvents ( ' VTable offset = 48
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateConflict ( ' VTable offset = 52
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYVAL pConflict AS ISyncMgrConflict
 , BYVAL nReason AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD UpdateConflicts ( ' VTable offset = 56
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD ActivateHandler ( ' VTable offset = 60
 BYVAL fActivate AS LONG
 , BYREF pszHandlerID AS WSTRINGZ
 , BYVAL hwndOwner AS DWORD
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnableHandler ( ' VTable offset = 64
 BYVAL fEnable AS LONG
 , BYREF pszHandlerID AS WSTRINGZ
 , BYVAL hwndOwner AS DWORD
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD EnableItem ( ' VTable offset = 68
 BYVAL fEnable AS LONG
 , BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYVAL hwndOwner AS DWORD
 , BYVAL nControlFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrControl_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrEventStore interface
' IID = 37E412F9-016E-44C2-81FF-DB3ADD774266
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrEventStore_INTERFACE_DEFINED)
 %ISyncMgrEventStore_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrEventStore $IID_ISyncMgrEventStore
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetEventEnumerator ( ' VTable offset = 12
 BYREF ppenum AS IEnumSyncMgrEvents
 ) AS LONG
 ' =====================================================================================
 METHOD GetEventCount ( ' VTable offset = 16
 BYREF pcEvents AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetEvent ( ' VTable offset = 20
 BYREF rguidEventID AS GUID
 , BYREF ppEvent AS ISyncMgrEvent
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveEvent ( ' VTable offset = 24
 BYREF pguidEventIDs AS GUID
 , BYVAL cEvents AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrEventStore_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrEvent interface
' IID = FEE0EF8B-46BD-4DB4-B7E6-FF2C687313BC
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrEvent_INTERFACE_DEFINED)
 %ISyncMgrEvent_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrEvent $IID_ISyncMgrEvent
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetEventID ( ' VTable offset = 12
 BYREF pguidEventID AS GUID
 ) AS LONG
 ' =====================================================================================
 METHOD GetHandlerID ( ' VTable offset = 16
 BYREF ppszHandlerID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetItemID ( ' VTable offset = 20
 BYREF ppszItemID AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLevel ( ' VTable offset = 24
 BYREF pnLevel AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetFlags ( ' VTable offset = 28
 BYREF pnFlags AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetTime ( ' VTable offset = 32
 BYREF pfCreationTime AS FILETIME
 ) AS LONG
 ' =====================================================================================
 METHOD GetName ( ' VTable offset = 36
 BYREF ppszName AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetDescription ( ' VTable offset = 40
 BYREF ppszDescription AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLinkText ( ' VTable offset = 44
 BYREF ppszLinkText AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetLinkReference ( ' VTable offset = 48
 BYREF ppszLinkReference AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetContext ( ' VTable offset = 52
 BYREF ppszContext AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrEvent_INTERFACE_DEFINED__ */
' ########################################################################################
' IEnumSyncMgrEvents interface
' IID = C81A1D4E-8CF7-4683-80E0-BCAE88D677B6
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumSyncMgrEvents_INTERFACE_DEFINED)
 %IEnumSyncMgrEvents_INTERFACE_DEFINED = 1
INTERFACE IEnumSyncMgrEvents $IID_IEnumSyncMgrEvents
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgelt AS ISyncMgrEvent
 , BYREF pceltFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppenum AS IEnumSyncMgrEvents
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumSyncMgrEvents_INTERFACE_DEFINED__ */
' // Size = 8 bytes
TYPE SYNCMGR_CONFLICT_ID_INFO DWORD
 pblobID AS BYTE_BLOB PTR ' BYTE_BLOB *
 pblobExtra AS BYTE_BLOB PTR ' BYTE_BLOB *
END TYPE
' ########################################################################################
' ISyncMgrConflictStore interface
' IID = CF8FC579-C396-4774-85F1-D908A831156E
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictStore_INTERFACE_DEFINED)
 %ISyncMgrConflictStore_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictStore $IID_ISyncMgrConflictStore
 INHERIT IUnknown
 ' =====================================================================================
 METHOD EnumConflicts ( ' VTable offset = 12
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYREF ppEnum AS IEnumSyncMgrConflict
 ) AS LONG
 ' =====================================================================================
 METHOD BindToConflict ( ' VTable offset = 16
 BYREF pConflictIdInfo AS SYNCMGR_CONFLICT_ID_INFO
 , BYREF riid AS GUID
 , BYREF ppv AS IUnknown
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveConflicts ( ' VTable offset = 20
 BYREF rgConflictIdInfo AS SYNCMGR_CONFLICT_ID_INFO
 , BYVAL cConflicts AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetCount ( ' VTable offset = 24
 BYREF pszHandlerID AS WSTRINGZ
 , BYREF pszItemID AS WSTRINGZ
 , BYREF pnConflicts AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictStore_INTERFACE_DEFINED__ */
' ########################################################################################
' IEnumSyncMgrConflict interface
' IID = 82705914-DDA3-4893-BA99-49DE6C8C8036
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%IEnumSyncMgrConflict_INTERFACE_DEFINED)
 %IEnumSyncMgrConflict_INTERFACE_DEFINED = 1
INTERFACE IEnumSyncMgrConflict $IID_IEnumSyncMgrConflict
 INHERIT IUnknown
 ' =====================================================================================
 METHOD Next ( ' VTable offset = 12
 BYVAL celt AS DWORD
 , BYREF rgelt AS ISyncMgrConflict
 , BYREF pceltFetched AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Skip ( ' VTable offset = 16
 BYVAL celt AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD Reset ( ' VTable offset = 20
 ) AS LONG
 ' =====================================================================================
 METHOD Clone ( ' VTable offset = 24
 BYREF ppenum AS IEnumSyncMgrConflict
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __IEnumSyncMgrConflict_INTERFACE_DEFINED__ */
' enum SYNCMGR_CONFLICT_ITEM_TYPE
%EQUATE `SYNCMGR_CIT_UPDATED = &H1
%EQUATE `SYNCMGR_CIT_DELETED = &H2
'typedef DWORD SYNCMGR_CONFLICT_ITEM_TYPE_FLAG;
' ########################################################################################
' ISyncMgrConflict interface
' IID = 9C204249-C443-4BA4-85ED-C972681DB137
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflict_INTERFACE_DEFINED)
 %ISyncMgrConflict_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflict $IID_ISyncMgrConflict
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetProperty ( ' VTable offset = 12
 BYREF propkey AS PROPERTYKEY
 , BYREF ppropvar AS PROPVARIANT
 ) AS LONG
 ' =====================================================================================
 METHOD GetConflictIdInfo ( ' VTable offset = 16
 BYREF pConflictIdInfo AS SYNCMGR_CONFLICT_ID_INFO
 ) AS LONG
 ' =====================================================================================
 METHOD GetItemsArray ( ' VTable offset = 20
 BYREF ppArray AS ISyncMgrConflictItems
 ) AS LONG
 ' =====================================================================================
 METHOD Resolve ( ' VTable offset = 24
 BYVAL pResolveInfo AS ISyncMgrConflictResolveInfo
 ) AS LONG
 ' =====================================================================================
 METHOD GetResolutionHandler ( ' VTable offset = 28
 BYREF riid AS GUID
 , BYREF ppvResolutionHandler AS IUnknown
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflict_INTERFACE_DEFINED__ */
' enum SYNCMGR_RESOLUTION_ABILITIES
%EQUATE `SYNCMGR_RA_KEEPOTHER = &H1
%EQUATE `SYNCMGR_RA_KEEPRECENT = &H2
%EQUATE `SYNCMGR_RA_REMOVEFROMSYNCSET = &H4
%EQUATE `SYNCMGR_RA_KEEP_SINGLE = &H8
%EQUATE `SYNCMGR_RA_KEEP_MULTIPLE = &H10
%EQUATE `SYNCMGR_RA_VALID = &H1f
'typedef DWORD SYNCMGR_RESOLUTION_ABILITIES_FLAGS;
' enum SYNCMGR_RESOLUTION_FEEDBACK
%EQUATE `SYNCMGR_RF_CONTINUE = 0
%EQUATE `SYNCMGR_RF_REFRESH = %SYNCMGR_RF_CONTINUE + 1
%EQUATE `SYNCMGR_RF_CANCEL = %SYNCMGR_RF_REFRESH + 1
' ########################################################################################
' ISyncMgrResolutionHandler interface
' IID = 40A3D052-8BFF-4C4B-A338-D4A395700DE9
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrResolutionHandler_INTERFACE_DEFINED)
 %ISyncMgrResolutionHandler_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrResolutionHandler $IID_ISyncMgrResolutionHandler
 INHERIT IUnknown
 ' =====================================================================================
 METHOD QueryAbilities ( ' VTable offset = 12
 BYREF pdwAbilities AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD KeepOther ( ' VTable offset = 16
 BYVAL psiOther AS IShellItem
 , BYREF pFeedback AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD KeepRecent ( ' VTable offset = 20
 BYREF pFeedback AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD RemoveFromSyncSet ( ' VTable offset = 24
 BYREF pFeedback AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD KeepItems ( ' VTable offset = 28
 BYVAL pArray AS ISyncMgrConflictResolutionItems
 , BYREF pFeedback AS LONG
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrResolutionHandler_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrConflictPresenter interface
' IID = 0B4F5353-FD2B-42CD-8763-4779F2D508A3
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictPresenter_INTERFACE_DEFINED)
 %ISyncMgrConflictPresenter_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictPresenter $IID_ISyncMgrConflictPresenter
 INHERIT IUnknown
 ' =====================================================================================
 METHOD PresentConflict ( ' VTable offset = 12
 BYVAL pConflict AS ISyncMgrConflict
 , BYVAL pResolveInfo AS ISyncMgrConflictResolveInfo
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictPresenter_INTERFACE_DEFINED__ */
' enum SYNCMGR_PRESENTER_NEXT_STEP
%EQUATE `SYNCMGR_PNS_CONTINUE = 0
%EQUATE `SYNCMGR_PNS_DEFAULT = %SYNCMGR_PNS_CONTINUE + 1
%EQUATE `SYNCMGR_PNS_CANCEL = %SYNCMGR_PNS_DEFAULT + 1
' enum SYNCMGR_PRESENTER_CHOICE
%EQUATE `SYNCMGR_PC_NO_CHOICE = 0
%EQUATE `SYNCMGR_PC_KEEP_ONE = %SYNCMGR_PC_NO_CHOICE + 1
%EQUATE `SYNCMGR_PC_KEEP_MULTIPLE = %SYNCMGR_PC_KEEP_ONE + 1
%EQUATE `SYNCMGR_PC_KEEP_RECENT = %SYNCMGR_PC_KEEP_MULTIPLE + 1
%EQUATE `SYNCMGR_PC_REMOVE_FROM_SYNC_SET = %SYNCMGR_PC_KEEP_RECENT + 1
%EQUATE `SYNCMGR_PC_SKIP = %SYNCMGR_PC_REMOVE_FROM_SYNC_SET + 1
' ########################################################################################
' ISyncMgrConflictResolveInfo interface
' IID = C405A219-25A2-442E-8743-B845A2CEE93F
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictResolveInfo_INTERFACE_DEFINED)
 %ISyncMgrConflictResolveInfo_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictResolveInfo $IID_ISyncMgrConflictResolveInfo
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetIterationInfo ( ' VTable offset = 12
 BYREF pnCurrentConflict AS DWORD
 , BYREF pcConflicts AS DWORD
 , BYREF pcRemainingForApplyToAll AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetPresenterNextStep ( ' VTable offset = 16
 BYREF pnPresenterNextStep AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetPresenterChoice ( ' VTable offset = 20
 BYREF pnPresenterChoice AS LONG
 , BYREF pfApplyToAll AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD GetItemChoiceCount ( ' VTable offset = 24
 BYREF pcChoices AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetItemChoice ( ' VTable offset = 28
 BYVAL iChoice AS DWORD
 , BYREF piChoiceIndex AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD SetPresenterNextStep ( ' VTable offset = 32
 BYVAL nPresenterNextStep AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetPresenterChoice ( ' VTable offset = 36
 BYVAL nPresenterChoice AS LONG
 , BYVAL fApplyToAll AS LONG
 ) AS LONG
 ' =====================================================================================
 METHOD SetItemChoices ( ' VTable offset = 40
 BYVAL prgiConflictItemIndexes AS DWORD
 , BYVAL cChoices AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictResolveInfo_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrConflictFolder interface
' IID = 59287F5E-BC81-4FCA-A7F1-E5A8ECDB1D69
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictFolder_INTERFACE_DEFINED)
 %ISyncMgrConflictFolder_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictFolder $IID_ISyncMgrConflictFolder
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetConflictIDList ( ' VTable offset = 12
 BYVAL pConflict AS ISyncMgrConflict
 , BYREF ppidlConflict AS DWORD
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictFolder_INTERFACE_DEFINED__ */
' // Size = 24 bytes
TYPE CONFIRM_CONFLICT_ITEM DWORD
 pShellItem AS DWORD PTR ' IShellItem2*
 pszOriginalName AS WSTRINGZ PTR
 pszAlternateName AS WSTRINGZ PTR
 pszLocationShort AS WSTRINGZ PTR
 pszLocationFull AS WSTRINGZ PTR
 nType AS LONG ' SYNCMGR_CONFLICT_ITEM_TYPE
END TYPE
'#if defined(__cplusplus)
'_inline void FreeConfirmConflictItem(__inout CONFIRM_CONFLICT_ITEM *pcci)
'{
' if (pcci->pShellItem)
' {
' pcci->pShellItem->Release();
' }
' ::CoTaskMemFree(pcci->pszOriginalName);
' ::CoTaskMemFree(pcci->pszAlternateName);
' ::CoTaskMemFree(pcci->pszLocationShort);
' ::CoTaskMemFree(pcci->pszLocationFull);
' ::ZeroMemory(pcci, sizeof(*pcci));
'}
'#endif // defined(__cplusplus)
SUB FreeConfirmConflictItem (BYREF pcci AS CONFIRM_CONFLICT_ITEM)
 IF VARPTR(pcci) = 0 THEN EXIT SUB
 IF pcci.pShellItem THEN IUnknown_Release pcci.pShellItem
 IF pcci.pszOriginalName THEN CoTaskMemFree(BYVAL pcci.pszOriginalName)
 IF pcci.pszAlternateName THEN CoTaskMemFree(BYVAL pcci.pszAlternateName)
 IF pcci.pszLocationShort THEN CoTaskMemFree(BYVAL pcci.pszLocationShort)
 IF pcci.pszLocationFull THEN CoTaskMemFree(BYVAL pcci.pszLocationFull)
 ZeroMemory(VARPTR(pcci), SIZEOF(pcci))
END SUB
' // Size = 8 bytes
TYPE CONFIRM_CONFLICT_RESULT_INFO DWORD
 pszNewName AS WSTRINGZ PTR
 iItemIndex AS DWORD ' UINT
END TYPE
' ########################################################################################
' ISyncMgrConflictItems interface
' IID = 9C7EAD52-8023-4936-A4DB-D2A9A99E436A
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictItems_INTERFACE_DEFINED)
 %ISyncMgrConflictItems_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictItems $IID_ISyncMgrConflictItems
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCount ( ' VTable offset = 12
 BYREF pCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 16
 BYVAL iIndex AS DWORD
 , BYREF pItemInfo AS CONFIRM_CONFLICT_ITEM
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictItems_INTERFACE_DEFINED__ */
' ########################################################################################
' ISyncMgrConflictResolutionItems interface
' IID = 458725B9-129D-4135-A998-9CEAFEC27007
' Inherited interface = IUnknown
' ########################################################################################
#IF NOT %DEF(%ISyncMgrConflictResolutionItems_INTERFACE_DEFINED)
 %ISyncMgrConflictResolutionItems_INTERFACE_DEFINED = 1
INTERFACE ISyncMgrConflictResolutionItems $IID_ISyncMgrConflictResolutionItems
 INHERIT IUnknown
 ' =====================================================================================
 METHOD GetCount ( ' VTable offset = 12
 BYREF pCount AS DWORD
 ) AS LONG
 ' =====================================================================================
 METHOD GetItem ( ' VTable offset = 16
 BYVAL iIndex AS DWORD
 , BYREF pItemInfo AS CONFIRM_CONFLICT_RESULT_INFO
 ) AS LONG
 ' =====================================================================================
END INTERFACE
#ENDIF ' /* __ISyncMgrConflictResolutionItems_INTERFACE_DEFINED__ */
#ENDIF
