Partager via


Méthode ITaskScheduler ::NewWorkItem (mstask.h)

[[Cette API peut être modifiée ou indisponible dans les versions ultérieures du système d’exploitation ou du produit. Utilisez plutôt les interfaces Du planificateur de tâches 2.0 .] ]

La méthode NewWorkItem crée un élément de travail, en allouant de l’espace pour l’élément de travail et en récupérant son adresse.

Syntaxe

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

Paramètres

[in] pwszTaskName

Chaîne terminée par null qui spécifie le nom du nouvel élément de travail. Ce nom doit être conforme aux conventions d’affectation de noms de fichiers Windows NT, mais ne peut pas inclure de barres obliques inverses, car l’imbrication dans l’objet de dossier de tâches n’est pas autorisée.

[in] rclsid

Identificateur de classe de l’élément de travail à créer. La seule classe prise en charge à ce stade, la classe de tâches, a l’identificateur CLSID_Ctask.

[in] riid

Identificateur de référence de l’interface demandée. La seule interface prise en charge à ce stade, ITask, a l’identificateur IID_ITask.

[out] ppUnk

Pointeur vers un pointeur d’interface qui reçoit l’interface demandée. Pour plus d’informations sur l’enregistrement de l’élément de travail sur le disque, consultez Remarques.

Valeur retournée

La méthode NewWorkItem retourne l’une des valeurs suivantes.

Code de retour Description
S_OK
L'opération a réussi.
ERROR_FILE_EXISTS
Un élément de travail portant le nom spécifié existe déjà. La valeur de retour réelle est HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS).
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
E_OUTOFMEMORY
La mémoire n'est pas suffisante pour terminer cette opération.
E_ACCESSDENIED
L’appelant n’est pas autorisé à effectuer l’opération. Pour plus d’informations, consultez Éléments de travail planifiés.

Remarques

Cette méthode gère automatiquement l’allocation de mémoire lors de la création de l’élément de travail.

Pour enregistrer l’élément de travail sur le disque, appelez IPersistFile ::Save . Cette interface COM est prise en charge par toutes les interfaces d’élément de travail (actuellement ITask est la seule interface d’élément de travail prise en charge).

Le planificateur de tâches fournit deux méthodes pour ajouter des éléments de travail : NewWorkItem et AddWorkItem. De ces méthodes, chacune a son avantage spécifique. AddWorkItem empêche les collisions de nommage, mais nécessite également deux opérations d’écriture sur disque par appel. Une opération d’écriture est effectuée lorsque l’appel à AddWorkItem crée un objet d’élément de travail vide sur le disque, suivie d’une autre opération d’écriture lorsque IPersistFile ::Save est appelé.

Vous pouvez créer une tâche en appelant AddWorkItem ou NewWorkItem. Lorsque vous utilisez AddWorkItem, il vous incombe de créer un instance de l’objet Task (qui prend en charge l’interface ITask), puis d’ajouter la tâche avec le nom que vous fournissez.

NewWorkItem n’empêche pas les collisions de nommage, mais nécessite une seule opération d’écriture sur disque lorsque IPersistFile ::Save est appelé. Bien que NewWorkItem soit plus efficace en ce qui concerne les opérations d’écriture sur disque, l’application court le risque de faire en sorte qu’une autre application crée un élément de travail portant le même nom avant que l’appel à IPersistFile ::Save ne soit effectué.

Pour obtenir un exemple complet de Consultez
Création d’une tâche Exemple de création d’une tâche à l’aide de NewWorkItem

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête mstask.h
Bibliothèque Mstask.lib
DLL Mstask.dll
Composant redistribuable Internet Explorer 4.0 ou version ultérieure sur Windows NT 4.0 et Windows 95

Voir aussi

IPersistFile ::Save

Itask

ITaskScheduler

ITaskScheduler ::AddWorkItem