ActiveXをつくる(2)

前回のつづき。

ActiveXを作るのには、前回挙げた開発ツールを含め、下記が必要。

  • Visual C/C++ 2008 Standard以上
  • 署名のための電子証明書(テストするだけなら必須ではないけど、インターネットに公開して使用するためにはほぼ必須)
  • Microsoft Cabinet SDK*1

前回、作成したコントロール(*.ocx)をWebページに貼り付けて自動的に登録されるようにするにはINFファイルが必要になる。

INFファイルのサンプルは以下のとおり。clsIdの部分は、作成したソースコードに記述されているのでそのまま記載する。

[version]
; version signature (same for both NT and Win95) do not remove
signature="$CHICAGO$"
AdvancedINF=2.0


[Add.Code]
sampleCtrl.ocx=sampleCtrl.ocx


[Deployment]
InstallScope=machine|user


[sampleCtrl.ocx]
file-win32-x86=thiscab
clsid={4CBBC676-507F-11D0-B98B-000000000000}
FileVersion=1,0,0,1
RegisterServer=yes
RedirectToHKCU=Yes

なお、IE8より、管理者以外でもインストール可能なActiveX(Non-admin ActiveX)を作成することができるようになっている。*2

「InstallScope=machine|user」の部分は、従来のActiveXとNon-admin ActiveXのいずれでも使用できるようにするための記述。
また、「RedirectToHKCU=Yes」はレジストリHKLM(HKEY_LOCAL_MACHINE)への書き込みをHKCU(HKEY_CURRENT_USER)にリダイレクトする。Non-admin ActiveXの場合に必要。


次に、ActiveXコントロールとINFファイルをまとめてキャビネットファイル(*.cab)形式にする。

Cabファイルを作成するには、Cabinet SDKに含まれるCABARCコマンドを使用する。なお、「-s 6144」の部分は、あとで署名を追加する場合のみ必要になる。

CABARC -s 6144 n Sample.CAB SampleCtrl.ocx SampleCtrl.inf

つづく。