SccCreateSubProject – funkce
Tato funkce vytvoří dílčí projekt s daným názvem pod existujícím nadřazeným projektem určeným argumentem lpParentProjPath
.
Syntaxe
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
Parametry
pContext
[v] Kontextový ukazatel 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 (až SCC_USER_SIZE včetně ukončovací funkce NULL).
lpParentProjPath
[v] Řetězec identifikující cestu nadřazeného projektu (až do SCC_PRJPATH_SIZE, včetně ukončovací funkce NULL).
lpSubProjName
[v] Navrhovaný název dílčího projektu (až SCC_PRJPATH_SIZE, včetně ukončovací funkce NULL).
lpAuxProjPath
[in, out] Pomocný řetězec identifikující projekt (až SCC_PRJPATH_SIZE, včetně ukončovací funkce NULL).
lpSubProjPath
[in, out] Výstupní řetězec identifikující cestu pro dílčí projekt (až do SCC_PRJPATH_SIZE, včetně ukončovací funkce NULL).
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 | Dílčí projekt byl úspěšně vytvořen. |
SCC_E_INITIALIZEFAILED | Nadřazený projekt nelze inicializovat. |
SCC_E_INVALIDUSER | Uživatel se nemohl přihlásit k systému správy zdrojového kódu. |
SCC_E_COULDNOTCREATEPROJECT | Dílčí projekt nelze vytvořit. |
SCC_E_PROJSYNTAXERR | Neplatná syntaxe projektu |
SCC_E_UNKNOWNPROJECT | Nadřazený projekt není pro modul plug-in správy zdrojového kódu neznámý. |
SCC_E_INVALIDFILEPATH | Neplatná nebo nepoužitelná cesta k souboru |
SCC_E_NOTAUTHORIZED | Uživatel nemůže tuto operaci provést. |
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í. Doporučuje se opakování. |
SCC_E_CONNECTIONFAILURE | Došlo k problému s připojením modulu plug-in správy zdrojového kódu. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Nespecifické selhání. |
Poznámky
Pokud dílčí projekt s názvem již existuje, může funkce změnit výchozí název tak, aby vytvořil jedinečný projekt, například přidáním argumentu "_<number>". Volající musí být připraven přijmout změny v lpUser
lpSubProjPath
, a lpAuxProjPath
. Argumenty lpSubProjPath
se lpAuxProjPath
pak použijí při volání projektu SccOpenProject. Volající by je neměl při návratu upravovat. Tyto řetězce poskytují způsob, jak modul plug-in správy zdrojového kódu sledovat informace, které potřebuje přidružit k projektu. Integrované vývojové prostředí volajícího tyto dva parametry po návratu nezobrazí, protože modul plug-in může použít formátovaný řetězec, který nemusí být vhodný pro zobrazení. Funkce vrátí kód úspěchu nebo selhání a v případě úspěchu vyplní proměnnou lpSubProjPath
úplnou cestou projektu k novému projektu.
Tato funkce je podobná SccGetProjPath, s tím rozdílem, že bezobslužně vytvoří projekt místo výzvy uživatele, aby ho vybral. SccCreateSubProject
Při zavolání lpParentProjName
funkce nebude prázdná a lpAuxProjPath
bude odpovídat platnému projektu. Tyto řetězce obvykle přijímá integrované vývojové prostředí (IDE) z předchozího volání SccGetProjPath
funkce nebo SccGetParentProjectPath.
Argumentem lpUser
je uživatelské jméno. Integrované vývojové prostředí (IDE) předá stejné uživatelské jméno, od SccGetProjPath
kterého bylo dříve přijato , a modul plug-in správy zdrojového kódu by měl použít název jako výchozí. Pokud už uživatel má otevřené připojení k modulu plug-in, měl by se modul plug-in pokusit odstranit všechny výzvy, aby funkce fungovala bezobslužně. Pokud se ale přihlášení nezdaří, měl by modul plug-in vyzvat uživatele k přihlášení a při přijetí platného přihlášení předat jméno zpět lpUser
. Vzhledem k tomu, ž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 nebo SCC_USER_SIZE, která obsahuje mezeru pro ukončovací modul null). Pokud se řetězec změní, musí být nový řetězec platným přihlašovacím jménem (alespoň jako starý řetězec).
Technické poznámky pro SccCreateSubProject a SccGetParentProjectPath
Přidání řešení a projektů do správy zdrojového kódu bylo v sadě Visual Studio zjednodušené, aby se minimalizoval počet zobrazení výzvy k výběru umístění v systému správy zdrojového kódu. Tyto změny jsou aktivovány sadou Visual Studio, pokud modul plug-in správy zdrojového kódu podporuje obě nové funkce a SccCreateSubProject
SccGetParentProjectPath
. K zakázání těchto změn a návratu k předchozímu chování rozhraní API modulu plug-in správy zdrojového kódu verze 1.1 je však možné použít následující položku registru:
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001
Pokud tato položka registru neexistuje nebo je nastavena na dword:000000000, Visual Studio se pokusí použít nové funkce SccCreateSubProject
a SccGetParentProjectPath
.
Pokud je položka registru nastavena na dword:00000001, Visual Studio se nepokoušá používat tyto nové funkce a operace přidávání do správy zdrojového kódu fungují stejně jako v předchozích verzích sady Visual Studio.