共用方式為


SccGetParentProjectPath 函式

此函式會決定指定專案的父項目路徑。 當使用者將Visual Studio專案新增至原始檔控制時,就會呼叫此函式。

語法

SCCRTN SccGetParentProjectPath(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpProjPath,
   LPSTR  lpAuxProjPath,
   LPSTR  lpParentProjPath
);

參數

pContext

[in]原始檔控制外掛程式內容指標。

hWnd

[in]原始檔控制外掛程式可作為其提供之任何對話框之父代的 IDE 視窗句柄。

lpUser

[in, out]用戶名稱(最多SCC_USER_SIZE,包括 NULL 終止符)。

lpProjPath

[in]識別項目路徑的字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

lpAuxProjPath

[in, out]識別項目的輔助字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

lpParentProjPath

[in, out]識別父專案路徑的輸出字串(最多SCC_PRJPATH_SIZE,包括 NULL 終止符)。

傳回值

此函式的原始檔控制外掛程式實作應該會傳回下列其中一個值:

Description
SCC_OK 已成功取得父項目路徑。
SCC_E_INITIALIZEFAILED 無法初始化 Project。
SCC_E_INVALIDUSER 用戶無法登入原始檔控制外掛程式。
SCC_E_UNKNOWNPROJECT 原始檔控制外掛程式未知的專案。
SCC_E_INVALIDFILEPATH 無效或無法使用的檔案路徑。
SCC_E_NOTAUTHORIZED 不允許使用者執行這項作業。
SCC_E_ACCESSFAILURE 存取原始檔控制系統時發生問題,可能是因為網路或爭用問題。 建議重試。
SCC_E_PROJSYNTAXERR 無效的專案語法。
SCC_E_CONNECTIONFAILURE 儲存連線問題。
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
非特定失敗。

備註

此函式會傳回成功或失敗的程式代碼,如果成功,則會將變數 lpParentProjPath 填入指定專案的完整項目路徑。

此函式會傳回現有專案的父項目路徑。 針對根專案,函式會傳回傳入的項目路徑(也就是相同的根項目路徑)。 請注意,專案路徑是僅對原始檔控制外掛程式有意義的字串。

IDE 也準備接受 和 lpAuxProjPath 參數的lpUser變更。 當使用者未來開啟此專案時,IDE 會保存這些字串,並將其傳遞至 SccOpenProject 。 因此,這些字串為原始檔控制外掛程式提供一種方式,以追蹤與專案相關聯的資訊。

此函式類似於 SccGetProjPath,不同之處在於它不會提示使用者選取專案。 它永遠不會建立新的專案,但只適用於現有的專案。

呼叫 時SccGetParentProjectPath,且 lpAuxProjPath 不會是空的,lpProjPath而且會對應至有效的專案。 IDE 通常會從先前對 SccGetProjPath 函式的呼叫接收這些字串。

lpUser 變數是用戶名稱。 IDE 會傳入先前從 SccGetProjPath 函式收到的相同用戶名稱,而原始檔控制外掛程式應該使用名稱做為預設值。 如果用戶已經與外掛程式有開啟的連線,則外掛程式應該嘗試排除任何提示,以確保函式以無訊息方式運作。 不過,如果登入失敗,外掛程式應該提示使用者輸入登入,並在收到有效的登入時,將 lpUser名稱傳回 。 因為外掛程式可能會變更此字串,因此 IDE 一律會配置大小為 (SCC_USER_LEN+1) 的緩衝區。 如果字串已變更,新字串必須是有效的登入名稱(至少與舊字串一樣有效)。

SccCreateSubProject 和 SccGetParentProjectPath 的技術注意事項

在 Visual Studio 中將方案和專案新增至原始檔控制已簡化,以將提示使用者選取原始檔控制系統中位置的次數降到最低。 如果原始檔控制外掛程式支援這兩個新函式 SccCreateSubProject 和 函SccGetParentProjectPath式,Visual Studio 就會啟動這些變更。 不過,下列登錄專案可用來停用這些變更,並還原為先前的 Visual Studio(原始檔控制外掛程式 API 1.1 版)行為:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl]“DoNotCreateSolutionRootFolderInSourceControl”=dword:00000001

如果此登錄專案不存在或設定為 dword:000000000,Visual Studio 會嘗試使用新的函式, SccCreateSubProject以及SccGetParentProjectPath

如果登錄專案設定為 dword:00000001,Visual Studio 不會嘗試使用這些新函式,而且新增至原始檔控制的作業會如同在舊版 Visual Studio 中一樣運作。

另請參閱