我有一个C ++ ATL COM DLL(phew),它暴露了一个VideoPlayer类,它本身封装了对Windows Media Foundation的调用。
我在WPF应用程序中使用此DLL,我想在控件中显示视频。
我的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失败了......
有什么想法吗?
提前致谢
麦克