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


AtlGetObjectSourceInterface

Эта функция вызывается для получения сведений о по умолчанию интерфейсе источника объекта.

Важно!

Эту функцию нельзя использовать в приложениях, выполняемых в Среда выполнения Windows.

ATLAPI AtlGetObjectSourceInterface( 
IUnknown* punkObj, 
GUID* plibid, 
IID* piid, 
unsigned short* pdwMajor, 
unsigned short* pdwMinor 
);

Параметры

  • punkObj
    [in] Указатель на объект, для которого необходимо вернуть сведения.

  • plibid
    [out] Указатель на идентификатор LIBID библиотеки типов, содержащие определения интерфейсов источника.

  • piid
    [out] Указатель на идентификатор интерфейса интерфейса-источника объекта по умолчанию.

  • pdwMajor
    [out] Указатель на число основной номер версии библиотеки типов, содержащие определения интерфейсов источника.

  • pdwMinor
    [out] Указатель на число дополнительный номера версии библиотеки типов, содержащие определения интерфейсов источника.

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

Стандартное значение HRESULT.

Заметки

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

Примечание

Для этой функции для успешного получения запрашиваемых данных, объект, представленный punkObj должен реализовать IDispatch (и данные типа возвращаемого значения по IDispatch::GetTypeInfo) плюс он также должен реализовывать или IProvideClassInfo2 или IPersist.Сведения о типе интерфейса источника, должна находиться в той же библиотеке типов как сведения о типе для IDispatch.

Пример

Пример в выставками, как можно определить класс приемника событий, CEasySink, уменьшает число аргументов шаблона, которые можно загрузить на IDispEventImpl по чуть-чуть основам. EasyAdvise и EasyUnadvise используют AtlGetObjectSourceInterface для инициализации элементов IDispEventImpl перед вызовом DispEventAdvise или DispEventUnadvise.

template <UINT nID, class T>
class CEasySink : public IDispEventImpl<nID, T>
{
public:
   HRESULT EasyAdvise(IUnknown* pUnk) 
   { 
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventAdvise(pUnk, &m_iid);
   }
   HRESULT EasyUnadvise(IUnknown* pUnk) 
   {
      AtlGetObjectSourceInterface(pUnk,
         &m_libid, &m_iid, &m_wMajorVerNum, &m_wMinorVerNum);
      return DispEventUnadvise(pUnk, &m_iid);
   }
};

Требования

Header: atlcom.h

См. также

Ссылки

IDispEventImpl Class

IDispEventSimpleImpl Class

Другие ресурсы

Composite Control Global Functions