英語で読む

次の方法で共有


SetupGetFileCompressionInfoW 関数 (setupapi.h)

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

SetupGetFileCompressionInfo 関数は、物理ファイルが圧縮されているかどうかを調べて、圧縮されていないターゲット ファイルの完全なパス、サイズ、およびサイズを取得します。

この関数は廃止され、SetupGetFileCompressionInfoExに置き換えられました。 SetupGetFileCompressionInfo使用しないでください。代わりに、常に SetupGetFileCompressionInfoEx使用してください。

構文

WINSETUPAPI DWORD SetupGetFileCompressionInfoW(
  [in]      PCWSTR SourceFileName,
  [in, out] PWSTR  *ActualSourceFileName,
  [in, out] PDWORD SourceFileSize,
  [in, out] PDWORD TargetFileSize,
  [in, out] PUINT  CompressionType
);

パラメーター

[in] SourceFileName

情報が必要なファイルのファイル名。 ファイルが名前付きとまったく同じソース メディアに見つからない場合、ファイルは最大 2 つの代替の "圧縮形式" 名で検索されます。 たとえば、ファイルが F:\x86\cmd.exe されていて見つからない場合、F:\mpis\cmd.ex_ が検索され、見つからない場合は F:\x86\cmd.ex$ の検索が行われます。 null で終わる文字列を使用する必要があります。

[in, out] ActualSourceFileName

見つけることができたファイルの完全なパスを受け取る変数へのポインター。 呼び出し元は、LocalFreeへの呼び出し ポインターを解放できます。 パスは、関数がNO_ERRORを返す場合にのみ有効です。 SetupAPI.dll のバージョンが 5.0.2195 未満の場合、呼び出し元は、エクスポートされた関数 MyFree を SetupAPI から使用して、この関数によって割り当てられたメモリを解放する必要があることに注意してください。その後、LocalFree使用します。 「解説」セクションを参照してください。

[in, out] SourceFileSize

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

[in, out] TargetFileSize

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

[in, out] CompressionType

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

FILE_COMPRESSION_NONE

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

FILE_COMPRESSION_WINLZA

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

FILE_COMPRESSION_MSZIP

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

戻り値

この関数は、ファイル検索の結果を示す システム エラー コード を返します。 エラー コードには、次のいずれかの値を指定できます。

拡張エラー情報を取得するには、GetLastError呼び出します。

備考

SetupGetFileCompressionInfo使用しないでください。代わりに、常に SetupGetFileCompressionInfoEx使用してください。

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

SetupAPI.dll のバージョンが 5.0.2195 未満の場合、呼び出し元は、エクスポートされた関数 MyFree を SetupAPI から使用して、この関数によって割り当てられたメモリを解放する必要があることに注意してください。その後、LocalFree使用します。 LocalFree の呼び出しによってアクセス違反が発生した場合は、MyFreeを使用して問題を解決する必要があります。

SetupAPI.dllから MyFree 関数を取得する方法の例を次に示します。

typedef VOID (WINAPI* MYFREEFUNC)(LPVOID lpBuff);
   MYFREEFUNC MyFree;

   HMODULE hDll=NULL;
   hDll = GetModuleHandle("SETUPAPI.DLL");
   MyFree = (MYFREEFUNC)GetProcAddress(hDll, "MyFree");
   ...
   other code here to prepare file queue
   ...
   PTSTR lpActualSourceFileName;
   SetupGetFileCompressionInfo(...,&lpActualSourceFileName,...,...,...);
   ...
   MyFree(lpActualSourceFileName); 

注意

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

必要条件

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

関連項目

Functions

の概要

SetupDecompressOrCopyFile の