次の方法で共有


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 つ以上を指定できます。

価値 意味
OF_CANCEL
0x0800
無視。 16 ビット Windows との互換性のためにのみ提供されます。 OF_PROMPT スタイルを使用して、[キャンセル] ボタンを含むダイアログ ボックスを表示します。
OF_CREATE
0x1000
LZOpenFile 新しいファイルを作成するように指示します。 ファイルが既に存在する場合は、長さが 0 に切り捨てられます。
OF_DELETE
0x0200
ファイルを削除します。
OF_EXIST
0x4000
ファイルを開き、ファイルを閉じて、ファイルの存在をテストします。
OF_PARSE
0x0100
OFSTRUCT 構造体に入力しますが、他のアクションは実行しません。
OF_PROMPT
0x2000
要求されたファイルが存在しない場合は、ダイアログ ボックスを表示します。 このダイアログ ボックスは、システムがファイルを見つけられないことをユーザーに通知し、再試行 と [キャンセル] ボタン 含まれています。 [キャンセル] ボタンをクリックすると、LZOpenFile が表示され、ファイルが見つかりませんというエラー メッセージが返されます。
OF_READ
0x0000
読み取り専用でファイルを開きます。
OF_READWRITE
0x0002
読み取りと書き込みのためにファイルを開きます。
OF_REOPEN
0x8000
再度開くバッファー内の情報を使用してファイルを開きます。
OF_SHARE_DENY_NONE
0x0040
ファイルに対する他のプロセスの読み取りまたは書き込みアクセスを拒否せずに、ファイルを開きます。 LZOpenFile は、ファイルが他のプロセスによって互換モードで開かれている場合に失敗します。
OF_SHARE_DENY_READ
0x0030
ファイルを開き、他のプロセスがファイルへの読み取りアクセスを拒否します。 LZOpenFile は、ファイルが互換モードで開かれているか、他のプロセスによって読み取りアクセスのために開かれている場合に失敗します。
OF_SHARE_DENY_WRITE
0x0020
ファイルを開き、他のプロセスによるファイルへの書き込みアクセスを拒否します。 LZOpenFile 、ファイルが互換モードで開かれているか、他のプロセスによって書き込みアクセス用に開かれている場合に失敗します。
OF_SHARE_EXCLUSIVE
0x0010
排他モードでファイルを開き、ファイルへの読み取りと書き込みの両方のアクセスを他のプロセスで拒否します。 LZOpenFile は、現在のプロセスによっても、ファイルが読み取りまたは書き込みアクセス用に他のモードで開かれている場合に失敗します。
OF_WRITE
0x0001
書き込み専用のファイルを開きます。

戻り値

関数が成功し、wStyle パラメーターで指定された値が OF_READされていない場合、戻り値はファイルを識別するハンドルです。 ファイルが圧縮され、wStyleOF_READに設定されて開かれている場合、戻り値は特殊なファイル ハンドルです。

関数が失敗した場合、戻り値は LZERROR_* コードです。 これらのコードの値は 0 未満です。 この関数の拡張エラー情報はありません。GetLastError呼び出さないでください。

注意LZOpenFile は、SetLastError も SetLastErrorExも呼び出しません。したがって、エラーはスレッドの最後のエラー コードには影響しません。
 
エラー発生時に LZOpenFile 返されるエラー コードの一覧を次に示します。
戻りコード/値 形容
LZERROR_BADINHANDLE
-1
ソース ファイルを識別するハンドルが無効です。 ファイルを読み取ることができません。
LZERROR_GLOBALLOC
-5
開いている圧縮ファイルの最大数を超えているか、ローカル メモリを割り当てることができません。

備考

wStyle パラメーターが OF_READ フラグ (または OF_READ およびいずれかの OF_SHARE_* フラグ) であり、ファイルが圧縮されている場合、LZOpenFile は、展開操作に必要な初期化を実行する LZInit 関数を呼び出します。

この関数が返すハンドルは、Lz32.dllの関数とのみ互換性があります。他のファイル操作には使用しないでください。

LZOpenFile lpFileNameで指定されたファイル 開くことができない場合、Windows の一部のバージョンでは、最後の文字がアンダースコア ("") に置き換えられる以外は、ほぼ同じファイル名のファイルを開こうとします。したがって、"MyProgram.exe" を開こうと 失敗した場合、LZOpenFile は "MyProgram.ex" を開こうとします。 インストール パッケージは、多くの場合、ファイル名拡張子の最後の文字にアンダースコアを置き換えて、ファイルが圧縮されていることを示します。 たとえば、"MyProgram.exe" compressed には "MyProgram.ex_" という名前が付けられます。 開かれたファイルの名前 (存在する場合) を調べるには、lpReOpenBuf パラメーターの OFSTRUCT 構造体の szPathName メンバーを調べます。

Windows 8 および Windows Server 2012 では、この関数は次のテクノロジでサポートされています。

テクノロジー サポート
サーバー メッセージ ブロック (SMB) 3.0 プロトコル はい
SMB 3.0 透過的フェールオーバー (TFO) はい
SMB 3.0 とスケールアウト ファイル共有 (SO) はい
クラスター共有ボリューム ファイル システム (CsvFS) はい
回復性のあるファイル システム (ReFS) はい
 

CsvFs は、圧縮ファイルに対してリダイレクトされた IO を実行します。

手記

lzexpand.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして LZOpenFile を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー lzexpand.h (Windows.h を含む)
ライブラリ Lz32.lib
DLL Lz32.dll

関連項目

ファイルの圧縮と展開の

ファイル管理機能の

LZClose

LZInit

LZRead

OFSTRUCT