You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
539 lines
15 KiB
539 lines
15 KiB
//****************************************************************************
|
|
//
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// File: syncmgr.idl
|
|
//
|
|
// Contents: Interfaces for Synchronization Manager
|
|
//
|
|
//****************************************************************************
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "objidl.idl";
|
|
import "oleidl.idl";
|
|
import "mstask.idl";
|
|
#endif
|
|
|
|
interface ISyncMgrSynchronize;
|
|
interface ISyncMgrSynchronizeCallback;
|
|
interface ISyncMgrEnumItems;
|
|
interface ISyncMgrSynchronizeInvoke;
|
|
interface ISyncMgrRegister;
|
|
interface ISyncScheduleMgr;
|
|
interface IEnumSyncSchedules;
|
|
interface ISyncSchedule;
|
|
interface IEnumSyncItems;
|
|
|
|
typedef GUID SYNCMGRITEMID;
|
|
typedef REFGUID REFSYNCMGRITEMID;
|
|
typedef GUID SYNCMGRERRORID;
|
|
typedef REFGUID REFSYNCMGRERRORID;
|
|
typedef GUID SYNCSCHEDULECOOKIE;
|
|
|
|
|
|
// {6295DF27-35EE-11d1-8707-00C04FD93327}
|
|
cpp_quote("DEFINE_GUID(CLSID_SyncMgr,0x6295df27, 0x35ee, 0x11d1, 0x87, 0x7, 0x0, 0xc0, 0x4f, 0xd9, 0x33, 0x27);")
|
|
|
|
// {6295DF29-35EE-11d1-8707-00C04FD93327}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncMgrSynchronize,0x6295df28, 0x35ee, 0x11d1, 0x87, 0x7, 0x0, 0xc0, 0x4f, 0xd9, 0x33, 0x27);")
|
|
|
|
// {6295DF28-35EE-11d1-8707-00C04FD93327}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncMgrSynchronizeCallback,0x6295df29, 0x35ee, 0x11d1, 0x87, 0x7, 0x0, 0xc0, 0x4f, 0xd9, 0x33, 0x27);")
|
|
|
|
// {6295DF2A-35EE-11d1-8707-00C04FD93327}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncMgrEnumItems,0x6295df2a, 0x35ee, 0x11d1, 0x87, 0x7, 0x0, 0xc0, 0x4f, 0xd9, 0x33, 0x27);")
|
|
|
|
// {6295DF2C-35EE-11d1-8707-00C04FD93327}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncMgrSynchronizeInvoke,0x6295df2c, 0x35ee, 0x11d1, 0x87, 0x7, 0x0, 0xc0, 0x4f, 0xd9, 0x33, 0x27);")
|
|
|
|
// {894D8C55-BDDF-11d1-B85D-00C04FB93981}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncMgrRegister,0x894d8c55, 0xbddf, 0x11d1, 0xb8, 0x5d, 0x0, 0xc0, 0x4f, 0xb9, 0x39, 0x81);")
|
|
|
|
// {F0E15897-A700-11d1-9831-00C04FD910DD}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncScheduleMgr,0xf0e15897, 0xa700, 0x11d1, 0x98, 0x31, 0x0, 0xc0, 0x4f, 0xd9, 0x10, 0xdd);")
|
|
|
|
// {F0E15898-A700-11d1-9831-00C04FD910DD}
|
|
cpp_quote("DEFINE_GUID(IID_IEnumSyncSchedules,0xf0e15898, 0xa700, 0x11d1, 0x98, 0x31, 0x0, 0xc0, 0x4f, 0xd9, 0x10, 0xdd);")
|
|
|
|
// {F0E15899-A700-11d1-9831-00C04FD910DD}
|
|
cpp_quote("DEFINE_GUID(IID_ISyncSchedule,0xf0e15899, 0xa700, 0x11d1, 0x98, 0x31, 0x0, 0xc0, 0x4f, 0xd9, 0x10, 0xdd);")
|
|
|
|
// {F0E1589A-A700-11d1-9831-00C04FD910DD}
|
|
cpp_quote("DEFINE_GUID(IID_IEnumSyncItems,0xf0e1589a, 0xa700, 0x11d1, 0x98, 0x31, 0x0, 0xc0, 0x4f, 0xd9, 0x10, 0xdd);")
|
|
|
|
|
|
// Success codes specific to SyncMgr interfaces
|
|
cpp_quote("#define S_SYNCMGR_MISSINGITEMS MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0201)")
|
|
cpp_quote("#define S_SYNCMGR_RETRYSYNC MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0202)")
|
|
cpp_quote("#define S_SYNCMGR_CANCELITEM MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0203)")
|
|
cpp_quote("#define S_SYNCMGR_CANCELALL MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0204)")
|
|
|
|
// Error codes specific to SyncMgr interfaces
|
|
cpp_quote("#define SYNCMGR_E_NAME_IN_USE MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x0201)")
|
|
cpp_quote("#define SYNCMGR_E_ITEM_UNREGISTERED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x0202)")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(6295DF28-35EE-11d1-8707-00C04FD93327) // IID_ISyncMgrSynchronize
|
|
]
|
|
interface ISyncMgrSynchronize: IUnknown
|
|
{
|
|
typedef [unique] ISyncMgrSynchronize *LPSYNCMGRSYNCHRONIZE;
|
|
|
|
typedef enum _tagSYNCMGRFLAG { // flags for Synchronization Event
|
|
SYNCMGRFLAG_CONNECT = 0x0001, // Sync was invoked by a network connect
|
|
SYNCMGRFLAG_PENDINGDISCONNECT = 0x0002, // Sync was invoked by a pending network disconnect
|
|
SYNCMGRFLAG_MANUAL = 0x0003, // Sync was invoked manually
|
|
SYNCMGRFLAG_IDLE = 0x0004, // Sync was programmatically invokd
|
|
SYNCMGRFLAG_INVOKE = 0x0005, // Sync was programmatically invokd
|
|
SYNCMGRFLAG_SCHEDULED = 0x0006, // Sync was invoked by a scheduled update
|
|
SYNCMGRFLAG_EVENTMASK = 0x00FF,
|
|
|
|
SYNCMGRFLAG_SETTINGS = 0x0100, // Sync was invoked for configuration only
|
|
SYNCMGRFLAG_MAYBOTHERUSER = 0x0200, // Interaction with the user is permitted
|
|
} SYNCMGRFLAG;
|
|
|
|
|
|
const USHORT MAX_SYNCMGRHANDLERNAME = 32;
|
|
|
|
typedef enum _tagSYNCMGRHANDLERFLAGS { // flags that apply to this handler.
|
|
SYNCMGRHANDLER_HASPROPERTIES = 0x01, // have a properties dialog for this handler
|
|
} SYNCMGRHANDLERFLAGS;
|
|
|
|
typedef struct _tagSYNCMGRHANDLERINFO {
|
|
DWORD cbSize;
|
|
HICON hIcon;
|
|
DWORD SyncMgrHandlerFlags;
|
|
WCHAR wszHandlerName[MAX_SYNCMGRHANDLERNAME];
|
|
} SYNCMGRHANDLERINFO, *LPSYNCMGRHANDLERINFO;
|
|
|
|
cpp_quote("#define SYNCMGRITEMSTATE_UNCHECKED 0x0000")
|
|
cpp_quote("#define SYNCMGRITEMSTATE_CHECKED 0x0001")
|
|
cpp_quote("")
|
|
|
|
typedef enum _tagSYNCMGRSTATUS {
|
|
SYNCMGRSTATUS_STOPPED = 0x0000,
|
|
SYNCMGRSTATUS_SKIPPED = 0x0001,
|
|
SYNCMGRSTATUS_PENDING = 0x0002,
|
|
SYNCMGRSTATUS_UPDATING = 0x0003,
|
|
SYNCMGRSTATUS_SUCCEEDED = 0x0004,
|
|
SYNCMGRSTATUS_FAILED = 0x0005,
|
|
SYNCMGRSTATUS_PAUSED = 0x0006,
|
|
SYNCMGRSTATUS_RESUMING = 0x0007,
|
|
} SYNCMGRSTATUS;
|
|
|
|
|
|
HRESULT Initialize(
|
|
[in] DWORD dwReserved,
|
|
[in] DWORD dwSyncMgrFlags,
|
|
[in] DWORD cbCookie,
|
|
[in] BYTE const*lpCookie);
|
|
|
|
HRESULT GetHandlerInfo(
|
|
[out] LPSYNCMGRHANDLERINFO *ppSyncMgrHandlerInfo);
|
|
|
|
HRESULT EnumSyncMgrItems(
|
|
[out] ISyncMgrEnumItems **ppSyncMgrEnumItems);
|
|
|
|
|
|
HRESULT GetItemObject(
|
|
[in] REFSYNCMGRITEMID ItemID,
|
|
[in] REFIID riid,
|
|
[out] void** ppv);
|
|
|
|
HRESULT ShowProperties(
|
|
[in] HWND hWndParent,
|
|
[in] REFSYNCMGRITEMID ItemID);
|
|
|
|
HRESULT SetProgressCallback(
|
|
[in] ISyncMgrSynchronizeCallback *lpCallBack);
|
|
|
|
HRESULT PrepareForSync(
|
|
[in] ULONG cbNumItems,
|
|
[in] SYNCMGRITEMID* pItemIDs,
|
|
[in] HWND hWndParent,
|
|
[in] DWORD dwReserved);
|
|
|
|
HRESULT Synchronize(
|
|
[in] HWND hWndParent);
|
|
|
|
HRESULT SetItemStatus(
|
|
[in] REFSYNCMGRITEMID pItemID,
|
|
[in] DWORD dwSyncMgrStatus);
|
|
|
|
HRESULT ShowError(
|
|
[in] HWND hWndParent,
|
|
[in] REFSYNCMGRERRORID ErrorID,
|
|
[out] ULONG *pcbNumItems,
|
|
[out] SYNCMGRITEMID **ppItemIDs);
|
|
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(6295DF29-35EE-11d1-8707-00C04FD93327) // IID_ISyncMgrSynchronizeCallback
|
|
]
|
|
interface ISyncMgrSynchronizeCallback: IUnknown
|
|
{
|
|
typedef [unique] ISyncMgrSynchronizeCallback *LPSYNCMGRSYNCHRONIZECALLBACK;
|
|
|
|
cpp_quote("#define SYNCMGRPROGRESSITEM_STATUSTEXT 0x0001")
|
|
cpp_quote("#define SYNCMGRPROGRESSITEM_STATUSTYPE 0x0002")
|
|
cpp_quote("#define SYNCMGRPROGRESSITEM_PROGVALUE 0x0004")
|
|
cpp_quote("#define SYNCMGRPROGRESSITEM_MAXVALUE 0x0008")
|
|
cpp_quote("")
|
|
|
|
typedef struct _tagSYNCMGRPROGRESSITEM {
|
|
DWORD cbSize;
|
|
UINT mask;
|
|
const WCHAR* lpcStatusText;
|
|
DWORD dwStatusType;
|
|
INT iProgValue;
|
|
INT iMaxValue;
|
|
} SYNCMGRPROGRESSITEM, *LPSYNCMGRPROGRESSITEM;
|
|
|
|
typedef enum _tagSYNCMGRLOGLEVEL {
|
|
SYNCMGRLOGLEVEL_INFORMATION = 0x0001,
|
|
SYNCMGRLOGLEVEL_WARNING = 0x0002,
|
|
SYNCMGRLOGLEVEL_ERROR = 0x0003,
|
|
} SYNCMGRLOGLEVEL;
|
|
|
|
|
|
cpp_quote("#define SYNCMGRLOGERROR_ERRORFLAGS 0x0001")
|
|
cpp_quote("#define SYNCMGRLOGERROR_ERRORID 0x0002")
|
|
cpp_quote("#define SYNCMGRLOGERROR_ITEMID 0x0004")
|
|
cpp_quote("")
|
|
|
|
typedef enum _tagSYNCMGRERRORFLAGS { // flags that apply to the error.
|
|
SYNCMGRERRORFLAG_ENABLEJUMPTEXT = 0x01, // ShowErrors should be called on this item.
|
|
} SYNCMGRERRORFLAGS;
|
|
|
|
|
|
typedef struct _tagSYNCMGRLOGERRORINFO {
|
|
DWORD cbSize;
|
|
DWORD mask;
|
|
DWORD dwSyncMgrErrorFlags;
|
|
SYNCMGRERRORID ErrorID;
|
|
SYNCMGRITEMID ItemID;
|
|
} SYNCMGRLOGERRORINFO, *LPSYNCMGRLOGERRORINFO;
|
|
|
|
|
|
HRESULT Progress(
|
|
[in] REFSYNCMGRITEMID pItemID,
|
|
[in] LPSYNCMGRPROGRESSITEM lpSyncProgressItem);
|
|
|
|
HRESULT PrepareForSyncCompleted(HRESULT hr);
|
|
|
|
HRESULT SynchronizeCompleted(HRESULT hr);
|
|
|
|
HRESULT EnableModeless(
|
|
[in] BOOL fEnable);
|
|
|
|
HRESULT LogError(
|
|
[in] DWORD dwErrorLevel,
|
|
[in] const WCHAR *lpcErrorText,
|
|
[in] LPSYNCMGRLOGERRORINFO lpSyncLogError);
|
|
|
|
HRESULT DeleteLogError(
|
|
[in] REFSYNCMGRERRORID ErrorID,
|
|
[in] DWORD dwReserved);
|
|
|
|
}
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(6295DF2A-35EE-11d1-8707-00C04FD93327), // IID_ISyncMgrEnumItems
|
|
pointer_default(unique)
|
|
]
|
|
interface ISyncMgrEnumItems : IUnknown
|
|
{
|
|
typedef [unique] ISyncMgrEnumItems *LPSYNCMGRENUMITEMS;
|
|
|
|
const USHORT MAX_SYNCMGRITEMNAME = 128;
|
|
const USHORT MAX_SYNCMGRITEMSTATUS = 128;
|
|
|
|
typedef enum _tagSYNCMGRITEMFLAGS { // flags for this SyncMgr Item
|
|
SYNCMGRITEM_HASPROPERTIES = 0x01, // have a properties dialog for this item
|
|
SYNCMGRITEM_TEMPORARY = 0x02, // remove any stored preferences for this item
|
|
SYNCMGRITEM_ROAMINGUSER = 0x04, // This item should roam with the User
|
|
} SYNCMGRITEMFLAGS;
|
|
|
|
|
|
typedef struct _tagSYNCMGRITEM {
|
|
DWORD cbSize;
|
|
DWORD dwFlags;
|
|
SYNCMGRITEMID ItemID;
|
|
DWORD dwItemState;
|
|
HICON hIcon;
|
|
WCHAR wszItemName[MAX_SYNCMGRITEMNAME];
|
|
WCHAR wszStatus[MAX_SYNCMGRITEMSTATUS];
|
|
} SYNCMGRITEM, *LPSYNCMGRITEM;
|
|
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)]
|
|
LPSYNCMGRITEM rgelt,
|
|
[out] ULONG *pceltFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
|
|
HRESULT Reset();
|
|
|
|
HRESULT Clone(
|
|
[out] ISyncMgrEnumItems **ppenum);
|
|
}
|
|
|
|
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(6295DF2C-35EE-11d1-8707-00C04FD93327), // IID_ISyncMgrSynchronizeInvoke
|
|
pointer_default(unique)
|
|
]
|
|
interface ISyncMgrSynchronizeInvoke : IUnknown
|
|
{
|
|
|
|
typedef [unique] ISyncMgrSynchronizeInvoke *LPSYNCMGRSYNCHRONIZEINVOKE;
|
|
|
|
typedef enum _tagSYNCMGRINVOKEFLAGS { // flags for how SyncMgr should be invoked.
|
|
SYNCMGRINVOKE_STARTSYNC = 0x02, // Immediately start the sync without displaying choices
|
|
SYNCMGRINVOKE_MINIMIZED = 0x04, // Dialog should be minimized by default
|
|
} SYNCMGRINVOKEFLAGS;
|
|
|
|
|
|
HRESULT UpdateItems(
|
|
[in] DWORD dwInvokeFlags,
|
|
[in] REFCLSID rclsid,
|
|
[in] DWORD cbCookie,
|
|
[in, unique, size_is(cbCookie)] const BYTE *lpCookie);
|
|
|
|
HRESULT UpdateAll();
|
|
}
|
|
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(894D8C55-BDDF-11d1-B85D-00C04FB93981), // IID_ISyncMgrSynchronizeRegister
|
|
pointer_default(unique)
|
|
]
|
|
interface ISyncMgrRegister : IUnknown
|
|
{
|
|
|
|
typedef [unique] ISyncMgrRegister *LPSYNCMGRREGISTER;
|
|
|
|
|
|
HRESULT RegisterSyncMgrHandler(
|
|
[in] REFCLSID rclsidHandler,
|
|
[in] DWORD dwReserved);
|
|
|
|
HRESULT UnregisterSyncMgrHandler(
|
|
[in] REFCLSID rclsidHandler,
|
|
[in] DWORD dwReserved);
|
|
}
|
|
|
|
[
|
|
uuid(6295DF27-35EE-11d1-8707-00C04FD93327),
|
|
helpstring("Common Synchronization UI service")
|
|
]
|
|
coclass SyncMgr
|
|
{
|
|
[default, source] interface ISyncMgrSynchronizeInvoke;
|
|
};
|
|
|
|
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_MASK 0x0FFF")
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_READONLY 0x0001")
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_AUTOCONNECT 0x0002")
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_HIDDEN 0x0004")
|
|
|
|
cpp_quote("#define SYNCSCHEDWIZARD_SHOWALLHANDLERITEMS 0x1000")
|
|
cpp_quote("")
|
|
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(F0E15897-A700-11d1-9831-00C04FD910DD), // IID_ISyncScheduleMgr
|
|
pointer_default(unique)
|
|
]
|
|
interface ISyncScheduleMgr : IUnknown
|
|
{
|
|
typedef [unique] ISyncScheduleMgr *LPSYNCSCHEDULEMGR;
|
|
|
|
HRESULT CreateSchedule(
|
|
[in] LPCWSTR pwszScheduleName,
|
|
[in] DWORD dwFlags,
|
|
[in,out] SYNCSCHEDULECOOKIE *pSyncSchedCookie,
|
|
[out] ISyncSchedule **ppSyncSchedule);
|
|
|
|
HRESULT LaunchScheduleWizard(
|
|
[in] HWND hParent,
|
|
[in] DWORD dwFlags,
|
|
[in, out] SYNCSCHEDULECOOKIE *pSyncSchedCookie,
|
|
[out] ISyncSchedule ** ppSyncSchedule);
|
|
|
|
HRESULT OpenSchedule(
|
|
[in] SYNCSCHEDULECOOKIE *pSyncSchedCookie,
|
|
[in] DWORD dwFlags,
|
|
[out] ISyncSchedule **ppSyncSchedule);
|
|
|
|
HRESULT RemoveSchedule(
|
|
[in] SYNCSCHEDULECOOKIE *pSyncSchedCookie);
|
|
|
|
HRESULT EnumSyncSchedules(
|
|
[out] IEnumSyncSchedules **ppEnumSyncSchedules);
|
|
|
|
}
|
|
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_CONNECTION_LAN 0x0000")
|
|
cpp_quote("#define SYNCSCHEDINFO_FLAGS_CONNECTION_WAN 0x0001")
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(F0E15898-A700-11d1-9831-00C04FD910DD), // IID_IEnumSyncSchedules
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumSyncSchedules : IUnknown
|
|
{
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)]
|
|
SYNCSCHEDULECOOKIE *pSyncSchedCookie,
|
|
[out] ULONG *pceltFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
|
|
HRESULT Reset(void);
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumSyncSchedules **ppEnumSyncSchedules);
|
|
|
|
}
|
|
typedef struct _tagSYNC_HANDLER_ITEM_INFO
|
|
{
|
|
GUID handlerID;
|
|
SYNCMGRITEMID itemID;
|
|
HICON hIcon;
|
|
WCHAR wszItemName[MAX_SYNCMGRITEMNAME];
|
|
DWORD dwCheckState;
|
|
} SYNC_HANDLER_ITEM_INFO, *LPSYNC_HANDLER_ITEM_INFO;
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(F0E15899-A700-11d1-9831-00C04FD910DD), // IID_ISyncSchedule
|
|
pointer_default(unique)
|
|
]
|
|
interface ISyncSchedule : IUnknown
|
|
{
|
|
|
|
HRESULT GetFlags(
|
|
[out] DWORD *pdwFlags);
|
|
|
|
HRESULT SetFlags(
|
|
[in] DWORD dwFlags);
|
|
|
|
HRESULT GetConnection(
|
|
[in, out] DWORD *pcbSize,
|
|
[out] LPWSTR pwszConnectionName,
|
|
[out] DWORD *pdwConnType);
|
|
|
|
HRESULT SetConnection(
|
|
[in] LPCWSTR pwszConnectionName,
|
|
[in] DWORD dwConnType);
|
|
|
|
HRESULT GetScheduleName(
|
|
[in, out] DWORD *pcbSize,
|
|
[out] LPWSTR pwszScheduleName);
|
|
|
|
HRESULT SetScheduleName(
|
|
[in] LPCWSTR pwszScheduleName);
|
|
|
|
HRESULT GetScheduleCookie(
|
|
[out] SYNCSCHEDULECOOKIE *pSyncSchedCookie);
|
|
|
|
HRESULT SetAccountInformation(
|
|
[in] LPCWSTR pwszAccountName,
|
|
[in] LPCWSTR pwszPassword);
|
|
|
|
HRESULT GetAccountInformation(
|
|
[in, out] DWORD *pcbSize,
|
|
[out] LPWSTR pwszAccountName);
|
|
|
|
HRESULT GetTrigger(
|
|
[out] ITaskTrigger ** ppTrigger);
|
|
|
|
HRESULT GetNextRunTime(
|
|
[out] SYSTEMTIME * pstNextRun);
|
|
|
|
HRESULT GetMostRecentRunTime(
|
|
[out] SYSTEMTIME * pstRecentRun);
|
|
|
|
HRESULT EditSyncSchedule(
|
|
[in] HWND hParent,
|
|
[in] DWORD dwReserved);
|
|
|
|
HRESULT AddItem(
|
|
[in] LPSYNC_HANDLER_ITEM_INFO pHandlerItemInfo);
|
|
|
|
HRESULT RegisterItems(
|
|
[in] REFCLSID pHandlerID,
|
|
[in] SYNCMGRITEMID *pItemID);
|
|
|
|
HRESULT UnregisterItems(
|
|
[in] REFCLSID pHandlerID,
|
|
[in] SYNCMGRITEMID *pItemID);
|
|
|
|
HRESULT SetItemCheck(
|
|
[in] REFCLSID pHandlerID,
|
|
[in] SYNCMGRITEMID *pItemID,
|
|
[in] DWORD dwCheckState);
|
|
|
|
HRESULT GetItemCheck(
|
|
[in] REFCLSID pHandlerID,
|
|
[in] SYNCMGRITEMID *pItemID,
|
|
[out] DWORD *pdwCheckState);
|
|
|
|
HRESULT EnumItems(
|
|
[in] REFCLSID pHandlerID,
|
|
[in] IEnumSyncItems **ppEnumItems);
|
|
|
|
HRESULT Save();
|
|
|
|
HRESULT GetITask(
|
|
[out] ITask ** ppITask);
|
|
}
|
|
|
|
|
|
[
|
|
local,
|
|
object,
|
|
uuid(F0E1589A-A700-11d1-9831-00C04FD910DD), // IID_IEnumSyncItems
|
|
pointer_default(unique)
|
|
]
|
|
interface IEnumSyncItems : IUnknown
|
|
{
|
|
|
|
HRESULT Next(
|
|
[in] ULONG celt,
|
|
[out, size_is(celt), length_is(*pceltFetched)]
|
|
LPSYNC_HANDLER_ITEM_INFO rgelt,
|
|
[out] ULONG * pceltFetched);
|
|
|
|
HRESULT Skip(
|
|
[in] ULONG celt);
|
|
|
|
HRESULT Reset(void);
|
|
|
|
HRESULT Clone(
|
|
[out] IEnumSyncItems ** ppEnumSyncItems);
|
|
|
|
}
|