#pragma option push -b -a8 -pc -A- /*P_O_Push*/

#pragma warning( disable: 4049 )  /* more than 64k source lines */

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 5.03.0279 */
/* at Sat Sep 04 23:41:54 1999
 */
/* Compiler settings for ILS.Idl:
    Os (OptLev=s), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 440
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __ILS_h__
#define __ILS_h__

/* Forward Declarations */ 

#ifndef __IIlsServer_FWD_DEFINED__
#define __IIlsServer_FWD_DEFINED__
typedef interface IIlsServer IIlsServer;
#endif 	/* __IIlsServer_FWD_DEFINED__ */


#ifndef __IIlsMain_FWD_DEFINED__
#define __IIlsMain_FWD_DEFINED__
typedef interface IIlsMain IIlsMain;
#endif 	/* __IIlsMain_FWD_DEFINED__ */


#ifndef __IIlsNotify_FWD_DEFINED__
#define __IIlsNotify_FWD_DEFINED__
typedef interface IIlsNotify IIlsNotify;
#endif 	/* __IIlsNotify_FWD_DEFINED__ */


#ifndef __IIlsUser_FWD_DEFINED__
#define __IIlsUser_FWD_DEFINED__
typedef interface IIlsUser IIlsUser;
#endif 	/* __IIlsUser_FWD_DEFINED__ */


#ifndef __IIlsProtocol_FWD_DEFINED__
#define __IIlsProtocol_FWD_DEFINED__
typedef interface IIlsProtocol IIlsProtocol;
#endif 	/* __IIlsProtocol_FWD_DEFINED__ */


#ifndef __IIlsProtocolNotify_FWD_DEFINED__
#define __IIlsProtocolNotify_FWD_DEFINED__
typedef interface IIlsProtocolNotify IIlsProtocolNotify;
#endif 	/* __IIlsProtocolNotify_FWD_DEFINED__ */


#ifndef __IIlsUserNotify_FWD_DEFINED__
#define __IIlsUserNotify_FWD_DEFINED__
typedef interface IIlsUserNotify IIlsUserNotify;
#endif 	/* __IIlsUserNotify_FWD_DEFINED__ */


#ifndef __IIlsAttributes_FWD_DEFINED__
#define __IIlsAttributes_FWD_DEFINED__
typedef interface IIlsAttributes IIlsAttributes;
#endif 	/* __IIlsAttributes_FWD_DEFINED__ */


#ifndef __IIlsFilter_FWD_DEFINED__
#define __IIlsFilter_FWD_DEFINED__
typedef interface IIlsFilter IIlsFilter;
#endif 	/* __IIlsFilter_FWD_DEFINED__ */


#ifndef __IEnumIlsProtocols_FWD_DEFINED__
#define __IEnumIlsProtocols_FWD_DEFINED__
typedef interface IEnumIlsProtocols IEnumIlsProtocols;
#endif 	/* __IEnumIlsProtocols_FWD_DEFINED__ */


#ifndef __IEnumIlsUsers_FWD_DEFINED__
#define __IEnumIlsUsers_FWD_DEFINED__
typedef interface IEnumIlsUsers IEnumIlsUsers;
#endif 	/* __IEnumIlsUsers_FWD_DEFINED__ */


#ifndef __IEnumIlsNames_FWD_DEFINED__
#define __IEnumIlsNames_FWD_DEFINED__
typedef interface IEnumIlsNames IEnumIlsNames;
#endif 	/* __IEnumIlsNames_FWD_DEFINED__ */


/* header files for imported files */
#include "objidl.h"
#include "oleidl.h"
#include "oaidl.h"

#ifdef __cplusplus
extern "C"{
#endif 

void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 

/* interface __MIDL_itf_ILS_0000 */
/* [local] */ 

//+-------------------------------------------------------------------------
//
//  Microsoft Windows
//  Copyright 1996-1997 Microsoft Corporation. All Rights Reserved.
//
//  File: ils.h
//
//--------------------------------------------------------------------------













////////////////////////////////////////////////////////////////////////////
//  Error Codes

#define ILS_E(e)    (0x81000000UL | (ULONG) (e))
#define ILS_S(e)    (0x01000000UL | (ULONG) (e))

enum {

//  COM specific error codes
//
    ILS_S_SERVER_MAY_NOT_SUPPORT      = ILS_S (1),
    ILS_E_FAIL                 = E_FAIL,
    ILS_E_POINTER              = E_POINTER,
    ILS_E_HANDLE               = E_HANDLE,
    ILS_E_ABORT                = E_ABORT,
    ILS_E_ACCESS_DENIED        = E_ACCESSDENIED,
    ILS_E_NOT_IMPL             = E_NOTIMPL,
    ILS_E_NO_INTERFACE         = E_NOINTERFACE,
    ILS_E_MEMORY               = E_OUTOFMEMORY,
    ILS_E_PARAMETER            = E_INVALIDARG,

//  General error codes
//
    ILS_E_SERVER_SERVICE       = ILS_E (1),
    ILS_E_SERVER_NAME          = ILS_E (2),
    ILS_E_TIMEOUT              = ILS_E (3),
    ILS_E_BIND                 = ILS_E (4),
    ILS_E_THREAD               = ILS_E (5),
    ILS_E_SERVER_EXEC          = ILS_E (6),
    ILS_E_WINSOCK              = ILS_E (7),
    ILS_E_NO_MORE              = ILS_E (8),
    ILS_E_NOT_INITIALIZED      = ILS_E (9),
    ILS_E_NOTIFY_ID            = ILS_E (10),
    ILS_E_NO_SUCH_OBJECT       = ILS_E (11),
    ILS_E_NEED_RELOGON         = ILS_E (12),
    ILS_E_NAME_CONFLICTS       = ILS_E (13),
    ILS_E_NETWORK_DOWN         = ILS_E (14),
    ILS_E_FILTER_STRING        = ILS_E (15),
    ILS_E_FILTER_OBJECT        = ILS_E (16),
    ILS_E_FILTER_TYPE          = ILS_E (17),
    ILS_E_ACCESS_CONTROL       = ILS_E (18),
    ILS_E_NOT_REGISTERED       = ILS_E (19),
    ILS_E_NO_SUCH_MEMBER       = ILS_E (20),
    ILS_E_NO_WRITE_ACCESS      = ILS_E (21),
    ILS_E_ALREADY_REGISTERED   = ILS_E (22),

//  LDAP specific error codes
//
    ILS_E_LDAP_OPERATIONS_ERROR             = ILS_E (0x101),
    ILS_E_LDAP_PROTOCOL_ERROR               = ILS_E (0x102),
    ILS_E_LDAP_TIMELIMIT_EXCEEDED           = ILS_E (0x103),
    ILS_E_LDAP_SIZELIMIT_EXCEEDED           = ILS_E (0x104),
    ILS_E_LDAP_COMPARE_FALSE                = ILS_E (0x105),
    ILS_E_LDAP_COMPARE_TRUE                 = ILS_E (0x106),
    ILS_E_LDAP_AUTH_METHOD_NOT_SUPPORTED    = ILS_E (0x107),
    ILS_E_LDAP_STRONG_AUTH_REQUIRED         = ILS_E (0x108),
    ILS_E_LDAP_REFERRAL_V2                  = ILS_E (0x109),
    ILS_E_LDAP_PARTIAL_RESULTS              = ILS_E (0x10A),
    ILS_E_LDAP_REFERRAL                     = ILS_E (0x10B),
    ILS_E_LDAP_ADMIN_LIMIT_EXCEEDED         = ILS_E (0x10C),
    ILS_E_LDAP_UNAVAILABLE_CRIT_EXTENSION   = ILS_E (0x10D),
    ILS_E_LDAP_NO_SUCH_ATTRIBUTE            = ILS_E (0x10E),
    ILS_E_LDAP_UNDEFINED_TYPE               = ILS_E (0x10F),
    ILS_E_LDAP_INAPPROPRIATE_MATCHING       = ILS_E (0x110),
    ILS_E_LDAP_CONSTRAINT_VIOLATION         = ILS_E (0x111),
    ILS_E_LDAP_ATTRIBUTE_OR_VALUE_EXISTS    = ILS_E (0x112),
    ILS_E_LDAP_INVALID_SYNTAX               = ILS_E (0x113),
    ILS_E_LDAP_ALIAS_PROBLEM                = ILS_E (0x114),
    ILS_E_LDAP_INVALID_DN_SYNTAX            = ILS_E (0x115),
    ILS_E_LDAP_IS_LEAF                      = ILS_E (0x116),
    ILS_E_LDAP_ALIAS_DEREF_PROBLEM          = ILS_E (0x117),
    ILS_E_LDAP_INAPPROPRIATE_AUTH           = ILS_E (0x118),
    ILS_E_LDAP_INVALID_CREDENTIALS          = ILS_E (0x119),
    ILS_E_LDAP_INSUFFICIENT_RIGHTS          = ILS_E (0x11A),
    ILS_E_LDAP_BUSY                         = ILS_E (0x11B),
    ILS_E_LDAP_UNAVAILABLE                  = ILS_E (0x11C),
    ILS_E_LDAP_UNWILLING_TO_PERFORM         = ILS_E (0x11D),
    ILS_E_LDAP_LOOP_DETECT                  = ILS_E (0x11E),
    ILS_E_LDAP_NAMING_VIOLATION             = ILS_E (0x11F),
    ILS_E_LDAP_OBJECT_CLASS_VIOLATION       = ILS_E (0x120),
    ILS_E_LDAP_NOT_ALLOWED_ON_NONLEAF       = ILS_E (0x121),
    ILS_E_LDAP_NOT_ALLOWED_ON_RDN           = ILS_E (0x122),
    ILS_E_LDAP_NO_OBJECT_CLASS_MODS         = ILS_E (0x123),
    ILS_E_LDAP_RESULTS_TOO_LARGE            = ILS_E (0x124),
    ILS_E_LDAP_AFFECTS_MULTIPLE_DSAS        = ILS_E (0x125),
    ILS_E_LDAP_OTHER                        = ILS_E (0x126),
    ILS_E_LDAP_SERVER_DOWN                  = ILS_E (0x127),
    ILS_E_LDAP_LOCAL_ERROR                  = ILS_E (0x128),
    ILS_E_LDAP_ENCODING_ERROR               = ILS_E (0x129),
    ILS_E_LDAP_DECODING_ERROR               = ILS_E (0x12A),
    ILS_E_LDAP_TIMEOUT                      = ILS_E (0x12B),
    ILS_E_LDAP_AUTH_UNKNOWN                 = ILS_E (0x12C),
    ILS_E_LDAP_FILTER_ERROR                 = ILS_E (0x12D),
    ILS_E_LDAP_USER_CANCELLED               = ILS_E (0x12E),
    ILS_E_LDAP_NO_MEMORY                    = ILS_E (0x12F),
}; // end of enum

////////////////////////////////////////////////////////////////////////////
//  Constants Definitions

enum __MIDL___MIDL_itf_ILS_0000_0001
    {	ILS_INVALID_REQ_ID	= 0
    };
typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0002
    {	ILS_UNREGISTERED	= 0,
	ILS_REGISTERING	= 1,
	ILS_REGISTERED	= 2,
	ILS_UNREGISTERING	= 3,
	ILS_REGISTERED_BUT_INVALID	= 4,
	ILS_NETWORK_DOWN	= 5,
	ILS_IN_SYNC	= 6
    }	ILS_STATE;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0003
    {	ILS_ATTRTYPE_NONE	= 0,
	ILS_ATTRTYPE_NAME_ONLY	= 1,
	ILS_ATTRTYPE_NAME_VALUE	= 2
    }	ILS_ATTR_TYPE;


////////////////////////////////////////////////////////////////////////////
//  Filters Definitions
typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0004
    {	ILS_FILTERTYPE_UNKNOWN	= 0,
	ILS_FILTERTYPE_SIMPLE	= 1,
	ILS_FILTERTYPE_COMPOSITE	= 2
    }	ILS_FILTER_TYPE;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0005
    {	ILS_FILTEROP_NONE	= 0,
	ILS_FILTEROP_EQUAL	= 1,
	ILS_FILTEROP_APPROX	= 2,
	ILS_FILTEROP_LESS_THAN	= 3,
	ILS_FILTEROP_GREATER_THAN	= 4,
	ILS_FILTEROP_EXIST	= 5,
	ILS_FILTEROP_AND	= 21,
	ILS_FILTEROP_OR	= 22,
	ILS_FILTEROP_NOT	= 23
    }	ILS_FILTER_OP;

typedef /* [public][public][public][public][public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0006
    {	ILS_STDATTR_NULL	= 0,
	ILS_STDATTR_USER_ID	= 1,
	ILS_STDATTR_IP_ADDRESS	= 2,
	ILS_STDATTR_EMAIL_NAME	= 3,
	ILS_STDATTR_FIRST_NAME	= 4,
	ILS_STDATTR_LAST_NAME	= 5,
	ILS_STDATTR_CITY_NAME	= 6,
	ILS_STDATTR_COUNTRY_NAME	= 7,
	ILS_STDATTR_COMMENT	= 8,
	ILS_STDATTR_FLAGS	= 9,
	ILS_STDATTR_APP_NAME	= 10,
	ILS_STDATTR_APP_MIME_TYPE	= 11,
	ILS_STDATTR_APP_GUID	= 12,
	ILS_STDATTR_PROTOCOL_NAME	= 13,
	ILS_STDATTR_PROTOCOL_MIME_TYPE	= 14,
	ILS_STDATTR_PROTOCOL_PORT	= 15,
	ILS_NUM_OF_STDATTRS	= 16
    }	ILS_STD_ATTR_NAME;

typedef /* [public][public] */ 
enum __MIDL___MIDL_itf_ILS_0000_0007
    {	ILS_AUTH_ANONYMOUS	= 0,
	ILS_AUTH_CLEAR_TEXT	= 1,
	ILS_AUTH_NTLM	= 3,
	ILS_AUTH_DPA	= 4,
	ILS_AUTH_MSN	= 5,
	ILS_AUTH_SICILY	= 6,
	ILS_AUTH_SSPI	= 7,
	ILS_NUM_OF_AUTH_METHODS	= 8
    }	ILS_ENUM_AUTH_METHOD;


////////////////////////////////////////////////////////////////////////////
//  Interface Definitions


extern RPC_IF_HANDLE __MIDL_itf_ILS_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_ILS_0000_v0_0_s_ifspec;

#ifndef __IIlsServer_INTERFACE_DEFINED__
#define __IIlsServer_INTERFACE_DEFINED__

/* interface IIlsServer */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsServer __RPC_FAR *LPILS_SERVER;


EXTERN_C const IID IID_IIlsServer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8BCE6B64-85CE-11d0-9CA7-00A0C913B21E")
    IIlsServer : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetAuthenticationMethod( 
            /* [in] */ ILS_ENUM_AUTH_METHOD enumAuthMethod) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetLogonName( 
            /* [in] */ BSTR bstrLogonName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetLogonPassword( 
            /* [in] */ BSTR bstrLogonPassword) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDomain( 
            /* [in] */ BSTR bstrDomain) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCredential( 
            /* [in] */ BSTR bstrCredential) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetTimeout( 
            /* [in] */ ULONG uTimeoutInSecond) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetBaseDN( 
            /* [in] */ BSTR bstrBaseDN) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsServerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsServer __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsServer __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAuthenticationMethod )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ ILS_ENUM_AUTH_METHOD enumAuthMethod);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetLogonName )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ BSTR bstrLogonName);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetLogonPassword )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ BSTR bstrLogonPassword);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetDomain )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ BSTR bstrDomain);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetCredential )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ BSTR bstrCredential);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetTimeout )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ ULONG uTimeoutInSecond);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetBaseDN )( 
            IIlsServer __RPC_FAR * This,
            /* [in] */ BSTR bstrBaseDN);
        
        END_INTERFACE
    } IIlsServerVtbl;

    interface IIlsServer
    {
        CONST_VTBL struct IIlsServerVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsServer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsServer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsServer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsServer_SetAuthenticationMethod(This,enumAuthMethod)	\
    (This)->lpVtbl -> SetAuthenticationMethod(This,enumAuthMethod)

#define IIlsServer_SetLogonName(This,bstrLogonName)	\
    (This)->lpVtbl -> SetLogonName(This,bstrLogonName)

#define IIlsServer_SetLogonPassword(This,bstrLogonPassword)	\
    (This)->lpVtbl -> SetLogonPassword(This,bstrLogonPassword)

#define IIlsServer_SetDomain(This,bstrDomain)	\
    (This)->lpVtbl -> SetDomain(This,bstrDomain)

#define IIlsServer_SetCredential(This,bstrCredential)	\
    (This)->lpVtbl -> SetCredential(This,bstrCredential)

#define IIlsServer_SetTimeout(This,uTimeoutInSecond)	\
    (This)->lpVtbl -> SetTimeout(This,uTimeoutInSecond)

#define IIlsServer_SetBaseDN(This,bstrBaseDN)	\
    (This)->lpVtbl -> SetBaseDN(This,bstrBaseDN)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsServer_SetAuthenticationMethod_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ ILS_ENUM_AUTH_METHOD enumAuthMethod);


void __RPC_STUB IIlsServer_SetAuthenticationMethod_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetLogonName_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ BSTR bstrLogonName);


void __RPC_STUB IIlsServer_SetLogonName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetLogonPassword_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ BSTR bstrLogonPassword);


void __RPC_STUB IIlsServer_SetLogonPassword_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetDomain_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ BSTR bstrDomain);


void __RPC_STUB IIlsServer_SetDomain_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetCredential_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ BSTR bstrCredential);


void __RPC_STUB IIlsServer_SetCredential_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetTimeout_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ ULONG uTimeoutInSecond);


void __RPC_STUB IIlsServer_SetTimeout_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsServer_SetBaseDN_Proxy( 
    IIlsServer __RPC_FAR * This,
    /* [in] */ BSTR bstrBaseDN);


void __RPC_STUB IIlsServer_SetBaseDN_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsServer_INTERFACE_DEFINED__ */


#ifndef __IIlsMain_INTERFACE_DEFINED__
#define __IIlsMain_INTERFACE_DEFINED__

/* interface IIlsMain */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsMain __RPC_FAR *LPILS_MAIN;


EXTERN_C const IID IID_IIlsMain;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("34526E14-4D7D-11d0-8F4B-00C04FC29FEE")
    IIlsMain : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Initialize( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateServer( 
            /* [in] */ BSTR bstrServerName,
            /* [out] */ IIlsServer __RPC_FAR *__RPC_FAR *ppServer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateUser( 
            /* [in] */ BSTR bstrUserID,
            /* [in] */ BSTR bstrAppName,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetUser( 
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ BSTR bstrUserID,
            /* [in] */ BSTR bstrAppName,
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumUserNames( 
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumUserNames,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumUsers( 
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
            /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUsers,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Abort( 
            /* [in] */ ULONG uReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateAttributes( 
            /* [in] */ ILS_ATTR_TYPE AttrType,
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateFilter( 
            /* [in] */ ILS_FILTER_TYPE FilterType,
            /* [in] */ ILS_FILTER_OP FilterOp,
            /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE StringToFilter( 
            /* [in] */ BSTR bstrFilterString,
            /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Uninitialize( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsMainVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsMain __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsMain __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Initialize )( 
            IIlsMain __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateServer )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ BSTR bstrServerName,
            /* [out] */ IIlsServer __RPC_FAR *__RPC_FAR *ppServer);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateUser )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ BSTR bstrUserID,
            /* [in] */ BSTR bstrAppName,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetUser )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ BSTR bstrUserID,
            /* [in] */ BSTR bstrAppName,
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumUserNames )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumUserNames,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumUsers )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
            /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUsers,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Abort )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ ULONG uReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateAttributes )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ ILS_ATTR_TYPE AttrType,
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateFilter )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ ILS_FILTER_TYPE FilterType,
            /* [in] */ ILS_FILTER_OP FilterOp,
            /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StringToFilter )( 
            IIlsMain __RPC_FAR * This,
            /* [in] */ BSTR bstrFilterString,
            /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Uninitialize )( 
            IIlsMain __RPC_FAR * This);
        
        END_INTERFACE
    } IIlsMainVtbl;

    interface IIlsMain
    {
        CONST_VTBL struct IIlsMainVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsMain_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsMain_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsMain_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsMain_Initialize(This)	\
    (This)->lpVtbl -> Initialize(This)

#define IIlsMain_CreateServer(This,bstrServerName,ppServer)	\
    (This)->lpVtbl -> CreateServer(This,bstrServerName,ppServer)

#define IIlsMain_CreateUser(This,bstrUserID,bstrAppName,ppUser)	\
    (This)->lpVtbl -> CreateUser(This,bstrUserID,bstrAppName,ppUser)

#define IIlsMain_GetUser(This,pServer,bstrUserID,bstrAppName,bstrProtocolName,pAttrib,ppUser,puReqID)	\
    (This)->lpVtbl -> GetUser(This,pServer,bstrUserID,bstrAppName,bstrProtocolName,pAttrib,ppUser,puReqID)

#define IIlsMain_EnumUserNames(This,pServer,pFilter,ppEnumUserNames,puReqID)	\
    (This)->lpVtbl -> EnumUserNames(This,pServer,pFilter,ppEnumUserNames,puReqID)

#define IIlsMain_EnumUsers(This,pServer,pFilter,pAttrib,ppEnumUsers,puReqID)	\
    (This)->lpVtbl -> EnumUsers(This,pServer,pFilter,pAttrib,ppEnumUsers,puReqID)

#define IIlsMain_Abort(This,uReqID)	\
    (This)->lpVtbl -> Abort(This,uReqID)

#define IIlsMain_CreateAttributes(This,AttrType,ppAttributes)	\
    (This)->lpVtbl -> CreateAttributes(This,AttrType,ppAttributes)

#define IIlsMain_CreateFilter(This,FilterType,FilterOp,ppFilter)	\
    (This)->lpVtbl -> CreateFilter(This,FilterType,FilterOp,ppFilter)

#define IIlsMain_StringToFilter(This,bstrFilterString,ppFilter)	\
    (This)->lpVtbl -> StringToFilter(This,bstrFilterString,ppFilter)

#define IIlsMain_Uninitialize(This)	\
    (This)->lpVtbl -> Uninitialize(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsMain_Initialize_Proxy( 
    IIlsMain __RPC_FAR * This);


void __RPC_STUB IIlsMain_Initialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_CreateServer_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ BSTR bstrServerName,
    /* [out] */ IIlsServer __RPC_FAR *__RPC_FAR *ppServer);


void __RPC_STUB IIlsMain_CreateServer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_CreateUser_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ BSTR bstrUserID,
    /* [in] */ BSTR bstrAppName,
    /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser);


void __RPC_STUB IIlsMain_CreateUser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_GetUser_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ IIlsServer __RPC_FAR *pServer,
    /* [in] */ BSTR bstrUserID,
    /* [in] */ BSTR bstrAppName,
    /* [in] */ BSTR bstrProtocolName,
    /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
    /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsMain_GetUser_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_EnumUserNames_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ IIlsServer __RPC_FAR *pServer,
    /* [in] */ IIlsFilter __RPC_FAR *pFilter,
    /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumUserNames,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsMain_EnumUserNames_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_EnumUsers_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ IIlsServer __RPC_FAR *pServer,
    /* [in] */ IIlsFilter __RPC_FAR *pFilter,
    /* [in] */ IIlsAttributes __RPC_FAR *pAttrib,
    /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUsers,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsMain_EnumUsers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_Abort_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ ULONG uReqID);


void __RPC_STUB IIlsMain_Abort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_CreateAttributes_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ ILS_ATTR_TYPE AttrType,
    /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);


void __RPC_STUB IIlsMain_CreateAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_CreateFilter_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ ILS_FILTER_TYPE FilterType,
    /* [in] */ ILS_FILTER_OP FilterOp,
    /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter);


void __RPC_STUB IIlsMain_CreateFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_StringToFilter_Proxy( 
    IIlsMain __RPC_FAR * This,
    /* [in] */ BSTR bstrFilterString,
    /* [out] */ IIlsFilter __RPC_FAR *__RPC_FAR *ppFilter);


void __RPC_STUB IIlsMain_StringToFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsMain_Uninitialize_Proxy( 
    IIlsMain __RPC_FAR * This);


void __RPC_STUB IIlsMain_Uninitialize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsMain_INTERFACE_DEFINED__ */


#ifndef __IIlsNotify_INTERFACE_DEFINED__
#define __IIlsNotify_INTERFACE_DEFINED__

/* interface IIlsNotify */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsNotify __RPC_FAR *LPILS_NOTIFY;


EXTERN_C const IID IID_IIlsNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("551D25EE-4D7D-11d0-8F4B-00C04FC29FEE")
    IIlsNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetUserResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ IIlsUser __RPC_FAR *pUser,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumUserNamesResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsNames __RPC_FAR *pEnumUserName,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumUsersResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsUsers __RPC_FAR *pEnumUser,
            /* [in] */ HRESULT hResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsNotify __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsNotify __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsNotify __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetUserResult )( 
            IIlsNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ IIlsUser __RPC_FAR *pUser,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumUserNamesResult )( 
            IIlsNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsNames __RPC_FAR *pEnumUserName,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumUsersResult )( 
            IIlsNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsUsers __RPC_FAR *pEnumUser,
            /* [in] */ HRESULT hResult);
        
        END_INTERFACE
    } IIlsNotifyVtbl;

    interface IIlsNotify
    {
        CONST_VTBL struct IIlsNotifyVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsNotify_GetUserResult(This,uReqID,pUser,hResult)	\
    (This)->lpVtbl -> GetUserResult(This,uReqID,pUser,hResult)

#define IIlsNotify_EnumUserNamesResult(This,uReqID,pEnumUserName,hResult)	\
    (This)->lpVtbl -> EnumUserNamesResult(This,uReqID,pEnumUserName,hResult)

#define IIlsNotify_EnumUsersResult(This,uReqID,pEnumUser,hResult)	\
    (This)->lpVtbl -> EnumUsersResult(This,uReqID,pEnumUser,hResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsNotify_GetUserResult_Proxy( 
    IIlsNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ IIlsUser __RPC_FAR *pUser,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsNotify_GetUserResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsNotify_EnumUserNamesResult_Proxy( 
    IIlsNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ IEnumIlsNames __RPC_FAR *pEnumUserName,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsNotify_EnumUserNamesResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsNotify_EnumUsersResult_Proxy( 
    IIlsNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ IEnumIlsUsers __RPC_FAR *pEnumUser,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsNotify_EnumUsersResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsNotify_INTERFACE_DEFINED__ */


#ifndef __IIlsUser_INTERFACE_DEFINED__
#define __IIlsUser_INTERFACE_DEFINED__

/* interface IIlsUser */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsUser __RPC_FAR *LPILS_USER;


EXTERN_C const IID IID_IIlsUser;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC982-20E6-11d0-8796-444553540000")
    IIlsUser : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetState( 
            /* [out] */ ILS_STATE __RPC_FAR *pState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStandardAttribute( 
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [out] */ BSTR __RPC_FAR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStandardAttribute( 
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExtendedAttribute( 
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetExtendedAttribute( 
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveExtendedAttribute( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAllExtendedAttributes( 
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsWritable( 
            /* [in] */ BOOL __RPC_FAR *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Register( 
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Unregister( 
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Update( 
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetVisible( 
            /* [out] */ DWORD __RPC_FAR *pfVisible) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetVisible( 
            /* [in] */ DWORD fVisible) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGuid( 
            /* [out] */ GUID __RPC_FAR *pGuid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetGuid( 
            /* [in] */ GUID __RPC_FAR *pGuid) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateProtocol( 
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ ULONG uPortNumber,
            /* [in] */ BSTR bstrMimeType,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddProtocol( 
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveProtocol( 
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProtocol( 
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumProtocols( 
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
            /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsUserVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsUser __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsUser __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetState )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ ILS_STATE __RPC_FAR *pState);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetStandardAttribute )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [out] */ BSTR __RPC_FAR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetStandardAttribute )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetExtendedAttribute )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetExtendedAttribute )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RemoveExtendedAttribute )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BSTR bstrName);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAllExtendedAttributes )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsWritable )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BOOL __RPC_FAR *pValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Register )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ IIlsServer __RPC_FAR *pServer,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Unregister )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Update )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetVisible )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ DWORD __RPC_FAR *pfVisible);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetVisible )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ DWORD fVisible);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetGuid )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ GUID __RPC_FAR *pGuid);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetGuid )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ GUID __RPC_FAR *pGuid);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CreateProtocol )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ ULONG uPortNumber,
            /* [in] */ BSTR bstrMimeType,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddProtocol )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RemoveProtocol )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProtocol )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ BSTR bstrProtocolName,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumProtocols )( 
            IIlsUser __RPC_FAR * This,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter,
            /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
            /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
            IIlsUser __RPC_FAR * This,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser);
        
        END_INTERFACE
    } IIlsUserVtbl;

    interface IIlsUser
    {
        CONST_VTBL struct IIlsUserVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsUser_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsUser_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsUser_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsUser_GetState(This,pState)	\
    (This)->lpVtbl -> GetState(This,pState)

#define IIlsUser_GetStandardAttribute(This,StdAttr,pbstrValue)	\
    (This)->lpVtbl -> GetStandardAttribute(This,StdAttr,pbstrValue)

#define IIlsUser_SetStandardAttribute(This,StdAttr,bstrValue)	\
    (This)->lpVtbl -> SetStandardAttribute(This,StdAttr,bstrValue)

#define IIlsUser_GetExtendedAttribute(This,bstrName,pbstrValue)	\
    (This)->lpVtbl -> GetExtendedAttribute(This,bstrName,pbstrValue)

#define IIlsUser_SetExtendedAttribute(This,bstrName,bstrValue)	\
    (This)->lpVtbl -> SetExtendedAttribute(This,bstrName,bstrValue)

#define IIlsUser_RemoveExtendedAttribute(This,bstrName)	\
    (This)->lpVtbl -> RemoveExtendedAttribute(This,bstrName)

#define IIlsUser_GetAllExtendedAttributes(This,ppAttributes)	\
    (This)->lpVtbl -> GetAllExtendedAttributes(This,ppAttributes)

#define IIlsUser_IsWritable(This,pValue)	\
    (This)->lpVtbl -> IsWritable(This,pValue)

#define IIlsUser_Register(This,pServer,puReqID)	\
    (This)->lpVtbl -> Register(This,pServer,puReqID)

#define IIlsUser_Unregister(This,puReqID)	\
    (This)->lpVtbl -> Unregister(This,puReqID)

#define IIlsUser_Update(This,puReqID)	\
    (This)->lpVtbl -> Update(This,puReqID)

#define IIlsUser_GetVisible(This,pfVisible)	\
    (This)->lpVtbl -> GetVisible(This,pfVisible)

#define IIlsUser_SetVisible(This,fVisible)	\
    (This)->lpVtbl -> SetVisible(This,fVisible)

#define IIlsUser_GetGuid(This,pGuid)	\
    (This)->lpVtbl -> GetGuid(This,pGuid)

#define IIlsUser_SetGuid(This,pGuid)	\
    (This)->lpVtbl -> SetGuid(This,pGuid)

#define IIlsUser_CreateProtocol(This,bstrProtocolName,uPortNumber,bstrMimeType,ppProtocol)	\
    (This)->lpVtbl -> CreateProtocol(This,bstrProtocolName,uPortNumber,bstrMimeType,ppProtocol)

#define IIlsUser_AddProtocol(This,pProtocol,puReqID)	\
    (This)->lpVtbl -> AddProtocol(This,pProtocol,puReqID)

#define IIlsUser_RemoveProtocol(This,pProtocol,puReqID)	\
    (This)->lpVtbl -> RemoveProtocol(This,pProtocol,puReqID)

#define IIlsUser_GetProtocol(This,bstrProtocolName,pAttributes,ppProtocol,puReqID)	\
    (This)->lpVtbl -> GetProtocol(This,bstrProtocolName,pAttributes,ppProtocol,puReqID)

#define IIlsUser_EnumProtocols(This,pFilter,pAttributes,ppEnumProtocol,puReqID)	\
    (This)->lpVtbl -> EnumProtocols(This,pFilter,pAttributes,ppEnumProtocol,puReqID)

#define IIlsUser_Clone(This,ppUser)	\
    (This)->lpVtbl -> Clone(This,ppUser)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsUser_GetState_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ ILS_STATE __RPC_FAR *pState);


void __RPC_STUB IIlsUser_GetState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetStandardAttribute_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ ILS_STD_ATTR_NAME StdAttr,
    /* [out] */ BSTR __RPC_FAR *pbstrValue);


void __RPC_STUB IIlsUser_GetStandardAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_SetStandardAttribute_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ ILS_STD_ATTR_NAME StdAttr,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IIlsUser_SetStandardAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetExtendedAttribute_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [out] */ BSTR __RPC_FAR *pbstrValue);


void __RPC_STUB IIlsUser_GetExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_SetExtendedAttribute_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IIlsUser_SetExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_RemoveExtendedAttribute_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IIlsUser_RemoveExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetAllExtendedAttributes_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);


void __RPC_STUB IIlsUser_GetAllExtendedAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_IsWritable_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BOOL __RPC_FAR *pValue);


void __RPC_STUB IIlsUser_IsWritable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_Register_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ IIlsServer __RPC_FAR *pServer,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_Register_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_Unregister_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_Unregister_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_Update_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_Update_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetVisible_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ DWORD __RPC_FAR *pfVisible);


void __RPC_STUB IIlsUser_GetVisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_SetVisible_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ DWORD fVisible);


void __RPC_STUB IIlsUser_SetVisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetGuid_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ GUID __RPC_FAR *pGuid);


void __RPC_STUB IIlsUser_GetGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_SetGuid_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ GUID __RPC_FAR *pGuid);


void __RPC_STUB IIlsUser_SetGuid_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_CreateProtocol_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BSTR bstrProtocolName,
    /* [in] */ ULONG uPortNumber,
    /* [in] */ BSTR bstrMimeType,
    /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol);


void __RPC_STUB IIlsUser_CreateProtocol_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_AddProtocol_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_AddProtocol_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_RemoveProtocol_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_RemoveProtocol_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_GetProtocol_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ BSTR bstrProtocolName,
    /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
    /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *ppProtocol,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_GetProtocol_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_EnumProtocols_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [in] */ IIlsFilter __RPC_FAR *pFilter,
    /* [in] */ IIlsAttributes __RPC_FAR *pAttributes,
    /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsUser_EnumProtocols_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUser_Clone_Proxy( 
    IIlsUser __RPC_FAR * This,
    /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *ppUser);


void __RPC_STUB IIlsUser_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsUser_INTERFACE_DEFINED__ */


#ifndef __IIlsProtocol_INTERFACE_DEFINED__
#define __IIlsProtocol_INTERFACE_DEFINED__

/* interface IIlsProtocol */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsProtocol __RPC_FAR *LPILS_PROTOCOL;


EXTERN_C const IID IID_IIlsProtocol;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC985-20E6-11d0-8796-444553540000")
    IIlsProtocol : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE IsWritable( 
            /* [in] */ BOOL __RPC_FAR *pValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPortNumber( 
            /* [out] */ ULONG __RPC_FAR *pulPortNumber) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStandardAttribute( 
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [out] */ BSTR __RPC_FAR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStandardAttribute( 
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExtendedAttribute( 
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetExtendedAttribute( 
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveExtendedAttribute( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAllExtendedAttributes( 
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Update( 
            /* [out] */ ULONG __RPC_FAR *puReqID) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsProtocolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsProtocol __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsProtocol __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *IsWritable )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ BOOL __RPC_FAR *pValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetPortNumber )( 
            IIlsProtocol __RPC_FAR * This,
            /* [out] */ ULONG __RPC_FAR *pulPortNumber);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetStandardAttribute )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [out] */ BSTR __RPC_FAR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetStandardAttribute )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ ILS_STD_ATTR_NAME StdAttr,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetExtendedAttribute )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetExtendedAttribute )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RemoveExtendedAttribute )( 
            IIlsProtocol __RPC_FAR * This,
            /* [in] */ BSTR bstrName);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAllExtendedAttributes )( 
            IIlsProtocol __RPC_FAR * This,
            /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Update )( 
            IIlsProtocol __RPC_FAR * This,
            /* [out] */ ULONG __RPC_FAR *puReqID);
        
        END_INTERFACE
    } IIlsProtocolVtbl;

    interface IIlsProtocol
    {
        CONST_VTBL struct IIlsProtocolVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsProtocol_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsProtocol_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsProtocol_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsProtocol_IsWritable(This,pValue)	\
    (This)->lpVtbl -> IsWritable(This,pValue)

#define IIlsProtocol_GetPortNumber(This,pulPortNumber)	\
    (This)->lpVtbl -> GetPortNumber(This,pulPortNumber)

#define IIlsProtocol_GetStandardAttribute(This,StdAttr,pbstrValue)	\
    (This)->lpVtbl -> GetStandardAttribute(This,StdAttr,pbstrValue)

#define IIlsProtocol_SetStandardAttribute(This,StdAttr,bstrValue)	\
    (This)->lpVtbl -> SetStandardAttribute(This,StdAttr,bstrValue)

#define IIlsProtocol_GetExtendedAttribute(This,bstrName,pbstrValue)	\
    (This)->lpVtbl -> GetExtendedAttribute(This,bstrName,pbstrValue)

#define IIlsProtocol_SetExtendedAttribute(This,bstrName,bstrValue)	\
    (This)->lpVtbl -> SetExtendedAttribute(This,bstrName,bstrValue)

#define IIlsProtocol_RemoveExtendedAttribute(This,bstrName)	\
    (This)->lpVtbl -> RemoveExtendedAttribute(This,bstrName)

#define IIlsProtocol_GetAllExtendedAttributes(This,ppAttributes)	\
    (This)->lpVtbl -> GetAllExtendedAttributes(This,ppAttributes)

#define IIlsProtocol_Update(This,puReqID)	\
    (This)->lpVtbl -> Update(This,puReqID)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsProtocol_IsWritable_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ BOOL __RPC_FAR *pValue);


void __RPC_STUB IIlsProtocol_IsWritable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_GetPortNumber_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [out] */ ULONG __RPC_FAR *pulPortNumber);


void __RPC_STUB IIlsProtocol_GetPortNumber_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_GetStandardAttribute_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ ILS_STD_ATTR_NAME StdAttr,
    /* [out] */ BSTR __RPC_FAR *pbstrValue);


void __RPC_STUB IIlsProtocol_GetStandardAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_SetStandardAttribute_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ ILS_STD_ATTR_NAME StdAttr,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IIlsProtocol_SetStandardAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_GetExtendedAttribute_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [out] */ BSTR __RPC_FAR *pbstrValue);


void __RPC_STUB IIlsProtocol_GetExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_SetExtendedAttribute_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IIlsProtocol_SetExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_RemoveExtendedAttribute_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IIlsProtocol_RemoveExtendedAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_GetAllExtendedAttributes_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [out] */ IIlsAttributes __RPC_FAR *__RPC_FAR *ppAttributes);


void __RPC_STUB IIlsProtocol_GetAllExtendedAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsProtocol_Update_Proxy( 
    IIlsProtocol __RPC_FAR * This,
    /* [out] */ ULONG __RPC_FAR *puReqID);


void __RPC_STUB IIlsProtocol_Update_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsProtocol_INTERFACE_DEFINED__ */


#ifndef __IIlsProtocolNotify_INTERFACE_DEFINED__
#define __IIlsProtocolNotify_INTERFACE_DEFINED__

/* interface IIlsProtocolNotify */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsProtocolNotify __RPC_FAR *LPILS_PROTOCOLNOTIFY;


EXTERN_C const IID IID_IIlsProtocolNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC986-20E6-11d0-8796-444553540000")
    IIlsProtocolNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE UpdateResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsProtocolNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsProtocolNotify __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsProtocolNotify __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsProtocolNotify __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UpdateResult )( 
            IIlsProtocolNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult);
        
        END_INTERFACE
    } IIlsProtocolNotifyVtbl;

    interface IIlsProtocolNotify
    {
        CONST_VTBL struct IIlsProtocolNotifyVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsProtocolNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsProtocolNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsProtocolNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsProtocolNotify_UpdateResult(This,uReqID,hResult)	\
    (This)->lpVtbl -> UpdateResult(This,uReqID,hResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsProtocolNotify_UpdateResult_Proxy( 
    IIlsProtocolNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsProtocolNotify_UpdateResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsProtocolNotify_INTERFACE_DEFINED__ */


#ifndef __IIlsUserNotify_INTERFACE_DEFINED__
#define __IIlsUserNotify_INTERFACE_DEFINED__

/* interface IIlsUserNotify */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsUserNotify __RPC_FAR *LPILS_USERNOTIFY;


EXTERN_C const IID IID_IIlsUserNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC988-20E6-11d0-8796-444553540000")
    IIlsUserNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE RegisterResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ProtocolChangeResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProtocolResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumProtocolsResult( 
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsNames __RPC_FAR *pEnumProtocol,
            /* [in] */ HRESULT hResult) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE StateChanged( 
            /* [in] */ ULONG fPrimary,
            /* [in] */ BSTR bstrServerName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsUserNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsUserNotify __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsUserNotify __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RegisterResult )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *UpdateResult )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *ProtocolChangeResult )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetProtocolResult )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumProtocolsResult )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG uReqID,
            /* [in] */ IEnumIlsNames __RPC_FAR *pEnumProtocol,
            /* [in] */ HRESULT hResult);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *StateChanged )( 
            IIlsUserNotify __RPC_FAR * This,
            /* [in] */ ULONG fPrimary,
            /* [in] */ BSTR bstrServerName);
        
        END_INTERFACE
    } IIlsUserNotifyVtbl;

    interface IIlsUserNotify
    {
        CONST_VTBL struct IIlsUserNotifyVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsUserNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsUserNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsUserNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsUserNotify_RegisterResult(This,uReqID,hResult)	\
    (This)->lpVtbl -> RegisterResult(This,uReqID,hResult)

#define IIlsUserNotify_UpdateResult(This,uReqID,hResult)	\
    (This)->lpVtbl -> UpdateResult(This,uReqID,hResult)

#define IIlsUserNotify_ProtocolChangeResult(This,uReqID,hResult)	\
    (This)->lpVtbl -> ProtocolChangeResult(This,uReqID,hResult)

#define IIlsUserNotify_GetProtocolResult(This,uReqID,pProtocol,hResult)	\
    (This)->lpVtbl -> GetProtocolResult(This,uReqID,pProtocol,hResult)

#define IIlsUserNotify_EnumProtocolsResult(This,uReqID,pEnumProtocol,hResult)	\
    (This)->lpVtbl -> EnumProtocolsResult(This,uReqID,pEnumProtocol,hResult)

#define IIlsUserNotify_StateChanged(This,fPrimary,bstrServerName)	\
    (This)->lpVtbl -> StateChanged(This,fPrimary,bstrServerName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsUserNotify_RegisterResult_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsUserNotify_RegisterResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUserNotify_UpdateResult_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsUserNotify_UpdateResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUserNotify_ProtocolChangeResult_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsUserNotify_ProtocolChangeResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUserNotify_GetProtocolResult_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ IIlsProtocol __RPC_FAR *pProtocol,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsUserNotify_GetProtocolResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUserNotify_EnumProtocolsResult_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG uReqID,
    /* [in] */ IEnumIlsNames __RPC_FAR *pEnumProtocol,
    /* [in] */ HRESULT hResult);


void __RPC_STUB IIlsUserNotify_EnumProtocolsResult_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsUserNotify_StateChanged_Proxy( 
    IIlsUserNotify __RPC_FAR * This,
    /* [in] */ ULONG fPrimary,
    /* [in] */ BSTR bstrServerName);


void __RPC_STUB IIlsUserNotify_StateChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsUserNotify_INTERFACE_DEFINED__ */


#ifndef __IIlsAttributes_INTERFACE_DEFINED__
#define __IIlsAttributes_INTERFACE_DEFINED__

/* interface IIlsAttributes */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsAttributes __RPC_FAR *LPILS_ATTRIBUTES;


EXTERN_C const IID IID_IIlsAttributes;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC98C-20E6-11d0-8796-444553540000")
    IIlsAttributes : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetAttribute( 
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetAttribute( 
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumAttributes( 
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumAttribute) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAttributeName( 
            /* [in] */ BSTR bstrName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsAttributesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsAttributes __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsAttributes __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsAttributes __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAttribute )( 
            IIlsAttributes __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ BSTR bstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetAttribute )( 
            IIlsAttributes __RPC_FAR * This,
            /* [in] */ BSTR bstrName,
            /* [out] */ BSTR __RPC_FAR *pbstrValue);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *EnumAttributes )( 
            IIlsAttributes __RPC_FAR * This,
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumAttribute);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAttributeName )( 
            IIlsAttributes __RPC_FAR * This,
            /* [in] */ BSTR bstrName);
        
        END_INTERFACE
    } IIlsAttributesVtbl;

    interface IIlsAttributes
    {
        CONST_VTBL struct IIlsAttributesVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsAttributes_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsAttributes_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsAttributes_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsAttributes_SetAttribute(This,bstrName,bstrValue)	\
    (This)->lpVtbl -> SetAttribute(This,bstrName,bstrValue)

#define IIlsAttributes_GetAttribute(This,bstrName,pbstrValue)	\
    (This)->lpVtbl -> GetAttribute(This,bstrName,pbstrValue)

#define IIlsAttributes_EnumAttributes(This,ppEnumAttribute)	\
    (This)->lpVtbl -> EnumAttributes(This,ppEnumAttribute)

#define IIlsAttributes_SetAttributeName(This,bstrName)	\
    (This)->lpVtbl -> SetAttributeName(This,bstrName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsAttributes_SetAttribute_Proxy( 
    IIlsAttributes __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ BSTR bstrValue);


void __RPC_STUB IIlsAttributes_SetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsAttributes_GetAttribute_Proxy( 
    IIlsAttributes __RPC_FAR * This,
    /* [in] */ BSTR bstrName,
    /* [out] */ BSTR __RPC_FAR *pbstrValue);


void __RPC_STUB IIlsAttributes_GetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsAttributes_EnumAttributes_Proxy( 
    IIlsAttributes __RPC_FAR * This,
    /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumAttribute);


void __RPC_STUB IIlsAttributes_EnumAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsAttributes_SetAttributeName_Proxy( 
    IIlsAttributes __RPC_FAR * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IIlsAttributes_SetAttributeName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsAttributes_INTERFACE_DEFINED__ */


#ifndef __IIlsFilter_INTERFACE_DEFINED__
#define __IIlsFilter_INTERFACE_DEFINED__

/* interface IIlsFilter */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IIlsFilter __RPC_FAR *LPILS_FILTER;

// Composite filter operations
// Simple filter operations

EXTERN_C const IID IID_IIlsFilter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC98D-20E6-11d0-8796-444553540000")
    IIlsFilter : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddSubFilter( 
            /* [in] */ IIlsFilter __RPC_FAR *pFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSubFilter( 
            /* [in] */ IIlsFilter __RPC_FAR *pFilter) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCount( 
            /* [out] */ ULONG __RPC_FAR *pcElements) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStandardAttributeName( 
            /* [in] */ ILS_STD_ATTR_NAME usrStdAttr) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetExtendedAttributeName( 
            /* [in] */ BSTR bstrAnyAttrName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetAttributeValue( 
            /* [in] */ BSTR bstrAttrValue) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IIlsFilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IIlsFilter __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IIlsFilter __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *AddSubFilter )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *RemoveSubFilter )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ IIlsFilter __RPC_FAR *pFilter);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetCount )( 
            IIlsFilter __RPC_FAR * This,
            /* [out] */ ULONG __RPC_FAR *pcElements);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetStandardAttributeName )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ ILS_STD_ATTR_NAME usrStdAttr);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetExtendedAttributeName )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ BSTR bstrAnyAttrName);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetAttributeValue )( 
            IIlsFilter __RPC_FAR * This,
            /* [in] */ BSTR bstrAttrValue);
        
        END_INTERFACE
    } IIlsFilterVtbl;

    interface IIlsFilter
    {
        CONST_VTBL struct IIlsFilterVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IIlsFilter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IIlsFilter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IIlsFilter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IIlsFilter_AddSubFilter(This,pFilter)	\
    (This)->lpVtbl -> AddSubFilter(This,pFilter)

#define IIlsFilter_RemoveSubFilter(This,pFilter)	\
    (This)->lpVtbl -> RemoveSubFilter(This,pFilter)

#define IIlsFilter_GetCount(This,pcElements)	\
    (This)->lpVtbl -> GetCount(This,pcElements)

#define IIlsFilter_SetStandardAttributeName(This,usrStdAttr)	\
    (This)->lpVtbl -> SetStandardAttributeName(This,usrStdAttr)

#define IIlsFilter_SetExtendedAttributeName(This,bstrAnyAttrName)	\
    (This)->lpVtbl -> SetExtendedAttributeName(This,bstrAnyAttrName)

#define IIlsFilter_SetAttributeValue(This,bstrAttrValue)	\
    (This)->lpVtbl -> SetAttributeValue(This,bstrAttrValue)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IIlsFilter_AddSubFilter_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [in] */ IIlsFilter __RPC_FAR *pFilter);


void __RPC_STUB IIlsFilter_AddSubFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsFilter_RemoveSubFilter_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [in] */ IIlsFilter __RPC_FAR *pFilter);


void __RPC_STUB IIlsFilter_RemoveSubFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsFilter_GetCount_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [out] */ ULONG __RPC_FAR *pcElements);


void __RPC_STUB IIlsFilter_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsFilter_SetStandardAttributeName_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [in] */ ILS_STD_ATTR_NAME usrStdAttr);


void __RPC_STUB IIlsFilter_SetStandardAttributeName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsFilter_SetExtendedAttributeName_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [in] */ BSTR bstrAnyAttrName);


void __RPC_STUB IIlsFilter_SetExtendedAttributeName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IIlsFilter_SetAttributeValue_Proxy( 
    IIlsFilter __RPC_FAR * This,
    /* [in] */ BSTR bstrAttrValue);


void __RPC_STUB IIlsFilter_SetAttributeValue_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IIlsFilter_INTERFACE_DEFINED__ */


#ifndef __IEnumIlsProtocols_INTERFACE_DEFINED__
#define __IEnumIlsProtocols_INTERFACE_DEFINED__

/* interface IEnumIlsProtocols */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IEnumIlsProtocols __RPC_FAR *LPENUM_ILS_PROTOCOLS;


EXTERN_C const IID IID_IEnumIlsProtocols;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC98E-20E6-11d0-8796-444553540000")
    IEnumIlsProtocols : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cProtocols,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *rgpProtocol,
            /* [out] */ ULONG __RPC_FAR *pcFetched) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cProtocols) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IEnumIlsProtocolsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IEnumIlsProtocols __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IEnumIlsProtocols __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IEnumIlsProtocols __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
            IEnumIlsProtocols __RPC_FAR * This,
            /* [in] */ ULONG cProtocols,
            /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *rgpProtocol,
            /* [out] */ ULONG __RPC_FAR *pcFetched);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
            IEnumIlsProtocols __RPC_FAR * This,
            /* [in] */ ULONG cProtocols);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
            IEnumIlsProtocols __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
            IEnumIlsProtocols __RPC_FAR * This,
            /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol);
        
        END_INTERFACE
    } IEnumIlsProtocolsVtbl;

    interface IEnumIlsProtocols
    {
        CONST_VTBL struct IEnumIlsProtocolsVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IEnumIlsProtocols_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IEnumIlsProtocols_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IEnumIlsProtocols_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IEnumIlsProtocols_Next(This,cProtocols,rgpProtocol,pcFetched)	\
    (This)->lpVtbl -> Next(This,cProtocols,rgpProtocol,pcFetched)

#define IEnumIlsProtocols_Skip(This,cProtocols)	\
    (This)->lpVtbl -> Skip(This,cProtocols)

#define IEnumIlsProtocols_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IEnumIlsProtocols_Clone(This,ppEnumProtocol)	\
    (This)->lpVtbl -> Clone(This,ppEnumProtocol)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IEnumIlsProtocols_Next_Proxy( 
    IEnumIlsProtocols __RPC_FAR * This,
    /* [in] */ ULONG cProtocols,
    /* [out] */ IIlsProtocol __RPC_FAR *__RPC_FAR *rgpProtocol,
    /* [out] */ ULONG __RPC_FAR *pcFetched);


void __RPC_STUB IEnumIlsProtocols_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsProtocols_Skip_Proxy( 
    IEnumIlsProtocols __RPC_FAR * This,
    /* [in] */ ULONG cProtocols);


void __RPC_STUB IEnumIlsProtocols_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsProtocols_Reset_Proxy( 
    IEnumIlsProtocols __RPC_FAR * This);


void __RPC_STUB IEnumIlsProtocols_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsProtocols_Clone_Proxy( 
    IEnumIlsProtocols __RPC_FAR * This,
    /* [out] */ IEnumIlsProtocols __RPC_FAR *__RPC_FAR *ppEnumProtocol);


void __RPC_STUB IEnumIlsProtocols_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IEnumIlsProtocols_INTERFACE_DEFINED__ */


#ifndef __IEnumIlsUsers_INTERFACE_DEFINED__
#define __IEnumIlsUsers_INTERFACE_DEFINED__

/* interface IEnumIlsUsers */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IEnumIlsUsers __RPC_FAR *LPENUM_ILS_USERS;


EXTERN_C const IID IID_IEnumIlsUsers;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC98F-20E6-11d0-8796-444553540000")
    IEnumIlsUsers : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cUsers,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *rgpUsers,
            /* [out] */ ULONG __RPC_FAR *pcFetched) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cUsers) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUser) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IEnumIlsUsersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IEnumIlsUsers __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IEnumIlsUsers __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IEnumIlsUsers __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
            IEnumIlsUsers __RPC_FAR * This,
            /* [in] */ ULONG cUsers,
            /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *rgpUsers,
            /* [out] */ ULONG __RPC_FAR *pcFetched);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
            IEnumIlsUsers __RPC_FAR * This,
            /* [in] */ ULONG cUsers);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
            IEnumIlsUsers __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
            IEnumIlsUsers __RPC_FAR * This,
            /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUser);
        
        END_INTERFACE
    } IEnumIlsUsersVtbl;

    interface IEnumIlsUsers
    {
        CONST_VTBL struct IEnumIlsUsersVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IEnumIlsUsers_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IEnumIlsUsers_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IEnumIlsUsers_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IEnumIlsUsers_Next(This,cUsers,rgpUsers,pcFetched)	\
    (This)->lpVtbl -> Next(This,cUsers,rgpUsers,pcFetched)

#define IEnumIlsUsers_Skip(This,cUsers)	\
    (This)->lpVtbl -> Skip(This,cUsers)

#define IEnumIlsUsers_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IEnumIlsUsers_Clone(This,ppEnumUser)	\
    (This)->lpVtbl -> Clone(This,ppEnumUser)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IEnumIlsUsers_Next_Proxy( 
    IEnumIlsUsers __RPC_FAR * This,
    /* [in] */ ULONG cUsers,
    /* [out] */ IIlsUser __RPC_FAR *__RPC_FAR *rgpUsers,
    /* [out] */ ULONG __RPC_FAR *pcFetched);


void __RPC_STUB IEnumIlsUsers_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsUsers_Skip_Proxy( 
    IEnumIlsUsers __RPC_FAR * This,
    /* [in] */ ULONG cUsers);


void __RPC_STUB IEnumIlsUsers_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsUsers_Reset_Proxy( 
    IEnumIlsUsers __RPC_FAR * This);


void __RPC_STUB IEnumIlsUsers_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsUsers_Clone_Proxy( 
    IEnumIlsUsers __RPC_FAR * This,
    /* [out] */ IEnumIlsUsers __RPC_FAR *__RPC_FAR *ppEnumUser);


void __RPC_STUB IEnumIlsUsers_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IEnumIlsUsers_INTERFACE_DEFINED__ */


#ifndef __IEnumIlsNames_INTERFACE_DEFINED__
#define __IEnumIlsNames_INTERFACE_DEFINED__

/* interface IEnumIlsNames */
/* [unique][uuid][object] */ 

typedef /* [unique] */ IEnumIlsNames __RPC_FAR *LPENUM_ILS_NAMES;


EXTERN_C const IID IID_IEnumIlsNames;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("440CC990-20E6-11d0-8796-444553540000")
    IEnumIlsNames : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cNames,
            /* [out] */ BSTR __RPC_FAR *rgpbstrName,
            /* [out] */ ULONG __RPC_FAR *pcFetched) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cNames) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IEnumIlsNamesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
            IEnumIlsNames __RPC_FAR * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
            IEnumIlsNames __RPC_FAR * This);
        
        ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
            IEnumIlsNames __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Next )( 
            IEnumIlsNames __RPC_FAR * This,
            /* [in] */ ULONG cNames,
            /* [out] */ BSTR __RPC_FAR *rgpbstrName,
            /* [out] */ ULONG __RPC_FAR *pcFetched);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Skip )( 
            IEnumIlsNames __RPC_FAR * This,
            /* [in] */ ULONG cNames);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Reset )( 
            IEnumIlsNames __RPC_FAR * This);
        
        HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Clone )( 
            IEnumIlsNames __RPC_FAR * This,
            /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumName);
        
        END_INTERFACE
    } IEnumIlsNamesVtbl;

    interface IEnumIlsNames
    {
        CONST_VTBL struct IEnumIlsNamesVtbl __RPC_FAR *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IEnumIlsNames_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IEnumIlsNames_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IEnumIlsNames_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IEnumIlsNames_Next(This,cNames,rgpbstrName,pcFetched)	\
    (This)->lpVtbl -> Next(This,cNames,rgpbstrName,pcFetched)

#define IEnumIlsNames_Skip(This,cNames)	\
    (This)->lpVtbl -> Skip(This,cNames)

#define IEnumIlsNames_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IEnumIlsNames_Clone(This,ppEnumName)	\
    (This)->lpVtbl -> Clone(This,ppEnumName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IEnumIlsNames_Next_Proxy( 
    IEnumIlsNames __RPC_FAR * This,
    /* [in] */ ULONG cNames,
    /* [out] */ BSTR __RPC_FAR *rgpbstrName,
    /* [out] */ ULONG __RPC_FAR *pcFetched);


void __RPC_STUB IEnumIlsNames_Next_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsNames_Skip_Proxy( 
    IEnumIlsNames __RPC_FAR * This,
    /* [in] */ ULONG cNames);


void __RPC_STUB IEnumIlsNames_Skip_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsNames_Reset_Proxy( 
    IEnumIlsNames __RPC_FAR * This);


void __RPC_STUB IEnumIlsNames_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IEnumIlsNames_Clone_Proxy( 
    IEnumIlsNames __RPC_FAR * This,
    /* [out] */ IEnumIlsNames __RPC_FAR *__RPC_FAR *ppEnumName);


void __RPC_STUB IEnumIlsNames_Clone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IEnumIlsNames_INTERFACE_DEFINED__ */


/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long __RPC_FAR *, unsigned long            , BSTR __RPC_FAR * ); 
unsigned char __RPC_FAR * __RPC_USER  BSTR_UserMarshal(  unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); 
unsigned char __RPC_FAR * __RPC_USER  BSTR_UserUnmarshal(unsigned long __RPC_FAR *, unsigned char __RPC_FAR *, BSTR __RPC_FAR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long __RPC_FAR *, BSTR __RPC_FAR * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


#pragma option pop /*P_O_Pop*/
