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 var olan bir kaynak denetimi projesini açar veya yeni bir proje oluşturur.
Sözdizimi
SCCRTN SccOpenProject (
LPVOID pvContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjName,
LPCSTR lpLocalProjPath,
LPSTR lpAuxProjPath,
LPCSTR lpComment,
LPTEXTOUTPROC lpTextOutProc,
LONG dwFlags
);
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ının adı (NULL sonlandırıcısı dahil olmak üzere SCC_USER_SIZE aşmamak için).
lpProjName
[in] Projenin adını tanımlayan dize.
lpLocalProjPath
[in] Projenin çalışma klasörünün yolu.
lpAuxProjPath
[in, out]Projeyi tanımlayan isteğe bağlı bir yardımcı dize (NULL sonlandırıcısı dahil olmak üzere SCC_AUXPATH_SIZE aşmamak için).
lpComment
[in] Oluşturulmakta olan yeni bir projeye açıklama ekleyin.
lpTextOutProc
[in] Kaynak denetimi eklentisinden metin çıktısını görüntülemek için isteğe bağlı bir geri çağırma işlevi.
dwFlags
[in] Proje kaynak denetimi eklentisi tarafından bilinmiyorsa yeni bir projenin oluşturulması gerekip gerekmediğini bildirir. Değer, ve'nin SCC_OP_CREATEIFNEW bir bileşimi olabilir SCC_OP_SILENTOPEN.
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 | Projeyi açmada başarı. |
| SCC_E_INITIALIZEFAILED | Proje başlatılamadı. |
| SCC_E_INVALIDUSER | Kullanıcı kaynak denetim sisteminde oturum açamadı. |
| SCC_E_COULDNOTCREATEPROJECT | Proje çağrıdan önce mevcut değildi; SCC_OPT_CREATEIFNEW bayrağı ayarlandı, ancak proje oluşturulamadı. |
| SCC_E_PROJSYNTAXERR | Geçersiz proje söz dizimi. |
| SCC_E_UNKNOWNPROJECT | Proje kaynak denetimi eklentisi tarafından bilinmiyor ve SCC_OPT_CREATEIFNEW bayrak ayarlanmadı. |
| 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_NONSPECFICERROR | Özel olmayan bir hata; kaynak denetim sistemi başlatılmadı. |
Açıklamalar
IDE bir kullanıcı adı ()lpUser 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 oturum açma işlemi belirtilen adla başarısız olduysa, eklenti kullanıcıdan oturum açmasını istemeli ve geçerli bir oturum açma. bilgisi aldığında geçerli adı lpUser döndürmelidir Çünkü eklenti kullanıcı adı dizesini değiştirebileceğinden, IDE her zaman boyut (SCC_USER_LEN+1 veya SCC_USER_SIZE) arabellek ayırır. null sonlandırıcı için boşluk içerir).
Not
IDE'nin gerçekleştirmesi gereken ilk eylem, işleve veya SccGetProjPath'e SccOpenProjectyapılan bir çağrı olabilir. Bu nedenle her ikisi de aynı lpUser parametreye sahiptir.
lpAuxProjPath ve lpProjName çözüm dosyasından okunur veya işlev çağrısından SccGetProjPath döndürülür. Bu parametreler, kaynak denetimi eklentisinin projeyle ilişkilendirir ve yalnızca eklenti için anlamlı olan dizeleri içerir. Çözüm dosyasında böyle bir dize yoksa ve kullanıcıdan göz atması istenmediyse (işlev aracılığıyla SccGetProjPath bir dize döndürür), IDE hem hem lpProjNamede lpAuxProjPath için boş dizeler geçirir ve bu işlev döndürdüğünde eklenti tarafından bu değerlerin güncelleştirilmesini bekler.
lpTextOutProc , komut sonucu çıkışını görüntülemek amacıyla kaynak denetimi eklentisine IDE tarafından sağlanan bir geri çağırma işlevinin işaretçisidir. Bu geri çağırma işlevi LPTEXTOUTPROC'da ayrıntılı olarak açıklanmıştır.
Not
Kaynak denetimi eklentisi bundan yararlanmak istiyorsa, SccInitialize içinde bayrağını SCC_CAP_TEXTOUT ayarlamış olmalıdır. Bu bayrak ayarlanmadıysa veya IDE bu özelliği desteklemiyorsa olacaktır lpTextOutProc NULL.
parametresi, dwFlags açılan projenin şu anda mevcut olmaması durumunda sonucu denetler. İki bit böceğinden SCC_OP_CREATEIFNEW oluşur ve SCC_OP_SILENTOPEN. Açılan proje zaten varsa, işlev yalnızca projeyi açar ve döndürür SCC_OK. Proje yoksa ve bayrağı açıksa SCC_OP_CREATEIFNEW , kaynak denetimi eklentisi projeyi kaynak denetim sisteminde oluşturabilir, açabilir ve döndürebilir SCC_OK. Proje yoksa ve bayrak kapalıysa SCC_OP_CREATEIFNEW , eklenti bayrağı denetlemelidir SCC_OP_SILENTOPEN . Bu bayrak açık değilse, eklenti kullanıcıdan proje adı isteyebilir. Bu bayrak açıksa eklenti yalnızca döndürmelidir SCC_E_UNKNOWNPROJECT.
Arama Sırası
Olayların normal seyrinde, SccInitialize ilk olarak bir kaynak denetimi oturumu açmak için çağrılır. Oturum, çağrısından SccOpenProjectve ardından diğer Kaynak Denetimi Eklentisi API işlev çağrılarından oluşabilir ve SccCloseProject çağrısıyla sonlandırılır. Bu tür oturumlar, SccUninitialize çağrılmadan önce birkaç kez tekrarlanabilir.
Kaynak denetimi eklentisi biti SCC_CAP_REENTRANT içinde SccInitializeayarlarsa, yukarıdaki oturum dizisi paralel olarak birçok kez tekrarlanabilir. Farklı pvContext yapılar, her pvContext birinin aynı anda bir açık projeyle ilişkilendirildiği farklı oturumları izler. parametresine pvContext bağlı olarak, eklenti belirli bir çağrıda hangi projeye başvurulabileceğini belirleyebilir. Yetenek biti SCC_CAP_REENTRANT ayarlanmamışsa, etkin olmayan kaynak denetimi eklentilerinin birden çok projeyle çalışma yetenekleri sınırlıdır.
Not
Bit, SCC_CAP_REENTRANT Kaynak Denetimi Eklentisi API'sinin 1.1 sürümünde tanıtıldı. Bu ayarlanmamış veya sürüm 1.0'da yoksayılır ve tüm sürüm 1.0 kaynak denetimi eklentilerinin güvenilir olmadığı varsayılır.