> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IXtfDeployCallback 接口（接口内容）

> IXtfDeployCallback Interface

# IXtfDeployCallback Interface

提供一个回调，在 [IXtfApplicationClient::Deploy](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfApplicationClient/methods/deploy-ixtfapplicationclient-xtfapplication-xbox-microsoft-m) 操作期间发生可跟踪操作时调用。

## 语法

```cpp theme={null}
interface IXtfDeployCallback : public IUnknown  
```

## 方法

| 方法 | 描述 |
| - | - |
| [OnDeployChangeEvaluation](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploychangeevaluation-ixtfdeploycallback-xtfapplication-xb) | 在评估哪些文件需要传输或删除时调用的回调。 |
| [OnDeployError](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployerror-ixtfdeploycallback-xtfapplication-xbox-windows) | 保留供内部使用。 |
| [OnDeployExtraFileDetected](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafiledetected-ixtfdeploycallback-xtfapplication-x) | 检测到额外文件时调用的回调。 |
| [OnDeployExtraFileRemoved](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafileremoved-ixtfdeploycallback-xtfapplication-xb) | 用于报告主机上的额外文件已被移除的回调。 |
| [OnDeployFileProgress](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployfileprogress-ixtfdeploycallback-xtfapplication-xbox-w) | 用于报告将文件部署到主机的进度的回调 |
| [OnDeployInitialized](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployinitialized-ixtfdeploycallback-xtfapplication-xbox-wi) | 部署开始时调用的回调。 |
| [OnDeployMetrics](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploymetrics-ixtfdeploycallback-xtfapplication-xbox-window) | 报告部署指标时调用的回调。 |

## 备注

所有回调方法在返回值方面的工作方式都相同。如果回调返回成功的 HResult，则部署过程继续。如果回调返回任何失败的 HResult，则部署过程会立即取消。已传输或删除的文件保持原样，部分传输的文件将以其被截断的形式关闭。

回调过程很简单。开发 PC 上的每个部署文件都与目标主机上对应的文件进行比较。

* 如果 PC 和主机上的文件相同，则不执行任何操作。
* 如果 PC 上的文件比主机上的文件更新，则会将该文件从 PC 复制到主机。
* 如果文件存在于 PC 但不在主机上，则会将其复制到主机。
* 如果文件存在于主机但不在 PC 上，则可选择性地从主机中删除。（是否删除由 [Deploy](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfApplicationClient/methods/deploy-ixtfapplicationclient-xtfapplication-xbox-microsoft-m) 的 fRemoveExtraFiles 参数的值决定）。

回调方法在部署过程中的适当时间被调用。

1. [OnDeployInitialized](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployinitialized-ixtfdeploycallback-xtfapplication-xbox-wi)：此回调在部署系统已启动时调用，可用于开始为部署计时或初始化进度对话框。当调用此回调时，所有潜在的互操作和 DLL 边界跨越都已成功完成。此回调在每次部署中调用一次。
2. [OnDeployChangeEvaluation](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploychangeevaluation-ixtfdeploycallback-xtfapplication-xb)：此回调在部署系统评估哪些文件需要部署到主机或从主机删除时调用。你可以使用此回调更新进度指示器。
3. [OnDeployMetrics](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeploymetrics-ixtfdeploycallback-xtfapplication-xbox-window)：此回调在评估过程结束时调用一次，以报告将部署到主机的文件数和要传输的总字节数。
4. [OnDeployFileProgress](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployfileprogress-ixtfdeploycallback-xtfapplication-xbox-w)：此回调在每次成功传输一个缓冲区块时（按文件）调用。传输在多个线程上同时执行，因此你的代码必须确保按文件名跟踪进度，并防范常见的多线程问题。此回调在传输开始时调用一次，在传输结束时调用一次，因此长度为零的文件会导致此回调被调用两次。
5. [OnDeployExtraFileDetected](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafiledetected-ixtfdeploycallback-xtfapplication-x)：指示在主机上找到了 PC 上没有的文件。
6. [OnDeployExtraFileRemoved](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployextrafileremoved-ixtfdeploycallback-xtfapplication-xb)：如果 [Deploy](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfApplicationClient/methods/deploy-ixtfapplicationclient-xtfapplication-xbox-microsoft-m) 的 fRemoveExtraFiles 参数设置为 TRUE，则在从主机中删除文件时调用此回调。
7. [OnDeployError](/zh-CN/reference/tools/xtf/xtfapplication/classes/IXtfDeployCallback/methods/ondeployerror-ixtfdeploycallback-xtfapplication-xbox-windows) 不在当前实现中使用，但保留供未来使用。

如果你希望指示总体部署进度，你的代码应报告到目前为止在 OnDeployFileProgress 回调中命名的不同文件数，作为报告给 OnDeployMetrics 回调的文件总数的百分比。

## 要求

**头文件：** xtfapplication.h

**库：** xtfapplication.lib

**支持的平台：** Windows（用于 XBOX 主机工具）

## 另请参阅

##### 参考

[XtfApplication](/zh-CN/reference/tools/xtf/xtfapplication/xtfapplication-xbox-microsoft-n)


## Related topics

- [IXtfRemoteRunCallback 接口（接口内容）](/zh-CN/reference/tools/xtf/xtfremoterun/classes/IXtfRemoteRunCallback/interfaces/ixtfremoteruncallback.md)
- [IXtfConfigSettingsCallback（接口内容）](/zh-CN/reference/tools/xtf/xtfconsolecontrol/interfaces/IXtfConfigSettingsCallback/ixtfconfigsettingscallback.md)
- [IXtfRunningProcessCallback（接口内容）](/zh-CN/reference/tools/xtf/xtfconsolecontrol/interfaces/IXtfRunningProcessCallback/ixtfrunningprocesscallback.md)
- [IXtfRemoteRunClient 接口（接口内容）](/zh-CN/reference/tools/xtf/xtfremoterun/classes/IXtfRemoteRunClient/interfaces/ixtfremoterunclient.md)
- [IXtfConsoleControlClient（接口内容）](/zh-CN/reference/tools/xtf/xtfconsolecontrol/interfaces/IXtfConsoleControlClient/ixtfconsolecontrolclient.md)
