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ıdan yalnızca kaynak denetimi eklentisi için anlamlı olan bir dize olan proje yolunu ister. Kullanıcı şu durumlarda çağrılır:
Yeni proje oluşturma
Var olan bir projeyi sürüm denetimine ekleme
Var olan bir sürüm denetimi projesini bulmaya çalışma
Sözdizimi
SCCRTN SccGetProjPath (
LPVOID pvContext,
HWND hWnd,
LPSTR lpUser,
LPSTR lpProjName,
LPSTR lpLocalPath,
LPSTR lpAuxProjPath,
BOOL bAllowChangePath,
LPBOOL pbNew
);
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ı.
lpUser
[in, out] Kullanıcı adı (NULL sonlandırıcısı dahil olmak üzere SCC_USER_SIZE aşmamak için)
lpProjName
[in, out] IDE projesinin, proje çalışma alanının veya derleme dosyasının adı (NULL sonlandırıcı dahil olmak üzere SCC_PRJPATH_SIZE aşmamak için).
lpLocalPath
[in, out] Projenin çalışma yolu. ise bAllowChangePath TRUE, kaynak denetimi eklentisi bu dizeyi değiştirebilir (null-terminator dahil olmak üzere _MAX_PATH aşmamak için).
lpAuxProjPath
[in, out] Döndürülen proje yolu için bir arabellek (NULL sonlandırıcısı da dahil olmak üzere SCC_PRJPATH_SIZE aşmamak).
bAllowChangePath
[in] Bu ise TRUE, kaynak denetimi eklentisi dizeyi lpLocalPath isteyebilir ve değiştirebilir.
pbNew
[in, out] gelen değer, yeni proje oluşturulup oluşturulmayacağını gösterir. Döndürülen değer, proje oluşturma işleminin başarılı olduğunu gösterir:
| Gelen | Yorumlama |
|---|---|
| TRUE | Kullanıcı yeni bir proje oluşturabilir. |
| FALSE | Kullanıcı yeni bir proje oluşturamayabilir. |
| Giden | Yorumlama |
|---|---|
| TRUE | Yeni bir proje oluşturuldu. |
| FALSE | Mevcut bir proje seçildi. |
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 | Proje başarıyla oluşturuldu veya alındı. |
| SCC_I_OPERATIONCANCELED | İşlem iptal edildi iletisiyle zaman aşımına uğrayabilir. |
| SCC_E_ACCESSFAILURE | Büyük olasılıkla ağ veya çekişme sorunlarından dolayı kaynak denetim sistemine erişilirken bir sorun oluştu. |
| SCC_E_CONNECTIONFAILURE | Kaynak denetim sistemine bağlanmaya çalışırken bir sorun oluştu. |
| SCC_E_NONSPECIFICERROR | Belirtilmeyen bir hata oluştu. |
Açıklamalar
Bu işlevin amacı, IDE'nin ve lpAuxProjPathparametrelerini lpProjName almasıdır. Kaynak denetimi eklentisi kullanıcıdan bu bilgileri istedikten sonra bu iki dizeyi IDE'ye geri geçirir. IDE, bu dizeleri çözüm dosyasında kalıcı hale getirerek kullanıcı bu projeyi her açtığında SccOpenProject'e geçirir. Bu dizeler, eklentinin bir projeyle ilişkili bilgileri izlemesini sağlar.
İşlev ilk çağrıldığında boş lpAuxProjPath bir dizeye ayarlanır. lProjName ayrıca boş olabilir veya kaynak denetimi eklentisinin kullanabileceği veya yoksayabileceği IDE proje adını içerebilir. İşlev başarıyla döndürdüğünde, eklenti karşılık gelen iki dizeyi döndürür. IDE bu dizeler hakkında hiçbir varsayımda bulunmaz, bunları kullanmaz ve kullanıcının bunları değiştirmesine izin vermez. Kullanıcı ayarları değiştirmek isterse, IDE önceki seferde aldığı değerleri geçirerek yeniden çağırır SccGetProjPath . Bu, eklentiye bu iki dize üzerinde tam denetim sağlar.
için lpUser, IDE bir kullanıcı adı geçirebilir veya işaretçiyi boş bir dizeye geçirebilir. Kullanıcı adı varsa, kaynak denetimi eklentisi bunu varsayılan olarak kullanmalıdır. Ancak, herhangi bir ad geçirilmediyse veya belirtilen adla oturum açma başarısız olduysa, eklenti kullanıcıdan oturum açma isteğinde bulunmalı ve geçerli bir oturum açma bilgisi aldığında adı yeniden lpUser geçirmelidir. Eklenti bu dizeyi değiştirebileceğinden, IDE her zaman boyut (SCC_USER_LEN+1) arabellek ayırır.
Not
IDE'nin gerçekleştirdiği ilk eylem, işleve veya SccGetProjPath işleve SccOpenProject yönelik bir çağrı olabilir. Bu nedenle, her ikisi de aynı lpUser parametreye sahiptir ve bu da kaynak denetimi eklentisinin kullanıcının her ikisinde de oturum açmasını sağlar. İşlevden dönüş bir hata olduğunu gösteriyor olsa bile, eklentinin bu dizeyi geçerli bir oturum açma adıyla doldurması gerekir.
lpLocalPath , kullanıcının projeyi tuttuğu dizindir. Boş bir dize olabilir. Şu anda tanımlanmış bir dizin yoksa (kaynak denetim sisteminden proje indirmeye çalışan bir kullanıcı gibi) ve ise bAllowChangePath TRUE, kaynak denetim eklentisi kullanıcıdan giriş isteyebilir veya içine kendi dizesini lpLocalPathyerleştirmek için başka bir yöntem kullanabilir. ise bAllowChangePath FALSE, kullanıcı belirtilen dizinde zaten çalıştığından eklenti dizeyi değiştirmemelidir.
Kullanıcı kaynak denetimine konulmak üzere yeni bir proje oluşturursa, kaynak denetimi eklentisi o sırada SccGetProjPath kaynak denetim sisteminde bu projeyi oluşturmayabilir. Bunun yerine, dizeyi için sıfır olmayan bir değerle pbNewbirlikte geri geçirir ve projenin kaynak denetim sisteminde oluşturulacağını belirtir.
Örneğin, Visual Studio'daki Yeni Proje sihirbazındaki bir kullanıcı projesini kaynak denetimine eklerse, Visual Studio bu işlevi çağırır ve eklenti, kaynak denetim sisteminde Visual Studio projesini içerecek yeni bir proje oluşturmanın uygun olup olmadığını belirler. Kullanıcı sihirbazı tamamlamadan önce İptal'e tıklarsa proje hiçbir zaman oluşturulmaz. Kullanıcı Tamam'a tıklarsa, Visual Studio öğesini çağırır SccOpenProjectSCC_OPT_CREATEIFNEWve bu sırada kaynak denetimli proje oluşturulur.