Compartilhar via


Método IConsolePower::SetExecutionState (mmc.h)

O método SetExecutionState define o estado de execução do thread atual.

Sintaxe

HRESULT SetExecutionState(
  [in] DWORD dwAdd,
  [in] DWORD dwRemove
);

Parâmetros

[in] dwAdd

Sinalizadores a serem adicionados ao estado de execução do snap-in. Isso pode ser uma combinação de 0 ou mais dos sinalizadores a seguir.

ES_DISPLAY_REQUIRED

O requisito de gerenciamento de energia de exibição (monitor). Se especificado em dwAdd, o snap-in proíbe o sistema operacional de invocar a rotina de gerenciamento de energia para a exibição.

ES_SYSTEM_REQUIRED

O requisito de gerenciamento de energia do sistema. Se especificado em dwAdd, o snap-in proíbe o sistema operacional de invocar a rotina de gerenciamento de energia para o sistema.

[in] dwRemove

Sinalizadores a serem removidos do estado de execução do snap-in. Isso pode ser uma combinação de 0 ou mais dos sinalizadores anteriores. Especificar um ou mais sinalizadores permite que um snap-in desative um requisito de gerenciamento de energia estabelecido por uma chamada anterior para SetExecutionState.

Nota Um requisito de gerenciamento de energia deve ser desativado antes de ser ativado. Uma tentativa de ativar um requisito de gerenciamento de energia sem primeiro desativá-lo retorna um erro E_INVALIDARG.
 

Valor retornado

Se tiver êxito, o valor retornado será S_OK. Esse método retornará S_FALSE quando invocado em um sistema que não dá suporte ao gerenciamento de energia. Outros valores retornados indicam um código de erro.

Comentários

Chame IConsolePower::SetExecutionState em vez de SetThreadExecutionState. Os snap-ins não devem chamar a função SetThreadExecutionState diretamente, fazendo isso causará conflitos se vários snap-ins estiverem em execução no mesmo thread.

Um snap-in define seus requisitos de energia e os envia ao MMC chamando SetExecutionState. Depois que o snap-in chama SetExecutionState, seu estado de execução permanece em vigor até que o snap-in faça outra chamada para SetExecutionState. Lembre-se de que, depois que SetExecutionState for chamado, a mesma instância da interface IConsolePower deverá ser usada para chamadas subsequentes para SetExecutionState. Se um snap-in não usar a mesma instância de IConsolePower, o MMC não poderá chamar SetThreadExecutionState efetivamente. O MMC mantém uma matriz para acompanhar o estado de execução de cada snap-in e chama SetThreadExecutionState para todos os snap-ins em execução no thread.

Exemplos

HRESULT hr;

// Specify that the display and system are required.
// pConsolePower was created previously by
// the CoCreateInstance method.
hr = pConsolePower->SetExecutionState(ES_DISPLAY_REQUIRED | ES_SYSTEM_REQUIRED,0);
switch (hr)
{
    case S_OK:
        OutputDebugString(_T("SetExecutionState: Succeeded\n"));
        break;

    case S_FALSE:
        // The system does not support power management.
        OutputDebugString(_T("SetExecutionState: Unsupported\n"));
        break;

    default:
        // Unexpected error occurred.
        OutputDebugString(_T("SetExecutionState: Failure\n"));
        break;
}

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho mmc.h
Biblioteca Mmc.lib
DLL Mmcndmgr.dll

Confira também

IConsolePower::ResetIdleTimer

SetThreadExecutionState