Función SccCreateSubProject

Esta función crea un subproyecto con el nombre especificado en un proyecto primario existente especificado por el lpParentProjPath argumento .

Sintaxis

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

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).

lpParentProjPath

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

lpSubProjName

[in] Nombre del subproyecto sugerido (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).

lpSubProjPath

[dentro, fuera] Cadena de salida que identifica la ruta de acceso del subproyecto (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 El subproyecto se creó correctamente.
SCC_E_INITIALIZEFAILED No se pudo inicializar el proyecto primario.
SCC_E_INVALIDUSER El usuario no pudo iniciar sesión en el sistema de control de código fuente.
SCC_E_COULDNOTCREATEPROJECT No se puede crear el subproyecto.
SCC_E_PROJSYNTAXERR Sintaxis de proyecto no válida.
SCC_E_UNKNOWNPROJECT El proyecto primario 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_CONNECTIONFAILURE Hubo un problema de conexión del complemento de control de código fuente.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Error no específico.

Comentarios

Si ya existe un subproyecto con el nombre, la función puede cambiar el nombre predeterminado para crear uno único, por ejemplo agregando "_<number>" a él. El autor de la llamada debe estar preparado para aceptar cambios en lpUser, lpSubProjPathy lpAuxProjPath. A lpSubProjPath continuación, los argumentos ylpAuxProjPath se usan en una llamada a SccOpenProject. El autor de la llamada no debe modificarlos al volver. Estas cadenas 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. El IDE del autor de la llamada no mostrará estos dos parámetros tras la devolución, ya que el complemento puede usar una cadena con formato que podría no ser adecuada para su visualización. La función devuelve un código correcto o de error y, si se ejecuta correctamente, rellena la variable lpSubProjPath con la ruta de acceso completa del proyecto al nuevo proyecto.

Esta función es similar a SccGetProjPath, salvo que crea de forma silenciosa un proyecto en lugar de pedir al usuario que seleccione uno. Cuando se llama a la SccCreateSubProject función y lpAuxProjPath no estará vacía y se corresponderá con un proyecto lpParentProjName válido. Normalmente, el IDE recibe estas cadenas de una llamada anterior a la SccGetProjPath función o SccGetParentProjectPath.

El lpUser argumento es el nombre de usuario. El IDE pasará el mismo nombre de usuario que había recibido anteriormente de SccGetProjPathy 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 o SCC_USER_SIZE, que incluye espacio para el terminador nulo). 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 SccGetParentProjectPath. Sin embargo, se puede usar la siguiente entrada del Registro para deshabilitar estos cambios y revertir al comportamiento anterior de Visual Studio (Complemento de control de código fuente 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.

Consulte también