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

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

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

import "..\inc\wuaustate.h";

	
	[
		object,
		uuid(11178075-25D2-4C9C-8087-4C36924091E1),
		helpstring("IUpdates Interface"),
		pointer_default(unique) ,
		oleautomation
	]
	interface IUpdates : IClassFactory
	{
		[propget, id(1), helpstring("property State")]           HRESULT State([out, retval] AUSTATE *pAuState);
		[propget, id(2), helpstring("property Option")]          HRESULT Option([out, retval] AUOPTION *pVal);
		[propput, id(2), helpstring("property Option")]          HRESULT Option([in] AUOPTION Val);		
		[id(4), helpstring("method GetUpdatesList")]		HRESULT GetUpdatesList([out] VARIANT *pUpdates);
		[id(5), helpstring("method SaveSelections")]		HRESULT SaveSelections([in] VARIANT vUpdates);
		[id(6), helpstring("method StartDownload")]			HRESULT StartDownload(void);
		[id(7), helpstring("method GetDownloadStatus")]		HRESULT GetDownloadStatus([out] UINT *pPercentage, [out] DWORD *pStatus);
		[id(8), helpstring("method SetDownloadPaused")]		HRESULT SetDownloadPaused([in] BOOL bPaused);
		[id(10), helpstring("method ConfigureAU")]	        HRESULT ConfigureAU();
		[id(11), helpstring("method AvailableSessions")]    HRESULT AvailableSessions(UINT *pcSess);
		[id(13), helpstring("method get_GetEvtHandles")]	HRESULT get_EvtHandles([in]DWORD dwCltProcId, [out, retval] AUEVTHANDLES *pauevtHandles);		
		[id(14), helpstring("method ClientMessage")]		HRESULT ClientMessage([in] UINT msg);		
		[id(16), helpstring("method GetNotifyData")]		HRESULT GetNotifyData([out] CLIENT_NOTIFY_DATA *pNotifyData);
		[id(17), helpstring("method GetInstallXML")]		HRESULT GetInstallXML([out] BSTR *pbstrCatalogXML, [out] BSTR *pbstrDownloadXML);
		[id(18), helpstring("method LogEvent")]		        HRESULT LogEvent([in] WORD wType, [in] WORD wCategory, [in] DWORD dwEventID, [in] VARIANT vItems);
	};


[
	uuid(D4D8199E-E376-4d57-8B08-BBF87E1F36B1),
	version(1.0),
	helpstring("wuaueng 1.0 Type Library")
]
library WUAUENGLib
{
	importlib("stdole2.tlb");

	
	[
		uuid(E9376CC6-121A-447e-81CF-D8BCC200007C),
		helpstring("Updates Class")
	]
	coclass Updates
	{
		[default] interface IUpdates;
	};
};
