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_CREATEIFNEW
e il progetto controllato dall'origine viene creato in quel momento.