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 件のコメント:
コメントを投稿