Partilhar via


Função SccCreateSubProject

Essa função cria um subprojeto com o nome fornecido em um projeto existente do pai especificado pelo lpParentProjPath argumento.

SCCRTN SccCreateSubProject(
   LPVOID pContext,
   HWND   hWnd,
   LPSTR  lpUser,
   LPCSTR lpParentProjPath,
   LPCSTR lpSubProjName,
   LPSTR  lpAuxProjPath,
   LPSTR  lpSubProjPath
);

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).

  • lpParentProjPath
    [in] Uma seqüência de identificação do caminho do projeto principal (até a SCC_PRJPATH_SIZE, incluindo o terminador NULL).

  • lpSubProjName
    [in] O nome do subprojeto sugeridas (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).

  • lpSubProjPath
    [in, out] Seqüência de saída que identifica o caminho para o subprojeto (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

Subprojeto foi criado com êxito.

SCC_E_INITIALIZEFAILED

Não foi possível inicializar o projeto pai.

SCC_E_INVALIDUSER

O usuário não pôde logon no sistema de controle de origem.

SCC_E_COULDNOTCREATEPROJECT

Não é possível criar o subprojeto.

SCC_E_PROJSYNTAXERR

Sintaxe de projeto inválido.

SCC_E_UNKNOWNPROJECT

O projeto pai é 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_CONNECTIONFAILURE

Houve um problema de conexão plug-in de controle de origem.

SCC_E_NONSPECIFICERROR

SCC_E_UNKNOWNERROR

Falha de não-específica.

Comentários

Se já existir um subprojeto com o nome, a função pode alterar o nome padrão para criar um exclusivo, por exemplo adicionando "_ <number>" a ele. O chamador deve estar preparado para aceitar as alterações lpUser, lpSubProjPath, e lpAuxProjPath. O lpSubProjPath elpAuxProjPath argumentos são usados em uma chamada para o Função SccOpenProject. Eles não devem ser modificados pelo chamador após retornar. Essas cadeias de caracteres fornecem uma maneira para o plug-in para rastrear as informações que ele precisa para associar um projeto de controle de origem. O IDE do chamador não exibirá esses dois parâmetros após retornar, porque o plug-in pode usar uma seqüência de caracteres formatada pode não ser adequada para exibição. A função retorna um código de êxito ou falha e, se for bem-sucedido, preenche a variável lpSubProjPath com o caminho de projeto completo para o novo projeto.

Esta função é semelhante a Função SccGetProjPath, exceto que ele silenciosamente cria um projeto em vez de solicitar ao usuário para selecionar um. Quando o SccCreateSubProject função é chamada, lpParentProjName 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 ou o Função SccGetParentProjectPath.

O lpUser argumento é o nome de usuário. O IDE transmitirá o mesmo nome de usuário que anteriormente tinha recebido de SccGetProjPath, 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, 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 irá alocar um buffer de tamanho (SCC_USER_LEN + 1 ou SCC_USER_SIZE, que inclui o espaço para o terminador nulo). 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, SccCreateSubProject e SccGetParentProjectPath. No entanto, a seguinte entrada do Registro pode ser usada para desativar essas alterações e retornar ao 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, SccCreateSubProject e SccGetParentProjectPath.

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.

Consulte também

Referência

Função SccGetParentProjectPath

Função SccGetProjPath

Conceitos

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