Compartilhar via


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
S_OK
A operação foi bem-sucedida.
ERROR_FILE_EXISTS
Já existe um item de trabalho com o nome especificado. O valor retornado real é HRESULT_FROM_WIN32 (ERROR_FILE_EXISTS).
E_INVALIDARG
Um ou mais argumentos não são válidos.
E_OUTOFMEMORY
Não há memória disponível suficiente para concluir a operação.
E_ACCESSDENIED
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

Confira também

IPersistFile::Save

Itask

ITaskScheduler

ITaskScheduler::AddWorkItem