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ě TRUE
můž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é lpUser
vý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_CREATEIFNEW
a zdrojový řízený projekt je vytvořen v tuto chvíli.