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 etSccCreateSubProjectSccGetParentProjectPath.

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.

Voir aussi