Заинтересовался COM .
От: Andir Россия
Дата: 28.07.02 06:20
Оценка:
Привет Всем !

Вот и пришло собсно время для сабжа, сижу, изучаю ... читаю "Введение в COM"
Автор(ы): Том Армстронг

В этой главе, позаимствованной из книги "ActiveX-Создание Web-приложений"
Тома Армстронга, рассматриваются основные понятия модели COM, такие как
интерфейс IUnknown, GUID, фабрики классов и т. д. Кроме того, автор приводит
примеры реализации COM-клиентов и COM-серверов с использованием языка C++,
Visual Basic и библиотеки ATL.
и натыкаюсь на такой пример реализации QueryInterface -> в студию:
HRESULT Math::QueryInterface( REFIID riid, void** ppv )
{
   switch( riid )
   {
   case IID_IUnknown:
   case IID_IMath;
      *ppv = this;
      // Поскольку мы возврацаем новый указатель на
      // интерфейс, необходимо вызвать метод AddRef
      AddRef();
      return ( S_OK ) ;

   default:
      return ( E_NOINTERFACE );
   }
}

Что меня собсно удивило, так это switch — попробовал на VC++ 7.0 неработает, говорит что низя так (оно и понятно структура всё таки). И Дык собсно вопросец: Чем руководствовался автор при написании такого кода ? (кстати проверил в примере реализация самая обычная через if ... else)

C Уважением, Andir!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.