Aracılığıyla paylaş


SccGetParentProjectPath işlevi

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 lpUsergeri 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 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.