SccCreateSubProject-Funktion
Diese Funktion erstellt ein Unterprojekt mit dem angegebenen Namen unter einem vorhandenen Elementen Projekt, das vom lpParentProjPath-Argument angegeben wird.
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
Parameter
pContext
[in] Der Zeiger Quellcodeverwaltungs-Plug-In-Kontext.hWnd
[in] Ein Handle für das IDE-Fenster, das das Quellcodeverwaltungs-Plug-In als übergeordnetes Element für alle Dialogfelder verwenden kann, die er bereitstellt.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 angibt SCC_PRJPATH_SIZE bis (einschließlich NULL-Abschlusszeichen).lpSubProjName
[in] Der vorgeschlagene Name (bis zu SCC_PRJPATH_SIZE Unterprojekt, einschließlich NULL-Abschlusszeichen).lpAuxProjPath
[in, out] Zusätzliche Zeichenfolge, die das Projekt identifiziert (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).lpSubProjPath
[in, out] Geben Sie die Zeichenfolge aus, die den Pfad für das Unterprojekt identifiziert (bis zu SCC_PRJPATH_SIZE, einschließlich des NULL-Terminators).
Rückgabewert
Die Quellcodeverwaltungs-Plug-In-Implementierung dieser Funktion wird erwartet, dass es sich um einen der folgenden Werte zurückgeben:
Wert |
Beschreibung |
---|---|
SCC_OK |
Unterprojekt wurde erfolgreich erstellt. |
SCC_E_INITIALIZEFAILED |
übergeordnetes Projekt konnte nicht initialisiert werden. |
SCC_E_INVALIDUSER |
Der Benutzer kann nicht an das Quellcodeverwaltungssystem anmelden. |
SCC_E_COULDNOTCREATEPROJECT |
Unterprojekt kann nicht erstellt werden. |
SCC_E_PROJSYNTAXERR |
Ungültige Syntax Projekt. |
SCC_E_UNKNOWNPROJECT |
Das übergeordnete Projekt ist das Quellcodeverwaltungs-Plug-In unbekannt. |
SCC_E_INVALIDFILEPATH |
Ungültiger oder unbrauchbarer Dateipfad. |
SCC_E_NOTAUTHORIZED |
Der Benutzer ist nicht zulässig, um diesen Vorgang auszuführen. |
SCC_E_ACCESSFAILURE |
Es bestand ein Problem, das das Quellcodeverwaltungssystem, wahrscheinlich aufgrund der Netzwerk- oder Konflikt bei der zugreift. Eine Wiederholung wird empfohlen. |
SCC_E_CONNECTIONFAILURE |
Es bestand ein Problem Quellcodeverwaltungs-Plug-In-Verbindungs. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Unspezifischer Fehler. |
Hinweise
Wenn ein Unterprojekt mit dem Namen bereits vorhanden ist, kann die Funktion den Standardnamen so ändern, dass ein eindeutiges zu erstellen, z. B. indem Sie „_ <number> “ ihr addiert. Der Aufrufer muss darauf vorbereitet sein, Änderungen an lpUser, an lpSubProjPathund lpAuxProjPathzu übernehmen. Die lpSubProjPath undlpAuxProjPath-Argumente werden dann in einem Aufruf von SccOpenProject-Funktionverwendet. Sie sollten nach Rückgabe vom Aufrufer nicht geändert werden. Diese Zeichenfolgen stellen eine Methode für das Quellcodeverwaltungs-Plug-In auf den Titel Informationen bereit, die es einem Projekt zugeordnet werden muss. Der Aufrufer IDE zeigt diese beiden Parameter nicht nach Rückgabe an, da das Plug-In eine formatierte Zeichenfolge verwenden kann, die möglicherweise nicht zum Anzeigen geeignet sein könnte. Die Funktion gibt einen Erfolg oder Fehler zurück, wenn der Vorgang erfolgreich war, Code und füllt die Variable lpSubProjPath mit dem vollständigen Projektpfad mit dem neuen Projekt aus.
Diese Funktion ist vergleichbar, außer dass SccGetProjPath-Funktionerstellt automatisch ein Projekt anstatt den Benutzer ein, auffordernd auszuwählen. Wenn die SccCreateSubProject-Funktion aufgerufen wird, sind lpParentProjName und lpAuxProjPath nicht leer und entsprechen einem gültigen Projekt. Diese Zeichenfolgen werden normalerweise von der IDE aus einem vorherigen Aufruf der SccGetProjPath-Funktion oder SccGetParentProjectPath-Funktionempfangen.
Das lpUser-Argument ist der Benutzername. Die IDE übergibt den gleichen Namen, den sie hatte zuvor von SccGetProjPathempfangen, und das Quellcodeverwaltungs-Plug-In sollte mit dem Namen als Standard verwenden. Wenn der Benutzer bereits eine geöffnete Verbindung mit dem Plug-In verfügt, sollte das Plug-In versuchen, alle Eingabeaufforderungen zu vermeiden, um sicherzustellen, dass die Funktion automatisch ausgeführt werden kann. Wenn die Anmeldung fehlschlagen soll das Plug-In eine Anmeldung für den Benutzer auffordern, und, wenn es sich um eine gültige Anmeldung empfängt, führt die Namen wieder in lpUser. Da das Plug-In diese Zeichenfolge geändert wird, ordnet die IDE immer einen Puffer der Größe (SCC_USER_LEN+1 oder SCC_USER_SIZE, die Leerzeichen nach dem NULL-Abschlusszeichen) eingeschlossen werden. Wenn die Zeichenfolge geändert wird, muss die neue Zeichenfolge ein gültiger Anmeldename mindestens so gültig sein (z. B. die alte String).
Technische Hinweise für SccCreateSubProject und SccGetParentProjectPath
Das Hinzufügen von Projektmappen und Projekten zur Quellcodeverwaltung steht in Visual Studio vereinfacht, um die Häufigkeit zu minimieren, die ein Benutzer aufgefordert wird, Speicherorte im Quellcodeverwaltungssystem auszuwählen. Diese Änderungen werden von Visual Studio aktiviert, wenn ein Quellcodeverwaltungs-Plug-In die beiden neuen Funktionen des SccCreateSubProject und des SccGetParentProjectPathunterstützt. Jedoch kann der folgende Registrierungseintrag verwendet werden, um diese Änderungen zu deaktivieren und zum vorherigen Verhalten von Visual Studio (Version 1.1): Wiederherstellen des Quellcodeverwaltungs-Plug-In-API
[HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 8.0 \ SourceControl] " DoNotCreateSolutionRootFolderInSourceControl „=dword: 00000001
Wenn dieser Registrierungseintrag vorhanden ist oder nicht, um in einem DWORD festgelegt ist: 00000000, Visual Studio versucht, die neuen Funktionen, SccCreateSubProject und SccGetParentProjectPathzu verwenden.
Wenn der in einem DWORD auf den Registrierungseintrag festgelegt wird: 00000001, Visual Studio versucht nicht, diese neuen Funktionen und Vorgänge zum Hinzufügen zur Quellcodeverwaltung Arbeit zu verwenden, wie sie in früheren Versionen von Visual Studio.
Siehe auch
Referenz
SccGetParentProjectPath-Funktion