●JPEG 2000 ActiveX Control Module● ━━━━━━━━━━━━━━━━━━━━
   別名:JPEG 2000 Plug-in for Internet Explorer
   掲載日時:2004-04-07
   バージョン:v1.51

  WWW       http://www.afis.to/~almclock/
  e-mail    (公開自粛中)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【1】もくじ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【1】もくじ
【2】動作環境
【3】ソフトウェア概要
【4】インストール/アンインストール方法
【5】注意事項
【6】JPEG 2000関連のURL
【7】開発履歴


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【2】動作環境
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■対応OS
    Windows Server 2003 / Windows XP / Windows 2000 / Windows NT 4.0 /
    Windows Me / Windows 98 / Windows 95
■対応ホストアプリケーション
    Microsoft Internet Explorer 3.0～
      Microsoft Internet Explorer 6.0SP1
    他、ActiveXが使えるホストアプリケーション
    (例:Visual Basic,Boland C++ Builder等)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【3】ソフトウェア概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ソフトウェアについて
  「Internet Explorer」用のPlug-inです。
  ブラウザ上で直接、JPEG 2000フォーマットを扱えるようになります。
  また、他のアプリケーションでも、ActiveXに対応できる場合、利用ができます。
  ただし、予期せぬ不具合が出る可能性もあります。
  取り扱いには注意してください。

  日本語、英語モードを自動的に切り替えます。(バイリンガルソフト)
  アイコンがOCXファイル内に付属で付いているので、
  JPEG 2000のアイコンの関連付けがすぐできます。(^-^)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【4】インストール/アンインストール方法
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【!】インストール方法について
ver 1.0.0.1 b315 よりインストール方法が変更されています。
しかし、更新時に一旦旧バージョンをアンインストールする必要はありません。
アンインストール時も新しい方法で問題ありません。

■インストール
注:関連付けなどが変更される場合がありますので、あらかじめご容赦ください。
   また、本来の意味のインストールではありません。
   レジストリをいじりますので、その点もご留意ください。
○Windows XP/2000/NTの場合は
(1)
「%SystemRoot%\System32」へ付属の「msj2kplg.ocx」というファイルをコピーします。
(※:「%SystemRoot%」は 「C:\WINDOWS」「C:\WinNT」 などが当てはまります。)

(2)
「スタート」→「ファイル名を指定して実行」→
「regsvr32 %SystemRoot%\System32\msj2kplg.ocx」を実行します。
「登録が出来た」というような英語のダイアログが出るので「OK」にします。

(3)
付属の「regxp.reg」というファイルをダブルクリックし、「はい」を選びます。

(4)
これで終わりです。

○Windows Me/98/95の場合は
(1)
「%windir%\SYSTEM」へ付属の「msj2kplg.ocx」というファイルをコピーします。
(※:「%windir%」は 「C:\WINDOWS」 などが当てはまります。)

(2)
「スタート」→「ファイル名を指定して実行」→
「REGSVR32 %windir%\SYSTEM\msj2kplg.ocx」を実行します。
「登録が出来た」というような英語のダイアログが出るので「OK」にします。

(3)
付属の「reg9x.reg」というファイルをダブルクリックし、「はい」を選びます。

(4)
これで終わりです。

■アンインストール
○Windows XP/2000/NTの場合は
(1)
「スタート」→「ファイル名を指定して実行」→
  「regsvr32 /u %SystemRoot%\System32\msj2kplg.ocx」を実行します。
「登録が解除出来た」というような英語のダイアログが出るので「OK」にします。

(2)
「%SystemRoot%\System32」にある「msj2kplg.ocx」というファイルを消します。

(3)
付属の「regxp.reg」を参考に不要なレジストリを消します。(※中級者以上の方)

(4)
これで終わりです。

○Windows Me/98/95の場合は
(1)
「スタート」→「ファイル名を指定して実行」→
  「REGSVR32 /u %windir%\System\msj2kplg.ocx」を実行します。
「登録が解除出来た」というような英語のダイアログが出るので「OK」にします。

(2)
「%windir%\System」にある「msj2kplg.ocx」というファイルを消します。

(3)
付属の「reg9x.reg」を参考に不要なレジストリを消します。(※中級者以上の方)

(4)
これで終わりです。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【5】注意事項
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ソフトウェアの種別・著作権
本プログラムはフリーソフトウェアです。
本プログラムの著作権は「^2」が所有します。

■免責事項
著作者は本プログラムの動作とその動作の結果について保証しませんので、
各個人の責任において使用してください。
著作者は本プログラムに発生した不具合を修正する義務を負いません。

■転載/再配布の条件
以下の条件を完全に満たす場合のみ、転載/再配布を許諾します。
○一切の改変/改編をしないこと
○PDSとして扱わないこと
○必要経費以上の金銭の授受を行わないこと
○配布に際しては本ドキュメント（msj2kplg.txt）を完全な形で添付すること
なお、商用利用するための転載/再配布は事前に許可を得て下さい。

■雑誌掲載可否について
可能です。
転載/再配布については、連絡をすれば、自由にできます。

■他のソフトのバンドルについて
自由に出来ます。ただし常に最新版を入れるようにお願いします。

■このソフトウェアを使われる、皆さんへのお願い
1:バグを発見した場合は掲示板やメールにてご連絡ください。
2:参考になるプログラミングソースやアイデア、
  開発費を提供して頂けると、助かります。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【6】JPEG 2000関連のURL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  JPEG 2000 Official Page
  http://www.jpeg.org/JPEG2000.htm
    JPEG 2000の企画を話し合い、決定した団体です。
    もちろんJPEGの規格を決定したのも、この団体です。
    JPEG 2000の仕様書が見れます。(英語)

  NGIF-UG
  http://mng.cocky.to/
    日本の次世代画像フォーマット普及を促進する団体。JPEG 2000の他、
    アニメーションGIFよりも優れたMNGフォーマットの紹介などがあります。

  J2000: A JPEG-2000 Codec
  http://j2000.org/
    JPEG 2000とPNM、PGXを相互変換できるC、C#のソースを無償配布しています。

  The Jasper Project Home Page
  http://www.ece.ubc.ca/~mdadams/jasper/
    JPEG 2000とビットマップを相互変換できるCのソースを無償配布しています。

  JJ2000(Java JPEG 2000) Public HomePage
  http://jj2000.epfl.ch/
    JPEG 2000とビットマップを相互変換できるJAVAのソースとバイナリを
    無償配布しています。

  JPEG 2000 Software: Kakadu
  http://maestro.ee.unsw.edu.au/~taubman/kakadu/
    JPEG 2000の変換、表示のソフトウェアを配布しています。
    処理速度や圧縮法の種類の多様性ではもっとも優秀です。
    唯一プログレッシブ表示に対応しています。
    ソースはC++で、シェアウェア配布のようです。

  ここ以外でも優れたページがありましたら、教えてください。


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【7】開発履歴
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2001-08-23
	最新版IEにはプラグイン非対応の事実が分かり、
	ActiveX版のプラグイン開発を始める。
	v1.00でnpj2kplgの開発をしばらく打ち切ることにした。
	ActiveXの参考文献やWebページがないので、苦戦の連続。(苦笑)

2001-08-30	beta59
	とりあえず、現状を見てもらうため、試しにリリースしてみる。

2001-09-02	beta81
	コメントを展開できるようになる。
	JPEG 2000のデコード部を付けた。
	ファイルプロトコルによるJPEG 2000のオフライン表示ができるようになる。
	HTTPによるダウンロード、オンライン表示ができるようになる。
	全画面および絶対パスによるHTML埋め込み表示が出来るようになる。
	(画像の開き方によって非常に不安定になったりそうでなかったりする。)

2001-09-03	beta87
	HTTPのエラー時点での処理をある程度直した。

2001-09-04	beta103
	Visual Basic等で動作・表示できるようにプロパティーを追加した。
	起動の具合で変な動作をしないように直した。
	画像の大きさを好みによって、画面にあわせる処理を付けた。
	強制再描画の処理を付けた。
	Aboutダイアログのタイトルのアイコンを追加した。
	コメントダイアログのタイトルのアイコンを追加した。
	Aboutダイアログのアニメーションを追加した。

2001-09-05	beta106
	「file://」と「file:///」に関する問題を修正。
	ファイルプロトコル時にURLに「%」文字が入っている時の不具合を修正。
	ファイルプロトコル時にURLに不正な文字が入っている時の不具合を修正。
2001-09-06	beta108
	8bitグレーススケールのファイルが読めないバグを修正。
	HTTP経由のファイルを読むのに時間がかかりすぎる不具合を修正。

2001-09-16	beta110
	フルスクリーンと埋め込みメードの判断間違いのバグを修正。
	target属性が不正URLの時に無効になるバグを修正。

2001-11-04	beta114
	ビットマップで保存できるようにした。
	保存時のバグを修正した。

2001-12-10	beta116
	対応するMIME-Typeを増やした。

2001-12-14	beta119
	Windows XPの場合でセキュリティーにぶつかり、
	  壁紙が設定できないことがあるので修正した。

2002-02-23	beta150
	☆アイコンを一気に大刷新した。

2002-02-25	beta151
	ちょっとしたバグ修正。

2002-02-28	beta160
	☆ダウンロードコアを大幅に見直し、高速化と安定化を図った。
	☆画像表示前のプラグインの状態をテキストで表示するようにした。
	☆実は500000バイトまでのメモリの制限があったが撤廃した。
	☆相対パスが打てるようになった。
	☆JP2の定義が間違っているので直した。

2002-03-04	beta164
	☆ローカルでない場合、きちんと描画が行われないバグを直した。
	☆Windows 95/98/Meで異常動作するバグを直した。
	☆メモリがきちんと開放されていないバグを直した。

2002-04-14	beta170
	☆デコードコアを更新した。
	☆ある特定の画像が読めないバグを直した。
	☆Part2,Part3の対応部分を作成し始めた。(未稼働)

2002-04-14	beta175
	☆ちょっとしたミスの修正。
	☆変なコンパイルエラーが起こらないようにソースを修正。

2002-04-20	beta180
	☆大きい画像の時にスクロールバーが出るようにした。

2002-04-27	beta181
	☆スクロールバーを使うと画面がちらつく問題を修正した。

2002-05-03	beta191
	☆無理やり個々のActiveXの変数領域を作っていたのを修正して、
	  きちんとした状態にした。大幅の修正。→安定化を図るため
	☆ツールチップインタフェースをつけた？(IEで表示されるわけではない)

2002-05-31	beta194
	☆壁紙設定のバグを修正。

2002-07-31	beta202
	☆幾らかバグを修正。

2002-08-02	beta210
	☆(重要)縮小表示で変な色に化ける問題を修正。

2002-08-31	beta231
	☆(やや注目)ALTか内臓テキストがポップアップ表示するようになった。
	☆見た目の変化は無いが、いくらか色々手直しをした。

2002-08-31	beta255
	☆(非常に重要)リンクが正しく動作するようになった。
	--★HREFのリンク指定時にクリック時の処理が適切になった。
	--★「リンクを開く」が正しく動作するようになった。
	--★「リンクを新しいウィンドウで開く」が正しく動作するようになった。
	--★「画像を表示」が正しく動作するようになった。
	--★「画像を再描画」が正しく動作するようになった。

2002-09-01	beta256
	☆beta255で数箇所のリンク処理のミスに気が付き、すぐに修正した。

2002-09-03	beta260
	☆リサイズやダウンロード状況による画面のちらつきを
	  裏画面の利用により、大幅に減らした。

2002-09-08	beta264
	☆全画面表示でのスクロールがめちゃくちゃになる問題を修正した。

2002-09-15	beta267
	☆JP2の内部テキストを読めるようにした。

2002-09-22	beta273
	☆より適切な動作ができるように修正をし、安定化を図った。

2003-02-23	beta295
	☆裏画面の処理が非効率であったので、大幅に見直した。
	  共に異常にレンダリングが遅く、スクロールが重い問題を改善。
	☆内部構造体宣言のミスにより動作が不安定になる問題を修正した。
	☆URLが長くなるとIEがダウンする不具合を修正。
	☆長いコメントがあるデータだと動作が不安定になる不具合の修正。
	☆JPEG 2000画像にリンクを貼った時カーソルが消えてしまう不具合の修正。
	☆リソースを余計に読み込んでメモリの無駄だったため、修正。
	☆処理の効率化・ソースコードの整理。

2003-03-02	beta297
	インストール先が分かるようになった。
	メニュー配置を一部変更。
	日本語/英語の言語判別方法を変更した。

2003-03-08	beta304
	☆エラー表示に間違いがあったので修正した。
	☆デコードコアの更新。

2003-05-07	beta315
	☆画面が合わせ鏡のように狂うことがあるのをやっと直した。
	☆インストール/アンインストール方法の変更。
	  (BATファイルを作るまでこれでお願いします…(汗))

2003-09-06	beta330
	チャンネル毎16ビット画像の表示バグを修正。
	ソースの大幅整理。
	デコードコア入れ替え。
	デコード処理を若干高速化。
	グレイスケールJPEG 2000にきちんと対応した。
	画像にウィンドウに合わせる処理の仕様をアスペクト保持の形式に変更。
	デフォルトを「画像にウィンドウに合わせる」に。
	エラーの発生する可能性を低減。

2003-09-10	1.0
	(おおよそ安定し、npj2kplgと機能面のずれがある程度解決してきたため
	完成形ではないが、一応正式版とした。約2年間もベータ版…。)
	JPX(Part2), JPM(Part6) ファイル等の認識ができるようにした。
	JPX, JPMのデコードをそれなり動かせるようにした。
	((注)100%デコードできるわけではありません。)
	特定のデータを受け取ると落ちていたバグを修正。

2003-09-12	1.01
	途中にある特定のデータが一部狂っていると落ちる問題を修正。
	色深度が1～7ビットの時に表示が狂う(暗くなる)問題を修正。

2003-09-13	1.10
	WindowsXP使用時、サイズ変更をすると重くなる問題に少し対応。
	カーソルの表示処理が上手くされていない問題を修正。

2003-09-13	1.20
	コメントのテキスト文字エンコーディング対応。(UTF-8他)

2003-09-22	1.30
	Motion JPEG 2000 の1フレーム目表示に対応。

2003-11-23	1.40
	無駄なリソースがあったため削除。
	ある箇所でバッファオーバーランを起こしていたので修正。
	テキストの文字コード判別ミスを修正。

2003-12-09	1.50
	モジュール側に背景色情報が渡るようにした。(擬似透過は非対応)
	スクロールバーの挙動にバグがあったため修正。

2004-04-07	1.51
	デコードコアの差し替え。(修正は小さめ)
	(添付レジストリファイルの差し替え。)


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
付けられた・改善された処理(開発済み)
	ActiveXの親にあたるアプリケーションから現在のURLを取得する処理。
	(相対パスを処理できるように)
	時間のかかるJPEG 2000の処理中をどうにかする。
	リンク機能を正しく作動するようにする。
	HTMLに埋め込まれている時、表示が合わせ鏡のように狂うことがある。

できるだけ付けないといけない処理(未開発＆バグ)
(5題解決)
	自動インストーラーの付属。
	JPEG 2000の処理速度をPNGやJPEG並に抑える。

Visual Basicのプログラミング例:
……………………………………………………………………………………………………
Private Sub Command1_Click()
    Jpeg2000Plg1.HttpUrl = "http://www.yousite.ne.jp/~yourid/j2k/image.j2k"
End Sub
……………………………………………………………………………………………………

ALT・内臓テキストポップアップ表示関連
XHTML・XHTMLの表記例:(ver1.0.0.1 beta231～)
……………………………………………………………………………………………………
[XHTML例]
1: 従来通り、ツールチップ(ポップアップヒント)を禁止
<object type="image/jp2" data="test.jp2" width="640" height="480">
<param name="type" value="image/jp2" />
<param name="src" value="test.jp2" />
<param name="width" value="640" />
<param name="height" value="480" />
<param name="showtooltip" value="false" />
<strong>プラグインをインストールしてください。</strong><br />
</object><br />

2: テキストは自動検出・ツールチップを出す(デフォルト)
<object type="image/jp2" data="test.jp2" width="640" height="480">
<param name="type" value="image/jp2" />
<param name="src" value="test.jp2" />
<param name="width" value="640" />
<param name="height" value="480" />
<strong>プラグインをインストールしてください。</strong><br />
</object><br />

3: altでテキスト指定
<object type="image/jp2" data="test.jp2" width="640" height="480">
<param name="type" value="image/jp2" />
<param name="src" value="test.jp2" />
<param name="width" value="640" />
<param name="height" value="480" />
<param name="alt" value="altパラメータによる受け渡し" />
<strong>プラグインをインストールしてください。</strong><br />
</object><br />

4:tooltiptextでテキスト指定
<object type="image/jp2" data="test.jp2" width="640" height="480">
<param name="type" value="image/jp2" />
<param name="src" value="test.jp2" />
<param name="width" value="640" />
<param name="height" value="480" />
<param name="tooltiptext" value="tooltiptextパラメータによる受け渡し" />
<strong>プラグインをインストールしてください。</strong><br />
</object><br />

[HTML例]
1: 従来通り、ツールチップ(ポップアップヒント)を禁止
<embed src="test.jp2" width="640" height="480" showtooltip="false"><noembed>(プラグイン必須)</noembed>
 
2: テキストは自動検出・ツールチップを出す(デフォルト)
<embed src="test.jp2" width="640" height="480"><noembed>(プラグイン必須)</noembed>
 
3: altでテキスト指定
<embed src="test.jp2" width="640" height="480" alt="altパラメータによる受け渡し"><noembed>(プラグイン必須)</noembed>
 
4: tooltiptextでテキスト指定
<embed src="test.jp2" width="640" height="480" tooltiptext="tooltiptextパラメータによる受け渡し"><noembed>(プラグイン必須)</noembed>

※1: 内臓テキストがあってもaltが指定されていれば、altが優先されます。
※2: altとtooltiptextはほぼ同じ扱いでaltが優先されます。
※3: フル画面表示の時、内臓テキストが無い時は何も表示しません。
……………………………………………………………………………………………………

なぜリンク処理が長期間適切にならなかったのか、困ったこと。
……………………………………………………………………………………………………
ActiveX内部のリンク処理は、「HlinkSimpleNavigateToString」という
関数を使って処理をすることになっています。
この一部の引数にIUnknownという型の必須の引数が要求されているわけですが、
多くのWebページが「GetUnknown()」すれば良いとばかり書かれていました。
しかし、私の環境はこの関数は使用できないので、困り果ててました。
ところが、2002年08月31日に「GetInterface(&IID_IUnknown)」を使うと、
「GetUnknown()」とまったく同じ結果を得られることが分かりました。
ぜひ、このことをActiveX開発系・Visual C++系のWebサイトのお持ちの方に
載せてもらいたいものです。

……………………………………………………………………………………………………
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
