Funkcja SccAddFromScc
Ta funkcja pozwala użytkownikowi przeglądać pliki, które znajdują się już w systemie kontroli źródła, a następnie tworzyć te pliki jako część bieżącego projektu. Na przykład ta funkcja może uzyskać wspólny plik nagłówka do bieżącego projektu bez kopiowania pliku. Zwracana tablica plików , zawiera listę plików lplpFileNames
, które użytkownik chce dodać do projektu IDE.
Składnia
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
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.
lpnFiles
[in, out] Bufor dla liczby plików, które są dodawane. (Dzieje się tak NULL
, jeśli pamięć wskazywana przez lplpFileNames
element ma zostać zwolniona. Zobacz uwagi, aby uzyskać szczegółowe informacje).
lplpFileNames
[in, out] Tablica wskaźników do wszystkich nazw plików bez ścieżek katalogu. Ta tablica jest przydzielana i zwalniana przez wtyczkę kontroli źródła. Jeśli lpnFiles
= 1 i lplpFileNames
nie NULL
, imię w tablicy wskazywane przez lplpFileNames
element zawiera folder docelowy.
Wartość zwracana
Implementacja wtyczki kontroli źródła tej funkcji powinna zwrócić jedną z następujących wartości:
Wartość | Opis |
---|---|
SCC_OK | Pliki zostały pomyślnie umieszczone i dodane do projektu. |
SCC_I_OPERATIONCANCELED | Operacja została anulowana bez efektu. |
SCC_I_RELOADFILE | Należy ponownie załadować plik lub projekt. |
Uwagi
Środowisko IDE wywołuje tę funkcję. Jeśli wtyczka kontroli źródła obsługuje określanie lokalnego folderu docelowego, środowisko IDE przechodzi lpnFiles
= 1 i przekazuje nazwę folderu lokalnego do lplpFileNames
.
Gdy wywołanie SccAddFromScc
funkcji zwróci, wtyczka ma przypisane wartości do lpnFiles
i lplpFileNames
, przydzielając pamięć dla tablicy nazw plików w razie potrzeby (należy pamiętać, że ta alokacja zastępuje wskaźnik w pliku ).lplpFileNames
Wtyczka kontroli źródła jest odpowiedzialna za umieszczenie wszystkich plików w katalogu użytkownika lub w określonym folderze oznaczeń. Następnie środowisko IDE dodaje pliki do projektu IDE.
Na koniec środowisko IDE wywołuje tę funkcję po raz drugi, przekazując NULL
element dla elementu lpnFiles
. Jest to interpretowane jako specjalny sygnał przez wtyczkę kontroli źródła w celu zwolnienia pamięci przydzielonej dla tablicy nazw plików w programie lplpFileNames``.
lplpFileNames
jest wskaźnikiem char ***
. Wtyczka kontroli źródła umieszcza wskaźnik do tablicy wskaźników do nazw plików, przekazując w ten sposób listę w standardowy sposób dla tego interfejsu API.
Uwaga
Początkowe wersje interfejsu API VSSCI nie umożliwiają wskazania projektu docelowego dla dodanych plików. Aby to uwzględnić, semantyka parametru lplpFIleNames
została ulepszona, aby był on parametrem w/wy, a nie parametrem wyjściowym. Jeśli określono tylko jeden plik, oznacza to, że wartość wskazywana przez lpnFiles
= 1, pierwszy element lplpFileNames
zawiera folder docelowy. Aby użyć tych nowych semantyki, środowisko IDE wywołuje SccSetOption
funkcję z parametrem ustawionym nOption
na SCC_OPT_SHARESUBPROJ
. Jeśli wtyczka kontroli źródła nie obsługuje semantyki, zwraca wartość SCC_E_OPTNOTSUPPORTED
. Spowoduje to wyłączenie korzystania z funkcji Dodaj z kontroli źródła. Jeśli wtyczka obsługuje funkcję Dodaj z kontroli źródła (SCC_CAP_ADDFROMSCC
), musi obsługiwać nową semantyka i zwracać polecenie SCC_I_SHARESUBPROJOK
.