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 |
---|---|
|
L'opération a réussi. |
|
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). |
|
Un ou plusieurs arguments ne sont pas valides. |
|
La mémoire n'est pas suffisante pour terminer cette opération. |
|
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 |