SccCreateSubProject, fonction
Cette fonction crée un sous-projet avec le nom sous un projet parent existant spécifié par l'argument d' lpParentProjPath .
SCCRTN SccCreateSubProject(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpParentProjPath,
LPCSTR lpSubProjName,
LPSTR lpAuxProjPath,
LPSTR lpSubProjPath
);
Paramètres
pContext
[in] Le pointeur du plug-in du contexte de contrôle de code source.hWnd
[in] Un handle de la fenêtre IDE que le plug-in contrôle de code source peut utiliser en tant que parent pour toutes les boîtes de dialogue qu'elle fournit.lpUser
[in, out] Le nom d'utilisateur (jusqu'à SCC_USER_SIZE, y compris le terminateur null).lpParentProjPath
[in] Une chaîne identifiant le chemin d'accès du projet parent (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur null).lpSubProjName
[in] Le nom proposé de sous-projet (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] Obtenez la chaîne identifiant le chemin d'accès pour le sous-projet (jusqu'à SCC_PRJPATH_SIZE, y compris le terminateur null).
Valeur de retour
Il est recommandé que l'implémentation du plug-in du contrôle de code source de cette fonction retourne une des valeurs suivantes :
Valeur |
Description |
---|---|
SCC_OK |
Le sous-projet a été correctement créé. |
SCC_E_INITIALIZEFAILED |
le projet parent n'a pas pu être initialisé. |
SCC_E_INVALIDUSER |
L'utilisateur ne peut pas se connecter au système de contrôle de code source. |
SCC_E_COULDNOTCREATEPROJECT |
le sous-projet ne peut pas être créé. |
SCC_E_PROJSYNTAXERR |
syntaxe valide de projet. |
SCC_E_UNKNOWNPROJECT |
Le projet parent est inconnu au plug-in contrôle de code source. |
SCC_E_INVALIDFILEPATH |
Chemin d'accès valide ou inutilisable. |
SCC_E_NOTAUTHORIZED |
N'est pas autorisé à effectuer cette opération. |
SCC_E_ACCESSFAILURE |
Un problème est survenu lors de l'accès au système de contrôle de code source, probablement en raison de problèmes de réseau ou de conflit. Une démarrage est recommandée. |
SCC_E_CONNECTIONFAILURE |
Il existe un problème de connexion de plug-in contrôle de code source. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
échec non spécifique. |
Notes
Si un sous-projet avec le nom existe déjà, la fonction peut modifier le nom par défaut pour créer unique, par exemple en ajoutant « _ <number> » à celui-ci. L'appelant doit être supprimé à accepter les modifications à lpUser, à lpSubProjPath, et à lpAuxProjPath. Les arguments d' lpSubProjPath et d'lpAuxProjPath est ensuite utilisé dans un appel à SccOpenProject, fonction. Ils ne doivent pas être modifiés par l'appelant sur le retour. Ces chaînes sont un moyen pour le plug-in contrôle de code source pour suivre les informations qu'il doit associer à un projet. L'appelant l'IDE n'affiche pas ces deux paramètres lors de le retour, car le plug-in peut utiliser une chaîne mise en forme qui peut ne pas convenir afficher. La fonction retourne un code de succès ou l'échec et, en cas de succès, remplit lpSubProjPath variable avec le chemin d'accès au projet complet au nouveau projet.
Cette fonction est semblable à SccGetProjPath, fonction, excepté qu'elle crée automatiquement un projet plutôt qu'invitant l'utilisateur à sélectionner un. Lorsque la fonction de SccCreateSubProject est appelée, lpParentProjName et lpAuxProjPath ne sont pas vides et correspondront à un projet valide. Ces chaînes sont généralement acceptées par l'IDE d'un appel précédent à la fonction d' SccGetProjPath ou au SccGetParentProjectPath, fonction.
l'argument d' lpUser est le nom d'utilisateur. L'IDE passera dans le même nom d'utilisateur qu'elle avait déjà reçu d' SccGetProjPath, et le plug-in contrôle de code source doit utiliser le nom comme valeur par défaut. Si l'utilisateur a déjà une connexion ouverte avec le plug-in, le plug-in doit essayer d'éliminer toutes les invites pour vous assurer que la fonction s'exécute en mode silencieux. Toutefois, si la connexion échoue, le plug-in doit demander à l'utilisateur d'une connexion et, lorsqu'il reçoit une connexion valide, passe en arrière de nom dans lpUser. Étant donné que le plug-in peut modifier cette chaîne, l'IDE allouera toujours une mémoire tampon de taille (SCC_USER_LEN+1 ou SCC_USER_SIZE, qui inclut l'espace pour le terminateur null). si la chaîne est modifiée, la nouvelle chaîne doit être un nom de connexion valide (au moins aussi valide que la chaîne ancienne).
notes techniques pour SccCreateSubProject et SccGetParentProjectPath
Ajouter des projets et des solutions au contrôle de code source a été simplifiée 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 contrôle de code source prend en charge les nouvelles fonctions, SccCreateSubProject et SccGetParentProjectPath. Toutefois, l'entrée du Registre suivante peut être utilisée pour désactiver ces modifications et pour rétablir le comportement précédent de Visual Studio (version du plug-in 1,1 d'API de contrôle de code source) :
[=dword HKEY_CURRENT_USER \Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl " : 00000001
Si cette entrée du Registre n'existe pas ou est définie sur un dword : 00000000, tente de Visual Studio d'utiliser les nouvelles fonctions, SccCreateSubProject et SccGetParentProjectPath.
Si l'entrée du Registre est définie sur un dword : 00000001, Visual Studio n'essaie pas d'utiliser ces nouvelles fonctions, et les opérations de l'ajout des travaux de contrôle de code source comme ils ont fait dans les versions antérieures de Visual Studio.
Voir aussi
Référence
SccGetParentProjectPath, fonction