QUERYCHANGESFUNC
Это функция обратного вызова, используемая операцией SccQueryChanges для перечисления коллекции имен файлов и определения состояния каждого файла.
Функция SccQueryChanges
получает список файлов и указатель на обратный QUERYCHANGESFUNC
вызов. Подключаемый модуль управления версиями перечисляет указанный список и предоставляет состояние (через этот обратный вызов) для каждого файла в списке.
Подпись
typedef BOOL (*QUERYCHANGESFUNC)(
LPVOID pvCallerData,
QUERYCHANGESDATA * pChangesData
);
Параметры
pvCallerData
[in] Параметр pvCallerData
, переданный вызывающим элементом (интегрированной среды разработки) в SccQueryChanges. Подключаемый модуль управления версиями не должен делать предположений о содержимом этого значения.
pChangesData
[in] Указатель на структуру СТРУКТУРЫ QUERYCHANGESDATA, описывающую изменения в файле.
Возвращаемое значение
Интегрированная среда разработки возвращает соответствующий код ошибки:
значение | Описание |
---|---|
SCC_OK | Продолжайте обработку. |
SCC_I_OPERATIONCANCELED | Останавливает обработку. |
SCC_E_xxx | Любая соответствующая ошибка SCC должна прекратить обработку. |
Структура QUERYCHANGESDATA
Структура, переданная для каждого файла, выглядит следующим образом:
struct QUERYCHANGESDATA_A
{
DWORD dwSize;
LPCSTR lpFileName;
DWORD dwChangeType;
LPCSTR lpLatestName;
};
typedef struct QUERYCHANGESDATA_A QUERYCHANGESDATA;
struct QUERYCHANGESDATA_W
{
DWORD dwSize;
LPCWSTR lpFileName;
DWORD dwChangeType;
LPCWSTR lpLatestName;
};
DwSize Size этой структуры (в байтах).
lpFileName — исходное имя файла для этого элемента.
DwChangeType Code, указывающий состояние файла:
Код | Описание |
---|---|
SCC_CHANGE_UNKNOWN |
Не удается сказать, что изменилось. |
SCC_CHANGE_UNCHANGED |
Имя этого файла не изменяется. |
SCC_CHANGE_DIFFERENT |
Файл с другим удостоверением, но то же имя существует в базе данных. |
SCC_CHANGE_NONEXISTENT |
Файл не существует ни в базе данных, ни локально. |
SCC_CHANGE_DATABASE_DELETED |
Файл, удаленный в базе данных. |
SCC_CHANGE_LOCAL_DELETED |
Файл удален локально, но файл по-прежнему существует в базе данных. Если это невозможно определить, вернитесь SCC_CHANGE_DATABASE_ADDED . |
SCC_CHANGE_DATABASE_ADDED |
Файл, добавленный в базу данных, но не существует локально. |
SCC_CHANGE_LOCAL_ADDED |
Файл не существует в базе данных и является новым локальным файлом. |
SCC_CHANGE_RENAMED_TO |
Файл переименовывается или перемещается в базе данных как lpLatestName . |
SCC_CHANGE_RENAMED_FROM |
Файл переименовывается или перемещается из базы данных lpLatestName ; если это слишком дорого для отслеживания, возвращает другой флаг, например SCC_CHANGE_DATABASE_ADDED . |
lpLatestName — текущее имя файла для этого элемента.