Condividi tramite


QUERYCHANGESFUNC

Si tratta di una funzione di callback utilizzata dall'operazione SccQueryChanges per enumerare una raccolta di nomi di file e determinare lo stato di ogni file.

Alla SccQueryChanges funzione viene assegnato un elenco di file e un puntatore al QUERYCHANGESFUNC callback. Il plug-in del controllo del codice sorgente enumera l'elenco specificato e fornisce lo stato (tramite questo callback) per ogni file nell'elenco.

Firma

typedef BOOL (*QUERYCHANGESFUNC)(
   LPVOID pvCallerData,
   QUERYCHANGESDATA * pChangesData
);

Parametri

pvCallerData

[in] Parametro pvCallerData passato dal chiamante (l'IDE) a SccQueryChanges. Il plug-in del controllo del codice sorgente non deve fare ipotesi sul contenuto di questo valore.

pChangesData

[in] Puntatore a una struttura della struttura QUERYCHANGESDATA che descrive le modifiche apportate a un file.

Valore restituito

L'IDE restituisce un codice di errore appropriato:

Valore Descrizione
SCC_OK Continuare l'elaborazione.
SCC_I_OPERATIONCANCELED Consente di arrestare l'elaborazione.
SCC_E_xxx Eventuali errori SCC appropriati devono interrompere l'elaborazione.

Struttura QUERYCHANGESDATA

La struttura passata per ogni file è simile alla seguente:

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 Dimensioni di questa struttura (in byte).

lpFileName Nome file originale per questo elemento.

dwChangeType Codice che indica lo stato del file:

Codice Descrizione
SCC_CHANGE_UNKNOWN Non è possibile indicare cosa è cambiato.
SCC_CHANGE_UNCHANGED Nessuna modifica del nome per questo file.
SCC_CHANGE_DIFFERENT Il file con un'identità diversa, ma lo stesso nome esiste nel database.
SCC_CHANGE_NONEXISTENT Il file non esiste nel database o in locale.
SCC_CHANGE_DATABASE_DELETED File eliminato nel database.
SCC_CHANGE_LOCAL_DELETED File eliminato in locale, ma il file esiste ancora nel database. Se non è possibile determinare questo valore, restituire SCC_CHANGE_DATABASE_ADDED.
SCC_CHANGE_DATABASE_ADDED File aggiunto al database ma non esistente in locale.
SCC_CHANGE_LOCAL_ADDED Il file non esiste nel database ed è un nuovo file locale.
SCC_CHANGE_RENAMED_TO File rinominato o spostato nel database come lpLatestName.
SCC_CHANGE_RENAMED_FROM Il file rinominato o spostato nel database da lpLatestName; se è troppo costoso da tenere traccia, restituire un flag diverso, ad esempio SCC_CHANGE_DATABASE_ADDED.

lpLatestName Nome file corrente per questo elemento.

Vedi anche