Udostępnij za pośrednictwem


SccGetProjPath, funkcja

Ta funkcja monituje użytkownika o ścieżkę projektu, która jest ciągiem zrozumiałym tylko dla wtyczki kontroli źródła. Jest on wywoływany, gdy użytkownik ma następujące uprawnienia:

  • Tworzenie nowego projektu

  • Dodawanie istniejącego projektu do kontroli wersji

  • Próba znalezienia istniejącego projektu kontroli wersji

Składnia

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

Parametry

pvContext

[in] Struktura 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 (aby nie przekraczać SCC_USER_SIZE, w tym terminator null)

lpProjName

[in, out] Nazwa projektu IDE, obszaru roboczego projektu lub pliku make (nie może przekraczać SCC_PRJPATH_SIZE, w tym terminator null).

lpLocalPath

[in, out] Ścieżka robocza projektu. Jeśli bAllowChangePath parametr ma TRUEwartość , wtyczka kontroli źródła może modyfikować ten ciąg (nie przekraczać _MAX_PATH, łącznie z terminatorem o wartości null).

lpAuxProjPath

[in, out] Bufor dla zwróconej ścieżki projektu (nie może przekraczać SCC_PRJPATH_SIZE, w tym terminator null).

bAllowChangePath

[in] Jeśli tak jest TRUE, wtyczka kontroli źródła może monitować i modyfikować lpLocalPath ciąg.

pbNew

[in, out] Wartość przychodząca wskazuje, czy utworzyć nowy projekt. Zwrócona wartość wskazuje powodzenie tworzenia projektu:

Przychodzące Interpretacja
PRAWDA Użytkownik może utworzyć nowy projekt.
FAŁSZ Użytkownik może nie utworzyć nowego projektu.
Wychodzące Interpretacja
PRAWDA Został utworzony nowy projekt.
FAŁSZ Wybrano istniejący projekt.

Wartość zwracana

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

Wartość Opis
SCC_OK Projekt został pomyślnie utworzony lub pobrany.
SCC_I_OPERATIONCANCELED operacja została anulowana.
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ą.
SCC_E_CONNECTIONFAILURE Wystąpił problem podczas próby nawiązania połączenia z systemem kontroli źródła.
SCC_E_NONSPECIFICERROR Wystąpił nieokreślony błąd.

Uwagi

Celem tej funkcji jest uzyskanie parametrów lpProjName i lpAuxProjPath. Gdy wtyczka kontroli źródła wyświetli monit o podanie tych informacji przez użytkownika, przekazuje te dwa ciągi z powrotem do środowiska IDE. Środowisko IDE utrwala te ciągi w pliku rozwiązania i przekazuje je do projektu SccOpenProject za każdym razem, gdy użytkownik otworzy ten projekt. Te ciągi umożliwiają wtyczkom śledzenie informacji skojarzonych z projektem.

Gdy funkcja jest najpierw wywoływana, lpAuxProjPath jest ustawiona na pusty ciąg. lProjName może być również pusty lub może zawierać nazwę projektu IDE, której wtyczka kontroli źródła może używać lub ignorować. Gdy funkcja zostanie pomyślnie zwrócona, wtyczka zwraca dwa odpowiadające im ciągi. Środowisko IDE nie przyjmuje żadnych założeń dotyczących tych ciągów, nie będzie ich używać i nie pozwoli użytkownikowi na ich modyfikowanie. Jeśli użytkownik chce zmienić ustawienia, środowisko IDE wywoła SccGetProjPath ponownie, przekazując te same wartości, które otrzymało wcześniej. Zapewnia to pełną kontrolę nad tymi dwoma ciągami wtyczki.

W przypadku lpUserprogramu środowisko IDE może przekazać nazwę użytkownika lub po prostu przekazać wskaźnik do pustego ciągu. Jeśli istnieje nazwa użytkownika, wtyczka kontroli źródła powinna używać jej jako domyślnej. Jeśli jednak nie przekazano żadnej nazwy lub jeśli logowanie nie powiodło się z daną nazwą, wtyczka powinna monitować użytkownika o zalogowanie się i przekazać nazwę z powrotem lpUser po otrzymaniu prawidłowego logowania. Ponieważ wtyczka może zmienić ten ciąg, środowisko IDE zawsze przydzieli bufor o rozmiarze (SCC_USER_LEN+1).

Uwaga

Pierwszą akcją wykonywaną przez środowisko IDE może być wywołanie SccOpenProject funkcji lub SccGetProjPath funkcji. W związku z tym oba te elementy mają identyczny lpUser parametr, który umożliwia wtyczkę kontroli źródła w celu zalogowania użytkownika w obu przypadkach. Nawet jeśli powrót z funkcji wskazuje błąd, wtyczka musi wypełnić ten ciąg prawidłową nazwą logowania.

lpLocalPath to katalog, w którym użytkownik przechowuje projekt. Może to być pusty ciąg. Jeśli obecnie nie zdefiniowano katalogu (tak jak w przypadku użytkownika próbującego pobrać projekt z systemu kontroli źródła) i jeśli bAllowChangePath jest TRUEto , wtyczka kontroli źródła może monitować użytkownika o wprowadzenie danych wejściowych lub użyć innej metody, aby umieścić własny ciąg w lpLocalPathpliku . Jeśli bAllowChangePath parametr ma FALSEwartość , wtyczka nie powinna zmieniać ciągu, ponieważ użytkownik już pracuje w określonym katalogu.

Jeśli użytkownik utworzy nowy projekt, który ma zostać umieszczony pod kontrolą źródła, wtyczka kontroli źródła może nie utworzyć go w systemie kontroli źródła w tym czasie SccGetProjPath jest wywoływana. Zamiast tego przekazuje z powrotem ciąg wraz z wartością inną niżzerowa dla pbNewelementu , co oznacza, że projekt zostanie utworzony w systemie kontroli źródła.

Jeśli na przykład użytkownik kreatora Nowy projekt w programie Visual Studio dodaje swój projekt do kontroli źródła, program Visual Studio wywołuje tę funkcję, a wtyczka określa, czy jest w porządku, aby utworzyć nowy projekt w systemie kontroli źródła, aby zawierał projekt programu Visual Studio. Jeśli użytkownik kliknie przycisk Anuluj przed ukończeniem pracy kreatora, projekt nigdy nie zostanie utworzony. Jeśli użytkownik kliknie przycisk OK, program Visual Studio wywołuje SccOpenProjectmetodę , przekazując SCC_OPT_CREATEIFNEWelement , a w tym czasie zostanie utworzony projekt kontrolowany przez źródło.

Zobacz też