Partager via


Fonction SccAddFromScc

Cette fonction permet à l’utilisateur de rechercher des fichiers qui se trouvent déjà dans le système de contrôle de code source et de faire ensuite partie de ces fichiers du projet actuel. Par exemple, cette fonction peut obtenir un fichier d’en-tête commun dans le projet actuel sans copier le fichier. Le tableau de fichiers retourné, lplpFileNamescontient la liste des fichiers que l’utilisateur souhaite ajouter au projet IDE.

Syntaxe

SCCRTN SccAddFromScc (
   LPVOID   pvContext,
   HWND     hWnd,
   LPLONG   lpnFiles,
   LPCSTR** lplpFileNames
);

Paramètres

pvContext

[in] Structure 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.

lpnFiles

[in, out] Mémoire tampon pour le nombre de fichiers ajoutés. (C’est-à-dire NULL si la mémoire pointée par lplpFileNames est à libérer. Pour plus d’informations, consultez les remarques.)

lplpFileNames

[in, out] Tableau de pointeurs vers tous les noms de fichiers sans chemins d’accès au répertoire. Ce tableau est alloué et libéré par le plug-in de contrôle de code source. Si lpnFiles = 1 et lplpFileNames n’est pas NULL, le prénom dans le tableau pointé par lplpFileNames contient le dossier de destination.

Valeur de retour

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 Les fichiers ont été correctement localisés et ajoutés au projet.
SCC_I_OPERATIONCANCELED L’opération a été annulée sans effet.
SCC_I_RELOADFILE Un fichier ou un projet doit être rechargé.

Notes

L’IDE appelle cette fonction. Si le plug-in de contrôle de code source prend en charge la spécification d’un dossier de destination local, l’IDE passe lpnFiles = 1 et transmet le nom du dossier local dans lplpFileNames.

Lorsque l’appel à la SccAddFromScc fonction est retourné, le plug-in a attribué des valeurs et lpnFiles lplpFileNames, allouant la mémoire du tableau de noms de fichiers si nécessaire (notez que cette allocation remplace le pointeur dans lplpFileNames). Le plug-in de contrôle de code source est chargé de placer tous les fichiers dans le répertoire de l’utilisateur ou dans le dossier de désignation spécifié. L’IDE ajoute ensuite les fichiers au projet IDE.

Enfin, l’IDE appelle cette fonction une deuxième fois, passant NULL pour lpnFiles. Ceci est interprété comme un signal spécial par le plug-in de contrôle de code source pour libérer la mémoire allouée pour le tableau de noms de fichiers dans lplpFileNames``.

lplpFileNames est un char *** pointeur. Le plug-in de contrôle de code source place un pointeur vers un tableau de pointeurs vers des noms de fichiers, en passant ainsi la liste de la manière standard pour cette API.

Remarque

Les versions initiales de l’API VSSCI n’ont pas permis d’indiquer le projet cible pour les fichiers ajoutés. Pour ce faire, la sémantique du lplpFIleNames paramètre a été améliorée pour le rendre un paramètre entrant/sortant plutôt qu’un paramètre de sortie. Si un seul fichier est spécifié, autrement dit, la valeur pointée sur lpnFiles = 1, puis le premier élément de lplpFileNames contient le dossier cible. Pour utiliser ces nouvelles sémantiques, l’IDE appelle la SccSetOption fonction avec le nOption paramètre défini sur SCC_OPT_SHARESUBPROJ. Si un plug-in de contrôle de code source ne prend pas en charge la sémantique, il retourne SCC_E_OPTNOTSUPPORTED. Cela désactive l’utilisation de la fonctionnalité Ajouter à partir du contrôle de code source. Si un plug-in prend en charge la fonctionnalité Ajouter à partir du contrôle de code source (SCC_CAP_ADDFROMSCC), elle doit prendre en charge la nouvelle sémantique et le retour SCC_I_SHARESUBPROJOK.

Voir aussi