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 寫入作業未完成,因為儲存裝置上沒有剩餘的空間。 寫入的實際位元組數目仍會以 wwwWritten 傳回。

備註

ILockBytes::WriteAt 會在位元組陣列中指定的位置寫入指定的數據。 實際寫入的位元組數目必須一律以 wwwWritten 傳回,即使傳回錯誤也一樣。 如果位元組計數為零個字節,則寫入作業不會有任何作用。

如果 ulOffset 超過位元組數位的結尾, 而 cb 大於零, 則 ILockBytes::WriteAt 會增加位元組數位的大小。 寫入位元組陣列的填滿位元組不會初始化為任何特定值。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 objidl.h
程式庫 Uuid.lib
Dll Ole32.dll

另請參閱

ILockBytes - File-Based 實作

ILockBytes - 全域記憶體實作

ILockBytes::ReadAt

ILockBytes::SetSize