SccPopulateList 函数
此函数更新特定源代码管理命令的文件列表,并为所有给定文件提供源代码管理状态。
语法
SCCRTN SccPopulateList (
LPVOID pvContext,
enum SCCCOMMAND nCommand,
LONG nFiles,
LPCSTR* lpFileNames,
POPLISTFUNC pfnPopulate,
LPVOID pvCallerData,
LPLONG lpStatus,
LONG fOptions
);
参数
pvContext
[in]源代码管理插件上下文结构。
nCommand
[in]将应用于数组中lpFileNames
所有文件的源代码管理命令(请参阅命令代码,了解可能的命令列表)。
nFiles
[in]数组中的 lpFileNames
文件数。
lpFileNames
[in]IDE 已知的文件名数组。
pfnPopulate
[in]要调用以添加和删除文件的 IDE 回调函数(有关详细信息,请参阅 POPLISTFUNC )。
pvCallerData
[in]要传递给回调函数的值不变。
lpStatus
[in, out]源代码管理插件的数组,用于返回每个文件的状态标志。
fOptions
[in]命令标志(有关详细信息,请参阅特定命令使用的 Bitflags 的“PopulateList 标志”部分)。
返回值
此函数的源代码管理插件实现应返回以下值之一:
值 | 说明 |
---|---|
SCC_OK | 成功。 |
SCC_E_NONSPECIFICERROR | 非特定故障。 |
备注
此函数检查文件的当前状态列表。 当文件与 pfnPopulate
的条件不匹配 nCommand
时,它使用回调函数通知调用方。 例如,如果命令和SCC_COMMAND_CHECKIN
列表中的文件未检查出来,则回调用于通知调用方。 有时,源代码管理插件可能会找到可能属于命令的其他文件并添加它们。 例如,这允许 Visual Basic 用户检查其项目使用的 .bmp 文件,但不显示在 Visual Basic 项目文件中。 用户在 IDE 中选择 Get 命令。 IDE 将显示它认为用户可以获取的所有文件的列表,但在显示列表之前, SccPopulateList
将调用该函数以确保显示的列表是最新的。
示例
IDE 会生成一个认为用户可以获取的文件列表。 在显示此列表之前,它会调用 SccPopulateList
该函数,从而为源代码管理插件提供从列表中添加和删除文件的机会。 插件通过调用给定回调函数来修改列表(有关详细信息,请参阅 POPLISTFUNC )。
插件继续调用 pfnPopulate
函数,该函数将添加和删除文件,直到它完成,然后从 SccPopulateList
函数返回。 然后,IDE 可以显示其列表。 该 lpStatus
数组表示 IDE 传入的原始列表中的所有文件。 该插件除了使用回调函数外,还会填充所有这些文件的状态。
注意
源代码管理插件始终可以选择直接从此函数返回,使列表保持原样。 如果插件实现此函数,则可以通过在对 SccInitialize 的第一次调用中设置SCC_CAP_POPULATELIST
功能位标志来指示此功能。 默认情况下,插件应始终假定传入的所有项都是文件。 但是,如果 IDE 在参数中fOptions
设置SCC_PL_DIR
标志,则传入的所有项都将被视为目录。 插件应添加属于目录的所有文件。 IDE 永远不会传入文件和目录的混合体。