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 |