端くれプログラマの備忘録 Visual C++ [Visual C++] ActiveXの作り方

[Visual C++] ActiveXの作り方

Visual Studio 2013でActiveXを作成する手順メモ。

1. MFC ActiveX Control のプロジェクトを作成。とりあえずオプションは全てデフォルト。

create_activex_1
create_activex_2
create_activex_3
create_activex_4
create_activex_5

2. ビルドすると以下エラー発生。regsvr32の実行に権限が不足しているらしい。

MSB3075: The command "regsvr32 /s "C:\Temp\TestOcx\Debug\TestOcx.ocx""
exited with code 5. Please verify that you have sufficient rights
to run this command.

コマンドプロンプトを管理者として実行してコマンドを手打ちしたら通った。

regsvr32 /s "C:\Temp\TestOcx\Debug\TestOcx.ocx"

3. Test.idlからuuidを取得

// Class information for CTestOcxCtrl
[
    uuid(07904A43-EA43-4F7A-A67D-7271BD47C117)
]
coclass Test
{
    [default] dispinterface _DTest;
    [default, source] dispinterface _DTestEvents;
};

4. テスト用にActiveXを埋め込んだHTMLファイルを作成。

<!DOCTYPE html>
<html lang="ja">
<head>
 <meta charset="utf-8">
 <title>OCX test</title>
</head>
<body>
  <object id="test" width="300" height="300"
  codebase="./TestOcx.ocx#Version=1,0,0,0"
  classid="CLSID:07904A43-EA43-4F7A-A67D-7271BD47C117"></object>
</body>
</html>

5. IEでtest.htmlを表示したら動いた。

run_activex_1
0006
run_activex_2

これをたたき台にして必要な機能を追加していけばよいだろう。

参考サイト

VisualStudio2005によるActiveXコントロール開発 – LangEdge Weblog
http://www.langedge.jp/blog/?itemid=634

VS2005 の C/C++ でつくった MFC ActiveX コントロールを HTML へ貼り付ける – すがブロ
http://sugamasao.hatenablog.com/entry/20070516/1179339385

ActiveX コントロールの作成手順
http://msdn.microsoft.com/ja-jp/library/5xt905y8.aspx

スクリプトおよび初期化を実行しても安全として MFC コントロールにマークする方法
http://support.microsoft.com/kb/161873/ja