Función SccGetParentProjectPath

Esta función determina la ruta de acceso del proyecto primario de un proyecto especificado. Se llama a esta función cuando el usuario agrega un proyecto de Visual Studio al control de código fuente.

Sintaxis

SCCRTN SccGetParentProjectPath(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpProjPath,
   LPSTR  lpAuxProjPath,
   LPSTR  lpParentProjPath
);

Parámetros

pContext

[in] Puntero de 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 (hasta SCC_USER_SIZE, incluido el terminador NULL).

lpProjPath

[in] Cadena que identifica la ruta de acceso del proyecto (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).

lpAuxProjPath

[dentro, fuera] Cadena auxiliar que identifica el proyecto (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).

lpParentProjPath

[dentro, fuera] Cadena de salida que identifica la ruta de acceso del proyecto principal (hasta SCC_PRJPATH_SIZE, incluido el terminador 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 La ruta de acceso del proyecto principal se obtuvo correctamente.
SCC_E_INITIALIZEFAILED No se pudo inicializar el proyecto.
SCC_E_INVALIDUSER El usuario no pudo iniciar sesión en el complemento de control de código fuente.
SCC_E_UNKNOWNPROJECT Project es desconocido para el complemento de control de código fuente.
SCC_E_INVALIDFILEPATH Ruta de acceso de archivo no válida o no utilizable.
SCC_E_NOTAUTHORIZED No se permite al usuario realizar esta 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. Se recomienda un reintento.
SCC_E_PROJSYNTAXERR Sintaxis de proyecto no válida.
SCC_E_CONNECTIONFAILURE Almacén del problema de conexión.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Error no específico.

Comentarios

Esta función devuelve un código correcto o de error y, si se ejecuta correctamente, rellena la variable lpParentProjPath con la ruta de acceso completa del proyecto al proyecto especificado.

Esta función devuelve la ruta de acceso del proyecto principal de un proyecto existente. Para el proyecto raíz, la función devuelve la ruta de acceso del proyecto que se pasó (es decir, la misma ruta de acceso del proyecto raíz). Tenga en cuenta que una ruta de acceso del proyecto es una cadena que solo es significativa para el complemento de control de código fuente.

El IDE también está preparado para aceptar cambios en los lpUser parámetros y lpAuxProjPath . El IDE conservará estas cadenas y las pasará al SccOpenProject cuando el usuario abra este proyecto en el futuro. Estas cadenas, por lo tanto, proporcionan una manera de que el complemento de control de código fuente realice un seguimiento de la información que necesita asociar a un proyecto.

Esta función es similar a SccGetProjPath, salvo que no solicita al usuario que seleccione un proyecto. Tampoco crea un nuevo proyecto, sino que solo funciona con un proyecto existente.

Cuando SccGetParentProjectPath se llama a lpProjPath y lpAuxProjPath no estará vacío y se corresponderá con un proyecto válido. Normalmente, el IDE recibe estas cadenas desde una llamada anterior a la SccGetProjPath función.

El lpUser argumento es el nombre de usuario. El IDE pasará el mismo nombre de usuario que había recibido anteriormente de la SccGetProjPath función y el complemento de control de código fuente debe usar el nombre como valor predeterminado. Si el usuario ya tiene una conexión abierta con el complemento, el complemento debe intentar eliminar las indicaciones para asegurarse de que la función funciona de forma silenciosa. Sin embargo, si se produce un error en el inicio de sesión, el complemento debe solicitar al usuario un inicio de sesión y, cuando recibe un inicio de sesión válido, vuelva a pasar el nombre en lpUser. Dado que el complemento puede cambiar esta cadena, el IDE siempre asignará un búfer de tamaño (SCC_USER_LEN+1). Si se cambia la cadena, la nueva cadena debe ser un nombre de inicio de sesión válido (al menos tan válido como la cadena anterior).

Notas técnicas de SccCreateSubProject y SccGetParentProjectPath

La adición de soluciones y proyectos al control de código fuente se ha simplificado en Visual Studio para minimizar el número de veces que se solicita al usuario que seleccione ubicaciones en el sistema de control de código fuente. Visual Studio activa estos cambios si un complemento de control de código fuente admite ambas funciones, SccCreateSubProject y la SccGetParentProjectPath función . Sin embargo, se puede usar la siguiente entrada del Registro para deshabilitar estos cambios y revertir al comportamiento anterior de Visual Studio (Source Control Plug-in API Versión 1.1):

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl"=dword:00000001

Si esta entrada del Registro no existe o se establece en dword:000000000, Visual Studio intenta usar las nuevas funciones SccCreateSubProjectySccGetParentProjectPath .

Si la entrada del Registro se establece en dword:00000001, Visual Studio no intenta usar estas nuevas funciones y las operaciones de agregar al control de código fuente funcionan como lo hicieron en versiones anteriores de Visual Studio.

Consulte también