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


Функция SccCreateSubProject

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

Синтаксис

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

Параметры

pContext

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

hWnd

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

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
Неспецифический сбой.

Замечания

Если подпроект с именем уже существует, функция может изменить имя по умолчанию, чтобы создать уникальное, например путем добавления "_<число>" в него. Вызывающий объект должен быть готов принять изменения lpUserв , lpSubProjPathи lpAuxProjPath. lpAuxProjPath Затем lpSubProjPath аргументы используются в вызове SccOpenProject. Они не должны изменяться вызывающей стороной по возвращении. Эти строки позволяют подключаемым модулем управления версиями отслеживать сведения, которые необходимо связать с проектом. Интегрированная среда разработки вызывающего средства не будет отображать эти два параметра при возврате, так как подключаемый модуль может использовать форматированную строку, которая может не подходить для просмотра. Функция возвращает код успешного выполнения или сбоя, а при успешном выполнении заполняет переменную lpSubProjPath полным путем проекта к новому проекту.

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

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

Технические заметки для 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.

См. также