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

另请参阅