Funzione SccAddFromScc

Questa funzione consente all'utente di cercare i file già presenti nel sistema di controllo del codice sorgente e successivamente di rendere tali file parte del progetto corrente. Ad esempio, questa funzione può ottenere un file di intestazione comune nel progetto corrente senza copiare il file. La matrice restituita di file, lplpFileNames, contiene l'elenco di file che l'utente vuole aggiungere al progetto IDE.

Sintassi

SCCRTN SccAddFromScc (
   LPVOID   pvContext,
   HWND     hWnd,
   LPLONG   lpnFiles,
   LPCSTR** lplpFileNames
);

Parametri

pvContext

[in] Struttura del contesto del plug-in del controllo del codice sorgente.

hWnd

[in] Handle per la finestra dell'IDE che il plug-in del controllo del codice sorgente può usare come elemento padre per qualsiasi finestra di dialogo fornita.

lpnFiles

[in, out] Buffer per il numero di file in cui vengono aggiunti. Questo è NULL se la memoria a cui lplpFileNames punta deve essere rilasciata. Per informazioni dettagliate, vedere la sezione Note.

lplpFileNames

[in, out] Matrice di puntatori a tutti i nomi di file senza percorsi di directory. Questa matrice viene allocata e liberata dal plug-in del controllo del codice sorgente. Se lpnFiles = 1 e lplpFileNames non NULLè , il nome nella matrice a lplpFileNames cui punta contiene la cartella di destinazione.

Valore restituito

L'implementazione del plug-in del controllo del codice sorgente di questa funzione dovrebbe restituire uno dei valori seguenti:

Valore Descrizione
SCC_OK I file sono stati individuati correttamente e aggiunti al progetto.
SCC_I_OPERATIONCANCELED Operazione annullata senza alcun effetto.
SCC_I_RELOADFILE È necessario ricaricare un file o un progetto.

Osservazioni:

L'IDE chiama questa funzione. Se il plug-in del controllo del codice sorgente supporta la specifica di una cartella di destinazione locale, l'IDE passa lpnFiles = 1 e passa il nome della cartella locale in lplpFileNames.

Quando la chiamata alla SccAddFromScc funzione viene restituita, il plug-in ha assegnato valori a lpnFiles e lplpFileNames, allocando la memoria per la matrice di nomi file in base alle esigenze (si noti che questa allocazione sostituisce il puntatore in lplpFileNames). Il plug-in del controllo del codice sorgente è responsabile dell'inserimento di tutti i file nella directory dell'utente o nella cartella di designazione specificata. L'IDE aggiunge quindi i file al progetto IDE.

Infine, l'IDE chiama questa funzione una seconda volta, passando NULL per lpnFiles. Questo viene interpretato come un segnale speciale dal plug-in del controllo del codice sorgente per rilasciare la memoria allocata per la matrice di nomi file in lplpFileNames``.

lplpFileNames è un char *** puntatore. Il plug-in del controllo del codice sorgente inserisce un puntatore a una matrice di puntatori ai nomi di file, passando così l'elenco nel modo standard per questa API.

Nota

Le versioni iniziali dell'API VSSCI non hanno fornito un modo per indicare il progetto di destinazione per i file aggiunti. A tale scopo, la semantica del lplpFIleNames parametro è stata migliorata per renderla un parametro in/out anziché un parametro di output. Se viene specificato solo un singolo file, ovvero il valore a lpnFiles cui punta = 1, il primo elemento di contiene la cartella di lplpFileNames destinazione. Per usare queste nuove semantiche, l'IDE chiama la SccSetOption funzione con il nOptionparametro impostato su SCC_OPT_SHARESUBPROJ. Se un plug-in del controllo del codice sorgente non supporta la semantica, restituisce SCC_E_OPTNOTSUPPORTED. In questo modo viene disabilitato l'uso della funzionalità Aggiungi dal controllo del codice sorgente. Se un plug-in supporta la funzionalità Aggiungi dal controllo del codice sorgente (SCC_CAP_ADDFROMSCC), deve supportare la nuova semantica e restituire SCC_I_SHARESUBPROJOK.

Vedi anche