Função SccAddFromScc
Esta função permite que o usuário procurar arquivos que já estão no sistema de controle de origem e depois fazer parte desses arquivos, do projeto atual. Por exemplo, esta função pode obter um arquivo de cabeçalho comuns no projeto atual sem copiar o arquivo. A matriz de devolução de arquivos, lplpFileNames, contém a lista de arquivos que o usuário deseja adicionar ao projeto do IDE.
SCCRTN SccAddFromScc (
LPVOID pvContext,
HWND hWnd,
LPLONG lpnFiles,
LPCSTR** lplpFileNames
);
Parâmetros
pvContext
[in] A estrutura 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.lpnFiles
[in, out] Um buffer para o número de arquivos que estão sendo adicionados no. (Isso é NULL se a memória apontado por lplpFileNames será liberada. Consulte os comentários para obter detalhes).lplpFileNames
[in, out] Uma matriz de ponteiros para todos os nomes de arquivo sem caminhos de diretório. Esta matriz é alocada e liberada pelo plug-in de controle de origem. Se lpnFiles = 1 e lplpFileNames não é NULL, o nome da matriz apontada por lplpFileNames contém a pasta de destino.
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 |
Os arquivos foram localizados e adicionados ao projeto com êxito. |
SCC_I_OPERATIONCANCELED |
A operação foi cancelada com nenhum 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 de origem suporta a especificação de uma pasta de destino local, o IDE passa lpnFiles = 1 e passa o nome da pasta local em lplpFileNames.
Quando a chamada para o SccAddFromScc função retorna, o plug-in atribuiu valores a lpnFiles e lplpFileNames, alocação de memória para a matriz de nome de arquivo conforme necessário (Observe que essa alocação substitui o ponteiro na lplpFileNames). O plug-in de controle de origem é responsável por colocar todos os arquivos no diretório do usuário ou na pasta especificada designação. Em seguida, o IDE adiciona os arquivos ao projeto do IDE.
Finalmente, o IDE chama essa função uma segunda vez, passando NULL para lpnFiles. Isso é interpretado como um sinal especial pelo controle plug-in para liberar a memória alocada para a matriz de nome de arquivo na origemlplpFileNames.
lplpFileNamesé um char *** ponteiro. O plug-in de controle de origem coloca um ponteiro para uma matriz de ponteiros para os nomes de arquivo, passando a lista, assim, a forma padrão para esta API.
Dica
As versões iniciais da API VSSCI não forneceu um meio para indicar o projeto de destino para os arquivos adicionados.Para acomodar isso, a semântica do lplpFIleNames parâmetro foram aprimorados 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 apontada por lpnFiles = 1, então o primeiro elemento da lplpFileNames contém a pasta de destino.Para usar essa semântica de nova, as chamadas do IDE a SccSetOption funcionar com o nOptionparâmetro definido como SCC_OPT_SHARESUBPROJ.Se um plug-in de controle de origem não oferece suporte a semântica, ele retorna SCC_E_OPTNOTSUPPORTED.Fazendo afirmativo desativa o uso da Adicionar do controle de origem recurso.Se um plug-in suporta a Adicionar do controle de origem recurso (SCC_CAP_ADDFROMSCC), ele deve oferecer suporte a semântica de nova e retornar SCC_I_SHARESUBPROJOK.