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 lpUserpliku . 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 SccCreateSubProjectiSccGetParentProjectPath.

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ż