此函数具有给定名称创建一个子项目在 lpParentProjPath 参数指定的现有的父项下。
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
参数
pContext
[in] 源代码管理插件上下文指针。hWnd
[in] 的句柄到源代码管理插件能用作父级为所有对话框它提供的 IDE 窗口。lpUser
[in, out] 用户名 (到 SCC_USER_SIZE,包括 NULL 结束符)。lpParentProjPath
[in] 标识父项目的路径的字符串 (到 SCC_PRJPATH_SIZE,包括 NULL 结束符)。lpSubProjName
[in] 建议的子项目名称 (到 SCC_PRJPATH_SIZE,包括 NULL 结束符)。lpAuxProjPath
[in, out] 确定项目的系统开销字符串 (到 SCC_PRJPATH_SIZE,包括 NULL 结束符)。lpSubProjPath
[in, out] 标识子项目的输出字符串路径 (到 SCC_PRJPATH_SIZE,包括 NULL 结束符)。
返回值
此函数的源代码管理插件实现应返回下列值之一:
值 |
说明 |
---|---|
SCC_OK |
子项目成功创建了。 |
SCC_E_INITIALIZEFAILED |
父项目未能初始化。 |
SCC_E_INVALIDUSER |
用户无法登录到源代码管理系统。 |
SCC_E_COULDNOTCREATEPROJECT |
子项目无法创建。 |
SCC_E_PROJSYNTAXERR |
无效项语法。 |
SCC_E_UNKNOWNPROJECT |
父项未知到源代码管理插件。 |
SCC_E_INVALIDFILEPATH |
无效或不可用的文件路径。 |
SCC_E_NOTAUTHORIZED |
用户不允许执行此操作。 |
SCC_E_ACCESSFAILURE |
具有访问源代码管理系统的问题,可能是由于网络问题或争用。 建议使用重试。 |
SCC_E_CONNECTIONFAILURE |
具有源代码管理插件连接问题。 |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
未指定的错误。 |
备注
如果与该名称的一个子项目已经存在,则函数可以更改默认名称通过将 “_number”创建唯一一个位置,例如给它。 调用方必须准备接受对 lpUser、 lpSubProjPath和 lpAuxProjPath的更改。 lpSubProjPath 和lpAuxProjPath 参数然后使用对 SccOpenProject 函数的调用。 不应由调用方修改它们返回。 这些字符串进行源控制插件提供它需要与项目的跟踪信息。 调用方 IDE 不会显示这两个参数,返回,因为该插件可以使用可能不适用于查看的已格式化的字符串。 函数返回成功或失败代码和,如果成功,则,无需完全的项目路径加载变量的 lpSubProjPath 到新项目。
此功能类似于 SccGetProjPath 函数,除此之外,在不提示的情况下创建项目而不是提示用户选择某。 当 SccCreateSubProject 函数时, lpParentProjName 和 lpAuxProjPath 不为 null,而且对应于一个有效的项目。 这些字符串由以前的 IDE 通常接收对 SccGetProjPath 函数或 SccGetParentProjectPath 函数。
lpUser 参数是用户名。 IDE 在从 SccGetProjPath之前接收相同的用户名将通过,并且,源代码管理插件应使用名称为默认值。 如果用户已经具有插件中打开连接,则该插件应尝试消除任何提示无提示地定位功能工作。 但是,因此,如果登录失败,该插件在 lpUser应提示登录的用户,,在收到有效的登录时,通过该名称。 由于该插件能更改此字符串, IDE 将始终分配大小缓冲区 (SCC_USER_LEN+1 或 SCC_USER_SIZE,包括 null 结束符的空格)。 如果更改字符串,新字符串必须是有效的登录名 (至少与活动与旧字符串)。
SccCreateSubProject 和 SccGetParentProjectPath 的技术说明
将解决方案和项目添加到源控件在 Visual Studio 简化最小化提示选择源代码管理系统中的位置用户的次数。 ,如果源代码管理插件支持两个新功能、 SccCreateSubProject 和 SccGetParentProjectPath, Visual Studio 激活这些更改。 但是,以下注册表项来禁用这些更改并还原到以前的 Visual Studio (源代码管理插件 API 版本 1.1) 行为:
[HKEY_CURRENT_USER \Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl " =dword: 00000001
如果此注册表项不存在或未设置为大小: 00000000,则 Visual Studio 尝试使用新功能、 SccCreateSubProject 和 SccGetParentProjectPath。
如果注册表项设置为大小: 00000001,则 Visual Studio 不尝试使用这些新功能并添加的操作到源控件,它们在 Visual Studio 的早期版本中执行。