Aracılığıyla paylaş


SccAddFromScc işlevi

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.

Ayrıca bkz.