Compartilhar via


COleServerDoc::OnExecOleCmd

A estrutura chama essa função para executar uma ajuda especificada de comando ou de exibição para o comando.

virtual HRESULT OnExecOleCmd( 
   const GUID* pguidCmdGroup, 
   DWORD nCmdID, 
   DWORD nCmdExecOpt, 
   VARIANTARG* pvarargIn, 
   VARIANTARG* pvarargOut 
);

Parâmetros

  • pguidCmdGroup
    Um ponteiro para um GUID que identifica um conjunto de comandos. Pode ser NULO para indicar o grupo de comando padrão.

  • nCmdID
    O comando para executar. Deve estar no grupo identificado por pguidCmdGroup.

  • nCmdExecOut
    A maneira o objeto deve executar o comando, um ou mais dos seguintes valores de enumeração de OLECMDEXECOPT :

  •    OLECMDEXECOPT_DODEFAULT

  •    OLECMDEXECOPT_PROMPTUSER

  •    OLECMDEXECOPT_DONTPROMPTUSER

  •    OLECMDEXECOPT_SHOWHELP

  • pvarargIn
    Ponteiro para VARIANTARG que contém os argumentos de entrada para o comando. Pode ser NULO.

  • pvarargOut
    Ponteiro para VARIANTARG para receber os valores de retorno de saída do comando. Pode ser NULO.

Valor de retorno

Retorna se S_OK com êxito; caso contrário, um dos seguintes códigos de erro:

Valor

Descrição

E_UNEXPECTED

Erro inesperado ocorreu

E_FAIL

Erro ocorrido

E_NOTIMPL

Indica que o MFC próprio deve tentar converter e distribuir o comando

OLECMDERR_E_UNKNOWNGROUP

pguidCmdGroup éNULO não mas não especifica um grupo de comando reconhecido

OLECMDERR_E_NOTSUPPORTED

nCmdID não é reconhecido como um comando válido no grupo pguidCmdGroup

OLECMDERR_DISABLED

O comando identificado por nCmdID é desativado e não pode ser executado

OLECMDERR_NOHELP

O chamador solicitado a ajuda no comando identificado pela nCmdID mas não há ajuda está disponível

OLECMDERR_CANCELED

o usuário cancelou a execução

Comentários

COleCmdUI pode ser usado para habilitar, atualizar, e definir outras propriedades de comandos de interface do usuário de DocObject. Depois que os comandos são inicializados, você pode executar com OnExecOleCmd.

A estrutura chama a função antes de tentar converter e distribuir um comando OLE do documento. Você não precisa substituir essa função para manipular comandos VELHOS padrão do documento, mas você deve fornecer uma substituição para essa função se você desejar manipular seus próprios comandos personalizados ou comandos de gerenciamento que aceite parâmetros ou resultados.

A maioria dos comandos não leva argumentos ou valores de retorno. Para a maioria dos comandos o chamador pode passar NULOs para pvarargIn e pvarargOut. Para os comandos que esperam entre valores, o chamador pode declarar e inicializar uma variável de VARIANTARG e passar um ponteiro à variável em pvarargIn. Para os comandos que requerem um único valor, o argumento pode ser armazenado diretamente em VARIANTARG e ser passado para a função. Múltiplos argumentos devem ser fornecido em VARIANTARG usando um dos tipos suportados (como IDispatch e SAFEARRAY ).

De a mesma forma, se um comando retorna argumentos o chamador é esperado declarar VARIANTARG, inicializa-o a VT_EMPTY, e passe seu endereço em pvarargOut. Se um comando retorna um único valor, o objeto pode armazenar esse valor diretamente em pvarargOut. Os vários valores de saída devem ser de alguma forma apropriadas de pacote para VARIANTARG.

A implementação da classe base de essa função examinará as estruturas de OLE_COMMAND_MAP associadas ao destino e a tentativa de comando para distribuir o comando a um manipulador adequado. A implementação da classe base funciona somente com comandos que não aceitam argumentos ou valores de retorno. Se você precisar manipular os comandos que aceitam argumentos ou valores de retorno, você deve substituir esses função e trabalho com os parâmetros de pvarargIn e de pvarargOut você mesmo.

Requisitos

Cabeçalho: afxole.h

Consulte também

Referência

Classe COleServerDoc

Gráfico da hierarquia

Classe COleCmdUI