Функция SccGetParentProjectPath
Эта функция определяет путь родительского проекта указанного проекта. Эта функция вызывается при добавлении проекта Visual Studio в систему управления версиями.
Синтаксис
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Параметры
pContext
[in] Указатель контекста подключаемого модуля управления версиями.
hWnd
[in] Дескриптор окна интегрированной среды разработки, который подключаемый модуль управления версиями может использовать в качестве родительского элемента для любых диалоговых окон, которые он предоставляет.
lpUser
[in, out] Имя пользователя (до SCC_USER_SIZE, включая терминатор NULL).
lpProjPath
[in] Строка, определяющая путь проекта (до SCC_PRJPATH_SIZE, включая терминатор NULL).
lpAuxProjPath
[in, out] Вспомогательная строка, определяющая проект (до SCC_PRJPATH_SIZE, включая терминатор NULL).
lpParentProjPath
[in, out] Строка вывода, определяющая путь родительского проекта (до SCC_PRJPATH_SIZE, включая терминатор NULL).
Возвращаемое значение
Реализация подключаемого модуля управления версиями этой функции должна возвращать одно из следующих значений:
значение | Описание |
---|---|
SCC_OK | Родительский путь проекта успешно получен. |
SCC_E_INITIALIZEFAILED | Не удалось инициализировать проект. |
SCC_E_INVALIDUSER | Пользователь не мог войти в подключаемый модуль управления версиями. |
SCC_E_UNKNOWNPROJECT | Проект неизвестен для подключаемого модуля управления версиями. |
SCC_E_INVALIDFILEPATH | Недопустимый или непригодный путь к файлу. |
SCC_E_NOTAUTHORIZED | Пользователю не разрешено выполнять эту операцию. |
SCC_E_ACCESSFAILURE | Возникла проблема с доступом к системе управления версиями, вероятно, из-за проблем с сетью или спором. Рекомендуется повторить попытку. |
SCC_E_PROJSYNTAXERR | Недопустимый синтаксис проекта. |
SCC_E_CONNECTIONFAILURE | Сохраните проблему подключения. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Неспецифический сбой. |
Замечания
Эта функция возвращает код успешного или неудачного выполнения, а при успешном выполнении заполняет переменную lpParentProjPath
полным путем проекта к указанному проекту.
Эта функция возвращает родительский путь проекта существующего проекта. Для корневого проекта функция возвращает путь проекта, переданный (то есть тот же корневой путь проекта). Обратите внимание, что путь к проекту — это строка, которая имеет смысл только для подключаемого модуля управления версиями.
Интегрированная среда разработки готова принять изменения и lpUser
lpAuxProjPath
параметры. Интегрированная среда разработки будет сохранять эти строки и передавать их в SccOpenProject , когда пользователь откроет этот проект в будущем. Таким образом, эти строки позволяют подключаемым модулем управления версиями отслеживать сведения, которые необходимо связать с проектом.
Эта функция похожа на SccGetProjPath, за исключением того, что пользователь не запрашивает выбор проекта. Он также никогда не создает новый проект, но работает только с существующим проектом.
При SccGetParentProjectPath
вызове lpProjPath
и lpAuxProjPath
не будет пустым и будет соответствовать допустимому проекту. Обычно эти строки получаются интегрированной интегрированной службой разработки из предыдущего SccGetProjPath
вызова функции.
Аргументом lpUser
является имя пользователя. Интегрированная среда разработки будет передавать то же имя пользователя, что ранее получено из SccGetProjPath
функции, а подключаемый модуль управления версиями должен использовать имя по умолчанию. Если у пользователя уже есть открытое подключение с подключаемым модулем, подключаемый модуль должен попытаться устранить любые запросы, чтобы убедиться, что функция работает автоматически. Однако если вход завершается ошибкой, подключаемый модуль должен запрашивать имя для входа и, когда он получает допустимое имя входа, передайте имя обратно.lpUser
Так как подключаемый модуль может изменить эту строку, интегрированная среда разработки всегда выделяет буфер размера (SCC_USER_LEN
+1). Если строка изменена, новая строка должна быть допустимым именем входа (по крайней мере так же, как старая строка).
Технические заметки для SccCreateSubProject и SccGetParentProjectPath
Добавление решений и проектов в систему управления версиями было упрощено в Visual Studio, чтобы свести к минимуму количество запросов пользователя на выбор расположений в системе управления версиями. Эти изменения активируются Visual Studio, если подключаемый модуль управления версиями поддерживает обе новые функции, SccCreateSubProject и функцию SccGetParentProjectPath
. Однако следующая запись реестра может использоваться для отключения этих изменений и возврата к предыдущему поведению Visual Studio (подключаемый модуль управления версиями 1.1).
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001
Если эта запись реестра не существует или имеет значение dword:000000000, Visual Studio пытается использовать новые функции SccCreateSubProject
и SccGetParentProjectPath
.
Если для записи реестра задано значение dword:00000001, Visual Studio не пытается использовать эти новые функции и операции добавления в систему управления версиями, как это было в предыдущих версиях Visual Studio.