Share via


Función SccAddFromScc

Esta función permite al usuario buscar archivos que ya están en el sistema de control de código fuente y, posteriormente, hacer que esos archivos formen parte del proyecto actual. Por ejemplo, esta función puede obtener un archivo de encabezado común en el proyecto actual sin copiar el archivo. La matriz de retorno de archivos, lplpFileNames, contiene la lista de archivos que el usuario quiere agregar al proyecto IDE.

Sintaxis

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

Parámetros

pvContext

[in] Estructura del contexto del complemento de control de código fuente.

hWnd

[in] Identificador de la ventana del IDE que el complemento de control de código fuente puede usar como elemento primario para los cuadros de diálogo que proporciona.

lpnFiles

[dentro, fuera] Búfer para el número de archivos en los que se va a agregar. (Esto es NULL si la memoria a lplpFileNames la que apunta se va a liberar. Consulte Los comentarios para obtener más información).

lplpFileNames

[dentro, fuera] Matriz de punteros a todos los nombres de archivo sin rutas de acceso de directorio. El complemento de control de código fuente asigna y libera esta matriz. Si lpnFiles es = 1 y lplpFileNames no NULLes , el nombre de la matriz a lplpFileNames la que apunta contiene la carpeta de destino.

Valor devuelto

Se espera que la implementación del complemento de control de código fuente de esta función devuelva uno de los siguientes valores:

Value Descripción
SCC_OK Los archivos se encontraron correctamente y se agregaron al proyecto.
SCC_I_OPERATIONCANCELED La operación se canceló sin ningún efecto.
SCC_I_RELOADFILE Es necesario volver a cargar un archivo o proyecto.

Comentarios

El IDE llama a esta función. Si el complemento de control de código fuente admite la especificación de una carpeta de destino local, el IDE pasa lpnFiles = 1 y pasa el nombre de la carpeta local a lplpFileNames.

Cuando se devuelve la llamada a la SccAddFromScc función, el complemento tiene asignados valores a lpnFiles y lplpFileNames, asignando la memoria para la matriz de nombres de archivo según sea necesario (tenga en cuenta que esta asignación reemplaza el puntero en lplpFileNames). El complemento de control de código fuente es responsable de colocar todos los archivos en el directorio del usuario o en la carpeta de designación especificada. A continuación, el IDE agrega los archivos al proyecto ide.

Por último, el IDE llama a esta función una segunda vez, pasando NULL para lpnFiles. Esto se interpreta como una señal especial por el complemento de control de código fuente para liberar la memoria asignada para la matriz de nombres de archivo en lplpFileNames``.

lplpFileNames es un char *** puntero. El complemento de control de código fuente coloca un puntero a una matriz de punteros a nombres de archivo, pasando así la lista de la manera estándar para esta API.

Nota:

Las versiones iniciales de la API de VSSCI no proporcionaron una manera de indicar el proyecto de destino para los archivos agregados. Para dar cabida a esto, se ha mejorado la semántica del lplpFIleNames parámetro para que sea un parámetro de salida en lugar de un parámetro de salida. Si solo se especifica un único archivo, es decir, el valor al lpnFiles que apunta = 1, el primer elemento de contiene la carpeta de lplpFileNames destino. Para usar esta nueva semántica, el IDE llama a la SccSetOption función con el nOptionparámetro establecido SCC_OPT_SHARESUBPROJen . Si un complemento de control de código fuente no admite la semántica, devuelve SCC_E_OPTNOTSUPPORTED. Al hacerlo, se deshabilita el uso de la característica Agregar desde el control de código fuente. Si un complemento admite la característica Agregar desde control de código fuente (SCC_CAP_ADDFROMSCC), debe admitir la nueva semántica y devolver SCC_I_SHARESUBPROJOK.

Consulte también