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 SccGetProjPath
dem 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
SccGetParentProjectPath
und . 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.