C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 40 - ISupportErrorlnfo::lnterfaceSupportsErrorlnfo / COM-справка / Приложение

Шаг 40 - ISupportErrorlnfo::lnterfaceSupportsErrorlnfo

Позволяет определить, поддерживает ли данный интерфейс интерфейс lErrorlnfo.

HRESULT InterfaceSupportsErrorInfo
( 
	REFIID riid
);

Параметр:

  • riid - Устанавливаетает идентификатор интерфейса.

Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:

Код возвратаЗначение
S_OKИнтерфейс поддерживает lErrorlnfo.
S_FALSEИнтерфейс не поддерживает lErrorlnfo.

Комментарии:
Объект, поддерживающий lErrorlnfo, обязан реализовывать ISupportErrorlnfo.
Программе, получившей код ошибки, следует вызвать QueryInterface для получения указателя на интерфейс ISupportErrorlnfo, после чего вызвать InterfaceSupportsErrorlnfo с IID интерфейса, возвратившего код ошибки. Если InterfaceSupportsErrorlnfo возвращает S_FALSE, то объект-ошибка представляет ошибку, возвращенную не вызывавшимся объектом, а кем-то еще. В данном случае объект-ошибку следует считать неверным и не использовать.
Если ISupportErrorlnfo возвращает S_OK, то указатель на объект-ошибку можно получить с помощью GetErrorlnfo.

Пример:
Ниже приведена реализация ISupportErrorlnfo из примера Lines. Эта реализация также поддерживает методы AddRef, Release и QueryInterface, унаследованные от IUnknown.

CSupportErrorInfo::CSupportErrorInfo(IUnknown FAR* punkObject,  REFIID riid)
{
	m_punkObject = punkObject; 
	m_iid = riid;
};

STDMETHODIMP CSupportErrorInfo::QueryInterface(REFIID iid, void FAR* FAR* ppv)
{
	return m_punkObject->QueryInterface(iid,  ppv);
};

STDMETHODIMP_(ULONG) CSupportErrorlnfo::AddRef (void) 
{
	return m_punkObject->AddRef();
};

STDMETHODIMP_(ULONG) CSupportErrorlnfo::Release(void) 
{
	return m_punkObject->Release();
};

STDMETHODIMP CSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid) 
{
	return (riid == m_iid) ? NOERROR : ResultFromScode(S_FALSE);
};

| |
Автор Каев Артем.
[AD]