SccAddFromScc 函数
此函数允许用户浏览源代码管理系统中已有的文件,然后使这些文件成为当前项目的一部分。 例如,此函数可以在不复制该文件的情况下将通用头文件获取到当前项目中。 文件的返回数组 lplpFileNames
包含用户要添加到 IDE 项目的文件列表。
语法
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
参数
pvContext
[in]源代码管理插件上下文结构。
hWnd
[in]源代码管理插件可以作为其提供的任何对话框的父级的 IDE 窗口的句柄。
lpnFiles
[in, out]要在其中添加的文件数的缓冲区。 (如果 NULL
释放指向 lplpFileNames
的内存。有关详细信息,请参阅“备注”。
lpLpFileNames
[in, out]指向没有目录路径的所有文件名的指针数组。 此数组由源代码管理插件分配和释放。 如果 lpnFiles
= 1 且 lplpFileNames
不是 NULL
,则指向的 lplpFileNames
数组中的第一个名称包含目标文件夹。
返回值
此函数的源代码管理插件实现应返回以下值之一:
值 | 说明 |
---|---|
SCC_OK | 文件已成功定位并添加到项目中。 |
SCC_I_OPERATIONCANCELED | 操作已取消,不起作用。 |
SCC_I_RELOADFILE | 需要重新加载文件或项目。 |
注解
IDE 调用此函数。 如果源代码管理插件支持指定本地目标文件夹,IDE 将传递 lpnFiles
= 1,并将本地文件夹名称传递到 lplpFileNames
。
对函数的调用SccAddFromScc
返回时,插件已向其分配值lpnFiles
,并lplpFileNames
根据需要分配文件名数组的内存(请注意,此分配替换了指针)。lplpFileNames
源代码管理插件负责将所有文件放入用户的目录中或指定指定文件夹中。 然后,IDE 会将文件添加到 IDE 项目。
最后,IDE 第二次调用此函数,传入NULL
此函数。lpnFiles
这被源代码管理插件解释为特殊信号,用于释放为文件名数组分配的内存 lplpFileNames``.
lplpFileNames
是指针 char ***
。 源代码管理插件将指针置于指向文件名的指针数组,从而以标准方式传递此 API 的列表。
注意
VSSCI API 的初始版本没有提供指示已添加文件的目标项目的方法。 为了适应这一点,已增强参数的 lplpFIleNames
语义,使其成为传入/输出参数,而不是输出参数。 如果仅指定了单个文件,即由 lpnFiles
= 1 指向的值,则包含目标文件夹的第一个元素 lplpFileNames
。 若要使用这些新语义,IDE 将调用 SccSetOption
参数 nOption
设置为的 SCC_OPT_SHARESUBPROJ
函数。 如果源代码管理插件不支持语义,则返回 SCC_E_OPTNOTSUPPORTED
。 这样做会禁用使用 “从源代码管理 添加”功能。 如果插件支持 “从源代码管理 添加”功能(SCC_CAP_ADDFROMSCC
),则必须支持新的语义并返回 SCC_I_SHARESUBPROJOK
。