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, bağımsız değişken tarafından lpParentProjPath belirtilen mevcut bir üst proje altında verilen ada sahip bir alt proje oluşturur.
Sözdizimi
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
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ı dahil olmak üzere en fazla SCC_USER_SIZE).
lpParentProjPath
[in] Üst projenin yolunu tanımlayan bir dize (NULL sonlandırıcısı dahil olmak üzere en fazla SCC_PRJPATH_SIZE).
lpSubProjName
[in] Önerilen alt proje adı (NULL sonlandırıcı 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).
lpSubProjPath
[in, out] Alt projenin yolunu tanımlayan çıkış dizesi (NULL sonlandırıcısı da 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 | Alt proje başarıyla oluşturuldu. |
| SCC_E_INITIALIZEFAILED | Üst proje başlatılamadı. |
| SCC_E_INVALIDUSER | Kullanıcı kaynak denetim sisteminde oturum açamadı. |
| SCC_E_COULDNOTCREATEPROJECT | Alt proje oluşturulamıyor. |
| SCC_E_PROJSYNTAXERR | Geçersiz proje söz dizimi. |
| SCC_E_UNKNOWNPROJECT | Üst proje, 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_CONNECTIONFAILURE | Kaynak denetimi eklentisi bağlantı sorunu oluştu. |
| SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Özel olmayan hata. |
Açıklamalar
Adlı bir alt proje zaten varsa, işlev varsayılan adı değiştirerek benzersiz bir tane oluşturabilir, örneğin "_<number>" ekleyebilir. Çağıran, , lpSubProjPathve lpAuxProjPathdeğişikliklerini lpUserkabul etmeye hazır olmalıdır. Ve lpSubProjPath lpAuxProjPath bağımsız değişkenleri daha sonra SccOpenProject çağrısında kullanılır. Bunlar, iade edildikten sonra arayan tarafından değiştirilmemelidir. Bu dizeler, kaynak denetimi eklentisinin bir projeyle ilişkilendirmesi gereken bilgileri izlemesi için bir yol sağlar. Eklenti, görüntüleme için uygun olmayan biçimlendirilmiş bir dize kullanabileceğinden, çağıran IDE döndürüldükten sonra bu iki parametreyi görüntülemez. İşlev bir başarı veya hata kodu döndürür ve başarılı olursa değişkeni lpSubProjPath yeni projenin tam proje yolu ile doldurur.
Bu işlev, SccGetProjPath'e benzer, ancak kullanıcıdan bir proje seçmesini istemesi yerine sessizce bir proje oluşturur. SccCreateSubProject İşlev çağrıldığında boş lpParentProjName lpAuxProjPath olmaz ve geçerli bir projeye karşılık gelir. Bu dizeler genellikle IDE tarafından işleve veya SccGetParentProjectPath'e SccGetProjPathyapılan önceki bir çağrıdan alınır.
Bağımsız lpUser değişken, kullanıcı adıdır. IDE, daha önce 'den SccGetProjPathaldığı kullanıcı adını geçirir ve kaynak denetimi eklentisi varsayılan olarak bu 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 lpUsergeri geçirmelidir. Eklenti bu dizeyi değiştirebileceğinden, IDE her zaman boyut arabelleği (null sonlandırıcı için alan içeren SCC_USER_LEN+1 veya SCC_USER_SIZE) 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 hem yeni işlevleri hem de 'yi destekliyorsa, SccCreateSubProject SccGetParentProjectPathbu değişiklikler Visual Studio tarafından etkinleştirilir. Ancak, aşağıdaki kayıt defteri girdisi 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 SccGetParentProjectPathkullanmayı 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.