IEプラグインがちょっと動き始めたから覚書

IEプラグイン覚書

しょぼいことから難しいことまで(当社比)、とりあえずいろいろ自分のためにおさらいを兼ねて書いておく。

・ATL
C++のテンプレートライブラリとして、COMを簡単に扱えるような機能が実装されている。


・テンプレート
C++の機能の一つで、ようするにコードの中で使うクラス名を穴にしといて、あとからそのクラスを使うときに穴を埋めるクラス名などを書くことができる。
DEFINEして、INCLUDEして、UNDEF→違う文字をDEFINE→INCLUDEを自分でダラダラ書く代わりに楽ができる。


・多重継承
C++の悪名高い機能の一つで、スーパークラスを複数指定できる。
必要な機能だけを実装することで、クラスが小さくなる。
IElementBehaviorとIElementBehaviorFactoryを多重継承して実装するのは、複数のCOMインターフェースを作らなくていいから楽ってだけで、あまり意味はない気がする。


・IElementBehavior
IEの動作状況の通知を受けるインターフェース。


・IElementBehaviorFactory
タグなどを判定して該当するIElementBehaviorを返すためのインターフェース。
IElementBehaviorとIElementBehaviorFactoryを多重継承している場合は自分自身を返すことになる。


・IElementNamespaceFactory
追加したいタグを設定するためのインターフェース?


・IHTMLPainter
まだまともに扱ったことはないが、レンダリングまわりを作りこむことができるらしい。


・注意点
レジストリのInprocServer32のThreadingModelはApartmentにしておかないとIEからコールされない。
OBJECTタグとIMPORTタグ、それから、XMLNSなどの使い方がよくわからないが、とりあえず試行錯誤の結果、以下のHTMLで動かすことはできた。


	 
	 
	 
		
		testobjecttag
		
		test  test