LZOpenFileA 関数 (lzexpand.h)
指定したファイルを作成、開く、再度開く、または削除します。
構文
INT LZOpenFileA(
[in] LPSTR 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 は失敗します。 |
|
排他モードでファイルを開き、ファイルへの読み取りアクセスと書き込みアクセスの両方の他のプロセスを拒否します。 現在のプロセスでも、ファイルが読み取りまたは書き込みアクセス用の他のモードで開かれている場合、LZOpenFile は失敗します。 |
|
書き込み専用でファイルを開きます。 |
戻り値
関数が成功し、 wStyle パラメーターで指定された値が OF_READされていない場合、戻り値はファイルを識別するハンドルです。 ファイルが圧縮され、 wStyle が OF_READ に設定されて開かれる場合、戻り値は特殊なファイル ハンドルになります。
関数が失敗した場合、戻り値は LZERROR_* コードです。 これらのコードの値は 0 未満です。 この関数の拡張エラー情報はありません。 GetLastError を呼び出さないでください。
リターン コード/値 | Description |
---|---|
|
ソース ファイルを識別するハンドルが無効です。 ファイルを読み取ることができません。 |
|
開いている圧縮ファイルの最大数を超えているか、ローカル メモリを割り当てることができません。 |
注釈
wStyle パラメーターが OF_READ フラグ (または OF_READ および OF_SHARE_* フラグのいずれか) で、ファイルが圧縮されている場合、LZOpenFile は LZInit 関数を呼び出し、展開操作に必要な初期化を実行します。
この関数が返すハンドルは、Lz32.dll の関数とのみ互換性があります。他のファイル操作には使用しないでください。
LZOpenFile が lpFileName で指定されたファイルを開けない場合、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 が実行されます。
注意
lzexpand.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LZOpenFile を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | lzexpand.h (Windows.h を含む) |
Library | Lz32.lib |
[DLL] | Lz32.dll |