

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


 /* File created by MIDL compiler version 8.01.0622 */
/* @@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__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#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 __sdoias_h__
#define __sdoias_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __ISdoMachine_FWD_DEFINED__
#define __ISdoMachine_FWD_DEFINED__
typedef interface ISdoMachine ISdoMachine;

#endif 	/* __ISdoMachine_FWD_DEFINED__ */


#ifndef __ISdoMachine2_FWD_DEFINED__
#define __ISdoMachine2_FWD_DEFINED__
typedef interface ISdoMachine2 ISdoMachine2;

#endif 	/* __ISdoMachine2_FWD_DEFINED__ */


#ifndef __ISdoServiceControl_FWD_DEFINED__
#define __ISdoServiceControl_FWD_DEFINED__
typedef interface ISdoServiceControl ISdoServiceControl;

#endif 	/* __ISdoServiceControl_FWD_DEFINED__ */


#ifndef __ISdo_FWD_DEFINED__
#define __ISdo_FWD_DEFINED__
typedef interface ISdo ISdo;

#endif 	/* __ISdo_FWD_DEFINED__ */


#ifndef __ISdoCollection_FWD_DEFINED__
#define __ISdoCollection_FWD_DEFINED__
typedef interface ISdoCollection ISdoCollection;

#endif 	/* __ISdoCollection_FWD_DEFINED__ */


#ifndef __ITemplateSdo_FWD_DEFINED__
#define __ITemplateSdo_FWD_DEFINED__
typedef interface ITemplateSdo ITemplateSdo;

#endif 	/* __ITemplateSdo_FWD_DEFINED__ */


#ifndef __ISdoDictionaryOld_FWD_DEFINED__
#define __ISdoDictionaryOld_FWD_DEFINED__
typedef interface ISdoDictionaryOld ISdoDictionaryOld;

#endif 	/* __ISdoDictionaryOld_FWD_DEFINED__ */


#ifndef __SdoMachine_FWD_DEFINED__
#define __SdoMachine_FWD_DEFINED__

#ifdef __cplusplus
typedef class SdoMachine SdoMachine;
#else
typedef struct SdoMachine SdoMachine;
#endif /* __cplusplus */

#endif 	/* __SdoMachine_FWD_DEFINED__ */


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

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_sdoias_0000_0000 */
/* [local] */ 

#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)


extern RPC_IF_HANDLE __MIDL_itf_sdoias_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_sdoias_0000_0000_v0_0_s_ifspec;


#ifndef __SDOIASLib_LIBRARY_DEFINED__
#define __SDOIASLib_LIBRARY_DEFINED__

/* library SDOIASLib */
/* [helpstring][version][uuid] */ 

typedef /* [public] */ 
enum _ATTRIBUTEID
    {
        ATTRIBUTE_UNDEFINED	= 0,
        ATTRIBUTE_MIN_VALUE	= 1,
        RADIUS_ATTRIBUTE_USER_NAME	= ATTRIBUTE_MIN_VALUE,
        RADIUS_ATTRIBUTE_USER_PASSWORD	= ( RADIUS_ATTRIBUTE_USER_NAME + 1 ) ,
        RADIUS_ATTRIBUTE_CHAP_PASSWORD	= ( RADIUS_ATTRIBUTE_USER_PASSWORD + 1 ) ,
        RADIUS_ATTRIBUTE_NAS_IP_ADDRESS	= ( RADIUS_ATTRIBUTE_CHAP_PASSWORD + 1 ) ,
        RADIUS_ATTRIBUTE_NAS_PORT	= ( RADIUS_ATTRIBUTE_NAS_IP_ADDRESS + 1 ) ,
        RADIUS_ATTRIBUTE_SERVICE_TYPE	= ( RADIUS_ATTRIBUTE_NAS_PORT + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_PROTOCOL	= ( RADIUS_ATTRIBUTE_SERVICE_TYPE + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IP_ADDRESS	= ( RADIUS_ATTRIBUTE_FRAMED_PROTOCOL + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IP_NETMASK	= ( RADIUS_ATTRIBUTE_FRAMED_IP_ADDRESS + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_ROUTING	= 10,
        RADIUS_ATTRIBUTE_FILTER_ID	= ( RADIUS_ATTRIBUTE_FRAMED_ROUTING + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_MTU	= ( RADIUS_ATTRIBUTE_FILTER_ID + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_COMPRESSION	= ( RADIUS_ATTRIBUTE_FRAMED_MTU + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_IP_HOST	= ( RADIUS_ATTRIBUTE_FRAMED_COMPRESSION + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_SERVICE	= ( RADIUS_ATTRIBUTE_LOGIN_IP_HOST + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_TCP_PORT	= ( RADIUS_ATTRIBUTE_LOGIN_SERVICE + 1 ) ,
        RADIUS_ATTRIBUTE_UNASSIGNED1	= ( RADIUS_ATTRIBUTE_LOGIN_TCP_PORT + 1 ) ,
        RADIUS_ATTRIBUTE_REPLY_MESSAGE	= ( RADIUS_ATTRIBUTE_UNASSIGNED1 + 1 ) ,
        RADIUS_ATTRIBUTE_CALLBACK_NUMBER	= ( RADIUS_ATTRIBUTE_REPLY_MESSAGE + 1 ) ,
        RADIUS_ATTRIBUTE_CALLBACK_ID	= 20,
        RADIUS_ATTRIBUTE_UNASSIGNED2	= ( RADIUS_ATTRIBUTE_CALLBACK_ID + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_ROUTE	= ( RADIUS_ATTRIBUTE_UNASSIGNED2 + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IPX_NETWORK	= ( RADIUS_ATTRIBUTE_FRAMED_ROUTE + 1 ) ,
        RADIUS_ATTRIBUTE_STATE	= ( RADIUS_ATTRIBUTE_FRAMED_IPX_NETWORK + 1 ) ,
        RADIUS_ATTRIBUTE_CLASS	= ( RADIUS_ATTRIBUTE_STATE + 1 ) ,
        RADIUS_ATTRIBUTE_VENDOR_SPECIFIC	= ( RADIUS_ATTRIBUTE_CLASS + 1 ) ,
        RADIUS_ATTRIBUTE_SESSION_TIMEOUT	= ( RADIUS_ATTRIBUTE_VENDOR_SPECIFIC + 1 ) ,
        RADIUS_ATTRIBUTE_IDLE_TIMEOUT	= ( RADIUS_ATTRIBUTE_SESSION_TIMEOUT + 1 ) ,
        RADIUS_ATTRIBUTE_TERMINATION_ACTION	= ( RADIUS_ATTRIBUTE_IDLE_TIMEOUT + 1 ) ,
        RADIUS_ATTRIBUTE_CALLED_STATION_ID	= 30,
        RADIUS_ATTRIBUTE_CALLING_STATION_ID	= ( RADIUS_ATTRIBUTE_CALLED_STATION_ID + 1 ) ,
        RADIUS_ATTRIBUTE_NAS_IDENTIFIER	= ( RADIUS_ATTRIBUTE_CALLING_STATION_ID + 1 ) ,
        RADIUS_ATTRIBUTE_PROXY_STATE	= ( RADIUS_ATTRIBUTE_NAS_IDENTIFIER + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_LAT_SERVICE	= ( RADIUS_ATTRIBUTE_PROXY_STATE + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_LAT_NODE	= ( RADIUS_ATTRIBUTE_LOGIN_LAT_SERVICE + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_LAT_GROUP	= ( RADIUS_ATTRIBUTE_LOGIN_LAT_NODE + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_APPLETALK_LINK	= ( RADIUS_ATTRIBUTE_LOGIN_LAT_GROUP + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_APPLETALK_NET	= ( RADIUS_ATTRIBUTE_FRAMED_APPLETALK_LINK + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_APPLETALK_ZONE	= ( RADIUS_ATTRIBUTE_FRAMED_APPLETALK_NET + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_STATUS_TYPE	= 40,
        RADIUS_ATTRIBUTE_ACCT_DELAY_TIME	= ( RADIUS_ATTRIBUTE_ACCT_STATUS_TYPE + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_INPUT_OCTETS	= ( RADIUS_ATTRIBUTE_ACCT_DELAY_TIME + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_OUTPUT_OCTETS	= ( RADIUS_ATTRIBUTE_ACCT_INPUT_OCTETS + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_SESSION_ID	= ( RADIUS_ATTRIBUTE_ACCT_OUTPUT_OCTETS + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_AUTHENTIC	= ( RADIUS_ATTRIBUTE_ACCT_SESSION_ID + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_SESSION_TIME	= ( RADIUS_ATTRIBUTE_ACCT_AUTHENTIC + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_INPUT_PACKETS	= ( RADIUS_ATTRIBUTE_ACCT_SESSION_TIME + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_OUTPUT_PACKETS	= ( RADIUS_ATTRIBUTE_ACCT_INPUT_PACKETS + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_TERMINATE_CAUSE	= ( RADIUS_ATTRIBUTE_ACCT_OUTPUT_PACKETS + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_MULTI_SSN_ID	= 50,
        RADIUS_ATTRIBUTE_ACCT_LINK_COUNT	= 51,
        RADIUS_ATTRIBUTE_CHAP_CHALLENGE	= 60,
        RADIUS_ATTRIBUTE_NAS_PORT_TYPE	= ( RADIUS_ATTRIBUTE_CHAP_CHALLENGE + 1 ) ,
        RADIUS_ATTRIBUTE_PORT_LIMIT	= ( RADIUS_ATTRIBUTE_NAS_PORT_TYPE + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_LAT_PORT	= ( RADIUS_ATTRIBUTE_PORT_LIMIT + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_TYPE	= ( RADIUS_ATTRIBUTE_LOGIN_LAT_PORT + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_MEDIUM_TYPE	= ( RADIUS_ATTRIBUTE_TUNNEL_TYPE + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPT	= ( RADIUS_ATTRIBUTE_TUNNEL_MEDIUM_TYPE + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_SERVER_ENDPT	= ( RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPT + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_TUNNEL_CONN	= ( RADIUS_ATTRIBUTE_TUNNEL_SERVER_ENDPT + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_PASSWORD	= ( RADIUS_ATTRIBUTE_ACCT_TUNNEL_CONN + 1 ) ,
        RADIUS_ATTRIBUTE_ARAP_PASSWORD	= 70,
        RADIUS_ATTRIBUTE_ARAP_FEATURES	= ( RADIUS_ATTRIBUTE_ARAP_PASSWORD + 1 ) ,
        RADIUS_ATTRIBUTE_ARAP_ZONE_ACCESS	= ( RADIUS_ATTRIBUTE_ARAP_FEATURES + 1 ) ,
        RADIUS_ATTRIBUTE_ARAP_SECURITY	= ( RADIUS_ATTRIBUTE_ARAP_ZONE_ACCESS + 1 ) ,
        RADIUS_ATTRIBUTE_ARAP_SECURITY_DATA	= ( RADIUS_ATTRIBUTE_ARAP_SECURITY + 1 ) ,
        RADIUS_ATTRIBUTE_PASSWORD_RETRY	= ( RADIUS_ATTRIBUTE_ARAP_SECURITY_DATA + 1 ) ,
        RADIUS_ATTRIBUTE_PROMPT	= 76,
        RADIUS_ATTRIBUTE_CONNECT_INFO	= ( RADIUS_ATTRIBUTE_PROMPT + 1 ) ,
        RADIUS_ATTRIBUTE_CONFIGURATION_TOKEN	= ( RADIUS_ATTRIBUTE_CONNECT_INFO + 1 ) ,
        RADIUS_ATTRIBUTE_EAP_MESSAGE	= ( RADIUS_ATTRIBUTE_CONFIGURATION_TOKEN + 1 ) ,
        RADIUS_ATTRIBUTE_SIGNATURE	= 80,
        RADIUS_ATTRIBUTE_TUNNEL_PVT_GROUP_ID	= ( RADIUS_ATTRIBUTE_SIGNATURE + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_ASSIGNMENT_ID	= ( RADIUS_ATTRIBUTE_TUNNEL_PVT_GROUP_ID + 1 ) ,
        RADIUS_ATTRIBUTE_TUNNEL_PREFERENCE	= ( RADIUS_ATTRIBUTE_TUNNEL_ASSIGNMENT_ID + 1 ) ,
        RADIUS_ATTRIBUTE_ARAP_CHALLENGE_RESPONSE	= ( RADIUS_ATTRIBUTE_TUNNEL_PREFERENCE + 1 ) ,
        RADIUS_ATTRIBUTE_ACCT_INTERIM_INTERVAL	= 85,
        RADIUS_ATTRIBUTE_NAS_IPv6_ADDRESS	= 95,
        RADIUS_ATTRIBUTE_FRAMED_INTERFACE_ID	= ( RADIUS_ATTRIBUTE_NAS_IPv6_ADDRESS + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IPv6_PREFIX	= ( RADIUS_ATTRIBUTE_FRAMED_INTERFACE_ID + 1 ) ,
        RADIUS_ATTRIBUTE_LOGIN_IPv6_HOST	= ( RADIUS_ATTRIBUTE_FRAMED_IPv6_PREFIX + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IPv6_ROUTE	= ( RADIUS_ATTRIBUTE_LOGIN_IPv6_HOST + 1 ) ,
        RADIUS_ATTRIBUTE_FRAMED_IPv6_POOL	= 100,
        IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IP_ADDRESS	= 0x1000,
        IAS_ATTRIBUTE_SAVED_RADIUS_CALLBACK_NUMBER	= ( IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IP_ADDRESS + 1 ) ,
        IAS_ATTRIBUTE_NP_CALLING_STATION_ID	= ( IAS_ATTRIBUTE_SAVED_RADIUS_CALLBACK_NUMBER + 1 ) ,
        IAS_ATTRIBUTE_SAVED_NP_CALLING_STATION_ID	= ( IAS_ATTRIBUTE_NP_CALLING_STATION_ID + 1 ) ,
        IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_ROUTE	= ( IAS_ATTRIBUTE_SAVED_NP_CALLING_STATION_ID + 1 ) ,
        IAS_ATTRIBUTE_IGNORE_USER_DIALIN_PROPERTIES	= ( IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_ROUTE + 1 ) ,
        IAS_ATTRIBUTE_NP_TIME_OF_DAY	= ( IAS_ATTRIBUTE_IGNORE_USER_DIALIN_PROPERTIES + 1 ) ,
        IAS_ATTRIBUTE_NP_CALLED_STATION_ID	= ( IAS_ATTRIBUTE_NP_TIME_OF_DAY + 1 ) ,
        IAS_ATTRIBUTE_NP_ALLOWED_PORT_TYPES	= 0x1008,
        IAS_ATTRIBUTE_NP_AUTHENTICATION_TYPE	= ( IAS_ATTRIBUTE_NP_ALLOWED_PORT_TYPES + 1 ) ,
        IAS_ATTRIBUTE_NP_ALLOWED_EAP_TYPE	= ( IAS_ATTRIBUTE_NP_AUTHENTICATION_TYPE + 1 ) ,
        IAS_ATTRIBUTE_SHARED_SECRET	= ( IAS_ATTRIBUTE_NP_ALLOWED_EAP_TYPE + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_IP_ADDRESS	= ( IAS_ATTRIBUTE_SHARED_SECRET + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_PACKET_HEADER	= ( IAS_ATTRIBUTE_CLIENT_IP_ADDRESS + 1 ) ,
        IAS_ATTRIBUTE_TOKEN_GROUPS	= ( IAS_ATTRIBUTE_CLIENT_PACKET_HEADER + 1 ) ,
        IAS_ATTRIBUTE_ALLOW_DIALIN	= ( IAS_ATTRIBUTE_TOKEN_GROUPS + 1 ) ,
        IAS_ATTRIBUTE_REQUEST_ID	= 0x1010,
        IAS_ATTRIBUTE_MANIPULATION_TARGET	= ( IAS_ATTRIBUTE_REQUEST_ID + 1 ) ,
        IAS_ATTRIBUTE_MANIPULATION_RULE	= ( IAS_ATTRIBUTE_MANIPULATION_TARGET + 1 ) ,
        IAS_ATTRIBUTE_ORIGINAL_USER_NAME	= ( IAS_ATTRIBUTE_MANIPULATION_RULE + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_VENDOR_TYPE	= ( IAS_ATTRIBUTE_ORIGINAL_USER_NAME + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_UDP_PORT	= ( IAS_ATTRIBUTE_CLIENT_VENDOR_TYPE + 1 ) ,
        MS_ATTRIBUTE_CHAP_CHALLENGE	= ( IAS_ATTRIBUTE_CLIENT_UDP_PORT + 1 ) ,
        MS_ATTRIBUTE_CHAP_RESPONSE	= ( MS_ATTRIBUTE_CHAP_CHALLENGE + 1 ) ,
        MS_ATTRIBUTE_CHAP_DOMAIN	= 0x1018,
        MS_ATTRIBUTE_CHAP_ERROR	= ( MS_ATTRIBUTE_CHAP_DOMAIN + 1 ) ,
        MS_ATTRIBUTE_CHAP_CPW1	= ( MS_ATTRIBUTE_CHAP_ERROR + 1 ) ,
        MS_ATTRIBUTE_CHAP_CPW2	= ( MS_ATTRIBUTE_CHAP_CPW1 + 1 ) ,
        MS_ATTRIBUTE_CHAP_LM_ENC_PW	= ( MS_ATTRIBUTE_CHAP_CPW2 + 1 ) ,
        MS_ATTRIBUTE_CHAP_NT_ENC_PW	= ( MS_ATTRIBUTE_CHAP_LM_ENC_PW + 1 ) ,
        MS_ATTRIBUTE_CHAP_MPPE_KEYS	= ( MS_ATTRIBUTE_CHAP_NT_ENC_PW + 1 ) ,
        IAS_ATTRIBUTE_AUTHENTICATION_TYPE	= ( MS_ATTRIBUTE_CHAP_MPPE_KEYS + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_NAME	= 0x1020,
        IAS_ATTRIBUTE_NT4_ACCOUNT_NAME	= ( IAS_ATTRIBUTE_CLIENT_NAME + 1 ) ,
        IAS_ATTRIBUTE_FULLY_QUALIFIED_USER_NAME	= ( IAS_ATTRIBUTE_NT4_ACCOUNT_NAME + 1 ) ,
        IAS_ATTRIBUTE_NTGROUPS	= ( IAS_ATTRIBUTE_FULLY_QUALIFIED_USER_NAME + 1 ) ,
        IAS_ATTRIBUTE_EAP_FRIENDLY_NAME	= ( IAS_ATTRIBUTE_NTGROUPS + 1 ) ,
        IAS_ATTRIBUTE_AUTH_PROVIDER_TYPE	= ( IAS_ATTRIBUTE_EAP_FRIENDLY_NAME + 1 ) ,
        MS_ATTRIBUTE_ACCT_AUTH_TYPE	= ( IAS_ATTRIBUTE_AUTH_PROVIDER_TYPE + 1 ) ,
        MS_ATTRIBUTE_ACCT_EAP_TYPE	= ( MS_ATTRIBUTE_ACCT_AUTH_TYPE + 1 ) ,
        IAS_ATTRIBUTE_PACKET_TYPE	= 0x1028,
        IAS_ATTRIBUTE_AUTH_PROVIDER_NAME	= ( IAS_ATTRIBUTE_PACKET_TYPE + 1 ) ,
        IAS_ATTRIBUTE_ACCT_PROVIDER_TYPE	= ( IAS_ATTRIBUTE_AUTH_PROVIDER_NAME + 1 ) ,
        IAS_ATTRIBUTE_ACCT_PROVIDER_NAME	= ( IAS_ATTRIBUTE_ACCT_PROVIDER_TYPE + 1 ) ,
        MS_ATTRIBUTE_MPPE_SEND_KEY	= ( IAS_ATTRIBUTE_ACCT_PROVIDER_NAME + 1 ) ,
        MS_ATTRIBUTE_MPPE_RECV_KEY	= ( MS_ATTRIBUTE_MPPE_SEND_KEY + 1 ) ,
        IAS_ATTRIBUTE_REASON_CODE	= ( MS_ATTRIBUTE_MPPE_RECV_KEY + 1 ) ,
        MS_ATTRIBUTE_FILTER	= ( IAS_ATTRIBUTE_REASON_CODE + 1 ) ,
        MS_ATTRIBUTE_CHAP2_RESPONSE	= 0x1030,
        MS_ATTRIBUTE_CHAP2_SUCCESS	= ( MS_ATTRIBUTE_CHAP2_RESPONSE + 1 ) ,
        MS_ATTRIBUTE_CHAP2_CPW	= ( MS_ATTRIBUTE_CHAP2_SUCCESS + 1 ) ,
        MS_ATTRIBUTE_RAS_VENDOR	= ( MS_ATTRIBUTE_CHAP2_CPW + 1 ) ,
        MS_ATTRIBUTE_RAS_VERSION	= ( MS_ATTRIBUTE_RAS_VENDOR + 1 ) ,
        IAS_ATTRIBUTE_NP_NAME	= ( MS_ATTRIBUTE_RAS_VERSION + 1 ) ,
        MS_ATTRIBUTE_PRIMARY_DNS_SERVER	= ( IAS_ATTRIBUTE_NP_NAME + 1 ) ,
        MS_ATTRIBUTE_SECONDARY_DNS_SERVER	= ( MS_ATTRIBUTE_PRIMARY_DNS_SERVER + 1 ) ,
        MS_ATTRIBUTE_PRIMARY_NBNS_SERVER	= 0x1038,
        MS_ATTRIBUTE_SECONDARY_NBNS_SERVER	= ( MS_ATTRIBUTE_PRIMARY_NBNS_SERVER + 1 ) ,
        IAS_ATTRIBUTE_PROXY_POLICY_NAME	= ( MS_ATTRIBUTE_SECONDARY_NBNS_SERVER + 1 ) ,
        IAS_ATTRIBUTE_PROVIDER_TYPE	= ( IAS_ATTRIBUTE_PROXY_POLICY_NAME + 1 ) ,
        IAS_ATTRIBUTE_PROVIDER_NAME	= ( IAS_ATTRIBUTE_PROVIDER_TYPE + 1 ) ,
        IAS_ATTRIBUTE_REMOTE_SERVER_ADDRESS	= ( IAS_ATTRIBUTE_PROVIDER_NAME + 1 ) ,
        IAS_ATTRIBUTE_GENERATE_CLASS_ATTRIBUTE	= ( IAS_ATTRIBUTE_REMOTE_SERVER_ADDRESS + 1 ) ,
        MS_ATTRIBUTE_RAS_CLIENT_NAME	= ( IAS_ATTRIBUTE_GENERATE_CLASS_ATTRIBUTE + 1 ) ,
        MS_ATTRIBUTE_RAS_CLIENT_VERSION	= 0x1040,
        IAS_ATTRIBUTE_ALLOWED_CERTIFICATE_EKU	= ( MS_ATTRIBUTE_RAS_CLIENT_VERSION + 1 ) ,
        IAS_ATTRIBUTE_EXTENSION_STATE	= ( IAS_ATTRIBUTE_ALLOWED_CERTIFICATE_EKU + 1 ) ,
        IAS_ATTRIBUTE_GENERATE_SESSION_TIMEOUT	= ( IAS_ATTRIBUTE_EXTENSION_STATE + 1 ) ,
        IAS_ATTRIBUTE_SESSION_TIMEOUT	= ( IAS_ATTRIBUTE_GENERATE_SESSION_TIMEOUT + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_IPFILTER	= ( IAS_ATTRIBUTE_SESSION_TIMEOUT + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_SESSION_TIMEOUT	= ( MS_ATTRIBUTE_QUARANTINE_IPFILTER + 1 ) ,
        MS_ATTRIBUTE_USER_SECURITY_IDENTITY	= ( MS_ATTRIBUTE_QUARANTINE_SESSION_TIMEOUT + 1 ) ,
        IAS_ATTRIBUTE_REMOTE_RADIUS_TO_WINDOWS_USER_MAPPING	= 0x1048,
        IAS_ATTRIBUTE_PASSPORT_USER_MAPPING_UPN_SUFFIX	= ( IAS_ATTRIBUTE_REMOTE_RADIUS_TO_WINDOWS_USER_MAPPING + 1 ) ,
        IAS_ATTRIBUTE_TUNNEL_TAG	= ( IAS_ATTRIBUTE_PASSPORT_USER_MAPPING_UPN_SUFFIX + 1 ) ,
        IAS_ATTRIBUTE_NP_PEAPUPFRONT_ENABLED	= ( IAS_ATTRIBUTE_TUNNEL_TAG + 1 ) ,
        IAS_ATTRIBUTE_CERTIFICATE_EKU	= 8097,
        IAS_ATTRIBUTE_EAP_CONFIG	= ( IAS_ATTRIBUTE_CERTIFICATE_EKU + 1 ) ,
        IAS_ATTRIBUTE_PEAP_EMBEDDED_EAP_TYPEID	= ( IAS_ATTRIBUTE_EAP_CONFIG + 1 ) ,
        IAS_ATTRIBUTE_PEAP_FAST_ROAMED_SESSION	= 8100,
        IAS_ATTRIBUTE_EAP_TYPEID	= ( IAS_ATTRIBUTE_PEAP_FAST_ROAMED_SESSION + 1 ) ,
        MS_ATTRIBUTE_EAP_TLV	= ( IAS_ATTRIBUTE_EAP_TYPEID + 1 ) ,
        IAS_ATTRIBUTE_REJECT_REASON_CODE	= ( MS_ATTRIBUTE_EAP_TLV + 1 ) ,
        IAS_ATTRIBUTE_PROXY_EAP_CONFIG	= ( IAS_ATTRIBUTE_REJECT_REASON_CODE + 1 ) ,
        IAS_ATTRIBUTE_EAP_SESSION	= ( IAS_ATTRIBUTE_PROXY_EAP_CONFIG + 1 ) ,
        IAS_ATTRIBUTE_IS_REPLAY	= ( IAS_ATTRIBUTE_EAP_SESSION + 1 ) ,
        IAS_ATTRIBUTE_CLEAR_TEXT_PASSWORD	= ( IAS_ATTRIBUTE_IS_REPLAY + 1 ) ,
        MS_ATTRIBUTE_IDENTITY_TYPE	= ( IAS_ATTRIBUTE_CLEAR_TEXT_PASSWORD + 1 ) ,
        MS_ATTRIBUTE_SERVICE_CLASS	= ( MS_ATTRIBUTE_IDENTITY_TYPE + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_USER_CLASS	= 8110,
        MS_ATTRIBUTE_QUARANTINE_STATE	= ( MS_ATTRIBUTE_QUARANTINE_USER_CLASS + 1 ) ,
        IAS_ATTRIBUTE_OVERRIDE_RAP_AUTH	= ( MS_ATTRIBUTE_QUARANTINE_STATE + 1 ) ,
        IAS_ATTRIBUTE_PEAP_CHANNEL_UP	= ( IAS_ATTRIBUTE_OVERRIDE_RAP_AUTH + 1 ) ,
        IAS_ATTRIBUTE_NAME_MAPPED	= ( IAS_ATTRIBUTE_PEAP_CHANNEL_UP + 1 ) ,
        IAS_ATTRIBUTE_POLICY_ENFORCED	= ( IAS_ATTRIBUTE_NAME_MAPPED + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_NTGROUPS	= ( IAS_ATTRIBUTE_POLICY_ENFORCED + 1 ) ,
        IAS_ATTRIBUTE_USER_NTGROUPS	= ( IAS_ATTRIBUTE_MACHINE_NTGROUPS + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_TOKEN_GROUPS	= ( IAS_ATTRIBUTE_USER_NTGROUPS + 1 ) ,
        IAS_ATTRIBUTE_USER_TOKEN_GROUPS	= ( IAS_ATTRIBUTE_MACHINE_TOKEN_GROUPS + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_GRACE_TIME	= 8120,
        IAS_ATTRIBUTE_QUARANTINE_URL	= ( MS_ATTRIBUTE_QUARANTINE_GRACE_TIME + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS	= ( IAS_ATTRIBUTE_QUARANTINE_URL + 1 ) ,
        MS_ATTRIBUTE_NOT_QUARANTINE_CAPABLE	= ( IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_RESULT	= ( MS_ATTRIBUTE_NOT_QUARANTINE_CAPABLE + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_VALIDATORS	= ( IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_RESULT + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_NAME	= ( IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_VALIDATORS + 1 ) ,
        IAS_ATTRIBUTE_NT4_MACHINE_NAME	= ( IAS_ATTRIBUTE_MACHINE_NAME + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_SESSION_HANDLE	= ( IAS_ATTRIBUTE_NT4_MACHINE_NAME + 1 ) ,
        IAS_ATTRIBUTE_FULLY_QUALIFIED_MACHINE_NAME	= ( IAS_ATTRIBUTE_QUARANTINE_SESSION_HANDLE + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS_CONFIGURATION	= 8130,
        IAS_ATTRIBUTE_CLIENT_QUARANTINE_COMPATIBLE	= ( IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS_CONFIGURATION + 1 ) ,
        MS_ATTRIBUTE_NETWORK_ACCESS_SERVER_TYPE	= ( IAS_ATTRIBUTE_CLIENT_QUARANTINE_COMPATIBLE + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_SESSION_ID	= ( MS_ATTRIBUTE_NETWORK_ACCESS_SERVER_TYPE + 1 ) ,
        MS_ATTRIBUTE_AFW_QUARANTINE_ZONE	= ( IAS_ATTRIBUTE_QUARANTINE_SESSION_ID + 1 ) ,
        MS_ATTRIBUTE_AFW_PROTECTION_LEVEL	= ( MS_ATTRIBUTE_AFW_QUARANTINE_ZONE + 1 ) ,
        IAS_ATTRIBUTE_QUARANTINE_UPDATE_NON_COMPLIANT	= ( MS_ATTRIBUTE_AFW_PROTECTION_LEVEL + 1 ) ,
        IAS_ATTRIBUTE_REQUEST_START_TIME	= ( IAS_ATTRIBUTE_QUARANTINE_UPDATE_NON_COMPLIANT + 1 ) ,
        MS_ATTRIBUTE_MACHINE_NAME	= ( IAS_ATTRIBUTE_REQUEST_START_TIME + 1 ) ,
        IAS_ATTRIBUTE_CLIENT_IPv6_ADDRESS	= ( MS_ATTRIBUTE_MACHINE_NAME + 1 ) ,
        IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_INTERFACE_ID	= 8140,
        IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_PREFIX	= ( IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_INTERFACE_ID + 1 ) ,
        IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_ROUTE	= ( IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_PREFIX + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_GRACE_TIME_CONFIGURATION	= ( IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_ROUTE + 1 ) ,
        MS_ATTRIBUTE_IPv6_FILTER	= 8144,
        MS_ATTRIBUTE_IPV4_REMEDIATION_SERVERS	= ( MS_ATTRIBUTE_IPv6_FILTER + 1 ) ,
        MS_ATTRIBUTE_IPV6_REMEDIATION_SERVERS	= ( MS_ATTRIBUTE_IPV4_REMEDIATION_SERVERS + 1 ) ,
        IAS_ATTRIBUTE_PROXY_RETRY_COUNT	= ( MS_ATTRIBUTE_IPV6_REMEDIATION_SERVERS + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_INVENTORY	= ( IAS_ATTRIBUTE_PROXY_RETRY_COUNT + 1 ) ,
        IAS_ATTRIBUTE_ABSOLUTE_TIME	= ( IAS_ATTRIBUTE_MACHINE_INVENTORY + 1 ) ,
        MS_ATTRIBUTE_QUARANTINE_SOH	= 8150,
        IAS_ATTRIBUTE_EAP_TYPES_CONFIGURED_IN_PROXYPOLICY	= ( MS_ATTRIBUTE_QUARANTINE_SOH + 1 ) ,
        MS_ATTRIBUTE_HCAP_LOCATION_GROUP_NAME	= ( IAS_ATTRIBUTE_EAP_TYPES_CONFIGURED_IN_PROXYPOLICY + 1 ) ,
        MS_ATTRIBUTE_EXTENDED_QUARANTINE_STATE	= ( MS_ATTRIBUTE_HCAP_LOCATION_GROUP_NAME + 1 ) ,
        IAS_ATTRIBUTE_SOH_CARRIER_EAPTLV	= ( MS_ATTRIBUTE_EXTENDED_QUARANTINE_STATE + 1 ) ,
        MS_ATTRIBUTE_HCAP_USER_GROUPS	= 8155,
        IAS_ATTRIBUTE_SAVED_MACHINE_HEALTHCHECK_ONLY	= ( MS_ATTRIBUTE_HCAP_USER_GROUPS + 1 ) ,
        IAS_ATTRIBUTE_POLICY_EVALUATED_SHV	= ( IAS_ATTRIBUTE_SAVED_MACHINE_HEALTHCHECK_ONLY + 1 ) ,
        MS_ATTRIBUTE_RAS_CORRELATION_ID	= ( IAS_ATTRIBUTE_POLICY_EVALUATED_SHV + 1 ) ,
        MS_ATTRIBUTE_HCAP_USER_NAME	= ( MS_ATTRIBUTE_RAS_CORRELATION_ID + 1 ) ,
        IAS_ATTRIBUTE_NT4_HCAP_ACCOUNT_NAME	= 8160,
        IAS_ATTRIBUTE_USER_TOKEN_SID	= ( IAS_ATTRIBUTE_NT4_HCAP_ACCOUNT_NAME + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_TOKEN_SID	= ( IAS_ATTRIBUTE_USER_TOKEN_SID + 1 ) ,
        IAS_ATTRIBUTE_MACHINE_VALIDATED	= ( IAS_ATTRIBUTE_MACHINE_TOKEN_SID + 1 ) ,
        MS_ATTRIBUTE_USER_IPv4_ADDRESS	= ( IAS_ATTRIBUTE_MACHINE_VALIDATED + 1 ) ,
        MS_ATTRIBUTE_USER_IPv6_ADDRESS	= 8165,
        MS_ATTRIBUTE_TSG_DEVICE_REDIRECTION	= ( MS_ATTRIBUTE_USER_IPv6_ADDRESS + 1 ) ,
        IAS_ATTRIBUTE_ACCEPT_REASON_CODE	= ( MS_ATTRIBUTE_TSG_DEVICE_REDIRECTION + 1 ) ,
        IAS_ATTRIBUTE_LOGGING_RESULT	= ( IAS_ATTRIBUTE_ACCEPT_REASON_CODE + 1 ) ,
        IAS_ATTRIBUTE_SERVER_IP_ADDRESS	= ( IAS_ATTRIBUTE_LOGGING_RESULT + 1 ) ,
        IAS_ATTRIBUTE_SERVER_IPv6_ADDRESS	= ( IAS_ATTRIBUTE_SERVER_IP_ADDRESS + 1 ) ,
        IAS_ATTRIBUTE_RADIUS_USERNAME_ENCODING_ASCII	= ( IAS_ATTRIBUTE_SERVER_IPv6_ADDRESS + 1 ) ,
        MS_ATTRIBUTE_RAS_ROUTING_DOMAIN_ID	= 8172,
        RAS_ATTRIBUTE_ENCRYPTION_TYPE	= ( 0xffffffff - 89 ) ,
        RAS_ATTRIBUTE_ENCRYPTION_POLICY	= ( RAS_ATTRIBUTE_ENCRYPTION_TYPE + 1 ) ,
        RAS_ATTRIBUTE_BAP_REQUIRED	= ( RAS_ATTRIBUTE_ENCRYPTION_POLICY + 1 ) ,
        RAS_ATTRIBUTE_BAP_LINE_DOWN_TIME	= ( RAS_ATTRIBUTE_BAP_REQUIRED + 1 ) ,
        RAS_ATTRIBUTE_BAP_LINE_DOWN_LIMIT	= ( RAS_ATTRIBUTE_BAP_LINE_DOWN_TIME + 1 ) 
    } 	ATTRIBUTEID;

typedef /* [public] */ 
enum _NEW_LOG_FILE_FREQUENCY
    {
        IAS_LOGGING_UNLIMITED_SIZE	= 0,
        IAS_LOGGING_DAILY	= ( IAS_LOGGING_UNLIMITED_SIZE + 1 ) ,
        IAS_LOGGING_WEEKLY	= ( IAS_LOGGING_DAILY + 1 ) ,
        IAS_LOGGING_MONTHLY	= ( IAS_LOGGING_WEEKLY + 1 ) ,
        IAS_LOGGING_WHEN_FILE_SIZE_REACHES	= ( IAS_LOGGING_MONTHLY + 1 ) 
    } 	NEW_LOG_FILE_FREQUENCY;

typedef /* [public] */ 
enum _AUTHENTICATION_TYPE
    {
        IAS_AUTH_INVALID	= 0,
        IAS_AUTH_PAP	= ( IAS_AUTH_INVALID + 1 ) ,
        IAS_AUTH_MD5CHAP	= ( IAS_AUTH_PAP + 1 ) ,
        IAS_AUTH_MSCHAP	= ( IAS_AUTH_MD5CHAP + 1 ) ,
        IAS_AUTH_MSCHAP2	= ( IAS_AUTH_MSCHAP + 1 ) ,
        IAS_AUTH_EAP	= ( IAS_AUTH_MSCHAP2 + 1 ) ,
        IAS_AUTH_ARAP	= ( IAS_AUTH_EAP + 1 ) ,
        IAS_AUTH_NONE	= ( IAS_AUTH_ARAP + 1 ) ,
        IAS_AUTH_CUSTOM	= ( IAS_AUTH_NONE + 1 ) ,
        IAS_AUTH_MSCHAP_CPW	= ( IAS_AUTH_CUSTOM + 1 ) ,
        IAS_AUTH_MSCHAP2_CPW	= ( IAS_AUTH_MSCHAP_CPW + 1 ) ,
        IAS_AUTH_PEAP	= ( IAS_AUTH_MSCHAP2_CPW + 1 ) 
    } 	AUTHENTICATION_TYPE;

typedef /* [public] */ 
enum _IDENTITY_TYPE
    {
        IAS_IDENTITY_NO_DEFAULT	= 0x1
    } 	IDENTITY_TYPE;

typedef /* [public] */ 
enum _ATTRIBUTESYNTAX
    {
        IAS_SYNTAX_BOOLEAN	= 1,
        IAS_SYNTAX_INTEGER	= ( IAS_SYNTAX_BOOLEAN + 1 ) ,
        IAS_SYNTAX_ENUMERATOR	= ( IAS_SYNTAX_INTEGER + 1 ) ,
        IAS_SYNTAX_INETADDR	= ( IAS_SYNTAX_ENUMERATOR + 1 ) ,
        IAS_SYNTAX_STRING	= ( IAS_SYNTAX_INETADDR + 1 ) ,
        IAS_SYNTAX_OCTETSTRING	= ( IAS_SYNTAX_STRING + 1 ) ,
        IAS_SYNTAX_UTCTIME	= ( IAS_SYNTAX_OCTETSTRING + 1 ) ,
        IAS_SYNTAX_PROVIDERSPECIFIC	= ( IAS_SYNTAX_UTCTIME + 1 ) ,
        IAS_SYNTAX_UNSIGNEDINTEGER	= ( IAS_SYNTAX_PROVIDERSPECIFIC + 1 ) ,
        IAS_SYNTAX_INETADDR6	= ( IAS_SYNTAX_UNSIGNEDINTEGER + 1 ) 
    } 	ATTRIBUTESYNTAX;

typedef /* [public] */ 
enum _ATTRIBUTERESTRICTIONS
    {
        MULTIVALUED	= 0x1,
        ALLOWEDINPROFILE	= 0x2,
        ALLOWEDINCONDITION	= 0x4,
        ALLOWEDINPROXYPROFILE	= 0x8,
        ALLOWEDINPROXYCONDITION	= 0x10,
        ALLOWEDINVPNDIALUP	= 0x20,
        ALLOWEDIN8021X	= 0x40
    } 	ATTRIBUTERESTRICTIONS;

typedef /* [public] */ 
enum _ATTRIBUTEFILTER
    {
        ATTRIBUTE_FILTER_NONE	= 0,
        ATTRIBUTE_FILTER_VPN_DIALUP	= 0x1,
        ATTRIBUTE_FILTER_IEEE_802_1x	= 0x2
    } 	ATTRIBUTEFILTER;

typedef /* [public] */ 
enum _ATTRIBUTEINFO
    {
        NAME	= 1,
        SYNTAX	= ( NAME + 1 ) ,
        RESTRICTIONS	= ( SYNTAX + 1 ) ,
        DESCRIPTION	= ( RESTRICTIONS + 1 ) ,
        VENDORID	= ( DESCRIPTION + 1 ) ,
        LDAPNAME	= ( VENDORID + 1 ) ,
        VENDORTYPE	= ( LDAPNAME + 1 ) 
    } 	ATTRIBUTEINFO;

typedef /* [public] */ 
enum _IASCOMMONPROPERTIES
    {
        PROPERTY_SDO_RESERVED	= 0,
        PROPERTY_SDO_CLASS	= ( PROPERTY_SDO_RESERVED + 1 ) ,
        PROPERTY_SDO_NAME	= ( PROPERTY_SDO_CLASS + 1 ) ,
        PROPERTY_SDO_DESCRIPTION	= ( PROPERTY_SDO_NAME + 1 ) ,
        PROPERTY_SDO_ID	= ( PROPERTY_SDO_DESCRIPTION + 1 ) ,
        PROPERTY_SDO_DATASTORE_NAME	= ( PROPERTY_SDO_ID + 1 ) ,
        PROPERTY_SDO_TEMPLATE_GUID	= ( PROPERTY_SDO_DATASTORE_NAME + 1 ) ,
        PROPERTY_SDO_OPAQUE	= ( PROPERTY_SDO_TEMPLATE_GUID + 1 ) ,
        PROPERTY_SDO_START	= 0x400
    } 	IASCOMMONPROPERTIES;

typedef /* [public] */ 
enum _USERPROPERTIES
    {
        PROPERTY_USER_CALLING_STATION_ID	= PROPERTY_SDO_START,
        PROPERTY_USER_SAVED_CALLING_STATION_ID	= ( PROPERTY_USER_CALLING_STATION_ID + 1 ) ,
        PROPERTY_USER_RADIUS_CALLBACK_NUMBER	= ( PROPERTY_USER_SAVED_CALLING_STATION_ID + 1 ) ,
        PROPERTY_USER_RADIUS_FRAMED_ROUTE	= ( PROPERTY_USER_RADIUS_CALLBACK_NUMBER + 1 ) ,
        PROPERTY_USER_RADIUS_FRAMED_IP_ADDRESS	= ( PROPERTY_USER_RADIUS_FRAMED_ROUTE + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_CALLBACK_NUMBER	= ( PROPERTY_USER_RADIUS_FRAMED_IP_ADDRESS + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_FRAMED_ROUTE	= ( PROPERTY_USER_SAVED_RADIUS_CALLBACK_NUMBER + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_FRAMED_IP_ADDRESS	= ( PROPERTY_USER_SAVED_RADIUS_FRAMED_ROUTE + 1 ) ,
        PROPERTY_USER_ALLOW_DIALIN	= ( PROPERTY_USER_SAVED_RADIUS_FRAMED_IP_ADDRESS + 1 ) ,
        PROPERTY_USER_SERVICE_TYPE	= ( PROPERTY_USER_ALLOW_DIALIN + 1 ) ,
        PROPERTY_USER_RADIUS_FRAMED_IPV6_ROUTE	= ( PROPERTY_USER_SERVICE_TYPE + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_ROUTE	= ( PROPERTY_USER_RADIUS_FRAMED_IPV6_ROUTE + 1 ) ,
        PROPERTY_USER_RADIUS_FRAMED_INTERFACE_ID	= ( PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_ROUTE + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_FRAMED_INTERFACE_ID	= ( PROPERTY_USER_RADIUS_FRAMED_INTERFACE_ID + 1 ) ,
        PROPERTY_USER_RADIUS_FRAMED_IPV6_PREFIX	= ( PROPERTY_USER_SAVED_RADIUS_FRAMED_INTERFACE_ID + 1 ) ,
        PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_PREFIX	= ( PROPERTY_USER_RADIUS_FRAMED_IPV6_PREFIX + 1 ) 
    } 	USERPROPERTIES;

typedef /* [public] */ 
enum _DICTIONARYPROPERTIES
    {
        PROPERTY_DICTIONARY_ATTRIBUTES_COLLECTION	= PROPERTY_SDO_START,
        PROPERTY_DICTIONARY_LOCATION	= ( PROPERTY_DICTIONARY_ATTRIBUTES_COLLECTION + 1 ) 
    } 	DICTIONARYPROPERTIES;

typedef /* [public] */ 
enum _ATTRIBUTEPROPERTIES
    {
        PROPERTY_ATTRIBUTE_ID	= PROPERTY_SDO_START,
        PROPERTY_ATTRIBUTE_VENDOR_ID	= ( PROPERTY_ATTRIBUTE_ID + 1 ) ,
        PROPERTY_ATTRIBUTE_VENDOR_TYPE_ID	= ( PROPERTY_ATTRIBUTE_VENDOR_ID + 1 ) ,
        PROPERTY_ATTRIBUTE_IS_ENUMERABLE	= ( PROPERTY_ATTRIBUTE_VENDOR_TYPE_ID + 1 ) ,
        PROPERTY_ATTRIBUTE_ENUM_NAMES	= ( PROPERTY_ATTRIBUTE_IS_ENUMERABLE + 1 ) ,
        PROPERTY_ATTRIBUTE_ENUM_VALUES	= ( PROPERTY_ATTRIBUTE_ENUM_NAMES + 1 ) ,
        PROPERTY_ATTRIBUTE_SYNTAX	= ( PROPERTY_ATTRIBUTE_ENUM_VALUES + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_MULTIPLE	= ( PROPERTY_ATTRIBUTE_SYNTAX + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_LOG_ORDINAL	= ( PROPERTY_ATTRIBUTE_ALLOW_MULTIPLE + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_PROFILE	= ( PROPERTY_ATTRIBUTE_ALLOW_LOG_ORDINAL + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_CONDITION	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_PROFILE + 1 ) ,
        PROPERTY_ATTRIBUTE_DISPLAY_NAME	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_CONDITION + 1 ) ,
        PROPERTY_ATTRIBUTE_VALUE	= ( PROPERTY_ATTRIBUTE_DISPLAY_NAME + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_PROFILE	= ( PROPERTY_ATTRIBUTE_VALUE + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_CONDITION	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_PROFILE + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_VPNDIALUP	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_CONDITION + 1 ) ,
        PROPERTY_ATTRIBUTE_ALLOW_IN_8021X	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_VPNDIALUP + 1 ) ,
        PROPERTY_ATTRIBUTE_ENUM_FILTERS	= ( PROPERTY_ATTRIBUTE_ALLOW_IN_8021X + 1 ) 
    } 	ATTRIBUTEPROPERTIES;

typedef /* [public] */ 
enum _IASPROPERTIES
    {
        PROPERTY_IAS_RADIUSSERVERGROUPS_COLLECTION	= PROPERTY_SDO_START,
        PROPERTY_IAS_POLICIES_COLLECTION	= ( PROPERTY_IAS_RADIUSSERVERGROUPS_COLLECTION + 1 ) ,
        PROPERTY_IAS_PROFILES_COLLECTION	= ( PROPERTY_IAS_POLICIES_COLLECTION + 1 ) ,
        PROPERTY_IAS_PROTOCOLS_COLLECTION	= ( PROPERTY_IAS_PROFILES_COLLECTION + 1 ) ,
        PROPERTY_IAS_AUDITORS_COLLECTION	= ( PROPERTY_IAS_PROTOCOLS_COLLECTION + 1 ) ,
        PROPERTY_IAS_REQUESTHANDLERS_COLLECTION	= ( PROPERTY_IAS_AUDITORS_COLLECTION + 1 ) ,
        PROPERTY_IAS_PROXYPOLICIES_COLLECTION	= ( PROPERTY_IAS_REQUESTHANDLERS_COLLECTION + 1 ) ,
        PROPERTY_IAS_PROXYPROFILES_COLLECTION	= ( PROPERTY_IAS_PROXYPOLICIES_COLLECTION + 1 ) ,
        PROPERTY_IAS_REMEDIATIONSERVERGROUPS_COLLECTION	= ( PROPERTY_IAS_PROXYPROFILES_COLLECTION + 1 ) ,
        PROPERTY_IAS_SHVTEMPLATES_COLLECTION	= ( PROPERTY_IAS_REMEDIATIONSERVERGROUPS_COLLECTION + 1 ) 
    } 	IASPROPERTIES;

typedef /* [public] */ 
enum _TEMPLATESPROPERTIES
    {
        PROPERTY_TEMPLATES_POLICIES_TEMPLATES	= PROPERTY_SDO_START,
        PROPERTY_TEMPLATES_PROFILES_TEMPLATES	= ( PROPERTY_TEMPLATES_POLICIES_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_PROFILES_COLLECTION	= ( PROPERTY_TEMPLATES_PROFILES_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_PROXYPOLICIES_TEMPLATES	= ( PROPERTY_TEMPLATES_PROFILES_COLLECTION + 1 ) ,
        PROPERTY_TEMPLATES_PROXYPROFILES_TEMPLATES	= ( PROPERTY_TEMPLATES_PROXYPOLICIES_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_PROXYPROFILES_COLLECTION	= ( PROPERTY_TEMPLATES_PROXYPROFILES_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_REMEDIATIONSERVERGROUPS_TEMPLATES	= ( PROPERTY_TEMPLATES_PROXYPROFILES_COLLECTION + 1 ) ,
        PROPERTY_TEMPLATES_SHVTEMPLATES_TEMPLATES	= ( PROPERTY_TEMPLATES_REMEDIATIONSERVERGROUPS_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_CLIENTS_TEMPLATES	= ( PROPERTY_TEMPLATES_SHVTEMPLATES_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_RADIUSSERVERS_TEMPLATES	= ( PROPERTY_TEMPLATES_CLIENTS_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_SHAREDSECRETS_TEMPLATES	= ( PROPERTY_TEMPLATES_RADIUSSERVERS_TEMPLATES + 1 ) ,
        PROPERTY_TEMPLATES_IPFILTERS_TEMPLATES	= ( PROPERTY_TEMPLATES_SHAREDSECRETS_TEMPLATES + 1 ) 
    } 	TEMPLATESPROPERTIES;

typedef /* [public] */ 
enum _CLIENTPROPERTIES
    {
        PROPERTY_CLIENT_REQUIRE_SIGNATURE	= PROPERTY_SDO_START,
        PROPERTY_CLIENT_UNUSED	= ( PROPERTY_CLIENT_REQUIRE_SIGNATURE + 1 ) ,
        PROPERTY_CLIENT_SHARED_SECRET	= ( PROPERTY_CLIENT_UNUSED + 1 ) ,
        PROPERTY_CLIENT_NAS_MANUFACTURER	= ( PROPERTY_CLIENT_SHARED_SECRET + 1 ) ,
        PROPERTY_CLIENT_ADDRESS	= ( PROPERTY_CLIENT_NAS_MANUFACTURER + 1 ) ,
        PROPERTY_CLIENT_QUARANTINE_COMPATIBLE	= ( PROPERTY_CLIENT_ADDRESS + 1 ) ,
        PROPERTY_CLIENT_ENABLED	= ( PROPERTY_CLIENT_QUARANTINE_COMPATIBLE + 1 ) ,
        PROPERTY_CLIENT_SECRET_TEMPLATE_GUID	= ( PROPERTY_CLIENT_ENABLED + 1 ) 
    } 	CLIENTPROPERTIES;

typedef /* [public] */ 
enum _VENDORPROPERTIES
    {
        PROPERTY_NAS_VENDOR_ID	= PROPERTY_SDO_START
    } 	VENDORPROPERTIES;

typedef /* [public] */ 
enum _PROFILEPROPERTIES
    {
        PROPERTY_PROFILE_ATTRIBUTES_COLLECTION	= PROPERTY_SDO_START,
        PROPERTY_PROFILE_IPFILTER_TEMPLATE_GUID	= ( PROPERTY_PROFILE_ATTRIBUTES_COLLECTION + 1 ) 
    } 	PROFILEPROPERTIES;

typedef /* [public] */ 
enum _POLICYPROPERTIES
    {
        PROPERTY_POLICY_CONSTRAINT	= PROPERTY_SDO_START,
        PROPERTY_POLICY_MERIT	= ( PROPERTY_POLICY_CONSTRAINT + 1 ) ,
        PROPERTY_POLICY_UNUSED0	= ( PROPERTY_POLICY_MERIT + 1 ) ,
        PROPERTY_POLICY_UNUSED1	= ( PROPERTY_POLICY_UNUSED0 + 1 ) ,
        PROPERTY_POLICY_PROFILE_NAME	= ( PROPERTY_POLICY_UNUSED1 + 1 ) ,
        PROPERTY_POLICY_ACTION	= ( PROPERTY_POLICY_PROFILE_NAME + 1 ) ,
        PROPERTY_POLICY_CONDITIONS_COLLECTION	= ( PROPERTY_POLICY_ACTION + 1 ) ,
        PROPERTY_POLICY_ENABLED	= ( PROPERTY_POLICY_CONDITIONS_COLLECTION + 1 ) ,
        PROPERTY_POLICY_SOURCETAG	= ( PROPERTY_POLICY_ENABLED + 1 ) 
    } 	POLICYPROPERTIES;

typedef /* [public] */ 
enum _CONDITIONPROPERTIES
    {
        PROPERTY_CONDITION_TEXT	= PROPERTY_SDO_START
    } 	CONDITIONPROPERTIES;

typedef /* [public] */ 
enum _RADIUSSERVERGROUPPROPERTIES
    {
        PROPERTY_RADIUSSERVERGROUP_SERVERS_COLLECTION	= PROPERTY_SDO_START
    } 	RADIUSSERVERGROUPPROPERTIES;

typedef /* [public] */ 
enum _RADIUSSERVERPROPERTIES
    {
        PROPERTY_RADIUSSERVER_AUTH_PORT	= PROPERTY_SDO_START,
        PROPERTY_RADIUSSERVER_AUTH_SECRET	= ( PROPERTY_RADIUSSERVER_AUTH_PORT + 1 ) ,
        PROPERTY_RADIUSSERVER_ACCT_PORT	= ( PROPERTY_RADIUSSERVER_AUTH_SECRET + 1 ) ,
        PROPERTY_RADIUSSERVER_ACCT_SECRET	= ( PROPERTY_RADIUSSERVER_ACCT_PORT + 1 ) ,
        PROPERTY_RADIUSSERVER_ADDRESS	= ( PROPERTY_RADIUSSERVER_ACCT_SECRET + 1 ) ,
        PROPERTY_RADIUSSERVER_FORWARD_ACCT_ONOFF	= ( PROPERTY_RADIUSSERVER_ADDRESS + 1 ) ,
        PROPERTY_RADIUSSERVER_PRIORITY	= ( PROPERTY_RADIUSSERVER_FORWARD_ACCT_ONOFF + 1 ) ,
        PROPERTY_RADIUSSERVER_WEIGHT	= ( PROPERTY_RADIUSSERVER_PRIORITY + 1 ) ,
        PROPERTY_RADIUSSERVER_TIMEOUT	= ( PROPERTY_RADIUSSERVER_WEIGHT + 1 ) ,
        PROPERTY_RADIUSSERVER_MAX_LOST	= ( PROPERTY_RADIUSSERVER_TIMEOUT + 1 ) ,
        PROPERTY_RADIUSSERVER_BLACKOUT	= ( PROPERTY_RADIUSSERVER_MAX_LOST + 1 ) ,
        PROPERTY_RADIUSSERVER_SEND_SIGNATURE	= ( PROPERTY_RADIUSSERVER_BLACKOUT + 1 ) ,
        PROPERTY_RADIUSSERVER_AUTH_SECRET_TEMPLATE_GUID	= ( PROPERTY_RADIUSSERVER_SEND_SIGNATURE + 1 ) ,
        PROPERTY_RADIUSSERVER_ACCT_SECRET_TEMPLATE_GUID	= ( PROPERTY_RADIUSSERVER_AUTH_SECRET_TEMPLATE_GUID + 1 ) 
    } 	RADIUSSERVERPROPERTIES;

typedef /* [public] */ 
enum _REMEDIATIONSERVERGROUPPROPERTIES
    {
        PROPERTY_REMEDIATIONSERVERGROUP_SERVERS_COLLECTION	= PROPERTY_SDO_START
    } 	REMEDIATIONSERVERGROUPPROPERTIES;

typedef /* [public] */ 
enum _REMEDIATIONSERVERPROPERTIES
    {
        PROPERTY_REMEDIATIONSERVER_ADDRESS	= PROPERTY_SDO_START,
        PROPERTY_REMEDIATIONSERVER_FRIENDLY_NAME	= ( PROPERTY_REMEDIATIONSERVER_ADDRESS + 1 ) 
    } 	REMEDIATIONSERVERPROPERTIES;

typedef /* [public] */ 
enum _SHVTEMPLATEPROPERTIES
    {
        PROPERTY_SHV_COMBINATION_TYPE	= PROPERTY_SDO_START,
        PROPERTY_SHV_LIST	= ( PROPERTY_SHV_COMBINATION_TYPE + 1 ) ,
        PROPERTY_SHVCONFIG_LIST	= ( PROPERTY_SHV_LIST + 1 ) 
    } 	SHVTEMPLATEPROPERTIES;

typedef /* [public] */ 
enum _IPFILTERPROPERTIES
    {
        PROPERTY_IPFILTER_ATTRIBUTES_COLLECTION	= PROPERTY_SDO_START
    } 	IPFILTERPROPERTIES;

typedef /* [public] */ 
enum _SHAREDSECRETPROPERTIES
    {
        PROPERTY_SHAREDSECRET_STRING	= PROPERTY_SDO_START
    } 	SHAREDSECRETPROPERTIES;

typedef /* [public] */ 
enum _IASCOMPONENTPROPERTIES
    {
        PROPERTY_COMPONENT_ID	= PROPERTY_SDO_START,
        PROPERTY_COMPONENT_PROG_ID	= ( PROPERTY_COMPONENT_ID + 1 ) ,
        PROPERTY_COMPONENT_START	= ( PROPERTY_COMPONENT_PROG_ID + 1 ) 
    } 	IASCOMPONENTPROPERTIES;

typedef /* [public] */ 
enum _PROTOCOLPROPERTIES
    {
        PROPERTY_PROTOCOL_REQUEST_HANDLER	= PROPERTY_COMPONENT_START,
        PROPERTY_PROTOCOL_START	= ( PROPERTY_PROTOCOL_REQUEST_HANDLER + 1 ) 
    } 	PROTOCOLPROPERTIES;

typedef /* [public] */ 
enum _RADIUSPROPERTIES
    {
        PROPERTY_RADIUS_ACCOUNTING_PORT	= PROPERTY_PROTOCOL_START,
        PROPERTY_RADIUS_AUTHENTICATION_PORT	= ( PROPERTY_RADIUS_ACCOUNTING_PORT + 1 ) ,
        PROPERTY_RADIUS_CLIENTS_COLLECTION	= ( PROPERTY_RADIUS_AUTHENTICATION_PORT + 1 ) ,
        PROPERTY_RADIUS_VENDORS_COLLECTION	= ( PROPERTY_RADIUS_CLIENTS_COLLECTION + 1 ) 
    } 	RADIUSPROPERTIES;

typedef /* [public] */ 
enum _NTEVENTLOGPROPERTIES
    {
        PROPERTY_EVENTLOG_LOG_APPLICATION_EVENTS	= PROPERTY_COMPONENT_START,
        PROPERTY_EVENTLOG_LOG_MALFORMED	= ( PROPERTY_EVENTLOG_LOG_APPLICATION_EVENTS + 1 ) ,
        PROPERTY_EVENTLOG_LOG_DEBUG	= ( PROPERTY_EVENTLOG_LOG_MALFORMED + 1 ) 
    } 	NTEVENTLOGPROPERTIES;

typedef /* [public] */ 
enum _NAMESPROPERTIES
    {
        PROPERTY_NAMES_REALMS	= PROPERTY_COMPONENT_START
    } 	NAMESPROPERTIES;

typedef /* [public] */ 
enum _NTSAMPROPERTIES
    {
        PROPERTY_NTSAM_ALLOW_LM_AUTHENTICATION	= PROPERTY_COMPONENT_START
    } 	NTSAMPROPERTIES;

typedef /* [public] */ 
enum _ACCOUNTINGPROPERTIES
    {
        PROPERTY_ACCOUNTING_LOG_ACCOUNTING	= PROPERTY_COMPONENT_START,
        PROPERTY_ACCOUNTING_LOG_ACCOUNTING_INTERIM	= ( PROPERTY_ACCOUNTING_LOG_ACCOUNTING + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_AUTHENTICATION	= ( PROPERTY_ACCOUNTING_LOG_ACCOUNTING_INTERIM + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_OPEN_NEW_FREQUENCY	= ( PROPERTY_ACCOUNTING_LOG_AUTHENTICATION + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_OPEN_NEW_SIZE	= ( PROPERTY_ACCOUNTING_LOG_OPEN_NEW_FREQUENCY + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_FILE_DIRECTORY	= ( PROPERTY_ACCOUNTING_LOG_OPEN_NEW_SIZE + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_IAS1_FORMAT	= ( PROPERTY_ACCOUNTING_LOG_FILE_DIRECTORY + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_ENABLE_LOGGING	= ( PROPERTY_ACCOUNTING_LOG_IAS1_FORMAT + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_DELETE_IF_FULL	= ( PROPERTY_ACCOUNTING_LOG_ENABLE_LOGGING + 1 ) ,
        PROPERTY_ACCOUNTING_SQL_MAX_SESSIONS	= ( PROPERTY_ACCOUNTING_LOG_DELETE_IF_FULL + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_AUTHENTICATION_INTERIM	= ( PROPERTY_ACCOUNTING_SQL_MAX_SESSIONS + 1 ) ,
        PROPERTY_ACCOUNTING_LOG_FILE_IS_BACKUP	= ( PROPERTY_ACCOUNTING_LOG_AUTHENTICATION_INTERIM + 1 ) ,
        PROPERTY_ACCOUNTING_DISCARD_REQUEST_ON_FAILURE	= ( PROPERTY_ACCOUNTING_LOG_FILE_IS_BACKUP + 1 ) 
    } 	ACCOUNTINGPROPERTIES;

typedef /* [public] */ 
enum _NAPPROPERTIES
    {
        PROPERTY_NAP_POLICIES_COLLECTION	= PROPERTY_COMPONENT_START,
        PROPERTY_SHV_TEMPLATES_COLLECTION	= ( PROPERTY_NAP_POLICIES_COLLECTION + 1 ) 
    } 	NAPPROPERTIES;

typedef /* [public] */ 
enum _RADIUSPROXYPROPERTIES
    {
        PROPERTY_RADIUSPROXY_SERVERGROUPS	= PROPERTY_COMPONENT_START
    } 	RADIUSPROXYPROPERTIES;

typedef /* [public] */ 
enum _REMEDIATIONSERVERSPROPERTIES
    {
        PROPERTY_REMEDIATIONSERVERS_SERVERGROUPS	= PROPERTY_COMPONENT_START
    } 	REMEDIATIONSERVERSPROPERTIES;

typedef /* [public] */ 
enum _SHV_COMBINATION_TYPE
    {
        SHV_COMBINATION_TYPE_ALL_PASS	= 0,
        SHV_COMBINATION_TYPE_ALL_FAIL	= ( SHV_COMBINATION_TYPE_ALL_PASS + 1 ) ,
        SHV_COMBINATION_TYPE_ONE_OR_MORE_PASS	= ( SHV_COMBINATION_TYPE_ALL_FAIL + 1 ) ,
        SHV_COMBINATION_TYPE_ONE_OR_MORE_FAIL	= ( SHV_COMBINATION_TYPE_ONE_OR_MORE_PASS + 1 ) ,
        SHV_COMBINATION_TYPE_ONE_OR_MORE_INFECTED	= ( SHV_COMBINATION_TYPE_ONE_OR_MORE_FAIL + 1 ) ,
        SHV_COMBINATION_TYPE_ONE_OR_MORE_TRANSITIONAL	= ( SHV_COMBINATION_TYPE_ONE_OR_MORE_INFECTED + 1 ) ,
        SHV_COMBINATION_TYPE_ONE_OR_MORE_UNKNOWN	= ( SHV_COMBINATION_TYPE_ONE_OR_MORE_TRANSITIONAL + 1 ) ,
        SHV_COMBINATION_TYPE_MAX	= ( SHV_COMBINATION_TYPE_ONE_OR_MORE_UNKNOWN + 1 ) 
    } 	SHV_COMBINATION_TYPE;

typedef /* [public] */ 
enum _SERVICE_TYPE
    {
        SERVICE_TYPE_IAS	= 0,
        SERVICE_TYPE_RAS	= ( SERVICE_TYPE_IAS + 1 ) ,
        SERVICE_TYPE_RAMGMTSVC	= ( SERVICE_TYPE_RAS + 1 ) ,
        SERVICE_TYPE_MAX	= ( SERVICE_TYPE_RAMGMTSVC + 1 ) 
    } 	SERVICE_TYPE;

typedef /* [public] */ 
enum _IASOSTYPE
    {
        SYSTEM_TYPE_NT4_WORKSTATION	= 0,
        SYSTEM_TYPE_NT5_WORKSTATION	= ( SYSTEM_TYPE_NT4_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT6_WORKSTATION	= ( SYSTEM_TYPE_NT5_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT6_1_WORKSTATION	= ( SYSTEM_TYPE_NT6_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT6_2_WORKSTATION	= ( SYSTEM_TYPE_NT6_1_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT6_3_WORKSTATION	= ( SYSTEM_TYPE_NT6_2_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT10_0_WORKSTATION	= ( SYSTEM_TYPE_NT6_3_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT4_SERVER	= ( SYSTEM_TYPE_NT10_0_WORKSTATION + 1 ) ,
        SYSTEM_TYPE_NT5_SERVER	= ( SYSTEM_TYPE_NT4_SERVER + 1 ) ,
        SYSTEM_TYPE_NT6_SERVER	= ( SYSTEM_TYPE_NT5_SERVER + 1 ) ,
        SYSTEM_TYPE_NT6_1_SERVER	= ( SYSTEM_TYPE_NT6_SERVER + 1 ) ,
        SYSTEM_TYPE_NT6_2_SERVER	= ( SYSTEM_TYPE_NT6_1_SERVER + 1 ) ,
        SYSTEM_TYPE_NT6_3_SERVER	= ( SYSTEM_TYPE_NT6_2_SERVER + 1 ) ,
        SYSTEM_TYPE_NT10_0_SERVER	= ( SYSTEM_TYPE_NT6_3_SERVER + 1 ) 
    } 	IASOSTYPE;

typedef /* [public] */ enum _IASOSTYPE *PIASOSTYPE;

typedef /* [public] */ 
enum _DOMAINTYPE
    {
        DOMAIN_TYPE_NONE	= 0,
        DOMAIN_TYPE_NT4	= ( DOMAIN_TYPE_NONE + 1 ) ,
        DOMAIN_TYPE_NT5	= ( DOMAIN_TYPE_NT4 + 1 ) ,
        DOMAIN_TYPE_MIXED	= ( DOMAIN_TYPE_NT5 + 1 ) 
    } 	IASDOMAINTYPE;

typedef /* [public] */ enum _DOMAINTYPE *PIASDOMAINTYPE;

typedef /* [public] */ 
enum _IASDATASTORE
    {
        DATA_STORE_LOCAL	= 0,
        DATA_STORE_DIRECTORY	= ( DATA_STORE_LOCAL + 1 ) 
    } 	IASDATASTORE;

typedef /* [public] */ enum _IASDATASTORE *PIASDATASTORE;


EXTERN_C const IID LIBID_SDOIASLib;

#ifndef __ISdoMachine_INTERFACE_DEFINED__
#define __ISdoMachine_INTERFACE_DEFINED__

/* interface ISdoMachine */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdoMachine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("479F6E75-49A2-11d2-8ECA-00C04FC2F519")
    ISdoMachine : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Attach( 
            /* [in] */ __RPC__in BSTR bstrComputerName) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetDictionarySDO( 
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppDictionarySDO) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetServiceSDO( 
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppServiceSDO) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetUserSDO( 
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrUserName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppUserSDO) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetOSType( 
            /* [retval][out] */ __RPC__out IASOSTYPE *eOSType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetDomainType( 
            /* [retval][out] */ __RPC__out IASDOMAINTYPE *eDomainType) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsDirectoryAvailable( 
            /* [retval][out] */ __RPC__out VARIANT_BOOL *boolDirectoryAvailable) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAttachedComputer( 
            /* [retval][out] */ __RPC__deref_out_opt BSTR *bstrComputerName) = 0;
        
        virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE GetSDOSchema( 
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppSDOSchema) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoMachineVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdoMachine * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdoMachine * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdoMachine * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdoMachine * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Attach )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ __RPC__in BSTR bstrComputerName);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDictionarySDO )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppDictionarySDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetServiceSDO )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppServiceSDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetUserSDO )( 
            __RPC__in ISdoMachine * This,
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrUserName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppUserSDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetOSType )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__out IASOSTYPE *eOSType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDomainType )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__out IASDOMAINTYPE *eDomainType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsDirectoryAvailable )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *boolDirectoryAvailable);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAttachedComputer )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *bstrComputerName);
        
        /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetSDOSchema )( 
            __RPC__in ISdoMachine * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppSDOSchema);
        
        END_INTERFACE
    } ISdoMachineVtbl;

    interface ISdoMachine
    {
        CONST_VTBL struct ISdoMachineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdoMachine_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdoMachine_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdoMachine_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdoMachine_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdoMachine_Attach(This,bstrComputerName)	\
    ( (This)->lpVtbl -> Attach(This,bstrComputerName) ) 

#define ISdoMachine_GetDictionarySDO(This,ppDictionarySDO)	\
    ( (This)->lpVtbl -> GetDictionarySDO(This,ppDictionarySDO) ) 

#define ISdoMachine_GetServiceSDO(This,eDataStore,bstrServiceName,ppServiceSDO)	\
    ( (This)->lpVtbl -> GetServiceSDO(This,eDataStore,bstrServiceName,ppServiceSDO) ) 

#define ISdoMachine_GetUserSDO(This,eDataStore,bstrUserName,ppUserSDO)	\
    ( (This)->lpVtbl -> GetUserSDO(This,eDataStore,bstrUserName,ppUserSDO) ) 

#define ISdoMachine_GetOSType(This,eOSType)	\
    ( (This)->lpVtbl -> GetOSType(This,eOSType) ) 

#define ISdoMachine_GetDomainType(This,eDomainType)	\
    ( (This)->lpVtbl -> GetDomainType(This,eDomainType) ) 

#define ISdoMachine_IsDirectoryAvailable(This,boolDirectoryAvailable)	\
    ( (This)->lpVtbl -> IsDirectoryAvailable(This,boolDirectoryAvailable) ) 

#define ISdoMachine_GetAttachedComputer(This,bstrComputerName)	\
    ( (This)->lpVtbl -> GetAttachedComputer(This,bstrComputerName) ) 

#define ISdoMachine_GetSDOSchema(This,ppSDOSchema)	\
    ( (This)->lpVtbl -> GetSDOSchema(This,ppSDOSchema) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdoMachine_INTERFACE_DEFINED__ */


#ifndef __ISdoMachine2_INTERFACE_DEFINED__
#define __ISdoMachine2_INTERFACE_DEFINED__

/* interface ISdoMachine2 */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdoMachine2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("518E5FFE-D8CE-4f7e-A5DB-B40A35419D3B")
    ISdoMachine2 : public ISdoMachine
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetTemplatesSDO( 
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppTemplatesSDO) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnableTemplates( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE SyncConfigAgainstTemplates( 
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [out][in] */ __RPC__deref_inout_opt IUnknown **ppConfigRoot,
            /* [out][in] */ __RPC__deref_inout_opt IUnknown **ppTemplatesRoot,
            /* [in] */ VARIANT_BOOL bForcedSync) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ImportRemoteTemplates( 
            __RPC__in_opt IUnknown *pLocalTemplatesRoot,
            __RPC__in BSTR bstrRemoteMachineName) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Reload( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoMachine2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdoMachine2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdoMachine2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdoMachine2 * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdoMachine2 * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Attach )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ __RPC__in BSTR bstrComputerName);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDictionarySDO )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppDictionarySDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetServiceSDO )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppServiceSDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetUserSDO )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ IASDATASTORE eDataStore,
            /* [in] */ __RPC__in BSTR bstrUserName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppUserSDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetOSType )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__out IASOSTYPE *eOSType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetDomainType )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__out IASDOMAINTYPE *eDomainType);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsDirectoryAvailable )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *boolDirectoryAvailable);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAttachedComputer )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__deref_out_opt BSTR *bstrComputerName);
        
        /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetSDOSchema )( 
            __RPC__in ISdoMachine2 * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppSDOSchema);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetTemplatesSDO )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppTemplatesSDO);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnableTemplates )( 
            __RPC__in ISdoMachine2 * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *SyncConfigAgainstTemplates )( 
            __RPC__in ISdoMachine2 * This,
            /* [in] */ __RPC__in BSTR bstrServiceName,
            /* [out][in] */ __RPC__deref_inout_opt IUnknown **ppConfigRoot,
            /* [out][in] */ __RPC__deref_inout_opt IUnknown **ppTemplatesRoot,
            /* [in] */ VARIANT_BOOL bForcedSync);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ImportRemoteTemplates )( 
            __RPC__in ISdoMachine2 * This,
            __RPC__in_opt IUnknown *pLocalTemplatesRoot,
            __RPC__in BSTR bstrRemoteMachineName);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            __RPC__in ISdoMachine2 * This);
        
        END_INTERFACE
    } ISdoMachine2Vtbl;

    interface ISdoMachine2
    {
        CONST_VTBL struct ISdoMachine2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdoMachine2_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdoMachine2_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdoMachine2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdoMachine2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdoMachine2_Attach(This,bstrComputerName)	\
    ( (This)->lpVtbl -> Attach(This,bstrComputerName) ) 

#define ISdoMachine2_GetDictionarySDO(This,ppDictionarySDO)	\
    ( (This)->lpVtbl -> GetDictionarySDO(This,ppDictionarySDO) ) 

#define ISdoMachine2_GetServiceSDO(This,eDataStore,bstrServiceName,ppServiceSDO)	\
    ( (This)->lpVtbl -> GetServiceSDO(This,eDataStore,bstrServiceName,ppServiceSDO) ) 

#define ISdoMachine2_GetUserSDO(This,eDataStore,bstrUserName,ppUserSDO)	\
    ( (This)->lpVtbl -> GetUserSDO(This,eDataStore,bstrUserName,ppUserSDO) ) 

#define ISdoMachine2_GetOSType(This,eOSType)	\
    ( (This)->lpVtbl -> GetOSType(This,eOSType) ) 

#define ISdoMachine2_GetDomainType(This,eDomainType)	\
    ( (This)->lpVtbl -> GetDomainType(This,eDomainType) ) 

#define ISdoMachine2_IsDirectoryAvailable(This,boolDirectoryAvailable)	\
    ( (This)->lpVtbl -> IsDirectoryAvailable(This,boolDirectoryAvailable) ) 

#define ISdoMachine2_GetAttachedComputer(This,bstrComputerName)	\
    ( (This)->lpVtbl -> GetAttachedComputer(This,bstrComputerName) ) 

#define ISdoMachine2_GetSDOSchema(This,ppSDOSchema)	\
    ( (This)->lpVtbl -> GetSDOSchema(This,ppSDOSchema) ) 


#define ISdoMachine2_GetTemplatesSDO(This,bstrServiceName,ppTemplatesSDO)	\
    ( (This)->lpVtbl -> GetTemplatesSDO(This,bstrServiceName,ppTemplatesSDO) ) 

#define ISdoMachine2_EnableTemplates(This)	\
    ( (This)->lpVtbl -> EnableTemplates(This) ) 

#define ISdoMachine2_SyncConfigAgainstTemplates(This,bstrServiceName,ppConfigRoot,ppTemplatesRoot,bForcedSync)	\
    ( (This)->lpVtbl -> SyncConfigAgainstTemplates(This,bstrServiceName,ppConfigRoot,ppTemplatesRoot,bForcedSync) ) 

#define ISdoMachine2_ImportRemoteTemplates(This,pLocalTemplatesRoot,bstrRemoteMachineName)	\
    ( (This)->lpVtbl -> ImportRemoteTemplates(This,pLocalTemplatesRoot,bstrRemoteMachineName) ) 

#define ISdoMachine2_Reload(This)	\
    ( (This)->lpVtbl -> Reload(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdoMachine2_INTERFACE_DEFINED__ */


#ifndef __ISdoServiceControl_INTERFACE_DEFINED__
#define __ISdoServiceControl_INTERFACE_DEFINED__

/* interface ISdoServiceControl */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdoServiceControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("479F6E74-49A2-11d2-8ECA-00C04FC2F519")
    ISdoServiceControl : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE StartService( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE StopService( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetServiceStatus( 
            /* [retval][out] */ __RPC__out LONG *status) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ResetService( void) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoServiceControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdoServiceControl * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdoServiceControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdoServiceControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdoServiceControl * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdoServiceControl * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdoServiceControl * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdoServiceControl * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *StartService )( 
            __RPC__in ISdoServiceControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *StopService )( 
            __RPC__in ISdoServiceControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetServiceStatus )( 
            __RPC__in ISdoServiceControl * This,
            /* [retval][out] */ __RPC__out LONG *status);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ResetService )( 
            __RPC__in ISdoServiceControl * This);
        
        END_INTERFACE
    } ISdoServiceControlVtbl;

    interface ISdoServiceControl
    {
        CONST_VTBL struct ISdoServiceControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdoServiceControl_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdoServiceControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdoServiceControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdoServiceControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdoServiceControl_StartService(This)	\
    ( (This)->lpVtbl -> StartService(This) ) 

#define ISdoServiceControl_StopService(This)	\
    ( (This)->lpVtbl -> StopService(This) ) 

#define ISdoServiceControl_GetServiceStatus(This,status)	\
    ( (This)->lpVtbl -> GetServiceStatus(This,status) ) 

#define ISdoServiceControl_ResetService(This)	\
    ( (This)->lpVtbl -> ResetService(This) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdoServiceControl_INTERFACE_DEFINED__ */


#ifndef __ISdo_INTERFACE_DEFINED__
#define __ISdo_INTERFACE_DEFINED__

/* interface ISdo */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56BC53DE-96DB-11D1-BF3F-000000000000")
    ISdo : public IDispatch
    {
    public:
        virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE GetPropertyInfo( 
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppPropertyInfo) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetProperty( 
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__out VARIANT *pValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE PutProperty( 
            /* [in] */ LONG Id,
            /* [in] */ __RPC__in VARIANT *pValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE ResetProperty( 
            /* [in] */ LONG Id) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Apply( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Restore( void) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnumVARIANT) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdo * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdo * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyInfo )( 
            __RPC__in ISdo * This,
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppPropertyInfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
            __RPC__in ISdo * This,
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__out VARIANT *pValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *PutProperty )( 
            __RPC__in ISdo * This,
            /* [in] */ LONG Id,
            /* [in] */ __RPC__in VARIANT *pValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ResetProperty )( 
            __RPC__in ISdo * This,
            /* [in] */ LONG Id);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Apply )( 
            __RPC__in ISdo * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Restore )( 
            __RPC__in ISdo * This);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            __RPC__in ISdo * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnumVARIANT);
        
        END_INTERFACE
    } ISdoVtbl;

    interface ISdo
    {
        CONST_VTBL struct ISdoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdo_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdo_GetPropertyInfo(This,Id,ppPropertyInfo)	\
    ( (This)->lpVtbl -> GetPropertyInfo(This,Id,ppPropertyInfo) ) 

#define ISdo_GetProperty(This,Id,pValue)	\
    ( (This)->lpVtbl -> GetProperty(This,Id,pValue) ) 

#define ISdo_PutProperty(This,Id,pValue)	\
    ( (This)->lpVtbl -> PutProperty(This,Id,pValue) ) 

#define ISdo_ResetProperty(This,Id)	\
    ( (This)->lpVtbl -> ResetProperty(This,Id) ) 

#define ISdo_Apply(This)	\
    ( (This)->lpVtbl -> Apply(This) ) 

#define ISdo_Restore(This)	\
    ( (This)->lpVtbl -> Restore(This) ) 

#define ISdo_get__NewEnum(This,ppEnumVARIANT)	\
    ( (This)->lpVtbl -> get__NewEnum(This,ppEnumVARIANT) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdo_INTERFACE_DEFINED__ */


#ifndef __ISdoCollection_INTERFACE_DEFINED__
#define __ISdoCollection_INTERFACE_DEFINED__

/* interface ISdoCollection */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdoCollection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56BC53E2-96DB-11D1-BF3F-000000000000")
    ISdoCollection : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [retval][out] */ __RPC__out long *pCount) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ __RPC__in BSTR bstrName,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Remove( 
            /* [in] */ __RPC__in_opt IDispatch *pItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE RemoveAll( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Reload( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE IsNameUnique( 
            /* [in] */ __RPC__in BSTR bstrName,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pBool) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE Item( 
            /* [in] */ __RPC__in VARIANT *Name,
            /* [retval][out] */ __RPC__deref_out_opt IDispatch **pItem) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get__NewEnum( 
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnumVARIANT) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoCollectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdoCollection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdoCollection * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdoCollection * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdoCollection * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            __RPC__in ISdoCollection * This,
            /* [retval][out] */ __RPC__out long *pCount);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in BSTR bstrName,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Remove )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in_opt IDispatch *pItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAll )( 
            __RPC__in ISdoCollection * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Reload )( 
            __RPC__in ISdoCollection * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *IsNameUnique )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in BSTR bstrName,
            /* [retval][out] */ __RPC__out VARIANT_BOOL *pBool);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Item )( 
            __RPC__in ISdoCollection * This,
            /* [in] */ __RPC__in VARIANT *Name,
            /* [retval][out] */ __RPC__deref_out_opt IDispatch **pItem);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            __RPC__in ISdoCollection * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnumVARIANT);
        
        END_INTERFACE
    } ISdoCollectionVtbl;

    interface ISdoCollection
    {
        CONST_VTBL struct ISdoCollectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdoCollection_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdoCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdoCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdoCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdoCollection_get_Count(This,pCount)	\
    ( (This)->lpVtbl -> get_Count(This,pCount) ) 

#define ISdoCollection_Add(This,bstrName,ppItem)	\
    ( (This)->lpVtbl -> Add(This,bstrName,ppItem) ) 

#define ISdoCollection_Remove(This,pItem)	\
    ( (This)->lpVtbl -> Remove(This,pItem) ) 

#define ISdoCollection_RemoveAll(This)	\
    ( (This)->lpVtbl -> RemoveAll(This) ) 

#define ISdoCollection_Reload(This)	\
    ( (This)->lpVtbl -> Reload(This) ) 

#define ISdoCollection_IsNameUnique(This,bstrName,pBool)	\
    ( (This)->lpVtbl -> IsNameUnique(This,bstrName,pBool) ) 

#define ISdoCollection_Item(This,Name,pItem)	\
    ( (This)->lpVtbl -> Item(This,Name,pItem) ) 

#define ISdoCollection_get__NewEnum(This,ppEnumVARIANT)	\
    ( (This)->lpVtbl -> get__NewEnum(This,ppEnumVARIANT) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdoCollection_INTERFACE_DEFINED__ */


#ifndef __ITemplateSdo_INTERFACE_DEFINED__
#define __ITemplateSdo_INTERFACE_DEFINED__

/* interface ITemplateSdo */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ITemplateSdo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8AA85302-D2E2-4e20-8B1F-A571E437D6C9")
    ITemplateSdo : public ISdo
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddToCollection( 
            /* [in] */ __RPC__in BSTR bstrName,
            /* [in] */ __RPC__in_opt IDispatch *pCollection,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddToSdo( 
            /* [in] */ __RPC__in BSTR bstrName,
            /* [in] */ __RPC__in_opt IDispatch *pSdoTarget,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE AddToSdoAsProperty( 
            /* [in] */ __RPC__in_opt IDispatch *pSdoTarget,
            /* [in] */ LONG id) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ITemplateSdoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ITemplateSdo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ITemplateSdo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ITemplateSdo * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ITemplateSdo * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetPropertyInfo )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppPropertyInfo);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetProperty )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ LONG Id,
            /* [retval][out] */ __RPC__out VARIANT *pValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *PutProperty )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ LONG Id,
            /* [in] */ __RPC__in VARIANT *pValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *ResetProperty )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ LONG Id);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Apply )( 
            __RPC__in ITemplateSdo * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *Restore )( 
            __RPC__in ITemplateSdo * This);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get__NewEnum )( 
            __RPC__in ITemplateSdo * This,
            /* [retval][out] */ __RPC__deref_out_opt IUnknown **ppEnumVARIANT);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddToCollection )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ __RPC__in BSTR bstrName,
            /* [in] */ __RPC__in_opt IDispatch *pCollection,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddToSdo )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ __RPC__in BSTR bstrName,
            /* [in] */ __RPC__in_opt IDispatch *pSdoTarget,
            /* [out][in] */ __RPC__deref_inout_opt IDispatch **ppItem);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *AddToSdoAsProperty )( 
            __RPC__in ITemplateSdo * This,
            /* [in] */ __RPC__in_opt IDispatch *pSdoTarget,
            /* [in] */ LONG id);
        
        END_INTERFACE
    } ITemplateSdoVtbl;

    interface ITemplateSdo
    {
        CONST_VTBL struct ITemplateSdoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ITemplateSdo_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ITemplateSdo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ITemplateSdo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ITemplateSdo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ITemplateSdo_GetPropertyInfo(This,Id,ppPropertyInfo)	\
    ( (This)->lpVtbl -> GetPropertyInfo(This,Id,ppPropertyInfo) ) 

#define ITemplateSdo_GetProperty(This,Id,pValue)	\
    ( (This)->lpVtbl -> GetProperty(This,Id,pValue) ) 

#define ITemplateSdo_PutProperty(This,Id,pValue)	\
    ( (This)->lpVtbl -> PutProperty(This,Id,pValue) ) 

#define ITemplateSdo_ResetProperty(This,Id)	\
    ( (This)->lpVtbl -> ResetProperty(This,Id) ) 

#define ITemplateSdo_Apply(This)	\
    ( (This)->lpVtbl -> Apply(This) ) 

#define ITemplateSdo_Restore(This)	\
    ( (This)->lpVtbl -> Restore(This) ) 

#define ITemplateSdo_get__NewEnum(This,ppEnumVARIANT)	\
    ( (This)->lpVtbl -> get__NewEnum(This,ppEnumVARIANT) ) 


#define ITemplateSdo_AddToCollection(This,bstrName,pCollection,ppItem)	\
    ( (This)->lpVtbl -> AddToCollection(This,bstrName,pCollection,ppItem) ) 

#define ITemplateSdo_AddToSdo(This,bstrName,pSdoTarget,ppItem)	\
    ( (This)->lpVtbl -> AddToSdo(This,bstrName,pSdoTarget,ppItem) ) 

#define ITemplateSdo_AddToSdoAsProperty(This,pSdoTarget,id)	\
    ( (This)->lpVtbl -> AddToSdoAsProperty(This,pSdoTarget,id) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ITemplateSdo_INTERFACE_DEFINED__ */


#ifndef __ISdoDictionaryOld_INTERFACE_DEFINED__
#define __ISdoDictionaryOld_INTERFACE_DEFINED__

/* interface ISdoDictionaryOld */
/* [unique][dual][uuid][object] */ 


EXTERN_C const IID IID_ISdoDictionaryOld;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d432e5f4-53d8-11d2-9a3a-00c04fb998ac")
    ISdoDictionaryOld : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnumAttributes( 
            /* [out][in] */ __RPC__inout VARIANT *Id,
            /* [retval][out] */ __RPC__out VARIANT *pValues) = 0;
        
        virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE GetAttributeInfo( 
            /* [in] */ ATTRIBUTEID Id,
            /* [in] */ __RPC__in VARIANT *pInfoIDs,
            /* [retval][out] */ __RPC__out VARIANT *pInfoValues) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE EnumAttributeValues( 
            /* [in] */ ATTRIBUTEID Id,
            /* [out] */ __RPC__out VARIANT *pValueIds,
            /* [retval][out] */ __RPC__out VARIANT *pValuesDesc) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE CreateAttribute( 
            /* [in] */ ATTRIBUTEID Id,
            /* [retval][out] */ __RPC__deref_out_opt IDispatch **ppAttributeObject) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE GetAttributeID( 
            /* [in] */ __RPC__in BSTR bstrAttributeName,
            /* [retval][out] */ __RPC__out ATTRIBUTEID *pId) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct ISdoDictionaryOldVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in ISdoDictionaryOld * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in ISdoDictionaryOld * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [out] */ __RPC__out UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ __RPC__deref_out_opt ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [size_is][in] */ __RPC__in_ecount_full(cNames) LPOLESTR *rgszNames,
            /* [range][in] */ __RPC__in_range(0,16384) UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ __RPC__out_ecount_full(cNames) DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            ISdoDictionaryOld * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnumAttributes )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [out][in] */ __RPC__inout VARIANT *Id,
            /* [retval][out] */ __RPC__out VARIANT *pValues);
        
        /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributeInfo )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ ATTRIBUTEID Id,
            /* [in] */ __RPC__in VARIANT *pInfoIDs,
            /* [retval][out] */ __RPC__out VARIANT *pInfoValues);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *EnumAttributeValues )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ ATTRIBUTEID Id,
            /* [out] */ __RPC__out VARIANT *pValueIds,
            /* [retval][out] */ __RPC__out VARIANT *pValuesDesc);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *CreateAttribute )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ ATTRIBUTEID Id,
            /* [retval][out] */ __RPC__deref_out_opt IDispatch **ppAttributeObject);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *GetAttributeID )( 
            __RPC__in ISdoDictionaryOld * This,
            /* [in] */ __RPC__in BSTR bstrAttributeName,
            /* [retval][out] */ __RPC__out ATTRIBUTEID *pId);
        
        END_INTERFACE
    } ISdoDictionaryOldVtbl;

    interface ISdoDictionaryOld
    {
        CONST_VTBL struct ISdoDictionaryOldVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define ISdoDictionaryOld_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define ISdoDictionaryOld_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define ISdoDictionaryOld_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define ISdoDictionaryOld_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define ISdoDictionaryOld_EnumAttributes(This,Id,pValues)	\
    ( (This)->lpVtbl -> EnumAttributes(This,Id,pValues) ) 

#define ISdoDictionaryOld_GetAttributeInfo(This,Id,pInfoIDs,pInfoValues)	\
    ( (This)->lpVtbl -> GetAttributeInfo(This,Id,pInfoIDs,pInfoValues) ) 

#define ISdoDictionaryOld_EnumAttributeValues(This,Id,pValueIds,pValuesDesc)	\
    ( (This)->lpVtbl -> EnumAttributeValues(This,Id,pValueIds,pValuesDesc) ) 

#define ISdoDictionaryOld_CreateAttribute(This,Id,ppAttributeObject)	\
    ( (This)->lpVtbl -> CreateAttribute(This,Id,ppAttributeObject) ) 

#define ISdoDictionaryOld_GetAttributeID(This,bstrAttributeName,pId)	\
    ( (This)->lpVtbl -> GetAttributeID(This,bstrAttributeName,pId) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __ISdoDictionaryOld_INTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_SdoMachine;

#ifdef __cplusplus

class DECLSPEC_UUID("E9218AE7-9E91-11D1-BF60-0080C7846BC0")
SdoMachine;
#endif
#endif /* __SDOIASLib_LIBRARY_DEFINED__ */

/* interface __MIDL_itf_sdoias_0000_0001 */
/* [local] */ 

#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion


extern RPC_IF_HANDLE __MIDL_itf_sdoias_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_sdoias_0000_0001_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


