Freigeben über


SccOpenProject-Funktion

Diese Funktion öffnet ein vorhandenes Quellcodeverwaltungsprojekt oder erstellt ein neues Projekt.

Syntax

SCCRTN SccOpenProject (
   LPVOID        pvContext,
   HWND          hWnd,
   LPSTR         lpUser,
   LPCSTR        lpProjName,
   LPCSTR        lpLocalProjPath,
   LPSTR         lpAuxProjPath,
   LPCSTR        lpComment,
   LPTEXTOUTPROC lpTextOutProc,
   LONG          dwFlags
);

Parameter

pvContext

[in] Die Kontextstruktur des Quellcodeverwaltungs-Plug-Ins.

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 Name des Benutzers (nicht zu überschreiten SCC_USER_SIZE, einschließlich des NULL-Terminators).

lpProjName

[in] Die Zeichenfolge, die den Namen des Projekts identifiziert.

lpLocalProjPath

[in] Der Pfad zum Arbeitsordner für das Projekt.

lpAuxProjPath

[in, out]Eine optionale Hilfszeichenfolge, die das Projekt identifiziert (nicht zu überschreiten SCC_AUXPATH_SIZE, einschließlich des NULL-Terminators).

lpComment

[in] Kommentieren Sie ein neues Projekt, das erstellt wird.

lpTextOutProc

[in] Eine optionale Rückruffunktion zum Anzeigen der Textausgabe aus dem Quellcodeverwaltungs-Plug-In.

dwFlags

[in] Signalisiert, ob ein neues Projekt erstellt werden muss, wenn das Projekt dem Quellcodeverwaltungs-Plug-In unbekannt ist. Der Wert kann eine Kombination aus SCC_OP_CREATEIFNEW und SCC_OP_SILENTOPEN.

Rückgabewert

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

Wert Beschreibung
SCC_OK Erfolg beim Öffnen des Projekts.
SCC_E_INITIALIZEFAILED Project konnte nicht initialisiert werden.
SCC_E_INVALIDUSER Der Benutzer konnte sich nicht beim Quellcodeverwaltungssystem anmelden.
SCC_E_COULDNOTCREATEPROJECT Das Projekt war vor dem Aufruf nicht vorhanden; Die SCC_OPT_CREATEIFNEW Kennzeichnung wurde festgelegt, aber das Projekt konnte nicht erstellt werden.
SCC_E_PROJSYNTAXERR Ungültige Projektsyntax.
SCC_E_UNKNOWNPROJECT Das Projekt ist dem Quellcodeverwaltungs-Plug-In unbekannt, und das SCC_OPT_CREATEIFNEW Flag wurde nicht festgelegt.
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_NONSPECFICERROR Ein nicht spezifischer Fehler; Das Quellcodeverwaltungssystem wurde nicht initialisiert.

Hinweise

Die IDE kann einen Benutzernamen (lpUser) übergeben oder einfach einen Zeiger an eine leere Zeichenfolge übergeben. Wenn ein Benutzername vorhanden ist, sollte das Quellcodeverwaltungs-Plug-In es als Standard verwenden. Wenn jedoch kein Name übergeben wurde oder die Anmeldung mit dem angegebenen Namen fehlgeschlagen ist, sollte das Plug-In den Benutzer auffordern, sich anzumelden, und gibt den gültigen Namen lpUser zurück, wenn er eine gültige Anmeldung. erhält, da das Plug-In möglicherweise die Benutzernamenzeichenfolge ändern kann, weist die IDE immer einen Puffer der Größe zu (SCC_USER_LEN+1 oder SCC_USER_SIZE, das Leerzeichen für den Null-Endator enthält.

Hinweis

Die erste Aktion, die die IDE ausführen muss, kann ein Aufruf der SccOpenProject Funktion oder der SccGetProjPath sein. Aus diesem Grund haben beide einen identischen lpUser Parameter.

lpAuxProjPath aus lpProjName der Lösungsdatei gelesen werden, oder sie werden von einem Aufruf der SccGetProjPath Funktion zurückgegeben. Diese Parameter enthalten die Zeichenfolgen, die das Quellcodeverwaltungs-Plug-In dem Projekt zuordnet und nur für das Plug-In aussagekräftig sind. Wenn sich keine solchen Zeichenfolgen in der Lösungsdatei befinden und der Benutzer nicht zum Durchsuchen aufgefordert wurde (was eine Zeichenfolge über die SccGetProjPath Funktion zurückgibt), übergibt die IDE leere Zeichenfolgen für beide lpAuxProjPath und lpProjNameerwartet, dass diese Werte vom Plug-In aktualisiert werden, wenn diese Funktion zurückgegeben wird.

lpTextOutProc ist ein Zeiger auf eine Rückruffunktion, die von der IDE zum Quellcodeverwaltungs-Plug-In zum Anzeigen der Befehlsergebnisausgabe bereitgestellt wird. Diese Rückruffunktion wird in LPTEXTOUTPROC ausführlich beschrieben.

Hinweis

Wenn das Quellcodeverwaltungs-Plug-In dies nutzen möchte, muss es das SCC_CAP_TEXTOUT Flag in der SccInitialize festgelegt haben. Wenn dieses Flag nicht festgelegt wurde oder die IDE dieses Feature nicht unterstützt, lautet dies lpTextOutProc NULL.

Der dwFlags Parameter steuert das Ergebnis, wenn das geöffnete Projekt zurzeit nicht vorhanden ist. Es besteht aus zwei Bitflags SCC_OP_CREATEIFNEW und SCC_OP_SILENTOPEN. Wenn das geöffnete Projekt bereits vorhanden ist, öffnet die Funktion einfach das Projekt und gibt zurück SCC_OK. Wenn das Projekt nicht vorhanden ist und das SCC_OP_CREATEIFNEW Flag aktiviert ist, kann das Quellcodeverwaltungs-Plug-In das Projekt im Quellcodeverwaltungssystem erstellen, öffnen und zurückgeben SCC_OK. Wenn das Projekt nicht vorhanden ist und das SCC_OP_CREATEIFNEW Flag deaktiviert ist, sollte das Plug-In dann nach der SCC_OP_SILENTOPEN Kennzeichnung suchen. Wenn dieses Flag nicht aktiviert ist, fordert das Plug-In den Benutzer möglicherweise zur Eingabe eines Projektnamens auf. Wenn dieses Flag aktiviert ist, sollte das Plug-In einfach zurückgegeben werden SCC_E_UNKNOWNPROJECT.

Anrufauftrag

Im normalen Verlauf der Ereignisse wird die SccInitialize zuerst aufgerufen, um eine Quellcodeverwaltungssitzung zu öffnen. Eine Sitzung kann aus einem Aufruf SccOpenProjectvon , gefolgt von anderen Api-Aufrufen der Source Control Plug-In-API bestehen und mit einem Aufruf des SccCloseProject beendet werden. Solche Sitzungen können mehrmals wiederholt werden, bevor die SccUninitialize aufgerufen wird.

Wenn das Quellcodeverwaltungs-Plug-In das SCC_CAP_REENTRANT Bit in SccInitializefestlegt, kann die obige Sitzungssequenz mehrmals parallel wiederholt werden. Unterschiedliche pvContext Strukturen verfolgen die verschiedenen Sitzungen, in denen jeweils pvContext jeweils ein offenes Projekt zugeordnet ist. Basierend auf dem pvContext Parameter kann das Plug-In bestimmen, auf welches Projekt in einem bestimmten Aufruf verwiesen wird. Wenn das Funktionsbit SCC_CAP_REENTRANT nicht festgelegt ist, sind nichtreentrante Quellcodeverwaltungs-Plug-Ins in der Fähigkeit eingeschränkt, mit mehreren Projekten zu arbeiten.

Hinweis

Das SCC_CAP_REENTRANT Bit wurde in Version 1.1 der Quellcodeverwaltungs-Plug-In-API eingeführt. Es ist nicht festgelegt oder wird in Version 1.0 ignoriert, und alle Quellcodeverwaltungs-Plug-Ins der Version 1.0 werden als nichtreentrant angenommen.

Siehe auch