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é, lplpFileNames
contient 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
.