Compartir vía


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.

Consulte también