SccOpenProject – funkce

Tato funkce otevře existující projekt správy zdrojového kódu nebo vytvoří nový.

Syntaxe

SCCRTN SccOpenProject (
   LPVOID        pvContext,
   HWND          hWnd,
   LPSTR         lpUser,
   LPCSTR        lpProjName,
   LPCSTR        lpLocalProjPath,
   LPSTR         lpAuxProjPath,
   LPCSTR        lpComment,
   LPTEXTOUTPROC lpTextOutProc,
   LONG          dwFlags
);

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] Jméno uživatele (nesmí překročit SCC_USER_SIZE, včetně ukončovací funkce NULL).

lpProjName

[v] Řetězec identifikující název projektu.

lpLocalProjPath

[v] Cesta k pracovní složce projektu.

lpAuxProjPath

[in, out] Volitelný pomocný řetězec identifikující projekt (nesmí překročit SCC_AUXPATH_SIZE, včetně ukončovací funkce NULL).

lpComment

[v] Okomentujte nový projekt, který se vytváří.

lpTextOutProc

[v] Volitelná funkce zpětného volání pro zobrazení textového výstupu z modulu plug-in správy zdrojového kódu.

dwFlags

[v] Signalizuje, jestli je potřeba vytvořit nový projekt, pokud projekt není pro modul plug-in správy zdrojového kódu neznámý. Hodnota může být kombinací SCC_OP_CREATEIFNEWSCC_OP_SILENTOPEN.

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 Úspěch při otevření projektu
SCC_E_INITIALIZEFAILED 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 Projekt před voláním neexistoval; příznak SCC_OPT_CREATEIFNEW byl nastaven, ale projekt nelze vytvořit.
SCC_E_PROJSYNTAXERR Neplatná syntaxe projektu
SCC_E_UNKNOWNPROJECT Modul plug-in správy zdrojového kódu je neznámý a SCC_OPT_CREATEIFNEW příznak nebyl nastaven.
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_NONSPECFICERROR Nespecifické selhání; systém správy zdrojového kódu nebyl inicializován.

Poznámky

Integrované vývojové prostředí (IDE) může předat uživatelské jméno (lpUser) 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 však nepředá žádné jméno nebo pokud přihlášení selhalo s daným jménem, modul plug-in by měl uživatele vyzvat, aby se přihlásil a vrátil platný název lpUser , když obdrží platné přihlášení. , protože modul plug-in může změnit řetězec uživatelského jména, 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í znak null).

Poznámka:

První akcí, kterou může rozhraní IDE vyžadovat k provedení, může být volání SccOpenProject funkce nebo SccGetProjPath. Z tohoto důvodu mají oba dva identický lpUser parametr.

lpAuxProjPath alpProjName jsou načteny ze souboru řešení nebo jsou vráceny z volání funkce SccGetProjPath . Tyto parametry obsahují řetězce, které modul plug-in správy zdrojového kódu přidruží k projektu a jsou smysluplné pouze pro modul plug-in. Pokud nejsou v souboru řešení žádné takové řetězce a uživatel nebyl vyzván k procházení (který by vrátil řetězec prostřednictvím SccGetProjPath funkce), integrované vývojové prostředí předává prázdné řetězce pro oba lpAuxProjPath a lpProjNameočekává, že tyto hodnoty modul plug-in aktualizuje při vrácení této funkce.

lpTextOutProc je ukazatel na funkci zpětného volání, kterou poskytuje integrované vývojové prostředí (IDE) modulu plug-in správy zdrojového kódu pro účely zobrazení výstupu výsledku příkazu. Tato funkce zpětného volání je podrobně popsána v LPTEXTOUTPROC.

Poznámka:

Pokud modul plug-in správy zdrojového kódu má v úmyslu tuto výhodu využít, musí mít v SccInitialize nastavený SCC_CAP_TEXTOUT příznak. Pokud tento příznak nebyl nastaven nebo pokud integrované vývojové prostředí tuto funkci nepodporuje, lpTextOutProc bude NULL.

Parametr dwFlags řídí výsledek v případě, že otevřený projekt aktuálně neexistuje. Skládá se ze dvou bitflags, SCC_OP_CREATEIFNEW a SCC_OP_SILENTOPEN. Pokud projekt, který je otevřen, již existuje, funkce jednoduše otevře projekt a vrátí .SCC_OK Pokud projekt neexistuje a pokud SCC_OP_CREATEIFNEW je příznak zapnutý, může modul plug-in správy zdrojového kódu vytvořit projekt v systému správy zdrojového kódu, otevřít ho a vrátit SCC_OK. Pokud projekt neexistuje a pokud SCC_OP_CREATEIFNEW je příznak vypnutý, měl by modul plug-in zkontrolovat SCC_OP_SILENTOPEN příznak. Pokud tento příznak není zapnutý, může modul plug-in vyzvat uživatele k zadání názvu projektu. Pokud je tento příznak zapnutý, modul plug-in by se měl jednoduše vrátit SCC_E_UNKNOWNPROJECT.

Objednávka volání

V normálním průběhu událostí by se SccInitialize volala jako první, aby se otevřela relace správy zdrojového kódu. Relace se může skládat z volání SccOpenProject, následované jinými voláními funkce modulu plug-in modulu plug-in správy zdrojového kódu a ukončí se voláním SccCloseProject. Takové relace se mohou opakovat několikrát před zavoláním SccUninitialize .

Pokud modul plug-in správy zdrojového SCC_CAP_REENTRANT kódu nastaví bit, SccInitializemůže se výše uvedená sekvence relace opakovat mnohokrát paralelně. Různé pvContext struktury sledují různé relace, ve kterých jsou jednotlivé pvContext relace přidružené k jednomu otevřenému projektu najednou. Na základě parametrupvContext může modul plug-in určit, na který projekt se odkazuje v jakémkoli konkrétním volání. Pokud bit SCC_CAP_REENTRANT schopností není nastavený, moduly plug-in správy zdrojového kódu jsou omezené na schopnost pracovat s více projekty.

Poznámka:

Bit SCC_CAP_REENTRANT byl zaveden ve verzi 1.1 rozhraní API modulu plug-in správy zdrojového kódu. Není nastavená nebo je ignorována ve verzi 1.0 a předpokládá se, že všechny moduly plug-in správy zdrojového kódu verze 1.0 nejsou nepovolené.

Viz také