VC++でのお話。C#とかは知らん。
簡単に概要だけ書いておく。サンプルは暇な時に適当に。
COMってのはdllなわけだが実装が完全に内部に閉じているため、
callback先のポインタをわたして「ほれ、終わったらここに通知しな」とはいかない。
access violationになる。(と思う)
で、callbackを実現するためにConnection Pointを作ってやればよい。
Connection Pointはdll内部でcallbackさせようと呼び出したメソッドをdllのイベント的なものとして、システムに通知してくれるもの。(うーん適当すぎ、まぁいいや)
で、このイベントを拾った時にどのメソッドを呼ぶのかをdllを使う側で定義してやればよい。
もち、interfaceは合わせておく必要がある。
具体的にどうするかはまた次回に。
0 件のコメント:
コメントを投稿