SetupQueueCopyA 関数 (setupapi.h)

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

SetupQueueCopy 関数は、セットアップ ファイル キューに 1 つのファイル コピー操作を追加します。

構文

WINSETUPAPI BOOL SetupQueueCopyA(
  [in] HSPFILEQ QueueHandle,
  [in] PCSTR    SourceRootPath,
  [in] PCSTR    SourcePath,
  [in] PCSTR    SourceFilename,
  [in] PCSTR    SourceDescription,
  [in] PCSTR    SourceTagfile,
  [in] PCSTR    TargetDirectory,
  [in] PCSTR    TargetFilename,
  [in] DWORD    CopyStyle
);

パラメーター

[in] QueueHandle

SetupOpenFileQueue によって返されるセットアップ ファイル キューを処理します。

[in] SourceRootPath

このコピーのソースのルート (A: など) を指定する null で終わる文字列へのポインター。

[in] SourcePath

ファイルが見つかる SourceRootPath に対する相対パスを指定する null で終わる文字列へのポインター。 このパラメーターは NULL である可能性があります。

[in] SourceFilename

コピーするファイルのファイル名部分を指定する null で終わる文字列へのポインター。

[in] SourceDescription

ディスク プロンプト中に使用するソース メディアの説明を指定する 、null で終わる文字列へのポインター。 このパラメーターは、NULL でもかまいません。

[in] SourceTagfile

SourceRootPath でのプレゼンスがソース メディアの存在を示すタグ ファイルを指定する null で終わる文字列へのポインター。 このパラメーターは NULL である可能性があります。 指定しない場合、ファイル自体は、必要に応じてタグ ファイルとして使用されます。

[in] TargetDirectory

ファイルをコピーするディレクトリを指定する null で終わる文字列へのポインター。

[in] TargetFilename

ターゲット ファイルの名前を指定する null で終わる文字列へのポインター。 このパラメーターは NULL である可能性があります。 指定しない場合、ターゲット ファイルの名前はソース ファイルと同じになります。

[in] CopyStyle

ファイル コピー操作の動作を指定します。 このパラメーターは、次の値の組み合わせである場合があります。

SP_COPY_DELETESOURCE

コピーが正常に完了したら、ソース ファイルを削除します。 削除が失敗した場合、呼び出し元には通知されません。

SP_COPY_REPLACEONLY

コピー先のパスにあるファイルが上書きされる場合にのみ、ファイルをコピーします。 呼び出し元には通知されません。

SP_COPY_NEWER_OR SAME

コピーされる各ファイルを調べて、そのバージョン リソースが、ターゲット上の既存のコピーと同じバージョンか新しくないかのどちらかであることを示しているかどうかを確認します。

バージョン チェック時に使用されるファイル バージョン情報は、バージョン関数で入力されたVS_FIXEDFILEINFO構造体の dwFileVersionMS メンバーと dwFileVersionLS メンバーで指定されています。 いずれかのファイルにバージョン リソースがない場合、または同じバージョン情報がある場合、ソース ファイルは新しいと見なされます。

ソース ファイルがバージョン以降で等しくなく、 CopyMsgHandler が指定されている場合、呼び出し元に通知が送信され、コピーが取り消される可能性があります。 CopyMsgHandler が指定されていない場合、ファイルはコピーされません。

SP_COPY_NEWER_ONLY

コピーされる各ファイルを調べて、そのバージョン リソースがターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 ソース ファイルが新しいが、既存のターゲットとバージョンが等しくない場合は、ファイルがコピーされます。

SP_COPY_NOOVERWRITE

ターゲット ファイルが存在するかどうかを確認し、存在する場合は、コピーを拒否する可能性がある呼び出し元に通知します。 CopyMsgHandler が指定されていない場合、ファイルは上書きされません。

SP_COPY_NODECOMP

ファイルを展開しないでください。 このフラグが設定されている場合、ターゲット ファイルにはソース名の圧縮されていない形式が指定されません (該当する場合)。 たとえば、f:\x86\cmd.ex_ を \install\temp にコピーすると、ターゲット ファイルは \install\temp\cmd.ex_になります。 SP_COPY_NODECOMP フラグが指定されていない場合、ファイルは圧縮解除され、ターゲットは \install\temp\cmd.exe 呼び出されます。 DestinationName の filename 部分が指定されている場合、削除され、ソース ファイルのファイル名に置き換えられます。 SP_COPY_NODECOMPを指定すると、言語やバージョン情報を確認できません。

SP_COPY_LANGUAGEAWARE

コピーされる各ファイルを調べて、その言語がターゲットに既に存在する既存のファイルの言語と異なるかどうかを確認します。 その場合、 CopyMsgHandler を指定すると、呼び出し元に通知され、コピーを取り消すことができます。 CopyMsgHandler が指定されていない場合、ファイルはコピーされません。

SP_COPY_SOURCE_ABSOLUTE

SourceFile は完全なソース パスです。 INF ファイルの SourceDisksNames セクションで検索しないでください。

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot は、ソース ファイルの完全なパス部分です。 ファイルが配置されているソース メディアの INF ファイルの SourceDisksNames セクションで指定された相対ソースを無視します。 SP_COPY_SOURCE_ABSOLUTEが指定されている場合、このフラグは無視されます。

SP_COPY_FORCE_IN_USE

ターゲットが存在する場合は、使用中のように動作し、次のシステム再起動時にコピー用にファイルをキューに入れます。

SP_COPY_IN_USE_NEEDS_REBOOT

コピー操作中にファイルが使用されていた場合は、システムを再起動する必要があることをユーザーに警告します。

SP_COPY_NOSKIP

ファイルをスキップするオプションをユーザーに与えないでください。

SP_COPY_FORCE_NOOVERWRITE

ターゲット ファイルが存在するかどうかを確認します。存在する場合は、ファイルは上書きされません。 呼び出し元には通知されません。

SP_COPY_FORCE_NEWER

コピーされる各ファイルを調べて、そのバージョン リソース (またはイメージ以外のファイルのタイム スタンプ) が、ターゲット上の既存のコピーよりも新しくないことを示しているかどうかを確認します。 コピーするファイルが新しくない場合、ファイルはコピーされません。 呼び出し元には通知されません。

SP_COPY_WARNIFSKIP

ユーザーがファイルをスキップしようとすると、ファイルをスキップするとインストールに影響する可能性があることを警告します。 (システム クリティカルなファイルに使用されます)。

戻り値

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

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

UNC ディレクトリがファイル コピー操作のターゲット ディレクトリとして指定されている場合は、キューがコミットされる前に、UNC ディレクトリが存在することを確認する必要があります。 セットアップ関数は、 の存在をチェックせず、UNC ディレクトリを作成しません。 ターゲット UNC ディレクトリが存在しない場合、ファイルのコピーは失敗します。

注意

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

要件

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

関連項目

関数

概要

SetupQueueCopySection

SetupQueueDefaultCopy

SetupQueueDelete

SetupQueueRename