Compartir a través de


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

[[Esta API puede modificarse o no estar disponible en versiones posteriores del sistema operativo o del producto. Use las interfaces del Programador de tareas 2.0 en su lugar. ]

El método NewWorkItem crea un nuevo elemento de trabajo, asignando espacio para el elemento de trabajo y recuperando su dirección.

Sintaxis

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

Parámetros

[in] pwszTaskName

Cadena terminada en null que especifica el nombre del nuevo elemento de trabajo. Este nombre debe cumplir con las convenciones de nomenclatura de archivos de Windows NT, pero no puede incluir barras diagonales inversas porque no se permite el anidamiento dentro del objeto de carpeta de tareas.

[in] rclsid

Identificador de clase del elemento de trabajo que se va a crear. La única clase admitida en este momento, la clase de tarea, tiene el identificador CLSID_Ctask.

[in] riid

Identificador de referencia de la interfaz que se solicita. La única interfaz admitida en este momento, ITask, tiene el identificador IID_ITask.

[out] ppUnk

Puntero a un puntero de interfaz que recibe la interfaz solicitada. Vea Comentarios para obtener información sobre cómo guardar el elemento de trabajo en el disco.

Valor devuelto

El método NewWorkItem devuelve uno de los valores siguientes.

Código devuelto Descripción
S_OK
La operación se realizó correctamente.
ERROR_FILE_EXISTS
Ya existe un elemento de trabajo con el nombre especificado. El valor devuelto real es HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS).
E_INVALIDARG
Uno o varios de los argumentos no son válidos.
E_OUTOFMEMORY
Memoria insuficiente para completar la operación.
E_ACCESSDENIED
El autor de la llamada no tiene permiso para realizar la operación. Para obtener más información, vea Elementos de trabajo programados.

Comentarios

Este método controla la asignación de memoria automáticamente al crear el nuevo elemento de trabajo.

Para guardar el elemento de trabajo en el disco, llame a IPersistFile::Save . Esta interfaz COM es compatible con todas las interfaces de elemento de trabajo (actualmente ITask es la única interfaz de elemento de trabajo compatible).

El programador de tareas proporciona dos métodos para agregar elementos de trabajo: NewWorkItem y AddWorkItem. De estos métodos, cada uno tiene su ventaja específica. AddWorkItem evita colisiones de nomenclatura, pero también requiere dos operaciones de escritura de disco por llamada. Una operación de escritura se realiza cuando la llamada a AddWorkItem crea un objeto de elemento de trabajo vacío en el disco, seguido de otra operación de escritura cuando se llama a IPersistFile::Save .

Puede crear una tarea llamando a AddWorkItem o NewWorkItem. Cuando use AddWorkItem, es su responsabilidad crear una instancia del objeto Task (que admite la interfaz ITask ) y, a continuación, agregar la tarea con el nombre que proporcione.

NewWorkItem no evita colisiones de nombres, pero solo requiere una operación de escritura de disco cuando se llama a IPersistFile::Save . Aunque NewWorkItem es más eficaz con respecto a las operaciones de escritura en disco, la aplicación corre el riesgo de que otra aplicación cree un elemento de trabajo con el mismo nombre antes de que se realice la llamada a IPersistFile::Save .

Para obtener un ejemplo completo de Vea
Creación de una nueva tarea Ejemplo de creación de una tarea mediante NewWorkItem

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mstask.h
Library Mstask.lib
Archivo DLL Mstask.dll
Redistribuible Internet Explorer 4.0 o posterior en Windows NT 4.0 y Windows 95

Consulte también

IPersistFile::Save

ITask

ITaskScheduler

ITaskScheduler::AddWorkItem