Share via


ILockBytes::WriteAt メソッド (objidl.h)

WriteAt メソッドは、バイト配列の先頭から指定したオフセットから開始する、指定したバイト数を書き込みます。

構文

HRESULT WriteAt(
  [in]  ULARGE_INTEGER ulOffset,
  [in]  const void     *pv,
  [in]  ULONG          cb,
  [out] ULONG          *pcbWritten
);

パラメーター

[in] ulOffset

書き込まれるデータのバイト配列の先頭からの開始点を指定します。

[in] pv

書き込まれるデータを含むバッファーへのポインター。

[in] cb

バイト配列への書き込みを試行するデータのバイト数を指定します。

[out] pcbWritten

このメソッドがバイト配列に書き込まれた実際のバイト数を指定する場所へのポインター。 このポインターを NULL に設定すると、この値に関心がないことを示すことができます。 この場合、このメソッドは書き込まれた実際のバイト数を提供しません。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK 指定したバイト数が書き込まれたことを示します。
E_FAIL 書き込み操作中に一般的なエラーが発生しました。
E_PENDING 非同期ストレージのみ: 書き込まれるデータの一部またはすべてを現在使用できません。
STG_E_ACCESSDENIED 呼び出し元には、このバイト配列を書き込むための十分なアクセス許可がありません。
STG_E_WRITEFAULT 書き込まれるバイト数が、実際に書き込まれたバイト数と等しくありません。
STG_E_MEDIUMFULL ストレージ デバイスに空き領域がないため、書き込み操作が完了していません。 書き込まれた実際のバイト数は、引き続き pcbWritten で返されます。

注釈

ILockBytes::WriteAt は 、指定したデータをバイト配列内の指定された場所に書き込みます。 エラーが返された場合でも、実際に書き込まれたバイト数は常に pcbWritten で返される必要があります。 バイト数が 0 バイトの場合、書き込み操作は無効です。

ulOffset がバイト配列の末尾を超え、cb が 0 より大きい場合、ILockBytes::WriteAt はバイト配列のサイズを大きくします。 バイト配列に書き込まれた塗りつぶしバイトは、特定の値に初期化されません。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h
Library Uuid.lib
[DLL] Ole32.dll

こちらもご覧ください

ILockBytes - File-Based 実装

ILockBytes - グローバル メモリ実装

ILockBytes::ReadAt

ILockBytes::SetSize