IStorage::CreateStream メソッド (objidl.h)
CreateStream メソッドは、このストレージ オブジェクトに含まれる指定された名前のストリーム オブジェクトを作成して開きます。 ストレージ オブジェクト内のすべての要素 (ストリームと他のストレージ オブジェクトの両方) は、同じネーム スペースに保持されます。
構文
HRESULT CreateStream(
[in] const OLECHAR *pwcsName,
[in] DWORD grfMode,
[in] DWORD reserved1,
[in] DWORD reserved2,
[out] IStream **ppstm
);
パラメーター
[in] pwcsName
新しく作成されたストリームの名前を含むワイド文字の null で終わる Unicode 文字列へのポインター。 名前は、後でストリームを開いたり、再度開いたりするために使用できます。 名前の長さは 31 文字を超えてはなりません。文字列終端記号は含まれません。 ストリーム/ストレージ名の最初の文字として機能する 000 から 01f の文字は、OLE で使用するために予約されています。 これは複合ファイルの制限であり、構造化ストレージの制限ではありません。
[in] grfMode
新しく作成されたストリームを開くときに使用するアクセス モードを指定します。 使用可能な値の詳細と説明については、「 STGM 定数」を参照してください。
[in] reserved1
今後使用するために予約されています。0 にする必要があります。
[in] reserved2
今後使用するために予約されています。0 にする必要があります。
[out] ppstm
戻り時に、新しい IStream インターフェイス ポインターの場所へのポインター。 これは、操作が成功した場合にのみ有効です。 エラーが発生すると、このパラメーターは NULL に設定されます。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
S_OK | 新しいストリームが正常に作成されました。 |
E_PENDING | 非同期ストレージのみ: 必要なデータの一部またはすべてを現在使用できません。 |
STG_E_ACCESSDENIED | ストリームを作成するための十分なアクセス許可がありません。 |
STG_E_FILEALREADYEXISTS | ストリームに指定された名前はストレージ オブジェクトに既に存在し、 grfMode パラメーターには値STGM_FAILIFTHEREが含まれています。 |
STG_E_INSUFFICIENTMEMORY | メモリ不足のため、ストリームが作成されませんでした。 |
STG_E_INVALIDFLAG | grfMode パラメーターに指定された値が有効な STGM 定数値ではありません。 |
STG_E_INVALIDFUNCTION | grfMode パラメーターで指定されたフラグの組み合わせはサポートされていません。たとえば、このメソッドが STGM_SHARE_EXCLUSIVE フラグなしで呼び出された場合などです。 |
STG_E_INVALIDNAME | pwcsName の値が無効です。 |
STG_E_INVALIDPOINTER | ストリーム オブジェクトに指定されたポインターが無効です。 |
STG_E_INVALIDPARAMETER | 1 つのパラメーターが無効です。 |
STG_E_REVERTED | ストレージ オブジェクトは、トランザクション ツリーの上の元に戻す操作によって無効になっています。 |
STG_E_TOOMANYOPENFILES | 開いているファイルが多すぎるため、ストリームが作成されませんでした。 |
注釈
pwcsName パラメーターで指定された名前のストリームが既に存在し、grfMode パラメーターに STGM_CREATE フラグが含まれている場合、既存のストリームは新しく作成されたストリームに置き換えられます。 古いストリームの破棄と新しいストリーム オブジェクトの作成の両方が、親ストレージ オブジェクトのトランザクション モードの対象となります。
COM が提供する IStorage::CreateStream メソッドの複合ファイル実装では、次の動作はサポートされていません。
- STGM_DELETEONRELEASE フラグはサポートされていません。
- トランザクション モード (STGM_TRANSACTED) は、ストリーム オブジェクトではサポートされていません。
- 同じストレージから同じストリームを複数回開く操作はサポートされていません。 STGM_SHARE_EXCLUSIVE共有モード フラグは grfMode パラメーターで指定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | objidl.h |
Library | Uuid.lib |
[DLL] | Ole32.dll |