<Return[C]><Top>

CreateEvent

Declare Function Api_CreateEvent& Lib "Kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset&, bInitialState&, ByVal lpName$)

Declare Function CreateEvent Lib "Kernel32" Alias "CreateEventA" (lpEventAttributes As SECURITY_ATTRIBUTES, ByVal bManualReset As Long, bInitialState As Long, ByVal lpName As String) As Long

パラメータ
lpEventAttributes
    子プロセスが、取得したハンドルを継承できるかどうかを決定する、1 個の SECURITY_ATTRIBUTES 構造体へのポインタを指定す

    る。NULL を指定すると、子プロセスはそのオブジェクトのハンドルを継承できされない。
    Windows NT/2000:SECURITY_ATTRIBUTES 構造体の lpSecurityDescriptor メンバで、新しいイベントのセキュリティ記述子を設定

    する。NULL を指定すると、既定のセキュリティ記述子がそのイベントに割り当てられる。
bManualReset
    手動リセットオブジェクトを作成するか、自動リセットオブジェクトを作成するかを指定する。

    TRUE を指定すると、手動リセットオブジェクトが作成される。FALSE を指定すると、自動リセットオブジェクトが作成される。

    手動リセットオブジェクトを非シグナル状態に設定するには、ResetEvent 関数を呼び出す。自動リセットオブジェクトは、待機スレッドが解放

    された時点で、自動的に非シグナル状態に設定される。
bInitialState
    イベントオブジェクトの初期状態を指定する。TRUE を指定すると、シグナル状態に設定される。FALSE を指定すると、非シグナル状態に

    設定される。
lpName
    イベントオブジェクトの名前を保持している、NULL で終わる文字列へのポインタを指定する。

    名前の最大の長さは、MAX_PATH 文字である。名前を比較する際に、大文字と小文字は区別される。
    lpName パラメータで指定した名前が既存のイベントオブジェクトの名前と一致している場合、CreateEvent 関数を実行するには、既存のオ

    ブジェクトに対する EVENT_ALL_ACCESS アクセス権が必要である。

    この場合、bManualReset パラメータと bInitialState パラメータは、オブジェクトを作成したプロセスによって既に設定されているため、無視

    される。また、lpEventAttributes パラメータが NULL ではない場合、子プロセスがハンドルを継承できるかどうかの指定は有効である

    が、セキュリティ記述子のメンバは無視される。
    lpName パラメータで NULL を指定すると、名前なしのイベントオブジェクトが作成される。
    lpName パラメータで指定した名前が、既存のセマフォ、ミューテックス、待機可能なタイマ、ジョブ、ファイルマッピングオブジェクトのいずれ

    かの名前と一致すると、この関数は失敗し、GetLastError 関数は ERROR_INVALID_HANDLE を返す。これらのオブジェクトは、同じ

    名前空間を共有しているからである。
    Terminal Services:グローバル名前空間またはセッション名前空間でオブジェクトを明示的に作成するために、「Global\」または

    「Local\」のプレフィックスを付けることができる。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。
    Windows 2000:Terminal Services が動作していない Windows 2000 システムでは、「Global\」と「Local\」の各プレフィックスは無

    視される。名前の残りの部分は、円記号(\)を除き、任意の文字を記述できる。
    Windows NT 4.0 以前と Windows 95/98:名前は、円記号(\)を除き、任意の文字を記述できる。

戻り値
    関数が成功すると、イベントオブジェクトのハンドルが返る。

    指定した名前付きイベントオブジェクトが既に存在していた場合も、そのオブジェクトのハンドルが返る。

    その場合、GetLastError 関数は ERROR_ALREADY_EXISTS を返す。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。