Partilhar via


Função SccAddFromScc

Essa função permite que o usuário procure arquivos que já estão no sistema de controle do código-fonte e, posteriormente, torne esses arquivos parte do projeto atual. Por exemplo, essa função pode obter um arquivo de cabeçalho comum no projeto atual sem copiar o arquivo. A matriz de retorno de arquivos, lplpFileNames, contém a lista de arquivos que o usuário deseja adicionar ao projeto IDE.

Sintaxe

SCCRTN SccAddFromScc (
   LPVOID   pvContext,
   HWND     hWnd,
   LPLONG   lpnFiles,
   LPCSTR** lplpFileNames
);

Parâmetros

pvContext

[em] A estrutura 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 qualquer caixa de diálogo fornecida.

Arquivos lpn

[dentro, fora] Um buffer para o número de arquivos que estão sendo adicionados. (Isso se NULL a memória apontada por lplpFileNames for liberada. Consulte Comentários para obter detalhes.)

lplpNomes_de_Arquivos

[dentro, fora] Uma matriz de ponteiros para todos os nomes de arquivo sem caminhos de diretório. Essa matriz é alocada e liberada pelo plug-in de controle do código-fonte. Se lpnFiles = 1 e lplpFileNames não NULLfor , o primeiro nome na matriz apontada por lplpFileNames contém a pasta de destino.

Valor de retorno

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 Os arquivos foram localizados com sucesso e adicionados ao projeto.
SCC_I_OPERATIONCANCELED A operação foi cancelada sem efeito.
SCC_I_RELOADFILE Um arquivo ou projeto precisa ser recarregado.

Comentários

O IDE chama essa função. Se o plug-in de controle do código-fonte oferecer suporte à especificação de uma pasta de destino local, o IDE passará lpnFiles = 1 e passará o nome da pasta local para lplpFileNames.

Quando a chamada para a SccAddFromScc função retorna, o plug-in atribuiu valores a lpnFiles e lplpFileNames, alocando a memória para a matriz de nomes de arquivo conforme necessário (observe que essa alocação substitui o ponteiro em lplpFileNames). O plug-in de controle do código-fonte é responsável por colocar todos os arquivos no diretório do usuário ou na pasta de designação especificada. Em seguida, o IDE adiciona os arquivos ao projeto do IDE.

Por fim, o IDE chama essa função uma segunda vez, passando NULL para lpnFiles. Isso é interpretado como um sinal especial pelo plug-in de controle do código-fonte para liberar a memória alocada para a matriz de nomes de arquivo em lplpFileNames``.

lplpFileNames é um char *** ponteiro. O plug-in de controle do código-fonte coloca um ponteiro para uma matriz de ponteiros para nomes de arquivo, passando assim a lista da maneira padrão para essa API.

Observação

As versões iniciais da API VSSCI não forneciam uma maneira de indicar o projeto de destino para os arquivos adicionados. Para acomodar isso, a semântica lplpFIleNames do parâmetro foi aprimorada para torná-lo um parâmetro de entrada/saída em vez de um parâmetro de saída. Se apenas um único arquivo for especificado, ou seja, o valor apontado por lpnFiles = 1, o primeiro elemento de lplpFileNames conterá a pasta de destino. Para usar essa nova semântica, o IDE chama a SccSetOption função com o nOption parâmetro definido como SCC_OPT_SHARESUBPROJ. Se um plug-in de controle do código-fonte não oferecer suporte à semântica, ele retornará SCC_E_OPTNOTSUPPORTED. Isso desabilita o uso do recurso Adicionar do Controle do Código-Fonte . Se um plug-in oferecer suporte ao recurso Adicionar do controle do código-fonte (SCC_CAP_ADDFROMSCC), ele deverá oferecer suporte à nova semântica e retornar SCC_I_SHARESUBPROJOK.

Confira também