ActiveX版 ぎこはにゃ〜ん
これって何よ?
AAの為のIE非依存で、モナー板専用ブラウザという特殊な地位にある「モナ板deぎこはにゃ〜ん」の描画エンジンを独立させ、ActiveXにしたもの。 VC++, WTL以外でも、利用ができます。
一般ユーザには無縁のものです。
ダウソロード
Developper Release 03(based on TechPreview 5.0-)
dll本体(35KB)
デバッグ情報(60KB)
ソース(60KB)
履歴
03 (インターフェース的変更以外は、表の方に書きます)
- アクティブなドキュウメントの受信・更新時にOnPaintが来ると希に落ちることがあった。
- ポップアップ(IPopup)を追加。
- iGikoDocにget_resnum()と、get_titleを追加。
02
- 不正な参照文字を救済。(たとえば、&ltを<として、< に)。
- アクティブなドキュメントがrecvで更新されたときに、UpdateViewするようにした。
- IGikoDoc::get_resnum() 追加。
- ATL附属のアイコンを、ギコアイコンに変更。
リファレンス
基本
インターフェースは頻繁に変わる可能性があります。regsvr32 active_giko.dll を忘れないでください。
ActiveX Test Containerあたりで動かすと、わかりやすいです(ReadTestDocを活用してください)
バグには、エラーメッセージつけて(゚Д゚)<ゴルァ しろや。
要望も歓迎。配布条件は要相談。配布しないなら、自由。
概要
STDMETHODIMP CGikoView::ReadTestDoc (gikoview.cpp)
を見ると、だいたい分かるはず。
MultiDoc - SingleView 構造となります。
IGikoViewが受け取るのは、piza鯖のdatファイル形式です。
IGikoDocは追記しかできません。最初から読み直すのには、新しいIGikoDocを作ることになります。
タブでビューを替えるように見せるには、IGikoView::setDocumentで、ドキュメントをすり替えるようにしてください。(複数のビューを作らないようにしてください)
ビューからドキュメントを解放するには、IGikoView::setDocument(NULL)してください。
内部状態として記録する必要があるのは、IGikoDocのscroolpos。Release前には保存しておいて、Create後に復帰させて。
インターフェース
IGikoDoc
- [prop put,get] scrollpos
- 現在のスクロールバーの位置。呼び出し側で管理。
- recv( BYTE*buf, int len)
- bufのデータをlen分追記する。 ReadTestDoc
- [prop get] resnum
- 読み込んだレスの数を返す。
IGikoView
- setDocument
- アクティブな(表示する)IGikoDocを設定する。
- ReadTestDoc
- テスト用のdat( c:\test.dat )を読み込み、アクティブにする。(純粋にテスト用。)
IPopup
- parent([in] HWND newVal);
- ポップアップの親を設定する。最初のpopupまでに設定すること。
- [get,put]document([out, retval] IUnknown* pVal);
- ポップアップの文章の元となるIGikoDocを取る。
- point([in] POINT *newVal);
- ポップアップ出現位置を設定する。
- popup(LONG begin, LONG end)
- ポップアップを表示。begin,endは行。Event::*_Referで送ってくる奴を丸投げすればいい。
- close();
- ポップアップを非表示にする。
イベント
- [id(1)] HRESULT ClickLink([in] BSTR url);
- [id(2)] HRESULT OverLink ([in] BSTR url);
- [id(3)] HRESULT ReleaseLink( );
- [id(6)] HRESULT ClickRefer([in] LONG from,[in] LONG to);
- [id(4)] HRESULT OverRefer ([in] LONG from,[in] LONG to);
- [id(5)] HRESULT ReleaseRefer();
- [id(7)] HRESULT ClickRes ( [in] LONG resnum);
- [id(8)] HRESULT OverRes ( [in] LONG resnum);
- [id(9)] HRESULT ReleaseRes( );
- [id(10)] HRESULT OnRButtonDown( );
Click... : 左クリックされた。
Over.... : マウスが上にのった
Release..: 上にのっていたマウスが離れた
..Link : リンクオブジェクト。
..Refer: "40-50" みたいなオブジェクト。from = toの時はそのレスのみに言及。
..Res : 1から始まるレス番号
マウスカーソルの位置は送出しないので、GetCursorPos()で求めてみれば。
追記
ネットワークカードはちゃんと刺しているのに、GUIDの値がバラバラです。2枚刺しだから?外したカードが有るから?
戻る