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 |