SetupGetFileCompressionInfoExA 関数 (setupapi.h)

[この機能は、[要件] セクションに示されているオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 SetupAPI は、アプリケーションのインストールに使用されなくなりました。 代わりに、Windows インストーラーを使用してアプリケーション インストーラーを開発します。 SetupAPI は、引き続きデバイス ドライバーのインストールに使用されます。

SetupGetFileCompressionInfoEx 関数は、圧縮される可能性のあるファイルを調べ、圧縮の種類、ファイルの完全なパス (ファイル名を含む)、圧縮されたサイズ、および圧縮されていないターゲット ファイルのサイズを取得します。 関数の呼び出し元は、検査するファイルの名前を渡し、返されたファイル名とパスを受け取るバッファーとバッファー サイズの場所へのポインターを渡します。

返されるパスとファイル名のバッファーのサイズを確認するには、ActualSourceFileNameBufferで Null を指定し、ActualSourceFileNameLen に 0 を含む SetupGetFileCompressionInfoEx を呼び出します。 関数は成功し、戻り値に RequiredBufferLen が入力されます。

構文

WINSETUPAPI BOOL SetupGetFileCompressionInfoExA(
  [in]      PCSTR  SourceFileName,
  [in, out] PSTR   ActualSourceFileNameBuffer,
  [in, out] DWORD  ActualSourceFileNameBufferLen,
  [out]     PDWORD RequiredBufferLen,
  [out]     PDWORD SourceFileSize,
  [out]     PDWORD TargetFileSize,
  [out]     PUINT  CompressionType
);

パラメーター

[in] SourceFileName

調査対象の圧縮される可能性のあるファイルのファイル名。 ファイルが名前付きとまったく同じソース メディアに見つからない場合、セットアップでは最大 2 つの代替名が検索されます。 例えば;セットアップで F:\x86\cmd.exe が見つからない場合は、F:\mpis\cmd.ex_ を検索し、その名前が見つからない場合は F:\x86\cmd.ex$ を検索します。

[in, out] ActualSourceFileNameBuffer

このパラメーターが NULL でない場合に、実際のファイル名とパスを受け取るバッファーへのポインター。 これは、関数が NO_ERRORを返す場合にのみ有効です。

[in, out] ActualSourceFileNameBufferLen

ActualSourceFileNameBuffer で指定されたバッファーのサイズ (文字数)。 通常は、MAX_PATHのバッファー サイズを使用します。 ActualSourceFileNameLen が小さすぎる場合、関数はERROR_INSUFFICIENT_BUFFERで失敗します。 ActualSourceFileNameBufferNULL の場合、ActualSourceFileNameLen には 0 を含む必要があります。

[out] RequiredBufferLen

このパラメーターが NULL でない場合は、ファイル名と終端の NULL を含む完全パスのサイズ。 ActualSourceFileNameBufferNULL、ActualSourceFileNameLen が 0 の場合、関数は成功しますが、RequiredBufferLen を入力します。 このパラメーターは、関数がNO_ERRORまたはERROR_INSUFFICIENT_BUFFERを返す場合にのみ有効です。

[out] SourceFileSize

この関数が現在の形式のファイルのサイズ ( ActualSourceFileNameBuffer によって指定されたファイルの現在のサイズ) を返す変数へのポインター。 サイズは、ソース ファイルを調べることによって決まります。INF ファイルから取得されません。 ソース ファイルのサイズは、関数がNO_ERRORまたはERROR_INSUFFICIENT_BUFFERを返す場合にのみ有効です。

[out] TargetFileSize

この関数が圧縮解除またはコピーされるときにファイルが占有するサイズを返す変数へのポインター。 ファイルが圧縮されていない場合、この値は SourceFileSize と同じになります。 サイズは、ファイルを調べることによって決まります。INF ファイルから取得されません。 ターゲット ファイル サイズは、関数がNO_ERRORまたはERROR_INSUFFICIENT_BUFFERを返す場合にのみ有効です。

[out] CompressionType

この関数が ActualSourceFileName で使用される圧縮の種類を示す値を返す変数へのポインター。 圧縮の種類は、関数がNO_ERRORまたはERROR_INSUFFICIENT_BUFFERを返す場合にのみ有効です。 このパラメーター値には、次のいずれかのフラグを指定できます。

FILE_COMPRESSION_NONE

ソース ファイルは、認識された圧縮アルゴリズムを使用して圧縮されません。

FILE_COMPRESSION_WINLZA

ソース ファイルは LZ 圧縮で圧縮されます。

FILE_COMPRESSION_MSZIP

ソース ファイルは MSZIP 圧縮で圧縮されます。

戻り値

関数が成功した場合、戻り値は TRUE (0 以外) になります。

関数が失敗した場合、戻り値は FALSE (ゼロ) になります。 関数は、次のいずれかの システム エラー コードを返すこともできます。

詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

SetupGetFileCompressionInfoEx は物理ファイルを調べることで圧縮を決定するため、セットアップ アプリケーションは SetupGetFileCompressionInfoEx を呼び出す前にファイルが存在することを確認する必要があります。

注意

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

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー setupapi.h
Library Setupapi.lib
[DLL] Setupapi.dll

関連項目

関数

概要

SetupDecompressOrCopyFile