SccCreateSubProject (función)SccCreateSubProject Function

Esta función crea un subproyecto con el nombre especificado en un proyecto existente de elemento primario especificado por el lpParentProjPath argumento.This function creates a subproject with the given name under an existing parent project specified by the lpParentProjPath argument.

SintaxisSyntax

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

ParámetrosParameters

pContextpContext
[in] El puntero de contexto de complemento de control de código fuente.[in] The source control plug-in context pointer.

hWndhWnd
[in] Identificador de la ventana del IDE que puede usar el complemento de control de código fuente como elemento primario para los cuadros de diálogo que proporciona.[in] A handle to the IDE window that the source control plug-in can use as a parent for any dialog boxes that it provides.

lpUserlpUser
[entrada, salida] El nombre de usuario (hasta SCC_USER_SIZE, incluido el terminador NULL).[in, out] The username (up to SCC_USER_SIZE, including the NULL terminator).

lpParentProjPathlpParentProjPath
[in] Cadena que identifica la ruta de acceso del proyecto principal (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).[in] A string identifying the path of the parent project (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpSubProjNamelpSubProjName
[in] El nombre sugerido subproyecto (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).[in] The suggested subproject name (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpAuxProjPathlpAuxProjPath
[entrada, salida] Cadena auxiliar que identifica el proyecto (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).[in, out] Auxiliary string identifying the project (up to SCC_PRJPATH_SIZE, including the NULL terminator).

lpSubProjPathlpSubProjPath
[entrada, salida] Cadena de salida que identifica la ruta de acceso para el subproyecto (hasta SCC_PRJPATH_SIZE, incluido el terminador NULL).[in, out] Output string identifying the path for the subproject (up to SCC_PRJPATH_SIZE, including the NULL terminator).

Valor devueltoReturn Value

La implementación de complemento de control de origen de esta función debe devolver uno de los siguientes valores:The source control plug-in implementation of this function is expected to return one of the following values:

ValorValue DescripciónDescription
SCC_OKSCC_OK Subproyecto se creó correctamente.Subproject was successfully created.
SCC_E_INITIALIZEFAILEDSCC_E_INITIALIZEFAILED No se pudo inicializar el proyecto principal.Parent project could not be initialized.
SCC_E_INVALIDUSERSCC_E_INVALIDUSER El usuario no pudo iniciar sesión el sistema de control de código fuente.The user could not log in to the source control system.
SCC_E_COULDNOTCREATEPROJECTSCC_E_COULDNOTCREATEPROJECT No se puede crear el subproyecto.Subproject cannot be created.
SCC_E_PROJSYNTAXERRSCC_E_PROJSYNTAXERR Sintaxis de proyecto no válida.Invalid project syntax.
SCC_E_UNKNOWNPROJECTSCC_E_UNKNOWNPROJECT El proyecto principal es desconocido para el complemento de control de código fuente.The parent project is unknown to the source control plug-in.
SCC_E_INVALIDFILEPATHSCC_E_INVALIDFILEPATH Ruta de acceso de archivo no válido o no utilizable.Invalid or unusable file path.
SCC_E_NOTAUTHORIZEDSCC_E_NOTAUTHORIZED El usuario no puede realizar esta operación.The user is not allowed to perform this operation.
SCC_E_ACCESSFAILURESCC_E_ACCESSFAILURE Hubo un problema al obtener acceso al sistema de control de código fuente, probablemente debido a problemas de red o de contención.There was a problem accessing the source control system, probably due to network or contention issues. Se recomienda un reintento.A retry is recommended.
SCC_E_CONNECTIONFAILURESCC_E_CONNECTIONFAILURE Hubo un problema de conexión de complemento de control de código fuente.There was a source control plug-in connection problem.
SCC_E_NONSPECIFICERRORSCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERRORSCC_E_UNKNOWNERROR
Error no determinado.Nonspecific failure.

ComentariosRemarks

Si ya existe un subproyecto con el nombre, la función puede cambiar el nombre predeterminado para crear un único, por ejemplo agregando "<número >" a él.If a subproject with the name already exists, the function can change the default name to create a unique one, for example by adding "<number>" to it. El llamador debe estar preparado para aceptar los cambios en lpUser, lpSubProjPath, y lpAuxProjPath.The caller must be prepared to accept changes to lpUser, lpSubProjPath, and lpAuxProjPath. El lpSubProjPath ylpAuxProjPath , a continuación, se usan argumentos en una llamada a la SccOpenProject.The lpSubProjPath andlpAuxProjPath arguments are then used in a call to the SccOpenProject. No se debe modificar el autor de llamada cuando se devuelve.They should not be modified by the caller upon return. Estas cadenas proporcionan una manera para el complemento para realizar el seguimiento de información que necesita para asociar a un proyecto de control de código fuente.These strings provide a way for the source control plug-in to track information that it needs to associate with a project. El llamador IDE no mostrará estos dos parámetros al volver, dado que el complemento puede utilizar una cadena con formato que podría no ser adecuada para su visualización.The caller IDE will not display these two parameters upon return, because the plug-in can use a formatted string that might not be suitable for viewing. La función devuelve un código de éxito o error y, si es correcto, rellena la variable lpSubProjPath con la ruta de acceso completa del proyecto para el nuevo proyecto.The function returns a success or failure code and, if successful, fills the variable lpSubProjPath with the full project path to the new project.

Esta función es similar a la SccGetProjPath, excepto en que automáticamente crea un proyecto, en lugar de solicitar al usuario seleccionar uno.This function is similar to the SccGetProjPath, except that it silently creates a project rather than prompting the user to select one. Cuando el SccCreateSubProject se llama a función lpParentProjName y lpAuxProjPath no estarán vacíos y se corresponderá con un proyecto válido.When the SccCreateSubProject function is called, lpParentProjName and lpAuxProjPath will not be empty and will correspond to a valid project. Estas cadenas se reciben normalmente por el IDE de una llamada anterior a la SccGetProjPath función o la SccGetParentProjectPath.These strings are usually received by the IDE from a previous call to the SccGetProjPath function or the SccGetParentProjectPath.

El lpUser argumento es el nombre de usuario.The lpUser argument is the user name. El IDE se pasará en el mismo nombre de usuario que anteriormente recibía desde SccGetProjPath, y el complemento de control de origen debe usar el nombre de forma predeterminada.The IDE will pass in the same user name that it had previously received from SccGetProjPath, and the source control plug-in should use the name as a default. Si el usuario ya tiene una conexión abierta con el complemento, a continuación, el complemento debe intentar eliminar los mensajes para asegurarse de que la función funciona en modo silencioso.If the user already has an open connection with the plug-in, then the plug-in should try to eliminate any prompts to make sure the function works silently. Sin embargo, si se produce un error en el inicio de sesión, el complemento debe preguntar al usuario para un inicio de sesión y, cuando recibe un inicio de sesión válido, pase el nombre nuevo en lpUser.However, if the login fails, the plug-in should prompt the user for a login and, when it receives a valid login, pass the name back in lpUser. Dado que el complemento puede cambiar esta cadena, el IDE siempre asignará un búfer de tamaño (SCC_USER_LEN + 1 ó SCC_USER_SIZE, que incluye espacio para el terminador nulo).Because the plug-in may change this string, the IDE will always allocate a buffer of size (SCC_USER_LEN+1 or SCC_USER_SIZE, which includes space for the null terminator). 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).If the string is changed, the new string must be a valid login name (at least as valid as the old string).

Notas técnicas de SccCreateSubProject y SccGetParentProjectPathTechnical Notes for SccCreateSubProject and SccGetParentProjectPath

Agregar soluciones y proyectos al control de código fuente se ha simplificado en Visual Studio para minimizar el número de veces que un usuario debe seleccionar las ubicaciones en el sistema de control de código fuente.Adding solutions and projects to source control has been simplified in Visual Studio to minimize the number of times a user is prompted to select locations in the source control system. Estos cambios se activan mediante Visual Studio si un complemento de control de origen admite tanto de las nuevas funciones, SccCreateSubProject y SccGetParentProjectPath.These changes are activated by Visual Studio if a source control plug-in supports both of the new functions, SccCreateSubProject and SccGetParentProjectPath. Sin embargo, se puede utilizar la siguiente entrada del registro para deshabilitar estos cambios y revertir al comportamiento anterior de Visual Studio (origen Control complemento API versión 1.1):However, the following registry entry can be used to disable these changes and revert to previous Visual Studio (Source Control Plug-in API Version 1.1) behavior:

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

Si esta entrada del registro no existe o está establecida en DWORD: 00000000, Visual Studio intenta utilizar las nuevas funciones, SccCreateSubProject y SccGetParentProjectPath.If this registry entry does not exist or is set to dword:00000000, Visual Studio attempts to use the new functions, SccCreateSubProject and SccGetParentProjectPath.

Si la entrada del registro se establece en DWORD: 00000001, Visual Studio no intenta utilizar estas funciones nuevas y las operaciones de agregar al control de código fuente funcionan como lo hacían en versiones anteriores de Visual Studio.If the registry entry is set to dword:00000001, Visual Studio does not attempt to use these new functions, and the operations of adding to source control work as they did in prior versions of Visual Studio.

Vea tambiénSee Also

Funciones de API de complemento de Control de código fuente Source Control Plug-in API Functions
SccGetParentProjectPath SccGetParentProjectPath
SccGetProjPathSccGetProjPath