Поделиться через


Функция SccGetProjPath

Эта функция предлагает пользователю путь к проекту, который является строкой, которая имеет смысл только для подключаемого модуля управления версиями. Он вызывается, когда пользователь:

  • Создание нового проекта

  • Добавление существующего проекта в управление версиями

  • Попытка найти существующий проект управления версиями

Синтаксис

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

Параметры

pvContext

[in] Структура контекста подключаемого модуля управления версиями.

hWnd

[in] Дескриптор окна интегрированной среды разработки, который подключаемый модуль управления версиями может использовать в качестве родительского элемента для любых диалоговых окон, которые он предоставляет.

lpUser

[in, out] Имя пользователя (не должно превышать SCC_USER_SIZE, включая терминатор NULL)

lpProjName

[in, out] Имя проекта интегрированной среды разработки, рабочей области проекта или файла makefile (не должно превышать 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 The operation was canceled (Ошибка отправки запроса в Load Balancer: операция отменена).
SCC_E_ACCESSFAILURE Возникла проблема с доступом к системе управления версиями, вероятно, из-за проблем с сетью или спором.
SCC_E_CONNECTIONFAILURE Возникла проблема с попыткой подключиться к системе управления версиями.
SCC_E_NONSPECIFICERROR Произошла неизвестная ошибка.

Замечания

Эта функция предназначена для интегрированной среды разработки для получения параметров lpProjName и lpAuxProjPath. После того как подключаемый модуль управления версиями запрашивает пользователю эту информацию, он передает эти две строки обратно в интегрированную среду разработки. Интегрированная среда разработки сохраняет эти строки в файле решения и передает их в SccOpenProject всякий раз, когда пользователь открывает этот проект. Эти строки позволяют подключаемым модулем отслеживать сведения, связанные с проектом.

При первом вызове lpAuxProjPath функции устанавливается пустая строка. lProjName также может быть пустым или содержать имя проекта интегрированной среды разработки, которое подключаемый модуль управления версиями может использовать или игнорировать. Когда функция успешно возвращается, подключаемый модуль возвращает две соответствующие строки. Интегрированная среда разработки не делает предположений об этих строках, не будет использовать их и не позволит пользователю изменять их. Если пользователь хочет изменить параметры, интегрированная среда разработки снова вызовет SccGetProjPath , передавая те же значения, что и в предыдущий раз. Это обеспечивает полный контроль над этими двумя строками.

Для lpUserэтого интегрированная среда разработки может передать имя пользователя или просто передать указатель на пустую строку. Если есть имя пользователя, подключаемый модуль управления версиями должен использовать его в качестве значения по умолчанию. Однако если имя не было передано или если имя входа не выполнено с заданным именем, подключаемый модуль должен запрашивать имя для входа и передавать имя обратно при lpUser получении допустимого имени входа. Так как подключаемый модуль может изменить эту строку, интегрированная среда разработки всегда выделяет буфер размера (SCC_USER_LEN+1).

Примечание.

Первое действие, которое выполняет интегрированная среда разработки, может быть вызовом SccOpenProject функции или SccGetProjPath функции. Поэтому оба из них имеют одинаковый lpUser параметр, который позволяет подключаемым модулем управления версиями входить в систему пользователя в любое время. Даже если возврат из функции указывает на сбой, подключаемый модуль должен заполнить эту строку допустимым именем входа.

lpLocalPath — каталог, в котором пользователь хранит проект. Это может быть пустая строка. Если в настоящее время отсутствует каталог (как и в случае с пользователем, пытающимся скачать проект из системы управления версиями), и если bAllowChangePath таковой TRUE, подключаемый модуль управления версиями может запрашивать ввод или использовать другой метод для размещения собственной строки lpLocalPath. Если bAllowChangePath это FALSEтак, подключаемый модуль не должен изменять строку, так как пользователь уже работает в указанном каталоге.

Если пользователь создает новый проект для управления версиями, подключаемый модуль управления версиями может не создать его в системе управления версиями во время SccGetProjPath вызова. Вместо этого он передает строку вместе со значением pbNewненулевого значения, указывая, что проект будет создан в системе управления версиями.

Например, если пользователь в мастере создания проектов в Visual Studio добавляет свой проект в систему управления версиями, Visual Studio вызывает эту функцию, а подключаемый модуль определяет, правильно ли создать проект в системе управления версиями, чтобы содержать проект Visual Studio. Если пользователь нажимает кнопку "Отмена" перед завершением работы мастера, проект никогда не создается. Если пользователь нажимает кнопку "ОК", в Visual Studio вызывается SccOpenProject, передается SCC_OPT_CREATEIFNEWи создается управляемый источником проект в то время.

См. также