2009年2月19日木曜日

C#+WPFによるWindows mediaplayerの視覚エフェクトのスケルトンができた


ようやっと上手くいった。HDCからウィンドウのHWNDをとり、そこからHwndSourceを作ってRootVisualを設定っていうAdam Nahanさんの方針はうまく行かなかったのは何とも謎。結局HwndSourceをコンストラクタから作ってHDCから取得したHWNDを親ウィンドウに、RootVisualを自作のUserControlにするという方針で上手く動いた。

スケルトンのソースはここのWMPWPFTEST.zipです。

それからCOMインタフェースを定義する方法をまとめておく。
1.IDLの中のinterfaceをlibraryで囲んで、midl /newtlb foo.idlのファイル名、でfoo.tlbができる。次にtlbimp foo.tlbでfoo.dllができる。
2.foo.dllをReflectorで開いて必要な定義をcsファイルにコピーし、HDCなど実質void *である型が_RemotableHandleになっている所をIntPtrに直す。

0 件のコメント: