
import "oaidl.idl";
import "ocidl.idl";
	[
		object,
		uuid(5455C810-227D-11D3-8ADD-00A0C9AFE114),
		dual,
		helpstring("IMcsDomPlugIn Interface"),
		pointer_default(unique)
	]
	interface IMcsDomPlugIn : IDispatch
	{
      [id(1), helpstring("Name of the plug-in")]
		HRESULT GetName([out] BSTR * name);
      [id(2), helpstring("Description of what the plug-in does.")]
		HRESULT GetDescription([out] BSTR * description);
      [id(3), helpstring("List of files needed to run the plug-in. (Files must all be in plug-in directory).")]
		HRESULT GetRequiredFiles([out]SAFEARRAY(BSTR) * pArray);
      [id(4), helpstring("List of files that need to be registered for the plug-in.")]
		HRESULT GetRegisterableFiles([out]SAFEARRAY(BSTR) * pArray);
	  [id(5), helpstring("Adds any needed configuration to the varset.")]
		HRESULT ConfigureSettings([in]IUnknown * pVarSet);		
      [id(6), helpstring("PreMigrationTask")]
		HRESULT PreMigrationTask([in]IUnknown * pVarSet);
      [id(7), helpstring("PostMigrationTask")]
		HRESULT PostMigrationTask([in]IUnknown * pVarSet);
      [id(8), helpstring("A string summarizing the plug-in's results from the results file.")]
		HRESULT GetResultString([in]IUnknown * pVarSet,[out] BSTR * text);
      [id(9), helpstring("method StoreResults")]
		HRESULT StoreResults([in]IUnknown * pVarSet);
	};
	[
		object,
		uuid(51F46B5F-AB4B-4a0d-89FE-62FB54A4B34D),
		helpstring("ISecPlugIn Interface"),
		pointer_default(unique)
	]
	interface ISecPlugIn : IUnknown
	{
	   [id(1), helpstring("Verify")]
		HRESULT Verify([in,out,size_is(size)]ULONG * data, [in] ULONG size);
	};


[
	uuid(CCA70C80-46BF-11d3-AEAB-00A0C985C311),
	version(1.0),
	helpstring("MCS Plugin type library")
]
library MCSPILib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");
	interface IMcsDomPlugIn;
	interface ISecPlugIn;
};
