mirror of https://github.com/UMSKT/xpmgr.git
276 lines
11 KiB
Plaintext
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; };
|
|
};
|
|
|
|
|