VIII. Windows用のCOMサポート関数

導入

COMは、標準化された呼び出し規約及びコンポーネントが保存されている マシンや実行ファイルが存在するマシンの種類の実装の詳細をAPIの背後 に隠蔽することにより、(あらゆる言語により)あらゆる言語で書かれたコー ドを再使用することを可能とする技術です。COMは、いくつかの基本的な オブジェクトルートを有する特別なRemote Procedure Call (RPC)機構と 考えることができる。COMは、実装をインターフェイスから分離します。

COMは、バージョン管理、インターフェイスからの実装の分離、実行ファ イルの位置や記述される言語のような実装の詳細の隠蔽を推奨します。

要件

COM関数は、Windowsバージョン版のPHPでのみ利用可能です。

インストール手順

これらの関数はPHPコアに含まれるため、使用す る際にインストールは不要です。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 1. Com 設定ディレクティブ

名前デフォルト有効/無効の意味
com.allow_dcom"0"PHP_INI_SYSTEM
com.autoregister_typelib"0"PHP_INI_SYSTEM
com.autoregister_verbose"0"PHP_INI_SYSTEM
com.autoregister_casesensitive"1"PHP_INI_SYSTEM
com.typelib_file""PHP_INI_SYSTEM
PHP_INI_*定数に関する詳細と定義については、 ini_set()を参照して下さい。

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

CLSCTX_INPROC_SERVER (integer)

CLSCTX_INPROC_HANDLER (integer)

CLSCTX_LOCAL_SERVER (integer)

CLSCTX_REMOTE_SERVER (integer)

CLSCTX_SERVER (integer)

CLSCTX_ALL (integer)

VT_NULL (integer)

VT_EMPTY (integer)

VT_UI1 (integer)

VT_I2 (integer)

VT_I4 (integer)

VT_R4 (integer)

VT_R8 (integer)

VT_BOOL (integer)

VT_ERROR (integer)

VT_CY (integer)

VT_DATE (integer)

VT_BSTR (integer)

VT_DECIMAL (integer)

VT_UNKNOWN (integer)

VT_DISPATCH (integer)

VT_VARIANT (integer)

VT_I1 (integer)

VT_UI2 (integer)

VT_UI4 (integer)

VT_INT (integer)

VT_UINT (integer)

VT_ARRAY (integer)

VT_BYREF (integer)

CP_ACP (integer)

CP_MACCP (integer)

CP_OEMCP (integer)

CP_UTF7 (integer)

CP_UTF8 (integer)

CP_SYMBOL (integer)

CP_THREAD_ACP (integer)

VARCMP_LT (integer)

VARCMP_EQ (integer)

VARCMP_GT (integer)

VARCMP_NULL (integer)

NORM_IGNORECASE (integer)

NORM_IGNORENONSPACE (integer)

NORM_IGNORESYMBOLS (integer)

NORM_IGNOREWIDTH (integer)

NORM_IGNOREKANATYPE (integer)

NORM_IGNOREKASHIDA (integer)

DISP_E_DIVBYZERO (integer)

DISP_E_OVERFLOW (integer)

MK_E_UNAVAILABLE (integer)

以下も参照下さい:

COMに関するより詳細な情報については、COM規約またはDon Boxの Yet Another COM Library (YACL)を 参照下さい。

目次
COM -- COM class
DOTNET -- DOTNET class
VARIANT -- VARIANT クラス
com_addref --  コンポーネントリファレンスカウンタを増やす
com_create_guid --  Generate a globally unique identifier (GUID)
com_event_sink --  Connect events from a COM object to a PHP object
com_get_active_object --  Returns a handle to an already running instance of a COM object
com_get --  COMコンポーネントのプロパティの値を得る
com_invoke --  COMコンポーネントのメソッドをコールします。
com_isenum -- IEnumVariantを取得する
com_load_typelib -- Typelibをロードする
com_load --  COMコンポーネントへの新規リファレンスを作成する
com_message_pump --  Process COM messages, sleeping for up to timeoutms milliseconds
com_print_typeinfo --  Print out a PHP class definition for a dispatchable interface
com_propget --  COMコンポーネントのプロパティの値を得る
com_propput --  COMコンポーネントのプロパティに値を代入する
com_propset --  COMコンポーネントのプロパティに値を代入する
com_release --  コンポーネントリファレンスカウンタを減らす
com_set --  COMコンポーネントのプロパティに値を代入する
variant_abs --  Returns the absolute value of a variant
variant_add --  "Adds" two variant values together and returns the result
variant_and --  performs a bitwise AND operation between two variants and returns the result
variant_cast --  Convert a variant into a new variant object of another type
variant_cat --  concatenates two variant values together and returns the result
variant_cmp --  Compares two variants
variant_date_from_timestamp --  Returns a variant date representation of a unix timestamp
variant_date_to_timestamp --  Converts a variant date/time value to unix timestamp
variant_div --  Returns the result from dividing two variants
variant_eqv --  Performs a bitwise equivalence on two variants
variant_fix --  Returns the integer portion ? of a variant
variant_get_type -- Returns the type of a variant object
variant_idiv --  Converts variants to integers and then returns the result from dividing them
variant_imp --  Performs a bitwise implication on two variants
variant_int --  Returns the integer portion of a variant
variant_mod --  Divides two variants and returns only the remainder
variant_mul --  multiplies the values of the two variants and returns the result
variant_neg --  Performs logical negation on a variant
variant_not --  Performs bitwise not negation on a variant
variant_or --  Performs a logical disjunction on two variants
variant_pow --  Returns the result of performing the power function with two variants
variant_round --  Rounds a variant to the specified number of decimal places
variant_set_type --  Convert a variant into another type. Variant is modified "in-place"
variant_set --  Assigns a new value for a variant object
variant_sub --  subtracts the value of the right variant from the left variant value and returns the result
variant_xor --  Performs a logical exclusion on two variants