Aracılığıyla paylaş


SccCreateSubProject işlevi

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.

Ayrıca bkz.