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


Элемент CFactoryTemplate::m_lpfnNew

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Указатель на функцию, создающую экземпляр объекта .

Синтаксис

LPFNNewCOMObject m_lpfnNew;

Remarks

В библиотеке DLL объявите статическую функцию, которая возвращает указатель на новый экземпляр объекта . В шаблоне фабрики задайте для переменной члена m_lpfnNew адрес этой статической функции.

Тип указателя функции — LPFNNewCOMObject.

В следующем примере показана типичная функция для m_lpfnNew:

CUnknown * WINAPI CMyComponent::CreateInstance(LPUNKNOWN pUnk, HRESULT *pHr) 
{
    CMyComponent *pNewObject = 
        new CMyComponent(NAME("My Component"), pUnk, pHr );

    if (pNewObject == NULL)  
    {
        *phr = E_OUTOFMEMORY;
    }
    return pNewObject;
}

Требования

Требование Значение
Заголовок
Combase.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CFactoryTemplate