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 lpProjName
erwartet, 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 SccOpenProject
von , 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 SccInitialize
festlegt, 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.