EditStreamCallback

EM_STREAMIN メッセージまたは EM_STREAMOUT メッセージで使用されるアプリケーション定義のコールバック関数です。このコールバック関数はリッチエディットコントロールのデータストリームの転送に使用されます。 EditStreamCallback はプレースホルダーであり、実際にこの関数名を使う必要はありません。

DWORD CALLBACK EditStreamCallback(
    DWORD   dwCookie,
    LPBYTE  pbBuffer,
    LONG    cb,
    LONG   *pcb
);

引数

dwCookie

EDITSTREAM 構造体の dwCookie メンバの値が指定されます。この値は、アプリケーションが EM_STREAMIN メッセージまたは EM_STREAMOUT メッセージを送信する際に指定されます。

pbBuffer

書き込むデータが入ったバッファまたは読み取ったデータを格納するバッファのアドレスが指定されます。ストリーム入力(読み取り)操作では、コールバック関数はこのバッファに、リッチエディットコントロールに転送するデータを格納します。ストリーム出力(書き込み)操作では、このバッファにはコントロールから送られたデータが含まれています。

cb

書き込むべきまたは読み取るべきバイト数が指定されます。

pcb

コールバック関数によって実際に書き込まれたバイト数または読み取られたバイト数を格納するための変数のアドレスが指定されます。

戻り値

正常に処理された場合は 0 を返します。

エラーが発生したことを示すには 0 以外の値を返します。このとき、読み取り・書き込み処理は中断され、 pbBuffer パラメータで指定されたバッファのデータは破棄されます。また、アプリケーションにエラーコードを渡すのに EDITSTREAM 構造体の dwError メンバが使われます。

解説

リッチエディットコントロールに EM_STREAMIN または EM_STREAMOUT メッセージを送信する際に、 EDITSTREAM 構造体の pfnCallback メンバに EditStreamCallback コールバック関数のアドレスを指定しておきます。リッチエディットコントロールはデータストリームの転送にこの関数を呼び出します。

リッチエディットコントロールに EM_STREAMIN または EM_STREAMOUT メッセージを送信する際に、 EDITSTREAM 構造体の dwCookie メンバに値を指定することができます。リッチエディットコントロールは EditStreamCallback コールバック関数の第1パラメータ(dwCookie パラメータ)にこの値を渡します。例えば、 dwCookie メンバにオープンしたファイルのハンドルを指定しておくことで、コールバック関数内でファイルの書き込みまたは読み取りをすることができます。

リッチエディットコントロールは、指定されたすべてのデータストリームが転送されるまで繰り返しこのコールバック関数を呼び出します。次のいずれかが起こったときに呼び出しが終了されます。

対応情報

Windows 95 以降 / Windows NT 4.0 以降

Sample Code