/* Automated generated idl file <sdoiaslib>.
 * Generated by genidl tool (c) 2009, 2010 Mingw-w64 project.
 */

/* Union record forward declarations.  */
dispinterface ISdoMachine;
dispinterface ISdoServiceControl;
dispinterface ISdo;
dispinterface ISdoCollection;
dispinterface ISdoDictionaryOld;

/* Union record forward declarations.  */
coclass SdoMachine;

/* Enumeration declarations.  */
enum _ATTRIBUTEID
{
  ATTRIBUTE_UNDEFINED = (int) 201326592,
  ATTRIBUTE_MIN_VALUE = (int) 201326593,
  RADIUS_ATTRIBUTE_USER_NAME = (int) 201326593,
  RADIUS_ATTRIBUTE_USER_PASSWORD = (int) 201326594,
  RADIUS_ATTRIBUTE_CHAP_PASSWORD = (int) 201326595,
  RADIUS_ATTRIBUTE_NAS_IP_ADDRESS = (int) 201326596,
  RADIUS_ATTRIBUTE_NAS_PORT = (int) 201326597,
  RADIUS_ATTRIBUTE_SERVICE_TYPE = (int) 201326598,
  RADIUS_ATTRIBUTE_FRAMED_PROTOCOL = (int) 201326599,
  RADIUS_ATTRIBUTE_FRAMED_IP_ADDRESS = (int) 201326600,
  RADIUS_ATTRIBUTE_FRAMED_IP_NETMASK = (int) 201326601,
  RADIUS_ATTRIBUTE_FRAMED_ROUTING = (int) 201326602,
  RADIUS_ATTRIBUTE_FILTER_ID = (int) 201326603,
  RADIUS_ATTRIBUTE_FRAMED_MTU = (int) 201326604,
  RADIUS_ATTRIBUTE_FRAMED_COMPRESSION = (int) 201326605,
  RADIUS_ATTRIBUTE_LOGIN_IP_HOST = (int) 201326606,
  RADIUS_ATTRIBUTE_LOGIN_SERVICE = (int) 201326607,
  RADIUS_ATTRIBUTE_LOGIN_TCP_PORT = (int) 201326608,
  RADIUS_ATTRIBUTE_UNASSIGNED1 = (int) 201326609,
  RADIUS_ATTRIBUTE_REPLY_MESSAGE = (int) 201326610,
  RADIUS_ATTRIBUTE_CALLBACK_NUMBER = (int) 201326611,
  RADIUS_ATTRIBUTE_CALLBACK_ID = (int) 201326612,
  RADIUS_ATTRIBUTE_UNASSIGNED2 = (int) 201326613,
  RADIUS_ATTRIBUTE_FRAMED_ROUTE = (int) 201326614,
  RADIUS_ATTRIBUTE_FRAMED_IPX_NETWORK = (int) 201326615,
  RADIUS_ATTRIBUTE_STATE = (int) 201326616,
  RADIUS_ATTRIBUTE_CLASS = (int) 201326617,
  RADIUS_ATTRIBUTE_VENDOR_SPECIFIC = (int) 201326618,
  RADIUS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201326619,
  RADIUS_ATTRIBUTE_IDLE_TIMEOUT = (int) 201326620,
  RADIUS_ATTRIBUTE_TERMINATION_ACTION = (int) 201326621,
  RADIUS_ATTRIBUTE_CALLED_STATION_ID = (int) 201326622,
  RADIUS_ATTRIBUTE_CALLING_STATION_ID = (int) 201326623,
  RADIUS_ATTRIBUTE_NAS_IDENTIFIER = (int) 201326624,
  RADIUS_ATTRIBUTE_PROXY_STATE = (int) 201326625,
  RADIUS_ATTRIBUTE_LOGIN_LAT_SERVICE = (int) 201326626,
  RADIUS_ATTRIBUTE_LOGIN_LAT_NODE = (int) 201326627,
  RADIUS_ATTRIBUTE_LOGIN_LAT_GROUP = (int) 201326628,
  RADIUS_ATTRIBUTE_FRAMED_APPLETALK_LINK = (int) 201326629,
  RADIUS_ATTRIBUTE_FRAMED_APPLETALK_NET = (int) 201326630,
  RADIUS_ATTRIBUTE_FRAMED_APPLETALK_ZONE = (int) 201326631,
  RADIUS_ATTRIBUTE_ACCT_STATUS_TYPE = (int) 201326632,
  RADIUS_ATTRIBUTE_ACCT_DELAY_TIME = (int) 201326633,
  RADIUS_ATTRIBUTE_ACCT_INPUT_OCTETS = (int) 201326634,
  RADIUS_ATTRIBUTE_ACCT_OUTPUT_OCTETS = (int) 201326635,
  RADIUS_ATTRIBUTE_ACCT_SESSION_ID = (int) 201326636,
  RADIUS_ATTRIBUTE_ACCT_AUTHENTIC = (int) 201326637,
  RADIUS_ATTRIBUTE_ACCT_SESSION_TIME = (int) 201326638,
  RADIUS_ATTRIBUTE_ACCT_INPUT_PACKETS = (int) 201326639,
  RADIUS_ATTRIBUTE_ACCT_OUTPUT_PACKETS = (int) 201326640,
  RADIUS_ATTRIBUTE_ACCT_TERMINATE_CAUSE = (int) 201326641,
  RADIUS_ATTRIBUTE_ACCT_MULTI_SSN_ID = (int) 201326642,
  RADIUS_ATTRIBUTE_ACCT_LINK_COUNT = (int) 201326643,
  RADIUS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201326652,
  RADIUS_ATTRIBUTE_NAS_PORT_TYPE = (int) 201326653,
  RADIUS_ATTRIBUTE_PORT_LIMIT = (int) 201326654,
  RADIUS_ATTRIBUTE_LOGIN_LAT_PORT = (int) 201326655,
  RADIUS_ATTRIBUTE_TUNNEL_TYPE = (int) 201326656,
  RADIUS_ATTRIBUTE_TUNNEL_MEDIUM_TYPE = (int) 201326657,
  RADIUS_ATTRIBUTE_TUNNEL_CLIENT_ENDPT = (int) 201326658,
  RADIUS_ATTRIBUTE_TUNNEL_SERVER_ENDPT = (int) 201326659,
  RADIUS_ATTRIBUTE_ACCT_TUNNEL_CONN = (int) 201326660,
  RADIUS_ATTRIBUTE_TUNNEL_PASSWORD = (int) 201326661,
  RADIUS_ATTRIBUTE_ARAP_PASSWORD = (int) 201326662,
  RADIUS_ATTRIBUTE_ARAP_FEATURES = (int) 201326663,
  RADIUS_ATTRIBUTE_ARAP_ZONE_ACCESS = (int) 201326664,
  RADIUS_ATTRIBUTE_ARAP_SECURITY = (int) 201326665,
  RADIUS_ATTRIBUTE_ARAP_SECURITY_DATA = (int) 201326666,
  RADIUS_ATTRIBUTE_PASSWORD_RETRY = (int) 201326667,
  RADIUS_ATTRIBUTE_PROMPT = (int) 201326668,
  RADIUS_ATTRIBUTE_CONNECT_INFO = (int) 201326669,
  RADIUS_ATTRIBUTE_CONFIGURATION_TOKEN = (int) 201326670,
  RADIUS_ATTRIBUTE_EAP_MESSAGE = (int) 201326671,
  RADIUS_ATTRIBUTE_SIGNATURE = (int) 201326672,
  RADIUS_ATTRIBUTE_TUNNEL_PVT_GROUP_ID = (int) 201326673,
  RADIUS_ATTRIBUTE_TUNNEL_ASSIGNMENT_ID = (int) 201326674,
  RADIUS_ATTRIBUTE_TUNNEL_PREFERENCE = (int) 201326675,
  RADIUS_ATTRIBUTE_ARAP_CHALLENGE_RESPONSE = (int) 201326676,
  RADIUS_ATTRIBUTE_ACCT_INTERIM_INTERVAL = (int) 201326677,
  RADIUS_ATTRIBUTE_NAS_IPv6_ADDRESS = (int) 201326687,
  RADIUS_ATTRIBUTE_FRAMED_INTERFACE_ID = (int) 201326688,
  RADIUS_ATTRIBUTE_FRAMED_IPv6_PREFIX = (int) 201326689,
  RADIUS_ATTRIBUTE_LOGIN_IPv6_HOST = (int) 201326690,
  RADIUS_ATTRIBUTE_FRAMED_IPv6_ROUTE = (int) 201326691,
  RADIUS_ATTRIBUTE_FRAMED_IPv6_POOL = (int) 201326692,
  IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IP_ADDRESS = (int) 201330688,
  IAS_ATTRIBUTE_SAVED_RADIUS_CALLBACK_NUMBER = (int) 201330689,
  IAS_ATTRIBUTE_NP_CALLING_STATION_ID = (int) 201330690,
  IAS_ATTRIBUTE_SAVED_NP_CALLING_STATION_ID = (int) 201330691,
  IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_ROUTE = (int) 201330692,
  IAS_ATTRIBUTE_IGNORE_USER_DIALIN_PROPERTIES = (int) 201330693,
  IAS_ATTRIBUTE_NP_TIME_OF_DAY = (int) 201330694,
  IAS_ATTRIBUTE_NP_CALLED_STATION_ID = (int) 201330695,
  IAS_ATTRIBUTE_NP_ALLOWED_PORT_TYPES = (int) 201330696,
  IAS_ATTRIBUTE_NP_AUTHENTICATION_TYPE = (int) 201330697,
  IAS_ATTRIBUTE_NP_ALLOWED_EAP_TYPE = (int) 201330698,
  IAS_ATTRIBUTE_SHARED_SECRET = (int) 201330699,
  IAS_ATTRIBUTE_CLIENT_IP_ADDRESS = (int) 201330700,
  IAS_ATTRIBUTE_CLIENT_PACKET_HEADER = (int) 201330701,
  IAS_ATTRIBUTE_TOKEN_GROUPS = (int) 201330702,
  IAS_ATTRIBUTE_ALLOW_DIALIN = (int) 201330703,
  IAS_ATTRIBUTE_REQUEST_ID = (int) 201330704,
  IAS_ATTRIBUTE_MANIPULATION_TARGET = (int) 201330705,
  IAS_ATTRIBUTE_MANIPULATION_RULE = (int) 201330706,
  IAS_ATTRIBUTE_ORIGINAL_USER_NAME = (int) 201330707,
  IAS_ATTRIBUTE_CLIENT_VENDOR_TYPE = (int) 201330708,
  IAS_ATTRIBUTE_CLIENT_UDP_PORT = (int) 201330709,
  MS_ATTRIBUTE_CHAP_CHALLENGE = (int) 201330710,
  MS_ATTRIBUTE_CHAP_RESPONSE = (int) 201330711,
  MS_ATTRIBUTE_CHAP_DOMAIN = (int) 201330712,
  MS_ATTRIBUTE_CHAP_ERROR = (int) 201330713,
  MS_ATTRIBUTE_CHAP_CPW1 = (int) 201330714,
  MS_ATTRIBUTE_CHAP_CPW2 = (int) 201330715,
  MS_ATTRIBUTE_CHAP_LM_ENC_PW = (int) 201330716,
  MS_ATTRIBUTE_CHAP_NT_ENC_PW = (int) 201330717,
  MS_ATTRIBUTE_CHAP_MPPE_KEYS = (int) 201330718,
  IAS_ATTRIBUTE_AUTHENTICATION_TYPE = (int) 201330719,
  IAS_ATTRIBUTE_CLIENT_NAME = (int) 201330720,
  IAS_ATTRIBUTE_NT4_ACCOUNT_NAME = (int) 201330721,
  IAS_ATTRIBUTE_FULLY_QUALIFIED_USER_NAME = (int) 201330722,
  IAS_ATTRIBUTE_NTGROUPS = (int) 201330723,
  IAS_ATTRIBUTE_EAP_FRIENDLY_NAME = (int) 201330724,
  IAS_ATTRIBUTE_AUTH_PROVIDER_TYPE = (int) 201330725,
  MS_ATTRIBUTE_ACCT_AUTH_TYPE = (int) 201330726,
  MS_ATTRIBUTE_ACCT_EAP_TYPE = (int) 201330727,
  IAS_ATTRIBUTE_PACKET_TYPE = (int) 201330728,
  IAS_ATTRIBUTE_AUTH_PROVIDER_NAME = (int) 201330729,
  IAS_ATTRIBUTE_ACCT_PROVIDER_TYPE = (int) 201330730,
  IAS_ATTRIBUTE_ACCT_PROVIDER_NAME = (int) 201330731,
  MS_ATTRIBUTE_MPPE_SEND_KEY = (int) 201330732,
  MS_ATTRIBUTE_MPPE_RECV_KEY = (int) 201330733,
  IAS_ATTRIBUTE_REASON_CODE = (int) 201330734,
  MS_ATTRIBUTE_FILTER = (int) 201330735,
  MS_ATTRIBUTE_CHAP2_RESPONSE = (int) 201330736,
  MS_ATTRIBUTE_CHAP2_SUCCESS = (int) 201330737,
  MS_ATTRIBUTE_CHAP2_CPW = (int) 201330738,
  MS_ATTRIBUTE_RAS_VENDOR = (int) 201330739,
  MS_ATTRIBUTE_RAS_VERSION = (int) 201330740,
  IAS_ATTRIBUTE_NP_NAME = (int) 201330741,
  MS_ATTRIBUTE_PRIMARY_DNS_SERVER = (int) 201330742,
  MS_ATTRIBUTE_SECONDARY_DNS_SERVER = (int) 201330743,
  MS_ATTRIBUTE_PRIMARY_NBNS_SERVER = (int) 201330744,
  MS_ATTRIBUTE_SECONDARY_NBNS_SERVER = (int) 201330745,
  IAS_ATTRIBUTE_PROXY_POLICY_NAME = (int) 201330746,
  IAS_ATTRIBUTE_PROVIDER_TYPE = (int) 201330747,
  IAS_ATTRIBUTE_PROVIDER_NAME = (int) 201330748,
  IAS_ATTRIBUTE_REMOTE_SERVER_ADDRESS = (int) 201330749,
  IAS_ATTRIBUTE_GENERATE_CLASS_ATTRIBUTE = (int) 201330750,
  MS_ATTRIBUTE_RAS_CLIENT_NAME = (int) 201330751,
  MS_ATTRIBUTE_RAS_CLIENT_VERSION = (int) 201330752,
  IAS_ATTRIBUTE_ALLOWED_CERTIFICATE_EKU = (int) 201330753,
  IAS_ATTRIBUTE_EXTENSION_STATE = (int) 201330754,
  IAS_ATTRIBUTE_GENERATE_SESSION_TIMEOUT = (int) 201330755,
  MS_ATTRIBUTE_SESSION_TIMEOUT = (int) 201330756,
  MS_ATTRIBUTE_QUARANTINE_IPFILTER = (int) 201330757,
  MS_ATTRIBUTE_QUARANTINE_SESSION_TIMEOUT = (int) 201330758,
  MS_ATTRIBUTE_USER_SECURITY_IDENTITY = (int) 201330759,
  IAS_ATTRIBUTE_REMOTE_RADIUS_TO_WINDOWS_USER_MAPPING = (int) 201330760,
  IAS_ATTRIBUTE_PASSPORT_USER_MAPPING_UPN_SUFFIX = (int) 201330761,
  IAS_ATTRIBUTE_TUNNEL_TAG = (int) 201330762,
  IAS_ATTRIBUTE_NP_PEAPUPFRONT_ENABLED = (int) 201330763,
  IAS_ATTRIBUTE_CERTIFICATE_EKU = (int) 201334689,
  IAS_ATTRIBUTE_EAP_CONFIG = (int) 201334690,
  MS_ATTRIBUTE_PEAP_EMBEDDED_EAP_TYPEID = (int) 201334691,
  MS_ATTRIBUTE_PEAP_FAST_ROAMED_SESSION = (int) 201334692,
  IAS_ATTRIBUTE_EAP_TYPEID = (int) 201334693,
  MS_ATTRIBUTE_EAP_TLV = (int) 201334694,
  IAS_ATTRIBUTE_REJECT_REASON_CODE = (int) 201334695,
  IAS_ATTRIBUTE_PROXY_EAP_CONFIG = (int) 201334696,
  IAS_ATTRIBUTE_EAP_SESSION = (int) 201334697,
  IAS_ATTRIBUTE_IS_REPLAY = (int) 201334698,
  IAS_ATTRIBUTE_CLEAR_TEXT_PASSWORD = (int) 201334699,
  MS_ATTRIBUTE_IDENTITY_TYPE = (int) 201334700,
  MS_ATTRIBUTE_SERVICE_CLASS = (int) 201334701,
  MS_ATTRIBUTE_QUARANTINE_USER_CLASS = (int) 201334702,
  MS_ATTRIBUTE_QUARANTINE_STATE = (int) 201334703,
  IAS_ATTRIBUTE_OVERRIDE_RAP_AUTH = (int) 201334704,
  IAS_ATTRIBUTE_PEAP_CHANNEL_UP = (int) 201334705,
  IAS_ATTRIBUTE_NAME_MAPPED = (int) 201334706,
  IAS_ATTRIBUTE_POLICY_ENFORCED = (int) 201334707,
  IAS_ATTRIBUTE_MACHINE_NTGROUPS = (int) 201334708,
  IAS_ATTRIBUTE_USER_NTGROUPS = (int) 201334709,
  IAS_ATTRIBUTE_MACHINE_TOKEN_GROUPS = (int) 201334710,
  IAS_ATTRIBUTE_USER_TOKEN_GROUPS = (int) 201334711,
  MS_ATTRIBUTE_QUARANTINE_GRACE_TIME = (int) 201334712,
  IAS_ATTRIBUTE_QUARANTINE_URL = (int) 201334713,
  IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS = (int) 201334714,
  MS_ATTRIBUTE_NOT_QUARANTINE_CAPABLE = (int) 201334715,
  IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_RESULT = (int) 201334716,
  IAS_ATTRIBUTE_QUARANTINE_SYSTEM_HEALTH_VALIDATORS = (int) 201334717,
  IAS_ATTRIBUTE_MACHINE_NAME = (int) 201334718,
  IAS_ATTRIBUTE_NT4_MACHINE_NAME = (int) 201334719,
  IAS_ATTRIBUTE_QUARANTINE_SESSION_HANDLE = (int) 201334720,
  IAS_ATTRIBUTE_FULLY_QUALIFIED_MACHINE_NAME = (int) 201334721,
  IAS_ATTRIBUTE_QUARANTINE_FIXUP_SERVERS_CONFIGURATION = (int) 201334722,
  IAS_ATTRIBUTE_CLIENT_QUARANTINE_COMPATIBLE = (int) 201334723,
  MS_ATTRIBUTE_NETWORK_ACCESS_SERVER_TYPE = (int) 201334724,
  IAS_ATTRIBUTE_QUARANTINE_SESSION_ID = (int) 201334725,
  MS_ATTRIBUTE_AFW_QUARANTINE_ZONE = (int) 201334726,
  MS_ATTRIBUTE_AFW_PROTECTION_LEVEL = (int) 201334727,
  IAS_ATTRIBUTE_QUARANTINE_UPDATE_NON_COMPLIANT = (int) 201334728,
  IAS_ATTRIBUTE_REQUEST_START_TIME = (int) 201334729,
  MS_ATTRIBUTE_MACHINE_NAME = (int) 201334730,
  IAS_ATTRIBUTE_CLIENT_IPv6_ADDRESS = (int) 201334731,
  IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_INTERFACE_ID = (int) 201334732,
  IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_PREFIX = (int) 201334733,
  IAS_ATTRIBUTE_SAVED_RADIUS_FRAMED_IPv6_ROUTE = (int) 201334734,
  MS_ATTRIBUTE_QUARANTINE_GRACE_TIME_CONFIGURATION = (int) 201334735,
  MS_ATTRIBUTE_IPv6_FILTER = (int) 201334736,
  MS_ATTRIBUTE_IPV4_REMEDIATION_SERVERS = (int) 201334737,
  MS_ATTRIBUTE_IPV6_REMEDIATION_SERVERS = (int) 201334738,
  IAS_ATTRIBUTE_PROXY_RETRY_COUNT = (int) 201334739,
  IAS_ATTRIBUTE_MACHINE_INVENTORY = (int) 201334740,
  IAS_ATTRIBUTE_ABSOLUTE_TIME = (int) 201334741,
  MS_ATTRIBUTE_QUARANTINE_SOH = (int) 201334742,
  IAS_ATTRIBUTE_EAP_TYPES_CONFIGURED_IN_PROXYPOLICY = (int) 201334743,
  MS_ATTRIBUTE_HCAP_LOCATION_GROUP_NAME = (int) 201334744,
  MS_ATTRIBUTE_EXTENDED_QUARANTINE_STATE = (int) 201334745,
  IAS_ATTRIBUTE_SOH_CARRIER_EAPTLV = (int) 201334746,
  MS_ATTRIBUTE_HCAP_USER_GROUPS = (int) 201334747,
  IAS_ATTRIBUTE_SAVED_MACHINE_HEALTHCHECK_ONLY = (int) 201334748,
  IAS_ATTRIBUTE_POLICY_EVALUATED_SHV = (int) 201334749,
  MS_ATTRIBUTE_RAS_CORRELATION_ID = (int) 201334750,
  MS_ATTRIBUTE_HCAP_USER_NAME = (int) 201334751,
  IAS_ATTRIBUTE_NT4_HCAP_ACCOUNT_NAME = (int) 201334752,
  IAS_ATTRIBUTE_USER_TOKEN_SID = (int) 201334753,
  IAS_ATTRIBUTE_MACHINE_TOKEN_SID = (int) 201334754,
  IAS_ATTRIBUTE_MACHINE_VALIDATED = (int) 201334755,
  MS_ATTRIBUTE_USER_IPv4_ADDRESS = (int) 201334756,
  MS_ATTRIBUTE_USER_IPv6_ADDRESS = (int) 201334757,
  MS_ATTRIBUTE_TSG_DEVICE_REDIRECTION = (int) 201334758,
  IAS_ATTRIBUTE_ACCEPT_REASON_CODE = (int) 201334759,
  RAS_ATTRIBUTE_ENCRYPTION_TYPE = (int) -90,
  RAS_ATTRIBUTE_ENCRYPTION_POLICY = (int) -89,
  RAS_ATTRIBUTE_BAP_REQUIRED = (int) -88,
  RAS_ATTRIBUTE_BAP_LINE_DOWN_TIME = (int) -87,
  RAS_ATTRIBUTE_BAP_LINE_DOWN_LIMIT = (int) -86
};
enum _NEW_LOG_FILE_FREQUENCY
{
  IAS_LOGGING_UNLIMITED_SIZE = (int) 201326592,
  IAS_LOGGING_DAILY = (int) 201326593,
  IAS_LOGGING_WEEKLY = (int) 201326594,
  IAS_LOGGING_MONTHLY = (int) 201326595,
  IAS_LOGGING_WHEN_FILE_SIZE_REACHES = (int) 201326596
};
enum _AUTHENTICATION_TYPE
{
  IAS_AUTH_INVALID = (int) 201326592,
  IAS_AUTH_PAP = (int) 201326593,
  IAS_AUTH_MD5CHAP = (int) 201326594,
  IAS_AUTH_MSCHAP = (int) 201326595,
  IAS_AUTH_MSCHAP2 = (int) 201326596,
  IAS_AUTH_EAP = (int) 201326597,
  IAS_AUTH_ARAP = (int) 201326598,
  IAS_AUTH_NONE = (int) 201326599,
  IAS_AUTH_CUSTOM = (int) 201326600,
  IAS_AUTH_MSCHAP_CPW = (int) 201326601,
  IAS_AUTH_MSCHAP2_CPW = (int) 201326602,
  IAS_AUTH_PEAP = (int) 201326603
};
enum _IDENTITY_TYPE
{
  IAS_IDENTITY_NO_DEFAULT = (int) 201326593
};
enum _ATTRIBUTESYNTAX
{
  IAS_SYNTAX_BOOLEAN = (int) 201326593,
  IAS_SYNTAX_INTEGER = (int) 201326594,
  IAS_SYNTAX_ENUMERATOR = (int) 201326595,
  IAS_SYNTAX_INETADDR = (int) 201326596,
  IAS_SYNTAX_STRING = (int) 201326597,
  IAS_SYNTAX_OCTETSTRING = (int) 201326598,
  IAS_SYNTAX_UTCTIME = (int) 201326599,
  IAS_SYNTAX_PROVIDERSPECIFIC = (int) 201326600,
  IAS_SYNTAX_UNSIGNEDINTEGER = (int) 201326601,
  IAS_SYNTAX_INETADDR6 = (int) 201326602
};
enum _ATTRIBUTERESTRICTIONS
{
  MULTIVALUED = (int) 201326593,
  ALLOWEDINPROFILE = (int) 201326594,
  ALLOWEDINCONDITION = (int) 201326596,
  ALLOWEDINPROXYPROFILE = (int) 201326600,
  ALLOWEDINPROXYCONDITION = (int) 201326608,
  ALLOWEDINVPNDIALUP = (int) 201326624,
  ALLOWEDIN8021X = (int) 201326656
};
enum _ATTRIBUTEFILTER
{
  ATTRIBUTE_FILTER_NONE = (int) 201326592,
  ATTRIBUTE_FILTER_VPN_DIALUP = (int) 201326593,
  ATTRIBUTE_FILTER_IEEE_802_1x = (int) 201326594
};
enum _ATTRIBUTEINFO
{
  NAME = (int) 201326593,
  SYNTAX = (int) 201326594,
  RESTRICTIONS = (int) 201326595,
  DESCRIPTION = (int) 201326596,
  VENDORID = (int) 201326597,
  LDAPNAME = (int) 201326598,
  VENDORTYPE = (int) 201326599
};
enum _IASCOMMONPROPERTIES
{
  PROPERTY_SDO_RESERVED = (int) 201326592,
  PROPERTY_SDO_CLASS = (int) 201326593,
  PROPERTY_SDO_NAME = (int) 201326594,
  PROPERTY_SDO_DESCRIPTION = (int) 201326595,
  PROPERTY_SDO_ID = (int) 201326596,
  PROPERTY_SDO_DATASTORE_NAME = (int) 201326597,
  PROPERTY_SDO_START = (int) 201327616
};
enum _USERPROPERTIES
{
  PROPERTY_USER_CALLING_STATION_ID = (int) 201327616,
  PROPERTY_USER_SAVED_CALLING_STATION_ID = (int) 201327617,
  PROPERTY_USER_RADIUS_CALLBACK_NUMBER = (int) 201327618,
  PROPERTY_USER_RADIUS_FRAMED_ROUTE = (int) 201327619,
  PROPERTY_USER_RADIUS_FRAMED_IP_ADDRESS = (int) 201327620,
  PROPERTY_USER_SAVED_RADIUS_CALLBACK_NUMBER = (int) 201327621,
  PROPERTY_USER_SAVED_RADIUS_FRAMED_ROUTE = (int) 201327622,
  PROPERTY_USER_SAVED_RADIUS_FRAMED_IP_ADDRESS = (int) 201327623,
  PROPERTY_USER_ALLOW_DIALIN = (int) 201327624,
  PROPERTY_USER_SERVICE_TYPE = (int) 201327625,
  PROPERTY_USER_RADIUS_FRAMED_IPV6_ROUTE = (int) 201327626,
  PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_ROUTE = (int) 201327627,
  PROPERTY_USER_RADIUS_FRAMED_INTERFACE_ID = (int) 201327628,
  PROPERTY_USER_SAVED_RADIUS_FRAMED_INTERFACE_ID = (int) 201327629,
  PROPERTY_USER_RADIUS_FRAMED_IPV6_PREFIX = (int) 201327630,
  PROPERTY_USER_SAVED_RADIUS_FRAMED_IPV6_PREFIX = (int) 201327631
};
enum _DICTIONARYPROPERTIES
{
  PROPERTY_DICTIONARY_ATTRIBUTES_COLLECTION = (int) 201327616,
  PROPERTY_DICTIONARY_LOCATION = (int) 201327617
};
enum _ATTRIBUTEPROPERTIES
{
  PROPERTY_ATTRIBUTE_ID = (int) 201327616,
  PROPERTY_ATTRIBUTE_VENDOR_ID = (int) 201327617,
  PROPERTY_ATTRIBUTE_VENDOR_TYPE_ID = (int) 201327618,
  PROPERTY_ATTRIBUTE_IS_ENUMERABLE = (int) 201327619,
  PROPERTY_ATTRIBUTE_ENUM_NAMES = (int) 201327620,
  PROPERTY_ATTRIBUTE_ENUM_VALUES = (int) 201327621,
  PROPERTY_ATTRIBUTE_SYNTAX = (int) 201327622,
  PROPERTY_ATTRIBUTE_ALLOW_MULTIPLE = (int) 201327623,
  PROPERTY_ATTRIBUTE_ALLOW_LOG_ORDINAL = (int) 201327624,
  PROPERTY_ATTRIBUTE_ALLOW_IN_PROFILE = (int) 201327625,
  PROPERTY_ATTRIBUTE_ALLOW_IN_CONDITION = (int) 201327626,
  PROPERTY_ATTRIBUTE_DISPLAY_NAME = (int) 201327627,
  PROPERTY_ATTRIBUTE_VALUE = (int) 201327628,
  PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_PROFILE = (int) 201327629,
  PROPERTY_ATTRIBUTE_ALLOW_IN_PROXY_CONDITION = (int) 201327630,
  PROPERTY_ATTRIBUTE_ALLOW_IN_VPNDIALUP = (int) 201327631,
  PROPERTY_ATTRIBUTE_ALLOW_IN_8021X = (int) 201327632,
  PROPERTY_ATTRIBUTE_ENUM_FILTERS = (int) 201327633
};
enum _IASPROPERTIES
{
  PROPERTY_IAS_RADIUSSERVERGROUPS_COLLECTION = (int) 201327616,
  PROPERTY_IAS_POLICIES_COLLECTION = (int) 201327617,
  PROPERTY_IAS_PROFILES_COLLECTION = (int) 201327618,
  PROPERTY_IAS_PROTOCOLS_COLLECTION = (int) 201327619,
  PROPERTY_IAS_AUDITORS_COLLECTION = (int) 201327620,
  PROPERTY_IAS_REQUESTHANDLERS_COLLECTION = (int) 201327621,
  PROPERTY_IAS_PROXYPOLICIES_COLLECTION = (int) 201327622,
  PROPERTY_IAS_PROXYPROFILES_COLLECTION = (int) 201327623,
  PROPERTY_IAS_REMEDIATIONSERVERGROUPS_COLLECTION = (int) 201327624,
  PROPERTY_IAS_SHVTEMPLATES_COLLECTION = (int) 201327625
};
enum _CLIENTPROPERTIES
{
  PROPERTY_CLIENT_REQUIRE_SIGNATURE = (int) 201327616,
  PROPERTY_CLIENT_UNUSED = (int) 201327617,
  PROPERTY_CLIENT_SHARED_SECRET = (int) 201327618,
  PROPERTY_CLIENT_NAS_MANUFACTURER = (int) 201327619,
  PROPERTY_CLIENT_ADDRESS = (int) 201327620,
  PROPERTY_CLIENT_QUARANTINE_COMPATIBLE = (int) 201327621,
  PROPERTY_CLIENT_ENABLED = (int) 201327622
};
enum _VENDORPROPERTIES
{
  PROPERTY_NAS_VENDOR_ID = (int) 201327616
};
enum _PROFILEPROPERTIES
{
  PROPERTY_PROFILE_ATTRIBUTES_COLLECTION = (int) 201327616
};
enum _POLICYPROPERTIES
{
  PROPERTY_POLICY_CONSTRAINT = (int) 201327616,
  PROPERTY_POLICY_MERIT = (int) 201327617,
  PROPERTY_POLICY_UNUSED0 = (int) 201327618,
  PROPERTY_POLICY_UNUSED1 = (int) 201327619,
  PROPERTY_POLICY_PROFILE_NAME = (int) 201327620,
  PROPERTY_POLICY_ACTION = (int) 201327621,
  PROPERTY_POLICY_CONDITIONS_COLLECTION = (int) 201327622,
  PROPERTY_POLICY_ENABLED = (int) 201327623,
  PROPERTY_POLICY_SOURCETAG = (int) 201327624
};
enum _CONDITIONPROPERTIES
{
  PROPERTY_CONDITION_TEXT = (int) 201327616
};
enum _RADIUSSERVERGROUPPROPERTIES
{
  PROPERTY_RADIUSSERVERGROUP_SERVERS_COLLECTION = (int) 201327616
};
enum _RADIUSSERVERPROPERTIES
{
  PROPERTY_RADIUSSERVER_AUTH_PORT = (int) 201327616,
  PROPERTY_RADIUSSERVER_AUTH_SECRET = (int) 201327617,
  PROPERTY_RADIUSSERVER_ACCT_PORT = (int) 201327618,
  PROPERTY_RADIUSSERVER_ACCT_SECRET = (int) 201327619,
  PROPERTY_RADIUSSERVER_ADDRESS = (int) 201327620,
  PROPERTY_RADIUSSERVER_FORWARD_ACCT_ONOFF = (int) 201327621,
  PROPERTY_RADIUSSERVER_PRIORITY = (int) 201327622,
  PROPERTY_RADIUSSERVER_WEIGHT = (int) 201327623,
  PROPERTY_RADIUSSERVER_TIMEOUT = (int) 201327624,
  PROPERTY_RADIUSSERVER_MAX_LOST = (int) 201327625,
  PROPERTY_RADIUSSERVER_BLACKOUT = (int) 201327626,
  PROPERTY_RADIUSSERVER_SEND_SIGNATURE = (int) 201327627
};
enum _REMEDIATIONSERVERGROUPPROPERTIES
{
  PROPERTY_REMEDIATIONSERVERGROUP_SERVERS_COLLECTION = (int) 201327616
};
enum _REMEDIATIONSERVERPROPERTIES
{
  PROPERTY_REMEDIATIONSERVER_ADDRESS = (int) 201327616,
  PROPERTY_REMEDIATIONSERVER_FRIENDLY_NAME = (int) 201327617
};
enum _SHVTEMPLATEPROPERTIES
{
  PROPERTY_SHV_COMBINATION_TYPE = (int) 201327616,
  PROPERTY_SHV_LIST = (int) 201327617
};
enum _IASCOMPONENTPROPERTIES
{
  PROPERTY_COMPONENT_ID = (int) 201327616,
  PROPERTY_COMPONENT_PROG_ID = (int) 201327617,
  PROPERTY_COMPONENT_START = (int) 201327618
};
enum _PROTOCOLPROPERTIES
{
  PROPERTY_PROTOCOL_REQUEST_HANDLER = (int) 201327618,
  PROPERTY_PROTOCOL_START = (int) 201327619
};
enum _RADIUSPROPERTIES
{
  PROPERTY_RADIUS_ACCOUNTING_PORT = (int) 201327619,
  PROPERTY_RADIUS_AUTHENTICATION_PORT = (int) 201327620,
  PROPERTY_RADIUS_CLIENTS_COLLECTION = (int) 201327621,
  PROPERTY_RADIUS_VENDORS_COLLECTION = (int) 201327622
};
enum _NTEVENTLOGPROPERTIES
{
  PROPERTY_EVENTLOG_LOG_APPLICATION_EVENTS = (int) 201327618,
  PROPERTY_EVENTLOG_LOG_MALFORMED = (int) 201327619,
  PROPERTY_EVENTLOG_LOG_DEBUG = (int) 201327620
};
enum _NAMESPROPERTIES
{
  PROPERTY_NAMES_REALMS = (int) 201327618
};
enum _NTSAMPROPERTIES
{
  PROPERTY_NTSAM_ALLOW_LM_AUTHENTICATION = (int) 201327618
};
enum _ACCOUNTINGPROPERTIES
{
  PROPERTY_ACCOUNTING_LOG_ACCOUNTING = (int) 201327618,
  PROPERTY_ACCOUNTING_LOG_ACCOUNTING_INTERIM = (int) 201327619,
  PROPERTY_ACCOUNTING_LOG_AUTHENTICATION = (int) 201327620,
  PROPERTY_ACCOUNTING_LOG_OPEN_NEW_FREQUENCY = (int) 201327621,
  PROPERTY_ACCOUNTING_LOG_OPEN_NEW_SIZE = (int) 201327622,
  PROPERTY_ACCOUNTING_LOG_FILE_DIRECTORY = (int) 201327623,
  PROPERTY_ACCOUNTING_LOG_IAS1_FORMAT = (int) 201327624,
  PROPERTY_ACCOUNTING_LOG_ENABLE_LOGGING = (int) 201327625,
  PROPERTY_ACCOUNTING_LOG_DELETE_IF_FULL = (int) 201327626,
  PROPERTY_ACCOUNTING_SQL_MAX_SESSIONS = (int) 201327627,
  PROPERTY_ACCOUNTING_LOG_AUTHENTICATION_INTERIM = (int) 201327628
};
enum _EAPWRAPPROPERTIES
{
  PROPERTY_EAP_SESSION_TIMEOUT = (int) 201327618,
  PROPERTY_EAP_MAX_SESSIONS = (int) 201327619
};
enum _NAPPROPERTIES
{
  PROPERTY_NAP_POLICIES_COLLECTION = (int) 201327618,
  PROPERTY_SHV_TEMPLATES_COLLECTION = (int) 201327619
};
enum _RADIUSPROXYPROPERTIES
{
  PROPERTY_RADIUSPROXY_SERVERGROUPS = (int) 201327618
};
enum _REMEDIATIONSERVERSPROPERTIES
{
  PROPERTY_REMEDIATIONSERVERS_SERVERGROUPS = (int) 201327618
};
enum _SHV_COMBINATION_TYPE
{
  SHV_COMBINATION_TYPE_ALL_PASS = (int) 201326592,
  SHV_COMBINATION_TYPE_ALL_FAIL = (int) 201326593,
  SHV_COMBINATION_TYPE_ONE_OR_MORE_PASS = (int) 201326594,
  SHV_COMBINATION_TYPE_ONE_OR_MORE_FAIL = (int) 201326595,
  SHV_COMBINATION_TYPE_ONE_OR_MORE_INFECTED = (int) 201326596,
  SHV_COMBINATION_TYPE_ONE_OR_MORE_TRANSITIONAL = (int) 201326597,
  SHV_COMBINATION_TYPE_ONE_OR_MORE_UNKNOWN = (int) 201326598,
  SHV_COMBINATION_TYPE_MAX = (int) 201326599
};
enum _SERVICE_TYPE
{
  SERVICE_TYPE_IAS = (int) 201326592,
  SERVICE_TYPE_RAS = (int) 201326593,
  SERVICE_TYPE_MAX = (int) 201326594
};
enum _IASOSTYPE
{
  SYSTEM_TYPE_NT4_WORKSTATION = (int) 201326592,
  SYSTEM_TYPE_NT5_WORKSTATION = (int) 201326593,
  SYSTEM_TYPE_NT6_WORKSTATION = (int) 201326594,
  SYSTEM_TYPE_NT4_SERVER = (int) 201326595,
  SYSTEM_TYPE_NT5_SERVER = (int) 201326596,
  SYSTEM_TYPE_NT6_SERVER = (int) 201326597
};
enum _DOMAINTYPE
{
  DOMAIN_TYPE_NONE = (int) 201326592,
  DOMAIN_TYPE_NT4 = (int) 201326593,
  DOMAIN_TYPE_NT5 = (int) 201326594,
  DOMAIN_TYPE_MIXED = (int) 201326595
};
enum _IASDATASTORE
{
  DATA_STORE_LOCAL = (int) 201326592,
  DATA_STORE_DIRECTORY = (int) 201326593
};

/* Type definitions.  */
typedef enum _ATTRIBUTEID ATTRIBUTEID;
typedef enum _NEW_LOG_FILE_FREQUENCY NEW_LOG_FILE_FREQUENCY;
typedef enum _AUTHENTICATION_TYPE AUTHENTICATION_TYPE;
typedef enum _IDENTITY_TYPE IDENTITY_TYPE;
typedef enum _ATTRIBUTESYNTAX ATTRIBUTESYNTAX;
typedef enum _ATTRIBUTERESTRICTIONS ATTRIBUTERESTRICTIONS;
typedef enum _ATTRIBUTEFILTER ATTRIBUTEFILTER;
typedef enum _ATTRIBUTEINFO ATTRIBUTEINFO;
typedef enum _IASCOMMONPROPERTIES IASCOMMONPROPERTIES;
typedef enum _USERPROPERTIES USERPROPERTIES;
typedef enum _DICTIONARYPROPERTIES DICTIONARYPROPERTIES;
typedef enum _ATTRIBUTEPROPERTIES ATTRIBUTEPROPERTIES;
typedef enum _IASPROPERTIES IASPROPERTIES;
typedef enum _CLIENTPROPERTIES CLIENTPROPERTIES;
typedef enum _VENDORPROPERTIES VENDORPROPERTIES;
typedef enum _PROFILEPROPERTIES PROFILEPROPERTIES;
typedef enum _POLICYPROPERTIES POLICYPROPERTIES;
typedef enum _CONDITIONPROPERTIES CONDITIONPROPERTIES;
typedef enum _RADIUSSERVERGROUPPROPERTIES RADIUSSERVERGROUPPROPERTIES;
typedef enum _RADIUSSERVERPROPERTIES RADIUSSERVERPROPERTIES;
typedef enum _REMEDIATIONSERVERGROUPPROPERTIES REMEDIATIONSERVERGROUPPROPERTIES;
typedef enum _REMEDIATIONSERVERPROPERTIES REMEDIATIONSERVERPROPERTIES;
typedef enum _SHVTEMPLATEPROPERTIES SHVTEMPLATEPROPERTIES;
typedef enum _IASCOMPONENTPROPERTIES IASCOMPONENTPROPERTIES;
typedef enum _PROTOCOLPROPERTIES PROTOCOLPROPERTIES;
typedef enum _RADIUSPROPERTIES RADIUSPROPERTIES;
typedef enum _NTEVENTLOGPROPERTIES NTEVENTLOGPROPERTIES;
typedef enum _NAMESPROPERTIES NAMESPROPERTIES;
typedef enum _NTSAMPROPERTIES NTSAMPROPERTIES;
typedef enum _ACCOUNTINGPROPERTIES ACCOUNTINGPROPERTIES;
typedef enum _EAPWRAPPROPERTIES EAPWRAPPROPERTIES;
typedef enum _NAPPROPERTIES NAPPROPERTIES;
typedef enum _RADIUSPROXYPROPERTIES RADIUSPROXYPROPERTIES;
typedef enum _REMEDIATIONSERVERSPROPERTIES REMEDIATIONSERVERSPROPERTIES;
typedef enum _SHV_COMBINATION_TYPE SHV_COMBINATION_TYPE;
typedef enum _SERVICE_TYPE SERVICE_TYPE;
typedef enum _IASOSTYPE IASOSTYPE;
typedef enum _IASOSTYPE * PIASOSTYPE;
typedef enum _DOMAINTYPE IASDOMAINTYPE;
typedef enum _DOMAINTYPE * PIASDOMAINTYPE;
typedef enum _IASDATASTORE IASDATASTORE;
typedef enum _IASDATASTORE * PIASDATASTORE;

[
  uuid(81DDF732-4AA8-4A35-BDFF-8B42EFE7C624),
  version(1.0),
  helpstring("IAS SDO 1.0 Type Library")
]
library sdoiaslib
{
  importlib("stdole2.tlb");

   /* CoClass declarations.  */
   [
     uuid(E9218AE7-9E91-11D1-BF60-0080C7846BC0),
     cancreate
   ]
   coclass SdoMachine
   {
     dispinterface ISdoMachine;
   };

   /* Dispatch interface declarations.  */
   [
     uuid(479F6E75-49A2-11D2-8ECA-00C04FC2F519),
     dual,
     oleautomation,
     dispatchable
   ]
   dispinterface ISdoMachine : IDispatch
   {
     [id(1)]
     HRESULT __stdcall Attach (
       [in] BSTR bstrComputerName
     );
     HRESULT __stdcall GetDictionarySDO (
       [out retval] IUnknown **ppDictionarySDO
     );
     HRESULT __stdcall GetServiceSDO (
       [in] IASDATASTORE eDataStore,
       [in] BSTR bstrServiceName,
       [out retval] IUnknown **ppServiceSDO
     );
     HRESULT __stdcall GetUserSDO (
       [in] IASDATASTORE eDataStore,
       [in] BSTR bstrUserName,
       [out retval] IUnknown **ppUserSDO
     );
     HRESULT __stdcall GetOSType (
       [out retval] IASOSTYPE *eOSType
     );
     HRESULT __stdcall GetDomainType (
       [out retval] IASDOMAINTYPE *eDomainType
     );
     HRESULT __stdcall IsDirectoryAvailable (
       [out retval] WINBOOL *boolDirectoryAvailable
     );
     HRESULT __stdcall GetAttachedComputer (
       [out retval] BSTR *bstrComputerName
     );
     [hidden]
     HRESULT __stdcall GetSDOSchema (
       [out retval] IUnknown **ppSDOSchema
     );
   };
   [
     uuid(479F6E74-49A2-11D2-8ECA-00C04FC2F519),
     dual,
     oleautomation,
     dispatchable
   ]
   dispinterface ISdoServiceControl : IDispatch
   {
     [id(1)]
     HRESULT __stdcall StartService (void);
     HRESULT __stdcall StopService (void);
     HRESULT __stdcall GetServiceStatus (
       [out retval] long *status
     );
     HRESULT __stdcall ResetService (void);
   };
   [
     uuid(56BC53DE-96DB-11D1-BF3F-000000000000),
     dual,
     oleautomation,
     dispatchable
   ]
   dispinterface ISdo : IDispatch
   {
     [id(1), hidden]
     HRESULT __stdcall GetPropertyInfo (
       [in] long Id,
       [out retval] IUnknown **ppPropertyInfo
     );
     HRESULT __stdcall GetProperty (
       [in] long Id,
       [out retval] VARIANT *pValue
     );
     HRESULT __stdcall PutProperty (
       [in] long Id,
       [in] VARIANT *pValue
     );
     HRESULT __stdcall ResetProperty (
       [in] long Id
     );
     HRESULT __stdcall Apply (void);
     HRESULT __stdcall Restore (void);
     [id(-4), propget]
     HRESULT __stdcall _NewEnum (
       [out retval] IUnknown **ppEnumVARIANT
     );
   };
   [
     uuid(56BC53E2-96DB-11D1-BF3F-000000000000),
     dual,
     oleautomation,
     dispatchable
   ]
   dispinterface ISdoCollection : IDispatch
   {
     [id(1), propget]
     HRESULT __stdcall Count (
       [out retval] long *pCount
     );
     HRESULT __stdcall Add (
       [in] BSTR bstrName,
       [in out] IDispatch **ppItem
     );
     HRESULT __stdcall Remove (
       [in] IDispatch * pItem
     );
     HRESULT __stdcall RemoveAll (void);
     HRESULT __stdcall Reload (void);
     HRESULT __stdcall IsNameUnique (
       [in] BSTR bstrName,
       [out retval] WINBOOL *pBool
     );
     [id(0)]
     HRESULT __stdcall Item (
       [in] VARIANT *NAME,
       [out retval] IDispatch **pItem
     );
     [id(-4), propget]
     HRESULT __stdcall _NewEnum (
       [out retval] IUnknown **ppEnumVARIANT
     );
   };
   [
     uuid(D432E5F4-53D8-11D2-9A3A-00C04FB998AC),
     dual,
     oleautomation,
     dispatchable
   ]
   dispinterface ISdoDictionaryOld : IDispatch
   {
     [id(1)]
     HRESULT __stdcall EnumAttributes (
       [in out] VARIANT *Id,
       [out retval] VARIANT *pValues
     );
     [hidden]
     HRESULT __stdcall GetAttributeInfo (
       [in] ATTRIBUTEID Id,
       [in] VARIANT *pInfoIDs,
       [out retval] VARIANT *pInfoValues
     );
     HRESULT __stdcall EnumAttributeValues (
       [in] ATTRIBUTEID Id,
       [out] VARIANT *pValueIds,
       [out retval] VARIANT *pValuesDesc
     );
     HRESULT __stdcall CreateAttribute (
       [in] ATTRIBUTEID Id,
       [out retval] IDispatch **ppAttributeObject
     );
     HRESULT __stdcall GetAttributeID (
       [in] BSTR bstrAttributeName,
       [out retval] ATTRIBUTEID *pId
     );
   };

};

