ActiveXの定義を(念のため)調べたところ
- どのOLEコンテナでも実行できる
- インプロセスサーバとして実装されている
- プロパティのset/getにより情報を伝達する
- イベントを利用して通知を行う
- 比較的小さなオブジェクト
といった COM コンポーネントを指すようです。
最初の項目が微妙に満たせない条件が存在しますが、普通にクラスライブラリとしてC#でクラスを作成し、ComVisibleAttribute と GuidAttribute を設定してあげれば、レジストリに登録して上記のような COM コンポーネントとして利用することができるので、動作環境に多少の制限が発生するが ActiveX は作成可能だとしてもよさそうですね。
#.NET Framework が必要かつ、互換性のない CLR がロードされていないこと、かな?
.NET Framework 開発者ガイドの中の「COM インターフェイスのシミュレート 」あたりが該当します。また、Internet Explorer 上で利用するのみなどであれば、Notouch Deployment の説明等にあるように Object タグで直接 .NET の UserControl などを指定してブラウザ上に表示したりもできます。