Windows Media Foundation への呼び出しをカプセル化する VideoPlayer クラスを公開する C++ ATL COM DLL (phew) があります。
コントロールにビデオを表示したい WPF アプリケーションからこの DLL を使用します。
私の DLL には、MF に 2 つの HWND を必要とする Initialize という名前のメソッドがあります。
この関数をどのように宣言すればよいですか? 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 への変換に失敗しました...
何か案は?
前もって感謝します
マイク