Функция SccAddFromScc
Эта функция позволяет пользователю просматривать файлы, которые уже находятся в системе управления версиями, а затем сделать эти файлы частью текущего проекта. Например, эта функция может получить общий файл заголовка в текущий проект без копирования файла. Возвращаемый массив файлов содержит список файлов, lplpFileNames
которые пользователь хочет добавить в проект интегрированной среды разработки.
Синтаксис
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
Параметры
pvContext
[in] Структура контекста подключаемого модуля управления версиями.
hWnd
[in] Дескриптор окна интегрированной среды разработки, который подключаемый модуль управления версиями может использовать в качестве родительского элемента для любых диалоговых окон, которые он предоставляет.
lpnFiles
[in, out] Буфер для количества добавляемых файлов. (Это если NULL
память, на которую указывает lplpFileNames
, должна быть выпущена. Дополнительные сведения см. в примечаниях.)
lplpFileNames
[in, out] Массив указателей на все имена файлов без путей к каталогу. Этот массив выделяется и освобождается подключаемым модулем управления версиями. Если lpnFiles
= 1 и lplpFileNames
не NULL
является, имя в массиве, на которое указывает lplpFileNames
целевая папка.
Возвращаемое значение
Реализация подключаемого модуля управления версиями этой функции должна возвращать одно из следующих значений:
значение | Описание |
---|---|
SCC_OK | Файлы были успешно размещены и добавлены в проект. |
SCC_I_OPERATIONCANCELED | Операция была отменена без эффекта. |
SCC_I_RELOADFILE | Файл или проект необходимо перезагрузить. |
Замечания
Интегрированная среда разработки вызывает эту функцию. Если подключаемый модуль управления версиями поддерживает указание локальной папки назначения, интегрированная среда разработки передает lpnFiles
= 1 и передает имя lplpFileNames
локальной папки в .
Когда вызов SccAddFromScc
функции возвращается, подключаемый модуль присваивает значения lpnFiles
lplpFileNames
и выделяет память для массива имен файла по мере необходимости (обратите внимание, что это выделение заменяет указатель в lplpFileNames
). Подключаемый модуль управления версиями отвечает за размещение всех файлов в каталог пользователя или в указанной папке обозначения. Затем интегрированная среда разработки добавляет файлы в проект интегрированной среды разработки.
Наконец, интегрированная среда разработки вызывает эту функцию во второй раз, передавая NULL
его lpnFiles
. Это интерпретируется как специальный сигнал подключаемого модуля управления версиями для освобождения памяти, выделенной для массива имен файлов в lplpFileNames``.
lplpFileNames
char ***
— указатель. Подключаемый модуль управления версиями помещает указатель на массив указателей на имена файлов, таким образом передавая список стандартным способом для этого API.
Примечание.
Первоначальные версии API VSSCI не предоставляли способ указывать целевой проект для добавленных файлов. Чтобы обеспечить это, семантика lplpFIleNames
параметра была улучшена, чтобы сделать его параметром in/out, а не выходным параметром. Если указан только один файл, то есть значение, указываемое на lpnFiles
= 1, первый элемент lplpFileNames
содержит целевую папку. Чтобы использовать эти новые семантики, интегрированная среда разработки вызывает SccSetOption
функцию с заданным параметром nOption
SCC_OPT_SHARESUBPROJ
. Если подключаемый модуль управления версиями не поддерживает семантику, возвращается SCC_E_OPTNOTSUPPORTED
. Это отключает использование функции "Добавить" из функции управления версиями . Если подключаемый модуль поддерживает функцию "Добавление из системы управления версиями "SCC_CAP_ADDFROMSCC
, она должна поддерживать новую семантику и возврат SCC_I_SHARESUBPROJOK
.