LZOpenFileW 関数 (lzexpand.h)
指定したファイルを作成、開く、再度開く、または削除します。
構文
INT LZOpenFileW(
[in] LPWSTR lpFileName,
[out] LPOFSTRUCT lpReOpenBuf,
[in] WORD wStyle
);
パラメーター
[in] lpFileName
ファイルの名前です。
[out] lpReOpenBuf
ファイルが最初に開かれたときにファイルに関する情報を受け取る OFSTRUCT 構造体へのポインター。 構造体は、 LZOpenFile 関数の後続の呼び出しで使用して、開いているファイルを確認できます。
この構造体 の szPathName メンバーには、元の機器製造元 (OEM) の文字セットの文字が含まれています。
[in] wStyle
実行するアクション。 このパラメーターには、次の 1 つ以上の値を指定できます。
値 | 説明 |
---|---|
|
無視されます。 16 ビット Windows との互換性のみを目的として提供されます。 [キャンセル] ボタンを含むダイアログ ボックスを表示するには、OF_PROMPT スタイルを使用します。 |
|
新しいファイルを作成するように LZOpenFile に指示します。 ファイルが既に存在する場合は、長さが 0 に切り捨てられます。 |
|
ファイルを削除します。 |
|
ファイルを開き、ファイルを閉じて、ファイルの存在をテストします。 |
|
OFSTRUCT 構造体を塗りつぶしますが、他のアクションは実行しません。 |
|
要求されたファイルが存在しない場合は、ダイアログ ボックスを表示します。 ダイアログ ボックスは、システムがファイルを見つけられないことをユーザーに通知し、[ 再試行] ボタンと [キャンセル] ボタンが含まれています。 [ キャンセル ] ボタンをクリックすると、 ファイル が見つかりませんというエラー メッセージが返されます。 |
|
読み取り専用でファイルを開きます。 |
|
読み取りと書き込みのためにファイルを開きます。 |
|
再度開くバッファー内の情報を使用してファイルを開きます。 |
|
ファイルに対する他のプロセスの読み取りまたは書き込みアクセスを拒否せずにファイルを開きます。 ファイルが他のプロセスによって互換モードで開かれている場合、LZOpenFile は失敗します。 |
|
ファイルを開き、ファイルへの他のプロセスの読み取りアクセスを拒否します。 ファイルが互換モードで開かれているか、他のプロセスによって読み取りアクセスのために開かれている場合、LZOpenFile は失敗します。 |
|
ファイルを開き、ファイルへの他のプロセスの書き込みアクセスを拒否します。 ファイルが互換モードで開かれているか、他のプロセスによって書き込みアクセス用に開かれている場合、LZOpenFile は失敗します。 |
|
排他モードでファイルを開き、ファイルへの読み取りと書き込みの両方のアクセスを拒否します。 ファイルが読み取りまたは書き込みアクセス用に他のモードで開かれている場合、現在のプロセスでも LZOpenFile は失敗します。 |
|
書き込み専用でファイルを開きます。 |
戻り値
関数が成功し、 wStyle パラメーターで指定された値が OF_READされていない場合、戻り値はファイルを識別するハンドルです。 ファイルが圧縮され、 wStyle が OF_READ に設定されて開かれた場合、戻り値は特殊なファイル ハンドルになります。
関数が失敗した場合、戻り値は LZERROR_* コードです。 これらのコードの値は 0 未満です。 この関数の拡張エラー情報はありません。 GetLastError を呼び出さないでください。
リターン コード/値 | Description |
---|---|
|
ソース ファイルを識別するハンドルが無効です。 ファイルを読み取ることができません。 |
|
開いている圧縮ファイルの最大数を超えているか、ローカル メモリを割り当てることができません。 |
解説
wStyle パラメーターが OF_READ フラグ (または OF_READ および OF_SHARE_* フラグのいずれか) で、ファイルが圧縮されている場合、LZOpenFile は LZInit 関数を呼び出し、圧縮解除操作に必要な初期化を実行します。
この関数が返すハンドルは、Lz32.dll の関数とのみ互換性があります。他のファイル操作には使用しないでください。
lpFileName で指定されたファイルを LZOpenFile で開くことができない場合、Windows の一部のバージョンでは、最後の文字がアンダースコア ("") に置き換えられる点を除き、ほぼ同じファイル名でファイルを開こうとします。したがって、"MyProgram.exe" を開こうとすると、LZOpenFile は "MyProgram.ex" を開こうとします。 インストール パッケージは、多くの場合、ファイル名拡張子の最後の文字にアンダースコアを置き換えて、ファイルが圧縮されていることを示します。 たとえば、"MyProgram.exe" 圧縮には "MyProgram.ex_" という名前を付ける場合があります。 開かれたファイルの名前 (存在する場合) を確認するには、lpReOpenBuf パラメーターの OFSTRUCT 構造体の szPathName メンバーを調べます。
Windows 8 と Windows Server 2012 では、この関数は、次のテクノロジによってサポートされています。
テクノロジ | サポートされています |
---|---|
サーバー メッセージ ブロック (SMB) 3.0 プロトコル | はい |
SMB 3.0 Transparent Failover (TFO) | はい |
スケールアウト ファイル共有 (SO) を使う SMB 3.0 | はい |
クラスターの共有ボリューム ファイル システム (CsvFS) | はい |
Resilient File System (ReFS) | はい |
CsvFs によって、圧縮されたファイルのリダイレクトされた IO が実行されます。
Note
lzexpand.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LZOpenFile を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | lzexpand.h (Windows.h を含む) |
Library | Lz32.lib |
[DLL] | Lz32.dll |