Compartir a través de


Función SccGetProjPath

Esta función solicita al usuario una ruta de acceso del proyecto, que es una cadena que solo es significativa para el complemento de control de código fuente. Se llama cuando el usuario es:

  • Creación de un nuevo proyecto

  • Adición de un proyecto existente al control de versiones

  • Intentar encontrar un proyecto de control de versiones existente

Sintaxis

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

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.

lpUser

[dentro, fuera] Nombre de usuario (que no se debe superar SCC_USER_SIZE, incluido el terminador NULL)

lpProjName

[dentro, fuera] El nombre del proyecto IDE, el área de trabajo del proyecto o el archivo make (no superar SCC_PRJPATH_SIZE, incluido el terminador NULL).

lpLocalPath

[dentro, fuera] Ruta de acceso de trabajo del proyecto. Si bAllowChangePath es TRUE, el complemento de control de código fuente puede modificar esta cadena (no superar _MAX_PATH, incluido el terminador null).

lpAuxProjPath

[dentro, fuera] Un búfer para la ruta de acceso del proyecto devuelto (no superar SCC_PRJPATH_SIZE, incluido el terminador NULL).

bAllowChangePath

[in] Si es TRUE, el complemento de control de código fuente puede solicitar y modificar la lpLocalPath cadena.

pbNew

[dentro, fuera] El valor que viene indica si se va a crear un nuevo proyecto. El valor devuelto indica que se ha realizado correctamente la creación de un proyecto:

Entrante Interpretación
VERDADERO El usuario puede crear un nuevo proyecto.
FALSO Es posible que el usuario no cree un nuevo proyecto.
Saliente Interpretación
VERDADERO Se creó un nuevo proyecto.
FALSO Se seleccionó un proyecto existente.

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 El proyecto se creó o recuperó correctamente.
SCC_I_OPERATIONCANCELED se ha cancelado la operación.
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.
SCC_E_CONNECTIONFAILURE Hubo un problema al intentar conectarse al sistema de control de código fuente.
SCC_E_NONSPECIFICERROR Se ha producido un error no especificado.

Comentarios

El propósito de esta función es que el IDE adquiera los parámetros lpProjName y lpAuxProjPath. Una vez que el complemento de control de código fuente solicita al usuario esta información, vuelve a pasar estas dos cadenas al IDE. El IDE conserva estas cadenas en su archivo de solución y las pasa al SccOpenProject siempre que el usuario abra este proyecto. Estas cadenas permiten al complemento realizar un seguimiento de la información asociada a un proyecto.

Cuando se llama a la función por primera vez, lpAuxProjPath se establece en una cadena vacía. lProjName también puede estar vacío o puede contener el nombre del proyecto IDE, que el complemento de control de código fuente puede usar o omitir. Cuando la función se devuelve correctamente, el complemento devuelve las dos cadenas correspondientes. El IDE no asume estas cadenas, no las usará y no permitirá al usuario modificarlas. Si el usuario quiere cambiar la configuración, el IDE llamará SccGetProjPath de nuevo, pasando los mismos valores que había recibido la hora anterior. Esto proporciona al complemento control completo sobre estas dos cadenas.

Para lpUser, el IDE puede pasar un nombre de usuario o simplemente pasar un puntero a una cadena vacía. Si hay un nombre de usuario, el complemento de control de código fuente debe usarlo como valor predeterminado. Sin embargo, si no se pasó ningún nombre o si se produjo un error en el inicio de sesión con el nombre especificado, el complemento debe solicitar al usuario un inicio de sesión y volver a pasar el nombre lpUser cuando recibe un inicio de sesión válido. Dado que el complemento puede cambiar esta cadena, el IDE siempre asignará un búfer de tamaño (SCC_USER_LEN+1).

Nota:

La primera acción que realiza el IDE puede ser una llamada a la SccOpenProject función o a la SccGetProjPath función . Por lo tanto, ambos tienen un parámetro idéntico lpUser , que permite al complemento de control de código fuente registrar al usuario en cualquier momento. Incluso si la devolución de la función indica un error, el complemento debe rellenar esta cadena con un nombre de inicio de sesión válido.

lpLocalPath es el directorio donde el usuario mantiene el proyecto. Puede ser una cadena vacía. Si no hay ningún directorio definido actualmente (como en el caso de un usuario que intenta descargar un proyecto desde el sistema de control de código fuente) y si bAllowChangePath es TRUE, el complemento de control de código fuente puede solicitar al usuario que escriba o use algún otro método para colocar su propia cadena en lpLocalPath. Si bAllowChangePath es FALSE, el complemento no debe cambiar la cadena, ya que el usuario ya está trabajando en el directorio especificado.

Si el usuario crea un nuevo proyecto que se va a poner bajo el control de código fuente, es posible que el complemento de control de código fuente no lo cree realmente en el sistema de control de código fuente en el momento SccGetProjPath en que se llama. En su lugar, pasa la cadena junto con un valor distinto de cero para pbNew, lo que indica que el proyecto se creará en el sistema de control de código fuente.

Por ejemplo, si un usuario del Asistente para nuevo proyecto de Visual Studio agrega su proyecto al control de código fuente, Visual Studio llama a esta función y el complemento determina si está bien crear un nuevo proyecto en el sistema de control de código fuente para contener el proyecto de Visual Studio. Si el usuario hace clic en Cancelar antes de completar el asistente, nunca se crea el proyecto. Si el usuario hace clic en Aceptar, Visual Studio llama a SccOpenProject, pasando SCC_OPT_CREATEIFNEWy el proyecto controlado por origen se crea en ese momento.

Consulte también