SccOpenProject-Funktion
Diese Funktion wird ein vorhandenes Quellcodeverwaltungsprojekt oder erstellt ein neues.
SCCRTN SccOpenProject (
LPVOID pvContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjName,
LPCSTR lpLocalProjPath,
LPSTR lpAuxProjPath,
LPCSTR lpComment,
LPTEXTOUTPROC lpTextOutProc,
LONG dwFlags
);
Parameter
pvContext
[in] Die Quellcodeverwaltungs-Plug-In-Kontext Struktur.hWnd
[in] a-Handle auf das IDE-Fenster, das das Quellcodeverwaltungs-Plug-In als übergeordnetes Element für alle Dialogfelder verwenden kann, die er bereitstellt.lpUser
[in, out] Der Name des Benutzers (SCC_USER_SIZE, einschließlich des NULL-Terminators nicht überschreiten).lpProjName
[in] Die Zeichenfolge, die den Namen des Projekts angibt.lpLocalProjPath
[in] Der Pfad zum Arbeitsordner für das Projekt.lpAuxProjPath
[in, out] Eine optionale zusätzliche Zeichenfolge, die das Projekt SCC_AUXPATH_SIZE (identifiziert, einschließlich des NULL-Terminators nicht überschreiten).lpComment
[in] kommentieren Sie in einem neuen Projekt, das erstellt wird.lpTextOutProc
[in] Eine optionale Rückruffunktion, um die Textausgabe des Quellcodeverwaltungs-Plug-In anzuzeigen.dwFlags
[in] Signalisiert, dass ein neues Projekt erstellt werden muss, wenn das Projekt das Quellcodeverwaltungs-Plug-In unbekannt ist. Der Wert kann eine Kombination von SCC_OP_CREATEIFNEW und SCC_OP_SILENTOPEN. sein
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 |
Erfolg, wenn das Projekt geöffnet wird. |
SCC_E_INITIALIZEFAILED |
Projekt konnte nicht initialisiert werden. |
SCC_E_INVALIDUSER |
Der Benutzer kann nicht an das Quellcodeverwaltungssystem anmelden. |
SCC_E_COULDNOTCREATEPROJECT |
Das Projekt ist nicht vor dem Aufruf. SCC_OPT_CREATEIFNEW das Flag festgelegt wurde. Das Projekt konnte nicht erstellt werden. |
SCC_E_PROJSYNTAXERR |
Ungültige Syntax Projekt. |
SCC_E_UNKNOWNPROJECT |
Das Projekt ist das Quellcodeverwaltungs-Plug-In unbekannt, und das SCC_OPT_CREATEIFNEW-Flag wurde nicht festgelegt. |
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_NONSPECFICERROR |
Ein unspezifischer Fehler. das Quellcodeverwaltungssystem wurde nicht initialisiert. |
Hinweise
Die IDE übergibt einen Benutzernamen (möglicherweise in lpUser übergeben wird), oder es kann einfach in einen Zeiger auf eine leere Zeichenfolge. Wenn es sich um einen Benutzernamen gibt, sollte das Quellcodeverwaltungs-Plug-In ihn als Standard verwenden. Wenn jedoch kein Name übergeben wurde, oder wenn die Anmeldung fehlgeschlagen mit dem angegebenen Namen, sollte das Plug-In für den Benutzer auffordern anzumelden und den gültigen Namen in lpUser zurückgegeben werden, wenn es sich um ein gültiges das ., da das Plug-In möglicherweise den Benutzernamen, ändert sich die IDE Zeichenfolge zuordnet immer einen Puffer der Größe erhält (SCC_USER_LEN+1 oder SCC_USER_SIZE, die Leerzeichen nach dem NULL-Abschlusszeichen) eingeschlossen werden.
Hinweis
Die erste Aktion, die die IDE möglicherweise erforderlich ist, auszuführen, ist ein Aufruf der SccOpenProject-Funktion oder SccGetProjPath-Funktion.Aus diesem Grund verfügen alle beide einen identischen lpUser-Parameter.
lpAuxProjPath und lpProjName werden aus der Projektmappendatei gelesen, oder sie werden von einem Aufruf der SccGetProjPath-Funktion zurückgegeben. Diese Parameter enthalten Zeichenfolgen, die das Quellcodeverwaltungs-Plug-In dem Projekt zugeordnet werden und sind nur für das Plug-In sinnvoll. Wenn keine Zeichenfolgen in der Projektmappendatei und der Benutzer nicht aufgefordert wurde (zum Durchsuchen einer Zeichenfolge durch die SccGetProjPath-Funktion zurückgibt), führt die IDE lpAuxProjPath sowohl für Zeichenfolgen und lpProjName und erwarteten Werte, durch das Plug-In aktualisiert werden sollen, wenn diese Funktion zurückgegeben wird.
lpTextOutProc ist ein Zeiger auf eine Rückruffunktion, die in der IDE auf das Quellcodeverwaltungs-Plug-In das Ziel mit dem Ergebnis des Befehls Anzeigen der Ausgabe bereitgestellt wird. Die Rückruffunktion wird ausführlich in LPTEXTOUTPROC beschrieben.
Hinweis
Wenn das Quellcodeverwaltungs-Plug-In für die dies zu nutzen, müssen Sie das Flag in SCC_CAP_TEXTOUTSccInitialize-Funktion festgelegt haben.Wenn dieses Flag nicht festgelegt wurde oder wenn die IDE dieses Feature nicht unterstützt, ist lpTextOutProcNULL.
Die dwFlags-Parameter steuert das Ergebnis für den Fall, dass das zu öffnende Projekt derzeit nicht vorhanden ist. Es besteht aus zwei bitflags, SCC_OP_CREATEIFNEW und SCC_OP_SILENTOPEN. Wenn das Projekt, das bereits geöffnet ist, existiert, erstellt die Funktion einfach das Projekt und gibt SCC_OK zurück. Wenn das Projekt nicht vorhanden ist und SCC_OP_CREATEIFNEW wenn das Flag aktiviert ist, kann das Quellcodeverwaltungs-Plug-In das Projekt im Quellcodeverwaltungssystem erstellen, öffnet SCC_OK und gibt es zurück. Wenn das Projekt nicht vorhanden ist und wenn das Flag aus SCC_OP_CREATEIFNEW ist, sollte das Plug-In für das SCC_OP_SILENTOPEN-Flag dann überprüfen. Wenn dieses Flag nicht aktiviert ist, fordert möglicherweise das Plug-In auf einen Projektnamen für den Benutzer. Wenn dieses Flag aktiviert ist, sollte das Plug-In SCC_E_UNKNOWNPROJECT einfach zurückgeben.
Aufrufen von Reihenfolge
In der Regel sieht zuerst aufgerufen, um eine SccInitialize-Funktion eine Quellcodeverwaltung öffnen. Eine Sitzung besteht möglicherweise aus einem Aufruf von SccOpenProject, gefolgt von anderen Quellcodeverwaltungs-Plug-In-API-Funktions-Aufrufen und endet mit einem Aufruf von SccCloseProject-Funktion. Solche Sitzungen werden einmal wiederholt werden, bevor SccUninitialize-Funktion aufgerufen wird.
Wenn das Quellcodeverwaltungs-Plug-In - Bit festgelegt SCC_CAP_REENTRANT in SccInitialize, wird die oben stehende Sitzung wiederholt parallel mehrfach Sequenz kann. Verschiedene Strukturen pvContext verfolgen die verschiedenen Sitzungen, in denen jedes pvContext mit einem geöffneten Projekt einzeln zugeordnet ist. Basierend auf den pvContext-Parameter kann das Plug-In bestimmt, welches Projekt in einen bestimmten Aufruf verwiesen wird. Wenn die Funktion bit SCC_CAP_REENTRANT nicht festgelegt ist, werden nonreentrant in ihrer Fähigkeit, steckverbindungen Quellcodeverwaltung mit mehreren Projekten arbeiten beschränkt.
Hinweis
Das Bit SCC_CAP_REENTRANT wurde ein Quellcodeverwaltungs-Plug-In API, Version 1.1, eingeführt.Es ist nicht festgelegt und wird in Version 1.0 ignoriert, und alle steckverbindungen Quellcodeverwaltung, Version 1.0, wird angenommen, dass nonreentrant sein.