SccGetParentProjectPath, funkcja
Ta funkcja określa ścieżkę projektu nadrzędnego określonego projektu. Ta funkcja jest wywoływana, gdy użytkownik dodaje projekt programu Visual Studio do kontroli źródła.
Składnia
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
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).
lpProjPath
[in] Ciąg identyfikujący ścieżkę projektu (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).
lpParentProjPath
[in, out] Ciąg wyjściowy identyfikujący ścieżkę projektu nadrzędnego (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 | Ścieżka projektu nadrzędnego została pomyślnie uzyskana. |
SCC_E_INITIALIZEFAILED | Nie można zainicjować projektu. |
SCC_E_INVALIDUSER | Użytkownik nie mógł zalogować się do wtyczki kontroli źródła. |
SCC_E_UNKNOWNPROJECT | Wtyczka kontroli źródła nie jest znana w programie Project. |
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_PROJSYNTAXERR | Nieprawidłowa składnia projektu. |
SCC_E_CONNECTIONFAILURE | Problem z połączeniem ze sklepem. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Niepowodzeń nieokreślonych. |
Uwagi
Ta funkcja zwraca kod powodzenia lub błędu, a w przypadku pomyślnego wypełnienia zmiennej lpParentProjPath
pełną ścieżką projektu do określonego projektu.
Ta funkcja zwraca ścieżkę projektu nadrzędnego istniejącego projektu. W przypadku projektu głównego funkcja zwraca ścieżkę projektu, która została przekazana (czyli ta sama ścieżka głównego projektu). Należy pamiętać, że ścieżka projektu jest ciągiem zrozumiałym tylko dla wtyczki kontroli źródła.
Środowisko IDE jest również przygotowane do akceptowania zmian parametrów lpUser
i lpAuxProjPath
. Środowisko IDE będzie utrwalać te ciągi i przekazywać je do projektu SccOpenProject , gdy użytkownik otworzy ten projekt w przyszłości. W związku z tym te ciągi umożliwiają wtyczkę kontroli źródła w celu śledzenia informacji potrzebnych do skojarzenia z projektem.
Ta funkcja jest podobna do ścieżki SccGetProjPath, z tą różnicą, że nie monituje użytkownika o wybranie projektu. Ponadto nigdy nie tworzy nowego projektu, ale działa tylko z istniejącym projektem.
Wywołanie SccGetParentProjectPath
metody lpProjPath
i lpAuxProjPath
nie będzie puste i będzie odpowiadać prawidłowemu projektowi. Te ciągi są zwykle odbierane przez środowisko IDE z poprzedniego wywołania SccGetProjPath
funkcji.
Argumentem lpUser
jest nazwa użytkownika. Środowisko IDE przekaże tę samą nazwę użytkownika, która została wcześniej odebrana z SccGetProjPath
funkcji, 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 lpUser
pliku . Ponieważ wtyczka może zmienić ten ciąg, środowisko IDE zawsze przydzieli bufor o rozmiarze (SCC_USER_LEN
+1). 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 obie nowe funkcje, SccCreateSubProject i SccGetParentProjectPath
funkcję. Można jednak użyć następującego wpisu rejestru, aby wyłączyć te zmiany i przywrócić poprzednie zachowanie interfejsu API kontroli kodu źródłowego 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.