SccGetProjPath – funkce

Tato funkce vyzve uživatele k zadání cesty k projektu, což je řetězec, který je smysluplný pouze pro modul plug-in správy zdrojového kódu. Volá se, když je uživatel:

  • Vytvoření nového projektu

  • Přidání existujícího projektu do správy verzí

  • Pokus o nalezení existujícího projektu správy verzí

Syntaxe

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

Parametry

pvContext

[v] Kontextová struktura modulu plug-in správy zdrojového kódu.

Hwnd

[v] Popisovač okna integrovaného vývojového prostředí(IDE), které modul plug-in správy zdrojového kódu může použít jako nadřazený prvek pro všechna dialogová okna, která poskytuje.

lpUser

[in, out] Uživatelské jméno (nesmí překročit SCC_USER_SIZE, včetně ukončovací funkce NULL)

lpProjName

[in, out] Název projektu IDE, pracovního prostoru projektu nebo souboru pravidel (nesmí překročit SCC_PRJPATH_SIZE, včetně ukončovacího znaku NULL).

lpLocalPath

[in, out] Pracovní cesta projektu. Pokud bAllowChangePath ano TRUE, modul plug-in správy zdrojového kódu může tento řetězec upravit (nesmí překročit _MAX_PATH, včetně ukončovací funkce null).

lpAuxProjPath

[in, out] Vyrovnávací paměť pro vrácenou cestu projektu (nesmí překročit SCC_PRJPATH_SIZE, včetně ukončovací funkce NULL).

bAllowChangePath

[v] V takovém případě TRUEmůže modul plug-in správy zdrojového kódu zobrazit výzvu k zadání a úpravě lpLocalPath řetězce.

pbNew

[in, out] Hodnota, která přichází, označuje, jestli se má vytvořit nový projekt. Vrácená hodnota označuje úspěch vytvoření projektu:

Příchozí Interpretace
TRUE Uživatel může vytvořit nový projekt.
FALSE Uživatel nemusí vytvořit nový projekt.
Odchozí Interpretace
TRUE Byl vytvořen nový projekt.
FALSE Byl vybrán existující projekt.

Vrácená hodnota

Očekává se, že implementace modulu plug-in správy zdrojového kódu této funkce vrátí jednu z následujících hodnot:

Hodnota Popis
SCC_OK Projekt byl úspěšně vytvořen nebo načten.
SCC_I_OPERATIONCANCELED The operation was canceled (Chyba při odeslání žádosti do Load Balanceru: operace byla zrušena).
SCC_E_ACCESSFAILURE Při přístupu k systému správy zdrojového kódu došlo k potížím, pravděpodobně kvůli problémům se sítí nebo kolizí.
SCC_E_CONNECTIONFAILURE Při pokusu o připojení k systému správy zdrojového kódu došlo k potížím.
SCC_E_NONSPECIFICERROR Došlo k nespecifikované chybě.

Poznámky

Účelem této funkce je, aby integrované vývojové prostředí získalo parametry lpProjName a lpAuxProjPath. Jakmile modul plug-in správy zdrojového kódu vyzve uživatele k zadání těchto informací, předá tyto dva řetězce zpět do integrovaného vývojového prostředí ( IDE). Integrované vývojové prostředí (IDE) uchovává tyto řetězce v souboru řešení a předává je do projektu SccOpenProject při každém otevření tohoto projektu uživatelem. Tyto řetězce umožňují modulu plug-in sledovat informace přidružené k projektu.

Při prvním zavolání lpAuxProjPath funkce je nastavena na prázdný řetězec. lProjName může být také prázdný nebo může obsahovat název projektu IDE, který může modul plug-in správy zdrojového kódu použít nebo ignorovat. Po úspěšném vrácení funkce vrátí modul plug-in dva odpovídající řetězce. Integrované vývojové prostředí (IDE) nepředpokládá o těchto řetězcích žádné předpoklady, nebude je používat a neumožní uživateli je upravovat. Pokud chce uživatel změnit nastavení, integrované vývojové prostředí znovu zavolá SccGetProjPath a předá stejné hodnoty, které obdržel předchozí čas. Díky tomu má modul plug-in úplnou kontrolu nad těmito dvěma řetězci.

Integrované lpUservývojové prostředí (IDE) může předat uživatelské jméno nebo může jednoduše předat ukazatel na prázdný řetězec. Pokud je uživatelské jméno, modul plug-in správy zdrojového kódu by ho měl použít jako výchozí. Pokud se ale nepředá žádné jméno nebo pokud přihlášení s daným jménem selhalo, měl by modul plug-in vyzvat uživatele k přihlášení a předat ho zpět lpUser , když obdrží platné přihlášení. Protože modul plug-in může tento řetězec změnit, integrované vývojové prostředí vždy přidělí vyrovnávací paměť velikosti (SCC_USER_LEN+1).

Poznámka:

První akcí, kterou integrované vývojové prostředí provádí, může být volání SccOpenProject funkce nebo SccGetProjPath funkce. Oba z nich tedy mají identický lpUser parametr, který umožňuje modulu plug-in správy zdrojového kódu přihlásit uživatele v každém okamžiku. I když návrat z funkce značí selhání, musí modul plug-in vyplnit tento řetězec platným přihlašovacím jménem.

lpLocalPath je adresář, ve kterém uživatel projekt uchovává. Může to být prázdný řetězec. Pokud není aktuálně definován žádný adresář (jako v případě uživatele, který se pokouší stáhnout projekt ze systému správy zdrojového kódu) a pokud bAllowChangePath je TRUE, modul plug-in správy zdrojového kódu může uživatele vyzvat k zadání vstupu nebo použít jinou metodu k umístění vlastního řetězce do lpLocalPath. Pokud bAllowChangePath ano FALSE, modul plug-in by neměl změnit řetězec, protože uživatel již pracuje v zadaném adresáři.

Pokud uživatel vytvoří nový projekt, který se umístí do správy zdrojového kódu, modul plug-in správy zdrojového kódu ho nemusí ve skutečnosti vytvořit v systému správy zdrojového kódu v době SccGetProjPath volání. Místo toho předá řetězec zpět spolu s nenulovou hodnotou pro pbNew, což znamená, že projekt bude vytvořen v systému správy zdrojového kódu.

Pokud například uživatel v průvodci Novým projektem v sadě Visual Studio přidá svůj projekt do správy zdrojového kódu, Visual Studio zavolá tuto funkci a modul plug-in určí, jestli je v pořádku vytvořit nový projekt v systému správy zdrojového kódu, který bude obsahovat projekt sady Visual Studio. Pokud uživatel před dokončením průvodce klikne na tlačítko Storno , projekt se nikdy nevytvořil. Pokud uživatel klikne na OK, Visual Studio volá SccOpenProject, předává SCC_OPT_CREATEIFNEWa zdrojový řízený projekt je vytvořen v tuto chvíli.

Viz také