Win32 API 日本語リファレンス
ホームSystem.RemoteDesktop › IADsTSUserEx

IADsTSUserEx

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDc4930e79-2989-4462-8a60-2fcf2f2955ef継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

リモートデスクトップサービスのユーザープロパティを確認および構成するために使用します。

メソッド 30

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

vtbl 7 HRESULT get_TerminalServicesProfilePath(LPWSTR* pVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに使用される、移動プロファイルまたは必須プロファイルのパスです。 (Get)

pValLPWSTR*outターミナルサービスのプロファイルパスを表す文字列を受け取る。呼び出し側が解放する。

解説(Remarks)

プロファイルパスは、次のネットワークパス形式で指定します。

\\ServerName\ProfilesFolderName\UserName

Note  リモートデスクトップサービスのプロファイルパスは、RD セッションホストサーバーへのログオン時にのみ使用されます。
 

次の例は、資格情報を使用せずに Active Directory データベースにバインドするプログラムを示しています。

 IADsContainer *pContainer = NULL;
 IDispatch *pNewObject = NULL;
 IADsTSUserEx *pTSUser = NULL;
 IADsUser *pUser = NULL;
 HRESULT hr = ERROR_SUCCESS;

 CoInitialize(NULL);
 //
 // Bind to the known container.
 //
 hr = ADsGetObject(
    L"LDAP://DOMAIN/CN=Users,DC=Server1,DC=Domain,DC=com",
    IID_IADsContainer,
    (void**)&pContainer);

 if( !SUCCEEDED(hr)) {
  wprintf(L"ADsGetObject ret failed with 0x%x\n", hr);
  return FALSE;
 }
 //
 // Create the new Active Directory Service Interfaces User object.
 //
 hr = pContainer->Create(L"user",
                         L"cn=test3",
                         &pNewObject);
 pContainer->Release();

 if( !SUCCEEDED(hr)) {
  wprintf(L"Create ret failed with 0x%x\n", hr);
  return FALSE;
 }
 //
 // Get the IADsTSUser interface from the user object.
 //
 hr = pNewObject->QueryInterface(IID_IADsTSUserEx, (void**)&pTSUser);

 if( !SUCCEEDED(hr)) { 
  wprintf(L"QueryInterface for IADsTSUserEx failed with ret 0x%x\n",
          hr);
  return FALSE;
 }
 //
 // Get the IADsTSUser interface from the user object.
 //
 hr = pNewObject->QueryInterface(IID_IADsUser, (void**)&pUser);

 if( !SUCCEEDED(hr)) {
  wprintf(L"QueryInterface for IAsUser failed with 0x%x\n", hr);
  return FALSE;
 }
 pNewObject->Release();

 //
 // Set TerminalServicesProfilePath
 //
 pTSUser->put_TerminalServicesProfilePath(L"c:\\windows");
 pTSUser->Release();

 //
 // Commit the object data to the directory.
 //
 pUser->SetInfo();
 pUser->Release();
 CoUninitialize();

次のスクリプト例を使用して、プロバイダーの名前空間にバインドできます。2 つの例は指定した資格情報でバインドし、残りの 2 つは資格情報を使用せずにバインドします。

1 つ目の例は、指定した資格情報でセキュリティアカウントマネージャー (SAM) データベースにバインドするスクリプトを示しています。

2 つ目の例は、指定した資格情報で Active Directory データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("WinNT:")
Set usr = DSO.OpenDSObject(
    "WinNT://Server1/Test,user",
    Domain\User,
    Password,
    ADS_SECURE_AUTHENTICATION)
Wscript.echo usr.TerminalServicesProfilePath
usr.TerminalServicesProfilePath = "profile path"
usr.SetInfo
WScript.echo usr.TerminalServicesProfilePath
Set DSO = GetObject("LDAP:")
Set usr = DSO.OpenDSObject(
    "LDAP://DOMAIN/CN=Test,CN=Users,DC=Server1,DC=Domain,DC=com",
    Domain\User,
    Password,
    ADS_SECURE_AUTHENTICATION)
Wscript.echo usr.TerminalServicesProfilePath
usr.TerminalServicesProfilePath = "profile path"
usr.SetInfo
WScript.echo usr.TerminalServicesProfilePath
vtbl 8 HRESULT put_TerminalServicesProfilePath(LPWSTR pNewVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに使用される、移動プロファイルまたは必須プロファイルのパスです。 (Put)

pNewValLPWSTRinターミナルサービスのプロファイルパスに設定する値を指定する。

解説(Remarks)

プロファイルパスは、次のネットワークパス形式で指定します。

\\ServerName\ProfilesFolderName\UserName

Note  リモートデスクトップサービスのプロファイルパスは、RD セッションホストサーバーへのログオン時にのみ使用されます。
 

次の例は、資格情報を使用せずに Active Directory データベースにバインドするプログラムを示しています。

 IADsContainer *pContainer = NULL;
 IDispatch *pNewObject = NULL;
 IADsTSUserEx *pTSUser = NULL;
 IADsUser *pUser = NULL;
 HRESULT hr = ERROR_SUCCESS;

 CoInitialize(NULL);
 //
 // Bind to the known container.
 //
 hr = ADsGetObject(
    L"LDAP://DOMAIN/CN=Users,DC=Server1,DC=Domain,DC=com",
    IID_IADsContainer,
    (void**)&pContainer);

 if( !SUCCEEDED(hr)) {
  wprintf(L"ADsGetObject ret failed with 0x%x\n", hr);
  return FALSE;
 }
 //
 // Create the new Active Directory Service Interfaces User object.
 //
 hr = pContainer->Create(L"user",
                         L"cn=test3",
                         &pNewObject);
 pContainer->Release();

 if( !SUCCEEDED(hr)) {
  wprintf(L"Create ret failed with 0x%x\n", hr);
  return FALSE;
 }
 //
 // Get the IADsTSUser interface from the user object.
 //
 hr = pNewObject->QueryInterface(IID_IADsTSUserEx, (void**)&pTSUser);

 if( !SUCCEEDED(hr)) { 
  wprintf(L"QueryInterface for IADsTSUserEx failed with ret 0x%x\n",
          hr);
  return FALSE;
 }
 //
 // Get the IADsTSUser interface from the user object.
 //
 hr = pNewObject->QueryInterface(IID_IADsUser, (void**)&pUser);

 if( !SUCCEEDED(hr)) {
  wprintf(L"QueryInterface for IAsUser failed with 0x%x\n", hr);
  return FALSE;
 }
 pNewObject->Release();

 //
 // Set TerminalServicesProfilePath
 //
 pTSUser->put_TerminalServicesProfilePath(L"c:\\windows");
 pTSUser->Release();

 //
 // Commit the object data to the directory.
 //
 pUser->SetInfo();
 pUser->Release();
 CoUninitialize();

次のスクリプト例を使用して、プロバイダーの名前空間にバインドできます。2 つの例は指定した資格情報でバインドし、残りの 2 つは資格情報を使用せずにバインドします。

1 つ目の例は、指定した資格情報でセキュリティアカウントマネージャー (SAM) データベースにバインドするスクリプトを示しています。

2 つ目の例は、指定した資格情報で Active Directory データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("WinNT:")
Set usr = DSO.OpenDSObject(
    "WinNT://Server1/Test,user",
    Domain\User,
    Password,
    ADS_SECURE_AUTHENTICATION)
Wscript.echo usr.TerminalServicesProfilePath
usr.TerminalServicesProfilePath = "profile path"
usr.SetInfo
WScript.echo usr.TerminalServicesProfilePath
Set DSO = GetObject("LDAP:")
Set usr = DSO.OpenDSObject(
    "LDAP://DOMAIN/CN=Test,CN=Users,DC=Server1,DC=Domain,DC=com",
    Domain\User,
    Password,
    ADS_SECURE_AUTHENTICATION)
Wscript.echo usr.TerminalServicesProfilePath
usr.TerminalServicesProfilePath = "profile path"
usr.SetInfo
WScript.echo usr.TerminalServicesProfilePath
vtbl 9 HRESULT get_TerminalServicesHomeDirectory(LPWSTR* pVal)

ユーザーのルートディレクトリです。リモートデスクトップセッションホスト (RD セッションホスト) サーバー上の各ユーザーは、一意のルートディレクトリを持ちます。これにより、マルチユーザー環境でユーザーごとにアプリケーション情報が個別に保存されます。 (Get)

pValLPWSTR*outターミナルサービスのホームディレクトリを表す文字列を受け取る。呼び出し側が解放する。

解説(Remarks)

ローカルコンピューターにルートディレクトリを設定するには、ローカルパス (例: C:\Path) を指定します。ネットワーク環境でルートディレクトリを設定するには、まず TerminalServicesHomeDrive プロパティを設定してから、このプロパティに UNC パスを設定する必要があります。

例については、TerminalServicesHomeDrive を参照してください。

vtbl 10 HRESULT put_TerminalServicesHomeDirectory(LPWSTR pNewVal)

ユーザーのルートディレクトリです。リモートデスクトップセッションホスト (RD セッションホスト) サーバー上の各ユーザーは、一意のルートディレクトリを持ちます。これにより、マルチユーザー環境でユーザーごとにアプリケーション情報が個別に保存されます。 (Put)

pNewValLPWSTRinターミナルサービスのホームディレクトリに設定する値を指定する。

解説(Remarks)

ローカルコンピューターにルートディレクトリを設定するには、ローカルパス (例: C:\Path) を指定します。ネットワーク環境でルートディレクトリを設定するには、まず TerminalServicesHomeDrive プロパティを設定してから、このプロパティに UNC パスを設定する必要があります。

例については、TerminalServicesHomeDrive を参照してください。

vtbl 11 HRESULT get_TerminalServicesHomeDrive(LPWSTR* pVal)

ユーザーのルートドライブです。ネットワーク環境では、このプロパティは、ルートディレクトリとして指定した UNC パスのマップ先となるドライブ指定 (ドライブ文字とそれに続くコロン) を含む文字列です。 (Get)

pValLPWSTR*outターミナルサービスのホームドライブを表す文字列を受け取る。呼び出し側が解放する。

解説(Remarks)

ネットワーク環境でルートディレクトリを設定するには、まずこのプロパティを設定してから、TerminalServicesHomeDirectory プロパティを設定する必要があります。

次の例は、資格情報を使用せずに SAM データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("WinNT:")
Set usr = DSO.OpenDSObject("WinNT://Server1/Test,user")
WScript.echo usr.TerminalServicesHomeDrive
Wscript.echo usr.TerminalServicesHomeDirectory

usr.TerminalServicesHomeDrive = "Z:"
usr.TerminalServicesHomeDirectory = "\\servername\share\path"
usr.SetInfo

WScript.echo usr.TerminalServicesHomeDrive
WScript.echo usr.TerminalServicesHomeDirectory
vtbl 12 HRESULT put_TerminalServicesHomeDrive(LPWSTR pNewVal)

ユーザーのルートドライブです。ネットワーク環境では、このプロパティは、ルートディレクトリとして指定した UNC パスのマップ先となるドライブ指定 (ドライブ文字とそれに続くコロン) を含む文字列です。 (Put)

pNewValLPWSTRinターミナルサービスのホームドライブに設定する値を指定する。

解説(Remarks)

ネットワーク環境でルートディレクトリを設定するには、まずこのプロパティを設定してから、TerminalServicesHomeDirectory プロパティを設定する必要があります。

次の例は、資格情報を使用せずに SAM データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("WinNT:")
Set usr = DSO.OpenDSObject("WinNT://Server1/Test,user")
WScript.echo usr.TerminalServicesHomeDrive
Wscript.echo usr.TerminalServicesHomeDirectory

usr.TerminalServicesHomeDrive = "Z:"
usr.TerminalServicesHomeDirectory = "\\servername\share\path"
usr.SetInfo

WScript.echo usr.TerminalServicesHomeDrive
WScript.echo usr.TerminalServicesHomeDirectory
vtbl 13 HRESULT get_AllowLogon(INT* pVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーへのログオンを許可されるかどうかを指定する値です。 (Get)

pValINT*outターミナルサービスへのログオンが許可されているかどうかを示す値を受け取る。
vtbl 14 HRESULT put_AllowLogon(INT NewVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーへのログオンを許可されるかどうかを指定する値です。 (Put)

NewValINTinターミナルサービスへのログオンを許可するかどうかを指定する。
vtbl 15 HRESULT get_EnableRemoteControl(INT* pVal)

ユーザーのリモートデスクトップサービスセッションのリモート監視またはリモートコントロールを許可するかどうかを指定する値です。 (Get)

pValINT*outリモート制御が有効かどうかを示す値を受け取る。
vtbl 16 HRESULT put_EnableRemoteControl(INT NewVal)

ユーザーのリモートデスクトップサービスセッションのリモート監視またはリモートコントロールを許可するかどうかを指定する値です。 (Put)

NewValINTinリモート制御を有効にするかどうかを指定する。
vtbl 17 HRESULT get_MaxDisconnectionTime(INT* pVal)

切断されたリモートデスクトップサービスセッションが、リモートデスクトップセッションホスト (RD セッションホスト) サーバー上でアクティブなまま維持される最大時間です。指定した分数が経過すると、セッションは終了します。 (Get)

pValINT*out切断状態のセッションを保持する最大時間 (分単位) を受け取る。
vtbl 18 HRESULT put_MaxDisconnectionTime(INT NewVal)

切断されたリモートデスクトップサービスセッションが、リモートデスクトップセッションホスト (RD セッションホスト) サーバー上でアクティブなまま維持される最大時間です。指定した分数が経過すると、セッションは終了します。 (Put)

NewValINTin切断状態のセッションを保持する最大時間 (分単位) を指定する。
vtbl 19 HRESULT get_MaxConnectionTime(INT* pVal)

リモートデスクトップサービスセッションの最大継続時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Get)

pValINT*outセッションの最大接続時間 (分単位) を受け取る。
vtbl 20 HRESULT put_MaxConnectionTime(INT NewVal)

リモートデスクトップサービスセッションの最大継続時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Put)

NewValINTinセッションの最大接続時間 (分単位) を指定する。
vtbl 21 HRESULT get_MaxIdleTime(INT* pVal)

リモートデスクトップサービスセッションがアイドル状態のまま維持できる最大時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Get)

pValINT*outセッションの最大アイドル時間 (分単位) を受け取る。
vtbl 22 HRESULT put_MaxIdleTime(INT NewVal)

リモートデスクトップサービスセッションがアイドル状態のまま維持できる最大時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Put)

NewValINTinセッションの最大アイドル時間 (分単位) を指定する。
vtbl 23 HRESULT get_ReconnectionAction(INT* pNewVal)

切断されたリモートデスクトップサービスセッションへの再接続を許可するかどうかを指定する値です。 (Get)

pNewValINT*out再接続時に許可される動作を示す値を受け取る。
vtbl 24 HRESULT put_ReconnectionAction(INT NewVal)

切断されたリモートデスクトップサービスセッションへの再接続を許可するかどうかを指定する値です。 (Put)

NewValINTin再接続時に許可される動作を指定する。
vtbl 25 HRESULT get_BrokenConnectionAction(INT* pNewVal)

リモートデスクトップサービスセッションの制限に達したときに実行するアクションを指定する値です。 (Get)

pNewValINT*out接続が切断またはタイムアウトした際に取る動作を示す値を受け取る。
vtbl 26 HRESULT put_BrokenConnectionAction(INT NewVal)

リモートデスクトップサービスセッションの制限に達したときに実行するアクションを指定する値です。 (Put)

NewValINTin接続が切断またはタイムアウトした際に取る動作を指定する。
vtbl 27 HRESULT get_ConnectClientDrivesAtLogon(INT* pNewVal)

リモートデスクトップサービスセッションの開始時に、マップされたクライアントドライブを再接続するかどうかを指定する値です。 (Get)

pNewValINT*outログオン時にクライアントドライブを接続するかどうかを示す値を受け取る。
vtbl 28 HRESULT put_ConnectClientDrivesAtLogon(INT NewVal)

リモートデスクトップサービスセッションの開始時に、マップされたクライアントドライブを再接続するかどうかを指定する値です。 (Put)

NewValINTinログオン時にクライアントドライブを接続するかどうかを指定する。
vtbl 29 HRESULT get_ConnectClientPrintersAtLogon(INT* pVal)

ログオン時にマップされたクライアントプリンターへ再接続するかどうかを指定する値です。 (Get)

pValINT*outログオン時にクライアントプリンタを接続するかどうかを示す値を受け取る。
vtbl 30 HRESULT put_ConnectClientPrintersAtLogon(INT NewVal)

ログオン時にマップされたクライアントプリンターへ再接続するかどうかを指定する値です。 (Put)

NewValINTinログオン時にクライアントプリンタを接続するかどうかを指定する。
vtbl 31 HRESULT get_DefaultToMainPrinter(INT* pVal)

クライアントの既定のプリンターに自動的に印刷するかどうかを指定する値です。 (Get)

pValINT*outクライアントのメインプリンタを既定のプリンタとするかどうかを示す値を受け取る。
vtbl 32 HRESULT put_DefaultToMainPrinter(INT NewVal)

クライアントの既定のプリンターに自動的に印刷するかどうかを指定する値です。 (Put)

NewValINTinクライアントのメインプリンタを既定のプリンタとするかどうかを指定する。
vtbl 33 HRESULT get_TerminalServicesWorkDirectory(LPWSTR* pVal)

ユーザーの作業ディレクトリのパスです。 (Get)

pValLPWSTR*outターミナルサービスの作業ディレクトリを表す文字列を受け取る。呼び出し側が解放する。

解説(Remarks)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに起動する初期アプリケーションを設定するには、まず TerminalServicesInitialProgram プロパティを設定してから、このプロパティを設定する必要があります。

例については、TerminalServicesInitialProgram を参照してください。

vtbl 34 HRESULT put_TerminalServicesWorkDirectory(LPWSTR pNewVal)

ユーザーの作業ディレクトリのパスです。 (Put)

pNewValLPWSTRinターミナルサービスの作業ディレクトリに設定する値を指定する。

解説(Remarks)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに起動する初期アプリケーションを設定するには、まず TerminalServicesInitialProgram プロパティを設定してから、このプロパティを設定する必要があります。

例については、TerminalServicesInitialProgram を参照してください。

vtbl 35 HRESULT get_TerminalServicesInitialProgram(LPWSTR* pVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに自動的に起動したいアプリケーションのパスとファイル名です。 (Get)

pValLPWSTR*outログオン時に起動する初期プログラムを表す文字列を受け取る。呼び出し側が解放する。

解説(Remarks)

ユーザーがログオンするときに起動する初期アプリケーションを設定するには、まずこのプロパティを設定してから、TerminalServicesWorkDirectory プロパティを設定する必要があります。TerminalServicesInitialProgram プロパティのみを設定した場合、アプリケーションはユーザーのセッション内の既定のユーザーディレクトリで起動します。

次の例は、資格情報を使用せずに Active Directory データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("LDAP:")
Set usr = DSO.OpenDSObject(
    "LDAP://DOMAIN/CN=Test,CN=Users,DC=Server1,DC=Domain,DC=com")
Wscript.echo usr.TerminalServicesWorkDirectory
Wscript.echo usr.TerminalServicesInitialProgram
usr.TerminalServicesInitialProgram= "cmd.exe"
usr.TerminalServicesWorkDirectory= "D:\path"
usr.SetInfo
WScript.echo usr.TerminalServicesInitialProgram
Wscript.echo usr.TerminalServicesWorkDirectory
vtbl 36 HRESULT put_TerminalServicesInitialProgram(LPWSTR pNewVal)

ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに自動的に起動したいアプリケーションのパスとファイル名です。 (Put)

pNewValLPWSTRinログオン時に起動する初期プログラムを指定する。

解説(Remarks)

ユーザーがログオンするときに起動する初期アプリケーションを設定するには、まずこのプロパティを設定してから、TerminalServicesWorkDirectory プロパティを設定する必要があります。TerminalServicesInitialProgram プロパティのみを設定した場合、アプリケーションはユーザーのセッション内の既定のユーザーディレクトリで起動します。

次の例は、資格情報を使用せずに Active Directory データベースにバインドするスクリプトを示しています。

Set DSO = GetObject("LDAP:")
Set usr = DSO.OpenDSObject(
    "LDAP://DOMAIN/CN=Test,CN=Users,DC=Server1,DC=Domain,DC=com")
Wscript.echo usr.TerminalServicesWorkDirectory
Wscript.echo usr.TerminalServicesInitialProgram
usr.TerminalServicesInitialProgram= "cmd.exe"
usr.TerminalServicesWorkDirectory= "D:\path"
usr.SetInfo
WScript.echo usr.TerminalServicesInitialProgram
Wscript.echo usr.TerminalServicesWorkDirectory
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IADsTSUserEx "{C4930E79-2989-4462-8A60-2FCF2F2955EF}"
#usecom global IADsTSUserEx IID_IADsTSUserEx "{E2E9CAE6-1E7B-4B8E-BABD-E9BF6292AC29}"
#comfunc global IADsTSUserEx_get_TerminalServicesProfilePath     7 var
#comfunc global IADsTSUserEx_put_TerminalServicesProfilePath     8 wstr
#comfunc global IADsTSUserEx_get_TerminalServicesHomeDirectory   9 var
#comfunc global IADsTSUserEx_put_TerminalServicesHomeDirectory   10 wstr
#comfunc global IADsTSUserEx_get_TerminalServicesHomeDrive       11 var
#comfunc global IADsTSUserEx_put_TerminalServicesHomeDrive       12 wstr
#comfunc global IADsTSUserEx_get_AllowLogon                      13 var
#comfunc global IADsTSUserEx_put_AllowLogon                      14 int
#comfunc global IADsTSUserEx_get_EnableRemoteControl             15 var
#comfunc global IADsTSUserEx_put_EnableRemoteControl             16 int
#comfunc global IADsTSUserEx_get_MaxDisconnectionTime            17 var
#comfunc global IADsTSUserEx_put_MaxDisconnectionTime            18 int
#comfunc global IADsTSUserEx_get_MaxConnectionTime               19 var
#comfunc global IADsTSUserEx_put_MaxConnectionTime               20 int
#comfunc global IADsTSUserEx_get_MaxIdleTime                     21 var
#comfunc global IADsTSUserEx_put_MaxIdleTime                     22 int
#comfunc global IADsTSUserEx_get_ReconnectionAction              23 var
#comfunc global IADsTSUserEx_put_ReconnectionAction              24 int
#comfunc global IADsTSUserEx_get_BrokenConnectionAction          25 var
#comfunc global IADsTSUserEx_put_BrokenConnectionAction          26 int
#comfunc global IADsTSUserEx_get_ConnectClientDrivesAtLogon      27 var
#comfunc global IADsTSUserEx_put_ConnectClientDrivesAtLogon      28 int
#comfunc global IADsTSUserEx_get_ConnectClientPrintersAtLogon    29 var
#comfunc global IADsTSUserEx_put_ConnectClientPrintersAtLogon    30 int
#comfunc global IADsTSUserEx_get_DefaultToMainPrinter            31 var
#comfunc global IADsTSUserEx_put_DefaultToMainPrinter            32 int
#comfunc global IADsTSUserEx_get_TerminalServicesWorkDirectory   33 var
#comfunc global IADsTSUserEx_put_TerminalServicesWorkDirectory   34 wstr
#comfunc global IADsTSUserEx_get_TerminalServicesInitialProgram  35 var
#comfunc global IADsTSUserEx_put_TerminalServicesInitialProgram  36 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。