SccGetCommandOptions, funkcja
Ta funkcja monituje użytkownika o opcje zaawansowane dla danego polecenia.
Składnia
SCCRTN SccGetCommandOptions(
LPVOID pvContext,
HWND hWnd,
enum SCCCOMMAND iCommand,
LPCMDOPTS* ppvOptions
);
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.
Icommand
[in] Polecenie, dla którego są żądane opcje zaawansowane (zobacz Kod polecenia, aby uzyskać możliwe wartości).
ppvOptions
[in] Struktura opcji (może być NULL
również ).
Wartość zwracana
Implementacja wtyczki kontroli źródła tej funkcji powinna zwrócić jedną z następujących wartości:
Wartość | Opis |
---|---|
SCC_OK | Powodzenie. |
SCC_I_ADV_SUPPORT | Wtyczka kontroli źródła obsługuje zaawansowane opcje dla polecenia. |
SCC_I_OPERATIONCANCELED | Użytkownik anulował okno dialogowe Opcje wtyczki kontroli źródła. |
SCC_E_OPTNOTSUPPORTED | Wtyczka kontroli źródła nie obsługuje tej operacji. |
SCC_E_ISCHECKEDOUT | Nie można wykonać tej operacji w pliku, który jest obecnie wyewidencjonowany. |
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_NONSPECIFICERROR | Niepowodzeń nieokreślonych. |
Uwagi
Środowisko IDE wywołuje tę funkcję po raz pierwszy za ppvOptions
=NULL
pomocą polecenia , aby określić, czy wtyczka kontroli źródła obsługuje funkcję opcji zaawansowanych dla określonego polecenia. Jeśli wtyczka obsługuje funkcję dla tego polecenia, środowisko IDE wywołuje tę funkcję ponownie, gdy użytkownik żąda zaawansowanych opcji (zwykle zaimplementowanych jako przycisk Zaawansowane w oknie dialogowym) i dostarcza wskaźnik inny niż NULL dla ppvOptions
tego wskazuje NULL
wskaźnik. Wtyczka przechowuje wszystkie zaawansowane opcje określone przez użytkownika w strukturze prywatnej i zwraca wskaźnik do tej struktury w pliku ppvOptions
. Ta struktura jest następnie przekazywana do wszystkich innych funkcji interfejsu API wtyczki kontroli kodu źródłowego, które muszą o niej wiedzieć, w tym do kolejnych wywołań SccGetCommandOptions
funkcji.
Przykładem może być wyjaśnienie tej sytuacji.
Użytkownik wybiera polecenie Pobierz , a środowisko IDE wyświetla okno dialogowe Pobieranie . Środowisko IDE wywołuje SccGetCommandOptions
funkcję z ustawioną wartością iCommand
SCC_COMMAND_GET
i ppvOptions
ustawioną na NULL
. Jest to interpretowane przez wtyczkę kontroli źródła jako pytanie "Czy masz jakieś zaawansowane opcje dla tego polecenia?" Jeśli wtyczka zwróci SCC_I_ADV_SUPPORT
wartość , środowisko IDE wyświetli przycisk Zaawansowane w oknie dialogowym Pobieranie .
Gdy użytkownik po raz pierwszy kliknie przycisk Zaawansowane , środowisko IDE ponownie wywołuje SccGetCommandOptions
funkcję, tym razem z wartością innąNULL``ppvOptions
niż wskazującą NULL
wskaźnik. Wtyczka wyświetla własne okno dialogowe Pobieranie opcji , wyświetla użytkownikowi monit o informacje, umieszcza te informacje we własnej strukturze i zwraca wskaźnik do tej struktury w pliku ppvOptions
.
Jeśli użytkownik ponownie kliknie pozycję Zaawansowane w tym samym oknie dialogowym, środowisko IDE ponownie wywołuje SccGetCommandOptions
funkcję bez zmiany ppvOptions
, aby struktura została przekazana z powrotem do wtyczki. Dzięki temu wtyczka może ponownie zainicjować okno dialogowe z wartościami ustawionymi wcześniej przez użytkownika. Wtyczka modyfikuje strukturę w miejscu przed zwróceniem.
Na koniec, gdy użytkownik kliknie przycisk OK w oknie dialogowym Pobieranie środowiska IDE, środowisko IDE wywołuje SccGet, przekazując strukturę zwróconą w ppvOptions
pliku , która zawiera opcje zaawansowane.
Uwaga
Polecenie SCC_COMMAND_OPTIONS
jest używane, gdy środowisko IDE wyświetla okno dialogowe Opcje , które pozwala użytkownikowi ustawić preferencje, które kontrolują sposób działania integracji. Jeśli wtyczka kontroli źródła chce podać własne preferencje okno dialogowe, może wyświetlić go z przycisku Zaawansowane w oknie dialogowym preferencji środowiska IDE. Wtyczka jest odpowiedzialna wyłącznie za pobieranie i utrwalanie tych informacji; środowisko IDE nie używa go ani nie modyfikuje.