Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu işlev, kullanıcının zaten kaynak denetim sisteminde olan dosyalara göz atmasını ve ardından bu dosyaları geçerli projenin bir parçası yapmasını sağlar. Örneğin, bu işlev dosyayı kopyalamadan geçerli projeye ortak bir üst bilgi dosyası alabilir. dosya dönüş dizisi, lplpFileNameskullanıcının IDE projesine eklemek istediği dosyaların listesini içerir.
Sözdizimi
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
Parametreler
pvContext
[in] Kaynak denetimi eklentisi bağlam yapısı.
hWnd
[in] Kaynak denetimi eklentisinin sağladığı iletişim kutuları için üst öğe olarak kullanabileceği IDE penceresinin tanıtıcısı.
lpnFiles
[in, out] eklenen dosya sayısı için bir arabellek. (Bu, NULL tarafından lplpFileNames işaret edilen belleğin serbest bırakılmasıdır. Ayrıntılar için bkz. Açıklamalar.)
lplpFileNames
[in, out] Dizin yolları olmayan tüm dosya adlarına yönelik bir işaretçi dizisi. Bu dizi kaynak denetimi eklentisi tarafından ayrılır ve serbesttir. lpnFiles = 1 ise ve lplpFileNames değilseNULL, dizinin işaret ettiği lplpFileNames dizinin adı hedef klasörü içerir.
Dönüş Değeri
Bu işlevin kaynak denetimi eklentisinin aşağıdaki değerlerden birini döndürmesi beklenir:
| Value | Açıklama |
|---|---|
| SCC_OK | Dosyalar başarıyla konumlandırıldı ve projeye eklendi. |
| SCC_I_OPERATIONCANCELED | İşlem hiçbir etkisi olmadan iptal edildi. |
| SCC_I_RELOADFILE | Bir dosya veya projenin yeniden yüklenmesi gerekir. |
Açıklamalar
IDE bu işlevi çağırır. Kaynak denetimi eklentisi yerel hedef klasör belirtmeyi destekliyorsa, IDE = 1 değerini geçirir lpnFiles ve yerel klasör adını içine lplpFileNamesgeçirir.
İşleve SccAddFromScc yapılan çağrı döndürdüğünde eklenti, dosya adı dizisi için belleği gerektiği şekilde ayırarak ve lplpFileNamesöğesine değerler lpnFiles atamıştır (bu ayırmanın içindeki lplpFileNamesişaretçinin yerini aldığına dikkat edin). Kaynak denetimi eklentisi, tüm dosyaları kullanıcının dizinine veya belirtilen atama klasörüne yerleştirmekle sorumludur. Ardından IDE, dosyaları IDE projesine ekler.
Son olarak, IDE bu işlevi ikinci kez çağırarak NULL için lpnFilesgeçirir. Bu, içinde dosya adı dizisi için ayrılan belleği serbest bırakmak için kaynak denetimi eklentisi tarafından özel bir sinyal olarak yorumlanır lplpFileNames``.
lplpFileNames bir char *** işaretçidir. Kaynak denetimi eklentisi, dosya adlarına yönelik bir işaretçi dizisine bir işaretçi yerleştirir ve bu nedenle listeyi bu API için standart şekilde geçirir.
Not
VSSCI API'sinin ilk sürümleri, eklenen dosyalar için hedef projeyi göstermek için bir yol sağlamadı. Buna uyum sağlamak için parametresinin lplpFIleNames semantiği, bunu çıkış parametresi yerine bir giriş/çıkış parametresi haline getirecek şekilde geliştirilmiştir. Yalnızca tek bir dosya belirtilirse, yani = 1 ile lpnFiles işaret edilen değer, ardından ilk öğesi lplpFileNames hedef klasörü içerir. Bu yeni semantiği kullanmak için IDE, parametresi olarak ayarlanmış SCC_OPT_SHARESUBPROJişlevi nOption çağırırSccSetOption. Kaynak denetimi eklentisi semantiği desteklemiyorsa döndürür SCC_E_OPTNOTSUPPORTED. Bunun yapılması, Kaynak Denetiminden Ekle özelliğinin kullanımını devre dışı bırakır. Bir eklenti Kaynak Denetiminden Ekle özelliğini ()SCC_CAP_ADDFROMSCC destekliyorsa, yeni semantiği desteklemeli ve döndürmelidirSCC_I_SHARESUBPROJOK.