<Return[C]><Top>

CreateConsoleScreenBuffer

Declare Function Api_CreateConsoleScreenBuffer& Lib "kernel32" Alias "CreateConsoleScreenBuffer" (ByVal dwDesiredAccess&, ByVal dwShareMode&, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwFlags&, lpScreenBufferData As Any)

Declare Function CreateConsoleScreenBuffer Lib "kernel32" Alias "CreateConsoleScreenBuffer" (ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwFlags As Long, lpScreenBufferData As Any) As Long

指定されたサイズ、ビットパターン、ホットスポットを持つマウスカーソル( マウスポインタ)を作成する。

パラメータ
dwDesiredAccess
    コンソールスクリーンバッファへのアクセス権を指定する。次の一方または両方の定数を指定することができる。

    定数                        

意味                                                                                                                      

    GENERIC_READ

コンソールスクリーンバッファへの読み取りアクセス権を要求し、プロセスがバッファからデータを読み取れるようにする。

    GENERIC_WRITE

コンソールスクリーンバッファへの書き込みアクセス権を要求し、プロセスがバッファにデータを書き込めるようにする。

dwShareMode
    コンソールスクリーンバッファを共有可能にするかどうか指定する。バッファを共有できないようにするときは 0 を指定する。共有可能にすると

    きは、次の一方または両方の定数を指定する。

    定数                              

意味                                                                                                                      

    FILE_SHARE_READ

読み取りアクセスのためにコンソールスクリーンバッファで他のオープン操作を実行できるようにする。

    FILE_SHARE_WRITE

書き込みアクセスのためにコンソールスクリーンバッファで他のオープン操作を実行できるようにする。

lpSecurityAttributes
    SECURITY_ATTRIBUTES 構造体へのポインタを指定する。この構造体で、取得するハンドルを子プロセスに継承可能にするかどうか指

    定しておく。NULL を指定すると、ハンドルを継承できなくなる。
    Windows NT/2000:構造体の lpSecurityDescriptor メンバで、新しいコンソールスクリーンバッファのセキュリティ記述子を指定しておく。

    lpSecurityAttributes に NULL を指定すると、コンソールスクリーンバッファに既定のセキュリティ記述子が割り当てられる。
dwFlags
    作成するコンソールスクリーンバッファの種類を指定する。

    現時点でサポートされているのは、CONSOLE_TEXTMODE_BUFFER だけである。
lpScreenBufferData
    将来のために予約されている。NULL を指定する。

 

戻り値
    関数が成功すると、新しいコンソールスクリーンバッファのハンドルが返る。
    関数が失敗すると、INVALID_HANDLE_VALUE が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    1 つのコンソールに複数のスクリーンバッファを割り当てることができる。そのうち、アクティブにできるのは一度に 1 つだけである。スクリーン

    バッファへの読み取りアクセスと書き込みアクセスは、そのスクリーンバッファがアクティブかどうかにかかわらず可能である。表示されるのは

    アクティブなスクリーンバッファだけである。新しいスクリーンバッファをアクティブなスクリーンバッファにするには、

    SetConsoleActiveScreenBuffer 関数を使う。
    呼び出し側プロセスは、この関数で取得したハンドルを、コンソールスクリーンバッファのハンドルを必要とするどの関数にも渡すことができ

    る。その場合、dwDesiredAccess パラメータで指定したアクセス権の制限を受ける。
    呼び出し側プロセスは DuplicateHandle 関数を使って、アクセス権または継承の設定がオリジナルとは異なるスクリーンバッファハンドルの

    複製を作成できる。しかしながら、異なるプロセスで有効な複製を作成することはできない(継承を使う場合を除く)。
    スクリーンバッファハンドルを閉じるには、CloseHandle 関数を使う。