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

ITaskFolder

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

公式ドキュメント

フォルダー内へのタスクの登録(作成)、フォルダーからのタスクの削除、フォルダーのサブフォルダーの作成または削除に使用するメソッドを提供します。

メソッド 13

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

vtbl 7 HRESULT get_Name(LPWSTR* pName)

タスクを格納するフォルダーを識別するために使用される名前を取得します。

pNameLPWSTR*outこのフォルダーの名前を受け取る文字列ポインタへのポインタである。
vtbl 8 HRESULT get_Path(LPWSTR* pPath)

フォルダーが格納されている場所へのパスを取得します。

pPathLPWSTR*outこのフォルダーのパスを受け取る文字列ポインタへのポインタである。
vtbl 9 HRESULT GetFolder(LPWSTR path, ITaskFolder** ppFolder)

指定した場所にあるタスクを格納するフォルダーを取得します。

pathLPWSTRinフォルダーへのパス(場所)。パス内の最後のフォルダー名の後にバックスラッシュを付けないでください。ルート タスク フォルダーはバックスラッシュ(\)で指定します。ルート タスク フォルダー配下のタスク フォルダー パスの例は、 \MyTaskFolder です。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。
ppFolderITaskFolder**out

指定した場所にあるフォルダー。

NULLITaskFolder インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 10 HRESULT GetFolders(INT flags, ITaskFolderCollection** ppFolders)

フォルダー内のすべてのサブフォルダーを取得します。

flagsINTinこのパラメーターは将来の使用のために予約されており、0 に設定する必要があります。
ppFoldersITaskFolderCollection**out

フォルダー内のサブフォルダーのコレクション。

NULLITaskFolderCollection インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 11 HRESULT CreateFolder(LPWSTR subFolderName, VARIANT sddl, ITaskFolder** ppFolder)

関連するタスク用のフォルダーを作成します。

subFolderNameLPWSTRinフォルダーを識別するために使用される名前。"FolderName\SubFolder1\SubFolder2" を指定した場合、フォルダーが存在しなければフォルダー ツリー全体が作成されます。このパラメーターは、現在の ITaskFolder インスタンスへの相対パスにできます。ルート タスク フォルダーはバックスラッシュ(\)で指定します。ルート タスク フォルダー配下のタスク フォルダー パスの例は、 \MyTaskFolder です。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。
sddlVARIANTinフォルダーに関連付けられたセキュリティ記述子。SDDL_REVISION_1 形式の VT_BSTR として指定します。
ppFolderITaskFolder**out

新しいサブフォルダーを表す ITaskFolder インターフェイス。

NULLITaskFolder インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

親フォルダーのサブフォルダーを取得するには、GetFolders メソッドを使用します。

作成しようとしているフォルダーが既に存在する場合、CreateFolder メソッドは 0x800700b7 を返します。

sddl パラメーターに無効なセキュリティ記述子を指定すると、このメソッドは E_INVALIDARG を返します。

vtbl 12 HRESULT DeleteFolder(LPWSTR subFolderName, INT flags)

親フォルダーからサブフォルダーを削除します。

subFolderNameLPWSTRin削除するサブフォルダーの名前。ルート タスク フォルダーはバックスラッシュ(\)で指定します。このパラメーターは、削除したいフォルダーへの相対パスにできます。ルート タスク フォルダー配下のタスク フォルダー パスの例は、 \MyTaskFolder です。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。
flagsINTinサポートされていません。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 13 HRESULT GetTask(LPWSTR path, IRegisteredTask** ppTask)

フォルダー内の指定した場所にあるタスクを取得します。

pathLPWSTRinフォルダー内のタスクへのパス(場所)。ルート タスク フォルダーはバックスラッシュ(\)で指定します。ルート タスク フォルダー配下のタスク フォルダー パスの例は、 \MyTaskFolder です。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。
ppTaskIRegisteredTask**out

指定した場所にあるタスク。

NULLIRegisteredTask インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 14 HRESULT GetTasks(INT flags, IRegisteredTaskCollection** ppTasks)

フォルダー内のすべてのタスクを取得します。

flagsINTin隠しタスクを取得するかどうかを指定します。隠しタスクを含むフォルダー内のすべてのタスクを取得するには TASK_ENUM_HIDDEN を渡し、隠しタスクを除くフォルダー内のすべてのタスクを取得するには 0 を渡します。
ppTasksIRegisteredTaskCollection**out

フォルダー内のすべてのタスクの IRegisteredTaskCollection コレクション。

NULLIRegisteredTaskCollection インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 15 HRESULT DeleteTask(LPWSTR name, INT flags)

フォルダーからタスクを削除します。

nameLPWSTRinタスクの登録時に指定されたタスクの名前。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。
flagsINTinサポートされていません。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 16 HRESULT RegisterTask(LPWSTR path, LPWSTR xmlText, INT flags, VARIANT userId, VARIANT password, TASK_LOGON_TYPE logonType, VARIANT sddl, IRegisteredTask** ppTask)

XML を使用してタスクを定義し、フォルダーに新しいタスクを登録(作成)します。

pathLPWSTRin

タスク名。この値が NULL の場合、タスクはルート タスク フォルダーに登録され、タスク名はタスク スケジューラ サービスによって作成される GUID 値になります。

タスク名の先頭または末尾を空白文字にすることはできません。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。

xmlTextLPWSTRin

タスクの XML 形式の定義。

次のトピックには XML を使用して定義されたタスクが含まれています。

flagsINTin

TASK_CREATION 定数。

意味
TASK_VALIDATE_ONLY
0x1
タスク スケジューラはタスクを記述する XML の構文を検証しますが、タスクは登録しません。この定数は TASK_CREATETASK_UPDATETASK_CREATE_OR_UPDATE の各値と組み合わせることはできません。
TASK_CREATE
0x2
タスク スケジューラはタスクを新しいタスクとして登録します。
TASK_UPDATE
0x4
タスク スケジューラはタスクを既存タスクの更新版として登録します。登録トリガーを持つタスクが更新されると、更新後にタスクが実行されます。
TASK_CREATE_OR_UPDATE
0x6
タスク スケジューラはタスクを新しいタスクとして登録するか、タスクが既に存在する場合は更新版として登録します。TASK_CREATE | TASK_UPDATE と同等です。
TASK_DISABLE
0x8
タスク スケジューラは既存のタスクを無効化します。
TASK_DONT_ADD_PRINCIPAL_ACE
0x10
タスク スケジューラが、コンテキスト プリンシパルに対する許可アクセス制御エントリ(ACE)を追加しないようにします。このフラグを指定して ITaskFolder::RegisterTask 関数を呼び出してタスクを更新した場合、タスク スケジューラ サービスは新しいコンテキスト プリンシパルの ACE を追加せず、古いコンテキスト プリンシパルの ACE も削除しません。
TASK_IGNORE_REGISTRATION_TRIGGERS
0x20
タスク スケジューラはタスクを作成しますが、タスク内の登録トリガーを無視します。登録トリガーを無視することで、時間ベースのトリガーによって登録時に実行される場合を除き、登録時にタスクは実行されません。
userIdVARIANTin

タスクの登録に使用するユーザー資格情報。

注意 タスクが タスク スケジューラ 1.0 タスクとして定義されている場合は、この userId パラメーターに(特定のユーザー名ではなく)グループ名を使用しないでください。タスクの XML 内の Task 要素の version 属性が 1.1 に設定されている場合、そのタスクは タスク スケジューラ 1.0 タスクとして定義されます。
passwordVARIANTinタスクの登録に使用する userId のパスワード。TASK_LOGON_SERVICE_ACCOUNT ログオン タイプを使用する場合、パスワードは VT_NULLVT_EMPTY のような空の VARIANT 値でなければなりません。
logonTypeTASK_LOGON_TYPEin

登録されたタスクの実行にどのログオン方式が使用されるかを定義する値。

意味
TASK_LOGON_NONE
0
ログオン方法が指定されていません。非 NT 資格情報に使用されます。
TASK_LOGON_PASSWORD
1
ユーザーのログオンにパスワードを使用します。パスワードは登録時に指定する必要があります。
TASK_LOGON_S4U
2
既存の対話型トークンを使用してタスクを実行します。ユーザーはサービス フォー ユーザー(S4U)ログオンを使用してログオンする必要があります。S4U ログオンを使用する場合、システムはパスワードを保存せず、ネットワークや暗号化ファイルへのアクセスもできません。
TASK_LOGON_INTERACTIVE_TOKEN
3
ユーザーが既にログオンしている必要があります。タスクは既存の対話型セッションでのみ実行されます。
TASK_LOGON_GROUP
4
グループによるアクティブ化。groupId フィールドがグループを指定します。
TASK_LOGON_SERVICE_ACCOUNT
5
Local System、Local Service、または Network Service アカウントがタスクを実行するセキュリティ コンテキストとして使用されることを示します。
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD
6
まず対話型トークンを使用します。ユーザーがログオンしていない(対話型トークンが利用できない)場合は、パスワードが使用されます。パスワードはタスクの登録時に指定する必要があります。このフラグは TASK_LOGON_PASSWORD より信頼性が低いため、新しいタスクには推奨されません。
sddlVARIANTin

登録されたタスクに関連付けられたセキュリティ記述子。特定のユーザーやグループに対してタスクへのアクセスを許可または拒否するために、タスクのセキュリティ記述子でアクセス制御リスト(ACL)を指定できます。

注意 Local System アカウントがタスクへのアクセスを拒否されると、タスク スケジューラ サービスが予期しない結果を生じることがあります。
ppTaskIRegisteredTask**out

新しいタスクを表す IRegisteredTask インターフェイス。

NULLIRegisteredTask インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

リターン コード/値 説明
S_OK
0x0
操作は正常に完了しました。
E_ACCESS_DENIED
0x80070005
タスク スケジューラ サービスへの接続が拒否されました。
E_OUTOFMEMORY
0x8007000e
操作を完了するのに十分なメモリがアプリケーションにないか、user または password の少なくとも一方が null で、もう一方が非 null になっています。
SCHED_S_BATCH_LOGON_PROBLEM
0x0004131C
タスクは登録されましたが、開始に失敗する可能性があります。タスク プリンシパルに対してバッチ ログオン特権を有効にする必要があります。
SCHED_S_SOME_TRIGGERS_FAILED
0x0004131B
タスクは登録されましたが、指定されたすべてのトリガーがタスクを開始するわけではありません。

解説(Remarks)

メッセージ ボックス アクションを含むタスクの場合、タスクがアクティブ化され、かつタスクが対話型ログオン タイプを持つときにメッセージ ボックスが表示されます。タスクのログオン タイプを対話型に設定するには、タスク プリンシパルの LogonType プロパティ、または ITaskFolder::RegisterTaskITaskFolder::RegisterTaskDefinitionlogonType パラメーターで TASK_LOGON_INTERACTIVE_TOKEN または TASK_LOGON_GROUP を指定します。

ブート トリガーを持つタスクを作成できるのは、Administrators グループのメンバーのみです。

userId パラメーターにグループを指定し、ITaskFolder::RegisterTask または ITaskFolder::RegisterTaskDefinitionlogonType パラメーターに TASK_LOGON_INTERACTIVE_TOKEN を指定してタスクを登録することは可能ですが、そのタスクは実行されません。

flags パラメーターに TASK_VALIDATE_ONLYTASK_IGNORE_REGISTRATION_TRIGGERS の両方を一緒に渡すことは無効な引数です。

タスクが、タスクの NetworkSettings 設定に存在しないネットワークを定義している場合、タスクの登録時に ITaskFolder::RegisterTask メソッドはエラー 0x8000ffff を返します。

vtbl 17 HRESULT RegisterTaskDefinition(LPWSTR path, ITaskDefinition* pDefinition, INT flags, VARIANT userId, VARIANT password, TASK_LOGON_TYPE logonType, VARIANT sddl, IRegisteredTask** ppTask)

ITaskDefinition インターフェイスを使用してタスクを定義し、指定した場所にタスクを登録(作成)します。

pathLPWSTRin

タスクの名前。この値が NULL の場合、タスクはルート タスク フォルダーに登録され、タスク名はタスク スケジューラ サービスによって作成される GUID 値になります。

タスク名の先頭または末尾を空白文字にすることはできません。パス内で、現在のタスク フォルダーを指定するために '.' 文字を使用することはできず、親タスク フォルダーを指定するために '..' 文字を使用することもできません。

pDefinitionITaskDefinition*inoptional登録するタスクの定義。
flagsINTin

TASK_CREATION 定数。

意味
TASK_VALIDATE_ONLY
0x1
タスク スケジューラはタスクを記述する XML の構文を検証しますが、タスクは登録しません。この定数は TASK_CREATETASK_UPDATETASK_CREATE_OR_UPDATE の各値と組み合わせることはできません。
TASK_CREATE
0x2
タスク スケジューラはタスクを新しいタスクとして登録します。
TASK_UPDATE
0x4
タスク スケジューラはタスクを既存タスクの更新版として登録します。登録トリガーを持つタスクが更新されると、更新後にタスクが実行されます。
TASK_CREATE_OR_UPDATE
0x6
タスク スケジューラはタスクを新しいタスクとして登録するか、タスクが既に存在する場合は更新版として登録します。TASK_CREATE | TASK_UPDATE と同等です。
TASK_DISABLE
0x8
タスク スケジューラは既存のタスクを無効化します。
TASK_DONT_ADD_PRINCIPAL_ACE
0x10
タスク スケジューラが、コンテキスト プリンシパルに対する許可アクセス制御エントリ(ACE)を追加しないようにします。このフラグを指定して ITaskFolder::RegisterTaskDefinition 関数を呼び出してタスクを更新した場合、タスク スケジューラ サービスは新しいコンテキスト プリンシパルの ACE を追加せず、古いコンテキスト プリンシパルの ACE も削除しません。
TASK_IGNORE_REGISTRATION_TRIGGERS
0x20
タスク スケジューラはタスクを作成しますが、タスク内の登録トリガーを無視します。登録トリガーを無視することで、時間ベースのトリガーによって登録時に実行される場合を除き、登録時にタスクは実行されません。
userIdVARIANTin

タスクの登録に使用するユーザー資格情報。指定されている場合、これらの資格情報は pDefinition パラメーターが指すタスク定義オブジェクトで指定された資格情報より優先されます。

注意 タスクが タスク スケジューラ 1.0 タスクとして定義されている場合は、この userId パラメーターに(特定のユーザー名ではなく)グループ名を使用しないでください。タスクの設定で Compatibility プロパティが TASK_COMPATIBILITY_V1 に設定されている場合、そのタスクは タスク スケジューラ 1.0 タスクとして定義されます。
passwordVARIANTinタスクの登録に使用する userId のパスワード。TASK_LOGON_SERVICE_ACCOUNT ログオン タイプを使用する場合、パスワードは VT_NULLVT_EMPTY のような空の VARIANT 値でなければなりません。
logonTypeTASK_LOGON_TYPEin

登録されたタスクの実行にどのログオン方式が使用されるかを定義します。

意味
TASK_LOGON_NONE
0
ログオン方法が指定されていません。非 NT 資格情報に使用されます。
TASK_LOGON_PASSWORD
1
ユーザーのログオンにパスワードを使用します。パスワードは登録時に指定する必要があります。
TASK_LOGON_S4U
2
既存の対話型トークンを使用してタスクを実行します。ユーザーはサービス フォー ユーザー(S4U)ログオンを使用してログオンする必要があります。S4U ログオンを使用する場合、システムはパスワードを保存せず、ネットワークや暗号化ファイルへのアクセスもできません。
TASK_LOGON_INTERACTIVE_TOKEN
3
ユーザーが既にログオンしている必要があります。タスクは既存の対話型セッションでのみ実行されます。
TASK_LOGON_GROUP
4
グループによるアクティブ化。groupId フィールドがグループを指定します。
TASK_LOGON_SERVICE_ACCOUNT
5
Local System、Local Service、または Network Service アカウントがタスクを実行するセキュリティ コンテキストとして使用されることを示します。
TASK_LOGON_INTERACTIVE_TOKEN_OR_PASSWORD
6
まず対話型トークンを使用します。ユーザーがログオンしていない(対話型トークンが利用できない)場合は、パスワードが使用されます。パスワードはタスクの登録時に指定する必要があります。このフラグは TASK_LOGON_PASSWORD より信頼性が低いため、新しいタスクには推奨されません。
sddlVARIANTin

登録されたタスクに関連付けられたセキュリティ記述子。特定のユーザーやグループに対してタスクへのアクセスを許可または拒否するために、タスクのセキュリティ記述子でアクセス制御リスト(ACL)を指定できます。

注意 Local System アカウントがタスクへのアクセスを拒否されると、タスク スケジューラ サービスが予期しない結果を生じることがあります。
ppTaskIRegisteredTask**out

新しいタスクを表す IRegisteredTask インターフェイス。

NULLIRegisteredTask インターフェイス ポインターへの参照を渡してください。非 NULL のポインターを参照渡しすると、ポインターが上書きされるためメモリ リークが発生する可能性があります。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

リターン コード/値 説明
S_OK
0x0
操作は正常に完了しました。
E_ACCESS_DENIED
0x80070005
タスク スケジューラ サービスへの接続が拒否されました。
E_OUTOFMEMORY
0x8007000e
操作を完了するのに十分なメモリがアプリケーションにないか、user または password の少なくとも一方が null で、もう一方が非 null になっています。
SCHED_S_BATCH_LOGON_PROBLEM
0x0004131C
タスクは登録されましたが、開始に失敗する可能性があります。タスク プリンシパルに対してバッチ ログオン特権を有効にする必要があります。
SCHED_S_SOME_TRIGGERS_FAILED
0x0004131B
タスクは登録されましたが、指定されたすべてのトリガーがタスクを開始するわけではありません。

解説(Remarks)

メッセージ ボックス アクションを含むタスクの場合、タスクがアクティブ化され、かつタスクが対話型ログオン タイプを持つときにメッセージ ボックスが表示されます。タスクのログオン タイプを対話型に設定するには、タスク プリンシパルの LogonType プロパティ、または ITaskFolder::RegisterTaskITaskFolder::RegisterTaskDefinitionlogonType パラメーターで TASK_LOGON_INTERACTIVE_TOKEN または TASK_LOGON_GROUP を指定します。

ブート トリガーを持つタスクを作成できるのは、Administrators グループのメンバーのみです。

userId パラメーターにグループを指定し、ITaskFolder::RegisterTask または ITaskFolder::RegisterTaskDefinitionlogonType パラメーターに TASK_LOGON_INTERACTIVE_TOKEN を指定してタスクを登録することは可能ですが、そのタスクは実行されません。

flags パラメーターに TASK_VALIDATE_ONLYTASK_IGNORE_REGISTRATION_TRIGGERS の両方を一緒に渡すことは無効な引数です。

ITaskFolder::RegisterTaskDefinition メソッドは、System アカウントによって user パラメーターに NULLpassword パラメーターに NULLlogonType パラメーターに TASK_LOGON_SERVICE_ACCOUNT を指定して呼び出された場合、エラー 80070534 を返します。

タスクが、タスクの NetworkSettings 設定に存在しないネットワークを定義している場合、タスクの登録時に ITaskFolder::RegisterTaskDefinition メソッドはエラー 0x8000ffff を返します。

vtbl 18 HRESULT GetSecurityDescriptor(INT securityInformation, LPWSTR* pSddl)

フォルダーのセキュリティ記述子を取得します。

securityInformationINTinSECURITY_INFORMATION から取得するセキュリティ情報。
pSddlLPWSTR*outフォルダーのセキュリティ記述子。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

vtbl 19 HRESULT SetSecurityDescriptor(LPWSTR sddl, INT flags)

フォルダーのセキュリティ記述子を設定します。

sddlLPWSTRin

フォルダーのセキュリティ記述子。

注意 Local System アカウントがタスク フォルダーへのアクセスを拒否されると、タスク スケジューラ サービスが予期しない結果を生じることがあります。
flagsINTinセキュリティ記述子をどのように設定するかを指定する値。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラー コードを返します。

解説(Remarks)

特定のユーザーやグループに対してタスク フォルダーへのアクセスを許可または拒否するために、タスク フォルダーのセキュリティ記述子でアクセス制御リスト(ACL)を指定できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITaskFolder "{8CFAC062-A080-4C15-9A88-AA7C2AF80DFC}"
#usecom global ITaskFolder IID_ITaskFolder "{}"
#comfunc global ITaskFolder_get_Name                7 var
#comfunc global ITaskFolder_get_Path                8 var
#comfunc global ITaskFolder_GetFolder               9 wstr,sptr
#comfunc global ITaskFolder_GetFolders              10 int,sptr
#comfunc global ITaskFolder_CreateFolder            11 wstr,int,sptr
#comfunc global ITaskFolder_DeleteFolder            12 wstr,int
#comfunc global ITaskFolder_GetTask                 13 wstr,sptr
#comfunc global ITaskFolder_GetTasks                14 int,sptr
#comfunc global ITaskFolder_DeleteTask              15 wstr,int
#comfunc global ITaskFolder_RegisterTask            16 wstr,wstr,int,int,int,int,int,sptr
#comfunc global ITaskFolder_RegisterTaskDefinition  17 wstr,sptr,int,int,int,int,int,sptr
#comfunc global ITaskFolder_GetSecurityDescriptor   18 int,var
#comfunc global ITaskFolder_SetSecurityDescriptor   19 wstr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。