Поделиться через


Функция SetupQueueCopyA (setupapi.h)

[Эта функция доступна для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. SetupAPI больше не следует использовать для установки приложений. Вместо этого используйте установщик Windows для разработки установщиков приложений. SetupAPI по-прежнему используется для установки драйверов устройств.]

Функция SetupQueueCopy добавляет одну операцию копирования файла в очередь файлов установки.

Синтаксис

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

Указатель на строку, завершающуюся значением NULL, которая указывает корень источника для этой копии, например A:.

[in] SourcePath

Указатель на строку, завершающуюся значением NULL, которая указывает путь относительно SourceRootPath , где можно найти файл. Этот параметр может иметь значение NULL.

[in] SourceFilename

Указатель на строку, завершающуюся значением NULL, которая указывает часть файла с именем копируемых файлов.

[in] SourceDescription

Указатель на строку, завершающуюся значением NULL, которая указывает описание исходного носителя, используемого во время запросов на диск. Этот параметр может принимать значение NULL.

[in] SourceTagfile

Указатель на строку с пустым завершением, указывающую файл тега, присутствие которого в SourceRootPath указывает на наличие исходного носителя. Этот параметр может иметь значение NULL. Если не указано, сам файл будет использоваться в качестве файла тегов, если это необходимо.

[in] TargetDirectory

Указатель на строку, завершающуюся значением NULL, которая указывает каталог, в который копируется файл.

[in] TargetFilename

Указатель на строку, завершающуюся значением NULL, которая указывает имя целевого файла. Этот параметр может иметь значение NULL. Если он не указан, целевой файл будет иметь то же имя, что и исходный файл.

[in] CopyStyle

Указывает поведение операции копирования файлов. Этот параметр может быть сочетанием следующих значений.

SP_COPY_DELETESOURCE

Удалите исходный файл после успешного копирования. Если удаление завершается сбоем, вызывающий объект не получается.

SP_COPY_REPLACEONLY

Скопируйте файл только в том случае, если это приведет к перезаписи файла по целевому пути. Вызывающий объект не получает уведомления.

SP_COPY_NEWER_OR SAME

Проверьте каждый копируемый файл, чтобы узнать, указывают ли его версии ресурсы на то, что они либо той же версии, либо не новее существующей копии на целевом объекте.

Сведения о версии файла, используемые при проверке версии, указываются в членах dwFileVersionMS и dwFileVersionLSструктуры VS_FIXEDFILEINFO , как указано в функциях версии. Если у одного из файлов нет ресурсов версии или они содержат идентичные сведения о версии, исходный файл считается более новым.

Если исходный файл не равен по версии или более поздней версии и указан параметр 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, если она указана, удаляется и заменяется именем исходного файла. При указании SP_COPY_NODECOMP невозможно проверить сведения о языке или версии.

SP_COPY_LANGUAGEAWARE

Проверьте каждый копируемый файл, чтобы узнать, отличается ли его язык от языка любого существующего файла, уже существующего в целевом объекте. Если это так, и указан параметр CopyMsgHandler , вызывающий объект получает уведомление и может отменить копирование. Если параметр CopyMsgHandler не указан, файл не копируется.

SP_COPY_SOURCE_ABSOLUTE

SourceFile — это полный путь к исходному коду. Не ищите его в разделе SourceDisksNames INF-файла.

SP_COPY_SOURCEPATH_ABSOLUTE

SourcePathRoot — это полный путь к исходному файлу. Игнорируйте относительный источник, указанный в разделе SourceDisksNames INF-файла для исходного носителя, на котором находится файл. Этот флаг игнорируется, если указан 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

Если пользователь пытается пропустить файл, предупредите его о том, что пропуск файла может повлиять на установку. (Используется для критически важных для системы файлов.)

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет ненулевым.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Если UNC-каталог указан в качестве целевого каталога для операции копирования файлов, необходимо убедиться, что он существует, прежде чем очередь будет зафиксирована. Функции установки не проверка существования и не создают каталоги UNC. Если целевой каталог UNC не существует, копирование файла завершится ошибкой.

Примечание

Заголовок setupapi.h определяет SetupQueueCopy в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header setupapi.h
Библиотека Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupQueueCopySection

SetupQueueDefaultCopy

SetupQueueDelete

SetupQueueRename