Funzione SccGetParentProjectPath
Questa funzione determina il percorso del progetto padre di un progetto specificato. Questa funzione viene chiamata quando l'utente aggiunge un progetto di Visual Studio al controllo del codice sorgente.
Sintassi
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Parametri
pContext
[in] Puntatore di contesto 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 (fino a SCC_Uedizione StandardR_SIZE, incluso il carattere di terminazione NULL).
lpProjPath
[in] Stringa che identifica il percorso del progetto (fino a SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).
lpAuxProjPath
[in, out] Stringa ausiliaria che identifica il progetto (fino a SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).
lpParentProjPath
[in, out] Stringa di output che identifica il percorso del progetto padre (fino a SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).
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 | Percorso del progetto padre ottenuto correttamente. |
SCC_E_INITIALIZEFAILED | Impossibile inizializzare il progetto. |
SCC_E_INVALIDUedizione Standard R | L'utente non è riuscito ad accedere al plug-in del controllo del codice sorgente. |
SCC_E_UNKNOWNPROJECT | Project è sconosciuto al plug-in del controllo del codice sorgente. |
SCC_E_INVALIDFILEPATH | Percorso file non valido o inutilizzabile. |
SCC_E_NOTAUTHORIZED | L'utente non è autorizzato a eseguire questa operazione. |
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. È consigliabile riprovare. |
SCC_E_PROJSYNTAXERR | Sintassi del progetto non valida. |
SCC_E_CONNECTIONFAILURE | Problema di connessione dell'archivio. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Errore non specifico. |
Osservazioni:
Questa funzione restituisce un codice di esito positivo o negativo e, se ha esito positivo, riempie la variabile lpParentProjPath
con il percorso completo del progetto specificato.
Questa funzione restituisce il percorso del progetto padre di un progetto esistente. Per il progetto radice, la funzione restituisce il percorso del progetto passato, ovvero lo stesso percorso del progetto radice. Si noti che un percorso del progetto è una stringa significativa solo per il plug-in del controllo del codice sorgente.
L'IDE è pronto ad accettare anche le modifiche ai lpUser
parametri e lpAuxProjPath
. L'IDE rende persistenti queste stringhe e le passerà a SccOpenProject quando l'utente apre questo progetto in futuro. Queste stringhe, pertanto, forniscono un modo per il plug-in di controllo del codice sorgente per tenere traccia delle informazioni necessarie per associare a un progetto.
Questa funzione è simile a SccGetProjPath, ad eccezione del fatto che non richiede all'utente di selezionare un progetto. Non crea mai un nuovo progetto, ma funziona solo con un progetto esistente.
Quando SccGetParentProjectPath
viene chiamato, lpProjPath
e lpAuxProjPath
non sarà vuoto e corrisponderà a un progetto valido. Queste stringhe vengono in genere ricevute dall'IDE da una chiamata precedente alla SccGetProjPath
funzione.
L'argomento lpUser
è il nome utente. L'IDE passerà lo stesso nome utente ricevuto in precedenza dalla SccGetProjPath
funzione e il plug-in del controllo del codice sorgente deve usare il nome come predefinito. Se l'utente ha già una connessione aperta con il plug-in, il plug-in dovrebbe tentare di eliminare eventuali richieste per assicurarsi che la funzione funzioni in modo invisibile all'utente. Tuttavia, se l'account di accesso ha esito negativo, il plug-in deve richiedere all'utente un account di accesso e, quando riceve un account di accesso valido, passare di nuovo il nome in lpUser
. Poiché il plug-in può modificare questa stringa, l'IDE allocherà sempre un buffer di dimensioni (SCC_USER_LEN
+1). Se la stringa viene modificata, la nuova stringa deve essere un nome di accesso valido (almeno come la stringa precedente).
Note tecniche per SccCreateSubProject e SccGetParentProjectPath
L'aggiunta di soluzioni e progetti al controllo del codice sorgente è stata semplificata in Visual Studio per ridurre al minimo il numero di volte in cui viene richiesto a un utente di selezionare le posizioni nel sistema di controllo del codice sorgente. Queste modifiche vengono attivate da Visual Studio se un plug-in del controllo del codice sorgente supporta entrambe le nuove funzioni, SccCreateSubProject e la SccGetParentProjectPath
funzione . Tuttavia, la voce del Registro di sistema seguente può essere usata per disabilitare queste modifiche e ripristinare il comportamento precedente di Visual Studio (API plug-in del controllo del codice sorgente versione 1.1):
[HKEY_CURRENT_Uedizione Standard R\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001
Se questa voce del Registro di sistema non esiste o è impostata su dword:00000000, Visual Studio tenta di usare le nuove funzioni SccCreateSubProject
eSccGetParentProjectPath
.
Se la voce del Registro di sistema è impostata su dword:00000001, Visual Studio non tenta di usare queste nuove funzioni e le operazioni di aggiunta al controllo del codice sorgente funzionano come nelle versioni precedenti di Visual Studio.