

interface ITable;
interface ITableEnumEntries;


[
	helpstring("ITable"),
	object,
	pointer_default(unique),
	uuid(0156742F-62A0-11d1-BC72-00C04FC3092D)
]
interface ITable : IUnknown
{
	import "wtypes.idl";
	import "ocidl.idl";

	typedef enum _LINKCOSTTYPE { 
		HIPRI_ONLY = 0,
		MONEY_COST_ALLOWED,
		MESSAGE_SIZE_ALLOWED,
		NORMAL
	} LINKCOSTTYPE;


	HRESULT EnumNextHopEntries(
		[in]	LINKCOSTTYPE		Type,
		[out]	ITableEnumEntries	**ppEnum);

	HRESULT QuerySite(
		[in]							LPSTR	pszNode,
		[in,out]						DWORD	*pdwSiteLen,
		[out,size_is(*pdwSiteLen)]		LPSTR	pszSite);

	HRESULT QuerySourceServer(
		[in,out]						DWORD	*pdwServerLen,
		[out,size_is(*pdwServerLen)]	LPSTR 	pszServer);

	HRESULT QuerySourceSite(
		[in,out]						DWORD	*pdwSiteLen,
		[out,size_is(*pdwSiteLen)]		LPSTR 	pszSite);

	HRESULT IsServerInBH(
		[in]							LPSTR	pszServer,
		[in]							LPSTR	pszBridgeHead);

	HRESULT IsServerInAnyBH(
		[in]							LPSTR	pszServer);

	HRESULT QueryLinkStatus(
		[in]							LPSTR	pszLink,
		[in]							BOOL		*pfStatus);
};

[
	helpstring("ITableEnumEntries"),   
	object,
	pointer_default(unique),
	uuid(9164C121-63AF-11d1-99DC-0000860F614C),
]
interface ITableEnumEntries : IUnknown
{
	typedef struct _NEXTHOP_ENTRY {
		LPSTR	pszDestination;
		LPSTR	pszNextHop;
		DWORD	dwCost;
	} NEXTHOP_ENTRY, *LPNEXTHOP_ENTRY;

	HRESULT Next(
			[in]        ULONG          	cFetch, 
			[in,out]    LPNEXTHOP_ENTRY	rgEntry, 
			[out]       ULONG           *pcFetched);

	HRESULT Skip(
			[in]        ULONG                   cItems);

	HRESULT Reset(void); 

	HRESULT Clone(
			[out]       ITableEnumEntries		**ppEnum);

	HRESULT Count(
			[out]       ULONG                   *pcItems);
}


[
	version(1.0),
	helpstring("ITableLib tlb"),
	uuid(01567430-62A0-11d1-BC72-00C04FC3092D)
]
library TableLib
{
	import "wtypes.idl";
	import "ocidl.idl";

	[
		helpstring("Table com class"),
		uuid(01567431-62A0-11d1-BC72-00C04FC3092D)
	]
	coclass Table
	{
		[default] interface ITable;
	}

	[
		helpstring("TableEnumEntries com class"),
		uuid(9164C123-63AF-11d1-99DC-0000860F614C)
	]
	coclass TableEnumEntries
	{
		[default] interface ITableEnumEntries;
	}
};
