Метод IOleInPlaceFrame::SetStatusText (oleidl.h)

Задает и отображает текст состояния объекта на месте в строке состояния окна контейнера.

Синтаксис

HRESULT SetStatusText(
  [in] LPCOLESTR pszStatusText
);

Параметры

[in] pszStatusText

Отображаемое сообщение.

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

Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.

Код возврата Описание
S_TRUNCATED
Был отображен текст, но сообщение было слишком длинным и усечено.
E_FAIL
Операция не удалась.
E_INVALIDARG
Указанный указатель недопустим.
E_UNEXPECTED
Произошла непредвиденная ошибка.

Комментарии

Примечания к вызывающим абонентам

Вызовите IOleInPlaceFrame::SetStatusText, если необходимо попросить контейнер отобразить текст объекта в строке состояния кадра, если он имеется. Так как окно фрейма контейнера владеет строкой состояния, вызов IOleInPlaceFrame::SetStatusText является единственным способом, с помощью котором объект может отображать сведения о состоянии в окне фрейма контейнера. Если контейнер отклоняет запрос объекта, приложение объекта может, однако, согласовать пространство границ для отображения собственного окна состояния.

При переключении между меню, принадлежащими контейнеру, и активным объектом на месте текст строки состояния отображается неправильно, если объект не вызывает метод IOleInPlaceFrame::SetStatusText контейнера. Например, если во время сеанса на месте пользователь выбрал меню Файл , в строке состояния будет отражено действие, которое произойдет, если пользователь выбрал это меню. Если пользователь выберет меню Правка (которое принадлежит объекту на месте), текст строки состояния не изменится, если не был вызван IOleInPlaceFrame::SetStatusText . Это связано с тем, что контейнер не может распознать, что одно из меню объекта стало активным, так как все сообщения, которые контейнер будет перехватывать, теперь будут отправляться в объект .

Примечания для разработчиков

Чтобы избежать потенциальных проблем, все объекты, активируемые на месте, должны обработать сообщение WM_MENUSELECT и вызвать IOleInPlaceFrame::SetStatusText, даже если объект обычно не предоставляет сведения о состоянии (в этом случае объект может просто передать строку NULL для запрошенного текста состояния).
Примечание При выполнении IOleInPlaceFrame::SetStatusText не выполняйте вызовы функций PeekMessage , GetMessage или диалогового окна. Это может привести к взаимоблокировки системы. Существуют дополнительные ограничения, на которые можно вызывать методы и функции интерфейса OLE из IOleInPlaceUIWindow::GetBorder.
 

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header oleidl.h

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

GetMessage

IOleInPlaceFrame

PeekMessage