次の方法で共有


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 個以上の組み合わせにすることができます。 1 つ以上のフラグを指定すると、スナップインで SetExecutionState の以前の呼び出しによって確立された電源管理要件をオフにすることができます。

メモ 電源をオンにするには、電源管理要件をオフにする必要があります。 電源管理要件を最初にオフにせずに電源をオンにしようとすると、エラー E_INVALIDARGが返されます。
 

戻り値

成功した場合、戻り値は S_OK。 このメソッドは、電源管理 サポートしていないシステムで呼び出されたときにS_FALSEを返します。 その他の戻り値は、エラー コードを示します。

解説

SetThreadExecutionState の代わりに IConsolePower::SetExecutionState を呼び出します。 スナップインは SetThreadExecutionState 関数を直接呼び出してはなりません。これにより、同じスレッドで複数のスナップインが実行されている場合に競合が発生します。

スナップインは、その電源要件を定義し、 SetExecutionState を呼び出して MMC に送信します。 スナップインが SetExecutionState を呼び出した後、スナップインが SetExecutionState を別の呼び出しを行うまで、その実行状態は有効なままになります。 SetExecutionState が呼び出された後は、SetExecutionState の後続の呼び出しに IConsolePower インターフェイスの同じインスタンスを使用する必要があることに注意してください。 スナップインで IConsolePower の同じインスタンスが使用されていない場合、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
Library Mmc.lib
[DLL] Mmcndmgr.dll

関連項目

IConsolePower::ResetIdleTimer

SetThreadExecutionState