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

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

import "oaidl.idl";
import "ocidl.idl";
#include "olectl.h"
	

	[
		object,
		uuid(2A930152-AE13-4659-A011-36377D5FC438),
		dual,
		helpstring("IMSInfo Interface"),
		pointer_default(unique)
	]
	interface IMSInfo : IDispatch
	{
		[propput, id(DISPID_AUTOSIZE)]
		HRESULT AutoSize([in]VARIANT_BOOL vbool);
		[propget, id(DISPID_AUTOSIZE)]
		HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool);
		[propput, id(DISPID_BACKCOLOR)]
		HRESULT BackColor([in]OLE_COLOR clr);
		[propget, id(DISPID_BACKCOLOR)]
		HRESULT BackColor([out,retval]OLE_COLOR* pclr);
		[propput, id(DISPID_BACKSTYLE)]
		HRESULT BackStyle([in]long style);
		[propget, id(DISPID_BACKSTYLE)]
		HRESULT BackStyle([out,retval]long* pstyle);
		[propput, id(DISPID_BORDERCOLOR)]
		HRESULT BorderColor([in]OLE_COLOR clr);
		[propget, id(DISPID_BORDERCOLOR)]
		HRESULT BorderColor([out, retval]OLE_COLOR* pclr);
		[propput, id(DISPID_BORDERSTYLE)]
		HRESULT BorderStyle([in]long style);
		[propget, id(DISPID_BORDERSTYLE)]
		HRESULT BorderStyle([out, retval]long* pstyle);
		[propput, id(DISPID_BORDERWIDTH)]
		HRESULT BorderWidth([in]long width);
		[propget, id(DISPID_BORDERWIDTH)]
		HRESULT BorderWidth([out, retval]long* width);
		[propputref, id(DISPID_FONT)]
		HRESULT Font([in]IFontDisp* pFont);
		[propput, id(DISPID_FONT)]
		HRESULT Font([in]IFontDisp* pFont);
		[propget, id(DISPID_FONT)]
		HRESULT Font([out, retval]IFontDisp** ppFont);
		[propput, id(DISPID_FORECOLOR)]
		HRESULT ForeColor([in]OLE_COLOR clr);
		[propget, id(DISPID_FORECOLOR)]
		HRESULT ForeColor([out,retval]OLE_COLOR* pclr);
		[propget, id(DISPID_HWND)]
		HRESULT Window([out, retval]LONG_PTR* phwnd);
		[propput, id(DISPID_BORDERVISIBLE)]
		HRESULT BorderVisible([in]VARIANT_BOOL vbool);
		[propget, id(DISPID_BORDERVISIBLE)]
		HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool);
		[propput, id(DISPID_APPEARANCE)]
		HRESULT Appearance([in]short appearance);
		[propget, id(DISPID_APPEARANCE)]
		HRESULT Appearance([out, retval]short* pappearance);
		[id(1), helpstring("method SetHistoryStream")] HRESULT SetHistoryStream(IStream * pStream);
		[propget, id(2), helpstring("property DCO_IUnknown")] HRESULT DCO_IUnknown([out, retval] IUnknown* *pVal);
		[propput, id(2), helpstring("property DCO_IUnknown")] HRESULT DCO_IUnknown([in] IUnknown* newVal);
		[id(5), helpstring("method SaveFile")] HRESULT SaveFile(BSTR filename, BSTR computer, BSTR category);
		[id(6), helpstring("method UpdateDCOProgress")] HRESULT UpdateDCOProgress(VARIANT varPctDone);
	};

//#ifdef	MSINFO_INCLUDE_PROVIDER
	[
		object,
		uuid(045C352A-C665-4862-B6F4-21B148BE642B),
		dual,
		helpstring("IWhqlObj Interface"),
		pointer_default(unique)
	]
	interface IWhqlObj : IDispatch
	{
	};
//#endif

	[
		object,
		uuid(CA785AEF-EA86-46E6-BE6F-9EE6CABBFA67),
		dual,
		helpstring("IMSPID Interface"),
		pointer_default(unique)
	]
	interface IMSPID : IDispatch
	{
		[id(1), helpstring("Returns Installed MS Products & their PIDS")] HRESULT GetPIDInfo([in, defaultvalue(NULL)] VARIANT *pMachineName, [out, retval] VARIANT *pVal);
	};

[
	uuid(7AC18319-0739-4377-8984-848573D519A5),
	version(1.0),
	helpstring("msinfo32 1.0 Type Library")
]
library MSINFO32Lib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(273380E8-1438-4B2C-95B0-713284FBC302),
		helpstring("MSInfo Class")
	]
	coclass MSInfo
	{
		[default] interface IMSInfo;
	};
//#ifdef	MSINFO_INCLUDE_PROVIDER
	[
		uuid(A0F93E27-F05D-4153-A151-F3720369A4C7),
		helpstring("WhqlObj Class")
	]

	coclass WhqlObj
	{
		[default] interface IWhqlObj;
	};
//#endif

	[
		uuid(4ECB650F-4630-41D3-AC9A-C8F926FC5907),
		helpstring("MSPID Class")
	]
	coclass MSPID
	{
		[default] interface IMSPID;
	};

};