Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLEクラス > ole_activex_initialize
ole_activex_initialize -> nil
[permalink][rdoc]ActiveXコントロール用の初期化を行います。
ole_activex_initializeメソッドは、スクリプト内でActiveXコントロールを利 用できるように、オブジェクトが持つ永続化データを初期化します。
ActiveXコントロール(OCX)は、主にUI用に利用されるOLEオートメーションサー バです。ActiveXコントロールは、IDEを利用した開発時と、プログラムの実行 時の2種類の実行モードを持ちます。これは、開発時の設定を永続化するためで す。
幾つかのActiveXコントロールは、上記の動作を前提に組まれているため、実行 に先だって永続化データの転送をデータの有無と関係なく要求します。この場 合、もし永続化データを初期化しないと、実行時モード状態へ遷移せず、後続 のメソッド呼び出しがすべてエラーとなります。
obj = WIN32OLE.new("ProgID_or_GUID_of_ActiveX_Control") obj.ole_activex_initialize obj.method(...)
なお、生成したOLEオートメーションサーバが永続化データの初期化を必要とす るActiveXコントロールか、そうでないかを簡単に区別する方法はありません。 そのため、とりあえず普通にメソッドを呼び出し、その結果 WIN32OLERuntimeErrorが通知され、メッセージにHRESULT 0x8000ffffと示され ている場合にのみ、オブジェクト生成直後に当メソッドを呼び出してみてくだ さい。
また、オブジェクトによっては、当メソッドの呼び出しにより後続のデータを 要求してハングアップする場合があります。その場合は、Ctrl-Cなどによって 実行を中止してください。