Fonction SccGetParentProjectPath
Cette fonction détermine le chemin du 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.
Syntaxe
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Paramètres
pContext
[in] Pointeur de contexte du plug-in de contrôle de code source.
hWnd
[in] Handle vers la fenêtre IDE que le plug-in de contrôle de code source peut utiliser comme parent pour toutes les boîtes de dialogue qu’il fournit.
lpUser
[in, out] Nom d’utilisateur (jusqu’à SCC_USER_SIZE, y compris le terminateur NULL).
lpProjPath
[in] Chaîne identifiant le chemin du projet (jusqu’à SCC_PRJPATH_SIZE, y compris la marque de fin 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 du projet parent (jusqu’à SCC_PRJPATH_SIZE, y compris le terminateur NULL).
Valeur retournée
L’implémentation du plug-in de contrôle de code source de cette fonction est censée retourner l’une des valeurs suivantes :
Valeur | Description |
---|---|
SCC_OK | Le chemin du projet parent a été obtenu avec succès. |
SCC_E_INITIALIZEFAILED | Impossible d’initialiser le projet. |
SCC_E_INVALIDUSER | L’utilisateur n’a pas pu se connecter au plug-in de contrôle de code source. |
SCC_E_UNKNOWNPROJECT | Le projet est inconnu du plug-in de contrôle de code source. |
SCC_E_INVALIDFILEPATH | Chemin d’accès de fichier non valide ou inutilisable. |
SCC_E_NOTAUTHORIZED | L’utilisateur n’est pas autorisé à effectuer cette opération. |
SCC_E_ACCESSFAILURE | Il y a eu un problème d’accès au système de contrôle de code source, probablement en raison de problèmes de réseau ou de contention. Une nouvelle tentative est recommandée. |
SCC_E_PROJSYNTAXERR | Syntaxe de projet non valide. |
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 réussite ou d’échec et, si elle réussit, remplit la variable lpParentProjPath
avec le chemin d’accès complet du projet au projet spécifié.
Cette fonction retourne le chemin du projet parent d’un projet existant. Pour le projet racine, la fonction retourne le chemin d’accès du projet passé (autrement dit, le même chemin de projet racine). Notez qu’un chemin d’accès au projet est une chaîne qui est significative uniquement pour le plug-in de contrôle de code source.
L’IDE est également prêt à accepter les modifications apportées aux paramètres et lpAuxProjPath
aux lpUser
paramètres. L’IDE conserve ces chaînes et les transmet au SccOpenProject lorsque l’utilisateur ouvre ce projet à l’avenir. Ces chaînes fournissent donc un moyen pour le plug-in de contrôle de code source de suivre les informations qu’il doit associer à un projet.
Cette fonction est similaire à SccGetProjPath, sauf qu’elle n’invite pas l’utilisateur à sélectionner un projet. Il ne crée jamais de projet, mais fonctionne uniquement avec un projet existant.
Quand SccGetParentProjectPath
elle est appelée, lpProjPath
et lpAuxProjPath
ne sera pas vide et correspondra à un projet valide. Ces chaînes sont généralement reçues par l’IDE à partir d’un appel précédent à la SccGetProjPath
fonction.
L’argument lpUser
est le nom d’utilisateur. L’IDE passe le même nom d’utilisateur qu’il a reçu précédemment de la SccGetProjPath
fonction, et le plug-in de contrôle de code source doit utiliser le nom comme valeur par défaut. Si l’utilisateur dispose déjà d’une connexion ouverte avec le plug-in, le plug-in doit essayer d’éliminer les invites pour vous assurer que la fonction fonctionne en mode silencieux. Toutefois, si la connexion échoue, le plug-in doit inviter l’utilisateur à entrer une connexion et, lorsqu’il reçoit une connexion valide, transmettez le nom.lpUser
Étant donné que le plug-in peut modifier cette chaîne, l’IDE alloue 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 l’ancienne chaîne).
Notes techniques pour SccCreateSubProject et SccGetParentProjectPath
L’ajout de solutions et de projets au contrôle de code source a été simplifié 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 de contrôle de code source prend en charge les deux nouvelles fonctions, sccCreateSubProject et la SccGetParentProjectPath
fonction. Toutefois, l’entrée de Registre suivante peut être utilisée pour désactiver ces modifications et revenir au comportement précédent de Visual Studio (API plug-in de contrôle de code source version 1.1) :
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] « DoNotCreateSolutionRootFolderInSourceControl"=dword :00000001
Si cette entrée de Registre n’existe pas ou est définie sur dword :000000000, Visual Studio tente d’utiliser les nouvelles fonctions et SccCreateSubProject
SccGetParentProjectPath
.
Si l’entrée de Registre est définie sur dword :00000001, Visual Studio n’essaie pas d’utiliser ces nouvelles fonctions et les opérations d’ajout au contrôle de code source fonctionnent comme dans les versions antérieures de Visual Studio.