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_CREATEIFNEW
SCC_OP_SILENTOPEN.
Návratová 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
a lpProjName
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 lpProjName
oč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, SccInitialize
můž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ě parametru pvContext
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é.