Função SccGetCommandOptions
Esta função solicita ao usuário para opções avançadas para um determinado comando.
SCCRTN SccGetCommandOptions(
LPVOID pvContext,
HWND hWnd,
enum SCCCOMMAND iCommand,
LPCMDOPTS* ppvOptions
);
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.iCommand
[in] O comando para as quais opções avançadas são solicitadas (consulte Enumerador de código de comando para obter valores possíveis).ppvOptions
[in] A estrutura de opção (também pode ser 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 |
Sucesso. |
SCC_I_ADV_SUPPORT |
O plug-in de controle de origem oferece suporte a opções avançadas para o comando. |
SCC_I_OPERATIONCANCELED |
O usuário cancelou o origem controle do plug-in Opções caixa de diálogo. |
SCC_E_OPTNOTSUPPORTED |
O plug-in de controle de origem não oferece suporte para esta operação. |
SCC_E_ISCHECKEDOUT |
Não é possível realizar esta operação em um arquivo que está sendo verificado. |
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_NONSPECIFICERROR |
Falha de não-específica. |
Comentários
O IDE chama essa função pela primeira vez com ppvOptions=NULL para determinar se o plug-in de controle de origem suporta o recurso de opções avançadas para o comando especificado. Se o plug-in oferece suporte ao recurso para esse comando, o IDE chama essa função novamente quando o usuário solicita a opções avançadas (geralmente é implementado como um Advanced botão em uma caixa de diálogo) e fornece um ponteiro não nula para ppvOptions que aponta para um NULL ponteiro. O plug-in armazena qualquer opção avançada especificada pelo usuário em uma estrutura particular e retorna um ponteiro para essa estrutura na ppvOptions. Essa estrutura é então passada para todas as outras funções de API de plug-in de controle de origem que precisa saber sobre ele, inclusive as chamadas subseqüentes para o SccGetCommandOptions função.
Um exemplo pode ajudar a esclarecer essa situação.
Um usuário escolhe o obter comando e o IDE exibe um obter caixa de diálogo. The IDE calls the SccGetCommandOptions function with iCommand set to SCC_COMMAND_GET and ppvOptions set to NULL. Isso é interpretado pelo controle da fonte de plug-in como a pergunta, "Você tem qualquer opção avançada para este comando?" Se o plug-in retorna SCC_I_ADV_SUPPORT, o IDE exibe um Advanced botão no seu obter caixa de diálogo.
Na primeira vez que o usuário clica o Advanced botão, o IDE chama novamente o SccGetCommandOptions funcionar, dessa vez com um não-NULLppvOptions que aponta para um NULL ponteiro. O plug-in exibe sua própria Get Options caixa de diálogo, solicita ao usuário para obter informações, coloca essas informações em sua própria estrutura e retorna um ponteiro para essa estrutura na ppvOptions.
Se o usuário clicar em Advanced novamente na mesma caixa de diálogo, o IDE chama o SccGetCommandOptions função novamente sem alterar ppvOptions, de modo que a estrutura é passada para o plug-in. Isso permite que o plug-in reinicializar a sua caixa de diálogo para os valores que o usuário tiver sido definida anteriormente. O plug-in modifica a estrutura no lugar antes de retornar.
Finalmente, quando o usuário clica OK em que o IDE obter caixa de diálogo, as chamadas do IDE a Função SccGet, passando a estrutura retornada em ppvOptions que contém as opções avançadas.
Dica
O comando SCC_COMMAND_OPTIONS é usado quando o IDE exibe um Opções caixa de diálogo que permite ao usuário definir preferências que controlam como a integração funciona.Se quiser que o plug-in de controle de origem fornecer sua própria caixa de diálogo Preferências, ele poderá exibi-la de um Advanced botão na caixa de diálogo Preferências do IDE.O plug-in é exclusivamente responsável por obter e persistência esta informação. o IDE não usá-lo ou modificá-lo.
Consulte também
Referência
Enumerador de código de comando