Função SccGetParentProjectPath
Esta função determina o caminho do projeto pai de um projeto especificado. Esta função é chamada quando o usuário está adicionando um projeto de Visual Studio ao controle de origem.
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Parâmetros
pContext
[in] O ponteiro 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 (até a SCC_USER_SIZE, incluindo o terminador NULL).lpProjPath
[in] A seqüência de caracteres identificando o caminho do projeto (até a SCC_PRJPATH_SIZE, incluindo o terminador NULL).lpAuxProjPath
[in, out] Auxiliar seqüência que identifica o projeto (até a SCC_PRJPATH_SIZE, incluindo o terminador NULL).lpParentProjPath
[in, out] Seqüência de saída que identifica o caminho do projeto pai (até a SCC_PRJPATH_SIZE, incluindo o terminador NULL).
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 |
Caminho do projeto pai foi obtido com êxito. |
SCC_E_INITIALIZEFAILED |
Não foi possível inicializar o projeto. |
SCC_E_INVALIDUSER |
O usuário não pôde fazer logon plug-in de controle de origem. |
SCC_E_UNKNOWNPROJECT |
Projeto é desconhecido para o plug-in de controle de origem. |
SCC_E_INVALIDFILEPATH |
Caminho de arquivo inválido ou inutilizável. |
SCC_E_NOTAUTHORIZED |
O usuário não tem permissão para executar esta operação. |
SCC_E_ACCESSFAILURE |
Houve um problema ao acessar o sistema de controle de origem, provavelmente devido a problemas de rede ou contenção. Recomenda-se uma nova tentativa. |
SCC_E_PROJSYNTAXERR |
Sintaxe de projeto inválido. |
SCC_E_CONNECTIONFAILURE |
Armazenar o problema de conexão. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Falha de não-específica. |
Comentários
Esta função retorna um código de êxito ou falha e, se for bem-sucedido, preenche a variável lpParentProjPath com o caminho de projeto completo para o projeto especificado.
Esta função retorna o pai de caminho do projeto de um projeto existente. Para o projeto raiz, a função retorna o caminho do projeto que foi passado (ou seja, o mesmo projeto caminho raiz). Observe que um caminho de projeto é uma string que é significativa apenas para o plug-in de controle de origem.
O IDE está preparado para aceitar as alterações a lpUser e lpAuxProjPath também os parâmetros. O IDE irá persistir essas cadeias de caracteres e passá-las para o Função SccOpenProject quando o usuário abre este projeto no futuro. Essas cadeias de caracteres, portanto, fornecem uma maneira para o plug-in para informações de controle necessárias para associar um projeto de controle de origem.
Esta função é semelhante a Função SccGetProjPath, exceto que ele não solicita ao usuário selecionar um projeto. Ele também nunca cria um novo projeto, mas funciona somente com um projeto existente.
Quando SccGetParentProjectPath é chamado, lpProjPath e lpAuxProjPath não estará vazio e irá corresponder a um projeto válido. Essas cadeias de caracteres geralmente são recebidas pelo IDE a partir de uma chamada anterior a SccGetProjPath função.
O lpUser argumento é o nome de usuário. O IDE transmitirá o mesmo nome de usuário que anteriormente tinha recebiam o SccGetProjPath função e o plug-in de controle de origem devem usar o nome como padrão. Se o usuário já tiver uma conexão aberta com o plug-in, em seguida, o plug-in deve tentar eliminar quaisquer avisos para certificar-se de que a função funciona silenciosamente. No entanto, se o logon falhar, o plug-in deve solicitar ao usuário para um logon e, quando ele recebe um login válido, a passagem de volta o nome lpUser. Como o plug-in pode alterar essa seqüência de caracteres, o IDE sempre será alocar um buffer de tamanho (SCC_USER_LEN+ 1). Se a seqüência de caracteres for alterada, a nova seqüência deve ser um nome de login válido (pelo menos tão válido como a seqüência de caracteres antiga).
Notas técnicas para SccCreateSubProject e SccGetParentProjectPath
A adição de soluções e projetos ao controle de origem foi simplificada no Visual Studio para minimizar o número de vezes que um usuário é solicitado a selecionar os locais no sistema de controle de origem. Essas alterações são ativadas por Visual Studio se um plug-in de controle de fonte oferece suporte a ambas as novas funções, o Função SccCreateSubProject e o SccGetParentProjectPath função. No entanto, a seguinte entrada do Registro pode ser usada para desativar essas alterações e reverter para o comportamento anterior de Visual Studio (Source Control plug-in API versão 1.1):
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\SourceControl] "DoNotCreateSolutionRootFolderInSourceControl" = DWORD: 00000001
Se essa entrada do registro não existir ou estiver definida para DWORD: 00000000, o Visual Studio tenta usar as novas funções, SccCreateSubProjecteSccGetParentProjectPath.
Se a entrada do registro estiver definida para DWORD: 00000001, Visual Studio não tenta usar essas novas funções e as operações de adição ao controle de origem funcionam como faziam em versões anteriores do Visual Studio.