Funzione SccGetProjPath

Questa funzione richiede all'utente un percorso di progetto, ovvero una stringa significativa solo per il plug-in del controllo del codice sorgente. Viene chiamato quando l'utente è:

  • Creazione di un nuovo progetto

  • Aggiunta di un progetto esistente al controllo della versione

  • Tentativo di trovare un progetto di controllo della versione esistente

Sintassi

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

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.

lpUser

[in, out] Nome utente (da non superare SCC_Uedizione StandardR_SIZE, incluso il carattere di terminazione NULL)

lpProjName

[in, out] Nome del progetto IDE, dell'area di lavoro del progetto o del makefile (da non superare SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).

lpLocalPath

[in, out] Percorso di lavoro del progetto. Se bAllowChangePath è TRUE, il plug-in del controllo del codice sorgente può modificare questa stringa (non superare _MAX_PATH, incluso il terminatore Null).

lpAuxProjPath

[in, out] Buffer per il percorso del progetto restituito (da non superare SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).

bAllowChangePath

[in] Se si tratta di TRUE, il plug-in del controllo del codice sorgente può richiedere e modificare la lpLocalPath stringa.

pbNew

[in, out] Il valore in arrivo indica se creare un nuovo progetto. Il valore restituito indica l'esito positivo della creazione di un progetto:

In ingresso Interpretazione
TRUE L'utente può creare un nuovo progetto.
FALSE L'utente potrebbe non creare un nuovo progetto.
In uscita Interpretazione
TRUE È stato creato un nuovo progetto.
FALSE È stato selezionato un progetto esistente.

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 Il progetto è stato creato o recuperato correttamente.
SCC_I_OPERATIONCANCELED L'operazione è stata annullata.
SCC_E_ACCESSFAILURE Si è verificato un problema durante l'accesso al sistema di controllo del codice sorgente, probabilmente a causa di problemi di rete o contesa.
SCC_E_CONNECTIONFAILURE Si è verificato un problema durante il tentativo di connessione al sistema di controllo del codice sorgente.
SCC_E_NONSPECIFICERROR Si è verificato un errore non specificato.

Osservazioni:

Lo scopo di questa funzione è che l'IDE acquisisca i lpProjName parametri e lpAuxProjPath. Dopo che il plug-in del controllo del codice sorgente richiede all'utente queste informazioni, le due stringhe vengono passate all'IDE. L'IDE mantiene queste stringhe nel file della soluzione e le passa a SccOpenProject ogni volta che l'utente apre questo progetto. Queste stringhe consentono al plug-in di tenere traccia delle informazioni associate a un progetto.

Quando la funzione viene chiamata per la prima volta, lpAuxProjPath viene impostata su una stringa vuota. lProjName può anche essere vuoto o può contenere il nome del progetto IDE, che il plug-in del controllo del codice sorgente può usare o ignorare. Quando la funzione viene restituita correttamente, il plug-in restituisce le due stringhe corrispondenti. L'IDE non presuppone queste stringhe, non le userà e non consentirà all'utente di modificarle. Se l'utente vuole modificare le impostazioni, l'IDE chiamerà SccGetProjPath nuovamente, passando gli stessi valori ricevuti l'ora precedente. In questo modo il controllo completo del plug-in su queste due stringhe.

Per lpUser, l'IDE può passare un nome utente o semplicemente passare un puntatore a una stringa vuota. Se è presente un nome utente, il plug-in del controllo del codice sorgente deve usarlo come predefinito. Tuttavia, se non è stato passato alcun nome o se l'account di accesso non è riuscito con il nome specificato, il plug-in deve richiedere all'utente un account di accesso e passare di nuovo lpUser il nome quando riceve un account di accesso valido. Poiché il plug-in può modificare questa stringa, l'IDE allocherà sempre un buffer di dimensioni (SCC_USER_LEN+1).

Nota

La prima azione eseguita dall'IDE può essere una chiamata alla SccOpenProject funzione o alla SccGetProjPath funzione . Di conseguenza, entrambi hanno un parametro identico lpUser , che consente al plug-in di controllo del codice sorgente di registrare l'utente in entrambi i casi. Anche se il valore restituito dalla funzione indica un errore, il plug-in deve compilare questa stringa con un nome di accesso valido.

lpLocalPath è la directory in cui l'utente mantiene il progetto. Può trattarsi di una stringa vuota. Se non è attualmente definita alcuna directory (come nel caso di un utente che tenta di scaricare un progetto dal sistema di controllo del codice sorgente) e se bAllowChangePath è TRUE, il plug-in del controllo del codice sorgente può richiedere all'utente l'input o usare un altro metodo per inserire la propria stringa in lpLocalPath. Se bAllowChangePath è FALSE, il plug-in non deve modificare la stringa, perché l'utente sta già lavorando nella directory specificata.

Se l'utente crea un nuovo progetto da inserire nel controllo del codice sorgente, il plug-in del controllo del codice sorgente potrebbe non crearlo effettivamente nel sistema di controllo del codice sorgente al momento SccGetProjPath della chiamata. Viene invece restituita la stringa insieme a un valore diverso da zero per pbNew, a indicare che il progetto verrà creato nel sistema di controllo del codice sorgente.

Ad esempio, se un utente nella procedura guidata Nuovo progetto in Visual Studio aggiunge il progetto al controllo del codice sorgente, Visual Studio chiama questa funzione e il plug-in determina se è possibile creare un nuovo progetto nel sistema di controllo del codice sorgente per contenere il progetto di Visual Studio. Se l'utente fa clic su Annulla prima di completare la procedura guidata, il progetto non viene mai creato. Se l'utente fa clic su OK, Visual Studio chiama SccOpenProject, passando SCC_OPT_CREATEIFNEWe il progetto controllato dall'origine viene creato in quel momento.

Vedi anche