EDITSTREAMCALLBACK コールバック関数 (richedit.h)

EditStreamCallback 関数は、EM_STREAMINおよびEM_STREAMOUT メッセージで使用されるアプリケーション定義のコールバック関数です。 これは、豊富な編集コントロールの間でデータのストリームを転送するために使用されます。 EDITSTREAMCALLBACK 型は、このコールバック関数へのポインターを定義します。 EditStreamCallback は、アプリケーション定義関数名のプレースホルダーです。

構文

EDITSTREAMCALLBACK Editstreamcallback;

DWORD Editstreamcallback(
  [in] DWORD_PTR dwCookie,
  [in] LPBYTE pbBuff,
  [in] LONG cb,
  [in] LONG *pcb
)
{...}

パラメーター

[in] dwCookie

種類: DWORD_PTR

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

[in] pbBuff

種類: LPBYTE

読み取りまたは書き込み元のバッファーへのポインター。 ストリームイン (読み取り) 操作の場合、コールバック関数はこのバッファーにデータを入力して、リッチエディット コントロールに転送します。 ストリームアウト (書き込み) 操作の場合、バッファーには、コールバック関数がストレージに書き込むコントロールからのデータが含まれます。

[in] cb

型: LONG

読み取りまたは書き込みするバイト数。

[in] pcb

型: LONG*

コールバック関数が実際に読み取りまたは書き込まれたバイト数に設定する変数へのポインター。

戻り値

型: DWORD

コールバック関数は、成功を示す 0 を返します。

コールバック関数は、エラーを示す 0 以外の値を返します。 エラーが発生すると、読み取りまたは書き込み操作が終了し、リッチ エディット コントロールによって pbBuff バッファー内のデータが破棄されます。 コールバック関数が 0 以外の値を返す場合、リッチエディット コントロールは EDITSTREAM 構造体の dwError メンバーを使用して値をアプリケーションに返します。

注釈

EM_STREAMINまたはEM_STREAMOUT メッセージをリッチ エディット コントロールに送信すると、EDITSTREAM 構造体の pfnCallback メンバーは EditStreamCallback 関数へのポインターを指定します。 リッチ エディット コントロールは、 関数を繰り返し呼び出して、コントロールの間でデータのストリームを転送します。

EM_STREAMINまたはEM_STREAMOUTメッセージを送信するときは、EDITSTREAM 構造体の dwCookie メンバーの値を指定します。 リッチ エディット コントロールでは 、dwCookie パラメーターを使用して、この値を EditStreamCallback 関数に渡します。 たとえば、 dwCookie を使用して、開いているファイルにハンドルを渡すことができます。 その後、コールバック関数は dwCookie ハンドルを使用して、ファイルの読み取りまたは書き込みを行うことができます。

コントロールはコールバック関数を繰り返し呼び出し、各呼び出しでデータの一部を転送します。 コントロールは、次のいずれかの条件が発生するまでコールバック関数を呼び出し続けます。

  • コールバック関数は 0 以外の値を返します。
  • コールバック関数は、 * pcb パラメーターで 0 を返します。
  • エラーが発生し、リッチ エディット コントロールがデータをそれ自体に転送したり、それ自体からデータを転送したりできなくなります。 メモリ不足の状況、システム関数の障害、読み取りバッファー内の無効な文字などです。
  • ストリームイン操作の場合、RTF コードには RTF ブロックの末尾を指定するデータが含まれます。
  • 1 行の編集コントロールに対するストリームイン操作の場合、コールバックは段落末文字 (CR、LF、VT、LS、または PS) を読み取ります。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー richedit.h

こちらもご覧ください

EDITSTREAM

EM_STREAMIN

EM_STREAMOUT

参照