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

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

import "oaidl.idl";
import "ocidl.idl";
	[
		object,
		uuid(9B49C3DE-55B2-11d3-9508-00C04F72DC08),
		dual,
		helpstring("IPassportLookupTable Interface"),
		pointer_default(unique)
	]
	interface IPassportLookupTable : IDispatch
	{
		[id(101), helpstring("method LoadValues")] 
		HRESULT LoadValues(	[in] BSTR bstrFilename, 
							[in] int nFormat,
							[out, retval] long *plResult);

		[id(102), helpstring("method LoadValuesEx")]
		HRESULT LoadValuesEx([in] BSTR bstrFilename, 
		                     [in] int nFormat, 
							 [in] int nPeriod, 
							 [out,retval] long *plResult);

		[id(103), helpstring("method LookupValue")]
		HRESULT LookupValue([in] VARIANT varKey,
							[out, retval] VARIANT *pvarVal);

		[id(104), helpstring("method KeyExists")]
		HRESULT KeyExists([in] VARIANT varKey, 
						  [out, retval] VARIANT_BOOL *pVal);

		[id(105), helpstring("method ReadLock")]
		HRESULT ReadLock();

		[id(106), helpstring("method ReadUnlock")]
		HRESULT ReadUnlock();

		[propget, id(201), helpstring("property Count")]
		HRESULT Count([out, retval] long *pcCount);

		[propget, id(202), helpstring("property Key")] 
		HRESULT Key([in] long i, [out, retval] VARIANT *pvarKey);

		[propget, id(203), helpstring("property Value")]
		HRESULT Value([in] long i, [out, retval] VARIANT *pvarVal);
	};

[
	uuid(9B49C3DF-55B2-11d3-9508-00C04F72DC08),
	version(1.0),
	helpstring("Passport LookupTable 1.0 Type Library")
]
library LKUPTBLLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	[
		uuid(9B49C3E0-55B2-11d3-9508-00C04F72DC08),
		helpstring("Passport LookupTable Class")
	]
	coclass LookupTable
	{
		[default] interface IPassportLookupTable;
	};
};