Freigeben über


ITaskScheduler::NewWorkItem-Methode (mstask.h)

[[Diese API kann in nachfolgenden Versionen des Betriebssystems oder Produkts geändert oder nicht verfügbar sein. Verwenden Sie stattdessen die Taskplaner 2.0-Schnittstellen .] ]

Die NewWorkItem-Methode erstellt ein neues Arbeitselement, wobei Platz für das Arbeitselement zugewiesen und dessen Adresse abgerufen wird.

Syntax

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

Parameter

[in] pwszTaskName

Eine NULL-Zeichenfolge, die den Namen des neuen Arbeitselements angibt. Dieser Name muss den Windows NT-Dateibenennungskonventionen entsprechen, darf aber keine umgekehrten Schrägstriche enthalten, da das Schachteln innerhalb des Aufgabenordnerobjekts nicht zulässig ist.

[in] rclsid

Der Klassenbezeichner des zu erstellenden Arbeitselements. Die einzige zu diesem Zeitpunkt unterstützte Klasse, die Taskklasse, verfügt über den Bezeichner CLSID_Ctask.

[in] riid

Der Verweisbezeichner der angeforderten Schnittstelle. Die einzige zu diesem Zeitpunkt unterstützte Schnittstelle, ITask, verfügt über den Bezeichner IID_ITask.

[out] ppUnk

Ein Zeiger auf einen Schnittstellenzeiger, der die angeforderte Schnittstelle empfängt. Informationen zum Speichern des Arbeitselements auf dem Datenträger finden Sie unter Hinweise.

Rückgabewert

Die NewWorkItem-Methode gibt einen der folgenden Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Der Vorgang wurde durchgeführt.
ERROR_FILE_EXISTS
Ein Arbeitselement mit dem angegebenen Namen ist bereits vorhanden. Der tatsächliche Rückgabewert ist HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS).
E_INVALIDARG
Mindestens eines der Argumente ist ungültig.
E_OUTOFMEMORY
Es ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen.
E_ACCESSDENIED
Der Aufrufer verfügt nicht über die Berechtigung zum Ausführen des Vorgangs. Weitere Informationen finden Sie unter Geplante Arbeitselemente.

Hinweise

Diese Methode verarbeitet die Speicherzuordnung automatisch beim Erstellen des neuen Arbeitselements.

Um das Arbeitselement auf dem Datenträger zu speichern, rufen Sie IPersistFile::Save auf. Diese COM-Schnittstelle wird von allen Arbeitselementschnittstellen unterstützt (derzeit ist ITask die einzige unterstützte Arbeitselementschnittstelle).

Der Aufgabenplaner bietet zwei Methoden zum Hinzufügen von Arbeitselementen: NewWorkItem und AddWorkItem. Von diesen Methoden hat jede ihren spezifischen Vorteil. AddWorkItem verhindert Namenskonflikte, erfordert aber auch zwei Schreibvorgänge pro Aufruf. Ein Schreibvorgang wird ausgeführt, wenn der Aufruf von AddWorkItem ein leeres Arbeitselementobjekt auf dem Datenträger erstellt, gefolgt von einem weiteren Schreibvorgang, wenn IPersistFile::Save aufgerufen wird.

Sie können eine Aufgabe erstellen, indem Sie AddWorkItem oder NewWorkItem aufrufen. Wenn Sie AddWorkItem verwenden, liegt es in Ihrer Verantwortung, eine instance des Task-Objekts zu erstellen (das die ITask-Schnittstelle unterstützt) und dann den Task mit dem von Ihnen angegebenen Namen hinzuzufügen.

NewWorkItem verhindert keine Namenskonflikte, erfordert jedoch nur einen Schreibvorgang, wenn IPersistFile::Save aufgerufen wird. Obwohl NewWorkItem in Bezug auf Datenträgerschreibvorgänge effizienter ist, besteht für die Anwendung das Risiko, dass eine andere Anwendung ein Arbeitselement mit demselben Namen erstellt, bevor der Aufruf von IPersistFile::Save erfolgt.

Ein vollständiges Beispiel für Siehe
Erstellen einer neuen Aufgabe Erstellen einer Aufgabe mithilfe von NewWorkItem (Beispiel)

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mstask.h
Bibliothek Mstask.lib
DLL Mstask.dll
Verteilbare Komponente Internet Explorer 4.0 oder höher unter Windows NT 4.0 und Windows 95

Weitere Informationen

IPersistFile::Save

Itask

ITaskScheduler

ITaskScheduler::AddWorkItem