Funzione SccCreateSubProject

Questa funzione crea un sottoprogetto con il nome specificato in un progetto padre esistente specificato dall'argomento lpParentProjPath .

Sintassi

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

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

lpParentProjPath

[in] Stringa che identifica il percorso del progetto padre (fino a SCC_PRJPATH_SIZE, incluso il carattere di terminazione NULL).

lpSubProjName

[in] Nome del sottoprogetto suggerito (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).

lpSubProjPath

[in, out] Stringa di output che identifica il percorso del sottoprogetto (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 Il sottoprogetto è stato creato correttamente.
SCC_E_INITIALIZEFAILED Impossibile inizializzare il progetto padre.
SCC_E_INVALIDUedizione Standard R L'utente non è riuscito ad accedere al sistema di controllo del codice sorgente.
SCC_E_COULDNOTCREATEPROJECT Non è possibile creare un sottoprogetto.
SCC_E_PROJSYNTAXERR Sintassi del progetto non valida.
SCC_E_UNKNOWNPROJECT Il progetto padre è 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_CONNECTIONFAILURE Si è verificato un problema di connessione del plug-in del controllo del codice sorgente.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Errore non specifico.

Osservazioni:

Se esiste già un sottoprogetto con il nome, la funzione può modificare il nome predefinito per crearne uno univoco, ad esempio aggiungendo "_<number>". Il chiamante deve essere preparato per accettare le modifiche apportate a lpUser, lpSubProjPathe lpAuxProjPath. Gli lpSubProjPath argomenti elpAuxProjPath vengono quindi usati in una chiamata a SccOpenProject. Non devono essere modificati dal chiamante al ritorno. Queste stringhe consentono al plug-in del controllo del codice sorgente di tenere traccia delle informazioni necessarie per l'associazione a un progetto. L'IDE del chiamante non visualizzerà questi due parametri al momento della restituzione, perché il plug-in può usare una stringa formattata che potrebbe non essere adatta per la visualizzazione. La funzione restituisce un codice di esito positivo o negativo e, se ha esito positivo, riempie la variabile lpSubProjPath con il percorso completo del progetto al nuovo progetto.

Questa funzione è simile a SccGetProjPath, ad eccezione del fatto che crea automaticamente un progetto anziché chiedere all'utente di selezionarlo. Quando viene chiamata la SccCreateSubProject funzione e lpParentProjNamelpAuxProjPath non sarà vuota e corrisponderà a un progetto valido. Queste stringhe vengono in genere ricevute dall'IDE da una chiamata precedente alla SccGetProjPath funzione o da SccGetParentProjectPath.

L'argomento lpUser è il nome utente. L'IDE passerà lo stesso nome utente ricevuto in precedenza da SccGetProjPathe 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_Uedizione StandardR_LEN+1 o SCC_Uedizione StandardR_SIZE, che include lo spazio per il terminatore Null). 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 SccGetParentProjectPath. 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 e SccGetParentProjectPath.

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