Partilhar via


Função SccGetCommandOptions

Essa função solicita ao usuário opções avançadas para um determinado comando.

Sintaxe

SCCRTN SccGetCommandOptions(
   LPVOID pvContext,
   HWND hWnd,
   enum SCCCOMMAND iCommand,
   LPCMDOPTS* ppvOptions
);

Parâmetros

pvContexto

[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 quaisquer caixas de diálogo que ele forneça.

iComando

[em] O comando para o qual as opções avançadas são solicitadas (consulte Código de comando para obter valores possíveis).

ppvOpções

[em] A estrutura da opção (também pode ser NULL).

Valor retornado

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 Êxito.
SCC_I_ADV_SUPPORT O plug-in de controle do código-fonte oferece suporte a opções avançadas para o comando.
SCC_I_OPERATIONCANCELED O usuário cancelou a caixa de diálogo Opções do plug-in de controle do código-fonte.
SCC_E_OPTNOTSUPPORTED O plug-in de controle do código-fonte não oferece suporte a essa operação.
SCC_E_ISCHECKEDOUT Não é possível executar essa operação em um arquivo que está com check-out no momento.
SCC_E_ACCESSFAILURE Houve um problema ao acessar o sistema de controle do código-fonte, provavelmente devido a problemas de rede ou contenção. Recomenda-se uma nova tentativa.
SCC_E_NONSPECIFICERROR Falha inespecífica.

Comentários

O IDE chama essa função pela primeira vez para ppvOptions=NULL determinar se o plug-in de controle do código-fonte oferece suporte ao recurso de opções avançadas para o comando especificado. Se o plug-in oferecer suporte ao recurso para esse comando, o IDE chamará essa função novamente quando o usuário solicitar opções avançadas (geralmente implementadas como um botão Avançado em uma caixa de diálogo) e fornecerá um ponteiro não NULL para que aponte para ppvOptions um NULL ponteiro. O plug-in armazena todas as opções avançadas especificadas pelo usuário em uma estrutura privada e retorna um ponteiro para essa estrutura no ppvOptions. Essa estrutura é então passada para todas as outras funções da API do plug-in de controle do código-fonte que precisam saber sobre ela, incluindo chamadas subsequentes para a SccGetCommandOptions função.

Um exemplo pode ajudar a esclarecer essa situação.

Um usuário escolhe o comando Get e o IDE exibe uma caixa de diálogo Get. O IDE chama a SccGetCommandOptions função com iCommand set como SCC_COMMAND_GET e ppvOptions set como NULL. Isso é interpretado pelo plug-in de controle do código-fonte como a pergunta: "Você tem alguma opção avançada para este comando?" Se o plug-in retornar SCC_I_ADV_SUPPORT, o IDE exibirá um botão Avançado em sua caixa de diálogo Obter .

Na primeira vez que o usuário clica no botão Avançado , o IDE chama novamente a SccGetCommandOptions função, desta vez com um não-queNULL``ppvOptions aponta para um NULL ponteiro. O plug-in exibe sua própria caixa de diálogo Obter Opções, solicita informações ao usuário, coloca essas informações em sua própria estrutura e retorna um ponteiro para essa estrutura no ppvOptions.

Se o usuário clicar em Avançado novamente na mesma caixa de diálogo, o IDE chamará a função novamente sem alterar ppvOptions, para que a SccGetCommandOptions estrutura seja passada de volta para o plug-in. Isso permite que o plug-in reinicialize sua caixa de diálogo para os valores que o usuário havia definido anteriormente. O plug-in modifica a estrutura no lugar antes de retornar.

Finalmente, quando o usuário clica em OK na caixa de diálogo Obter do IDE, o IDE chama o SccGet, passando a estrutura retornada que ppvOptions contém as opções avançadas.

Observação

O comando SCC_COMMAND_OPTIONS é usado quando o IDE exibe uma caixa de diálogo Opções que permite ao usuário definir preferências que controlam como a integração funciona. Se o plug-in de controle do código-fonte quiser fornecer sua própria caixa de diálogo de preferências, ele poderá exibi-la a partir de um botão Avançado na caixa de diálogo de preferências do IDE. O plug-in é o único responsável por obter e manter essas informações; o IDE não o usa nem o modifica.

Confira também