Função SccGetParentProjectPath

Aplica-se a:yes Visual Studio noVisual Studio para Mac noVisual Studio Code

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

[in] O ponteiro de contexto do 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 pai para todas as caixas de diálogo que ele fornece.

lpUser

[dentro, fora] O nome de usuário (até SCC_USER_SIZE, incluindo o terminador NULL).

lpProjPath

[in] Cadeia de caracteres que identifica o caminho do projeto (até SCC_PRJPATH_SIZE, incluindo o terminador NULL).

lpAuxProjPath

[dentro, fora] Cadeia de caracteres auxiliar que identifica o projeto (até SCC_PRJPATH_SIZE, incluindo o terminador NULL).

lpParentProjPath

[dentro, fora] Cadeia de caracteres de saída que identifica 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 Não foi possível inicializar o projeto.
SCC_E_INVALIDUSER O usuário não pôde fazer logon no plug-in de controle do código-fonte.
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. Uma nova tentativa é recomendada.
SCC_E_PROJSYNTAXERR Sintaxe de projeto inválida.
SCC_E_CONNECTIONFAILURE Armazenar problema de conexão.
SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR
Falha não especí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 de projeto raiz). Observe que um caminho de projeto é uma cadeia de caracteres significativa apenas para o plug-in de controle do código-fonte.

O IDE também está preparado para aceitar alterações e lpUserlpAuxProjPath parâmetros. O IDE persistirá essas cadeias de caracteres e as passará para o SccOpenProject quando o usuário abrir esse projeto no futuro. Essas cadeias de caracteres, portanto, fornecem uma maneira de o plug-in de controle do código-fonte controlar as informações necessárias para associar a um projeto.

Essa função é semelhante ao SccGetProjPath, exceto que ela não solicita que o usuário selecione um projeto. Ele também nunca cria um novo projeto, mas funciona apenas com um projeto existente.

Quando SccGetParentProjectPath for chamado, lpProjPath não lpAuxProjPath estará vazio e corresponderá a um projeto válido. Essas cadeias de caracteres geralmente são recebidas pelo IDE 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 havia recebido anteriormente da SccGetProjPath função, e o plug-in de controle de origem deve usar o nome como padrão. Se o usuário já tiver uma conexão aberta com o plug-in, o plug-in deverá tentar eliminar quaisquer prompts para garantir que a função funcione silenciosamente. No entanto, se o logon falhar, o plug-in deverá solicitar um logon ao usuário e, quando receber um logon válido, passar o nome novamente 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

A adição de soluções e projetos ao controle do código-fonte foi simplificada 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 serão ativadas pelo Visual Studio se um plug-in de controle do código-fonte der 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 (API do Plug-in de Controle do Código-Fonte 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:000000000, o Visual Studio tentará usar as novas funções SccCreateSubProjecteSccGetParentProjectPath.

Se a entrada do Registro estiver 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 fizeram em versões anteriores do Visual Studio.

Confira também