ActiveX の作り方について教えて下さい
以下の環境でMSのVC++ で ActiveX を作成しようとしているのですが、
うまくアクセス出来ません。
プラットフォーム:WindowsVista
VC++ :Ver.6
ActiveX の作り方について教えて下さい。
『プロジェクト』の『MFC ActiveX ControlWizard』を指定し、
プロジェクト名:Sample でプログラムを作成し、
下記の内容で、Variant 型のメソド:RetVariant を作成ました。
┌───────────────────────────────
│ 1: VARIANT CSampleCtrl::RetVariant()
│ 2: {
│ 3: static VARIANT vaResult;
│ 4: VariantInit(&vaResult);
│ 5: // TODO: ここにディスパッチ ハンドラ コードを追加してください。
│ 6:
│ 7: vaResult.vt = VT_I4;
│ 8: vaResult.lVal = 1234;
│ 9:
│10: return vaResult;
│11: }
└───────────────────────────────
これを『C:\Windows\System32』にコピーし、『regsvr32.exe』で登録しました。
その後、少し古いですが、Excel2000 のVBAで下記のプログラムを実行すると、
正しく機能し、『1,234』と表示されました。
┌───────────────────────────────
│ 1: Dim Obj
│ 2: Dim ZZ
│ 3:
│ 4: Set Obj = CreateObject("SAMPLE.SampleCtrl.1")
│ 5:
│ 6: ZZ = Obj.RetVariant
│ 7: MsgBox FormatNumber(ZZ,0)
└───────────────────────────────
これをVBSで実行しようとすると、以下の様なエラーとなってしまいます。
┌───────────────────────────────
│ 行: 6
│ 文字: 5
│ エラー: 致命的なエラーです。
│ コード: 8000FFFF
│ ソース: (null)
└───────────────────────────────
4行目の所を『Set Obj = WScript.CreateObject("SAMPLE.SampleCtrl.1")』
としても同じでした。
どうしてVBAではOKで、VBSではNGになるのでしょうか。
どの様にしたらエラーを解消出来るのでしょうか。
お礼
ありがとうございました。