Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > win32oleライブラリ > WIN32OLEクラス > ole_activex_initialize

instance method WIN32OLE#ole_activex_initialize

ole_activex_initialize -> nil[permalink][rdoc]

ActiveXコントロール用の初期化を行います。

ole_activex_initializeメソッドは、スクリプト内でActiveXコントロールを利 用できるように、オブジェクトが持つ永続化データを初期化します。

ActiveXコントロール(OCX)は、主にUI用に利用されるOLEオートメーションサー バです。ActiveXコントロールは、IDEを利用した開発時と、プログラムの実行 時の2種類の実行モードを持ちます。これは、開発時の設定を永続化するためで す。

幾つかのActiveXコントロールは、上記の動作を前提に組まれているため、実行 に先だって永続化データの転送をデータの有無と関係なく要求します。この場 合、もし永続化データを初期化しないと、実行時モード状態へ遷移せず、後続 のメソッド呼び出しがすべてエラーとなります。

[EXCEPTION] WIN32OLERuntimeError:
オブジェクトがActiveXコントロールの永続化イ ンターフェイスを持たない場合に通知します。
obj = WIN32OLE.new("ProgID_or_GUID_of_ActiveX_Control")
obj.ole_activex_initialize
obj.method(...)

なお、生成したOLEオートメーションサーバが永続化データの初期化を必要とす るActiveXコントロールか、そうでないかを簡単に区別する方法はありません。 そのため、とりあえず普通にメソッドを呼び出し、その結果 WIN32OLERuntimeErrorが通知され、メッセージにHRESULT 0x8000ffffと示され ている場合にのみ、オブジェクト生成直後に当メソッドを呼び出してみてくだ さい。

また、オブジェクトによっては、当メソッドの呼び出しにより後続のデータを 要求してハングアップする場合があります。その場合は、Ctrl-Cなどによって 実行を中止してください。