IStorage::OpenStream メソッド (objidl.h)

OpenStream メソッドは、指定したアクセス モードで、このストレージ オブジェクト内の既存のストリーム オブジェクトを開きます。

構文

HRESULT OpenStream(
  [in]  const OLECHAR *pwcsName,
  [in]  void          *reserved1,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved2,
  [out] IStream       **ppstm
);

パラメーター

[in] pwcsName

開くストリームの名前を含むワイド文字の null で終わる Unicode 文字列へのポインター。 ストリーム/ストレージ名の最初の文字として機能する 000 から 01f の文字は、OLE で使用するために予約されています。 これは複合ファイルの制限であり、構造化ストレージの制限ではありません。

[in] reserved1

将来の使用のために予約されています。 は NULL である必要があります。

[in] grfMode

開いているストリームに割り当てるアクセス モードを指定します。 使用可能な値の詳細と説明については、「 STGM 定数」を参照してください。 選択する他のモードでは、複合ファイルの実装でこのメソッドを呼び出すときに、少なくとも STGM_SHARE_EXCLUSIVE を指定する必要があります。

[in] reserved2

今後使用するために予約されています。0 にする必要があります。

[out] ppstm

新しく開かれたストリーム オブジェクトへのインターフェイス ポインターを受け取る IStream ポインター変数へのポインター。 エラーが発生した場合は、*ppstmNULL に設定する必要があります。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK ストリームが正常に開きました。
E_PENDING 非同期ストレージのみ: ストリーム データの一部またはすべてを現在使用できません。
STG_E_ACCESSDENIED ストリームを開くには十分なアクセス許可がありません。
STG_E_FILENOTFOUND 指定した名前のストリームが存在しません。
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 開いているファイルが多すぎるため、ストリームを開くことができませんでした。

注釈

IStorage::OpenStream、grfMode で指定されたアクセス モードで、このストレージ オブジェクト内の既存のストリーム オブジェクトを開きます。 grfMode で指定できるアクセス許可には制限があります。 たとえば、このストレージ オブジェクトに対するアクセス許可によって、ストリームに対するアクセス許可が制限されます。 一般に、ストリームのアクセス制限は、親ストレージのアクセス制限よりも厳しくする必要があります。 複合ファイル ストリームは、STGM_SHARE_EXCLUSIVEで開く必要があります。

要件

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

こちらもご覧ください

IStorage - 複合ファイルの実装

IStorage::CreateStream

Istream