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 |
---|---|
|
Der Vorgang wurde durchgeführt. |
|
Ein Arbeitselement mit dem angegebenen Namen ist bereits vorhanden. Der tatsächliche Rückgabewert ist HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS). |
|
Mindestens eines der Argumente ist ungültig. |
|
Es ist nicht genügend Arbeitsspeicher verfügbar, um den Vorgang abzuschließen. |
|
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 |