此函数将新文件添加到源代码管理系统。
语法
SCCRTN SccAdd(
LPVOID pvContext,
HWND hWnd,
LONG nFiles,
LPCSTR* lpFileNames,
LPCSTR lpComment,
LONG* pfOptions,
LPCMDOPTS pvOptions
);
参数
pvContext
[in]源代码管理插件上下文结构。
hWnd
[in]源代码管理插件可以作为其提供的任何对话框的父级的 IDE 窗口的句柄。
nFiles
[in]所选文件数,如数组中 lpFileNames 给定的那样添加到当前项目。
lpFileNames
[in]要添加的文件的完全限定本地名称数组。
lpComment
[in]要应用于要添加的所有文件的注释。
pfOptions
[in]每个文件提供的命令标志数组。
pvOptions
[in]特定于源代码管理插件的选项。
返回值
此函数的源代码管理插件实现应返回以下值之一:
| 值 | 说明 |
|---|---|
| SCC_OK | 添加操作成功。 |
| SCC_E_FILEALREADYEXISTS | 所选文件已在源代码管理下。 |
| SCC_E_TYPENOTSUPPORTED | 源代码管理系统不支持文件类型(例如二进制文件)。 |
| SCC_E_OPNOTSUPPORTED | 源代码管理系统不支持此操作。 |
| SCC_E_ACCESSFAILURE | 访问源代码管理系统时出现问题,可能是因为网络或争用问题。 建议重试。 |
| SCC_E_NOTAUTHORIZED | 不允许用户执行此操作。 |
| SCC_E_NONSPECIFICERROR | 非特定故障;添加未执行。 |
| SCC_I_OPERATIONCANCELED | 操作在完成之前已取消。 |
| SCC_I_RELOADFILE | 需要重新加载文件或项目。 |
| SCC_E_FILENOTEXIST | 找不到本地文件。 |
注解
此处通常 fOptions 由数组替换, pfOptions每个文件有一个 LONG 选项规范。 这是因为文件类型可能因文件而异。
注意
为同一文件指定和SCC_FILETYPE_TEXTSCC_FILETYPE_BINARY选项无效,但指定两者都无效。 设置两者都不与设置 SCC_FILETYPE_AUTO相同,在这种情况下,源代码管理插件会自动检测文件类型。
下面是数组中使用的 pfOptions 标志列表:
| 选项 | 值 | 含义 |
|---|---|---|
| SCC_FILETYPE_AUTO | 0x00 | 源代码管理插件应检测文件类型。 |
| SCC_FILETYPE_TEXT | 0x01 | 指示 ASCII 文本文件。 |
| SCC_FILETYPE_BINARY | 0x02 | 指示 ASCII 文本以外的文件类型。 |
| SCC_ADD_STORELATEST | 0x04 | 仅存储文件的最新副本,不存储增量。 |
| SCC_FILETYPE_TEXT_ANSI | 0x08 | 将文件视为 ANSI 文本。 |
| SCC_FILETYPE_UTF8 | 0x10 | 将文件视为 UTF8 格式的 Unicode 文本。 |
| SCC_FILETYPE_UTF16LE | 0x20 | 将文件视为 UTF16 Little Endian 格式的 Unicode 文本。 |
| SCC_FILETYPE_UTF16BE | 0x40 | 将文件视为 UTF16 Big Endian 格式的 Unicode 文本。 |