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


Функция 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 полным путем проекта к указанному проекту.

Эта функция возвращает родительский путь проекта существующего проекта. Для корневого проекта функция возвращает путь проекта, переданный (то есть тот же корневой путь проекта). Обратите внимание, что путь к проекту — это строка, которая имеет смысл только для подключаемого модуля управления версиями.

Интегрированная среда разработки готова принять изменения и lpUserlpAuxProjPath параметры. Интегрированная среда разработки будет сохранять эти строки и передавать их в 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.

См. также