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 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | richedit.h |
関連項目
EDITSTREAM を
リファレンス