<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.utilspec.windows.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'book.com.php',
    1 => 'COM',
    2 => 'COM および .Net (Windows)',
  ),
  'up' => 
  array (
    0 => 'refs.utilspec.windows.php',
    1 => 'Windows 用のモジュール',
  ),
  'prev' => 
  array (
    0 => 'refs.utilspec.windows.php',
    1 => 'Windows 用のモジュール',
  ),
  'next' => 
  array (
    0 => 'com.setup.php',
    1 => 'インストール/設定',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/com/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.com.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.com" class="book">
 
 <h1 class="title">COM および .Net (Windows)</h1>
 

 
 <div id="intro.com" class="preface">
  <h1 class="title">はじめに</h1>
  <p class="para">
   COM は <code class="literal">Component Object Model</code> の略語であり、
   DCE RPC (オープンスタンダード) の最上位のオブジェクト指向レイヤーです。
   COM はコール手順を共通化し、あらゆる言語でコードを記述し、
   (COM に対応した)他の言語で書かれたコードをコール、相互運用することを可能にします。
   あらゆる言語で書くことを可能にするだけではなく、
   同じ実行形式の一部となることすら不要です。
   コードは、同じマシンで実行される他のプロセスのコードである DLL からロードしたり、
   または、リモートマシン上の他のプロセスにあるコードを DCOM (分散 COM) で
   利用することができます。
   この場合、コードの中では、コンポーネントの存在する場所を意識する必要はありません。
  </p>
  <p class="para">
   OLE オートメーションと呼ばれる COM のサブセットがあります。
   これは、COM オブジェクトに疎な結合を行うことができる COM インターフェイスを
   提供します。これにより、コンパイル時にオブジェクトの動作を知ることなく、
   実行時にコールを行うことができるようになります。
   PHP COM 拡張モジュールは、OLE オートメーションを使用して
   スクリプトから互換性のあるオブジェクトを作成/コールすることができます。
   技術的に述べると、
   全ての COM オブジェクトが OLE 互換であるというわけではないため、
   実際には、この拡張モジュールは &quot;<code class="literal">PHP の OLE オートメーション
   拡張モジュール</code>&quot; と呼ばれるべきものです。
  </p>
  <p class="para">
   ところで、なぜ COM を使用する必要があるのでしょう? COM は、
   Windows 環境でアプリケーションとコンポーネントを結び付ける代表的な手法の一つで、
   COM を使用して Microsoft Word を起動し、
   ドキュメントテンプレートを埋めて、Word 文書として結果を保存し、Web サイトの
   訪問者に送信することができます。
   また COM を使用して、ネットワークの管理タスクを処理したり
   IIS を設定したりすることができます。これらは最も一般的な使用法にすぎません。
   COM でできることはまだまだたくさんあります。
  </p>
  <p class="para">
   さらに Microsoft により提供された
   COM との相互運用レイヤーを用いて
   .Net アセンブリのインスタンス化と生成をサポートしました。
  </p>
 </div>
 

 









 







 








 








 






 






 






 





 





 





 












<ul class="chunklist chunklist_book"><li><a href="com.setup.php">インストール/設定</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="com.requirements.php">要件</a></li><li><a href="com.installation.php">インストール手順</a></li><li><a href="com.configuration.php">実行時設定</a></li></ul></li><li><a href="com.constants.php">定義済み定数</a></li><li><a href="com.error-handling.php">エラーおよびエラー処理</a></li><li><a href="com.examples.php">例</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="com.examples.foreach.php">For Each</a></li><li><a href="com.examples.arrays.php">配列と配列形式の COM プロパティ</a></li></ul></li><li><a href="class.com.php">com</a> — com クラス<ul class="chunklist chunklist_book chunklist_children"><li><a href="com.construct.php">com::__construct</a> — com クラスのコンストラクタ</li></ul></li><li><a href="class.dotnet.php">dotnet</a> — dotnet クラス<ul class="chunklist chunklist_book chunklist_children"><li><a href="dotnet.construct.php">dotnet::__construct</a> — dotnet クラスのコンストラクタ</li></ul></li><li><a href="class.variant.php">variant</a> — variant クラス<ul class="chunklist chunklist_book chunklist_children"><li><a href="variant.construct.php">variant::__construct</a> — variant クラスのコンストラクタ</li></ul></li><li><a href="class.compersisthelper.php">COMPersistHelper</a> — COMPersistHelper クラス<ul class="chunklist chunklist_book chunklist_children"><li><a href="compersisthelper.construct.php">COMPersistHelper::__construct</a> — COMPersistHelper オブジェクトを構築する</li><li><a href="compersisthelper.getcurfilename.php">COMPersistHelper::GetCurFileName</a> — 現在のファイル名を取得する</li><li><a href="compersisthelper.getmaxstreamsize.php">COMPersistHelper::GetMaxStreamSize</a> — ストリームのサイズの最大値を取得する</li><li><a href="compersisthelper.initnew.php">COMPersistHelper::InitNew</a> — オブジェクトをデフォルトの状態に初期化する</li><li><a href="compersisthelper.loadfromfile.php">COMPersistHelper::LoadFromFile</a> — オブジェクトをファイルから読み込む</li><li><a href="compersisthelper.loadfromstream.php">COMPersistHelper::LoadFromStream</a> — ストリームからオブジェクトを読み込む</li><li><a href="compersisthelper.savetofile.php">COMPersistHelper::SaveToFile</a> — オブジェクトをファイルに保存する</li><li><a href="compersisthelper.savetostream.php">COMPersistHelper::SaveToStream</a> — オブジェクトをストリームに保存する</li></ul></li><li><a href="class.com-exception.php">com_exception</a> — com_exception クラス</li><li><a href="class.com-safearray-proxy.php">com_safearray_proxy</a> — com_safearray_proxy クラス</li><li><a href="ref.com.php">COM関数</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.com-create-guid.php">com_create_guid</a> — グローバルユニーク ID (GUID) を生成する</li><li><a href="function.com-event-sink.php">com_event_sink</a> — COM オブジェクトのイベントを PHP オブジェクトに接続する</li><li><a href="function.com-get-active-object.php">com_get_active_object</a> — すでに実行中の COM オブジェクトのインスタンスへのハンドルを返す</li><li><a href="function.com-load-typelib.php">com_load_typelib</a> — タイプライブラリを読み込む</li><li><a href="function.com-message-pump.php">com_message_pump</a> — COM メッセージを処理し、timeoutms ミリ秒の間待つ</li><li><a href="function.com-print-typeinfo.php">com_print_typeinfo</a> — ディスパッチインターフェイスのために、PHP のクラス定義を出力する</li><li><a href="function.variant-abs.php">variant_abs</a> — variant の絶対値を返す</li><li><a href="function.variant-add.php">variant_add</a> — 2 つの variant 値を「加算」し、結果を返す</li><li><a href="function.variant-and.php">variant_and</a> — 2 つの variant の論理積を計算し、結果を返す</li><li><a href="function.variant-cast.php">variant_cast</a> — variant を、別の型の新しい variant に変換する</li><li><a href="function.variant-cat.php">variant_cat</a> — 2 つの variant 値を連結し、その結果を返す</li><li><a href="function.variant-cmp.php">variant_cmp</a> — 2 つの variant を比較する</li><li><a href="function.variant-date-from-timestamp.php">variant_date_from_timestamp</a> — Unix タイムスタンプを、日付形式の variant で返す</li><li><a href="function.variant-date-to-timestamp.php">variant_date_to_timestamp</a> — 日付/時刻の variant 値を Unix タイムスタンプに変換する</li><li><a href="function.variant-div.php">variant_div</a> — 2 つの variant の除算結果を返す</li><li><a href="function.variant-eqv.php">variant_eqv</a> — 2 つの variant のビット値が等しいかどうかを調べる</li><li><a href="function.variant-fix.php">variant_fix</a> — variant の整数部を返す</li><li><a href="function.variant-get-type.php">variant_get_type</a> — variant オブジェクトの型を返す</li><li><a href="function.variant-idiv.php">variant_idiv</a> — variants を整数に変換し、除算の結果を返す</li><li><a href="function.variant-imp.php">variant_imp</a> — 2 つの variant のビット implication を行う</li><li><a href="function.variant-int.php">variant_int</a> — variant の整数部を返す</li><li><a href="function.variant-mod.php">variant_mod</a> — 2 つの variant の除算を行い、剰余を返す</li><li><a href="function.variant-mul.php">variant_mul</a> — 2 つの variant の乗算を行い、その結果を返す</li><li><a href="function.variant-neg.php">variant_neg</a> — variant の論理否定演算を行う</li><li><a href="function.variant-not.php">variant_not</a> — variant のビット否定演算を行う</li><li><a href="function.variant-or.php">variant_or</a> — 2 つの variant の論理和を計算する</li><li><a href="function.variant-pow.php">variant_pow</a> — 2 つの variant の累乗計算を行い、その結果を返す</li><li><a href="function.variant-round.php">variant_round</a> — 指定した桁で variant を丸める</li><li><a href="function.variant-set.php">variant_set</a> — variant オブジェクトに新しい値を代入する</li><li><a href="function.variant-set-type.php">variant_set_type</a> — variant を「その場で」別の型に変換する</li><li><a href="function.variant-sub.php">variant_sub</a> — 左の variant から右の variant を引き、その結果を返す</li><li><a href="function.variant-xor.php">variant_xor</a> — 2 つの variant の排他的論理和を計算する</li></ul></li></ul></div><?php manual_footer($setup); ?>