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:
Valor | 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 está establecida en dword:000000000, Visual Studio intenta usar las nuevas funciones SccCreateSubProject
y SccGetParentProjectPath
.
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.