Fonction SccCreateSubProjectSccCreateSubProject function

Cette fonction crée un sous-projet portant le nom spécifié sous un projet parent existant spécifié par le lpParentProjPath argument.This function creates a subproject with the given name under an existing parent project specified by the lpParentProjPath argument.

SyntaxeSyntax

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

ParamètresParameters

pContextpContext
[in] Le pointeur de contexte de plug-in de contrôle de code source.[in] The source control plug-in context pointer.

hWndhWnd
[in] Handle vers la fenêtre de l’IDE que le plug-in de contrôle de code source peut utiliser en tant que parent pour les boîtes de dialogue qu’il fournit.[in] A handle to the IDE window that the source control plug-in can use as a parent for any dialog boxes that it provides.

lpUserlpUser
[in, out] Le nom d’utilisateur (jusqu'à SCC_USER_SIZE, y compris le terminateur NULL).[in, out] The username (up to SCC_USER_SIZE, including the NULL terminator).

lpParentProjPathlpParentProjPath
[in] Chaîne identifiant le chemin d’accès du projet parent (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in] A string identifying the path of the parent project (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpSubProjNamelpSubProjName
[in] Le nom suggéré sous-projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in] The suggested subproject name (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpAuxProjPathlpAuxProjPath
[in, out] Auxiliaire chaîne identifiant le projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in, out] Auxiliary string identifying the project (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpSubProjPathlpSubProjPath
[in, out] Chaîne de sortie qui identifie le chemin d’accès pour le sous-projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in, out] Output string identifying the path for the subproject (up to SCC_PRJPATH_SIZE, including the NULL terminator).

Valeur de retourReturn value

L’implémentation de plug-in de contrôle de source de cette fonction est censée retourner l’une des valeurs suivantes :The source control plug-in implementation of this function is expected to return one of the following values:

ValueValue DescriptionDescription
SCC_OKSCC_OK Sous-projet a été créé avec succès.Subproject was successfully created.
SCC_E_INITIALIZEFAILEDSCC_E_INITIALIZEFAILED Projet parent n’a pas pu être initialisé.Parent project could not be initialized.
SCC_E_INVALIDUSERSCC_E_INVALIDUSER L’utilisateur n’a pas pu se connecter le système de contrôle source.The user could not log in to the source control system.
SCC_E_COULDNOTCREATEPROJECTSCC_E_COULDNOTCREATEPROJECT Impossible de créer le sous-projet.Subproject cannot be created.
SCC_E_PROJSYNTAXERRSCC_E_PROJSYNTAXERR Syntaxe de projet non valide.Invalid project syntax.
SCC_E_UNKNOWNPROJECTSCC_E_UNKNOWNPROJECT Le projet parent est inconnu pour le plug-in de contrôle de code source.The parent project is unknown to the source control plug-in.
SCC_E_INVALIDFILEPATHSCC_E_INVALIDFILEPATH Chemin d’accès de fichier non valide ou inutilisable.Invalid or unusable file path.
SCC_E_NOTAUTHORIZEDSCC_E_NOTAUTHORIZED L’utilisateur n’est pas autorisé à effectuer cette opération.The user is not allowed to perform this operation.
SCC_E_ACCESSFAILURESCC_E_ACCESSFAILURE Impossible d’accéder au système de contrôle source, probablement en raison de problèmes réseau ou de contention.There was a problem accessing the source control system, probably due to network or contention issues. Une nouvelle tentative est recommandée.A retry is recommended.
SCC_E_CONNECTIONFAILURESCC_E_CONNECTIONFAILURE Il a été un problème de connexion de plug-in de contrôle de code source.There was a source control plug-in connection problem.
SCC_E_NONSPECIFICERRORSCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERRORSCC_E_UNKNOWNERROR
Erreur non spécifique.Nonspecific failure.

NotesRemarks

Si un sous-projet portant le nom existe déjà, la fonction peut modifier le nom par défaut pour créer un unique, par exemple en ajoutant « <nombre > » à ce dernier.If a subproject with the name already exists, the function can change the default name to create a unique one, for example by adding "<number>" to it. L’appelant doit être prêt à accepter les modifications de lpUser, lpSubProjPath, et lpAuxProjPath.The caller must be prepared to accept changes to lpUser, lpSubProjPath, and lpAuxProjPath. Le lpSubProjPath etlpAuxProjPath arguments sont ensuite utilisées dans un appel à la SccOpenProject.The lpSubProjPath andlpAuxProjPath arguments are then used in a call to the SccOpenProject. Ils ne doivent pas être modifiés par l’appelant lors du retour.They should not be modified by the caller upon return. Ces chaînes constituent un moyen pour le plug-in pour le suivi des informations dont il a besoin à associer à un projet de contrôle de code source.These strings provide a way for the source control plug-in to track information that it needs to associate with a project. L’appelant IDE n’affiche pas ces deux paramètres au moment du retour, car le plug-in peut utiliser une chaîne mise en forme qui peut ne pas convenir pour l’affichage.The caller IDE will not display these two parameters upon return, because the plug-in can use a formatted string that might not be suitable for viewing. La fonction retourne un code de réussite ou l’échec et, en cas de réussite, remplit la variable lpSubProjPath avec le chemin d’accès de projet complet vers le nouveau projet.The function returns a success or failure code and, if successful, fills the variable lpSubProjPath with the full project path to the new project.

Cette fonction est similaire à la SccGetProjPath, à ceci près qu’il crée en mode silencieux un projet au lieu d’inviter l’utilisateur à sélectionner un.This function is similar to the SccGetProjPath, except that it silently creates a project rather than prompting the user to select one. Lorsque le SccCreateSubProject fonction est appelée, lpParentProjName et lpAuxProjPath ne sera pas vide et correspond à un projet valid.When the SccCreateSubProject function is called, lpParentProjName and lpAuxProjPath will not be empty and will correspond to a valid project. Ces chaînes sont généralement reçus par l’IDE à partir d’un appel précédent à la SccGetProjPath fonction ou le SccGetParentProjectPath.These strings are usually received by the IDE from a previous call to the SccGetProjPath function or the SccGetParentProjectPath.

Le lpUser argument est le nom d’utilisateur.The lpUser argument is the user name. L’IDE passe dans le même nom d’utilisateur qui il a précédemment reçu à partir de SccGetProjPath, et le plug-in de contrôle de code source doit utiliser le nom par défaut.The IDE will pass in the same user name that it had previously received from SccGetProjPath, and the source control plug-in should use the name as a default. Si l’utilisateur possède déjà 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.If the user already has an open connection with the plug-in, then the plug-in should try to eliminate any prompts to make sure the function works silently. Toutefois, si la connexion échoue, le plug-in doit inviter l’utilisateur pour un compte de connexion et, lorsqu’il reçoit une connexion valide, passez le nom de nouveau lpUser.However, if the login fails, the plug-in should prompt the user for a login and, when it receives a valid login, pass the name back in lpUser. Étant donné que le plug-in peut modifier cette chaîne, l’IDE sera toujours allouer une mémoire tampon de taille (SCC_USER_LEN + 1 ou SCC_USER_SIZE, qui inclut l’espace pour le terminateur null).Because the plug-in may change this string, the IDE will always allocate a buffer of size (SCC_USER_LEN+1 or SCC_USER_SIZE, which includes space for the null terminator). Si la chaîne est modifiée, la nouvelle chaîne doit être un nom de connexion valide (au moins comme étant valide en tant que l’ancienne chaîne).If the string is changed, the new string must be a valid login name (at least as valid as the old string).

Notes techniques pour SccCreateSubProject et SccGetParentProjectPathTechnical notes for SccCreateSubProject and SccGetParentProjectPath

Ajout de solutions et projets au contrôle de code source a été simplifié dans Visual Studio pour réduire le nombre de fois où qu'un utilisateur est invité à sélectionner les emplacements dans le système de contrôle source.Adding solutions and projects to source control has been simplified in Visual Studio to minimize the number of times a user is prompted to select locations in the source control system. Ces modifications sont activées par Visual Studio si un plug-in de contrôle de code source prend en charge des nouvelles fonctions, SccCreateSubProject et SccGetParentProjectPath.These changes are activated by Visual Studio if a source control plug-in supports both of the new functions, SccCreateSubProject and SccGetParentProjectPath. 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 (Source contrôle plug-in API Version 1.1) :However, the following registry entry can be used to disable these changes and revert to previous Visual Studio (Source Control Plug-in API Version 1.1) behavior:

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] « DoNotCreateSolutionRootFolderInSourceControl » = DWORD : 00000001[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001

Si cette entrée de Registre n’existe pas ou a la valeur DWORD : 00000000, Visual Studio tente d’utiliser les nouvelles fonctions, SccCreateSubProject et SccGetParentProjectPath.If this registry entry does not exist or is set to dword:00000000, Visual Studio attempts to use the new functions, SccCreateSubProject and 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 ils le faisaient dans les versions antérieures de Visual Studio.If the registry entry is set to dword:00000001, Visual Studio does not attempt to use these new functions, and the operations of adding to source control work as they did in prior versions of Visual Studio.

Voir aussiSee also

Fonctions d’API source contrôle plug-in Source control plug-in API functions
SccGetParentProjectPath SccGetParentProjectPath
SccGetProjPathSccGetProjPath