Partager via


Fonction SccCreateSubProject

Cette fonction crée un sous-projet portant le nom donné sous un projet parent existant spécifié par l’argument lpParentProjPath .

Syntaxe

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

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

lpParentProjPath

[in] Chaîne identifiant le chemin d’accès du projet parent (jusqu’à SCC_PRJPATH_SIZE, y compris le terminateur NULL).

lpSubProjName

[in] Nom de sous-projet suggéré (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).

lpSubProjPath

[in, out] Chaîne de sortie identifiant le chemin d’accès du sous-projet (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 sous-projet a été créé avec succès.
SCC_E_INITIALIZEFAILED Impossible d’initialiser le projet parent.
SCC_E_INVALIDUSER L’utilisateur n’a pas pu se connecter au système de contrôle de code source.
SCC_E_COULDNOTCREATEPROJECT Impossible de créer un sous-projet.
SCC_E_PROJSYNTAXERR Syntaxe de projet non valide.
SCC_E_UNKNOWNPROJECT Le projet parent 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_CONNECTIONFAILURE Un problème de connexion de plug-in de contrôle de code source s’est produit.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Échec non spécifique.

Notes

Si un sous-projet portant le nom existe déjà, la fonction peut modifier le nom par défaut pour en créer un unique, par exemple en ajoutant « _number> » à celui-ci<. L’appelant doit être prêt à accepter les modifications apportées à lpUser, lpSubProjPathet lpAuxProjPath. Les lpSubProjPath arguments etlpAuxProjPath les arguments sont ensuite utilisés dans un appel au SccOpenProject. Ils ne doivent pas être modifiés par l’appelant lors du retour. Ces chaînes permettent au plug-in de contrôle de code source de suivre les informations qu’il doit associer à un projet. L’IDE de l’appelant n’affiche pas ces deux paramètres lors du retour, car le plug-in peut utiliser une chaîne mise en forme qui peut ne pas convenir à l’affichage. La fonction retourne un code de réussite ou d’échec et, si elle réussit, remplit la variable lpSubProjPath avec le chemin d’accès complet du projet au nouveau projet.

Cette fonction est similaire à SccGetProjPath, sauf qu’elle crée silencieusement un projet plutôt que d’inviter l’utilisateur à en sélectionner un. Lorsque la SccCreateSubProject fonction est appelée, lpParentProjName et lpAuxProjPath n’est pas vide et correspond à 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 ou sccGetParentProjectPath.

L’argument lpUser est le nom d’utilisateur. L’IDE passe le même nom d’utilisateur qu’il a reçu SccGetProjPathprécédemment, 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 ou SCC_USER_SIZE, qui inclut de l’espace pour le point de terminaison Null). 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 et SccCreateSubProjectSccGetParentProjectPath. 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 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 SccCreateSubProjectSccGetParentProjectPath.

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