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 SccCreateSubProjecteSccGetParentProjectPath .

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.

Vedi anche