Función SccGetCommandOptions
Esta función solicita al usuario opciones avanzadas para un comando determinado.
Sintaxis
SCCRTN SccGetCommandOptions(
LPVOID pvContext,
HWND hWnd,
enum SCCCOMMAND iCommand,
LPCMDOPTS* ppvOptions
);
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.
Icommand
[in] Comando para el que se solicitan opciones avanzadas (consulte Código de comando para conocer los valores posibles).
ppvOptions
[in] La estructura de opciones (también puede ser NULL
).
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_I_ADV_SUPPORT | El complemento de control de código fuente admite opciones avanzadas para el comando. |
SCC_I_OPERATIONCANCELED | El usuario canceló el cuadro de diálogo Opciones del complemento de control de código fuente. |
SCC_E_OPTNOTSUPPORTED | El complemento de control de código fuente no admite esta operación. |
SCC_E_ISCHECKEDOUT | No se puede realizar esta operación en un archivo que está desprotegido actualmente. |
SCC_E_ACCESSFAILURE | Se produjo un problema al acceder al sistema de control de código fuente, probablemente debido a problemas de red o contención. Se recomienda un reintento. |
SCC_E_NONSPECIFICERROR | Error no específico. |
Comentarios
El IDE llama a esta función por primera vez con ppvOptions
=NULL
para determinar si el complemento de control de código fuente admite la característica de opciones avanzadas para el comando especificado. Si el complemento admite la característica para ese comando, el IDE llama a esta función de nuevo cuando el usuario solicita opciones avanzadas (normalmente se implementa como un botón Avanzado en un cuadro de diálogo) y proporciona un puntero distinto de NULL para ppvOptions
que apunte a un NULL
puntero. El complemento almacena las opciones avanzadas especificadas por el usuario en una estructura privada y devuelve un puntero a esa estructura en ppvOptions
. A continuación, esta estructura se pasa a todas las demás funciones de API del complemento de control de código fuente que necesitan conocerla, incluidas las llamadas posteriores a la SccGetCommandOptions
función.
Un ejemplo puede ayudar a aclarar esta situación.
Un usuario elige el comando Obtener y el IDE muestra un cuadro de diálogo Obtener . El IDE llama a la SccGetCommandOptions
función con establecida SCC_COMMAND_GET
en iCommand
y ppvOptions
establecida en NULL
. Esto lo interpreta el complemento de control de código fuente como pregunta: "¿Tiene alguna opción avanzada para este comando?" Si el complemento devuelve SCC_I_ADV_SUPPORT
, el IDE muestra un botón Avanzadas en su cuadro de diálogo Obtener .
La primera vez que el usuario hace clic en el botón Avanzado , el IDE vuelve a llamar a la SccGetCommandOptions
función, esta vez con unNULL``ppvOptions
valor que no apunta a un NULL
puntero. El complemento muestra su propio cuadro de diálogo Obtener opciones , solicita al usuario información, coloca esa información en su propia estructura y devuelve un puntero a esa estructura en ppvOptions
.
Si el usuario vuelve a hacer clic en Avanzadas en el mismo cuadro de diálogo, el IDE llama a la SccGetCommandOptions
función de nuevo sin cambiar ppvOptions
, de modo que la estructura se vuelva a pasar al complemento. Esto permite al complemento reinicializar su cuadro de diálogo con los valores que el usuario había establecido anteriormente. El complemento modifica la estructura en su lugar antes de devolver.
Por último, cuando el usuario hace clic en Aceptar en el cuadro de diálogo Obtener del IDE, el IDE llama a SccGet y pasa la estructura devuelta en ppvOptions
que contiene las opciones avanzadas.
Nota:
El comando SCC_COMMAND_OPTIONS
se usa cuando el IDE muestra un cuadro de diálogo Opciones que permite al usuario establecer preferencias que controlan cómo funciona la integración. Si el complemento de control de código fuente quiere proporcionar su propio cuadro de diálogo preferencias, puede mostrarlo desde un botón Avanzado en el cuadro de diálogo preferencias del IDE. El complemento es el único responsable de obtener y conservar esta información; el IDE no lo usa ni lo modifica.