//+---------------------------------------------------------------------------
//
//  (C) Copyright 1998 Microsoft Corporation. All Rights Reserved.
//
//  Contents:   Declarations for EAP UI interfaces.
//
//----------------------------------------------------------------------------

cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// RRasCfg.h")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote("// (C) Copyright 1998 Microsoft Corporation.  All Rights Reserved.")
cpp_quote("//")
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
cpp_quote("// PARTICULAR PURPOSE.")
cpp_quote("//=--------------------------------------------------------------------------=")
cpp_quote(" ")

import "basetsd.h";
import "wtypes.idl";

typedef BYTE *  PBYTE;

/*---------------------------------------------------------------------------
	IRouterProtocolConfig
 ---------------------------------------------------------------------------*/

[
   object,
   uuid(66A2DB16-D706-11D0-A37B-00C04FC9DA04),
   local,
   pointer_default(unique),
]
   
   
interface IRouterProtocolConfig :IUnknown
{
	import "unknwn.idl";

	HRESULT	AddProtocol([in,string] LPCOLESTR pszMachineName,
					[in] DWORD dwTransportId,
					[in] DWORD dwProtocolId,
					[in] HWND hWnd,
					[in] DWORD dwFlags,
					[in] IUnknown *pRouter,
					[in] ULONG_PTR uReserved1);
	
	HRESULT	RemoveProtocol([in,string] LPCOLESTR pszMachineName,
					  [in] DWORD dwTransportId,
					  [in] DWORD dwProtocolId,
					  [in] HWND hWnd,
					  [in] DWORD dwFlags,
					  [in] IUnknown *pRouter,
					  [in] ULONG_PTR uReserved1);	
};

// a macro to help declare all of the methods
cpp_quote("#define DeclareIRouterProtocolConfigMembers(IPURE) \\")
cpp_quote("	STDMETHOD(AddProtocol)(THIS_ LPCOLESTR pszMachineName,\\")
cpp_quote("					   DWORD dwTransportId,\\")
cpp_quote("					   DWORD dwProtocolId,\\")
cpp_quote("					   HWND hWnd,\\")
cpp_quote("					   DWORD dwFlags,\\")
cpp_quote("					   IUnknown *pRouter,\\")
cpp_quote("					   ULONG_PTR uReserved1) IPURE;\\")
cpp_quote("	STDMETHOD(RemoveProtocol)(THIS_ LPCOLESTR pszMachineName,\\")
cpp_quote("						 DWORD dwTransportId,\\")
cpp_quote("						 DWORD dwProtocolId,\\")
cpp_quote("						 HWND hWnd,\\")
cpp_quote("						 DWORD dwFlags,\\")
cpp_quote("						 IUnknown *pRouter,\\")
cpp_quote("						 ULONG_PTR uReserved2) IPURE;\\")
cpp_quote(" ")


/*---------------------------------------------------------------------------
	IAuthenticationProviderConfig
 ---------------------------------------------------------------------------*/

[
   object,
   uuid(66A2DB17-D706-11D0-A37B-00C04FC9DA04),
   local,
   pointer_default(unique),
]
   
   
interface IAuthenticationProviderConfig :IUnknown
{
	import "unknwn.idl";

	HRESULT		Initialize([in, string] LPCOLESTR pszMachineName,
						   [out] ULONG_PTR *puConnectionParam);
	HRESULT		Uninitialize([in] ULONG_PTR uConnectionParam);

	HRESULT		Configure([in] ULONG_PTR uConnectionParam,
						  [in] HWND hWnd,
						  [in] DWORD dwFlags,
						  [in] ULONG_PTR uReserved1,
						  [in] ULONG_PTR uReserved2);

	HRESULT		Activate([in] ULONG_PTR uConnectionParam,
						 [in] ULONG_PTR uReserved1,
						 [in] ULONG_PTR uReserved2);

	HRESULT		Deactivate([in] ULONG_PTR uConnectionParam,
						   [in] ULONG_PTR uReserved1,
						   [in] ULONG_PTR uReserved2);
	
};

// a macro to help declare all of the methods
cpp_quote("#define DeclareIAuthenticationProviderConfigMembers(IPURE) \\")
cpp_quote("	STDMETHOD(Initialize)(THIS_ \\")
cpp_quote("							LPCOLESTR pszMachineName, \\")
cpp_quote("							ULONG_PTR *puConnectionParam) IPURE; \\")
cpp_quote("	STDMETHOD(Uninitialize)(THIS_ \\")
cpp_quote("							ULONG_PTR uConnectionParam) IPURE; \\")
cpp_quote("	 \\")
cpp_quote("	STDMETHOD(Configure)(THIS_ \\")
cpp_quote("							ULONG_PTR uConnectionParam, \\")
cpp_quote("							HWND hWnd, \\")
cpp_quote("						  DWORD dwFlags, \\")
cpp_quote("						  ULONG_PTR uReserved1, \\")
cpp_quote("						  ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" \\")
cpp_quote("	STDMETHOD(Activate)(THIS_ \\")
cpp_quote("						ULONG_PTR uConnectionParam, \\")
cpp_quote("						 ULONG_PTR uReserved1, \\")
cpp_quote("						 ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" \\")
cpp_quote("	STDMETHOD(Deactivate)(THIS_ \\")
cpp_quote("						ULONG_PTR uConnectionParam, \\")
cpp_quote("						   ULONG_PTR uReserved1, \\")
cpp_quote("						   ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" ")


/*---------------------------------------------------------------------------
	IAccountingProviderConfig
 ---------------------------------------------------------------------------*/

[
   object,
   uuid(66A2DB18-D706-11D0-A37B-00C04FC9DA04),
   local,
   pointer_default(unique),
]
   
   
interface IAccountingProviderConfig :IUnknown
{
	import "unknwn.idl";

	HRESULT		Initialize([in, string] LPCOLESTR pszMachineName,
						   [out] ULONG_PTR *puConnectionParam);
	HRESULT		Uninitialize([in] ULONG_PTR uConnectionParam);
	
	HRESULT		Configure([in] ULONG_PTR uConnectionParam,
						  [in] HWND hWnd,
						  [in] DWORD dwFlags,
						  [in] ULONG_PTR uReserved1,
						  [in] ULONG_PTR uReserved2);

	HRESULT		Activate([in] ULONG_PTR uConnectionParam,
						 [in] ULONG_PTR uReserved1,
						 [in] ULONG_PTR uReserved2);

	HRESULT		Deactivate([in] ULONG_PTR uConnectionParam,
						   [in] ULONG_PTR uReserved1,
						   [in] ULONG_PTR uReserved2);
};

// a macro to help declare all of the methods
cpp_quote("#define DeclareIAccountingProviderConfigMembers(IPURE) \\")
cpp_quote("	STDMETHOD(Initialize)(THIS_ \\")
cpp_quote("							LPCOLESTR pszMachineName, \\")
cpp_quote("							ULONG_PTR *puConnectionParam) IPURE; \\")
cpp_quote("	STDMETHOD(Uninitialize)(THIS_ \\")
cpp_quote("							ULONG_PTR uConnectionParam) IPURE; \\")
cpp_quote("	STDMETHOD(Configure)(THIS_ \\")
cpp_quote("						ULONG_PTR uConnectionParam, \\")
cpp_quote("						HWND hWnd, \\")
cpp_quote("						  DWORD dwFlags, \\")
cpp_quote("						  ULONG_PTR uReserved1, \\")
cpp_quote("						  ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" \\")
cpp_quote("	STDMETHOD(Activate)(THIS_ \\")
cpp_quote("						ULONG_PTR uConnectionParam, \\")
cpp_quote("						 ULONG_PTR uReserved1, \\")
cpp_quote("						 ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" \\")
cpp_quote("	STDMETHOD(Deactivate)(THIS_ \\")
cpp_quote("						ULONG_PTR uConnectionParam, \\")
cpp_quote("						   ULONG_PTR uReserved1, \\")
cpp_quote("						   ULONG_PTR uReserved2) IPURE; \\")
cpp_quote(" ")


/*---------------------------------------------------------------------------
	IEAPProviderConfig
 ---------------------------------------------------------------------------*/

[
   object,
   uuid(66A2DB19-D706-11D0-A37B-00C04FC9DA04),
   local,
   pointer_default(unique),
]
   
   
interface IEAPProviderConfig :IUnknown
{
	import "unknwn.idl";

	HRESULT		Initialize([in, string] LPCOLESTR pszMachineName,
						  [out] ULONG_PTR *puConnectionParam);
	HRESULT		Uninitialize([in] ULONG_PTR uConnectionParam);
	HRESULT		Configure([in] ULONG_PTR uConnectionParam,
						  [in] HWND hWnd,
						  [in] ULONG_PTR uReserved1,
						  [in] ULONG_PTR uReserved2);
};

// a macro to help declare all of the methods
cpp_quote("#define DeclareIEAPProviderConfigMembers(IPURE) \\")
cpp_quote("	STDMETHOD(Initialize)(THIS_ LPCOLESTR pszMachineName, \\")
cpp_quote("						ULONG_PTR *puConnectionParam) IPURE; \\")
cpp_quote("	STDMETHOD(Uninitialize)(THIS_ \\")
cpp_quote("							ULONG_PTR uConnectionParam) IPURE; \\")
cpp_quote("	STDMETHOD(Configure)(THIS_ ULONG_PTR uConnectionParam, \\")
cpp_quote("			HWND hWnd, ULONG_PTR dwRes1, ULONG_PTR dwRes2) IPURE; \\")
cpp_quote(" ")






