Announcement

Collapse
No announcement yet.

COM Browser Export Issue?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Michael Mattias
    replied
    >I think this will be my first NFS

    Assuming my guess (your linked thread) about old suggestions remaining on file, you will be at least the first "checkmark."

    I'm still waiting to support doubly-linked lists thus..
    Code:
    TYPE ParentType 
      ...
      pChild  AS ChildType PTR    ' pointer to first child 
     ...
    END TYPE 
    
    TYPE ChildType 
      ...
      pParent  AS ParentType PTR   ' pointer to parent
      ...
    END TYPE
    Oops.

    Workaround: make them both the same TYPE and you are OK. For some reason you can self-reference, as in ....
    Code:
    TYPE NodeType 
       ...
       pParent AS NodeType PTR   ' ref to type which is not yet fully defined. Works OK. 
       ....
    END TYPE
    MCM

    Leave a comment:


  • Steve Rossell
    replied
    The COM Browser reads the user defined types in the order they appear in the type library. It would be nice if the author of the type library put them in the proper order. Having the COM browser resolve these references would be nice but a lot of work, maybe in a future version.

    Leave a comment:


  • John Thompson
    replied
    Me, too. Quite annoying, even though it's only happened to one library so far. I think this will be my first NFS See http://powerbasic.com/support/pbforu...ad.php?t=38648

    Leave a comment:


  • George Bleck
    started a topic COM Browser Export Issue?

    COM Browser Export Issue?

    Before I call it a bug I'm looking to see if I am overlooking something...

    I am opening ACTIVEDS.TLB in the PB9.0 Com Browser and exporting the information as ADSI.INC but when I include that file I am getting compile errors due to out of sequence TYPES, UNIONS, etc.

    See the exported ADSI.INC below, I supplied a simple stub program to show the error.

    Stub Program
    Code:
    #INCLUDE "adsi.inc"
    FUNCTION PBMAIN( )
    END FUNCTION
    ADSI.INC
    Code:
    ' Generated by: PowerBASIC COM Browser v.2.00.0054
    ' DateTime    : 9/22/2008 at 3:50 PM
    ' ------------------------------------------------
    ' Library Name: ActiveDs
    ' Library File: C:\WINDOWS\system32\activeds.tlb
    ' Description : Active DS Type Library
    ' GUID : {97D25DB0-0363-11CF-ABC4-02608C9E7553}
    ' LCID : 0
    ' Version : 1.0
    ' Version Dependant ProgID's
    $PROGID_PropertyEntry = "PropertyEntry"
    $PROGID_PropertyValue = "PropertyValue"
    $PROGID_AccessControlEntry = "AccessControlEntry"
    $PROGID_AccessControlList = "AccessControlList"
    $PROGID_SecurityDescriptor = "SecurityDescriptor"
    $PROGID_LargeInteger = "LargeInteger"
    $PROGID_NameTranslate = "NameTranslate"
    $PROGID_CaseIgnoreList = "CaseIgnoreList"
    $PROGID_FaxNumber = "FaxNumber"
    $PROGID_NetAddress = "NetAddress"
    $PROGID_OctetList = "OctetList"
    $PROGID_Email = "Email"
    $PROGID_Path = "Path"
    $PROGID_ReplicaPointer = "ReplicaPointer"
    $PROGID_Timestamp = "TimeStamp"
    $PROGID_PostalAddress = "PostalAddress"
    $PROGID_BackLink = "BackLink"
    $PROGID_TypedName = "TypedName"
    $PROGID_Hold = "Hold"
    $PROGID_Pathname = "Pathname"
    $PROGID_ADSystemInfo = "ADSystemInfo"
    $PROGID_WinNTSystemInfo = "WinNTSystemInfo"
    $PROGID_DNWithBinary = "DNWithBinary"
    $PROGID_DNWithString = "DNWithString"
    $PROGID_ADsSecurityUtility = "ADsSecurityUtility"
    ' Class Indentifiers
    $CLSID_PropertyEntry = GUID$("{72D3EDC2-A4C4-11D0-8533-00C04FD8D503}")
    $CLSID_PropertyValue = GUID$("{7B9E38B0-A97C-11D0-8534-00C04FD8D503}")
    $CLSID_AccessControlEntry = GUID$("{B75AC000-9BDD-11D0-852C-00C04FD8D503}")
    $CLSID_AccessControlList = GUID$("{B85EA052-9BDD-11D0-852C-00C04FD8D503}")
    $CLSID_SecurityDescriptor = GUID$("{B958F73C-9BDD-11D0-852C-00C04FD8D503}")
    $CLSID_LargeInteger = GUID$("{927971F5-0939-11D1-8BE1-00C04FD8D503}")
    $CLSID_NameTranslate = GUID$("{274FAE1F-3626-11D1-A3A4-00C04FB950DC}")
    $CLSID_CaseIgnoreList = GUID$("{15F88A55-4680-11D1-A3B4-00C04FB950DC}")
    $CLSID_FaxNumber = GUID$("{A5062215-4681-11D1-A3B4-00C04FB950DC}")
    $CLSID_NetAddress = GUID$("{B0B71247-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_OctetList = GUID$("{1241400F-4680-11D1-A3B4-00C04FB950DC}")
    $CLSID_Email = GUID$("{8F92A857-478E-11D1-A3B4-00C04FB950DC}")
    $CLSID_Path = GUID$("{B2538919-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_ReplicaPointer = GUID$("{F5D1BADF-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_Timestamp = GUID$("{B2BED2EB-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_PostalAddress = GUID$("{0A75AFCD-4680-11D1-A3B4-00C04FB950DC}")
    $CLSID_BackLink = GUID$("{FCBF906F-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_TypedName = GUID$("{B33143CB-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_Hold = GUID$("{B3AD3E13-4080-11D1-A3AC-00C04FB950DC}")
    $CLSID_Pathname = GUID$("{080D0D78-F421-11D0-A36E-00C04FB950DC}")
    $CLSID_ADSystemInfo = GUID$("{50B6327F-AFD1-11D2-9CB9-0000F87A369E}")
    $CLSID_WinNTSystemInfo = GUID$("{66182EC4-AFD1-11D2-9CB9-0000F87A369E}")
    $CLSID_DNWithBinary = GUID$("{7E99C0A3-F935-11D2-BA96-00C04FB6D0D1}")
    $CLSID_DNWithString = GUID$("{334857CC-F934-11D2-BA96-00C04FB6D0D1}")
    $CLSID_ADsSecurityUtility = GUID$("{F270C64A-FFB8-4AE4-85FE-3A75E5347966}")
    ' Interface Indentifiers
    $IID_IADs = GUID$("{FD8256D0-FD15-11CE-ABC4-02608C9E7553}")
    $IID_IADsContainer = GUID$("{001677D0-FD16-11CE-ABC4-02608C9E7553}")
    $IID_IADsCollection = GUID$("{72B945E0-253B-11CF-A988-00AA006BC149}")
    $IID_IADsMembers = GUID$("{451A0030-72EC-11CF-B03B-00AA006E0975}")
    $IID_IADsPropertyList = GUID$("{C6F602B6-8F69-11D0-8528-00C04FD8D503}")
    $IID_IADsPropertyEntry = GUID$("{05792C8E-941F-11D0-8529-00C04FD8D503}")
    $IID_IADsPropertyValue = GUID$("{79FA9AD0-A97C-11D0-8534-00C04FD8D503}")
    $IID_IADsPropertyValue2 = GUID$("{306E831C-5BC7-11D1-A3B8-00C04FB950DC}")
    $IID_IPrivateDispatch = GUID$("{86AB4BBE-65F6-11D1-8C13-00C04FD8D503}")
    $IID_ITypeInfo = GUID$("{00020401-0000-0000-C000-000000000046}")
    $IID_ITypeComp = GUID$("{00020403-0000-0000-C000-000000000046}")
    $IID_ITypeLib = GUID$("{00020402-0000-0000-C000-000000000046}")
    $IID_IPrivateUnknown = GUID$("{89126BAB-6EAD-11D1-8C18-00C04FD8D503}")
    $IID_IADsExtension = GUID$("{3D35553C-D2B0-11D1-B17B-0000F87593A0}")
    $IID_IADsDeleteOps = GUID$("{B2BD0902-8878-11D1-8C21-00C04FD8D503}")
    $IID_IADsNamespaces = GUID$("{28B96BA0-B330-11CF-A9AD-00AA006BC149}")
    $IID_IADsClass = GUID$("{C8F93DD0-4AE0-11CF-9E73-00AA004A5691}")
    $IID_IADsProperty = GUID$("{C8F93DD3-4AE0-11CF-9E73-00AA004A5691}")
    $IID_IADsSyntax = GUID$("{C8F93DD2-4AE0-11CF-9E73-00AA004A5691}")
    $IID_IADsLocality = GUID$("{A05E03A2-EFFE-11CF-8ABC-00C04FD8D503}")
    $IID_IADsO = GUID$("{A1CD2DC6-EFFE-11CF-8ABC-00C04FD8D503}")
    $IID_IADsOU = GUID$("{A2F733B8-EFFE-11CF-8ABC-00C04FD8D503}")
    $IID_IADsDomain = GUID$("{00E4C220-FD16-11CE-ABC4-02608C9E7553}")
    $IID_IADsComputer = GUID$("{EFE3CC70-1D9F-11CF-B1F3-02608C9E7553}")
    $IID_IADsComputerOperations = GUID$("{EF497680-1D9F-11CF-B1F3-02608C9E7553}")
    $IID_IADsGroup = GUID$("{27636B00-410F-11CF-B1FF-02608C9E7553}")
    $IID_IADsUser = GUID$("{3E37E320-17E2-11CF-ABC4-02608C9E7553}")
    $IID_IADsPrintQueue = GUID$("{B15160D0-1226-11CF-A985-00AA006BC149}")
    $IID_IADsPrintQueueOperations = GUID$("{124BE5C0-156E-11CF-A986-00AA006BC149}")
    $IID_IADsPrintJob = GUID$("{32FB6780-1ED0-11CF-A988-00AA006BC149}")
    $IID_IADsPrintJobOperations = GUID$("{9A52DB30-1ECF-11CF-A988-00AA006BC149}")
    $IID_IADsService = GUID$("{68AF66E0-31CA-11CF-A98A-00AA006BC149}")
    $IID_IADsServiceOperations = GUID$("{5D7B33F0-31CA-11CF-A98A-00AA006BC149}")
    $IID_IADsFileService = GUID$("{A89D1900-31CA-11CF-A98A-00AA006BC149}")
    $IID_IADsFileServiceOperations = GUID$("{A02DED10-31CA-11CF-A98A-00AA006BC149}")
    $IID_IADsFileShare = GUID$("{EB6DCAF0-4B83-11CF-A995-00AA006BC149}")
    $IID_IADsSession = GUID$("{398B7DA0-4AAB-11CF-AE2C-00AA006EBFB9}")
    $IID_IADsResource = GUID$("{34A05B20-4AAB-11CF-AE2C-00AA006EBFB9}")
    $IID_IADsOpenDSObject = GUID$("{DDF2891E-0F9C-11D0-8AD4-00C04FD8D503}")
    $IID_IDirectoryObject = GUID$("{E798DE2C-22E4-11D0-84FE-00C04FD8D503}")
    $IID_IDirectorySearch = GUID$("{109BA8EC-92F0-11D0-A790-00C04FD8D5A8}")
    $IID_IDirectorySchemaMgmt = GUID$("{75DB3B9C-A4D8-11D0-A79C-00C04FD8D5A8}")
    $IID_IADsAggregatee = GUID$("{1346CE8C-9039-11D0-8528-00C04FD8D503}")
    $IID_IADsAggregator = GUID$("{52DB5FB0-941F-11D0-8529-00C04FD8D503}")
    $IID_IADsAccessControlEntry = GUID$("{B4F3A14C-9BDD-11D0-852C-00C04FD8D503}")
    $IID_IADsAccessControlList = GUID$("{B7EE91CC-9BDD-11D0-852C-00C04FD8D503}")
    $IID_IADsSecurityDescriptor = GUID$("{B8C787CA-9BDD-11D0-852C-00C04FD8D503}")
    $IID_IADsLargeInteger = GUID$("{9068270B-0939-11D1-8BE1-00C04FD8D503}")
    $IID_IADsNameTranslate = GUID$("{B1B272A3-3625-11D1-A3A4-00C04FB950DC}")
    $IID_IADsCaseIgnoreList = GUID$("{7B66B533-4680-11D1-A3B4-00C04FB950DC}")
    $IID_IADsFaxNumber = GUID$("{A910DEA9-4680-11D1-A3B4-00C04FB950DC}")
    $IID_IADsNetAddress = GUID$("{B21A50A9-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsOctetList = GUID$("{7B28B80F-4680-11D1-A3B4-00C04FB950DC}")
    $IID_IADsEmail = GUID$("{97AF011A-478E-11D1-A3B4-00C04FB950DC}")
    $IID_IADsPath = GUID$("{B287FCD5-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsReplicaPointer = GUID$("{F60FB803-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsAcl = GUID$("{8452D3AB-0869-11D1-A377-00C04FB950DC}")
    $IID_IADsTimestamp = GUID$("{B2F5A901-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsPostalAddress = GUID$("{7ADECF29-4680-11D1-A3B4-00C04FB950DC}")
    $IID_IADsBackLink = GUID$("{FD1302BD-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsTypedName = GUID$("{B371A349-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsHold = GUID$("{B3EB3B37-4080-11D1-A3AC-00C04FB950DC}")
    $IID_IADsObjectOptions = GUID$("{46F14FDA-232B-11D1-A808-00C04FD8D5A8}")
    $IID_IADsPathname = GUID$("{D592AED4-F420-11D0-A36E-00C04FB950DC}")
    $IID_IADsADSystemInfo = GUID$("{5BB11929-AFD1-11D2-9CB9-0000F87A369E}")
    $IID_IADsWinNTSystemInfo = GUID$("{6C6D65DC-AFD1-11D2-9CB9-0000F87A369E}")
    $IID_IADsDNWithBinary = GUID$("{7E99C0A2-F935-11D2-BA96-00C04FB6D0D1}")
    $IID_IADsDNWithString = GUID$("{370DF02E-F934-11D2-BA96-00C04FB6D0D1}")
    $IID_IADsSecurityUtility = GUID$("{A63251B2-5F21-474B-AB52-4A8EFAD10895}")
    ' Macros
    Macro ADSTYPEENUM = Long
    Macro ADS_OCTET_STRING = Tag___MIDL___MIDL_itf_ads_0000_0002
    Macro ADS_NT_SECURITY_DESCRIPTOR = Tag___MIDL___MIDL_itf_ads_0000_0003
    Macro ADS_PROV_SPECIFIC = Tag___MIDL___MIDL_itf_ads_0000_0004
    Macro ADS_PATH = Tag___MIDL___MIDL_itf_ads_0000_0005
    Macro ADS_POSTALADDRESS = Tag___MIDL___MIDL_itf_ads_0000_0006
    Macro ADS_TIMESTAMP = Tag___MIDL___MIDL_itf_ads_0000_0007
    Macro ADS_BACKLINK = Tag___MIDL___MIDL_itf_ads_0000_0008
    Macro ADS_TYPEDNAME = Tag___MIDL___MIDL_itf_ads_0000_0009
    Macro ADS_HOLD = Tag___MIDL___MIDL_itf_ads_0000_0010
    Macro ADS_NETADDRESS = Tag___MIDL___MIDL_itf_ads_0000_0011
    Macro ADS_REPLICAPOINTER = Tag___MIDL___MIDL_itf_ads_0000_0012
    Macro ADS_FAXNUMBER = Tag___MIDL___MIDL_itf_ads_0000_0013
    Macro ADS_EMAIL = Tag___MIDL___MIDL_itf_ads_0000_0014
    Macro ADS_DN_WITH_BINARY = Tag___MIDL___MIDL_itf_ads_0000_0015
    Macro ADS_DN_WITH_STRING = Tag___MIDL___MIDL_itf_ads_0000_0016
    Macro ADS_AUTHENTICATION_ENUM = Long
    Macro ADS_STATUSENUM = Long
    Macro ADS_DEREFENUM = Long
    Macro ADS_SCOPEENUM = Long
    Macro ADS_PREFERENCES_ENUM = Long
    Macro ADSI_DIALECT_ENUM = Long
    Macro ADS_CHASE_REFERRALS_ENUM = Long
    Macro ADS_SEARCHPREF_ENUM = Long
    Macro ADS_PROPERTY_OPERATION_ENUM = Long
    Macro ULONG_PTR = DWord
    Macro Const_DWORD = DWord
    Macro ADS_SYSTEMFLAG_ENUM = Long
    Macro ADS_GROUP_TYPE_ENUM = Long
    Macro ADS_RIGHTS_ENUM = Long
    Macro ADS_ACETYPE_ENUM = Long
    Macro ADS_ACEFLAG_ENUM = Long
    Macro ADS_FLAGTYPE_ENUM = Long
    Macro ADS_SD_CONTROL_ENUM = Long
    Macro ADS_SD_REVISION_ENUM = Long
    Macro ADS_NAME_TYPE_ENUM = Long
    Macro ADS_NAME_INITTYPE_ENUM = Long
    Macro ADS_OPTION_ENUM = Long
    Macro ADS_SECURITY_INFO_ENUM = Long
    Macro ADS_SETTYPE_ENUM = Long
    Macro ADS_FORMAT_ENUM = Long
    Macro ADS_DISPLAY_ENUM = Long
    Macro ADS_ESCAPE_MODE_ENUM = Long
    Macro ADS_PATHTYPE_ENUM = Long
    Macro ADS_SD_FORMAT_ENUM = Long
    ' __MIDL___MIDL_itf_ads_0000_0001 enumeration
    %ADSTYPE_INVALID = 0
    %ADSTYPE_DN_STRING = 1
    %ADSTYPE_CASE_EXACT_STRING = 2
    %ADSTYPE_CASE_IGNORE_STRING = 3
    %ADSTYPE_PRINTABLE_STRING = 4
    %ADSTYPE_NUMERIC_STRING = 5
    %ADSTYPE_BOOLEAN = 6
    %ADSTYPE_INTEGER = 7
    %ADSTYPE_OCTET_STRING = 8
    %ADSTYPE_UTC_TIME = 9
    %ADSTYPE_LARGE_INTEGER = 10
    %ADSTYPE_PROV_SPECIFIC = 11
    %ADSTYPE_OBJECT_CLASS = 12
    %ADSTYPE_CASEIGNORE_LIST = 13
    %ADSTYPE_OCTET_LIST = 14
    %ADSTYPE_PATH = 15
    %ADSTYPE_POSTALADDRESS = 16
    %ADSTYPE_TIMESTAMP = 17
    %ADSTYPE_BACKLINK = 18
    %ADSTYPE_TYPEDNAME = 19
    %ADSTYPE_HOLD = 20
    %ADSTYPE_NETADDRESS = 21
    %ADSTYPE_REPLICAPOINTER = 22
    %ADSTYPE_FAXNUMBER = 23
    %ADSTYPE_EMAIL = 24
    %ADSTYPE_NT_SECURITY_DESCRIPTOR = 25
    %ADSTYPE_UNKNOWN = 26
    %ADSTYPE_DN_WITH_BINARY = 27
    %ADSTYPE_DN_WITH_STRING = 28
    ' __MIDL___MIDL_itf_ads_0000_0018 enumeration
    %ADS_SECURE_AUTHENTICATION = 1
    %ADS_USE_ENCRYPTION = 2
    %ADS_USE_SSL = 2
    %ADS_READONLY_SERVER = 4
    %ADS_PROMPT_CREDENTIALS = 8
    %ADS_NO_AUTHENTICATION = 16
    %ADS_FAST_BIND = 32
    %ADS_USE_SIGNING = 64
    %ADS_USE_SEALING = 128
    %ADS_USE_DELEGATION = 256
    %ADS_SERVER_BIND = 512
    %ADS_AUTH_RESERVED = -2147483648
    ' __MIDL___MIDL_itf_ads_0000_0019 enumeration
    %ADS_STATUS_S_OK = 0
    %ADS_STATUS_INVALID_SEARCHPREF = 1
    %ADS_STATUS_INVALID_SEARCHPREFVALUE = 2
    ' __MIDL___MIDL_itf_ads_0000_0020 enumeration
    %ADS_DEREF_NEVER = 0
    %ADS_DEREF_SEARCHING = 1
    %ADS_DEREF_FINDING = 2
    %ADS_DEREF_ALWAYS = 3
    ' __MIDL___MIDL_itf_ads_0000_0021 enumeration
    %ADS_SCOPE_BASE = 0
    %ADS_SCOPE_ONELEVEL = 1
    %ADS_SCOPE_SUBTREE = 2
    ' __MIDL___MIDL_itf_ads_0000_0022 enumeration
    %ADSIPROP_ASYNCHRONOUS = 0
    %ADSIPROP_DEREF_ALIASES = 1
    %ADSIPROP_SIZE_LIMIT = 2
    %ADSIPROP_TIME_LIMIT = 3
    %ADSIPROP_ATTRIBTYPES_ONLY = 4
    %ADSIPROP_SEARCH_SCOPE = 5
    %ADSIPROP_TIMEOUT = 6
    %ADSIPROP_PAGESIZE = 7
    %ADSIPROP_PAGED_TIME_LIMIT = 8
    %ADSIPROP_CHASE_REFERRALS = 9
    %ADSIPROP_SORT_ON = 10
    %ADSIPROP_CACHE_RESULTS = 11
    %ADSIPROP_ADSIFLAG = 12
    ' __MIDL___MIDL_itf_ads_0000_0023 enumeration
    %ADSI_DIALECT_LDAP = 0
    %ADSI_DIALECT_SQL = 1
    ' __MIDL___MIDL_itf_ads_0000_0024 enumeration
    %ADS_CHASE_REFERRALS_NEVER = 0
    %ADS_CHASE_REFERRALS_SUBORDINATE = 32
    %ADS_CHASE_REFERRALS_EXTERNAL = 64
    %ADS_CHASE_REFERRALS_ALWAYS = 96
    ' __MIDL___MIDL_itf_ads_0000_0025 enumeration
    %ADS_SEARCHPREF_ASYNCHRONOUS = 0
    %ADS_SEARCHPREF_DEREF_ALIASES = 1
    %ADS_SEARCHPREF_SIZE_LIMIT = 2
    %ADS_SEARCHPREF_TIME_LIMIT = 3
    %ADS_SEARCHPREF_ATTRIBTYPES_ONLY = 4
    %ADS_SEARCHPREF_SEARCH_SCOPE = 5
    %ADS_SEARCHPREF_TIMEOUT = 6
    %ADS_SEARCHPREF_PAGESIZE = 7
    %ADS_SEARCHPREF_PAGED_TIME_LIMIT = 8
    %ADS_SEARCHPREF_CHASE_REFERRALS = 9
    %ADS_SEARCHPREF_SORT_ON = 10
    %ADS_SEARCHPREF_CACHE_RESULTS = 11
    %ADS_SEARCHPREF_DIRSYNC = 12
    %ADS_SEARCHPREF_TOMBSTONE = 13
    %ADS_SEARCHPREF_VLV = 14
    %ADS_SEARCHPREF_ATTRIBUTE_QUERY = 15
    %ADS_SEARCHPREF_SECURITY_MASK = 16
    ' __MIDL___MIDL_itf_ads_0000_0026 enumeration
    %ADS_PROPERTY_CLEAR = 1
    %ADS_PROPERTY_UPDATE = 2
    %ADS_PROPERTY_APPEND = 3
    %ADS_PROPERTY_DELETE = 4
    ' tagTYPEKIND enumeration
    %TKIND_ENUM = 0
    %TKIND_RECORD = 1
    %TKIND_MODULE = 2
    %TKIND_INTERFACE = 3
    %TKIND_DISPATCH = 4
    %TKIND_COCLASS = 5
    %TKIND_ALIAS = 6
    %TKIND_UNION = 7
    %TKIND_MAX = 8
    ' tagDESCKIND enumeration
    %DESCKIND_NONE = 0
    %DESCKIND_FUNCDESC = 1
    %DESCKIND_VARDESC = 2
    %DESCKIND_TYPECOMP = 3
    %DESCKIND_IMPLICITAPPOBJ = 4
    %DESCKIND_MAX = 5
    ' tagFUNCKIND enumeration
    %FUNC_VIRTUAL = 0
    %FUNC_PUREVIRTUAL = 1
    %FUNC_NONVIRTUAL = 2
    %FUNC_STATIC = 3
    %FUNC_DISPATCH = 4
    ' tagINVOKEKIND enumeration
    %INVOKE_FUNC = 1
    %INVOKE_PROPERTYGET = 2
    %INVOKE_PROPERTYPUT = 4
    %INVOKE_PROPERTYPUTREF = 8
    ' tagCALLCONV enumeration
    %CC_FASTCALL = 0
    %CC_CDECL = 1
    %CC_MSCPASCAL = 2
    %CC_PASCAL = 2
    %CC_MACPASCAL = 3
    %CC_STDCALL = 4
    %CC_FPFASTCALL = 5
    %CC_SYSCALL = 6
    %CC_MPWCDECL = 7
    %CC_MPWPASCAL = 8
    %CC_MAX = 9
    ' tagVARKIND enumeration
    %VAR_PERINSTANCE = 0
    %VAR_STATIC = 1
    %VAR_CONST = 2
    %VAR_DISPATCH = 3
    ' tagSYSKIND enumeration
    %SYS_WIN16 = 0
    %SYS_WIN32 = 1
    %SYS_MAC = 2
    %SYS_WIN64 = 3
    ' __MIDL___MIDL_itf_ads_0125_0001 enumeration
    %ADS_SYSTEMFLAG_DISALLOW_DELETE = -2147483648
    %ADS_SYSTEMFLAG_CONFIG_ALLOW_RENAME = 1073741824
    %ADS_SYSTEMFLAG_CONFIG_ALLOW_MOVE = 536870912
    %ADS_SYSTEMFLAG_CONFIG_ALLOW_LIMITED_MOVE = 268435456
    %ADS_SYSTEMFLAG_DOMAIN_DISALLOW_RENAME = 134217728
    %ADS_SYSTEMFLAG_DOMAIN_DISALLOW_MOVE = 67108864
    %ADS_SYSTEMFLAG_CR_NTDS_NC = 1
    %ADS_SYSTEMFLAG_CR_NTDS_DOMAIN = 2
    %ADS_SYSTEMFLAG_ATTR_NOT_REPLICATED = 1
    %ADS_SYSTEMFLAG_ATTR_IS_CONSTRUCTED = 4
    ' __MIDL___MIDL_itf_ads_0131_0001 enumeration
    %ADS_GROUP_TYPE_GLOBAL_GROUP = 2
    %ADS_GROUP_TYPE_DOMAIN_LOCAL_GROUP = 4
    %ADS_GROUP_TYPE_LOCAL_GROUP = 4
    %ADS_GROUP_TYPE_UNIVERSAL_GROUP = 8
    %ADS_GROUP_TYPE_SECURITY_ENABLED = -2147483648
    ' ADS_USER_FLAG enumeration
    %ADS_UF_SCRIPT = 1
    %ADS_UF_ACCOUNTDISABLE = 2
    %ADS_UF_HOMEDIR_REQUIRED = 8
    %ADS_UF_LOCKOUT = 16
    %ADS_UF_PASSWD_NOTREQD = 32
    %ADS_UF_PASSWD_CANT_CHANGE = 64
    %ADS_UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED = 128
    %ADS_UF_TEMP_DUPLICATE_ACCOUNT = 256
    %ADS_UF_NORMAL_ACCOUNT = 512
    %ADS_UF_INTERDOMAIN_TRUST_ACCOUNT = 2048
    %ADS_UF_WORKSTATION_TRUST_ACCOUNT = 4096
    %ADS_UF_SERVER_TRUST_ACCOUNT = 8192
    %ADS_UF_DONT_EXPIRE_PASSWD = 65536
    %ADS_UF_MNS_LOGON_ACCOUNT = 131072
    %ADS_UF_SMARTCARD_REQUIRED = 262144
    %ADS_UF_TRUSTED_FOR_DELEGATION = 524288
    %ADS_UF_NOT_DELEGATED = 1048576
    %ADS_UF_USE_DES_KEY_ONLY = 2097152
    %ADS_UF_DONT_REQUIRE_PREAUTH = 4194304
    %ADS_UF_PASSWORD_EXPIRED = 8388608
    %ADS_UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION = 16777216
    ' __MIDL___MIDL_itf_ads_0153_0001 enumeration
    %ADS_RIGHT_DELETE = 65536
    %ADS_RIGHT_READ_CONTROL = 131072
    %ADS_RIGHT_WRITE_DAC = 262144
    %ADS_RIGHT_WRITE_OWNER = 524288
    %ADS_RIGHT_SYNCHRONIZE = 1048576
    %ADS_RIGHT_ACCESS_SYSTEM_SECURITY = 16777216
    %ADS_RIGHT_GENERIC_READ = -2147483648
    %ADS_RIGHT_GENERIC_WRITE = 1073741824
    %ADS_RIGHT_GENERIC_EXECUTE = 536870912
    %ADS_RIGHT_GENERIC_ALL = 268435456
    %ADS_RIGHT_DS_CREATE_CHILD = 1
    %ADS_RIGHT_DS_DELETE_CHILD = 2
    %ADS_RIGHT_ACTRL_DS_LIST = 4
    %ADS_RIGHT_DS_SELF = 8
    %ADS_RIGHT_DS_READ_PROP = 16
    %ADS_RIGHT_DS_WRITE_PROP = 32
    %ADS_RIGHT_DS_DELETE_TREE = 64
    %ADS_RIGHT_DS_LIST_OBJECT = 128
    %ADS_RIGHT_DS_CONTROL_ACCESS = 256
    ' __MIDL___MIDL_itf_ads_0153_0002 enumeration
    %ADS_ACETYPE_ACCESS_ALLOWED = 0
    %ADS_ACETYPE_ACCESS_DENIED = 1
    %ADS_ACETYPE_SYSTEM_AUDIT = 2
    %ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = 5
    %ADS_ACETYPE_ACCESS_DENIED_OBJECT = 6
    %ADS_ACETYPE_SYSTEM_AUDIT_OBJECT = 7
    %ADS_ACETYPE_SYSTEM_ALARM_OBJECT = 8
    %ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK = 9
    %ADS_ACETYPE_ACCESS_DENIED_CALLBACK = 10
    %ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK_OBJECT = 11
    %ADS_ACETYPE_ACCESS_DENIED_CALLBACK_OBJECT = 12
    %ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK = 13
    %ADS_ACETYPE_SYSTEM_ALARM_CALLBACK = 14
    %ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK_OBJECT = 15
    %ADS_ACETYPE_SYSTEM_ALARM_CALLBACK_OBJECT = 16
    ' __MIDL___MIDL_itf_ads_0153_0003 enumeration
    %ADS_ACEFLAG_INHERIT_ACE = 2
    %ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = 4
    %ADS_ACEFLAG_INHERIT_ONLY_ACE = 8
    %ADS_ACEFLAG_INHERITED_ACE = 16
    %ADS_ACEFLAG_VALID_INHERIT_FLAGS = 31
    %ADS_ACEFLAG_SUCCESSFUL_ACCESS = 64
    %ADS_ACEFLAG_FAILED_ACCESS = 128
    ' __MIDL___MIDL_itf_ads_0153_0004 enumeration
    %ADS_FLAG_OBJECT_TYPE_PRESENT = 1
    %ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT = 2
    ' __MIDL___MIDL_itf_ads_0153_0005 enumeration
    %ADS_SD_CONTROL_SE_OWNER_DEFAULTED = 1
    %ADS_SD_CONTROL_SE_GROUP_DEFAULTED = 2
    %ADS_SD_CONTROL_SE_DACL_PRESENT = 4
    %ADS_SD_CONTROL_SE_DACL_DEFAULTED = 8
    %ADS_SD_CONTROL_SE_SACL_PRESENT = 16
    %ADS_SD_CONTROL_SE_SACL_DEFAULTED = 32
    %ADS_SD_CONTROL_SE_DACL_AUTO_INHERIT_REQ = 256
    %ADS_SD_CONTROL_SE_SACL_AUTO_INHERIT_REQ = 512
    %ADS_SD_CONTROL_SE_DACL_AUTO_INHERITED = 1024
    %ADS_SD_CONTROL_SE_SACL_AUTO_INHERITED = 2048
    %ADS_SD_CONTROL_SE_DACL_PROTECTED = 4096
    %ADS_SD_CONTROL_SE_SACL_PROTECTED = 8192
    %ADS_SD_CONTROL_SE_SELF_RELATIVE = 32768
    ' __MIDL___MIDL_itf_ads_0153_0006 enumeration
    %ADS_SD_REVISION_DS = 4
    ' __MIDL___MIDL_itf_ads_0154_0001 enumeration
    %ADS_NAME_TYPE_1779 = 1
    %ADS_NAME_TYPE_CANONICAL = 2
    %ADS_NAME_TYPE_NT4 = 3
    %ADS_NAME_TYPE_DISPLAY = 4
    %ADS_NAME_TYPE_DOMAIN_SIMPLE = 5
    %ADS_NAME_TYPE_ENTERPRISE_SIMPLE = 6
    %ADS_NAME_TYPE_GUID = 7
    %ADS_NAME_TYPE_UNKNOWN = 8
    %ADS_NAME_TYPE_USER_PRINCIPAL_NAME = 9
    %ADS_NAME_TYPE_CANONICAL_EX = 10
    %ADS_NAME_TYPE_SERVICE_PRINCIPAL_NAME = 11
    %ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME = 12
    ' __MIDL___MIDL_itf_ads_0154_0002 enumeration
    %ADS_NAME_INITTYPE_DOMAIN = 1
    %ADS_NAME_INITTYPE_SERVER = 2
    %ADS_NAME_INITTYPE_GC = 3
    ' __MIDL___MIDL_itf_ads_0168_0001 enumeration
    %ADS_OPTION_SERVERNAME = 0
    %ADS_OPTION_REFERRALS = 1
    %ADS_OPTION_PAGE_SIZE = 2
    %ADS_OPTION_SECURITY_MASK = 3
    %ADS_OPTION_MUTUAL_AUTH_STATUS = 4
    ' __MIDL___MIDL_itf_ads_0168_0002 enumeration
    %ADS_SECURITY_INFO_OWNER = 1
    %ADS_SECURITY_INFO_GROUP = 2
    %ADS_SECURITY_INFO_DACL = 4
    %ADS_SECURITY_INFO_SACL = 8
    ' __MIDL___MIDL_itf_ads_0169_0001 enumeration
    %ADS_SETTYPE_FULL = 1
    %ADS_SETTYPE_PROVIDER = 2
    %ADS_SETTYPE_SERVER = 3
    %ADS_SETTYPE_DN = 4
    ' __MIDL___MIDL_itf_ads_0169_0002 enumeration
    %ADS_FORMAT_WINDOWS = 1
    %ADS_FORMAT_WINDOWS_NO_SERVER = 2
    %ADS_FORMAT_WINDOWS_DN = 3
    %ADS_FORMAT_WINDOWS_PARENT = 4
    %ADS_FORMAT_X500 = 5
    %ADS_FORMAT_X500_NO_SERVER = 6
    %ADS_FORMAT_X500_DN = 7
    %ADS_FORMAT_X500_PARENT = 8
    %ADS_FORMAT_SERVER = 9
    %ADS_FORMAT_PROVIDER = 10
    %ADS_FORMAT_LEAF = 11
    ' __MIDL___MIDL_itf_ads_0169_0003 enumeration
    %ADS_DISPLAY_FULL = 1
    %ADS_DISPLAY_VALUE_ONLY = 2
    ' __MIDL___MIDL_itf_ads_0169_0004 enumeration
    %ADS_ESCAPEDMODE_DEFAULT = 1
    %ADS_ESCAPEDMODE_ON = 2
    %ADS_ESCAPEDMODE_OFF = 3
    %ADS_ESCAPEDMODE_OFF_EX = 4
    ' __MIDL___MIDL_itf_ads_0174_0001 enumeration
    %ADS_PATH_FILE = 1
    %ADS_PATH_FILESHARE = 2
    %ADS_PATH_REGISTRY = 3
    ' __MIDL___MIDL_itf_ads_0174_0002 enumeration
    %ADS_SD_FORMAT_IID = 1
    %ADS_SD_FORMAT_RAW = 2
    %ADS_SD_FORMAT_HEXSTRING = 3
     
    Union uTag___MIDL___MIDL_itf_ads_0000_0017
        DNString As DWord
        CaseExactString As DWord
        CaseIgnoreString As DWord
        PrintableString As DWord
        NumericString As DWord
        Boolean As DWord
        Integer As DWord
        OctetString As ADS_OCTET_STRING
        UTCTime As Tag__SYSTEMTIME
        LargeInteger As Tag__LARGE_INTEGER
        ClassName As DWord
        ProviderSpecific As ADS_PROV_SPECIFIC
        pCaseIgnoreList As Tag__ADS_CASEIGNORE_LIST Ptr
        pOctetList As Tag__ADS_OCTET_LIST Ptr
        pPath As Tag___MIDL___MIDL_itf_ads_0000_0005 Ptr
        pPostalAddress As Tag___MIDL___MIDL_itf_ads_0000_0006 Ptr
        Timestamp As ADS_TIMESTAMP
        BackLink As ADS_BACKLINK
        pTypedName As Tag___MIDL___MIDL_itf_ads_0000_0009 Ptr
        Hold As ADS_HOLD
        pNetAddress As Tag___MIDL___MIDL_itf_ads_0000_0011 Ptr
        pReplicaPointer As Tag___MIDL___MIDL_itf_ads_0000_0012 Ptr
        pFaxNumber As Tag___MIDL___MIDL_itf_ads_0000_0013 Ptr
        Email As ADS_EMAIL
        SecurityDescriptor As ADS_NT_SECURITY_DESCRIPTOR
        pDNWithBinary As Tag___MIDL___MIDL_itf_ads_0000_0015 Ptr
        pDNWithString As Tag___MIDL___MIDL_itf_ads_0000_0016 Ptr
    End Union
    Union uTag___MIDL_IOleAutomationTypes_0005
        lptdesc As tagTYPEDESC
        lpadesc As tagARRAYDESC
        hreftype As DWord
    End Union
    Union uTag___MIDL_IOleAutomationTypes_0006
        oInst As DWord
        lpvarValue  AS Variant PTR
    End Union
     
    ' User-Defined Types 
    Type Tag___MIDL___MIDL_itf_ads_0000_0002
        dwLength As DWord
        lpValue AS Byte Ptr
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0003
        dwLength As DWord
        lpValue AS Byte Ptr
    End Type
    Type Tag__SYSTEMTIME
        wYear As Word
        wMonth As Word
        wDayOfWeek As Word
        wDay As Word
        wHour As Word
        wMinute As Word
        wSecond As Word
        wMilliseconds As Word
    End Type
    Type Tag__LARGE_INTEGER
        QuadPart As Quad
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0004
        dwLength As DWord
        lpValue AS Byte Ptr
    End Type
    Type Tag__ADS_CASEIGNORE_LIST
        Next As Tag__ADS_CASEIGNORE_LIST Ptr
        String As DWord
    End Type
    Type Tag__ADS_OCTET_LIST
        Next As Tag__ADS_OCTET_LIST Ptr
        Length As DWord
        Data AS Byte Ptr
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0005
        Type As DWord
        VolumeName As DWord
        Path As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0006
        PostalAddress(0 To 5) As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0007
        WholeSeconds As DWord
        EventID As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0008
        RemoteID As DWord
        ObjectName As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0009
        ObjectName As DWord
        Level As DWord
        Interval As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0010
        ObjectName As DWord
        Amount As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0011
        AddressType As DWord
        AddressLength As DWord
        Address AS Byte Ptr
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0012
        ServerName As DWord
        ReplicaType As DWord
        ReplicaNumber As DWord
        Count As DWord
        ReplicaAddressHints As Tag___MIDL___MIDL_itf_ads_0000_0011 Ptr
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0013
        TelephoneNumber As DWord
        NumberOfBits As DWord
        Parameters AS Byte Ptr
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0014
        Address As DWord
        Type As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0015
        dwLength As DWord
        lpBinaryValue AS Byte Ptr
        pszDNString As DWord
    End Type
    Type Tag___MIDL___MIDL_itf_ads_0000_0016
        pszStringValue As DWord
        pszDNString As DWord
    End Type
    Type Tag__adsvalue
        dwType As Long
        PB___MIDL_0010 As uTag___MIDL___MIDL_itf_ads_0000_0017
    End Type
    Type Tag__ads_attr_info
        pszAttrName As DWord
        dwControlCode As DWord
        dwADsType As Long
        pADsValues As Tag__adsvalue Ptr
        dwNumValues As DWord
    End Type
    Type Tag__ads_object_info
        pszRDN As DWord
        pszObjectDN As DWord
        pszParentDN As DWord
        pszSchemaDN As DWord
        pszClassName As DWord
    End Type
    Type ads_searchpref_info
        dwSearchPref As Long
        vValue As Tag__adsvalue
        dwStatus As Long
    End Type
    Type ads_search_column
        pszAttrName As DWord
        dwADsType As Long
        pADsValues As Tag__adsvalue Ptr
        dwNumValues As DWord
        hReserved As DWord Ptr
    End Type
    Type Tag__ads_attr_def
        pszAttrName As DWord
        dwADsType As Long
        dwMinRange As DWord
        dwMaxRange As DWord
        fMultiValued As Long
    End Type
    Type Tag__ads_class_def
        pszClassName As DWord
        dwMandatoryAttrs As DWord
        ppszMandatoryAttrs AS DWord Ptr
        optionalAttrs As DWord
        ppszOptionalAttrs AS DWord Ptr
        dwNamingAttrs As DWord
        ppszNamingAttrs AS DWord Ptr
        dwSuperClasses As DWord
        ppszSuperClasses AS DWord Ptr
        fIsContainer As Long
    End Type
    Type Tag__ads_sortkey
        pszAttrType As DWord
        pszReserved As DWord
        fReverseorder As Byte
    End Type
    Type Tag__ads_vlv
        dwBeforeCount As DWord
        dwAfterCount As DWord
        dwOffset As DWord
        dwContentCount As DWord
        pszTarget As DWord
        dwContextIDLength As DWord
        lpContextID AS Byte Ptr
    End Type
    Type tagTYPEATTR
        GUID As GUID
        lcid As DWord
        dwReserved As DWord
        memidConstructor As Long
        memidDestructor As Long
        lpstrSchema As DWord
        cbSizeInstance As DWord
        typekind As Long
        cFuncs As Word
        cVars As Word
        cImplTypes As Word
        cbSizeVft As Word
        cbAlignment As Word
        wTypeFlags As Word
        wMajorVerNum As Word
        wMinorVerNum As Word
        tdescAlias As tagTYPEDESC
        idldescType As tagIDLDESC
    End Type
    Type tagTYPEDESC
        PB___MIDL_0008 As uTag___MIDL_IOleAutomationTypes_0005
        vt As Word
    End Type
    Type tagARRAYDESC
        tdescElem As tagTYPEDESC
        cDims As Word
        rgbounds As tagSAFEARRAYBOUND Ptr
    End Type
    Type tagSAFEARRAYBOUND
        cElements As DWord
        lLbound As Long
    End Type
    Type tagIDLDESC
        dwReserved As DWord
        wIDLFlags As Word
    End Type
    Type tagFUNCDESC
        memid As Long
        lprgscode AS Long Ptr
        lprgelemdescParam As tagELEMDESC Ptr
        funckind As Long
        invkind As Long
        callconv As Long
        cParams As Integer
        cParamsOpt As Integer
        oVft As Integer
        cScodes As Integer
        elemdescFunc As tagELEMDESC
        wFuncFlags As Word
    End Type
    Type tagELEMDESC
        tdesc As tagTYPEDESC
        paramdesc As tagPARAMDESC
    End Type
    Type tagPARAMDESC
        pparamdescex As tagPARAMDESCEX Ptr
        wParamFlags As Word
    End Type
    Type tagPARAMDESCEX
        cBytes As DWord
        varDefaultValue As VARIANTAPI
    End Type
    Type tagVARDESC
        memid As Long
        lpstrSchema As DWord
        PB___MIDL_0009 As uTag___MIDL_IOleAutomationTypes_0006
        elemdescVar As tagELEMDESC
        wVarFlags As Word
        varkind As Long
    End Type
    Type tagTLIBATTR
        GUID As GUID
        lcid As DWord
        syskind As Long
        wMajorVerNum As Word
        wMinorVerNum As Word
        wLibFlags As Word
    End Type
     
    ' Interface Name  : IADs
    Interface IADs $IID_IADs 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
    End Interface
    ' Interface Name  : IADsContainer
    Interface IADsContainer $IID_IADsContainer 
        Inherit IDispatch
        Property Get Count <2> () As Long
        Property Get PropGet__NewEnum <-4> () As IUnknown
        Property Get Filter <3> () As Variant
        Property Set Filter <3> (ByVal pVar As Variant)
        Property Get Hints <4> () As Variant
        Property Set Hints <4> (ByVal pvFilter As Variant)
        Method GetObject <5> (Byval ClassName As String, Byval RelativeName As String) As IDispatch
        Method Create <6> (Byval ClassName As String, Byval RelativeName As String) As IDispatch
        Method Delete <7> (Byval bstrClassName As String, Byval bstrRelativeName As String)
        Method CopyHere <8> (Byval SourceName As String, Byval NewName As String) As IDispatch
        Method MoveHere <9> (Byval SourceName As String, Byval NewName As String) As IDispatch
    End Interface
    ' Interface Name  : IADsCollection
    Interface IADsCollection $IID_IADsCollection 
        Inherit IDispatch
        Property Get PropGet__NewEnum <-4> () As IUnknown
        Method Add <4> (Byval bstrName As String, Byval vItem As Variant)
        Method Remove <5> (Byval bstrItemToBeRemoved As String)
        Method GetObject <6> (Byval bstrName As String) As Variant
    End Interface
    ' Interface Name  : IADsMembers
    Interface IADsMembers $IID_IADsMembers 
        Inherit IDispatch
        Property Get Count <2> () As Long
        Property Get PropGet__NewEnum <-4> () As IUnknown
        Property Get Filter <3> () As Variant
        Property Set Filter <3> (ByVal pvFilter As Variant)
    End Interface
    ' Interface Name  : IADsPropertyList
    Interface IADsPropertyList $IID_IADsPropertyList 
        Inherit IDispatch
        Property Get PropertyCount <2> () As Long
        Method Next <3> () As Variant
        Method Skip <4> (Byval cElements As Long)
        Method Reset <5> ()
        Method Item <0> (Byval varIndex As Variant) As Variant
        Method GetPropertyItem <6> (Byval bstrName As String, Byval lnADsType As Long) As Variant
        Method PutPropertyItem <7> (Byval varData As Variant)
        Method ResetPropertyItem <8> (Byval varEntry As Variant)
        Method PurgePropertyList <9> ()
    End Interface
    ' Interface Name  : IADsPropertyEntry
    ' ClassID         : $CLSID_PropertyEntry
    Interface IADsPropertyEntry $IID_IADsPropertyEntry 
        Inherit IDispatch
        Method Clear <1> ()
        Property Get Name <2> () As String
        Property Set Name <2> (ByVal retval As String)
        Property Get ADsType <3> () As Long
        Property Set ADsType <3> (ByVal retval As Long)
        Property Get ControlCode <4> () As Long
        Property Set ControlCode <4> (ByVal retval As Long)
        Property Get Values <5> () As Variant
        Property Set Values <5> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsPropertyValue
    ' ClassID         : $CLSID_PropertyValue
    Interface IADsPropertyValue $IID_IADsPropertyValue 
        Inherit IDispatch
        Method Clear <1> ()
        Property Get ADsType <2> () As Long
        Property Set ADsType <2> (ByVal retval As Long)
        Property Get DNString <3> () As String
        Property Set DNString <3> (ByVal retval As String)
        Property Get CaseExactString <4> () As String
        Property Set CaseExactString <4> (ByVal retval As String)
        Property Get CaseIgnoreString <5> () As String
        Property Set CaseIgnoreString <5> (ByVal retval As String)
        Property Get PrintableString <6> () As String
        Property Set PrintableString <6> (ByVal retval As String)
        Property Get NumericString <7> () As String
        Property Set NumericString <7> (ByVal retval As String)
        Property Get Boolean <8> () As Long
        Property Set Boolean <8> (ByVal retval As Long)
        Property Get Integer <9> () As Long
        Property Set Integer <9> (ByVal retval As Long)
        Property Get OctetString <10> () As Variant
        Property Set OctetString <10> (ByVal retval As Variant)
        Property Get SecurityDescriptor <11> () As IDispatch
        Property Set SecurityDescriptor <11> (ByVal retval As IDispatch)
        Property Get LargeInteger <12> () As IDispatch
        Property Set LargeInteger <12> (ByVal retval As IDispatch)
        Property Get UTCTime <13> () As Double
        Property Set UTCTime <13> (ByVal retval As Double)
    End Interface
    ' Interface Name  : IADsPropertyValue2
    Interface IADsPropertyValue2 $IID_IADsPropertyValue2 
        Inherit IDispatch
        Method GetObjectProperty <1> (ByRef In lnADsType As Long) As Variant
        Method PutObjectProperty <2> (Byval lnADsType As Long, Byval vProp As Variant)
    End Interface
    ' Interface Name  : IPrivateDispatch
    Interface IPrivateDispatch $IID_IPrivateDispatch 
        Inherit IUnknown
        Method ADSIInitializeDispatchManager(Byval dwExtensionId As Long) As Long
        Method ADSIGetTypeInfoCount(ByRef pctinfo As DWord) As Long
        Method ADSIGetTypeInfo(Byval itinfo As DWord, Byval lcid As DWord, ByRef ppTInfo As ITypeInfo) As Long
        Method ADSIGetIDsOfNames(ByRef In riid As GUID, ByVal rgszNames As DWord, Byval cNames As DWord, Byval lcid As DWord, _
            ByRef rgdispid As Long) As Long
        Method ADSIInvoke(Byval dispidMember As Long, ByRef In riid As GUID, Byval lcid As DWord, Byval wFlags As Word, ByRef In _
            pdispparams As DISPPARAMS, ByRef pvarResult As Variant, ByRef pexcepinfo As EXCEPINFO, ByRef puArgErr As DWord) As Long
    End Interface
    ' Interface Name  : ITypeInfo
    Interface ITypeInfo $IID_ITypeInfo 
        Inherit IUnknown
        Method RemoteGetTypeAttr(ByRef ppTypeAttr As DWord, ByRef pDummy As DWord) As Long
        Method GetTypeComp(ByRef ppTComp As ITypeComp) As Long
        Method RemoteGetFuncDesc(Byval index As DWord, ByRef ppFuncDesc As DWord, ByRef pDummy As DWord) As Long
        Method RemoteGetVarDesc(Byval index As DWord, ByRef ppVarDesc As DWord, ByRef pDummy As DWord) As Long
        Method RemoteGetNames(Byval memid As Long, ByRef rgBstrNames As String, Byval cMaxNames As DWord, ByRef pcNames As _
            DWord) As Long
        Method GetRefTypeOfImplType(Byval index As DWord, ByRef pRefType As DWord) As Long
        Method GetImplTypeFlags(Byval index As DWord, ByRef pImplTypeFlags As Long) As Long
        Method LocalGetIDsOfNames() As Long
        Method LocalInvoke() As Long
        Method RemoteGetDocumentation(Byval memid As Long, Byval refPtrFlags As DWord, ByRef pBstrName As String, ByRef _
            pBstrDocString As String, ByRef pdwHelpContext As DWord, ByRef pBstrHelpFile As String) As Long
        Method RemoteGetDllEntry(Byval memid As Long, Byval invkind As Long, Byval refPtrFlags As DWord, ByRef pBstrDllName As _
            String, ByRef pBstrName As String, ByRef pwOrdinal As Word) As Long
        Method GetRefTypeInfo(Byval hreftype As DWord, ByRef ppTInfo As ITypeInfo) As Long
        Method LocalAddressOfMember() As Long
        Method RemoteCreateInstance(ByRef In riid As GUID, ByRef ppvObj As IUnknown) As Long
        Method GetMops(Byval memid As Long, ByRef pBstrMops As String) As Long
        Method RemoteGetContainingTypeLib(ByRef ppTLib As ITypeLib, ByRef pIndex As DWord) As Long
        Method LocalReleaseTypeAttr() As Long
        Method LocalReleaseFuncDesc() As Long
        Method LocalReleaseVarDesc() As Long
    End Interface
    ' Interface Name  : ITypeComp
    Interface ITypeComp $IID_ITypeComp 
        Inherit IUnknown
        Method RemoteBind(Byval szName As DWord, Byval lHashVal As DWord, Byval wFlags As Word, ByRef ppTInfo As ITypeInfo, _
            ByRef pDescKind As Long, ByRef ppFuncDesc As DWord, ByRef ppVarDesc As DWord, ByRef ppTypeComp As ITypeComp, _
            ByRef pDummy As DWord) As Long
        Method RemoteBindType(Byval szName As DWord, Byval lHashVal As DWord, ByRef ppTInfo As ITypeInfo) As Long
    End Interface
    ' Interface Name  : ITypeLib
    Interface ITypeLib $IID_ITypeLib 
        Inherit IUnknown
        Method RemoteGetTypeInfoCount(ByRef pctinfo As DWord) As Long
        Method Hidden1()
        Method GetTypeInfoType(Byval index As DWord, ByRef pTKind As Long) As Long
        Method GetTypeInfoOfGuid(ByRef In PB_GUID As GUID, ByRef ppTInfo As ITypeInfo) As Long
        Method RemoteGetLibAttr(ByRef ppTLibAttr As DWord, ByRef pDummy As DWord) As Long
        Method GetTypeComp(ByRef ppTComp As ITypeComp) As Long
        Method RemoteGetDocumentation(Byval index As Long, Byval refPtrFlags As DWord, ByRef pBstrName As String, ByRef _
            pBstrDocString As String, ByRef pdwHelpContext As DWord, ByRef pBstrHelpFile As String) As Long
        Method RemoteIsName(Byval szNameBuf As DWord, Byval lHashVal As DWord, ByRef pfName As Long, ByRef pBstrLibName As _
            String) As Long
        Method RemoteFindName(Byval szNameBuf As DWord, Byval lHashVal As DWord, ByRef ppTInfo As ITypeInfo, ByRef rgMemId As _
            Long, ByRef In pcFound As Word, ByRef pBstrLibName As String) As Long
        Method LocalReleaseTLibAttr() As Long
    End Interface
    ' Interface Name  : IPrivateUnknown
    Interface IPrivateUnknown $IID_IPrivateUnknown 
        Inherit IUnknown
        Method ADSIInitializeObject(Byval lpszUserName As String, Byval lpszPassword As String, Byval lnReserved As Long) As _
            Long
        Method ADSIReleaseObject() As Long
    End Interface
    ' Interface Name  : IADsExtension
    Interface IADsExtension $IID_IADsExtension 
        Inherit IUnknown
        Method Operate(Byval dwCode As DWord, Byval varData1 As Variant, Byval varData2 As Variant, Byval varData3 As Variant) _
            As Long
        Method PrivateGetIDsOfNames(ByRef In riid As GUID, ByVal rgszNames As DWord, Byval cNames As DWord, Byval lcid As DWord, _
            ByRef rgdispid As Long) As Long
        Method PrivateInvoke(Byval dispidMember As Long, ByRef In riid As GUID, Byval lcid As DWord, Byval wFlags As Word, ByRef _
            In pdispparams As DISPPARAMS, ByRef pvarResult As Variant, ByRef pexcepinfo As EXCEPINFO, ByRef puArgErr As _
            DWord) As Long
    End Interface
    ' Interface Name  : IADsDeleteOps
    Interface IADsDeleteOps $IID_IADsDeleteOps 
        Inherit IDispatch
        Method DeleteObject <2> (Byval lnFlags As Long)
    End Interface
    ' Interface Name  : IADsNamespaces
    Interface IADsNamespaces $IID_IADsNamespaces 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get DefaultContainer <1> () As String
        Property Set DefaultContainer <1> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsClass
    Interface IADsClass $IID_IADsClass 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get PrimaryInterface <15> () As String
        Property Get CLSID <16> () As String
        Property Set CLSID <16> (ByVal retval As String)
        Property Get OID <17> () As String
        Property Set OID <17> (ByVal retval As String)
        Property Get Abstract <18> () As Integer
        Property Set Abstract <18> (ByVal retval As Integer)
        Property Get Auxiliary <26> () As Integer
        Property Set Auxiliary <26> (ByVal retval As Integer)
        Property Get MandatoryProperties <19> () As Variant
        Property Set MandatoryProperties <19> (ByVal retval As Variant)
        Property Get OptionalProperties <29> () As Variant
        Property Set OptionalProperties <29> (ByVal Rhs As Variant)
        Property Get NamingProperties <30> () As Variant
        Property Set NamingProperties <30> (ByVal retval As Variant)
        Property Get DerivedFrom <20> () As Variant
        Property Set DerivedFrom <20> (ByVal retval As Variant)
        Property Get AuxDerivedFrom <27> () As Variant
        Property Set AuxDerivedFrom <27> (ByVal retval As Variant)
        Property Get PossibleSuperiors <28> () As Variant
        Property Set PossibleSuperiors <28> (ByVal Rhs As Variant)
        Property Get Containment <21> () As Variant
        Property Set Containment <21> (ByVal retval As Variant)
        Property Get Container <22> () As Integer
        Property Set Container <22> (ByVal Rhs As Integer)
        Property Get HelpFileName <23> () As String
        Property Set HelpFileName <23> (ByVal retval As String)
        Property Get HelpFileContext <24> () As Long
        Property Set HelpFileContext <24> (ByVal retval As Long)
        Method Qualifiers <25> () As IADsCollection
    End Interface
    ' Interface Name  : IADsProperty
    Interface IADsProperty $IID_IADsProperty 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get OID <17> () As String
        Property Set OID <17> (ByVal retval As String)
        Property Get Syntax <18> () As String
        Property Set Syntax <18> (ByVal Rhs As String)
        Property Get MaxRange <19> () As Long
        Property Set MaxRange <19> (ByVal Rhs As Long)
        Property Get MinRange <20> () As Long
        Property Set MinRange <20> (ByVal Rhs As Long)
        Property Get MultiValued <21> () As Integer
        Property Set MultiValued <21> (ByVal retval As Integer)
        Method Qualifiers <22> () As IADsCollection
    End Interface
    ' Interface Name  : IADsSyntax
    Interface IADsSyntax $IID_IADsSyntax 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get OleAutoDataType <15> () As Long
        Property Set OleAutoDataType <15> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsLocality
    Interface IADsLocality $IID_IADsLocality 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Description <15> () As String
        Property Set Description <15> (ByVal retval As String)
        Property Get LocalityName <16> () As String
        Property Set LocalityName <16> (ByVal retval As String)
        Property Get PostalAddress <17> () As String
        Property Set PostalAddress <17> (ByVal retval As String)
        Property Get SeeAlso <18> () As Variant
        Property Set SeeAlso <18> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsO
    Interface IADsO $IID_IADsO 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Description <15> () As String
        Property Set Description <15> (ByVal retval As String)
        Property Get LocalityName <16> () As String
        Property Set LocalityName <16> (ByVal retval As String)
        Property Get PostalAddress <17> () As String
        Property Set PostalAddress <17> (ByVal retval As String)
        Property Get TelephoneNumber <18> () As String
        Property Set TelephoneNumber <18> (ByVal retval As String)
        Property Get FaxNumber <19> () As String
        Property Set FaxNumber <19> (ByVal Rhs As String)
        Property Get SeeAlso <20> () As Variant
        Property Set SeeAlso <20> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsOU
    Interface IADsOU $IID_IADsOU 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Description <15> () As String
        Property Set Description <15> (ByVal Rhs As String)
        Property Get LocalityName <16> () As String
        Property Set LocalityName <16> (ByVal retval As String)
        Property Get PostalAddress <17> () As String
        Property Set PostalAddress <17> (ByVal Rhs As String)
        Property Get TelephoneNumber <18> () As String
        Property Set TelephoneNumber <18> (ByVal retval As String)
        Property Get FaxNumber <19> () As String
        Property Set FaxNumber <19> (ByVal retval As String)
        Property Get SeeAlso <20> () As Variant
        Property Set SeeAlso <20> (ByVal Rhs As Variant)
        Property Get BusinessCategory <21> () As String
        Property Set BusinessCategory <21> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsDomain
    Interface IADsDomain $IID_IADsDomain 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get IsWorkgroup <15> () As Integer
        Property Get MinPasswordLength <16> () As Long
        Property Set MinPasswordLength <16> (ByVal Rhs As Long)
        Property Get MinPasswordAge <17> () As Long
        Property Set MinPasswordAge <17> (ByVal retval As Long)
        Property Get MaxPasswordAge <18> () As Long
        Property Set MaxPasswordAge <18> (ByVal retval As Long)
        Property Get MaxBadPasswordsAllowed <19> () As Long
        Property Set MaxBadPasswordsAllowed <19> (ByVal Rhs As Long)
        Property Get PasswordHistoryLength <20> () As Long
        Property Set PasswordHistoryLength <20> (ByVal retval As Long)
        Property Get PasswordAttributes <21> () As Long
        Property Set PasswordAttributes <21> (ByVal retval As Long)
        Property Get AutoUnlockInterval <22> () As Long
        Property Set AutoUnlockInterval <22> (ByVal Rhs As Long)
        Property Get LockoutObservationInterval <23> () As Long
        Property Set LockoutObservationInterval <23> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsComputer
    Interface IADsComputer $IID_IADsComputer 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get ComputerID <16> () As String
        Property Get Site <18> () As String
        Property Get Description <19> () As String
        Property Set Description <19> (ByVal retval As String)
        Property Get Location <20> () As String
        Property Set Location <20> (ByVal Rhs As String)
        Property Get PrimaryUser <21> () As String
        Property Set PrimaryUser <21> (ByVal Rhs As String)
        Property Get Owner <22> () As String
        Property Set Owner <22> (ByVal retval As String)
        Property Get Division <23> () As String
        Property Set Division <23> (ByVal retval As String)
        Property Get Department <24> () As String
        Property Set Department <24> (ByVal retval As String)
        Property Get Role <25> () As String
        Property Set Role <25> (ByVal Rhs As String)
        Property Get OperatingSystem <26> () As String
        Property Set OperatingSystem <26> (ByVal retval As String)
        Property Get OperatingSystemVersion <27> () As String
        Property Set OperatingSystemVersion <27> (ByVal retval As String)
        Property Get Model <28> () As String
        Property Set Model <28> (ByVal Rhs As String)
        Property Get Processor <29> () As String
        Property Set Processor <29> (ByVal retval As String)
        Property Get ProcessorCount <30> () As String
        Property Set ProcessorCount <30> (ByVal retval As String)
        Property Get MemorySize <31> () As String
        Property Set MemorySize <31> (ByVal retval As String)
        Property Get StorageCapacity <32> () As String
        Property Set StorageCapacity <32> (ByVal Rhs As String)
        Property Get NetAddresses <17> () As Variant
        Property Set NetAddresses <17> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsComputerOperations
    Interface IADsComputerOperations $IID_IADsComputerOperations 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Method Status <33> () As IDispatch
        Method Shutdown <34> (Byval bReboot As Integer)
    End Interface
    ' Interface Name  : IADsGroup
    Interface IADsGroup $IID_IADsGroup 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Description <15> () As String
        Property Set Description <15> (ByVal retval As String)
        Method Members <16> () As IADsMembers
        Method IsMember <17> (Byval bstrMember As String) As Integer
        Method Add <18> (Byval bstrNewItem As String)
        Method Remove <19> (Byval bstrItemToBeRemoved As String)
    End Interface
    ' Interface Name  : IADsUser
    Interface IADsUser $IID_IADsUser 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get BadLoginAddress <53> () As String
        Property Get BadLoginCount <54> () As Long
        Property Get LastLogin <56> () As Double
        Property Get LastLogoff <57> () As Double
        Property Get LastFailedLogin <58> () As Double
        Property Get PasswordLastChanged <59> () As Double
        Property Get Description <15> () As String
        Property Set Description <15> (ByVal retval As String)
        Property Get Division <19> () As String
        Property Set Division <19> (ByVal Rhs As String)
        Property Get Department <122> () As String
        Property Set Department <122> (ByVal Rhs As String)
        Property Get EmployeeID <20> () As String
        Property Set EmployeeID <20> (ByVal retval As String)
        Property Get FullName <23> () As String
        Property Set FullName <23> (ByVal retval As String)
        Property Get FirstName <22> () As String
        Property Set FirstName <22> (ByVal Rhs As String)
        Property Get LastName <25> () As String
        Property Set LastName <25> (ByVal retval As String)
        Property Get OtherName <27> () As String
        Property Set OtherName <27> (ByVal Rhs As String)
        Property Get NamePrefix <114> () As String
        Property Set NamePrefix <114> (ByVal Rhs As String)
        Property Get NameSuffix <115> () As String
        Property Set NameSuffix <115> (ByVal Rhs As String)
        Property Get Title <36> () As String
        Property Set Title <36> (ByVal retval As String)
        Property Get Manager <26> () As String
        Property Set Manager <26> (ByVal retval As String)
        Property Get TelephoneHome <32> () As Variant
        Property Set TelephoneHome <32> (ByVal Rhs As Variant)
        Property Get TelephoneMobile <33> () As Variant
        Property Set TelephoneMobile <33> (ByVal retval As Variant)
        Property Get TelephoneNumber <34> () As Variant
        Property Set TelephoneNumber <34> (ByVal retval As Variant)
        Property Get TelephonePager <17> () As Variant
        Property Set TelephonePager <17> (ByVal Rhs As Variant)
        Property Get FaxNumber <16> () As Variant
        Property Set FaxNumber <16> (ByVal Rhs As Variant)
        Property Get OfficeLocations <28> () As Variant
        Property Set OfficeLocations <28> (ByVal retval As Variant)
        Property Get PostalAddresses <30> () As Variant
        Property Set PostalAddresses <30> (ByVal Rhs As Variant)
        Property Get PostalCodes <31> () As Variant
        Property Set PostalCodes <31> (ByVal retval As Variant)
        Property Get SeeAlso <117> () As Variant
        Property Set SeeAlso <117> (ByVal retval As Variant)
        Property Get AccountDisabled <37> () As Integer
        Property Set AccountDisabled <37> (ByVal Rhs As Integer)
        Property Get AccountExpirationDate <38> () As Double
        Property Set AccountExpirationDate <38> (ByVal Rhs As Double)
        Property Get GraceLoginsAllowed <41> () As Long
        Property Set GraceLoginsAllowed <41> (ByVal Rhs As Long)
        Property Get GraceLoginsRemaining <42> () As Long
        Property Set GraceLoginsRemaining <42> (ByVal retval As Long)
        Property Get IsAccountLocked <43> () As Integer
        Property Set IsAccountLocked <43> (ByVal Rhs As Integer)
        Property Get LoginHours <45> () As Variant
        Property Set LoginHours <45> (ByVal retval As Variant)
        Property Get LoginWorkstations <46> () As Variant
        Property Set LoginWorkstations <46> (ByVal retval As Variant)
        Property Get MaxLogins <47> () As Long
        Property Set MaxLogins <47> (ByVal retval As Long)
        Property Get MaxStorage <48> () As Long
        Property Set MaxStorage <48> (ByVal Rhs As Long)
        Property Get PasswordExpirationDate <49> () As Double
        Property Set PasswordExpirationDate <49> (ByVal Rhs As Double)
        Property Get PasswordMinimumLength <50> () As Long
        Property Set PasswordMinimumLength <50> (ByVal retval As Long)
        Property Get PasswordRequired <51> () As Integer
        Property Set PasswordRequired <51> (ByVal Rhs As Integer)
        Property Get RequireUniquePassword <52> () As Integer
        Property Set RequireUniquePassword <52> (ByVal retval As Integer)
        Property Get EmailAddress <60> () As String
        Property Set EmailAddress <60> (ByVal retval As String)
        Property Get HomeDirectory <61> () As String
        Property Set HomeDirectory <61> (ByVal retval As String)
        Property Get Languages <62> () As Variant
        Property Set Languages <62> (ByVal retval As Variant)
        Property Get Profile <63> () As String
        Property Set Profile <63> (ByVal Rhs As String)
        Property Get LoginScript <64> () As String
        Property Set LoginScript <64> (ByVal retval As String)
        Property Get Picture <65> () As Variant
        Property Set Picture <65> (ByVal Rhs As Variant)
        Property Get HomePage <120> () As String
        Property Set HomePage <120> (ByVal retval As String)
        Method Groups <66> () As IADsMembers
        Method SetPassword <67> (Byval NewPassword As String)
        Method ChangePassword <68> (Byval bstrOldPassword As String, Byval bstrNewPassword As String)
    End Interface
    ' Interface Name  : IADsPrintQueue
    Interface IADsPrintQueue $IID_IADsPrintQueue 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get PrinterPath <15> () As String
        Property Set PrinterPath <15> (ByVal retval As String)
        Property Get Model <16> () As String
        Property Set Model <16> (ByVal retval As String)
        Property Get Datatype <17> () As String
        Property Set Datatype <17> (ByVal retval As String)
        Property Get PrintProcessor <18> () As String
        Property Set PrintProcessor <18> (ByVal retval As String)
        Property Get Description <19> () As String
        Property Set Description <19> (ByVal Rhs As String)
        Property Get Location <20> () As String
        Property Set Location <20> (ByVal Rhs As String)
        Property Get StartTime <21> () As Double
        Property Set StartTime <21> (ByVal retval As Double)
        Property Get UntilTime <22> () As Double
        Property Set UntilTime <22> (ByVal Rhs As Double)
        Property Get DefaultJobPriority <23> () As Long
        Property Set DefaultJobPriority <23> (ByVal retval As Long)
        Property Get Priority <24> () As Long
        Property Set Priority <24> (ByVal retval As Long)
        Property Get BannerPage <25> () As String
        Property Set BannerPage <25> (ByVal retval As String)
        Property Get PrintDevices <26> () As Variant
        Property Set PrintDevices <26> (ByVal Rhs As Variant)
        Property Get NetAddresses <27> () As Variant
        Property Set NetAddresses <27> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsPrintQueueOperations
    Interface IADsPrintQueueOperations $IID_IADsPrintQueueOperations 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Status <27> () As Long
        Method PrintJobs <28> () As IADsCollection
        Method Pause <29> ()
        Method Resume <30> ()
        Method Purge <31> ()
    End Interface
    ' Interface Name  : IADsPrintJob
    Interface IADsPrintJob $IID_IADsPrintJob 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get HostPrintQueue <15> () As String
        Property Get User <16> () As String
        Property Get UserPath <17> () As String
        Property Get TimeSubmitted <18> () As Double
        Property Get TotalPages <19> () As Long
        Property Get Size <234> () As Long
        Property Get Description <20> () As String
        Property Set Description <20> (ByVal Rhs As String)
        Property Get Priority <21> () As Long
        Property Set Priority <21> (ByVal Rhs As Long)
        Property Get StartTime <22> () As Double
        Property Set StartTime <22> (ByVal retval As Double)
        Property Get UntilTime <23> () As Double
        Property Set UntilTime <23> (ByVal retval As Double)
        Property Get Notify <24> () As String
        Property Set Notify <24> (ByVal Rhs As String)
        Property Get NotifyPath <25> () As String
        Property Set NotifyPath <25> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsPrintJobOperations
    Interface IADsPrintJobOperations $IID_IADsPrintJobOperations 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Status <26> () As Long
        Property Get TimeElapsed <27> () As Long
        Property Get PagesPrinted <28> () As Long
        Property Get Position <29> () As Long
        Property Set Position <29> (ByVal retval As Long)
        Method Pause <30> ()
        Method Resume <31> ()
    End Interface
    ' Interface Name  : IADsService
    Interface IADsService $IID_IADsService 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get HostComputer <15> () As String
        Property Set HostComputer <15> (ByVal retval As String)
        Property Get DisplayName <16> () As String
        Property Set DisplayName <16> (ByVal retval As String)
        Property Get Version <17> () As String
        Property Set Version <17> (ByVal retval As String)
        Property Get ServiceType <18> () As Long
        Property Set ServiceType <18> (ByVal Rhs As Long)
        Property Get StartType <19> () As Long
        Property Set StartType <19> (ByVal Rhs As Long)
        Property Get Path <20> () As String
        Property Set Path <20> (ByVal Rhs As String)
        Property Get StartupParameters <21> () As String
        Property Set StartupParameters <21> (ByVal Rhs As String)
        Property Get ErrorControl <22> () As Long
        Property Set ErrorControl <22> (ByVal retval As Long)
        Property Get LoadOrderGroup <23> () As String
        Property Set LoadOrderGroup <23> (ByVal retval As String)
        Property Get ServiceAccountName <24> () As String
        Property Set ServiceAccountName <24> (ByVal retval As String)
        Property Get ServiceAccountPath <25> () As String
        Property Set ServiceAccountPath <25> (ByVal Rhs As String)
        Property Get Dependencies <26> () As Variant
        Property Set Dependencies <26> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsServiceOperations
    Interface IADsServiceOperations $IID_IADsServiceOperations 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Status <27> () As Long
        Method Start <28> ()
        Method Stop <29> ()
        Method Pause <30> ()
        Method Continue <31> ()
        Method SetPassword <32> (Byval bstrNewPassword As String)
    End Interface
    ' Interface Name  : IADsFileService
    Interface IADsFileService $IID_IADsFileService 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get HostComputer <15> () As String
        Property Set HostComputer <15> (ByVal Rhs As String)
        Property Get DisplayName <16> () As String
        Property Set DisplayName <16> (ByVal Rhs As String)
        Property Get Version <17> () As String
        Property Set Version <17> (ByVal Rhs As String)
        Property Get ServiceType <18> () As Long
        Property Set ServiceType <18> (ByVal Rhs As Long)
        Property Get StartType <19> () As Long
        Property Set StartType <19> (ByVal Rhs As Long)
        Property Get Path <20> () As String
        Property Set Path <20> (ByVal Rhs As String)
        Property Get StartupParameters <21> () As String
        Property Set StartupParameters <21> (ByVal Rhs As String)
        Property Get ErrorControl <22> () As Long
        Property Set ErrorControl <22> (ByVal Rhs As Long)
        Property Get LoadOrderGroup <23> () As String
        Property Set LoadOrderGroup <23> (ByVal Rhs As String)
        Property Get ServiceAccountName <24> () As String
        Property Set ServiceAccountName <24> (ByVal Rhs As String)
        Property Get ServiceAccountPath <25> () As String
        Property Set ServiceAccountPath <25> (ByVal Rhs As String)
        Property Get Dependencies <26> () As Variant
        Property Set Dependencies <26> (ByVal Rhs As Variant)
        Property Get Description <33> () As String
        Property Set Description <33> (ByVal retval As String)
        Property Get MaxUserCount <34> () As Long
        Property Set MaxUserCount <34> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsFileServiceOperations
    Interface IADsFileServiceOperations $IID_IADsFileServiceOperations 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get Status <27> () As Long
        Method Start <28> ()
        Method Stop <29> ()
        Method Pause <30> ()
        Method Continue <31> ()
        Method SetPassword <32> (Byval bstrNewPassword As String)
        Method Sessions <35> () As IADsCollection
        Method Resources <36> () As IADsCollection
    End Interface
    ' Interface Name  : IADsFileShare
    Interface IADsFileShare $IID_IADsFileShare 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get CurrentUserCount <15> () As Long
        Property Get Description <16> () As String
        Property Set Description <16> (ByVal retval As String)
        Property Get HostComputer <17> () As String
        Property Set HostComputer <17> (ByVal Rhs As String)
        Property Get Path <18> () As String
        Property Set Path <18> (ByVal Rhs As String)
        Property Get MaxUserCount <19> () As Long
        Property Set MaxUserCount <19> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsSession
    Interface IADsSession $IID_IADsSession 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get User <15> () As String
        Property Get UserPath <16> () As String
        Property Get Computer <17> () As String
        Property Get ComputerPath <18> () As String
        Property Get ConnectTime <19> () As Long
        Property Get IdleTime <20> () As Long
    End Interface
    ' Interface Name  : IADsResource
    Interface IADsResource $IID_IADsResource 
        Inherit IDispatch
        Property Get Name <2> () As String
        Property Get Class <3> () As String
        Property Get GUID <4> () As String
        Property Get ADsPath <5> () As String
        Property Get Parent <6> () As String
        Property Get Schema <7> () As String
        Method GetInfo <8> ()
        Method SetInfo <9> ()
        Method Get <10> (Byval bstrName As String) As Variant
        Method Put <11> (Byval bstrName As String, Byval vProp As Variant)
        Method GetEx <12> (Byval bstrName As String) As Variant
        Method PutEx <13> (Byval lnControlCode As Long, Byval bstrName As String, Byval vProp As Variant)
        Method GetInfoEx <14> (Byval vProperties As Variant, Byval lnReserved As Long)
        Property Get User <15> () As String
        Property Get UserPath <16> () As String
        Property Get Path <17> () As String
        Property Get LockCount <18> () As Long
    End Interface
    ' Interface Name  : IADsOpenDSObject
    Interface IADsOpenDSObject $IID_IADsOpenDSObject 
        Inherit IDispatch
        Method OpenDSObject <1> (Byval lpszDNName As String, Byval lpszUserName As String, Byval lpszPassword As String, Byval _
            lnReserved As Long) As IDispatch
    End Interface
    ' Interface Name  : IDirectoryObject
    Interface IDirectoryObject $IID_IDirectoryObject 
        Inherit IUnknown
        Method GetObjectInformation(ByRef ppObjInfo As DWord) As Long
        Method GetObjectAttributes(ByRef In pAttributeNames As DWord, Byval dwNumberAttributes As DWord, ByRef _
            ppAttributeEntries As DWord, ByRef pdwNumAttributesReturned As DWord) As Long
        Method SetObjectAttributes(ByRef In pAttributeEntries As Tag__ads_attr_info, Byval dwNumAttributes As DWord, ByRef _
            pdwNumAttributesModified As DWord) As Long
        Method CreateDSObject(Byval pszRDNName As DWord, ByRef In pAttributeEntries As Tag__ads_attr_info, Byval dwNumAttributes _
            As DWord, ByRef ppObject As IDispatch) As Long
        Method DeleteDSObject(Byval pszRDNName As DWord) As Long
    End Interface
    ' Interface Name  : IDirectorySearch
    Interface IDirectorySearch $IID_IDirectorySearch 
        Inherit IUnknown
        Method SetSearchPreference(ByRef In pSearchPrefs As ads_searchpref_info, Byval dwNumPrefs As DWord) As Long
        Method ExecuteSearch(Byval pszSearchFilter As DWord, ByRef In pAttributeNames As DWord, Byval dwNumberAttributes As _
            DWord, ByRef phSearchResult As DWord) As Long
        Method AbandonSearch(ByVal phSearchResult As Long) As Long
        Method GetFirstRow(ByVal hSearchResult As Long) As Long
        Method GetNextRow(ByVal hSearchResult As Long) As Long
        Method GetPreviousRow(ByVal hSearchResult As Long) As Long
        Method GetNextColumnName(ByVal hSearchHandle As Long, ByRef ppszColumnName As DWord) As Long
        Method GetColumn(ByVal hSearchResult As Long, Byval szColumnName As DWord, ByRef pSearchColumn As ads_search_column) As _
            Long
        Method FreeColumn(ByRef In pSearchColumn As ads_search_column) As Long
        Method CloseSearchHandle(ByVal hSearchResult As Long) As Long
    End Interface
    ' Interface Name  : IDirectorySchemaMgmt
    Interface IDirectorySchemaMgmt $IID_IDirectorySchemaMgmt 
        Inherit IUnknown
        Method EnumAttributes(ByRef ppszAttrNames As DWord, ByRef dwNumAttributes As DWord, ByRef ppAttrDefinition As DWord, _
            ByRef pdwNumAttributes As DWord) As Long
        Method CreateAttributeDefinition(ByRef pszAttributeName As DWord, ByRef pAttributeDefinition As Tag__ads_attr_def) As _
            Long
        Method WriteAttributeDefinition(ByRef pszAttributeName As DWord, ByRef pAttributeDefinition As Tag__ads_attr_def) As _
            Long
        Method DeleteAttributeDefinition(ByRef pszAttributeName As DWord) As Long
        Method EnumClasses(ByRef ppszClassNames As DWord, ByRef dwNumClasses As DWord, ByRef ppClassDefinition As DWord, ByRef _
            pdwNumClasses As DWord) As Long
        Method WriteClassDefinition(ByRef pszClassName As DWord, ByRef pClassDefinition As Tag__ads_class_def) As Long
        Method CreateClassDefinition(ByRef pszClassName As DWord, ByRef pClassDefinition As Tag__ads_class_def) As Long
        Method DeleteClassDefinition(ByRef pszClassName As DWord) As Long
    End Interface
    ' Interface Name  : IADsAggregatee
    Interface IADsAggregatee $IID_IADsAggregatee 
        Inherit IUnknown
        Method ConnectAsAggregatee(ByRef pOuterUnknown As IUnknown) As Long
        Method DisconnectAsAggregatee() As Long
        Method RelinquishInterface(ByRef riid As GUID) As Long
        Method RestoreInterface(ByRef riid As GUID) As Long
    End Interface
    ' Interface Name  : IADsAggregator
    Interface IADsAggregator $IID_IADsAggregator 
        Inherit IUnknown
        Method ConnectAsAggregator(ByRef pAggregatee As IUnknown) As Long
        Method DisconnectAsAggregator() As Long
    End Interface
    ' Interface Name  : IADsAccessControlEntry
    ' ClassID         : $CLSID_AccessControlEntry
    Interface IADsAccessControlEntry $IID_IADsAccessControlEntry 
        Inherit IDispatch
        Property Get AccessMask <2> () As Long
        Property Set AccessMask <2> (ByVal retval As Long)
        Property Get AceType <3> () As Long
        Property Set AceType <3> (ByVal retval As Long)
        Property Get AceFlags <4> () As Long
        Property Set AceFlags <4> (ByVal retval As Long)
        Property Get Flags <5> () As Long
        Property Set Flags <5> (ByVal retval As Long)
        Property Get ObjectType <6> () As String
        Property Set ObjectType <6> (ByVal retval As String)
        Property Get InheritedObjectType <7> () As String
        Property Set InheritedObjectType <7> (ByVal retval As String)
        Property Get Trustee <8> () As String
        Property Set Trustee <8> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsAccessControlList
    ' ClassID         : $CLSID_AccessControlList
    Interface IADsAccessControlList $IID_IADsAccessControlList 
        Inherit IDispatch
        Property Get AclRevision <3> () As Long
        Property Set AclRevision <3> (ByVal retval As Long)
        Property Get AceCount <4> () As Long
        Property Set AceCount <4> (ByVal retval As Long)
        Method AddAce <5> (Byval pAccessControlEntry As IDispatch)
        Method RemoveAce <6> (Byval pAccessControlEntry As IDispatch)
        Method CopyAccessList <7> () As IDispatch
        Property Get PropGet__NewEnum <-4> () As IUnknown
    End Interface
    ' Interface Name  : IADsSecurityDescriptor
    ' ClassID         : $CLSID_SecurityDescriptor
    Interface IADsSecurityDescriptor $IID_IADsSecurityDescriptor 
        Inherit IDispatch
        Property Get Revision <2> () As Long
        Property Set Revision <2> (ByVal retval As Long)
        Property Get Control <3> () As Long
        Property Set Control <3> (ByVal retval As Long)
        Property Get Owner <4> () As String
        Property Set Owner <4> (ByVal retval As String)
        Property Get OwnerDefaulted <5> () As Integer
        Property Set OwnerDefaulted <5> (ByVal retval As Integer)
        Property Get Group <6> () As String
        Property Set Group <6> (ByVal retval As String)
        Property Get GroupDefaulted <7> () As Integer
        Property Set GroupDefaulted <7> (ByVal retval As Integer)
        Property Get DiscretionaryAcl <8> () As IDispatch
        Property Set DiscretionaryAcl <8> (ByVal retval As IDispatch)
        Property Get DaclDefaulted <9> () As Integer
        Property Set DaclDefaulted <9> (ByVal retval As Integer)
        Property Get SystemAcl <10> () As IDispatch
        Property Set SystemAcl <10> (ByVal retval As IDispatch)
        Property Get SaclDefaulted <11> () As Integer
        Property Set SaclDefaulted <11> (ByVal retval As Integer)
        Method CopySecurityDescriptor <12> () As IDispatch
    End Interface
    ' Interface Name  : IADsLargeInteger
    ' ClassID         : $CLSID_LargeInteger
    Interface IADsLargeInteger $IID_IADsLargeInteger 
        Inherit IDispatch
        Property Get HighPart <2> () As Long
        Property Set HighPart <2> (ByVal retval As Long)
        Property Get LowPart <3> () As Long
        Property Set LowPart <3> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsNameTranslate
    ' ClassID         : $CLSID_NameTranslate
    Interface IADsNameTranslate $IID_IADsNameTranslate 
        Inherit IDispatch
        Property Set ChaseReferral <1> (ByVal Rhs As Long)
        Method Init <2> (Byval lnSetType As Long, Byval bstrADsPath As String)
        Method InitEx <3> (Byval lnSetType As Long, Byval bstrADsPath As String, Byval bstrUserID As String, Byval bstrDomain As _
            String, Byval bstrPassword As String)
        Method Set <4> (Byval lnSetType As Long, Byval bstrADsPath As String)
        Method Get <5> (Byval lnFormatType As Long) As String
        Method SetEx <6> (Byval lnFormatType As Long, Byval pVar As Variant)
        Method GetEx <7> (Byval lnFormatType As Long) As Variant
    End Interface
    ' Interface Name  : IADsCaseIgnoreList
    ' ClassID         : $CLSID_CaseIgnoreList
    Interface IADsCaseIgnoreList $IID_IADsCaseIgnoreList 
        Inherit IDispatch
        Property Get CaseIgnoreList <2> () As Variant
        Property Set CaseIgnoreList <2> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsFaxNumber
    ' ClassID         : $CLSID_FaxNumber
    Interface IADsFaxNumber $IID_IADsFaxNumber 
        Inherit IDispatch
        Property Get TelephoneNumber <2> () As String
        Property Set TelephoneNumber <2> (ByVal retval As String)
        Property Get Parameters <3> () As Variant
        Property Set Parameters <3> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsNetAddress
    ' ClassID         : $CLSID_NetAddress
    Interface IADsNetAddress $IID_IADsNetAddress 
        Inherit IDispatch
        Property Get AddressType <2> () As Long
        Property Set AddressType <2> (ByVal retval As Long)
        Property Get Address <3> () As Variant
        Property Set Address <3> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsOctetList
    ' ClassID         : $CLSID_OctetList
    Interface IADsOctetList $IID_IADsOctetList 
        Inherit IDispatch
        Property Get OctetList <2> () As Variant
        Property Set OctetList <2> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsEmail
    ' ClassID         : $CLSID_Email
    Interface IADsEmail $IID_IADsEmail 
        Inherit IDispatch
        Property Get Type <2> () As Long
        Property Set Type <2> (ByVal retval As Long)
        Property Get Address <3> () As String
        Property Set Address <3> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsPath
    ' ClassID         : $CLSID_Path
    Interface IADsPath $IID_IADsPath 
        Inherit IDispatch
        Property Get Type <2> () As Long
        Property Set Type <2> (ByVal retval As Long)
        Property Get VolumeName <3> () As String
        Property Set VolumeName <3> (ByVal retval As String)
        Property Get Path <4> () As String
        Property Set Path <4> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsReplicaPointer
    ' ClassID         : $CLSID_ReplicaPointer
    Interface IADsReplicaPointer $IID_IADsReplicaPointer 
        Inherit IDispatch
        Property Get ServerName <2> () As String
        Property Set ServerName <2> (ByVal retval As String)
        Property Get ReplicaType <3> () As Long
        Property Set ReplicaType <3> (ByVal retval As Long)
        Property Get ReplicaNumber <4> () As Long
        Property Set ReplicaNumber <4> (ByVal retval As Long)
        Property Get Count <5> () As Long
        Property Set Count <5> (ByVal retval As Long)
        Property Get ReplicaAddressHints <6> () As Variant
        Property Set ReplicaAddressHints <6> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsAcl
    Interface IADsAcl $IID_IADsAcl 
        Inherit IDispatch
        Property Get ProtectedAttrName <2> () As String
        Property Set ProtectedAttrName <2> (ByVal retval As String)
        Property Get SubjectName <3> () As String
        Property Set SubjectName <3> (ByVal retval As String)
        Property Get Privileges <4> () As Long
        Property Set Privileges <4> (ByVal retval As Long)
        Method CopyAcl <5> () As IDispatch
    End Interface
    ' Interface Name  : IADsTimestamp
    ' ClassID         : $CLSID_Timestamp
    Interface IADsTimestamp $IID_IADsTimestamp 
        Inherit IDispatch
        Property Get WholeSeconds <2> () As Long
        Property Set WholeSeconds <2> (ByVal retval As Long)
        Property Get EventID <3> () As Long
        Property Set EventID <3> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsPostalAddress
    ' ClassID         : $CLSID_PostalAddress
    Interface IADsPostalAddress $IID_IADsPostalAddress 
        Inherit IDispatch
        Property Get PostalAddress <2> () As Variant
        Property Set PostalAddress <2> (ByVal retval As Variant)
    End Interface
    ' Interface Name  : IADsBackLink
    ' ClassID         : $CLSID_BackLink
    Interface IADsBackLink $IID_IADsBackLink 
        Inherit IDispatch
        Property Get RemoteID <2> () As Long
        Property Set RemoteID <2> (ByVal retval As Long)
        Property Get ObjectName <3> () As String
        Property Set ObjectName <3> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsTypedName
    ' ClassID         : $CLSID_TypedName
    Interface IADsTypedName $IID_IADsTypedName 
        Inherit IDispatch
        Property Get ObjectName <2> () As String
        Property Set ObjectName <2> (ByVal retval As String)
        Property Get Level <3> () As Long
        Property Set Level <3> (ByVal retval As Long)
        Property Get Interval <4> () As Long
        Property Set Interval <4> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsHold
    ' ClassID         : $CLSID_Hold
    Interface IADsHold $IID_IADsHold 
        Inherit IDispatch
        Property Get ObjectName <2> () As String
        Property Set ObjectName <2> (ByVal retval As String)
        Property Get Amount <3> () As Long
        Property Set Amount <3> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsObjectOptions
    Interface IADsObjectOptions $IID_IADsObjectOptions 
        Inherit IDispatch
        Method GetOption <2> (Byval lnOption As Long) As Variant
        Method SetOption <3> (Byval lnOption As Long, Byval vValue As Variant)
    End Interface
    ' Interface Name  : IADsPathname
    ' ClassID         : $CLSID_Pathname
    Interface IADsPathname $IID_IADsPathname 
        Inherit IDispatch
        Method Set <2> (Byval bstrADsPath As String, Byval lnSetType As Long)
        Method SetDisplayType <3> (Byval lnDisplayType As Long)
        Method Retrieve <4> (Byval lnFormatType As Long) As String
        Method GetNumElements <5> () As Long
        Method GetElement <6> (Byval lnElementIndex As Long) As String
        Method AddLeafElement <7> (Byval bstrLeafElement As String)
        Method RemoveLeafElement <8> ()
        Method CopyPath <9> () As IDispatch
        Method GetEscapedElement <10> (Byval lnReserved As Long, Byval bstrInStr As String) As String
        Property Get EscapedMode <11> () As Long
        Property Set EscapedMode <11> (ByVal retval As Long)
    End Interface
    ' Interface Name  : IADsADSystemInfo
    ' ClassID         : $CLSID_ADSystemInfo
    Interface IADsADSystemInfo $IID_IADsADSystemInfo 
        Inherit IDispatch
        Property Get UserName <2> () As String
        Property Get ComputerName <3> () As String
        Property Get SiteName <4> () As String
        Property Get DomainShortName <5> () As String
        Property Get DomainDNSName <6> () As String
        Property Get ForestDNSName <7> () As String
        Property Get PDCRoleOwner <8> () As String
        Property Get SchemaRoleOwner <9> () As String
        Property Get IsNativeMode <10> () As Integer
        Method GetAnyDCName <11> () As String
        Method GetDCSiteName <12> (Byval szServer As String) As String
        Method RefreshSchemaCache <13> ()
        Method GetTrees <14> () As Variant
    End Interface
    ' Interface Name  : IADsWinNTSystemInfo
    ' ClassID         : $CLSID_WinNTSystemInfo
    Interface IADsWinNTSystemInfo $IID_IADsWinNTSystemInfo 
        Inherit IDispatch
        Property Get UserName <2> () As String
        Property Get ComputerName <3> () As String
        Property Get DomainName <4> () As String
        Property Get PDC <5> () As String
    End Interface
    ' Interface Name  : IADsDNWithBinary
    ' ClassID         : $CLSID_DNWithBinary
    Interface IADsDNWithBinary $IID_IADsDNWithBinary 
        Inherit IDispatch
        Property Get BinaryValue <2> () As Variant
        Property Set BinaryValue <2> (ByVal retval As Variant)
        Property Get DNString <3> () As String
        Property Set DNString <3> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsDNWithString
    ' ClassID         : $CLSID_DNWithString
    Interface IADsDNWithString $IID_IADsDNWithString 
        Inherit IDispatch
        Property Get StringValue <2> () As String
        Property Set StringValue <2> (ByVal retval As String)
        Property Get DNString <3> () As String
        Property Set DNString <3> (ByVal retval As String)
    End Interface
    ' Interface Name  : IADsSecurityUtility
    ' ClassID         : $CLSID_ADsSecurityUtility
    Interface IADsSecurityUtility $IID_IADsSecurityUtility 
        Inherit IDispatch
        Method GetSecurityDescriptor <2> (Byval varPath As Variant, Byval lPathFormat As Long, Byval lFormat As Long) As Variant
        Method SetSecurityDescriptor <3> (Byval varPath As Variant, Byval lPathFormat As Long, Byval varData As Variant, Byval _
            lDataFormat As Long)
        Method ConvertSecurityDescriptor <4> (Byval varSD As Variant, Byval lDataFormat As Long, Byval lOutFormat As Long) As _
            Variant
        Property Get SecurityMask <5> () As Long
        Property Set SecurityMask <5> (ByVal retval As Long)
    End Interface
Working...
X