IStream::SetSize 方法 (objidl.h)

SetSize方法會變更資料流程物件的大小。

語法

HRESULT SetSize(
  [in] ULARGE_INTEGER libNewSize
);

參數

[in] libNewSize

指定資料流程的新大小,以位元組為單位。

傳回值

這個方法可以傳回其中一個值。

傳回碼 描述
S_OK 資料流程物件的大小已成功變更。
E_PENDING 僅限非同步儲存體:目前無法使用部分或所有資料流程的資料。
STG_E_MEDIUMFULL 資料流程大小不會變更,因為儲存裝置上沒有剩餘的空間。
STG_E_INVALIDFUNCTION 實作不支援 libNewSize 參數的值。 並非所有資料流程都支援大於 232 個位元組。 如果資料流程不支援超過 232 個位元組, libNewSize 的高 DWORD 資料類型必須是零。 如果不是零,實作可能會傳回STG_E_INVALIDFUNCTION。 一般而言,IStream 介面的 COM 型實作不支援大於 232 個位元組的資料流程。
STG_E_REVERTED 物件已因交易樹狀結構中上方的還原作業而失效。

備註

IStream::SetSize 會變更資料流程物件的大小。 呼叫這個方法以預先配置資料流程的空間。 如果 libNewSize 參數大於目前的資料流程大小,則資料流程會填入未定義值的位元組來填滿間隔空間,以擴充至指示的大小。 如果搜尋指標超過資料流程的目前結尾,此作業類似于 ISequentialStream::Write 方法。

如果 libNewSize 參數小於目前的資料流程,資料流程就會截斷為指定的大小。

搜尋指標不會受到資料流程大小變更的影響。

呼叫 IStream::SetSize 是取得大量連續空間的有效方式。

需求

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

另請參閱

ISequentialStream::Write

IStream

IStream - 複合檔案實作