IADsTSUserEx
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
リモートデスクトップサービスのユーザープロパティを確認および構成するために使用します。
メソッド 30
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに使用される、移動プロファイルまたは必須プロファイルのパスです。 (Get)
| pVal | LPWSTR* | out | ターミナルサービスのプロファイルパスを表す文字列を受け取る。呼び出し側が解放する。 |
解説(Remarks)
プロファイルパスは、次のネットワークパス形式で指定します。
\\ServerName\ProfilesFolderName\UserName
例
次の例は、資格情報を使用せずに 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
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに使用される、移動プロファイルまたは必須プロファイルのパスです。 (Put)
| pNewVal | LPWSTR | in | ターミナルサービスのプロファイルパスに設定する値を指定する。 |
解説(Remarks)
プロファイルパスは、次のネットワークパス形式で指定します。
\\ServerName\ProfilesFolderName\UserName
例
次の例は、資格情報を使用せずに 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
ユーザーのルートディレクトリです。リモートデスクトップセッションホスト (RD セッションホスト) サーバー上の各ユーザーは、一意のルートディレクトリを持ちます。これにより、マルチユーザー環境でユーザーごとにアプリケーション情報が個別に保存されます。 (Get)
| pVal | LPWSTR* | out | ターミナルサービスのホームディレクトリを表す文字列を受け取る。呼び出し側が解放する。 |
解説(Remarks)
ローカルコンピューターにルートディレクトリを設定するには、ローカルパス (例: C:\Path) を指定します。ネットワーク環境でルートディレクトリを設定するには、まず TerminalServicesHomeDrive プロパティを設定してから、このプロパティに UNC パスを設定する必要があります。
例
例については、TerminalServicesHomeDrive を参照してください。
ユーザーのルートディレクトリです。リモートデスクトップセッションホスト (RD セッションホスト) サーバー上の各ユーザーは、一意のルートディレクトリを持ちます。これにより、マルチユーザー環境でユーザーごとにアプリケーション情報が個別に保存されます。 (Put)
| pNewVal | LPWSTR | in | ターミナルサービスのホームディレクトリに設定する値を指定する。 |
解説(Remarks)
ローカルコンピューターにルートディレクトリを設定するには、ローカルパス (例: C:\Path) を指定します。ネットワーク環境でルートディレクトリを設定するには、まず TerminalServicesHomeDrive プロパティを設定してから、このプロパティに UNC パスを設定する必要があります。
例
例については、TerminalServicesHomeDrive を参照してください。
ユーザーのルートドライブです。ネットワーク環境では、このプロパティは、ルートディレクトリとして指定した UNC パスのマップ先となるドライブ指定 (ドライブ文字とそれに続くコロン) を含む文字列です。 (Get)
| pVal | LPWSTR* | 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
ユーザーのルートドライブです。ネットワーク環境では、このプロパティは、ルートディレクトリとして指定した UNC パスのマップ先となるドライブ指定 (ドライブ文字とそれに続くコロン) を含む文字列です。 (Put)
| pNewVal | LPWSTR | in | ターミナルサービスのホームドライブに設定する値を指定する。 |
解説(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
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーへのログオンを許可されるかどうかを指定する値です。 (Get)
| pVal | INT* | out | ターミナルサービスへのログオンが許可されているかどうかを示す値を受け取る。 |
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーへのログオンを許可されるかどうかを指定する値です。 (Put)
| NewVal | INT | in | ターミナルサービスへのログオンを許可するかどうかを指定する。 |
ユーザーのリモートデスクトップサービスセッションのリモート監視またはリモートコントロールを許可するかどうかを指定する値です。 (Get)
| pVal | INT* | out | リモート制御が有効かどうかを示す値を受け取る。 |
ユーザーのリモートデスクトップサービスセッションのリモート監視またはリモートコントロールを許可するかどうかを指定する値です。 (Put)
| NewVal | INT | in | リモート制御を有効にするかどうかを指定する。 |
切断されたリモートデスクトップサービスセッションが、リモートデスクトップセッションホスト (RD セッションホスト) サーバー上でアクティブなまま維持される最大時間です。指定した分数が経過すると、セッションは終了します。 (Get)
| pVal | INT* | out | 切断状態のセッションを保持する最大時間 (分単位) を受け取る。 |
切断されたリモートデスクトップサービスセッションが、リモートデスクトップセッションホスト (RD セッションホスト) サーバー上でアクティブなまま維持される最大時間です。指定した分数が経過すると、セッションは終了します。 (Put)
| NewVal | INT | in | 切断状態のセッションを保持する最大時間 (分単位) を指定する。 |
リモートデスクトップサービスセッションの最大継続時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Get)
| pVal | INT* | out | セッションの最大接続時間 (分単位) を受け取る。 |
リモートデスクトップサービスセッションの最大継続時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Put)
| NewVal | INT | in | セッションの最大接続時間 (分単位) を指定する。 |
リモートデスクトップサービスセッションがアイドル状態のまま維持できる最大時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Get)
| pVal | INT* | out | セッションの最大アイドル時間 (分単位) を受け取る。 |
リモートデスクトップサービスセッションがアイドル状態のまま維持できる最大時間です。指定した分数が経過すると、セッションを切断または終了できます。 (Put)
| NewVal | INT | in | セッションの最大アイドル時間 (分単位) を指定する。 |
切断されたリモートデスクトップサービスセッションへの再接続を許可するかどうかを指定する値です。 (Get)
| pNewVal | INT* | out | 再接続時に許可される動作を示す値を受け取る。 |
切断されたリモートデスクトップサービスセッションへの再接続を許可するかどうかを指定する値です。 (Put)
| NewVal | INT | in | 再接続時に許可される動作を指定する。 |
リモートデスクトップサービスセッションの制限に達したときに実行するアクションを指定する値です。 (Get)
| pNewVal | INT* | out | 接続が切断またはタイムアウトした際に取る動作を示す値を受け取る。 |
リモートデスクトップサービスセッションの制限に達したときに実行するアクションを指定する値です。 (Put)
| NewVal | INT | in | 接続が切断またはタイムアウトした際に取る動作を指定する。 |
リモートデスクトップサービスセッションの開始時に、マップされたクライアントドライブを再接続するかどうかを指定する値です。 (Get)
| pNewVal | INT* | out | ログオン時にクライアントドライブを接続するかどうかを示す値を受け取る。 |
リモートデスクトップサービスセッションの開始時に、マップされたクライアントドライブを再接続するかどうかを指定する値です。 (Put)
| NewVal | INT | in | ログオン時にクライアントドライブを接続するかどうかを指定する。 |
ログオン時にマップされたクライアントプリンターへ再接続するかどうかを指定する値です。 (Get)
| pVal | INT* | out | ログオン時にクライアントプリンタを接続するかどうかを示す値を受け取る。 |
ログオン時にマップされたクライアントプリンターへ再接続するかどうかを指定する値です。 (Put)
| NewVal | INT | in | ログオン時にクライアントプリンタを接続するかどうかを指定する。 |
クライアントの既定のプリンターに自動的に印刷するかどうかを指定する値です。 (Get)
| pVal | INT* | out | クライアントのメインプリンタを既定のプリンタとするかどうかを示す値を受け取る。 |
クライアントの既定のプリンターに自動的に印刷するかどうかを指定する値です。 (Put)
| NewVal | INT | in | クライアントのメインプリンタを既定のプリンタとするかどうかを指定する。 |
ユーザーの作業ディレクトリのパスです。 (Get)
| pVal | LPWSTR* | out | ターミナルサービスの作業ディレクトリを表す文字列を受け取る。呼び出し側が解放する。 |
解説(Remarks)
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに起動する初期アプリケーションを設定するには、まず TerminalServicesInitialProgram プロパティを設定してから、このプロパティを設定する必要があります。
例
例については、TerminalServicesInitialProgram を参照してください。
ユーザーの作業ディレクトリのパスです。 (Put)
| pNewVal | LPWSTR | in | ターミナルサービスの作業ディレクトリに設定する値を指定する。 |
解説(Remarks)
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに起動する初期アプリケーションを設定するには、まず TerminalServicesInitialProgram プロパティを設定してから、このプロパティを設定する必要があります。
例
例については、TerminalServicesInitialProgram を参照してください。
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに自動的に起動したいアプリケーションのパスとファイル名です。 (Get)
| pVal | LPWSTR* | 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
ユーザーがリモートデスクトップセッションホスト (RD セッションホスト) サーバーにログオンするときに自動的に起動したいアプリケーションのパスとファイル名です。 (Put)
| pNewVal | LPWSTR | in | ログオン時に起動する初期プログラムを指定する。 |
解説(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 公式リファレンス: 英語 (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 不要)。#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 sptr #comfunc global IADsTSUserEx_put_TerminalServicesProfilePath 8 wstr #comfunc global IADsTSUserEx_get_TerminalServicesHomeDirectory 9 sptr #comfunc global IADsTSUserEx_put_TerminalServicesHomeDirectory 10 wstr #comfunc global IADsTSUserEx_get_TerminalServicesHomeDrive 11 sptr #comfunc global IADsTSUserEx_put_TerminalServicesHomeDrive 12 wstr #comfunc global IADsTSUserEx_get_AllowLogon 13 sptr #comfunc global IADsTSUserEx_put_AllowLogon 14 int #comfunc global IADsTSUserEx_get_EnableRemoteControl 15 sptr #comfunc global IADsTSUserEx_put_EnableRemoteControl 16 int #comfunc global IADsTSUserEx_get_MaxDisconnectionTime 17 sptr #comfunc global IADsTSUserEx_put_MaxDisconnectionTime 18 int #comfunc global IADsTSUserEx_get_MaxConnectionTime 19 sptr #comfunc global IADsTSUserEx_put_MaxConnectionTime 20 int #comfunc global IADsTSUserEx_get_MaxIdleTime 21 sptr #comfunc global IADsTSUserEx_put_MaxIdleTime 22 int #comfunc global IADsTSUserEx_get_ReconnectionAction 23 sptr #comfunc global IADsTSUserEx_put_ReconnectionAction 24 int #comfunc global IADsTSUserEx_get_BrokenConnectionAction 25 sptr #comfunc global IADsTSUserEx_put_BrokenConnectionAction 26 int #comfunc global IADsTSUserEx_get_ConnectClientDrivesAtLogon 27 sptr #comfunc global IADsTSUserEx_put_ConnectClientDrivesAtLogon 28 int #comfunc global IADsTSUserEx_get_ConnectClientPrintersAtLogon 29 sptr #comfunc global IADsTSUserEx_put_ConnectClientPrintersAtLogon 30 int #comfunc global IADsTSUserEx_get_DefaultToMainPrinter 31 sptr #comfunc global IADsTSUserEx_put_DefaultToMainPrinter 32 int #comfunc global IADsTSUserEx_get_TerminalServicesWorkDirectory 33 sptr #comfunc global IADsTSUserEx_put_TerminalServicesWorkDirectory 34 wstr #comfunc global IADsTSUserEx_get_TerminalServicesInitialProgram 35 sptr #comfunc global IADsTSUserEx_put_TerminalServicesInitialProgram 36 wstr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。