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 — текущее имя файла для этого элемента.

См. также