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 NULL
es , 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:
Valor | 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 nOption
parámetro establecido SCC_OPT_SHARESUBPROJ
en . 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
.