Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 i lpAuxProjPath 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 lpParentProjName lpAuxProjPath 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.