Метод IUIFramework::Initialize (uiribbon.h)
Подключает ведущее приложение к платформе ленты Windows.
Синтаксис
HRESULT Initialize(
[in] HWND frameWnd,
[in] IUIApplication *application
);
Параметры
[in] frameWnd
Тип: HWND
Обратитесь к окну верхнего уровня, в котором будет содержаться лента.
[in] application
Тип: IUIApplication*
Указатель на реализацию IUIApplication ведущего приложения.
Возвращаемое значение
Тип: HRESULT
В случае успешного выполнения возвращает S_OK; В противном случае — значение ошибки из следующего списка.
Значение | Описание |
---|---|
HRESULT_FROM_WIN32(ERROR_INVALID_WINDOW_HANDLE) | frameWnd имеет значение NULL, не указывает на существующее окно или не является окном верхнего уровня рабочего стола.
Примечание Эта ошибка также возвращается, если frameWnd является дочерним окном (WS_CHILD), объявлен как окно инструментов (WS_EX_TOOLWINDOW) или в нем отсутствует свойство подпись (WS_CAPTION является обязательным).
|
HRESULT_FROM_WIN32(ERROR_WINDOW_OF_OTHER_THREAD) | frameWnd не принадлежит потоку выполнения. |
E_POINTER | приложение имеет значение NULL или недопустимый указатель. |
Комментарии
Этот метод должен вызываться ведущим приложением для каждого окна верхнего уровня, которому требуется лента.
Этот метод используется для настройки перехватчиков, которые позволяют платформе ленты вызывать обратные вызовы в ведущем приложении.
Для успешной инициализации ленты скомпилированный файл разметки ленты должен быть доступен в качестве ресурса и указан в последующем вызове IUIFramework::LoadUI. Этот файл разметки является неотъемлемой частью платформы; он указывает используемые элементы управления и их макет.
Если IUIFramework::Initialize возвращает успешно:
- Чтобы устранить несогласованность, избыточность и несовместимость между лентой и традиционными моделями команд, платформа ленты удаляет стандартную строку меню окна верхнего уровня в ведущем приложении.
- Платформа удаляет ссылки на стиль WS_EX_CLIENTEDGE. Примечание Стиль WS_EX_CLIENTEDGE указывает, что окно имеет границу с впалой границей. Этот стиль визуально влияет на интеграцию ленты и ведущего приложения.
- Для платформы требуется включить стиль WS_SYSMENU. Если WS_SYSMENU не включен, платформа не предоставляет альтернативные функции и может привести к непредсказуемой отрисовке ленты.Примечание Стиль WS_SYSMENU указывает, что в окне приложения есть системное меню в строке заголовка. По ассоциации также необходимо указать стиль WS_CAPTION (см. ERROR_INVALID_WINDOW_HANDLE выше в разделе Возвращаемые значения ).
Примеры
В следующем примере демонстрируется базовая функция инициализации платформы.
//
// FUNCTION: InitializeFramework(HWND)
//
// PURPOSE: Initialize the Ribbon framework and bind a Ribbon to the application.
//
// PARAMETERS:
// hWnd - Handle to the Ribbon host application window.
//
// COMMENTS:
//
// In order to get a Ribbon to display, the Ribbon framework must be initialized.
// This involves three important steps:
// 1) Instantiate the Ribbon framework object (CLSID_UIRibbonFramework).
// 2) Pass the host HWND and IUIApplication object to the framework.
// 3) Load the binary markup compiled by the UI Command Compiler (UICC.exe).
//
//
bool InitializeFramework(HWND hWnd)
{
// Instantiate the Ribbon framework object.
HRESULT hr = CoCreateInstance(
CLSID_UIRibbonFramework,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&g_pFramework));
if (!SUCCEEDED(hr))
{
return false;
}
// Create the application object (IUIApplication) and call the
// framework Initialize method, passing the application object and the
// host HWND that the Ribbon will attach itself to.
CComObject<CApplication> *pApplication = NULL;
CComObject<CApplication>::CreateInstance(&pApplication);
hr = pApplication->QueryInterface(&g_pApplication);
if (!SUCCEEDED(hr))
{
return false;
}
hr = g_pFramework->Initialize(hWnd, g_pApplication);
if (!SUCCEEDED(hr))
{
return false;
}
// Load the binary markup.
// Initiate callbacks to the IUIApplication object that was
// provided to the framework earlier and bind command handler(s)
// to individual commands.
hr = g_pFramework->LoadUI(GetModuleHandle(NULL), L"APPLICATION_RIBBON");
if (!SUCCEEDED(hr))
{
return false;
}
return true;
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | uiribbon.h |
DLL | Mshtml.dll |