Freigeben über


SccCreateSubProject-Funktion

Diese Funktion erstellt ein Teilprojekt mit dem angegebenen Namen unter einem vorhandenen übergeordneten Projekt, das durch das lpParentProjPath Argument angegeben wird.

Syntax

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

Parameter

pContext

[in] Der Kontextzeiger für das Quellcodeverwaltungs-Plug-In.

hWnd

[in] Ein Handle für das IDE-Fenster, das das Quellcodeverwaltungs-Plug-In als übergeordnetes Element für alle von ihr bereitgestellten Dialogfelder verwenden kann.

lpUser

[in, out] Der Benutzername (bis zu SCC_USER_SIZE, einschließlich des NULL-Terminators).

lpParentProjPath

[in] Eine Zeichenfolge, die den Pfad des übergeordneten Projekts identifiziert (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).

lpSubProjName

[in] Der vorgeschlagene Teilprojektname (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).

lpAuxProjPath

[in, out] Hilfszeichenfolge, die das Projekt identifiziert (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).

lpSubProjPath

[in, out] Ausgabezeichenfolge, die den Pfad für das Teilprojekt identifiziert (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).

Rückgabewert

Die Plug-In-Implementierung dieser Funktion für die Quellcodeverwaltung wird voraussichtlich einen der folgenden Werte zurückgeben:

Wert Beschreibung
SCC_OK Teilprojekt wurde erfolgreich erstellt.
SCC_E_INITIALIZEFAILED Übergeordnetes Projekt konnte nicht initialisiert werden.
SCC_E_INVALIDUSER Der Benutzer konnte sich nicht beim Quellcodeverwaltungssystem anmelden.
SCC_E_COULDNOTCREATEPROJECT Teilprojekt kann nicht erstellt werden.
SCC_E_PROJSYNTAXERR Ungültige Projektsyntax.
SCC_E_UNKNOWNPROJECT Das übergeordnete Projekt ist für das Quellcodeverwaltungs-Plug-In unbekannt.
SCC_E_INVALIDFILEPATH Ungültiger oder nicht verwendbarer Dateipfad.
SCC_E_NOTAUTHORIZED Der Benutzer darf diesen Vorgang nicht ausführen.
SCC_E_ACCESSFAILURE Es gab ein Problem beim Zugriff auf das Quellcodeverwaltungssystem, wahrscheinlich aufgrund von Netzwerk- oder Inhaltsproblemen. Es wird ein Wiederholungsversuche empfohlen.
SCC_E_CONNECTIONFAILURE Es gab ein Verbindungsproblem mit dem Quellcodeverwaltungs-Plug-In.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Nicht spezifischer Fehler.

Hinweise

Wenn bereits ein Teilprojekt mit dem Namen vorhanden ist, kann die Funktion den Standardnamen ändern, um ein eindeutiges zu erstellen, z. B. durch Hinzufügen von "_<number>" zu diesem Element. Der Anrufer muss darauf vorbereitet sein, Änderungen an lpUser, lpSubProjPath, und lpAuxProjPath. Die lpSubProjPath Argumente und lpAuxProjPath Argumente werden dann in einem Aufruf des SccOpenProject verwendet. Sie sollten vom Aufrufer nicht bei Der Rückgabe geändert werden. Diese Zeichenfolgen bieten eine Möglichkeit für das Quellcodeverwaltungs-Plug-In zum Nachverfolgen von Informationen, die es einem Projekt zuordnen muss. Die Aufrufer-IDE zeigt diese beiden Parameter beim Zurückgeben nicht an, da das Plug-In eine formatierte Zeichenfolge verwenden kann, die möglicherweise nicht für die Anzeige geeignet ist. Die Funktion gibt einen Erfolgs- oder Fehlercode zurück und füllt bei erfolgreicher Ausführung die Variable lpSubProjPath mit dem vollständigen Projektpfad zum neuen Projekt aus.

Diese Funktion ähnelt dem SccGetProjPath, mit der Ausnahme, dass im Hintergrund ein Projekt erstellt wird, anstatt den Benutzer aufzufordern, eines auszuwählen. Wenn die SccCreateSubProject Funktion aufgerufen lpParentProjName wird und lpAuxProjPath nicht leer ist und einem gültigen Projekt entspricht. Diese Zeichenfolgen werden in der Regel von der IDE von einem vorherigen Aufruf der SccGetProjPath Funktion oder von SccGetParentProjectPath empfangen.

Das lpUser Argument ist der Benutzername. Die IDE übergibt denselben Benutzernamen, von SccGetProjPathdem sie zuvor empfangen hatte, und das Quellcodeverwaltungs-Plug-In sollte den Namen als Standard verwenden. Wenn der Benutzer bereits über eine offene Verbindung mit dem Plug-In verfügt, sollte das Plug-In versuchen, alle Eingabeaufforderungen zu beseitigen, um sicherzustellen, dass die Funktion im Hintergrund funktioniert. Wenn die Anmeldung jedoch fehlschlägt, sollte das Plug-In den Benutzer zur Eingabe einer Anmeldung auffordern und, wenn er eine gültige Anmeldung empfängt, den Namen wieder lpUserübergeben. Da das Plug-In diese Zeichenfolge ändern kann, weist die IDE immer einen Puffer der Größe zu (SCC_USER_LEN+1 oder SCC_USER_SIZE, der Platz für den Null-Terminator enthält). Wenn die Zeichenfolge geändert wird, muss die neue Zeichenfolge ein gültiger Anmeldename sein (mindestens so gültig wie die alte Zeichenfolge).

Technische Hinweise für SccCreateSubProject und SccGetParentProjectPath

Das Hinzufügen von Lösungen und Projekten zur Quellcodeverwaltung wurde in Visual Studio vereinfacht, um zu minimieren, wie oft ein Benutzer aufgefordert wird, Speicherorte im Quellcodeverwaltungssystem auszuwählen. Diese Änderungen werden von Visual Studio aktiviert, wenn ein Quellcodeverwaltungs-Plug-In beide neuen Funktionen SccCreateSubProject SccGetParentProjectPathund . Der folgende Registrierungseintrag kann jedoch verwendet werden, um diese Änderungen zu deaktivieren und auf das vorherige Verhalten des Visual Studio-Plug-Ins (Quellcodeverwaltungs-Plug-In-API, Version 1.1) zurückgesetzt zu werden:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001

Wenn dieser Registrierungseintrag nicht vorhanden ist oder auf dword:00000000 festgelegt ist, versucht Visual Studio, die neuen Funktionen zu verwenden, SccCreateSubProject und SccGetParentProjectPath.

Wenn der Registrierungseintrag auf "dword:00000001" festgelegt ist, versucht Visual Studio nicht, diese neuen Funktionen zu verwenden, und die Vorgänge zum Hinzufügen zur Quellcodeverwaltung funktionieren wie in früheren Versionen von Visual Studio.

Siehe auch