Fonction SccGetProjPathSccGetProjPath function

Cette fonction invite l’utilisateur à un chemin d’accès du projet, qui est une chaîne qui est uniquement explicite pour le plug-in de contrôle de code source.This function prompts the user for a project path, which is a string that is meaningful only to the source control plug-in. Elle est appelée lorsque l’utilisateur est :It is called when the user is:

  • Création d’un projetCreating a new project

  • Ajouter un projet existant au contrôle de versionAdding an existing project to version control

  • Une tentative de recherche d’un projet de contrôle de version existantAttempting to find an existing version control project

SyntaxeSyntax

SCCRTN SccGetProjPath (  
   LPVOID pvContext,  
   HWND   hWnd,  
   LPSTR  lpUser,  
   LPSTR  lpProjName,  
   LPSTR  lpLocalPath,  
   LPSTR  lpAuxProjPath,  
   BOOL   bAllowChangePath,  
   LPBOOL pbNew  
);  

ParamètresParameters

pvContextpvContext
[in] La structure de contexte de plug-in de contrôle de source.[in] The source control plug-in context structure.

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 (ne dépassant pas SCC_USER_SIZE, y compris le terminateur NULL)[in, out] The user name (not to exceed SCC_USER_SIZE, including the NULL terminator)

lpProjNamelpProjName
[in, out] Le nom de l’IDE projet, espace de travail de projet ou makefile (ne dépassant pas SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in, out] The name of the IDE project, project workspace, or makefile (not to exceed SCC_PRJPATH_SIZE, including the NULL terminator).

lpLocalPathlpLocalPath
[in, out] Chemin d’accès de travail du projet.[in, out] The project's working path. Si bAllowChangePath est TRUE, le plug-in de contrôle de code source peut modifier cette chaîne (ne dépassant pas _MAX_PATH, y compris la marque de fin null).If bAllowChangePath is TRUE, the source control plug-in can modify this string (not to exceed _MAX_PATH, including the null-terminator).

lpAuxProjPathlpAuxProjPath
[in, out] Une mémoire tampon pour le chemin d’accès de projet retourné (ne dépassant pas SCC_PRJPATH_SIZE, y compris le terminateur NULL).[in, out] A buffer for the returned project path (not to exceed SCC_PRJPATH_SIZE, including the NULL terminator).

bAllowChangePathbAllowChangePath
[in] S’il s’agit TRUE, le plug-in de contrôle de code source peut demander et modifier le lpLocalPath chaîne.[in] If this is TRUE, the source control plug-in can prompt for and modify the lpLocalPath string.

pbNewpbNew
[in, out] Valeur bientôt indique s’il faut créer un nouveau projet.[in, out] Value coming in indicates whether to create a new project. Valeur retournée indique la réussite de la création d’un projet :Value returned indicates success of creating a project:

EntrantIncoming InterprétationInterpretation
trueTRUE L’utilisateur peut créer un nouveau projet.The user may create a new project.
falseFALSE L’utilisateur ne peut pas créer un nouveau projet.The user may not create a new project.
SortantOutgoing InterprétationInterpretation
trueTRUE Un nouveau projet a été créé.A new project was created.
falseFALSE Un projet existant a été sélectionné.An existing project was selected.

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 Le projet a été correctement créé ou récupéré.The project was successfully created or retrieved.
SCC_I_OPERATIONCANCELEDSCC_I_OPERATIONCANCELED L’opération a été annulée.The operation was canceled.
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.
SCC_E_CONNECTIONFAILURESCC_E_CONNECTIONFAILURE Un tentative de connexion au système de contrôle de source de problème est survenu.There was a problem trying to connect to the source control system.
SCC_E_NONSPECIFICERRORSCC_E_NONSPECIFICERROR Une erreur non spécifiée s'est produite.An unspecified error occurred.

NotesRemarks

L’objectif de cette fonction est pour l’IDE acquérir les paramètres lpProjName et lpAuxProjPath.The purpose of this function is for the IDE to acquire the parameters lpProjName and lpAuxProjPath. Une fois que le plug-in de contrôle de code source invite l’utilisateur pour obtenir ces informations, il transmet ces deux chaînes à l’IDE.After the source control plug-in prompts the user for this information, it passes these two strings back to the IDE. L’IDE persiste ces chaînes dans son fichier de solution et les transmet à la SccOpenProject chaque fois que l’utilisateur ouvre ce projet.The IDE persists these strings in its solution file and passes them to the SccOpenProject whenever the user opens this project. Ces chaînes activer le plug-in effectuer le suivi des informations associées à un projet.These strings enable the plug-in to track information associated with a project.

Lorsque la fonction est appelée tout d’abord, lpAuxProjPath est définie sur une chaîne vide.When the function is first called, lpAuxProjPath is set to an empty string. lProjName peut également être vide, ou il peut contenir le nom du projet IDE, ce qui le plug-in de contrôle de code source peut utiliser ou ignorer.lProjName may also be empty, or it may contain the IDE project name, which the source control plug-in may use or ignore. Lorsque la fonction est retournée avec succès, le plug-in renvoie les deux chaînes correspondants.When the function successfully returns, the plug-in returns the two corresponding strings. L’IDE n’émet aucune hypothèse sur ces chaînes ne les utiliserez pas et n’autorise pas l’utilisateur de les modifier.The IDE makes no assumptions about these strings, will not use them, and will not allow the user to modify them. Si l’utilisateur souhaite modifier les paramètres, l’IDE appellera SccGetProjPath à nouveau, en passant les mêmes valeurs qu’il a reçu l’heure précédente.If the user wants to change the settings, the IDE will call SccGetProjPath again, passing in the same values it had received the previous time. Ainsi, le plug-in contrôle complet sur ces deux chaînes.This gives the plug-in complete control over these two strings.

Pour lpUser, l’IDE peut transmettre un nom d’utilisateur, ou il peut simplement passer un pointeur vers une chaîne vide.For lpUser, the IDE may pass in a user name, or it may simply pass in a pointer to an empty string. S’il existe un nom d’utilisateur, le plug-in de contrôle de code source doit l’utiliser comme valeur par défaut.If there is a user name, the source control plug-in should use it as a default. Toutefois, si aucun nom n’a été passée ou si la connexion a échoué avec le nom donné, le plug-in doit inviter l’utilisateur pour une connexion et la passe de nouveau le nom lpUser lorsqu’elle reçoit une connexion valide.However, if no name was passed or if the login failed with the given name, the plug-in should prompt the user for a login and pass the name back in lpUser when it receives a valid login. É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).Because the plug-in may change this string, the IDE will always allocate a buffer of size (SCC_USER_LEN+1).

Note

La première action qui effectue l’IDE peut être un appel à la SccOpenProject fonction ou le SccGetProjPath (fonction).The first action that the IDE performs may be a call to either the SccOpenProject function or the SccGetProjPath function. Par conséquent, deux d'entre eux ont un identiques lpUser paramètre, ce qui permet le plug-in pour connecter l’utilisateur au moment du contrôle de code source.Hence, both of them have an identical lpUser parameter, which enables the source control plug-in to log the user in at either time. Même si le retour à partir de la fonction indique un échec, le plug-in doit remplir cette chaîne avec un nom de connexion valide.Even if the return from the function indicates a failure, the plug-in must fill this string with a valid login name.

lpLocalPath est le répertoire où l’utilisateur maintient le projet.lpLocalPath is the directory where the user keeps the project. Il peut être une chaîne vide.It may be an empty string. Si aucun répertoire actuellement définies (comme dans le cas d’un utilisateur tente de télécharger un projet à partir du système de contrôle de source) et si bAllowChangePath est TRUE, le plug-in de contrôle de code source peut inviter l’utilisateur pour l’entrée ou utilisez une autre méthode pour placer ses propriétaire de chaîne dans lpLocalPath.If there is no directory currently defined (as in the case of a user attempting to download a project from the source control system) and if bAllowChangePath is TRUE, the source control plug-in can prompt the user for input or use some other method to place its own string into lpLocalPath. Si bAllowChangePath est FALSE, le plug-in ne devez pas modifier la chaîne, étant donné que l’utilisateur travaille déjà dans le répertoire spécifié.If bAllowChangePath is FALSE, the plug-in should not change the string, because the user is already working in the specified directory.

Si l’utilisateur crée un nouveau projet à placer sous contrôle de code source, le plug-in de contrôle de code source ne peut pas réellement créer dans le système de contrôle de source au moment SccGetProjPath est appelée.If the user creates a new project to be put under source control, the source control plug-in might not actually create it in the source control system at the time SccGetProjPath is called. Au lieu de cela, il passe à nouveau la chaîne avec une valeur différente de zéro pour pbNew, indiquant que le projet sera créé dans le système de contrôle de code source.Instead, it passes back the string along with a nonzero value for pbNew, indicating that the project will be created in the source control system.

Par exemple, si un utilisateur dans le nouveau projet Assistant dans Visual Studio ajoute son propre projet au contrôle de code source, Visual Studio appelle cette fonction, et détermine le plug-in si elle est OK créer un nouveau projet dans le système de contrôle de source pour contient le projet de Visual Studio.For example, if a user in the New Project wizard in Visual Studio adds his or her project to source control, Visual Studio calls this function, and the plug-in determines if it is okay to create a new project in the source control system to contain the Visual Studio project. Si l’utilisateur clique sur Annuler avant la fin de l’Assistant, le projet n’est jamais créé.If the user clicks Cancel before completing the wizard, the project is never created. Si l’utilisateur clique sur OK, Visual Studio appelle SccOpenProject, en passant dans SCC_OPT_CREATEIFNEW, et le projet de contrôle de code source est créé à ce moment-là.If the user clicks OK, Visual Studio calls SccOpenProject, passing in SCC_OPT_CREATEIFNEW, and the source controlled project is created at that time.

Voir aussiSee also

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