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


Функция 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 функции возвращается, подключаемый модуль присваивает значения lpnFileslplpFileNamesи выделяет память для массива имен файла по мере необходимости (обратите внимание, что это выделение заменяет указатель в lplpFileNames). Подключаемый модуль управления версиями отвечает за размещение всех файлов в каталог пользователя или в указанной папке обозначения. Затем интегрированная среда разработки добавляет файлы в проект интегрированной среды разработки.

Наконец, интегрированная среда разработки вызывает эту функцию во второй раз, передавая NULL его lpnFiles. Это интерпретируется как специальный сигнал подключаемого модуля управления версиями для освобождения памяти, выделенной для массива имен файлов в lplpFileNames``.

lplpFileNameschar ***— указатель. Подключаемый модуль управления версиями помещает указатель на массив указателей на имена файлов, таким образом передавая список стандартным способом для этого API.

Примечание.

Первоначальные версии API VSSCI не предоставляли способ указывать целевой проект для добавленных файлов. Чтобы обеспечить это, семантика lplpFIleNames параметра была улучшена, чтобы сделать его параметром in/out, а не выходным параметром. Если указан только один файл, то есть значение, указываемое на lpnFiles = 1, первый элемент lplpFileNames содержит целевую папку. Чтобы использовать эти новые семантики, интегрированная среда разработки вызывает SccSetOption функцию с заданным параметромnOptionSCC_OPT_SHARESUBPROJ. Если подключаемый модуль управления версиями не поддерживает семантику, возвращается SCC_E_OPTNOTSUPPORTED. Это отключает использование функции "Добавить" из функции управления версиями . Если подключаемый модуль поддерживает функцию "Добавление из системы управления версиями "SCC_CAP_ADDFROMSCC, она должна поддерживать новую семантику и возврат SCC_I_SHARESUBPROJOK.

См. также