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結構的 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 的檔名部分會遭到移除,並以來源檔案的檔名取代。 指定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 |