SccGetProjPath 函数

此功能提示项目路径的用户,是字符串仅对源代码管理插件。 ,当用户为时,将调用:

  • 创建新项目

  • 将现有项目添加到版本控制

  • 尝试查找现有版本控制的项

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

参数

  • pvContext
    [in] 源代码管理插件上下文结构。

  • hWnd
    [in] 的句柄到源代码管理插件能用作父级为所有对话框它提供的 IDE 窗口。

  • lpUser
    [in, out] 用户名 (不超过 SCC_USER_SIZE,包括 NULL 结束符)

  • lpProjName
    [in, out] IDE 项目、项目工作区或生成文件的名称 (不超过 SCC_PRJPATH_SIZE,包括 NULL 结束符)。

  • lpLocalPath
    [in, out] 项目工作路径。 如果 bAllowChangePath 是 TRUE,源代码管理插件可以修改此字符串 (不超过 _MAX_PATH,包括 null 结束符)。

  • lpAuxProjPath
    [in, out] 返回的项路径的缓冲区 (不超过 SCC_PRJPATH_SIZE,包括 NULL 结束符)。

  • bAllowChangePath
    [in] 如果这是 TRUE,源代码管理插件可以提示输入和修改 lpLocalPath 字符串。

  • pbNew
    [in, out] 产生的值指示是否创建新项目。 返回的值指示创建项目的成功:

    传入

    说明

    TRUE

    用户可以创建新项目。

    FALSE

    用户可能不创建新项目。

    发出

    说明

    TRUE

    新项目时创建的。

    FALSE

    现有项目的部分。

返回值

此函数的源代码管理插件实现应返回下列值之一:

说明

SCC_OK

项目成功创建了或检索到的。

SCC_I_OPERATIONCANCELED

操作已取消。

SCC_E_ACCESSFAILURE

具有访问源代码管理系统的问题,可能是由于网络问题或争用。

SCC_E_CONNECTIONFAILURE

尝试的问题连接到源代码管理系统。

SCC_E_NONSPECIFICERROR

发生了未指定的错误。

备注

此功能的目的是为了 IDE 中获取参数 lpProjName 和 lpAuxProjPath。 在源代码管理插件提示用户提供此信息之后,将这两个字符串返回 IDE。 IDE 在其解决方案文件保留这些字符串并将这些值传递给 SccOpenProject 函数 ,每当用户打开此项目。 这些字符串使该插件跟踪信息与项目。

当该函数首先调用时, lpAuxProjPath 设置为空字符串。 lProjName 还可以为 null,也可以包含 IDE 项目名称,源代码管理插件可以使用或忽略。 当函数成功返回时,该插件返回两个对应的字符串。 IDE 不会对这些字符串的假设,将不使用它们并不允许用户修改它们。 如果用户若要更改设置, IDE 再次调用它接收上时的 SccGetProjPath ,按相同的值。 这提供对这两个字符串的插件完全控制。

为 lpUser, IDE 在用户名可以通过,也可以在指针可以通过为空字符串。 如果具有用户名,源代码管理插件应将其用作默认值。 但是,因此,如果名称未通过,如果登录失败用给定的名称,该插件在 lpUser 应提示登录的用户和通过名称,在收到有效的登录时。 由于该插件能更改此字符串, IDE 将始终分配缓冲区大小 (SCC_USER_LEN+1)。

备注

IDE 执行的第一个操作可能是对 SccOpenProject 函数或 SccGetProjPath 功能。因此,它们都具有相同的 lpUser 参数,启用源代码管理插件来跟踪用户在任何时间。即使从函数中返回指示一个失败,该插件必须使用有效的登录名填充此字符串。

lpLocalPath 是用户保留项目的目录。 它可以是空字符串。 如果没有当前所定义的内容 (如在尝试的用户可从源代码管理系统中的项),并且,如果 bAllowChangePath 是 TRUE,源代码管理插件系统可能会提示用户输入或使用其他的方法中放置其自己的字符串。 lpLocalPath。 如果 bAllowChangePath 是 FALSE,该插件不应更改字符串,,因为用户在所指定的目录已经工作。

如果用户创建带来的新项目处于源代码管理下,源代码管理插件在源代码管理系统实际上可能不创建它,请在 SccGetProjPath 每次调用。 相反,它与 pbNew的非零值一起传递字符串,指示项目处于源代码管理系统中创建。

例如,因此,如果 新项目 向导的用户 Visual Studio 中添加自己的项到源代码管理, Visual Studio 会调用此功能,因此,该插件确定它是否可以创建新项目在源代码管理系统包含 Visual Studio 项目。 如果用户在完成向导之前单击 取消 ,项目不会创建。 如果用户单击 , Visual Studio 会调用 SccOpenProject,通过在 SCC_OPT_CREATEIFNEW,并且,源由控制项目此时将创建。

请参见

参考

SccOpenProject 函数

概念

源代码管理插件 API 函数