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

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

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

	[
		object,
		uuid(07B31FFC-19EE-11D3-B5DB-0060089002FE),
		dual,
		helpstring("ITestControl Interface"),
		pointer_default(unique)
	]
	interface ITestControl : IDispatch
	{
		[propput, id(DISPID_CAPTION)]
		HRESULT Caption([in]BSTR strCaption);
		[propget, id(DISPID_CAPTION)]
		HRESULT Caption([out,retval]BSTR* pstrCaption);
		[id(1), helpstring("method AddTest")] HRESULT AddTest(long n1,long *n2,[out,retval]long *n3);
		[id(2), helpstring("method StringTest")] HRESULT StringTest(BSTR s1,BSTR s2,[out,retval]BSTR *s3);
		[id(3), helpstring("method ShortTest")] HRESULT ShortTest(short int n1,short int n2,[out,retval]short int *n3);
		[id(4), helpstring("method FloatTest")] HRESULT FloatTest(double n1,double n2,[out,retval]double *n3);
		[id(5), helpstring("method UnsignedTest")] HRESULT UnsignedTest(unsigned n1,unsigned n2,[out,retval]unsigned *n3);
	        [propget, id(6), helpstring("property Numprop")] HRESULT Numprop(long ndx,[out, retval] long *pVal);
		[propput, id(6), helpstring("property Numprop")] HRESULT Numprop(long ndx,[in] long newVal);
	};

[
	uuid(07B31FF0-19EE-11D3-B5DB-0060089002FE),
	version(1.0),
	helpstring("testobject 1.0 Type Library")
]
library TESTOBJECTLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(07B31FFD-19EE-11D3-B5DB-0060089002FE),
		helpstring("_ITestControlEvents Interface")
	]
	dispinterface _ITestControlEvents
	{
		properties:
		methods:
		[id(DISPID_CLICK), helpstring("method Click")] HRESULT Click();
		[id(DISPID_MOUSEDOWN), helpstring("method MouseDown")] HRESULT MouseDown(short button,short shift,OLE_XPOS_PIXELS x,OLE_YPOS_PIXELS y);
		[id(DISPID_MOUSEUP), helpstring("method MouseUp")] HRESULT MouseUp(short button,short shift,OLE_XPOS_PIXELS x,OLE_YPOS_PIXELS y);
		[id(1), helpstring("method KeyDown")] HRESULT KeyDown(short *keyCode,short shift);
		[id(2), helpstring("method KeyUp")] HRESULT KeyUp(short *keyCode,short shift);
		[id(3), helpstring("method MouseMove")] HRESULT MouseMove(short button,short shift,OLE_XPOS_PIXELS x,OLE_YPOS_PIXELS y);
	};

	[
		uuid(FED8FE26-19CA-11D3-B5DB-0060089002FE),
		helpstring("TestControl Class")
	]
	coclass TestControl
	{
		[default] interface ITestControl;
		[default, source] dispinterface _ITestControlEvents;
	};
};
