StgCreateStorageEx 関数 (coml2api.h)
Windows 2000、Windows Server 2003、および Windows XP 用に作成されたアプリケーションでは、強化された Windows 2000 および Windows XP 構造化ストレージ機能を利用するために、StgCreateDocfile
構文
HRESULT StgCreateStorageEx(
[in] const WCHAR *pwcsName,
[in] DWORD grfMode,
[in] DWORD stgfmt,
[in] DWORD grfAttrs,
[in] STGOPTIONS *pStgOptions,
[in] PSECURITY_DESCRIPTOR pSecurityDescriptor,
[in] REFIID riid,
[out] void **ppObjectOpen
);
パラメーター
[in] pwcsName
作成するファイルのパスへのポインター。 これは、解釈されていないファイル システムに渡されます。 相対名または NULL
Windows 2000: CreateFile 関数とは異なり、"\?" プレフィックスを使用してMAX_PATHの制限を超えることはできません。
[in] grfMode
新しいストレージ オブジェクトを開くときに使用するアクセス モードを指定する値。 詳細については、「STGM 定数
[in] stgfmt
ストレージ ファイル形式を指定する値。 詳細については、STGFMT 列挙型を参照してください。
[in] grfAttrs
stgfmt パラメーターの値に依存する値。
パラメーター値 | 意味 |
---|---|
|
0、またはFILE_FLAG_NO_BUFFERING。 詳細については、「CreateFile |
|
0 にする必要があります。 |
[in] pStgOptions
pStgOptions パラメーターは、stgfmt パラメーターが STGFMT_DOCFILE に設定されている場合にのみ有効です。
[in] pSecurityDescriptor
ファイルの作成時に ACL を設定できるようにします。 NULL
[in] riid
返すインターフェイス ポインターのインターフェイス識別子 (IID) を指定する値。 この IID は、IStorage インターフェイスまたは IPropertySetStorage インターフェイスの場合があります。
[out] ppObjectOpen
新しいストレージ オブジェクト上のインターフェイスのポインターを受け取るインターフェイス ポインター変数へのポインター。には、操作 失敗した場合の NULL が含まれます。
戻り値
この関数は、HRESULTでラップされたファイル システム エラーやシステム エラーを返すこともできます。 詳細については、「エラー処理戦略の と 不明なエラーの処理を参照してください。
備考
アプリケーションがファイルを変更すると、通常は元のファイルのコピーが作成されます。 StgCreateStorageEx 関数は、コピーを作成するための 1 つの方法です。 この関数は、暗号化ファイル システム (EFS) 重複 API で間接的に機能します。 この関数を使用する場合は、STGOPTIONS 構造のファイル・ストレージのオプションを設定する必要があります。
stgCreateStorageEx
StgCreateStorageEx 関数は、システム提供の構造化ストレージ実装のいずれかを使用して、新しいストレージ オブジェクトを作成します。 この関数を使用して、次の関数を取得できます。
IStorage複合ファイル実装
新しいファイルが作成されるとき、使用されるストレージ実装は、指定したフラグと、ファイルが格納されるドライブの種類によって異なります。 詳細については、STGFMT 列挙型を参照してください。
StgCreateStorageEx
StgCreateStorageEx 関数を使用すると、構造化ストレージ ドキュメントのルート ストレージまたはプロパティ セットをサポートする任意のファイルのプロパティ セット ストレージにアクセスできます。 STGFMT のドキュメントを参照して、さまざまな STGFMT 値に対してどの IID がサポートされているかを確認してください。
NTFS プロパティ セットの実装にアクセスするためにこの関数を使用してファイルを作成すると、特別な共有規則が適用されます。 詳細については、「IPropertySetStorage-NTFS 実装」を参照してください。
複合ファイルがトランザクション モード (STGM_TRANSACTEDを指定) および読み取り専用モード (STGM_READを指定) で作成された場合、返されたストレージ オブジェクトを変更できます。 たとえば、IStorage::CreateStreamを呼び出す場合があります。 ただし、IStorage::Commitを呼び出して、これらの変更をコミットすることはできません。 そのため、このような変更は失われます。
STGM_SIMPLEを指定すると、複数のストリームと記憶域のない複合ファイルの実装を必要とするアプリケーションを含む、限られたが頻繁に使用される場合に、複合ファイル オブジェクトの実装がはるかに高速になります。 詳細については、「STGM 定数
単純モードでは、IStorageのすべてのメソッドがサポートされているわけではありません。 具体的には、単純モードでは、サポートされている
grfMode パラメーターがSTGM_TRANSACTEDを指定し、pwcsName パラメーターで指定された名前のファイルがまだ存在しない場合、ファイルはすぐに作成されます。 アクセス制御ファイル システムでは、呼び出し元は複合ファイルが作成されるファイル システム ディレクトリに対する書き込みアクセス許可を持っている必要があります。 STGM_TRANSACTEDを指定せず、STGM_CREATEを指定すると、新しいファイルを作成する前に同じ名前の既存のファイルが破棄されます。
stgCreateStorageEx
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | coml2api.h (Objbase.h を含む) |
ライブラリ | Ole32.lib |
DLL | Ole32.dll |
関連項目
CreateFile の
STGM 定数 を
STGOPTIONS の
StgCreateDocfile の
StgOpenStorageEx の