Поделиться через


Метод IUIApplication::OnCreateUICommand (uiribbon.h)

Вызывается для каждой команды, указанной в разметке платформы ленты Windows, для привязки команды к IUICommandHandler.

Синтаксис

HRESULT OnCreateUICommand(
  [in]  UINT32            commandId,
  [in]  UI_COMMANDTYPE    typeID,
  [out] IUICommandHandler **commandHandler
);

Параметры

[in] commandId

Тип: UINT32

Идентификатор команды, указанный в файле ресурсов разметки.

[in] typeID

Тип: UI_COMMANDTYPE

Тип команды, связанный с определенным элементом управления.

[out] commandHandler

Тип: IUICommandHandler**

При возврате этим методом содержит адрес указателя на объект IUICommandHandler . Этот объект является обработчиком команд ведущего приложения, привязанным к одной или нескольким командам.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Это уведомление обратного вызова отправляется платформой ленты в ведущему приложению для каждого объявления command, обнаруженного при обработке файла ресурсов разметки.

Для каждой команды, указанной в разметке ленты, платформа ленты требует обработчика команд в ведущем приложении. Каждой команде необходимо назначить новый или существующий обработчик.

Примеры

В следующем примере демонстрируется базовая реализация метода IUIApplication::OnCreateUICommand .

//
//  FUNCTION: OnCreateUICommand(UINT, UI_COMMANDTYPE, IUICommandHandler)
//
//  PURPOSE: Called by the Ribbon framework for each command specified in markup to allow
//           the host application to bind a command handler to that command.
//
//  PARAMETERS:    
//                nCmdID - The Command identifier. 
//                typeID - The Command type. 
//                ppCommandHandler - Pointer to the address of the Command handler. 
//
//  COMMENTS:
//
//    For this sample, return the same command handler for all commands
//    specified in the .xml file.
//    
//
STDMETHODIMP CApplication::OnCreateUICommand(
    UINT nCmdID,
    UI_COMMANDTYPE typeID,
    IUICommandHandler** ppCommandHandler)
{
    HRESULT hr = E_NOTIMPL;

    switch(typeID)
    {
        case UI_COMMANDTYPE_DECIMAL:
            {
                _cwprintf(L"IUIApplication::OnCreateUICommand called for Spinner.\r\n");
                hr = _spSpinnerSite->QueryInterface(IID_PPV_ARGS(ppCommandHandler));
                break;
            }
        default:
            {
                _cwprintf(L"IUIApplication::OnCreateUICommand called with CmdID=%u, typeID=%u.\r\n", nCmdID, typeID);
                hr = _spCommandHandler->QueryInterface(IID_PPV_ARGS(ppCommandHandler));
            }
    }    
    return hr;
}

Требования

   
Минимальная версия клиента Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header uiribbon.h
DLL Mshtml.dll

См. также раздел

IUIApplication

Примеры Windows Ribbon Framework