ITaskScheduler::NewWorkItem メソッド (mstask.h)

[[この API は、以降のバージョンのオペレーティング システムまたは製品で変更または使用できない場合があります。 代わりに タスク スケジューラ 2.0 インターフェイス を使用してください。] ]

NewWorkItem メソッドは、新しい作業項目を作成し、作業項目の領域を割り当て、そのアドレスを取得します。

構文

HRESULT NewWorkItem(
  [in]  LPCWSTR  pwszTaskName,
  [in]  REFCLSID rclsid,
  [in]  REFIID   riid,
  [out] IUnknown **ppUnk
);

パラメーター

[in] pwszTaskName

新しい作業項目の名前を指定する null で終わる文字列。 この名前はWindows NTファイルの名前付け規則に準拠している必要がありますが、タスク フォルダー オブジェクト内での入れ子は許可されていないため、円記号を含めることはできません。

[in] rclsid

作成する作業項目のクラス識別子。 現時点でサポートされている唯一のクラスであるタスク クラスには、識別子CLSID_Ctaskがあります。

[in] riid

要求されているインターフェイスの参照識別子。 現時点でサポートされている唯一のインターフェイス である ITask には、識別子IID_ITaskがあります。

[out] ppUnk

要求されたインターフェイスを受け取るインターフェイス ポインターへのポインター。 作業項目をディスクに保存する方法については、「解説」を参照してください。

戻り値

NewWorkItem メソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
操作に成功しました。
ERROR_FILE_EXISTS
指定した名前の作業項目が既に存在します。 実際の戻り値はHRESULT_FROM_WIN32 (ERROR_FILE_EXISTS)。
E_INVALIDARG
1 つ以上の引数が無効です。
E_OUTOFMEMORY
メモリ不足のため、操作を完了できません。
E_ACCESSDENIED
呼び出し元には、操作を実行するためのアクセス許可がありません。 詳細については、「 スケジュールされた作業項目」を参照してください。

注釈

このメソッドは、新しい作業項目を作成するときにメモリ割り当てを自動的に処理します。

作業項目をディスクに保存するには、 IPersistFile::Save を呼び出します。 この COM インターフェイスは、すべての作業項目インターフェイスでサポートされています (現在 、ITask はサポートされている唯一の作業項目インターフェイスです)。

タスク スケジューラには、作業項目を追加するための 2 つのメソッド ( NewWorkItem と AddWorkItem ) 用意されています。 これらの方法のうち、それぞれ固有の利点があります。 AddWorkItem は名前の競合を防ぎますが、呼び出しごとに 2 つのディスク書き込み操作も必要です。 AddWorkItem の呼び出しでディスク上に空の作業項目オブジェクトが作成され、IPersistFile::Save が呼び出されたときに別の書き込み操作が実行されます。

タスクを作成する場合は、 AddWorkItem または NewWorkItem を呼び出します。 AddWorkItem を使用する場合は、Task オブジェクトのインスタンス (ITask インターフェイスをサポート) を作成し、指定した名前でタスクを追加する必要があります。

NewWorkItem は名前の競合を防ぐものではありませんが、 IPersistFile::Save が呼び出されたときに必要なディスク書き込み操作は 1 つだけです。 NewWorkItem はディスク書き込み操作に関してより効率的ですが、IPersistFile::Save の呼び出しが行われる前に、別のアプリケーションで同じ名前の作業項目を作成するリスクがあります。

の完全な例については、 参照先
新しいタスクの作成 NewWorkItem を使用したタスクの作成の例

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mstask.h
Library Mstask.lib
[DLL] Mstask.dll
再頒布可能パッケージ Windows NT 4.0 および Windows 95 のインターネット エクスプローラー 4.0 以降

こちらもご覧ください

IPersistFile::Save

Itask

ITaskScheduler

ITaskScheduler::AddWorkItem