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