共用方式為


SetupQueueCopyA 函式 (setupapi.h)

[此函式可用於需求一節中所述的操作系統。 它在後續版本中可能會變更或無法使用。 安裝程式API不應再用於安裝應用程式。 請改用 Windows Installer 來開發應用程式安裝程式。 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

安裝程式 OpenFileQueue 傳回的安裝程序檔案佇列句柄。

[in] SourceRootPath

Null 終止字串的指標,指定此複本來源的根目錄,例如 A:。

[in] SourcePath

Null 終止字串的指標,指定可找到檔案之 SourceRootPath 的相對路徑。 此參數可以是 NULL

[in] SourceFilename

Null 終止字串的指標,指定要複製之檔案的檔名部分。

[in] SourceDescription

Null 終止字串的指標,指定要在磁碟提示期間使用之來源媒體的描述。 此參數可以是 Null

[in] SourceTagfile

Null 終止字串的指標,指定在SourceRootPath上存在表示來源媒體是否存在的標記檔案。 此參數可以是 NULL。 如果未指定,則會視需要將檔案本身當做標記檔案使用。

[in] TargetDirectory

Null 終止字串的指標,指定要複製檔案的目錄。

[in] TargetFilename

指定目標檔名之 Null 終止字串的指標。 此參數可以是 NULL。 如果未指定,目標檔案的名稱會與來源檔案相同。

[in] CopyStyle

指定檔案複製作業的行為。 這個參數可以是下列值的組合。

SP_COPY_DELETESOURCE

成功複製時刪除來源檔案。 如果刪除失敗,呼叫端不會收到通知。

SP_COPY_REPLACEONLY

只有在這樣做會覆寫目的地路徑上的檔案時,才複製檔案。 呼叫端未收到通知。

SP_COPY_NEWER_OR相同

檢查要複製的每個檔案,以查看其版本資源是否表示其版本是否與目標上現有的複本相同或更新。

版本檢查期間所使用的檔案版本資訊是在VS_FIXEDFILEINFO結構的 dwFileVersionMSdwFileVersionLS 成員中指定的,如版本函式所填入。 如果其中一個檔案沒有版本資源,或它們具有相同的版本資訊,則會將來源檔案視為較新。

如果原始程式檔在版本或更新版本中不相等,而且已指定 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 是原始程式檔的完整路徑部分。 忽略檔案所在來源媒體之 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

如果用戶嘗試略過檔案,請警告他們略過檔案可能會影響安裝。 (用於系統關鍵檔案。)

傳回值

如果函式成功,則傳回值是非零值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果 UNC 目錄指定為檔案複製作業的目標目錄,您必須先確定該目錄存在,才能認可佇列。 安裝程式函式不會檢查 是否存在,也不會建立 UNC 目錄。 如果目標 UNC 目錄不存在,檔案複製將會失敗。

注意

setupapi.h 標頭會將 SetupQueueCopy 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 setupapi.h
程式庫 Setupapi.lib
Dll Setupapi.dll

請參閱

函式

概觀

SetupQueueCopySection

SetupQueueDefaultCopy

SetupQueueDelete

SetupQueueRename