SccCreateSubProject, funkcja

Ta funkcja tworzy podprojekt o podanej nazwie w istniejącym projekcie lpParentProjPath nadrzędnym określonym przez argument .

Składnia

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

Parametry

Pcontext

[in] Wskaźnik kontekstu wtyczki kontroli źródła.

Hwnd

[in] Dojście do okna środowiska IDE, którego wtyczka kontroli źródła może używać jako elementu nadrzędnego dla wszystkich okien dialogowych, które udostępnia.

lpUser

[in, out] Nazwa użytkownika (maksymalnie SCC_USER_SIZE, w tym terminator null).

lpParentProjPath

[in] Ciąg identyfikujący ścieżkę projektu nadrzędnego (do SCC_PRJPATH_SIZE, w tym terminator null).

lpSubProjName

[in] Sugerowana nazwa podprojektu (do SCC_PRJPATH_SIZE, w tym terminator NULL).

lpAuxProjPath

[in, out] Ciąg pomocniczy identyfikujący projekt (do SCC_PRJPATH_SIZE, w tym terminator NULL).

lpSubProjPath

[in, out] Ciąg wyjściowy identyfikujący ścieżkę podprojektu (do SCC_PRJPATH_SIZE, w tym terminator NULL).

Wartość zwracana

Implementacja wtyczki kontroli źródła tej funkcji powinna zwrócić jedną z następujących wartości:

Wartość Opis
SCC_OK Pomyślnie utworzono podprojekt.
SCC_E_INITIALIZEFAILED Nie można zainicjować projektu nadrzędnego.
SCC_E_INVALIDUSER Użytkownik nie mógł zalogować się do systemu kontroli źródła.
SCC_E_COULDNOTCREATEPROJECT Nie można utworzyć podprojektu.
SCC_E_PROJSYNTAXERR Nieprawidłowa składnia projektu.
SCC_E_UNKNOWNPROJECT Projekt nadrzędny jest nieznany wtyczki kontroli źródła.
SCC_E_INVALIDFILEPATH Nieprawidłowa lub bezużyteczna ścieżka pliku.
SCC_E_NOTAUTHORIZED Użytkownik nie może wykonać tej operacji.
SCC_E_ACCESSFAILURE Wystąpił problem podczas uzyskiwania dostępu do systemu kontroli źródła, prawdopodobnie z powodu problemów z siecią lub rywalizacją. Zalecane jest ponowienie próby.
SCC_E_CONNECTIONFAILURE Wystąpił problem z połączeniem wtyczki kontroli źródła.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Niepowodzeń nieokreślonych.

Uwagi

Jeśli podprojekt o nazwie już istnieje, funkcja może zmienić domyślną nazwę, aby utworzyć unikatowy, na przykład dodając do niego ciąg "_<number>". Obiekt wywołujący musi być przygotowany do akceptowania zmian w elementach lpUser, lpSubProjPathi lpAuxProjPath. lpSubProjPath Argumenty ilpAuxProjPath są następnie używane w wywołaniu elementu SccOpenProject. Nie powinny być modyfikowane przez obiekt wywołujący po powrocie. Te ciągi umożliwiają wtyczkę kontroli źródła w celu śledzenia informacji, które muszą być skojarzone z projektem. Środowisko IDE wywołującego nie wyświetli tych dwóch parametrów po powrocie, ponieważ wtyczka może używać sformatowanego ciągu, który może nie być odpowiedni do wyświetlania. Funkcja zwraca kod powodzenia lub błędu, a w razie powodzenia wypełnia zmienną lpSubProjPath pełną ścieżką projektu do nowego projektu.

Ta funkcja jest podobna do ścieżki SccGetProjPath, z tą różnicą, że dyskretnie tworzy projekt, a nie monituje użytkownika o wybranie go. Gdy funkcja jest wywoływana SccCreateSubProject i lpParentProjNamelpAuxProjPath nie będzie pusta i będzie odpowiadać prawidłowemu projektowi. Te ciągi są zwykle odbierane przez środowisko IDE z poprzedniego wywołania SccGetProjPath funkcji lub SccGetParentProjectPath.

Argumentem lpUser jest nazwa użytkownika. Środowisko IDE przekaże tę samą nazwę użytkownika, która została wcześniej odebrana z SccGetProjPathprogramu , a wtyczka kontroli źródła powinna używać nazwy jako domyślnej. Jeśli użytkownik ma już otwarte połączenie z wtyczką, wtyczka powinna spróbować wyeliminować wszelkie monity, aby upewnić się, że funkcja działa dyskretnie. Jeśli jednak logowanie nie powiedzie się, wtyczka powinna monitować użytkownika o zalogowanie się i po otrzymaniu prawidłowego identyfikatora logowania przekaż nazwę z powrotem w lpUserpliku . Ponieważ wtyczka może zmienić ten ciąg, środowisko IDE zawsze przydzieli bufor o rozmiarze (SCC_USER_LEN+1 lub SCC_USER_SIZE, który zawiera miejsce na terminator o wartości null). Jeśli ciąg zostanie zmieniony, nowy ciąg musi być prawidłową nazwą logowania (co najmniej tak prawidłową jak stary ciąg).

Uwagi techniczne dotyczące obiektów SccCreateSubProject i SccGetParentProjectPath

Dodanie rozwiązań i projektów do kontroli źródła zostało uproszczone w programie Visual Studio, aby zminimalizować liczbę monitów użytkownika o wybranie lokalizacji w systemie kontroli źródła. Te zmiany są aktywowane przez program Visual Studio, jeśli wtyczka kontroli źródła obsługuje zarówno nowe funkcje, SccCreateSubProject jak i SccGetParentProjectPath. Można jednak użyć następującego wpisu rejestru, aby wyłączyć te zmiany i powrócić do poprzedniego zachowania wtyczki kontroli źródła interfejsu API w wersji 1.1:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001

Jeśli ten wpis rejestru nie istnieje lub jest ustawiony na dword:00000000, program Visual Studio próbuje użyć nowych funkcji SccCreateSubProject i SccGetParentProjectPath.

Jeśli wpis rejestru jest ustawiony na dword:00000001, program Visual Studio nie próbuje używać tych nowych funkcji, a operacje dodawania do kontroli źródła działają tak jak w poprzednich wersjach programu Visual Studio.

Zobacz też