Compartir a través de


SccOpenProject (Función)

Esta función abre un proyecto de control de código fuente existente o cree uno nuevo.

SCCRTN SccOpenProject (
   LPVOID        pvContext,
   HWND          hWnd,
   LPSTR         lpUser,
   LPCSTR        lpProjName,
   LPCSTR        lpLocalProjPath,
   LPSTR         lpAuxProjPath,
   LPCSTR        lpComment,
   LPTEXTOUTPROC lpTextOutProc,
   LONG          dwFlags
);

Parámetros

  • pvContext
    [in] estructura de contexto del complemento de control de código fuente de El.

  • hWnd
    [in] identificador de A la ventana del IDE que el complemento de control de código fuente puede utilizar como elemento primario para cualquier cuadro de diálogo que proporciona.

  • lpUser
    [in, out] nombre del usuario (no superar SCC_USER_SIZE, incluido el terminador NULL).

  • lpProjName
    [in] cadena de La que identifica el nombre del proyecto.

  • lpLocalProjPath
    [in] ruta de la carpeta de trabajo para el proyecto.

  • lpAuxProjPath
    [in, out] una cadena auxiliar opcional que identifica el proyecto (no superar SCC_AUXPATH_SIZE, incluido el terminador NULL).

  • lpComment
    [in] esto a un nuevo proyecto se está creando.

  • lpTextOutProc
    [in] una función de devolución de llamada opcional para mostrar el texto representado del complemento de control de código fuente.

  • dwFlags
    [in] indica si un nuevo proyecto necesita crear si el proyecto es desconocido para el complemento de control de código fuente. El valor puede ser una combinación de SCC_OP_CREATEIFNEW y de SCC_OP_SILENTOPEN.

Valor devuelto

La implementación del complemento de control de código fuente de esta función es esperada devolver uno de los siguientes valores:

Valor

Descripción

SCC_OK

Correctamente al abrir el proyecto.

SCC_E_INITIALIZEFAILED

El proyecto no pudo inicializar.

SCC_E_INVALIDUSER

El usuario no puede iniciar sesión en el sistema de control de código fuente.

SCC_E_COULDNOTCREATEPROJECT

El proyecto no existía antes de la llamada; el indicador de SCC_OPT_CREATEIFNEW se estableció, pero el proyecto no puede crear.

SCC_E_PROJSYNTAXERR

Sintaxis no válida del proyecto.

SCC_E_UNKNOWNPROJECT

El proyecto es desconocido para el complemento de control de código fuente, y el indicador de SCC_OPT_CREATEIFNEW no se estableció.

SCC_E_INVALIDFILEPATH

Ruta de acceso válida o inutilizable.

SCC_E_NOTAUTHORIZED

No se permite al usuario realizar esta operación.

SCC_E_ACCESSFAILURE

Hubo un problema que tiene acceso al sistema de control de código fuente, probablemente debido a problemas de red o de contención. Se recomienda un intento.

SCC_E_NONSPECFICERROR

Un error no concreto; el sistema de control de código fuente no se inicializó.

Comentarios

El IDE puede pasar un nombre de usuario (lpUser), o puede pasar simplemente en un puntero a una cadena vacía. Si hay un nombre de usuario, el complemento de control de código fuente debe utilizarlo como valor predeterminado. Sin embargo, si no se pasa ningún nombre, o si el inicio de sesión no con el nombre, el complemento debe pedir al usuario iniciar sesión y devolverá el nombre válido en lpUser cuando recibe un inicio de sesión válido. Because que el complemento puede cambiar la cadena de nombre de usuario, el IDE asignará siempre un búfer de tamaño (SCC_USER_LEN+1 o SCC_USER_SIZE, que incluyen el espacio para el terminador nulo).

Nota

La primera acción que el IDE se puede requerir realizar puede ser una llamada a la función de SccOpenProject o a SccGetProjPath (Función).Por esta razón, ambos tienen un parámetro idéntico de lpUser .

lpAuxProjPath ylpProjName se leen del archivo de solución, o se devuelven de una llamada a la función de SccGetProjPath . Estos parámetros contienen cadenas que el complemento de control de código fuente asociado al proyecto y son significativos únicamente al complemento. Si no hay estas cadenas en el archivo de solución y no se le pregunte al usuario examinar (que devolverá una cadena con la función de SccGetProjPath ), el IDE pasa cadenas vacías para los lpAuxProjPath y lpProjName, y espera que estos valores estén actualizados por el complemento cuando esta función devuelve.

lpTextOutProc es un puntero a una función de devolución de llamada proporcionada por el IDE al complemento de control de código fuente con el fin de mostrar el resultado del resultado del comando. Esta función de devolución de llamada se describe en detalle en LPTEXTOUTPROC.

Nota

Si el complemento de control de código fuente se desea aprovechar de esto, debe haber establecido el indicador de SCC_CAP_TEXTOUT en SccInitialize (Función).Si ese marcador no se estableció, o si el IDE no admite esta característica, lpTextOutProc se NULL.

Los controles de dwFlags el resultado en caso que no existe el proyecto que está abierto actualmente. Consta de dos bitflags, SCC_OP_CREATEIFNEW y SCC_OP_SILENTOPEN. Si existe el proyecto que está abierto, la función abre simplemente el proyecto y devuelve SCC_OK. Si no existe el proyecto y si el indicador de SCC_OP_CREATEIFNEW está habilitado, el complemento de control de origen puede crear el proyecto en el sistema de control de código fuente, lo abre, y devuelve SCC_OK. Si no existe el proyecto, y si el indicador de SCC_OP_CREATEIFNEW está desactivado, el complemento debe activar para el indicador de SCC_OP_SILENTOPEN . Si ese marcador no está habilitado, el complemento puede preguntar al usuario un nombre de proyecto. Si este marcador está habilitado, el complemento debe devolver simplemente SCC_E_UNKNOWNPROJECT.

Al llamar a ordenado

En el curso normal de los eventos, SccInitialize (Función) se denominaría primero para iniciar sesión de control de código fuente. Una sesión puede consistir en una llamada a SccOpenProject, seguido por otras llamadas a funciones de la API del complemento de control de código fuente, y finalizará con una llamada a SccCloseProject (Función). Tales sesiones pueden ser repetidas varias veces antes de que se llame a SccUninitialize (Función) .

Si el complemento de control de código fuente establece SCC_CAP_REENTRANT cambiarla en SccInitialize, la secuencia anterior de la sesión se puede repetir muchas veces en paralelo. Diversas estructuras de pvContext siguen en varias sesiones, donde cada pvContext es asociado con un proyecto abierto al mismo tiempo. Basado en el parámetro depvContext , el complemento puede determinar qué proyecto se hace referencia en cualquier llamada concreta. Si el bit SCC_CAP_REENTRANT de la función no está establecida, los complementos nonreentrant de control de código fuente se limitan en su capacidad de trabajar con varios proyectos.

Nota

El bit de SCC_CAP_REENTRANT se introdujo en la versión 1,1 del complemento de control de código fuente API.No se establece o se omite en la versión 1,0, y todos los complementos de control de código fuente de la versión 1,0 se supone que nonreentrant.

Vea también

Referencia

SccCloseProject (Función)

SccGetProjPath (Función)

SccInitialize (Función)

SccUninitialize (Función)

LPTEXTOUTPROC

Conceptos

Funciones de la API del complemento de control de código fuente

Restricciones a la longitud de las cadenas