0

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 への変換に失敗しました...

何か案は?

前もって感謝します

マイク

4

0 に答える 0