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
一或多個自變數無效。
E_OUTOFMEMORY
可用的記憶體不足,無法完成作業。
E_ACCESSDENIED
呼叫端沒有執行作業的許可權。 如需詳細資訊,請參閱 排程的工作專案

備註

這個方法會在建立新的工作項目時自動處理記憶體配置。

若要將工作項目儲存到磁碟,請呼叫 IPersistFile::Save 。 所有工作專案介面都支援此 COM 介面, (目前 ITask 是唯一支援的工作專案介面) 。

工作排程器提供兩種方法來新增工作專案: NewWorkItemAddWorkItem。 在這些方法中,每個方法都有其特定優點。 AddWorkItem 可防止命名衝突,但每個呼叫也需要兩個磁碟寫入作業。 呼叫 AddWorkItem 時,會執行一個寫入作業,並在呼叫 IPersistFile::Save 時,於磁碟上建立空的工作專案物件,後面接著另一個寫入作業。

您可以呼叫 AddWorkItemNewWorkItem 來建立工作。 使用 AddWorkItem 時,您必須負責建立 Task 對象的實例, (支援 ITask 介面) ,然後使用您提供的名稱新增工作。

NewWorkItem 不會防止命名衝突,但在呼叫 IPersistFile::Save 時,只需要一個磁碟寫入作業。 雖然 NewWorkItem 在磁碟寫入作業方面更有效率,但應用程式會在呼叫 IPersistFile::Save 之前,執行另一個應用程式建立具有相同名稱的工作項目的風險。

如需的完整範例 請參閱
建立新工作 使用 NewWorkItem 範例建立工作

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 mstask.h
程式庫 Mstask.lib
Dll Mstask.dll
可轉散發套件 Windows NT 4.0 和 Windows 95 上的 Internet Explorer 4.0 或更新版本

另請參閱

IPersistFile::Save

ITask

ITaskScheduler

ITaskScheduler::AddWorkItem