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

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

import "oaidl.idl";
import "ocidl.idl";

import "..\UploadManager\UploadManager.idl";


[
	object,
	uuid(5F341B81-0286-11D3-9397-00C04F72DAF7),
	dual,
	helpstring("IUploadEventsWrapper Interface"),
	pointer_default(unique)
]
interface IUploadEventsWrapper : IMPCUploadEvents
{
	HRESULT Register( [in] IMPCUploadJob* mpcujJob );
};

[
	uuid(0DAA8F93-0286-11D3-9397-00C04F72DAF7),
	version(1.0),
	helpstring("EventWrapper 1.0 Type Library")
]
library EVENTWRAPPERLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(5F341B83-0286-11D3-9397-00C04F72DAF7),
		helpstring("_IUploadEventsWrapperEvents Interface")
	]
	dispinterface _IUploadEventsWrapperEvents
	{
		properties:
		methods:
		    [id(1), helpstring("method onStatusChange")  ] HRESULT onStatusChange  ( [in] IMPCUploadJob* mpcujJob, [in] UL_STATUS status                        );
			[id(2), helpstring("method onProgressChange")] HRESULT onProgressChange( [in] IMPCUploadJob* mpcujJob, [in] long lCurrentSize, [in] long lTotalSize );
	};

	[
		uuid(5F341B82-0286-11D3-9397-00C04F72DAF7),
		helpstring("UploadEventsWrapper Class")
	]
	coclass UploadEventsWrapper
	{
		[default] interface IUploadEventsWrapper;
		[default, source] dispinterface _IUploadEventsWrapperEvents;
	};
};
