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

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

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

	[
		object,
		uuid(D501DE12-DD81-4CE1-8854-78CBCB96C2DB),
		dual,
		helpstring("IDatService Interface"),
		pointer_default(unique)
	]
	interface IDatService : IDispatch
	{
	};

	[
		object,
		uuid(4EC04AB5-F87A-465D-B282-1B6C2E6068C9),
		dual,
		helpstring("IDatLibrary Interface"),
		pointer_default(unique)
	]
	interface IDatLibrary : IDispatch
	{
		[propget, id(1), helpstring("property Stream")] HRESULT Stream(DWORD File, [out, retval] LPUNKNOWN *pVal);
		[id(2), helpstring("method Open")] HRESULT Open(BSTR Protocol, DWORD File, [out, retval] LPUNKNOWN *pFile);
	};

	[
		object,
		uuid(B27D3F72-2640-432F-BAE4-175E1AA0CA39),
		helpstring("IDatStream Interface"),
		pointer_default(unique)
	]
	interface IDatStream : IUnknown
	{
		[propget, helpstring("property Size")] HRESULT Size([out, retval] long *pVal);
		[propget, helpstring("property Tell")] HRESULT Tell([out, retval] long *pVal);
		[helpstring("method Skip")] HRESULT Skip(long Bytes);
		[helpstring("method Restart")] HRESULT Restart();
		[helpstring("method ReadBinary")] HRESULT ReadBinary(long Bytes, [size_is(Bytes)] BYTE *Buffer);
		[helpstring("method Read")] HRESULT Read(long Bytes, [out, retval] BSTR *Data);
	};

	[
		object,
		uuid(1349EF1A-06EA-43e5-9026-4F3967C6C1D3),
		helpstring("IFileFilter Interface"),
		pointer_default(unique)
	]
	interface IFileFilter : IUnknown
	{
		[helpstring("method Initiailize")] HRESULT Initialize(IDatStream *Stream);
	};

[
	uuid(C2C11EC7-2CB9-4999-BDD9-AF599455601F),
	version(1.0),
	helpstring("DecalDat 1.0 Type Library")
]
library DecalDat
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	interface IFileFilter;

	[
		uuid(37B083F0-276E-43AD-8D26-3F7449B519DC),
		helpstring("DatService Class")
	]
	coclass DatService
	{
		[default] interface IDatService;
	};

	[
		uuid(6FA05FDA-B4B5-4386-AB45-92D7E6A5D698),
		helpstring("DatLibrary Class"),
		noncreatable
	]
	coclass DatLibrary
	{
		[default] interface IDatLibrary;
	};

	[
		uuid(9F7F6CD9-D164-418D-8CB5-3B9ACD70BEAF),
		helpstring("DatStream Class"),
		noncreatable
	]
	coclass DatStream
	{
		[default] interface IDatStream;
	};
};
