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 |
---|---|
|
La operación se realizó correctamente. |
|
Ya existe un elemento de trabajo con el nombre especificado. El valor devuelto real es HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS). |
|
Uno o varios de los argumentos no son válidos. |
|
Memoria insuficiente para completar la operación. |
|
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 |