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


Функция 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-terminated, которая указывает корень источника для этой копии, например A:.

[in] SourcePath

Указатель на строку null-terminated, указывающую путь относительно SourceRootPath, где можно найти файл. Этот параметр может быть null.

[in] SourceFilename

Указатель на строку null-terminated, указывающую часть имени файла, которую необходимо скопировать.

[in] SourceDescription

Указатель на строку null-terminated, которая указывает описание исходного носителя, используемого во время запросов на диск. Этот параметр может быть NULL.

[in] SourceTagfile

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

[in] TargetDirectory

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

[in] TargetFilename

Указатель на строку null-terminated, указывающую имя целевого файла. Этот параметр может быть 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 — это полный путь к источнику. Не ищите его в разделе INF-файла SourceDisksNames.

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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка setupapi.h
библиотеки Setupapi.lib
DLL Setupapi.dll

См. также

Функции

Обзор

SetupQueueCopySection

SetupQueueDefaultCopy

SetupQueueDelete

SetupQueueRename