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

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

構文

HRESULT OpenStorage(
  [in]  const OLECHAR *pwcsName,
  [in]  IStorage      *pstgPriority,
  [in]  DWORD         grfMode,
  [in]  SNB           snbExclude,
  [in]  DWORD         reserved,
  [out] IStorage      **ppstg
);

パラメーター

[in] pwcsName

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

[in] pstgPriority

NULL にする必要があります。 NULL 以外の値は、STG_E_INVALIDPARAMETERを返します。

[in] grfMode

ストレージ オブジェクトを開くときに使用するアクセス モードを指定します。 使用可能な値の説明については、「 STGM 定数」を参照してください。 選択するその他のモードでは、このメソッドを呼び出すときに少なくとも STGM_SHARE_EXCLUSIVEを指定する必要があります。

[in] snbExclude

NULL にする必要があります。 NULL 以外の値は、STG_E_INVALIDPARAMETERを返します。

[in] reserved

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

[out] ppstg

成功した場合は、開いているストレージ オブジェクトへの IStorage ポインターの場所へのポインター。 エラーが発生した場合、このパラメーターは NULL に設定されます。

戻り値

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

リターン コード 説明
S_OK ストレージ オブジェクトが正常に開かれました。
E_PENDING 非同期ストレージのみ: ストレージのデータの一部またはすべてが現在使用できません。
STG_E_ACCESSDENIED ストレージ オブジェクトを開くには十分なアクセス許可がありません。
STG_E_FILENOTFOUND 指定した名前のストレージ オブジェクトが存在しません。
STG_E_INSUFFICIENTMEMORY メモリ不足のため、ストレージ オブジェクトが開かれていました。
STG_E_INVALIDFLAG grfMode パラメーターに指定された値が有効な STGM 定数値ではありません。
STG_E_INVALIDFUNCTION grfMode パラメーターで指定されたフラグの組み合わせはサポートされていません。
STG_E_INVALIDNAME pwcsName の有効な値ではありません。
STG_E_INVALIDPOINTER ストレージ オブジェクトに指定されたポインターが無効でした。
STG_E_INVALIDPARAMETER パラメーターの 1 つが無効でした。
STG_E_REVERTED ストレージ オブジェクトは、トランザクション ツリーの上の元に戻す操作によって無効になっています。
STG_E_TOOMANYOPENFILES 開いているファイルが多すぎるため、ストレージ オブジェクトが作成されませんでした。
STG_S_CONVERTED 指定した名前の既存のストリームは、CONTENTS という 1 つのストリームを含む新しいストレージ オブジェクトに置き換えられました。 ダイレクト モードでは、新しいストレージはすぐにディスクに書き込まれます。 トランザクション モードでは、新しいストレージはメモリ内の一時ストレージに書き込まれ、後でコミットされるとディスクに書き込まれます。

注釈

pstgPriority パラメーターが NULL の場合は無視されます。 pstgPriority パラメーターが NULL でない場合は、ストレージ オブジェクトの要素の以前の開口部 (通常は優先度モードで開かれたもの) への IStorage ポインターです。 ストレージ オブジェクトは 、grfMode に従って閉じて再度開く必要があります。 IStorage::OpenStorage メソッドが戻ると、pstgPriority は無効になります。 ppstg パラメーターで指定された値を使用します。

ストレージ オブジェクトは、STGM_DELETEONRELEASEを使用して開くことができます。その場合、オブジェクトは最終的なリリースを受け取ると破棄されます。 これは、一時ストレージ オブジェクトを作成する場合に便利です。

要件

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

こちらもご覧ください

IStorage - 複合ファイルの実装

IStorage::CreateStorage