SccGetParentProjectPath, fonction
cette fonction détermine le chemin d'accès au projet parent d'un projet spécifié. Cette fonction est appelée lorsque l'utilisateur ajoute un projet Visual Studio au contrôle de code source.
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Paramètres
pContext
[in] Le pointeur du plug-in du contexte de contrôle de code source.hWnd
[in] Un handle de la fenêtre IDE que le plug-in contrôle de code source peut utiliser en tant que parent pour toutes les boîtes de dialogue qu'elle fournit.lpUser
[in, out] Le nom d'utilisateur (jusqu'à SCC_USER_SIZE, y compris le terminateur null).lpProjPath
[in] Chaîne identifiant le chemin d'accès au projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur null).lpAuxProjPath
[in, out] Chaîne auxiliaire identifiant le projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur null).lpParentProjPath
[in, out] Chaîne de sortie identifiant le chemin d'accès au projet parent (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur null).
Valeur de retour
Il est recommandé que l'implémentation du plug-in du contrôle de code source de cette fonction retourne une des valeurs suivantes :
Valeur |
Description |
---|---|
SCC_OK |
Le chemin d'accès au projet parent a été correctement obtenu. |
SCC_E_INITIALIZEFAILED |
le projet n'a pas pu être initialisé. |
SCC_E_INVALIDUSER |
L'utilisateur ne peut pas se connecter au plug-in contrôle de code source. |
SCC_E_UNKNOWNPROJECT |
Le projet est inconnu au plug-in contrôle de code source. |
SCC_E_INVALIDFILEPATH |
Chemin d'accès valide ou inutilisable. |
SCC_E_NOTAUTHORIZED |
N'est pas autorisé à effectuer cette opération. |
SCC_E_ACCESSFAILURE |
Un problème est survenu lors de l'accès au système de contrôle de code source, probablement en raison de problèmes de réseau ou de conflit. Une démarrage est recommandée. |
SCC_E_PROJSYNTAXERR |
syntaxe valide de projet. |
SCC_E_CONNECTIONFAILURE |
Problème de connexion du magasin. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
échec non spécifique. |
Notes
Cette fonction retourne un code de succès ou l'échec et, en cas de succès, remplit lpParentProjPath variable avec le chemin d'accès au projet complet au projet spécifié.
Cette fonction retourne le chemin d'accès au projet parent d'un projet existant. Pour le projet racine, la fonction retourne le chemin d'accès au projet qui a été passé (autrement dit, le même chemin d'accès racine du projet). Notez qu'un chemin d'accès au projet est une chaîne significative uniquement au plug-in contrôle de code source.
L'IDE est préparé pour accepter les modifications apportées aux paramètres d' lpUser et d' lpAuxProjPath également. L'IDE sera ces chaînes et les passe à SccOpenProject, fonction lorsque l'utilisateur ouvre ce projet à l'avenir. Ces chaînes fournit, par conséquent, une méthode pour le plug-in contrôle de code source pour suivre les informations qu'il doit associer à un projet.
Cette fonction est semblable à SccGetProjPath, fonction, excepté qu'elle ne pas invite l'utilisateur à sélectionner un projet. Cela ne crée jamais également un nouveau projet mais fonctionne uniquement avec un projet existant.
Lorsque SccGetParentProjectPath est appelé, lpProjPath et lpAuxProjPath ne sont pas vides et correspondront à un projet valide. Ces chaînes sont généralement acceptées par l'IDE d'un appel précédent à la fonction d' SccGetProjPath .
l'argument d' lpUser est le nom d'utilisateur. L'IDE passera dans le même nom d'utilisateur qu'elle avait déjà reçu de la fonction d' SccGetProjPath , et le plug-in contrôle de code source doit utiliser le nom comme valeur par défaut. Si l'utilisateur a déjà une connexion ouverte avec le plug-in, le plug-in doit essayer d'éliminer toutes les invites pour vous assurer que la fonction s'exécute en mode silencieux. Toutefois, si la connexion échoue, le plug-in doit demander à l'utilisateur d'une connexion et, lorsqu'il reçoit une connexion valide, passe en arrière de nom dans lpUser. Étant donné que le plug-in peut modifier cette chaîne, l'IDE allouera toujours une mémoire tampon de taille (SCC_USER_LEN+1). si la chaîne est modifiée, la nouvelle chaîne doit être un nom de connexion valide (au moins aussi valide que la chaîne ancienne).
notes techniques pour SccCreateSubProject et SccGetParentProjectPath
Ajouter des projets et des solutions au contrôle de code source a été simplifiée dans Visual Studio pour réduire le nombre de fois où un utilisateur est invité à sélectionner des emplacements dans le système de contrôle de code source. Ces modifications sont activées par Visual Studio si un plug-in contrôle de code source prend en charge les nouvelles fonctions, le SccCreateSubProject, fonction et fonction d' SccGetParentProjectPath . Toutefois, l'entrée du Registre suivante peut être utilisée pour désactiver ces modifications et pour rétablir le comportement précédent de Visual Studio (version du plug-in 1,1 d'API de contrôle de code source) :
[=dword HKEY_CURRENT_USER \Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl " : 00000001
Si cette entrée du Registre n'existe pas ou est définie sur un dword : 00000000, tente de Visual Studio d'utiliser les nouvelles fonctions, SccCreateSubProjectetSccGetParentProjectPath.
Si l'entrée du Registre est définie sur un dword : 00000001, Visual Studio n'essaie pas d'utiliser ces nouvelles fonctions, et les opérations de l'ajout des travaux de contrôle de code source comme ils ont fait dans les versions antérieures de Visual Studio.