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 方法會傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
作業成功。 |
|
具有指定名稱的工作項目已經存在。 實際傳回值HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS) 。 |
|
一或多個自變數無效。 |
|
可用的記憶體不足,無法完成作業。 |
|
呼叫端沒有執行作業的許可權。 如需詳細資訊,請參閱 排程的工作專案。 |
備註
這個方法會在建立新的工作項目時自動處理記憶體配置。
若要將工作項目儲存到磁碟,請呼叫 IPersistFile::Save 。 所有工作專案介面都支援此 COM 介面, (目前 ITask 是唯一支援的工作專案介面) 。
工作排程器提供兩種方法來新增工作專案: NewWorkItem 和 AddWorkItem。 在這些方法中,每個方法都有其特定優點。 AddWorkItem 可防止命名衝突,但每個呼叫也需要兩個磁碟寫入作業。 呼叫 AddWorkItem 時,會執行一個寫入作業,並在呼叫 IPersistFile::Save 時,於磁碟上建立空的工作專案物件,後面接著另一個寫入作業。
您可以呼叫 AddWorkItem 或 NewWorkItem 來建立工作。 使用 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 或更新版本 |