Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › IADsUser

IADsUser

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID3e37e320-17e2-11cf-abc4-02608c9e7553継承元IADs呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl20

公式ドキュメント

IADsUser インターフェイスは、IADs を継承するデュアルインターフェイスです。

解説(Remarks)

他の ADSI オブジェクトと同様に、コンテナーオブジェクトが Windows のユーザーアカウントオブジェクトを作成します。まず、コンテナーオブジェクトにバインドします。次に、IADsContainer::Create メソッドを呼び出して、必須またはオプションの属性を指定します。

WinNT では、ユーザーを作成する際に追加の属性を指定する必要はありません。IADsContainer::Create メソッドを呼び出して、ユーザーオブジェクトを直接作成できます。

Dim dom As IADsContainer
Dim usr As IADsUser

On Error GoTo Cleanup

Set dom = GetObject("WinNT://MyDomain")
Set usr = dom.Create("user","jeffsmith")
usr.SetInfo

Cleanup:
    If(Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set mach = Nothing
    Set usr = Nothing

この場合、次の既定値でドメインユーザーが作成されます。

プロパティ
フルネーム SAM アカウント名 (jeffsmith など)
パスワード
ユーザーはパスワードの変更が必要 TRUE
ユーザーはパスワードを変更できない FALSE
パスワードを無期限にする FALSE
アカウント無効 FALSE
グループ ドメインユーザー
プロファイル
アカウントは無期限 TRUE

ローカルユーザーを作成するには、次のコード例に示すように、対象のコンピューターにバインドします。

Dim mach As IADsContainer
Dim usr as IADsUser

On Error GoTo Cleanup
Set mach = GetObject("WinNT://MyMachine,Computer")
Set usr = mach.Create("user","jeffsmith")
usr.SetInfo

Cleanup:
    If(Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set mach = Nothing
    Set usr = Nothing

新しく作成されたローカルユーザーは、ドメインユーザーと同じ既定のプロパティを持ちます。ただし、グループメンバーシップは「domain user」ではなく「users」になります。

メソッド 91

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 20 HRESULT get_BadLoginAddress(LPWSTR* retval)
retvalLPWSTR*out直近のログイン失敗が発生した端末アドレスを受け取る出力先。BSTRで返る(読取専用)。
vtbl 21 HRESULT get_BadLoginCount(INT* retval)
retvalINT*outログイン失敗の累積回数を受け取る出力先。INT*で返る(読取専用)。
vtbl 22 HRESULT get_LastLogin(DOUBLE* retval)
retvalDOUBLE*out最終ログイン日時を受け取る出力先。OLE日付値(DOUBLE)で返る(読取専用)。
vtbl 23 HRESULT get_LastLogoff(DOUBLE* retval)
retvalDOUBLE*out最終ログオフ日時を受け取る出力先。OLE日付値(DOUBLE)で返る(読取専用)。
vtbl 24 HRESULT get_LastFailedLogin(DOUBLE* retval)
retvalDOUBLE*out最終のログイン失敗日時を受け取る出力先。OLE日付値(DOUBLE)で返る(読取専用)。
vtbl 25 HRESULT get_PasswordLastChanged(DOUBLE* retval)
retvalDOUBLE*outパスワード最終変更日時を受け取る出力先。OLE日付値(DOUBLE)で返る(読取専用)。
vtbl 26 HRESULT get_Description(LPWSTR* retval)
retvalLPWSTR*outユーザーの説明文字列を受け取る出力先。BSTRで返る。
vtbl 27 HRESULT put_Description(LPWSTR bstrDescription)
bstrDescriptionLPWSTRin設定するユーザーの説明文字列をBSTRで指定する。
vtbl 28 HRESULT get_Division(LPWSTR* retval)
retvalLPWSTR*outユーザーが属する部門(事業部)名を受け取る出力先。BSTRで返る。
vtbl 29 HRESULT put_Division(LPWSTR bstrDivision)
bstrDivisionLPWSTRin設定する部門(事業部)名をBSTRで指定する。
vtbl 30 HRESULT get_Department(LPWSTR* retval)
retvalLPWSTR*outユーザーが属する課・部署名を受け取る出力先。BSTRで返る。
vtbl 31 HRESULT put_Department(LPWSTR bstrDepartment)
bstrDepartmentLPWSTRin設定する課・部署名をBSTRで指定する。
vtbl 32 HRESULT get_EmployeeID(LPWSTR* retval)
retvalLPWSTR*outユーザーの社員番号を受け取る出力先。BSTRで返る。
vtbl 33 HRESULT put_EmployeeID(LPWSTR bstrEmployeeID)
bstrEmployeeIDLPWSTRin設定する社員番号をBSTRで指定する。
vtbl 34 HRESULT get_FullName(LPWSTR* retval)
retvalLPWSTR*outユーザーの氏名(フルネーム)を受け取る出力先。BSTRで返る。
vtbl 35 HRESULT put_FullName(LPWSTR bstrFullName)
bstrFullNameLPWSTRin設定する氏名(フルネーム)をBSTRで指定する。
vtbl 36 HRESULT get_FirstName(LPWSTR* retval)
retvalLPWSTR*outユーザーの名(ファーストネーム)を受け取る出力先。BSTRで返る。
vtbl 37 HRESULT put_FirstName(LPWSTR bstrFirstName)
bstrFirstNameLPWSTRin設定する名(ファーストネーム)をBSTRで指定する。
vtbl 38 HRESULT get_LastName(LPWSTR* retval)
retvalLPWSTR*outユーザーの姓(ラストネーム)を受け取る出力先。BSTRで返る。
vtbl 39 HRESULT put_LastName(LPWSTR bstrLastName)
bstrLastNameLPWSTRin設定する姓(ラストネーム)をBSTRで指定する。
vtbl 40 HRESULT get_OtherName(LPWSTR* retval)
retvalLPWSTR*outユーザーのその他の名前(ミドルネーム等)を受け取る出力先。BSTRで返る。
vtbl 41 HRESULT put_OtherName(LPWSTR bstrOtherName)
bstrOtherNameLPWSTRin設定するその他の名前(ミドルネーム等)をBSTRで指定する。
vtbl 42 HRESULT get_NamePrefix(LPWSTR* retval)
retvalLPWSTR*out氏名の前に付く敬称(Dr.等)を受け取る出力先。BSTRで返る。
vtbl 43 HRESULT put_NamePrefix(LPWSTR bstrNamePrefix)
bstrNamePrefixLPWSTRin設定する氏名の敬称(プレフィックス)をBSTRで指定する。
vtbl 44 HRESULT get_NameSuffix(LPWSTR* retval)
retvalLPWSTR*out氏名の後に付く接尾辞(Jr.等)を受け取る出力先。BSTRで返る。
vtbl 45 HRESULT put_NameSuffix(LPWSTR bstrNameSuffix)
bstrNameSuffixLPWSTRin設定する氏名の接尾辞をBSTRで指定する。
vtbl 46 HRESULT get_Title(LPWSTR* retval)
retvalLPWSTR*outユーザーの役職(肩書き)を受け取る出力先。BSTRで返る。
vtbl 47 HRESULT put_Title(LPWSTR bstrTitle)
bstrTitleLPWSTRin設定する役職(肩書き)をBSTRで指定する。
vtbl 48 HRESULT get_Manager(LPWSTR* retval)
retvalLPWSTR*outユーザーの上長(マネージャー)名を受け取る出力先。BSTRで返る。
vtbl 49 HRESULT put_Manager(LPWSTR bstrManager)
bstrManagerLPWSTRin設定する上長(マネージャー)名をBSTRで指定する。
vtbl 50 HRESULT get_TelephoneHome(VARIANT* retval)
retvalVARIANT*out自宅電話番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 51 HRESULT put_TelephoneHome(VARIANT vTelephoneHome)
vTelephoneHomeVARIANTin設定する自宅電話番号の一覧を文字列配列のVARIANTで指定する。
vtbl 52 HRESULT get_TelephoneMobile(VARIANT* retval)
retvalVARIANT*out携帯電話番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 53 HRESULT put_TelephoneMobile(VARIANT vTelephoneMobile)
vTelephoneMobileVARIANTin設定する携帯電話番号の一覧を文字列配列のVARIANTで指定する。
vtbl 54 HRESULT get_TelephoneNumber(VARIANT* retval)
retvalVARIANT*out業務用電話番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 55 HRESULT put_TelephoneNumber(VARIANT vTelephoneNumber)
vTelephoneNumberVARIANTin設定する業務用電話番号の一覧を文字列配列のVARIANTで指定する。
vtbl 56 HRESULT get_TelephonePager(VARIANT* retval)
retvalVARIANT*outポケットベル番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 57 HRESULT put_TelephonePager(VARIANT vTelephonePager)
vTelephonePagerVARIANTin設定するポケットベル番号の一覧を文字列配列のVARIANTで指定する。
vtbl 58 HRESULT get_FaxNumber(VARIANT* retval)
retvalVARIANT*outFAX番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 59 HRESULT put_FaxNumber(VARIANT vFaxNumber)
vFaxNumberVARIANTin設定するFAX番号の一覧を文字列配列のVARIANTで指定する。
vtbl 60 HRESULT get_OfficeLocations(VARIANT* retval)
retvalVARIANT*out勤務地(オフィス所在地)の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 61 HRESULT put_OfficeLocations(VARIANT vOfficeLocations)
vOfficeLocationsVARIANTin設定する勤務地の一覧を文字列配列のVARIANTで指定する。
vtbl 62 HRESULT get_PostalAddresses(VARIANT* retval)
retvalVARIANT*out郵便宛先(住所)の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 63 HRESULT put_PostalAddresses(VARIANT vPostalAddresses)
vPostalAddressesVARIANTin設定する郵便宛先(住所)の一覧を文字列配列のVARIANTで指定する。
vtbl 64 HRESULT get_PostalCodes(VARIANT* retval)
retvalVARIANT*out郵便番号の一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 65 HRESULT put_PostalCodes(VARIANT vPostalCodes)
vPostalCodesVARIANTin設定する郵便番号の一覧を文字列配列のVARIANTで指定する。
vtbl 66 HRESULT get_SeeAlso(VARIANT* retval)
retvalVARIANT*out関連オブジェクトへの参照名リストを受け取る出力先。文字列配列のVARIANTで返る。
vtbl 67 HRESULT put_SeeAlso(VARIANT vSeeAlso)
vSeeAlsoVARIANTin設定する関連オブジェクト参照名のリストを文字列配列のVARIANTで指定する。
vtbl 68 HRESULT get_AccountDisabled(VARIANT_BOOL* retval)
retvalVARIANT_BOOL*outアカウントが無効化されているかを受け取る出力先。VARIANT_TRUEで無効。
vtbl 69 HRESULT put_AccountDisabled(VARIANT_BOOL fAccountDisabled)
fAccountDisabledVARIANT_BOOLinアカウントを無効化するかを指定する。VARIANT_TRUEで無効化。
vtbl 70 HRESULT get_AccountExpirationDate(DOUBLE* retval)
retvalDOUBLE*outアカウントの有効期限日時を受け取る出力先。OLE日付値(DOUBLE)で返る。
vtbl 71 HRESULT put_AccountExpirationDate(DOUBLE daAccountExpirationDate)
daAccountExpirationDateDOUBLEin設定するアカウント有効期限日時をOLE日付値(DOUBLE)で指定する。
vtbl 72 HRESULT get_GraceLoginsAllowed(INT* retval)
retvalINT*outパスワード期限切れ後に許容する猶予ログイン回数を受け取る出力先。INT*で返る。
vtbl 73 HRESULT put_GraceLoginsAllowed(INT lnGraceLoginsAllowed)
lnGraceLoginsAllowedINTin設定する猶予ログイン許容回数を指定する。
vtbl 74 HRESULT get_GraceLoginsRemaining(INT* retval)
retvalINT*out残りの猶予ログイン回数を受け取る出力先。INT*で返る。
vtbl 75 HRESULT put_GraceLoginsRemaining(INT lnGraceLoginsRemaining)
lnGraceLoginsRemainingINTin設定する残り猶予ログイン回数を指定する。
vtbl 76 HRESULT get_IsAccountLocked(VARIANT_BOOL* retval)
retvalVARIANT_BOOL*outアカウントがロックされているかを受け取る出力先。VARIANT_TRUEでロック中。
vtbl 77 HRESULT put_IsAccountLocked(VARIANT_BOOL fIsAccountLocked)
fIsAccountLockedVARIANT_BOOLinアカウントのロック状態を指定する。VARIANT_FALSEでロック解除。
vtbl 78 HRESULT get_LoginHours(VARIANT* retval)
retvalVARIANT*outログイン許可時間帯を表すデータを受け取る出力先。VARIANTで返る。
vtbl 79 HRESULT put_LoginHours(VARIANT vLoginHours)
vLoginHoursVARIANTin設定するログイン許可時間帯のデータをVARIANTで指定する。
vtbl 80 HRESULT get_LoginWorkstations(VARIANT* retval)
retvalVARIANT*outログイン許可するワークステーション一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 81 HRESULT put_LoginWorkstations(VARIANT vLoginWorkstations)
vLoginWorkstationsVARIANTin設定するログイン許可ワークステーション一覧を文字列配列のVARIANTで指定する。
vtbl 82 HRESULT get_MaxLogins(INT* retval)
retvalINT*out同時ログイン可能な最大数を受け取る出力先。INT*で返る。
vtbl 83 HRESULT put_MaxLogins(INT lnMaxLogins)
lnMaxLoginsINTin設定する同時ログイン最大数を指定する。
vtbl 84 HRESULT get_MaxStorage(INT* retval)
retvalINT*outユーザーに割り当てる最大ストレージ容量を受け取る出力先。INT*で返る。
vtbl 85 HRESULT put_MaxStorage(INT lnMaxStorage)
lnMaxStorageINTin設定する最大ストレージ容量を指定する。
vtbl 86 HRESULT get_PasswordExpirationDate(DOUBLE* retval)
retvalDOUBLE*outパスワードの有効期限日時を受け取る出力先。OLE日付値(DOUBLE)で返る。
vtbl 87 HRESULT put_PasswordExpirationDate(DOUBLE daPasswordExpirationDate)
daPasswordExpirationDateDOUBLEin設定するパスワード有効期限日時をOLE日付値(DOUBLE)で指定する。
vtbl 88 HRESULT get_PasswordMinimumLength(INT* retval)
retvalINT*outユーザーパスワードの最小文字数を受け取る出力先。INT*で返る。
vtbl 89 HRESULT put_PasswordMinimumLength(INT lnPasswordMinimumLength)
lnPasswordMinimumLengthINTin設定するパスワードの最小文字数を指定する。
vtbl 90 HRESULT get_PasswordRequired(VARIANT_BOOL* retval)
retvalVARIANT_BOOL*outパスワードが必須かを受け取る出力先。VARIANT_TRUEで必須。
vtbl 91 HRESULT put_PasswordRequired(VARIANT_BOOL fPasswordRequired)
fPasswordRequiredVARIANT_BOOLinパスワードを必須とするかを指定する。VARIANT_TRUEで必須。
vtbl 92 HRESULT get_RequireUniquePassword(VARIANT_BOOL* retval)
retvalVARIANT_BOOL*out過去と重複しない一意なパスワードを要求するかを受け取る出力先。VARIANT_TRUEで要求。
vtbl 93 HRESULT put_RequireUniquePassword(VARIANT_BOOL fRequireUniquePassword)
fRequireUniquePasswordVARIANT_BOOLin一意なパスワードを要求するかを指定する。VARIANT_TRUEで要求。
vtbl 94 HRESULT get_EmailAddress(LPWSTR* retval)
retvalLPWSTR*outユーザーの電子メールアドレスを受け取る出力先。BSTRで返る。
vtbl 95 HRESULT put_EmailAddress(LPWSTR bstrEmailAddress)
bstrEmailAddressLPWSTRin設定する電子メールアドレスをBSTRで指定する。
vtbl 96 HRESULT get_HomeDirectory(LPWSTR* retval)
retvalLPWSTR*outユーザーのホームディレクトリパスを受け取る出力先。BSTRで返る。
vtbl 97 HRESULT put_HomeDirectory(LPWSTR bstrHomeDirectory)
bstrHomeDirectoryLPWSTRin設定するホームディレクトリパスをBSTRで指定する。
vtbl 98 HRESULT get_Languages(VARIANT* retval)
retvalVARIANT*outユーザーの使用言語一覧を受け取る出力先。文字列配列のVARIANTで返る。
vtbl 99 HRESULT put_Languages(VARIANT vLanguages)
vLanguagesVARIANTin設定する使用言語一覧を文字列配列のVARIANTで指定する。
vtbl 100 HRESULT get_Profile(LPWSTR* retval)
retvalLPWSTR*outユーザープロファイルのパスを受け取る出力先。BSTRで返る。
vtbl 101 HRESULT put_Profile(LPWSTR bstrProfile)
bstrProfileLPWSTRin設定するユーザープロファイルのパスをBSTRで指定する。
vtbl 102 HRESULT get_LoginScript(LPWSTR* retval)
retvalLPWSTR*outログオン時に実行するスクリプトのパスを受け取る出力先。BSTRで返る。
vtbl 103 HRESULT put_LoginScript(LPWSTR bstrLoginScript)
bstrLoginScriptLPWSTRin設定するログオンスクリプトのパスをBSTRで指定する。
vtbl 104 HRESULT get_Picture(VARIANT* retval)
retvalVARIANT*outユーザーの顔写真などの画像データを受け取る出力先。バイナリのVARIANTで返る。
vtbl 105 HRESULT put_Picture(VARIANT vPicture)
vPictureVARIANTin設定するユーザー画像データをバイナリのVARIANTで指定する。
vtbl 106 HRESULT get_HomePage(LPWSTR* retval)
retvalLPWSTR*outユーザーのホームページURLを受け取る出力先。BSTRで返る。
vtbl 107 HRESULT put_HomePage(LPWSTR bstrHomePage)
bstrHomePageLPWSTRin設定するホームページURLをBSTRで指定する。
vtbl 108 HRESULT Groups(IADsMembers** ppGroups)

このユーザーが属する ADSI グループオブジェクトのコレクションを取得します。

ppGroupsIADsMembers**outこのエンドユーザーが属するグループを特定するために IEnumVARIANT を使用して列挙できる members オブジェクト上の IADsMembers インターフェイスへのポインターへのポインター。

戻り値

このメソッドは、S_OK を含む標準の戻り値をサポートします。その他の戻り値については、ADSI エラーコードを参照してください。

vtbl 109 HRESULT SetPassword(LPWSTR NewPassword)

ユーザーパスワードを指定した値に設定します。

NewPasswordLPWSTRin新しいパスワードを格納する BSTR

戻り値

このメソッドは、S_OK を含む標準の戻り値をサポートします。その他の戻り値については、ADSI エラーコードを参照してください。

解説(Remarks)

Active Directory 用の LDAP プロバイダーは、パスワードの設定に 3 つのいずれかのプロセスを使用します。iPlanet などのサードパーティ製 LDAP ディレクトリは、このパスワード認証プロセスを使用しません。使用される方法はネットワーク構成によって異なる場合があります。パスワードの設定は次の順序で試行されます。

Active Directory では、このメソッドでパスワードを設定するには、呼び出し元が Reset Password 拡張コントロールアクセス権を持っている必要があります。

次のコード例は、権限がある場合にユーザーパスワードを設定する方法を示しています。

Dim usr As IADsUser
Dim szPassword As String
On Error GoTo Cleanup

' Add code to securely get the password.

Set usr = GetObject("LDAP://MyLdapSvr/CN=JeffSmith,DC=Fabrikam")
usr.SetPassword szPassword

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

次のコード例は、権限がある場合にユーザーパスワードを設定する方法を示しています。

HRESULT SetPassword(IADsUser *pUser, BSTR password)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->SetPassword(password);
    if (hr == S_OK) printf("User password has been set");
    pUser->Release();
    return hr;
}
vtbl 110 HRESULT ChangePassword(LPWSTR bstrOldPassword, LPWSTR bstrNewPassword)

ユーザーパスワードを、指定した古い値から新しい値に変更します。

bstrOldPasswordLPWSTRin現在のパスワードを格納する BSTR
bstrNewPasswordLPWSTRin新しいパスワードを格納する BSTR

戻り値

このメソッドは、S_OK を含む標準の戻り値をサポートします。詳細およびその他の戻り値については、ADSI エラーコードを参照してください。

解説(Remarks)

IADsUser::ChangePasswordIADsUser::SetPassword と同様に機能し、パスワードの変更に 3 つのいずれかの方法を使用します。最初に、サーバーへのセキュアな SSL 接続が確立されている場合、LDAP プロバイダーは LDAP のパスワード変更操作を試みます。この試行が失敗した場合、LDAP プロバイダーは次に Kerberos の使用を試みます (フォレスト間認証で Windows 上に発生する可能性のある問題については、IADsUser::SetPassword を参照してください)。これも失敗した場合、最終的に Active Directory 固有のネットワーク管理 API である NetUserChangePassword を呼び出します。

Active Directory では、このメソッドでパスワードを変更するには、呼び出し元が Change Password 拡張コントロールアクセス権を持っている必要があります。

次のコード例は、ユーザーパスワードを変更する方法を示しています。

Dim usr As IADsUser
Dim szOldPass As String
Dim szNewPass As String

On Error GoTo Cleanup

Set usr = GetObject("WinNT://Fabrikam/JeffSmith,user")
' Add code to securely retrieve the old and new password.

usr.ChangePassword szOldPass, szNewPass

Cleanup:
    If (Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set usr = Nothing

次のコード例は、ユーザーパスワードを変更する方法を示しています。

HRESULT ChangePassword(
    IADsUser *pUser, 
    LPWSTR oldPasswd, 
    LPWSTR newPasswd)
{
    HRESULT hr=S_OK;
    if(!pUser) { return E_FAIL;}
    hr = pUser->ChangePassword(oldPasswd, newPasswd);
    printf("User password has been changed");
    return hr;
}
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IADsUser "{3E37E320-17E2-11CF-ABC4-02608C9E7553}"
#usecom global IADsUser IID_IADsUser "{}"
#comfunc global IADsUser_get_BadLoginAddress         20 var
#comfunc global IADsUser_get_BadLoginCount           21 var
#comfunc global IADsUser_get_LastLogin               22 var
#comfunc global IADsUser_get_LastLogoff              23 var
#comfunc global IADsUser_get_LastFailedLogin         24 var
#comfunc global IADsUser_get_PasswordLastChanged     25 var
#comfunc global IADsUser_get_Description             26 var
#comfunc global IADsUser_put_Description             27 wstr
#comfunc global IADsUser_get_Division                28 var
#comfunc global IADsUser_put_Division                29 wstr
#comfunc global IADsUser_get_Department              30 var
#comfunc global IADsUser_put_Department              31 wstr
#comfunc global IADsUser_get_EmployeeID              32 var
#comfunc global IADsUser_put_EmployeeID              33 wstr
#comfunc global IADsUser_get_FullName                34 var
#comfunc global IADsUser_put_FullName                35 wstr
#comfunc global IADsUser_get_FirstName               36 var
#comfunc global IADsUser_put_FirstName               37 wstr
#comfunc global IADsUser_get_LastName                38 var
#comfunc global IADsUser_put_LastName                39 wstr
#comfunc global IADsUser_get_OtherName               40 var
#comfunc global IADsUser_put_OtherName               41 wstr
#comfunc global IADsUser_get_NamePrefix              42 var
#comfunc global IADsUser_put_NamePrefix              43 wstr
#comfunc global IADsUser_get_NameSuffix              44 var
#comfunc global IADsUser_put_NameSuffix              45 wstr
#comfunc global IADsUser_get_Title                   46 var
#comfunc global IADsUser_put_Title                   47 wstr
#comfunc global IADsUser_get_Manager                 48 var
#comfunc global IADsUser_put_Manager                 49 wstr
#comfunc global IADsUser_get_TelephoneHome           50 var
#comfunc global IADsUser_put_TelephoneHome           51 int
#comfunc global IADsUser_get_TelephoneMobile         52 var
#comfunc global IADsUser_put_TelephoneMobile         53 int
#comfunc global IADsUser_get_TelephoneNumber         54 var
#comfunc global IADsUser_put_TelephoneNumber         55 int
#comfunc global IADsUser_get_TelephonePager          56 var
#comfunc global IADsUser_put_TelephonePager          57 int
#comfunc global IADsUser_get_FaxNumber               58 var
#comfunc global IADsUser_put_FaxNumber               59 int
#comfunc global IADsUser_get_OfficeLocations         60 var
#comfunc global IADsUser_put_OfficeLocations         61 int
#comfunc global IADsUser_get_PostalAddresses         62 var
#comfunc global IADsUser_put_PostalAddresses         63 int
#comfunc global IADsUser_get_PostalCodes             64 var
#comfunc global IADsUser_put_PostalCodes             65 int
#comfunc global IADsUser_get_SeeAlso                 66 var
#comfunc global IADsUser_put_SeeAlso                 67 int
#comfunc global IADsUser_get_AccountDisabled         68 var
#comfunc global IADsUser_put_AccountDisabled         69 int
#comfunc global IADsUser_get_AccountExpirationDate   70 var
#comfunc global IADsUser_put_AccountExpirationDate   71 double
#comfunc global IADsUser_get_GraceLoginsAllowed      72 var
#comfunc global IADsUser_put_GraceLoginsAllowed      73 int
#comfunc global IADsUser_get_GraceLoginsRemaining    74 var
#comfunc global IADsUser_put_GraceLoginsRemaining    75 int
#comfunc global IADsUser_get_IsAccountLocked         76 var
#comfunc global IADsUser_put_IsAccountLocked         77 int
#comfunc global IADsUser_get_LoginHours              78 var
#comfunc global IADsUser_put_LoginHours              79 int
#comfunc global IADsUser_get_LoginWorkstations       80 var
#comfunc global IADsUser_put_LoginWorkstations       81 int
#comfunc global IADsUser_get_MaxLogins               82 var
#comfunc global IADsUser_put_MaxLogins               83 int
#comfunc global IADsUser_get_MaxStorage              84 var
#comfunc global IADsUser_put_MaxStorage              85 int
#comfunc global IADsUser_get_PasswordExpirationDate  86 var
#comfunc global IADsUser_put_PasswordExpirationDate  87 double
#comfunc global IADsUser_get_PasswordMinimumLength   88 var
#comfunc global IADsUser_put_PasswordMinimumLength   89 int
#comfunc global IADsUser_get_PasswordRequired        90 var
#comfunc global IADsUser_put_PasswordRequired        91 int
#comfunc global IADsUser_get_RequireUniquePassword   92 var
#comfunc global IADsUser_put_RequireUniquePassword   93 int
#comfunc global IADsUser_get_EmailAddress            94 var
#comfunc global IADsUser_put_EmailAddress            95 wstr
#comfunc global IADsUser_get_HomeDirectory           96 var
#comfunc global IADsUser_put_HomeDirectory           97 wstr
#comfunc global IADsUser_get_Languages               98 var
#comfunc global IADsUser_put_Languages               99 int
#comfunc global IADsUser_get_Profile                 100 var
#comfunc global IADsUser_put_Profile                 101 wstr
#comfunc global IADsUser_get_LoginScript             102 var
#comfunc global IADsUser_put_LoginScript             103 wstr
#comfunc global IADsUser_get_Picture                 104 var
#comfunc global IADsUser_put_Picture                 105 int
#comfunc global IADsUser_get_HomePage                106 var
#comfunc global IADsUser_put_HomePage                107 wstr
#comfunc global IADsUser_Groups                      108 sptr
#comfunc global IADsUser_SetPassword                 109 wstr
#comfunc global IADsUser_ChangePassword              110 wstr,wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。