
#include <olectl.h>
#include <idispids.h>
#include "Interface.h"
#include "Version.h"

[ uuid(FE69BD77-3946-4641-8613-6FC7144F2E05), version(VERSION_DECIMAL),
  helpfile("DFPGE.hlp"),
  helpstring("David Piuva's graphics engine"),
  control ]
library DFPGELib
{
	importlib(STDOLE_TLB);

	//  Primary dispatch interface for CDFPGECtrl

	[ uuid(609D1A63-F829-4247-993B-E6397F26CF5B),
	  helpstring("Dispatch interface for David Piuva's graphics engine")]
	dispinterface _DDFPGE
	{
		properties:
		methods:
			InterfaceTable(SUBMACRO_DISPATCH)
	};

	//  Event dispatch interface for CDFPGECtrl

	[ uuid(D1133D4E-DEE6-410E-BF0A-488AE0AF8D92),
	  helpstring("Event interface for David Piuva's graphics engine") ]
	dispinterface _DDFPGEEvents
	{
		properties:
			//  Event interface has no properties

		methods:
			[id(DISPID_CLICK)] void Click(void);
			[id(DISPID_DBLCLICK)] void DblClick(void);
			[id(DISPID_KEYDOWN)] void KeyDown(SHORT* KeyCode, SHORT Shift);
			[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);
			[id(DISPID_KEYUP)] void KeyUp(SHORT* KeyCode, SHORT Shift);
			[id(DISPID_MOUSEDOWN)] void MouseDown(SHORT Button, SHORT Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
			[id(DISPID_MOUSEMOVE)] void MouseMove(SHORT Button, SHORT Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
			[id(DISPID_MOUSEUP)] void MouseUp(SHORT Button, SHORT Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
	};

	//  Class information for CDFPGECtrl

	[ uuid(5E59055B-2F49-489B-BA8F-F3C50E51782D),
	  helpstring("David Piuva's graphics engine"), control ]
	coclass DFPGE
	{
		[default] dispinterface _DDFPGE;
		[default, source] dispinterface _DDFPGEEvents;
	};

};
