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 lpUserlpSubProjPath, a lpAuxProjPath. Argumenty lpSubProjPath selpAuxProjPath 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 SccGetProjPathkteré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 SccCreateSubProjectSccGetParentProjectPath. 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.

Viz také