Método ITaskScheduler::NewWorkItem (mstask.h)
[[Essa API pode estar alterada ou indisponível em versões subsequentes do sistema operacional ou do produto. Em vez disso, use as Interfaces do Agendador de Tarefas 2.0 .] ]
O método NewWorkItem cria um novo item de trabalho, alocando espaço para o item de trabalho e recuperando seu endereço.
Sintaxe
HRESULT NewWorkItem(
[in] LPCWSTR pwszTaskName,
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] IUnknown **ppUnk
);
Parâmetros
[in] pwszTaskName
Uma cadeia de caracteres terminada em nulo que especifica o nome do novo item de trabalho. Esse nome deve estar em conformidade com Windows NT convenções de nomenclatura de arquivo, mas não pode incluir barras invertidas porque o aninhamento dentro do objeto de pasta de tarefa não é permitido.
[in] rclsid
O identificador de classe do item de trabalho a ser criado. A única classe com suporte neste momento, a classe de tarefa, tem o identificador CLSID_Ctask.
[in] riid
O identificador de referência da interface que está sendo solicitada. A única interface com suporte no momento, ITask, tem o identificador IID_ITask.
[out] ppUnk
Um ponteiro para um ponteiro de interface que recebe a interface solicitada. Consulte Comentários para obter informações sobre como salvar o item de trabalho em disco.
Retornar valor
O método NewWorkItem retorna um dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
A operação foi bem-sucedida. |
|
Já existe um item de trabalho com o nome especificado. O valor retornado real é HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS). |
|
Um ou mais argumentos não são válidos. |
|
Não há memória disponível suficiente para concluir a operação. |
|
O chamador não tem permissão para executar a operação. Para obter mais informações, consulte Itens de trabalho agendados. |
Comentários
Esse método manipula a alocação de memória automaticamente ao criar o novo item de trabalho.
Para salvar o item de trabalho no disco, chame IPersistFile::Save . Essa interface COM é compatível com todas as interfaces de item de trabalho (atualmente , iTask é a única interface de item de trabalho com suporte).
O agendador de tarefas fornece dois métodos para adicionar itens de trabalho: NewWorkItem e AddWorkItem. Desses métodos, cada um tem sua vantagem específica. AddWorkItem impede colisões de nomenclatura, mas também requer duas operações de gravação de disco por chamada. Uma operação de gravação é executada quando a chamada para AddWorkItem cria um objeto de item de trabalho vazio no disco, seguido por outra operação de gravação quando IPersistFile::Save é chamado.
Você pode criar uma tarefa chamando AddWorkItem ou NewWorkItem. Ao usar AddWorkItem, é sua responsabilidade criar uma instância do objeto Task (que dá suporte à interface ITask ) e, em seguida, adicionar a tarefa com o nome fornecido.
NewWorkItem não impede colisões de nomenclatura, mas requer apenas uma operação de gravação de disco quando IPersistFile::Save é chamado. Embora NewWorkItem seja mais eficiente em relação às operações de gravação de disco, o aplicativo corre o risco de fazer com que outro aplicativo crie um item de trabalho com o mesmo nome antes da chamada para IPersistFile::Save ser feita.
Para obter um exemplo completo de | Consulte |
---|---|
Criando uma nova tarefa | Criando uma tarefa usando o exemplo NewWorkItem |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | mstask.h |
Biblioteca | Mstask.lib |
DLL | Mstask.dll |
Redistribuível | Internet Explorer 4.0 ou posterior no Windows NT 4.0 e Windows 95 |