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, belirtilen projenin üst proje yolunu belirler. Bu işlev, kullanıcı kaynak denetimine bir Visual Studio projesi eklerken çağrılır.
Sözdizimi
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Parametreler
pContext
[in] Kaynak denetimi eklentisi bağlam işaretçisi.
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 en fazla SCC_USER_SIZE).
lpProjPath
[in] Proje yolunu tanımlayan dize (NULL sonlandırıcısı dahil olmak üzere en fazla SCC_PRJPATH_SIZE).
lpAuxProjPath
[in, out] Projeyi tanımlayan yardımcı dize (NULL sonlandırıcı dahil olmak üzere SCC_PRJPATH_SIZE kadar).
lpParentProjPath
[in, out] Üst proje yolunu tanımlayan çıkış dizesi (NULL sonlandırıcı dahil olmak üzere en fazla SCC_PRJPATH_SIZE).
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 | Üst proje yolu başarıyla elde edildi. |
SCC_E_INITIALIZEFAILED | Proje başlatılamadı. |
SCC_E_INVALIDUSER | Kullanıcı kaynak denetimi eklentisinde oturum açamadı. |
SCC_E_UNKNOWNPROJECT | Project, kaynak denetimi eklentisi tarafından bilinmiyor. |
SCC_E_INVALIDFILEPATH | Geçersiz veya kullanılamaz dosya yolu. |
SCC_E_NOTAUTHORIZED | Kullanıcının bu işlemi gerçekleştirmesine izin verilmiyor. |
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. Yeniden deneme önerilir. |
SCC_E_PROJSYNTAXERR | Geçersiz proje söz dizimi. |
SCC_E_CONNECTIONFAILURE | Depolama bağlantısı sorunu. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Özel olmayan hata. |
Açıklamalar
Bu işlev bir başarı veya başarısızlık kodu döndürür ve başarılı olursa değişkeni lpParentProjPath
belirtilen projenin tam proje yolu ile doldurur.
Bu işlev, var olan bir projenin üst proje yolunu döndürür. Kök proje için işlev, geçirilen proje yolunu (aynı kök proje yolu) döndürür. Proje yolunun yalnızca kaynak denetimi eklentisi için anlamlı olan bir dize olduğunu unutmayın.
IDE, ve lpAuxProjPath
parametrelerinde lpUser
yapılan değişiklikleri de kabul etmeye hazır. IDE bu dizeleri kalıcı hale getirecektir ve gelecekte kullanıcı bu projeyi açtığında bunları SccOpenProject'e geçirir. Bu nedenle bu dizeler, kaynak denetimi eklentisinin bir projeyle ilişkilendirmesi gereken bilgileri izlemesi için bir yol sağlar.
Bu işlev, kullanıcıdan proje seçmesini istememesi dışında SccGetProjPath'e benzer. Ayrıca hiçbir zaman yeni proje oluşturmaz, ancak yalnızca mevcut bir projeyle çalışır.
çağrıldığında SccGetParentProjectPath
boş lpProjPath
lpAuxProjPath
olmaz ve geçerli bir projeye karşılık gelir. Bu dizeler genellikle IDE tarafından işleve SccGetProjPath
yapılan önceki bir çağrıdan alınır.
Bağımsız lpUser
değişken, kullanıcı adıdır. IDE, işlevden SccGetProjPath
daha önce aldığı kullanıcı adını geçirir ve kaynak denetimi eklentisi varsayılan olarak adı kullanmalıdır. Kullanıcının eklentiyle zaten açık bir bağlantısı varsa, eklentinin işlevin sessiz çalıştığından emin olmak için istemleri ortadan kaldırmayı denemesi gerekir. Ancak, oturum açma başarısız olursa eklenti kullanıcıdan oturum açma isteğinde bulunmalıdır ve geçerli bir oturum açma bilgisi aldığında adı 'ye lpUser
geri geçirmelidir. Eklenti bu dizeyi değiştirebileceğinden, IDE her zaman boyut (SCC_USER_LEN
+1) arabellek ayırır. Dize değiştirilirse, yeni dize geçerli bir oturum açma adı olmalıdır (en azından eski dize kadar geçerli).
SccCreateSubProject ve SccGetParentProjectPath için teknik notlar
Visual Studio'da kaynak denetimine çözüm ve proje ekleme işlemi, kullanıcıdan kaynak denetim sistemindeki konumları seçmesi istendiği sayısını en aza indirmek için basitleştirildi. Bir kaynak denetimi eklentisi yeni işlevlerin her ikisini de destekliyorsa, bu değişiklikler Visual Studio tarafından etkinleştirilir, SccCreateSubProject ve SccGetParentProjectPath
işlevi. Ancak, aşağıdaki kayıt defteri girişi bu değişiklikleri devre dışı bırakmak ve önceki Visual Studio (Kaynak Denetimi Eklentisi API Sürüm 1.1) davranışına geri dönmek için kullanılabilir:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001
Bu kayıt defteri girdisi yoksa veya dword:00000000 olarak ayarlandıysa, Visual Studio yeni işlevleri SccCreateSubProject
ve SccGetParentProjectPath
kullanmayı dener.
Kayıt defteri girdisi dword:00000001 olarak ayarlanırsa, Visual Studio bu yeni işlevleri kullanmaya çalışmaz ve kaynak denetimine ekleme işlemleri, Visual Studio'nun önceki sürümlerinde olduğu gibi çalışır.