Partilhar via


Função SccGetProjPath

Esta função solicita ao usuário para um caminho de projeto, que é uma seqüência que seja significativa apenas para o plug-in de controle de origem. Ele é chamado quando o usuário é:

  • Criar um novo projeto

  • Adicionando um projeto existente ao controle de versão

  • Tentar encontrar um projeto de controle de versão existente

SCCRTN SccGetProjPath (
   LPVOID pvContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPSTR  lpProjName,
   LPSTR  lpLocalPath,
   LPSTR  lpAuxProjPath,
   BOOL   bAllowChangePath,
   LPBOOL pbNew
);

Parâmetros

  • pvContext
    [in] A estrutura de contexto de plug-in de controle de origem.

  • hWnd
    [in] Um identificador para a janela do IDE que o plug-in de controle de origem pode usar como um pai para as caixas de diálogo que ele fornece.

  • lpUser
    [in, out] O nome de usuário (e não deve exceder SCC_USER_SIZE, incluindo o terminador NULL)

  • lpProjName
    [in, out] O nome do projeto do IDE, espaço de trabalho do projeto ou makefile (e não deve exceder SCC_PRJPATH_SIZE, incluindo o terminador NULL).

  • lpLocalPath
    [in, out] Caminho de trabalho do projeto. Se bAllowChangePath é TRUE, o plug-in de controle de origem pode modificar essa seqüência de caracteres (e não exceder _ MAX_PATH, incluindo o terminador de null).

  • lpAuxProjPath
    [in, out] Um buffer para o caminho do projeto retornado (e não deve exceder SCC_PRJPATH_SIZE, incluindo o terminador NULL).

  • bAllowChangePath
    [in] Se este for TRUE, o plug-in de controle de origem pode solicitar e modificar o lpLocalPath seqüência de caracteres.

  • pbNew
    [in, out] O valor que chegam indica se deseja criar um novo projeto. Valor retornado indica o sucesso de um projeto de criação:

    Entrada

    Interpretação

    TRUE

    O usuário pode criar um novo projeto.

    FALSE

    O usuário não pode criar um novo projeto.

    Saída

    Interpretação

    TRUE

    Foi criado um novo projeto.

    FALSE

    Foi selecionado um projeto existente.

Valor de retorno

A implementação de plug-in de controle de origem dessa função deve retornar um dos seguintes valores:

Valor

Descrição

SCC_OK

O projeto foi criado ou recuperado com êxito.

SCC_I_OPERATIONCANCELED

A operação foi cancelada.

SCC_E_ACCESSFAILURE

Houve um problema ao acessar o sistema de controle de origem, provavelmente devido a problemas de rede ou contenção.

SCC_E_CONNECTIONFAILURE

Houve um problema ao tentar se conectar ao sistema de controle de origem.

SCC_E_NONSPECIFICERROR

Ocorreu um erro não especificado.

Comentários

A finalidade desta função é para o IDE adquirir os parâmetros lpProjName e lpAuxProjPath. Depois que o plug-in de controle de origem solicita ao usuário para obter essa informação, ele passa essas cadeias de caracteres de dois voltar ao IDE. O IDE persistir essas cadeias de caracteres no seu arquivo de solução e os transfere para o Função SccOpenProject sempre que o usuário abre este projeto. Essas cadeias de caracteres permitem que o plug-in rastrear as informações associadas a um projeto.

Quando a função é chamada pela primeira vez, lpAuxProjPath é definida como uma seqüência vazia. lProjNametambém pode ser vazio, ou pode conter o nome de projeto do IDE, que o plug-in de controle de origem pode usar ou ignorar. Quando a função retornar com êxito, o plug-in retorna as duas seqüências de caracteres correspondentes. O IDE faz suposições sobre essas cadeias de caracteres, não usá-los e não permitirá que o usuário para modificá-las. Se o usuário deseja alterar as configurações, entrará em contato com o IDE SccGetProjPath novamente, passando os valores mesmos ele tinha recebido o tempo anterior. Isso dá ao plug-in controle completo sobre essas duas seqüências de caracteres.

Para lpUser, o IDE pode passar um nome de usuário ou ele pode simplesmente passar em um ponteiro para uma seqüência vazia. Se houver um nome de usuário, o plug-in de controle de origem deve usá-lo como um padrão. No entanto, se nenhum nome foi informado ou falha de logon com o nome fornecido, o plug-in deve solicitar ao usuário um login e a passagem de volta o nome lpUser quando ele recebe um login válido. Como o plug-in pode alterar essa seqüência de caracteres, o IDE sempre será alocar um buffer de tamanho (SCC_USER_LEN+ 1).

Dica

A primeira ação que o IDE realiza pode ser uma chamada para qualquer um o SccOpenProject função ou o SccGetProjPath função.Assim, eles têm um idênticos lpUser parâmetro, que permite o controle de origem plug-in para efetuar o usuário em qualquer momento.Mesmo se o retorno da função indica uma falha, o plug-in deve preencher essa seqüência de caracteres com um nome de login válido.

lpLocalPathé o diretório onde o usuário mantém o projeto. Pode ser uma seqüência vazia. Se há um diretório definido no momento (como no caso de um usuário tentar fazer o download de um projeto do sistema de controle de origem) e se bAllowChangePath é TRUE, o plug-in de controle de origem pode solicitar a entrada do usuário ou usar algum outro método para colocar sua própria seqüência de caracteres em lpLocalPath. Se bAllowChangePath é FALSE, o plug-in não deve alterar a seqüência de caracteres, porque o usuário já estiver trabalhando no diretório especificado.

Se o usuário cria um novo projeto a ser colocado sob controle de origem, o plug-in de controle de origem talvez não realmente criá-lo no sistema de controle de origem no momento SccGetProjPath é chamado. Em vez disso, ele volta passa a cadeia junto com um valor diferente de zero para pbNew, indicando que o projeto será criado no sistema de controle de origem.

Por exemplo, se um usuário a Novo projeto assistente no Visual Studio adiciona a seu projeto ao controle de origem, Visual Studio chama esta função e determina o plug-in que se deve criar um novo projeto no sistema de controle de origem para conter o projeto Visual Studio. Se o usuário clicar em Cancelar antes de concluir o assistente, o projeto nunca é criado. Se o usuário clicar em OK, chama de Visual Studio SccOpenProject, passing em SCC_OPT_CREATEIFNEW, e o projeto de origem controlada é criado nesse momento.

Consulte também

Referência

Função SccOpenProject

Conceitos

Funções de API plug-in de controle de origem