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

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

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

import "..\Inject\Inject.idl";
import "..\DecalControls\DecalControls.idl";

	[
		object,
		uuid(7A6ECAD8-839E-47d9-B829-8581F065CEAC),
		dual,
		helpstring("IScriptPluginSite Interface"),
		pointer_default(unique)
	]
	interface IScriptPluginSite : IDispatch
	{
		[id(1), helpstring("method CreateObject")] HRESULT CreateObject(BSTR strProgID, [out, retval] LPDISPATCH *ppObject);
		[id(2), helpstring("method WriteToChatWindow")] HRESULT WriteToChatWindow(BSTR szText, long lColor);
		[id(3), helpstring("method MessageBox")] HRESULT MessageBox(BSTR Title, BSTR Text);
		[id(4), helpstring("method LoadView")]	HRESULT LoadView(BSTR Text, [out, retval] IView **pView);
		[id(8), helpstring("method CreateView")] HRESULT CreateView(BSTR strTemplateName, [out, retval] LPDISPATCH *ppNewView);
	};

	[
		uuid(4E1AE4C6-2120-489e-A124-F58E91C9B262),
		helpstring("IPluginEvents Interface")
	]
	dispinterface IPluginEvents
	{
	properties:
	methods:
		[id(1), helpstring("method Initialize")] HRESULT Initialize();
		[id(2), helpstring("method Terminate")] HRESULT Terminate();
	};
	[
		object,
		uuid(555175AF-1D74-4658-A199-EE6CCA3E066D),
		dual,
		helpstring("IScriptView Interface"),
		pointer_default(unique)
	]
	interface IScriptView : IDispatch
	{
	};
	[
		uuid(02CA4EB7-2816-4b68-8EC0-4502C9C35E7D),
		helpstring("IViewEvents Interface")
	]
	dispinterface IScriptViewEvents
	{
	properties:
	methods:
		[id(1), helpstring("method Initialize")] void Initialize();
		[id(2), helpstring("method Terminate")] void Terminate();
		[id(3), helpstring("method Activate")] void Activate();
		[id(4), helpstring("method Deactivate")] void Deactivate();
	};
[
	uuid(1658A49F-0444-43E5-BA11-ED1AD1C256DB),
	version(1.0),
	helpstring("PlainText 1.0 Type Library")
]
library PlainText
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	dispinterface IPluginEvents;
	dispinterface IScriptViewEvents;
	[
		uuid(F8F77FFC-88E1-4d50-9F51-C30F3F35C4EF),
		helpstring("ScriptPlugin Class")
	]
	coclass ScriptPlugin
	{
		[default] interface IScriptPluginSite;
		[default, source] dispinterface IPluginEvents;
	};
	[
		uuid(B537CBEC-98C1-480A-910D-4C99E5E96273),
		helpstring("ScriptView Class")
	]
	coclass ScriptView
	{
		[default] interface IScriptView;
		[default, source] interface IScriptViewEvents;
	};
};
