64ビット環境でスクリプトを実行する
64ビットネイティブ環境ではScriptControlが使用できません。代わりに以下の方法があります。
1.IEコンポーネントを使用
htmlを表示するIEコンポーネントのスクリプトタグを使用すれば、スクリプトが実行できます。
メリットはIEの機能(alertやprompt等)が使用できます。また、IE9以降の場合はChakraという高速なスクリプトエンジンを使用できます。
デメリットはIEコンポーネントの分だけ重くなります。
2.htmlfile (CLSID_HTMLDocument)を使用
上記のIEコンポーネントのhtml解析の部分を取り出した感じです。これもIE9以降の場合はChakraという高速なスクリプトエンジンを使用できます。
IE11からは標準化の流れでwindow.execScriptが廃止されているので注意。
3.IActiveScriptを使用
ScriptControlの内部で使っていると思われるIAcriveScriptで直接実行させることもできます。この方法は上記の2つの方法より細かい指定ができます。
ScriptControl.LanguageはCLSIDFromProgIDで言語名からCLSIDを作成し、CoCreateInstanceでIActiveScriptを作成します。Chakraという高速なスクリプトエンジンを使用する場合はCLSIDFromProgIDで無くChakraのCLSIDを用意する必要があります。
ScriptControl.AddCodeはIAcriveScriptSite::GetItemInfoをpstrNameに追加するオブジェクト名が来た際にppiunkItemにオブジェクトを返すように実装し、IActiveScript->AddNamedItemでオブジェクト名を通知します。
ScriptControl.AddCodeはIActiveScriptParseをIActiveScriptからQueryInterfaceして、ParseScriptTextします。
詳しくはTablacus Exploerのソースをご覧ください。
2番目のCLSID_HTMLDocumentはコメントになっていますが、3つの方法ともあります。