다음을 통해 공유


IConsolePower::SetExecutionState 메서드(mmc.h)

SetExecutionState 메서드는 현재 스레드의 실행 상태를 설정합니다.

구문

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

매개 변수

[in] dwAdd

스냅인 실행 상태에 추가할 플래그입니다. 다음 플래그 중 0개 이상의 조합일 수 있습니다.

ES_DISPLAY_REQUIRED

디스플레이(모니터) 전원 관리 요구 사항입니다. dwAdd에 지정된 경우 스냅인은 운영 체제가 디스플레이에 대한 전원 관리 루틴을 호출하는 것을 금지합니다.

ES_SYSTEM_REQUIRED

시스템 전원 관리 요구 사항입니다. dwAdd에 지정된 경우 스냅인은 운영 체제가 시스템의 전원 관리 루틴을 호출하는 것을 금지합니다.

[in] dwRemove

스냅인의 실행 상태에서 제거할 플래그입니다. 이는 이전 플래그의 0개 이상의 조합일 수 있습니다. 하나 이상의 플래그를 지정하면 스냅인에서 SetExecutionState에 대한 이전 호출에 의해 설정된 전원 관리 요구 사항을 해제할 수 있습니다.

참고 전원 관리 요구 사항을 켜려면 먼저 꺼야 합니다. 먼저 전원 관리 요구 사항을 해제하지 않고 설정하려고 하면 오류 E_INVALIDARG 반환됩니다.
 

반환 값

성공하면 반환 값이 S_OK. 이 메서드는 전원 관리를 지원하지 않는 시스템에서 호출될 때 S_FALSE 반환합니다. 다른 반환 값은 오류 코드를 나타냅니다.

설명

SetThreadExecutionState 대신 IConsolePower::SetExecutionState를 호출합니다. 스냅인은 SetThreadExecutionState 함수를 직접 호출하면 안 되므로 동일한 스레드에서 여러 스냅인을 실행하는 경우 충돌이 발생합니다.

스냅인은 해당 전원 요구 사항을 정의하고 SetExecutionState를 호출하여 MMC로 보냅니다. 스냅인에서 SetExecutionState를 호출한 후 스냅인에서 SetExecutionState를 다시 호출할 때까지 실행 상태가 계속 적용됩니다. SetExecutionState가 호출된 후에는 SetExecutionState에 대한 후속 호출에 동일한 IConsolePower 인터페이스 instance 사용해야 합니다. 스냅인에서 IConsolePower의 동일한 instance 사용하지 않는 경우 MMC는 SetThreadExecutionState를 효과적으로 호출할 수 없습니다. MMC는 각 스냅인의 실행 상태를 추적하는 배열을 유지 관리하고 스레드에서 실행되는 모든 스냅인에 대해 SetThreadExecutionState 를 호출합니다.

예제

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;
}

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 mmc.h
라이브러리 Mmc.lib
DLL Mmcndmgr.dll

참고 항목

IConsolePower::ResetIdleTimer

SetThreadExecutionState