QUERYCHANGESFUNC
Jest to funkcja wywołania zwrotnego używana przez operację SccQueryChanges do wyliczania kolekcji nazw plików i określania stanu każdego pliku.
Funkcja SccQueryChanges
otrzymuje listę plików i wskaźnik do wywołania zwrotnego QUERYCHANGESFUNC
. Wtyczka kontroli źródła wylicza daną listę i udostępnia stan (za pośrednictwem tego wywołania zwrotnego) dla każdego pliku na liście.
Podpis
typedef BOOL (*QUERYCHANGESFUNC)(
LPVOID pvCallerData,
QUERYCHANGESDATA * pChangesData
);
Parametry
pvCallerData
[in] Parametr pvCallerData
przekazany przez obiekt wywołujący (IDE) do biblioteki SccQueryChanges. Wtyczka kontroli źródła nie powinna zawierać żadnych założeń dotyczących zawartości tej wartości.
pChangesData
[in] Wskaźnik do struktury QUERYCHANGESDATA opisujący zmiany w pliku.
Wartość zwracana
Środowisko IDE zwraca odpowiedni kod błędu:
Wartość | Opis |
---|---|
SCC_OK | Kontynuuj przetwarzanie. |
SCC_I_OPERATIONCANCELED | Zatrzymaj przetwarzanie. |
SCC_E_xxx | Każdy odpowiedni błąd SCC powinien zatrzymać przetwarzanie. |
QUERYCHANGESDATA, struktura
Struktura przekazana dla każdego pliku wygląda następująco:
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 Rozmiar tej struktury (w bajtach).
lpFileName Oryginalna nazwa pliku dla tego elementu.
dwChangeType Kod wskazujący stan pliku:
Kod | opis |
---|---|
SCC_CHANGE_UNKNOWN |
Nie można stwierdzić, co się zmieniło. |
SCC_CHANGE_UNCHANGED |
Brak zmian nazw dla tego pliku. |
SCC_CHANGE_DIFFERENT |
Plik z inną tożsamością, ale ta sama nazwa istnieje w bazie danych. |
SCC_CHANGE_NONEXISTENT |
Plik nie istnieje w bazie danych lub lokalnie. |
SCC_CHANGE_DATABASE_DELETED |
Plik usunięty w bazie danych. |
SCC_CHANGE_LOCAL_DELETED |
Plik usunięty lokalnie, ale plik nadal istnieje w bazie danych. Jeśli nie można tego określić, zwróć wartość SCC_CHANGE_DATABASE_ADDED . |
SCC_CHANGE_DATABASE_ADDED |
Plik dodany do bazy danych, ale nie istnieje lokalnie. |
SCC_CHANGE_LOCAL_ADDED |
Plik nie istnieje w bazie danych i jest nowym plikiem lokalnym. |
SCC_CHANGE_RENAMED_TO |
Nazwa pliku została zmieniona lub przeniesiona w bazie danych jako lpLatestName . |
SCC_CHANGE_RENAMED_FROM |
Nazwa pliku zmieniona lub przeniesiona w bazie danych z lpLatestName . Jeśli jest to zbyt drogie do śledzenia, zwróć inną flagę, taką jak SCC_CHANGE_DATABASE_ADDED . |
lpLatestName bieżąca nazwa pliku dla tego elementu.