
cpp_quote("DEFINE_GUID(IID_ITcpAccess, 0x25ed205b, 0xcf50, 0x11d0, 0xbc, 0x7, 0x0, 0xc0, 0x4f, 0xc3, 0x9, 0x2d);")
cpp_quote("DEFINE_GUID(IID_ITcpAccessExceptions, 0x25ed205c, 0xcf50, 0x11d0, 0xbc, 0x7, 0x0, 0xc0, 0x4f, 0xc3, 0x9, 0x2d);")
cpp_quote("DEFINE_GUID(IID_ITcpAccessException, 0x25ed205d, 0xcf50, 0x11d0, 0xbc, 0x7, 0x0, 0xc0, 0x4f, 0xc3, 0x9, 0x2d);")

#ifndef DO_NO_IMPORTS
import "wtypes.idl";
#endif

interface ITcpAccess;
interface ITcpAccessException;
interface ITcpAccessExceptions;

[
	object,
	uuid(25ED205B-CF50-11d0-BC07-00C04FC3092D),
	dual,
	helpstring("ITcpAccess Interface"),
	pointer_default(unique)
]
interface ITcpAccess : IDispatch
{
	[propget, helpstring("")]
		HRESULT GrantedList ( [out, retval] ITcpAccessExceptions ** ppGrantedList );

	[propget, helpstring("")]
		HRESULT DeniedList ( [out, retval] ITcpAccessExceptions ** ppDeniedList );
}


[
	object,
	uuid(25ED205C-CF50-11d0-BC07-00C04FC3092D),
	dual,
	helpstring("ITcpAccessExceptions Interface"),
	pointer_default(unique)
]
interface ITcpAccessExceptions : IDispatch
{
	[propget, helpstring("")]
		HRESULT Count ( [out, retval] long * pcCount );

	[helpstring("")]
		HRESULT AddDnsName ( [in] BSTR strDnsName );

	[helpstring("")]
		HRESULT AddIpAddress ( [in] long lIpAddress, [in] long lIpMask );

	[helpstring("")]
		HRESULT Item ( [in] long index, [out, retval] ITcpAccessException ** ppItem );

	[helpstring("")]
		HRESULT Remove ( [in] long index );

	[helpstring("")]
		HRESULT	Clear ( );

	[helpstring("")]
		HRESULT FindDnsIndex ( [in] BSTR strDnsName, [out, retval] long * pIndex );

	[helpstring("")]
		HRESULT FindIpIndex ( [in] long lIpAddress, [in] long lIpMask, [out, retval] long * pIndex );
}


[
	object,
	uuid(25ED205D-CF50-11d0-BC07-00C04FC3092D),
	dual,
	helpstring("ITcpAccessException Interface"),
	pointer_default(unique)
]
interface ITcpAccessException : IDispatch
{
	[propget, helpstring("")]
		HRESULT IsDnsName ( [out, retval] BOOL * pfIsDnsName );

	[propget, helpstring("")]
		HRESULT IsIpAddress ( [out, retval] BOOL * pfIsIpAddress );

	[propget, helpstring("")]
		HRESULT DnsName ( [out, retval] BSTR * pstrDnsName );
	[propput]
		HRESULT DnsName ( [in] BSTR strDnsName );

	[propget, helpstring("")]
		HRESULT IpAddress ( [out, retval] long * plIpAddress );
	[propput]
		HRESULT IpAddress ( [in] long lIpAddress );

	[propget, helpstring("")]
		HRESULT IpMask ( [out, retval] long * plIpMask );
	[propput]
		HRESULT IpMask ( [in] long lIpMask );
}

