// sync.idl : IDL source for sync.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (sync.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";
	
cpp_quote("DEFINE_GUID(CLSID_MDSync, 0xC97912DE, 0x997E, 0x11D0, 0xa5, 0xf6, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x52);")
cpp_quote("DEFINE_GUID(IID_IMDSync, 0xC97912DD, 0x997E, 0x11D0, 0xa5, 0xf6, 0x0, 0xa0, 0xc9, 0x22, 0xe7, 0x52);")
cpp_quote("#define MD_SYNC_FLAG_REPLICATE_AUTOSTART 0x00000001")
cpp_quote("#define MD_SYNC_FLAG_DONT_PRESERVE_IP_BINDINGS 0x00000002")
cpp_quote("#define MD_SYNC_FLAG_CHECK_ADMINEX_SIGNATURE 0x00000004")
cpp_quote("#pragma warning(disable:4200)")
cpp_quote("typedef struct _SYNC_STAT { DWORD m_dwSourceScan; BOOL m_fSourceComplete; DWORD m_adwTargets[]; } SYNC_STAT;")


	[
		object,
		uuid(C97912DD-997E-11D0-A5F6-00A0C922E752),
		helpstring("IMdSync Interface"),
		pointer_default(unique)
	]
	interface IMdSync : IUnknown
	{
		HRESULT Synchronize( [in] LPSTR mszTargets, [in] LPDWORD pdwResults, [in] DWORD dwFlags, [in] LPDWORD pdwStat );
		HRESULT Cancel();
	};



[
	uuid(C97912D0-997E-11D0-A5F6-00A0C922E752),
	version(1.0),
	helpstring("mdsync 1.0 Type Library")
]
library MDSYNCLib
{
	importlib("stdole2.tlb");

	
	[
		uuid(C97912DE-997E-11D0-A5F6-00A0C922E752),
		helpstring("MdSync Class")
	]
	coclass MdSync
	{
		[default] interface IMdSync;
	};


	[
		object,
		uuid(a817e7a2-43fa-11d0-9e44-00aa00b6770a),
		dual,
		helpstring("IComponentRegistrar Interface"),
		pointer_default(unique)
	]
	interface IComponentRegistrar : IDispatch
	{
		[id(1)]	HRESULT Attach([in] BSTR bstrPath);
		[id(2)]	HRESULT RegisterAll();
		[id(3)]	HRESULT UnregisterAll();
		[id(4)]	HRESULT GetComponents([out] SAFEARRAY(BSTR)* pbstrCLSIDs, [out] SAFEARRAY(BSTR)* pbstrDescriptions);
		[id(5)]	HRESULT RegisterComponent([in] BSTR bstrCLSID);
		[id(6)] HRESULT UnregisterComponent([in] BSTR bstrCLSID);
	};

	[
		uuid(a817e7a0-43fa-11d0-9e44-00aa00b6770a),
		helpstring("ComponentRegistrar Class")
	]
	coclass regc
	{
		[default] interface IComponentRegistrar;
	};
};
