У меня есть C ++ ATL COM DLL (phew), которая предоставляет класс VideoPlayer, который сам инкапсулирует вызовы Windows Media Foundation.
Я использую эту DLL из приложения WPF, в котором я хотел бы отобразить видео в элементе управления.
В моей DLL есть метод Initialize, для которого требуется 2 HWND для MF.
Как мне объявить эту функцию?
Что я должен дать ему в приложении WPF?
Пока у меня есть:
VideoPlayer.h
STDMETHOD(Initialize)(
OLE_HANDLE video_hwnd,
OLE_HANDLE event_hwnd
);
VideoPlayer.cpp
STDMETHODIMP VideoPlayer::Initialize(
OLE_HANDLE hVideo,
OLE_HANDLE hEvent
)
{
m_hwndVideo = (HWND) (DWORD_PTR)hVideo;
m_hwndEvent = (HWND) (DWORD_PTR)hEvent;
}
Приложение WPF:
private void Button_Click(object sender, RoutedEventArgs e)
{
var handle = new WindowInteropHelper(this).Handle.ToInt32();
videoPlayer = new EmideeMediaFoundationLib.VideoPlayer();
videoPlayer.Initialize( handle, handle );
}
Я получаю правильные значения в функции Initialize, но преобразование в HWND не удается ...
Есть идеи?
Заранее спасибо
Mike