xpmgr/BuildTools/Include/Mobsync.Idl

276 lines
11 KiB
Plaintext

//****************************************************************************
//
// 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 "shobjidl.idl"; // IShellItem
import "ocidl.idl"; // IObjectWithSite
import "comcat.idl"; // IEnumGUID
#endif
cpp_quote("#define SYNCMGRITEMID GUID")
cpp_quote("#define REFSYNCMGRITEMID REFGUID")
cpp_quote("#define SYNCMGRERRORID GUID")
cpp_quote("#define REFSYNCMGRERRORID REFGUID")
cpp_quote("")
// 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)")
// success codes that may be returned in ShowPropertiesCompleted.
cpp_quote("#define S_SYNCMGR_ITEMDELETED MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0210)")
cpp_quote("#define S_SYNCMGR_ENUMITEMS MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0211)")
[
object,
uuid(6295DF41-35EE-11d1-8707-00C04FD93327) // IID_ISyncMgrSynchronizeCallback
]
interface ISyncMgrSynchronizeCallback : IUnknown
{
typedef [unique] ISyncMgrSynchronizeCallback *LPSYNCMGRSYNCHRONIZECALLBACK;
// SYNCMGRPROGRESSITEM.mask
cpp_quote("#define SYNCMGRPROGRESSITEM_STATUSTEXT 0x0001")
cpp_quote("#define SYNCMGRPROGRESSITEM_STATUSTYPE 0x0002")
cpp_quote("#define SYNCMGRPROGRESSITEM_PROGVALUE 0x0004")
cpp_quote("#define SYNCMGRPROGRESSITEM_MAXVALUE 0x0008")
typedef [v1_enum] 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_UPDATING_INDETERMINATE = 0x0008, // for marquee progress
SYNCMGRSTATUS_DELETED = 0x0100, // send to indicate to item that the item has been deleted.
// This flag is deprecated.
} SYNCMGRSTATUS;
typedef struct _tagSYNCMGRPROGRESSITEM {
DWORD cbSize;
UINT mask;
LPCWSTR lpcStatusText;
DWORD dwStatusType; // SYNCMGRSTATUS
int iProgValue;
int iMaxValue;
} SYNCMGRPROGRESSITEM, *LPSYNCMGRPROGRESSITEM;
typedef [v1_enum] enum _tagSYNCMGRLOGLEVEL {
SYNCMGRLOGLEVEL_INFORMATION = 0x0001,
SYNCMGRLOGLEVEL_WARNING = 0x0002,
SYNCMGRLOGLEVEL_ERROR = 0x0003,
SYNCMGRLOGLEVEL_LOGLEVELMAX = 0x0003
} SYNCMGRLOGLEVEL;
// SYNCMGRLOGERRORINFO.mask
cpp_quote("#define SYNCMGRLOGERROR_ERRORFLAGS 0x0001")
cpp_quote("#define SYNCMGRLOGERROR_ERRORID 0x0002")
cpp_quote("#define SYNCMGRLOGERROR_ITEMID 0x0004")
typedef [v1_enum] 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;
GUID ErrorID;
GUID ItemID;
} SYNCMGRLOGERRORINFO, *LPSYNCMGRLOGERRORINFO;
HRESULT ShowPropertiesCompleted([in] HRESULT hr);
HRESULT PrepareForSyncCompleted([in] HRESULT hr);
HRESULT SynchronizeCompleted([in] HRESULT hr);
HRESULT ShowErrorCompleted([in] HRESULT hr, [in] ULONG cItems, [in,unique,size_is(cItems)] const GUID *pItemIDs);
HRESULT EnableModeless([in] BOOL fEnable);
HRESULT Progress([in] REFGUID ItemID, [in,unique] const SYNCMGRPROGRESSITEM *pSyncProgressItem);
HRESULT LogError([in] DWORD dwErrorLevel, [in] LPCWSTR pszErrorText, [in,unique] const SYNCMGRLOGERRORINFO *pSyncLogError);
HRESULT DeleteLogError([in] REFGUID ErrorID, [in] DWORD dwReserved);
HRESULT EstablishConnection([in,unique] LPCWSTR pwszConnection, [in] DWORD dwReserved);
}
[
object,
uuid(6295DF2A-35EE-11d1-8707-00C04FD93327), // IID_ISyncMgrEnumItems
pointer_default(unique)
]
interface ISyncMgrEnumItems : IUnknown
{
typedef [unique] ISyncMgrEnumItems *LPSYNCMGRENUMITEMS;
typedef [v1_enum] enum _tagSYNCMGRITEMFLAGS { // flags for this SyncMgr Item
SYNCMGRITEM_HASPROPERTIES = 0x0001, // have a properties dialog for this item
SYNCMGRITEM_TEMPORARY = 0x0002, // remove any stored preferences for this item
SYNCMGRITEM_ROAMINGUSER = 0x0004, // This item should roam with the User
SYNCMGRITEM_LASTUPDATETIME = 0x0008, // Indicates lastUpdateTime Field is valid
SYNCMGRITEM_MAYDELETEITEM = 0x0010, // Deprecated Option.
SYNCMGRITEM_HIDDEN = 0x0020, // Suggests the Item should not be displayed by default
} SYNCMGRITEMFLAGS;
cpp_quote("#define SYNCMGRITEM_ITEMFLAGMASK 0x007F")
const USHORT MAX_SYNCMGRITEMNAME = 128;
typedef struct _tagSYNCMGRITEM {
DWORD cbSize;
DWORD dwFlags;
GUID ItemID;
DWORD dwItemState;
HICON hIcon;
WCHAR wszItemName[MAX_SYNCMGRITEMNAME];
FILETIME ftLastUpdate;
} SYNCMGRITEM, *LPSYNCMGRITEM;
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
SYNCMGRITEM *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip([in] ULONG celt);
HRESULT Reset();
HRESULT Clone([out] ISyncMgrEnumItems **ppenum);
}
[
object,
uuid(6295DF40-35EE-11d1-8707-00C04FD93327) // IID_ISyncMgrSynchronize
]
interface ISyncMgrSynchronize : IUnknown
{
typedef [unique] ISyncMgrSynchronize *LPSYNCMGROnSynchronize;
typedef [v1_enum] 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 invoked by an idle event
SYNCMGRFLAG_INVOKE = 0x0005, // Sync was programmatically invoked by handler
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;
typedef [v1_enum] enum _tagSYNCMGRHANDLERFLAGS { // flags that apply to this handler.
SYNCMGRHANDLER_HASPROPERTIES = 0x0001, // have a properties dialog for this handler
SYNCMGRHANDLER_MAYESTABLISHCONNECTION = 0x0002, // may call callback EstablishConnection method
SYNCMGRHANDLER_ALWAYSLISTHANDLER = 0x0004, // Show Handler in Choice even if not items
SYNCMGRHANDLER_HIDDEN = 0x0008, // don't display handler (or item) in UI
} SYNCMGRHANDLERFLAGS;
cpp_quote("#define SYNCMGRHANDLERFLAG_MASK 0x000f")
const USHORT MAX_SYNCMGRHANDLERNAME = 32;
typedef struct _tagSYNCMGRHANDLERINFO {
DWORD cbSize;
HICON hIcon;
DWORD SyncMgrHandlerFlags;
WCHAR wszHandlerName[MAX_SYNCMGRHANDLERNAME];
} SYNCMGRHANDLERINFO, *LPSYNCMGRHANDLERINFO;
typedef [v1_enum] enum _tagSYNCMGRITEMSTATE {
SYNCMGRITEMSTATE_UNCHECKED = 0x0000,
SYNCMGRITEMSTATE_CHECKED = 0x0001,
} SYNCMGRITEMSTATE;
HRESULT Initialize(
[in] DWORD dwReserved,
[in] DWORD dwSyncMgrFlags,
[in] DWORD cbCookie,
[in, unique, size_is(cbCookie)] BYTE const*lpCookie);
HRESULT GetHandlerInfo([out] SYNCMGRHANDLERINFO **ppSyncMgrHandlerInfo);
HRESULT EnumSyncMgrItems([out] ISyncMgrEnumItems **ppSyncMgrEnumItems);
HRESULT GetItemObject([in] REFGUID ItemID, [in] REFIID riid, [out, iid_is(riid)] void** ppv);
//The method can have the follow interfaces requested.
// IID_IPropertyStore
HRESULT ShowProperties([in] HWND hWndParent, [in] REFGUID ItemID);
HRESULT SetProgressCallback([in,unique] ISyncMgrSynchronizeCallback *lpCallBack);
HRESULT PrepareForSync(
[in] ULONG cbNumItems,
[in, size_is(cbNumItems)] GUID* pItemIDs,
[in] HWND hWndParent,
[in] DWORD dwReserved);
HRESULT Synchronize([in] HWND hWndParent);
HRESULT SetItemStatus([in] REFGUID pItemID, [in] DWORD dwSyncMgrStatus);
HRESULT ShowError([in] HWND hWndParent, [in] REFGUID ErrorID);
}
[
object,
uuid(6295DF2C-35EE-11d1-8707-00C04FD93327), // IID_ISyncMgrSynchronizeInvoke
pointer_default(unique)
]
interface ISyncMgrSynchronizeInvoke : IUnknown
{
typedef [unique] ISyncMgrSynchronizeInvoke *LPSYNCMGRSYNCHRONIZEINVOKE;
typedef [v1_enum] 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 clsid, [in] DWORD cbCookie, [in, unique, size_is(cbCookie)] const BYTE *pCookie);
HRESULT UpdateAll();
}
[
object,
uuid(6295DF42-35EE-11d1-8707-00C04FD93327), // IID_ISyncMgrRegister
pointer_default(unique)
]
interface ISyncMgrRegister : IUnknown
{
typedef [unique] ISyncMgrRegister *LPSYNCMGRREGISTER;
typedef [v1_enum] enum _tagSYNCMGRREGISTERFLAGS {
SYNCMGRREGISTERFLAG_CONNECT = 0x0001, // Register to receive Connect Events
SYNCMGRREGISTERFLAG_PENDINGDISCONNECT = 0x0002, // Register to receive PendingDisconnect Events
SYNCMGRREGISTERFLAG_IDLE = 0x0004, // Register to receive Idle Events
} SYNCMGRREGISTERFLAGS;
cpp_quote("#define SYNCMGRREGISTERFLAGS_MASK 0x07")
HRESULT RegisterSyncMgrHandler([in] REFCLSID clsidHandler, [in,unique] LPCWSTR pwszDescription, [in] DWORD dwSyncMgrRegisterFlags);
HRESULT UnregisterSyncMgrHandler([in] REFCLSID clsidHandler, [in] DWORD dwReserved);
HRESULT GetHandlerRegistrationInfo([in] REFCLSID clsidHandler, [in,out] LPDWORD pdwSyncMgrRegisterFlags);
}
[
uuid(6e586f48-379c-459c-9beb-624a7e8316eb), // LIBID_SyncObjects (not registered)
helpstring("Microsoft Legacy Sync Objects"),
lcid(0x0000),
version(1.0)
]
library SyncObjects
{
[uuid(6295DF27-35EE-11d1-8707-00C04FD93327)] coclass SyncMgr { interface ISyncMgrSynchronizeInvoke; };
};