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.