次の方法で共有


イベント ハンドラー関数プロトタイプ コールバック関数

[イベント ハンドラー プロトタイプ関数は、Windows Server 2008 および Windows Vista では使用できなくなりました。 ]

イベント ハンドラー プロトタイプ関数は、 Winlogon 通知イベントを処理するすべての関数に使用されます。 プレース ホルダー Event_Handler_Function_Nameで表される関数の名前は、通常、関数が処理するイベントの名前を反映します。 たとえば、ログオン イベントを処理する関数には、 WLEventLogon という名前を付ける場合があります。

構文

void Event_Handler_Function_Name(
  _In_ PWLX_NOTIFICATION_INFO pInfo
);

パラメーター

pInfo [in]

イベントの詳細を含む WLX_NOTIFICATION_INFO 構造体へのポインター。

戻り値

このコールバック関数は値を返しません。

解説

イベント ハンドラーで子プロセスを作成する必要がある場合は、 CreateProcessAsUser 関数を呼び出す必要があります。 それ以外の場合、新しいプロセスは、ユーザーのデスクトップではなく、Winlogon デスクトップに作成されます。

次の例は、Winlogon イベントのイベント ハンドラーを実装する方法を示しています。 わかりやすくするために、Logon イベント ハンドラーと Logoff イベント ハンドラーの実装のみが表示されます。 他のイベントのハンドラーは、まったく同じ方法で実装できます。

// Copyright (C) Microsoft. All rights reserved. 
#include <windows.h>

// Here is the entrance function for the DLL.
BOOL WINAPI LibMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    switch (dwReason)
    {
        case DLL_PROCESS_ATTACH:
            {

             // Disable DLL_THREAD_ATTACH & DLL_THREAD_DETACH
             // notification calls. This is a performance optimization
             // for multithreaded applications that do not need 
             // thread-level notifications of attachment or
             // detachment.

            DisableThreadLibraryCalls (hInstance);
            }
            break;
    }

    return TRUE;
}

// Here is the event handler for the Winlogon Logon event.
void WLEventLogon (PWLX_NOTIFICATION_INFO pInfo)
{

    // Print the name of the handler to debug output.
    // You can replace this with more useful functionality.
    OutputDebugString (TEXT("NOTIFY:  Entering WLEventLogon.\r\n"));
}

// Here is the event handler for the Winlogon Logoff event.
void WLEventLogoff (PWLX_NOTIFICATION_INFO pInfo)
{

    // Print the name of the handler to debug output.
    // You can replace this with more useful functionality.
    OutputDebugString (TEXT("NOTIFY:  Entering WLEventLogff.\r\n"));
}

要件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
クライアント サポートの終了
Windows XP
サーバー サポートの終了
Windows Server 2003