SccPopulateList (Función)

Esta función actualiza una lista de archivos para un comando de control de código fuente determinado y proporciona el estado del control de código fuente en todos los archivos especificados.

Sintaxis

SCCRTN SccPopulateList (
   LPVOID          pvContext,
   enum SCCCOMMAND nCommand,
   LONG            nFiles,
   LPCSTR*         lpFileNames,
   POPLISTFUNC     pfnPopulate,
   LPVOID          pvCallerData,
   LPLONG          lpStatus,
   LONG            fOptions
);

Parámetros

pvContext

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

nCommand

[in] Comando de control de código fuente que se aplicará a todos los archivos de la lpFileNames matriz (vea Código de comando para obtener una lista de comandos posibles).

nFiles

[in] Número de archivos de la lpFileNames matriz.

lpFileNames

[in] Matriz de nombres de archivo conocidos para el IDE.

pfnPopulate

[in] La función de devolución de llamada IDE para llamar a para agregar y quitar archivos (consulte POPLISTFUNC para obtener más información).

pvCallerData

[in] Valor que se va a pasar sin cambios a la función de devolución de llamada.

lpStatus

[dentro, fuera] Matriz del complemento de control de código fuente para devolver las marcas de estado de cada archivo.

fOptions

[in] Marcas de comandos (vea la sección "PopulateList flag" de Bitflags Usado por comandos específicos para obtener más información).

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 Correcto.
SCC_E_NONSPECIFICERROR Error no específico.

Comentarios

Esta función examina la lista de archivos para su estado actual. Usa la pfnPopulate función de devolución de llamada para notificar al autor de la llamada cuando un archivo no coincide con los criterios de nCommand. Por ejemplo, si el comando es SCC_COMMAND_CHECKIN y un archivo de la lista no está desprotegido, la devolución de llamada se usa para informar al autor de la llamada. En ocasiones, el complemento de control de código fuente puede encontrar otros archivos que podrían formar parte del comando y agregarlos. Esto permite, por ejemplo, un usuario de Visual Basic desproteger un archivo .bmp que usa su proyecto, pero no aparece en el archivo de proyecto de Visual Basic. Un usuario elige el comando Obtener en el IDE. El IDE mostrará una lista de todos los archivos que cree que el usuario puede obtener, pero antes de que se muestre la lista, se llama a la SccPopulateList función para asegurarse de que la lista que se va a mostrar esté actualizada.

Ejemplo

El IDE crea una lista de archivos que cree que el usuario puede obtener. Antes de mostrar esta lista, llama a la SccPopulateList función , lo que proporciona al complemento de control de código fuente la oportunidad de agregar y eliminar archivos de la lista. El complemento modifica la lista llamando a la función de devolución de llamada dada (consulte POPLISTFUNC para obtener más detalles).

El complemento continúa llamando a la pfnPopulate función , que agrega y elimina archivos, hasta que finaliza y, a continuación, vuelve de la SccPopulateList función . A continuación, el IDE puede mostrar su lista. La lpStatus matriz representa todos los archivos de la lista original pasada por el IDE. El complemento rellena el estado de todos estos archivos además de usar la función de devolución de llamada.

Nota:

Un complemento de control de código fuente siempre tiene la opción de simplemente devolver inmediatamente de esta función, dejando la lista tal cual. Si un complemento implementa esta función, puede indicarlo estableciendo la SCC_CAP_POPULATELIST funcionalidad bitflag en la primera llamada a SccInitialize. De forma predeterminada, el complemento siempre debe suponer que todos los elementos que se pasan son archivos. Sin embargo, si el IDE establece la SCC_PL_DIR marca en el fOptions parámetro , todos los elementos que se pasan deben considerarse directorios. El complemento debe agregar todos los archivos que pertenecen a los directorios. El IDE nunca pasará una combinación de archivos y directorios.

Consulte también