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 un 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
[in, out] 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
[in, out] 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
[in, out] 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 valores siguientes: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 ha podido iniciar sesión el sistema de control de origen.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álido.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 el 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 origen.There was a source control plug-in connection problem.
SCC_E_NONSPECIFICERRORSCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERRORSCC_E_UNKNOWNERROR
Error no específico.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 mediante la adición de "<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 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 debe modificar el llamador cuando se devuelve.They should not be modified by the caller upon return. Estas cadenas proporcionan una manera para el control de código fuente para realizar el seguimiento de la información que necesita para asociar a un proyecto de complemento.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 regresar, porque 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 al 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 crea en modo silencioso 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 la función, lpParentProjName y lpAuxProjPath no estará vacía 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 desde una llamada anterior a la SccGetProjPath función o el 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 de 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 las indicaciones 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 solicitar 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 o 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 se le pide que seleccione 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 por Visual Studio si un complemento de control de código fuente 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, puede usarse la siguiente entrada del registro para deshabilitar estos cambios y revertir al comportamiento anterior de Visual Studio (origen de Control de complemento de 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 usar 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 se establece la entrada del registro a DWORD: 00000001, Visual Studio no intenta usar estas nuevas funciones y las operaciones de agregar a 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