Função SccGetParentProjectPath
Essa função determina o caminho do projeto pai de um projeto especificado. Essa função é chamada quando o usuário está adicionando um projeto do Visual Studio ao controle do código-fonte.
Sintaxe
SCCRTN SccGetParentProjectPath(
LPVOID pContext,
HWND hWnd,
LPSTR lpUser,
LPCSTR lpProjPath,
LPSTR lpAuxProjPath,
LPSTR lpParentProjPath
);
Parâmetros
pContext
[em] O ponteiro de contexto do plug-in de controle do código-fonte.
hWnd
[em] Um identificador para a janela do IDE que o plug-in de controle do código-fonte pode usar como pai para quaisquer caixas de diálogo que ele forneça.
lpUsuário
[dentro, fora] O nome de usuário (até SCC_USER_SIZE, incluindo o terminador NULL).
lpProjPath
[em] Cadeia de caracteres identificando o caminho do projeto (até SCC_PRJPATH_SIZE, incluindo o terminador NULL).
lpAuxProjPath
[dentro, fora] Cadeia de caracteres auxiliar identificando o projeto (até SCC_PRJPATH_SIZE, incluindo o terminador NULL).
lpParentProjPath
[dentro, fora] Cadeia de caracteres de saída identificando o caminho do projeto pai (até SCC_PRJPATH_SIZE, incluindo o terminador NULL).
Valor retornado
Espera-se que a implementação do plug-in de controle do código-fonte dessa função retorne um dos seguintes valores:
Valor | Descrição |
---|---|
SCC_OK | O caminho do projeto pai foi obtido com êxito. |
SCC_E_INITIALIZEFAILED | O projeto não pôde ser inicializado. |
SCC_E_INVALIDUSER | O usuário não pôde efetuar login no plug-in de controle de origem. |
SCC_E_UNKNOWNPROJECT | O projeto é desconhecido para o plug-in de controle do código-fonte. |
SCC_E_INVALIDFILEPATH | Caminho de arquivo inválido ou inutilizável. |
SCC_E_NOTAUTHORIZED | O usuário não tem permissão para executar essa operação. |
SCC_E_ACCESSFAILURE | Houve um problema ao acessar o sistema de controle do código-fonte, provavelmente devido a problemas de rede ou contenção. Recomenda-se uma nova tentativa. |
SCC_E_PROJSYNTAXERR | Sintaxe de projeto inválida. |
SCC_E_CONNECTIONFAILURE | Problema de conexão de armazenamento. |
SCC_E_NONSPECIFICERROR SCC_E_UNKNOWNERROR |
Falha inespecífica. |
Comentários
Essa função retorna um código de êxito ou falha e, se bem-sucedida, preenche a variável lpParentProjPath
com o caminho completo do projeto para o projeto especificado.
Essa função retorna o caminho do projeto pai de um projeto existente. Para o projeto raiz, a função retorna o caminho do projeto que foi passado (ou seja, o mesmo caminho do projeto raiz). Observe que um caminho de projeto é uma cadeia de caracteres que é significativa apenas para o plug-in de controle do código-fonte.
O IDE também está preparado para aceitar alterações nos lpUser
parâmetros e lpAuxProjPath
. O IDE persistirá essas cadeias de caracteres e as passará para o SccOpenProject quando o usuário abrir este projeto no futuro. Essas cadeias de caracteres, portanto, fornecem uma maneira para o plug-in de controle do código-fonte controlar as informações que ele precisa associar a um projeto.
Essa função é semelhante ao SccGetProjPath, exceto que ele não solicita que o usuário selecione um projeto. Ele também nunca cria um novo projeto, mas trabalha apenas com um projeto existente.
Quando SccGetParentProjectPath
é chamado, lpProjPath
e não estará vazio e lpAuxProjPath
corresponderá a um projeto válido. Essas cadeias de caracteres geralmente são recebidas pelo IDE a partir de uma chamada anterior para a SccGetProjPath
função.
O lpUser
argumento é o nome de usuário. O IDE passará o mesmo nome de usuário que recebeu anteriormente da função, e o plug-in de controle do SccGetProjPath
código-fonte deve usar o nome como padrão. Se o usuário já tiver uma conexão aberta com o plug-in, o plug-in deve tentar eliminar quaisquer prompts para garantir que a função funcione silenciosamente. No entanto, se o login falhar, o plug-in deve solicitar ao usuário um login e, quando ele receber um login válido, passar o nome de volta para lpUser
. Como o plug-in pode alterar essa cadeia de caracteres, o IDE sempre alocará um buffer de tamanho (SCC_USER_LEN
+1). Se a cadeia de caracteres for alterada, a nova cadeia de caracteres deverá ser um nome de logon válido (pelo menos tão válido quanto a cadeia de caracteres antiga).
Notas técnicas para SccCreateSubProject e SccGetParentProjectPath
Adicionar soluções e projetos ao controle do código-fonte foi simplificado no Visual Studio para minimizar o número de vezes que um usuário é solicitado a selecionar locais no sistema de controle do código-fonte. Essas alterações são ativadas pelo Visual Studio se um plug-in de controle de origem oferece suporte a ambas as novas funções, o SccCreateSubProject e a SccGetParentProjectPath
função. No entanto, a seguinte entrada do Registro pode ser usada para desabilitar essas alterações e reverter para o comportamento anterior do 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 como dword:00000000, o Visual Studio tentará usar as novas funções SccCreateSubProject
eSccGetParentProjectPath
.
Se a entrada do Registro for definida como dword:00000001, o Visual Studio não tentará usar essas novas funções e as operações de adição ao controle do código-fonte funcionarão como em versões anteriores do Visual Studio.