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 データ型は 0 である必要があります。 0 以外の場合、実装は STG_E_INVALIDFUNCTIONを返す可能性があります。 一般に、IStream インターフェイスの COM ベースの実装では、232 バイトを超えるストリームはサポートされていません。
STG_E_REVERTED オブジェクトは、トランザクション ツリー内のオブジェクトの上にある元に戻す操作によって無効になっています。

解説

IStream::SetSize はストリーム オブジェクトのサイズを変更します。 ストリームの領域を事前に割り当てるには、このメソッドを呼び出します。 libNewSize パラメーターが現在のストリーム サイズより大きい場合、ストリームは、介在する領域に未定義の値のバイトを埋めることで、指定されたサイズに拡張されます。 シーク ポインターがストリームの現在の末尾を超える場合、この操作は ISequentialStream::Write メソッドに似ています。

libNewSize パラメーターが現在のストリームより小さい場合、ストリームは指定されたサイズに切り捨てられます。

シーク ポインターは、ストリーム サイズの変更の影響を受けません。

IStream::SetSize を呼び出すことは、連続する領域の大きなチャンクを取得する効果的な方法です。

要件

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

関連項目

ISequentialStream::Write

IStream

IStream - 複合ファイルの実装