<?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 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'book.com.php',
    1 => 'COM',
    2 => 'COM e .Net (Windows)',
  ),
  'up' => 
  array (
    0 => 'refs.utilspec.windows.php',
    1 => 'Extens&otilde;es Somente para Windows',
  ),
  'prev' => 
  array (
    0 => 'refs.utilspec.windows.php',
    1 => 'Extens&otilde;es Somente para Windows',
  ),
  'next' => 
  array (
    0 => 'com.setup.php',
    1 => 'Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    '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 e .Net (Windows)</h1>
 

 
 <div id="intro.com" class="preface">
  <h1 class="title">Introdução</h1>
  <p class="para">
   COM é um acrônimo para <code class="literal">Component Object Model</code>; é uma camada orientada a
   objeto (e serviços associados) sobre DCE RPC (um padrão aberto) e
   define uma convenção de chamada comum que permite que código escrito em qualquer
   linguagem chame e interopere com código escrito em qualquer outra linguagem
   (desde que essas linguagens reconheçam o COM). O código não apenas pode ser
   escrito em qualquer linguagem, mas nem precisa fazer parte do mesmo
   executável; o código pode ser carregado a partir de uma DLL, ser encontrado em outro
   processo rodando na mesma máquina, ou, com DCOM (COM Distribuído), ser
   encontrado em outro processo em uma máquina remota, tudo sem que o código
   precise saber onde um componente reside.
  </p>
  <p class="para">
   Existe um subconjunto do COM conhecido como Automação OLE que compreende um conjunto de
   interfaces COM que permitem ligações flexíveis a objetos COM, para que possam
   ser introspectados e chamados em tempo de execução sem conhecimento em tempo de compilação de
   como o objeto funciona. A extensão COM do PHP utiliza interfaces de
   automação OLE para permitir que sejam criados e chamados objetos compatíveis
   a partir de scripts. Tecnicamente falando, isso deveria ser chamado de
   &quot;<code class="literal">OLE Automation Extension for PHP</code>&quot; (Extensão de Automação OLE para PHP), já que nem todos os objetos COM são
   compatíveis com OLE.
  </p>
  <p class="para">
   Agora, por que O COM seria ou deveria ser usado? COM é uma das principais formas de unir
   aplicativos e componentes na plataforma Windows; usando COM
   pode-se iniciar o Microsoft Word, preencher um modelo de documento e salvar o
   resultado como um documento Word e enviá-lo a um visitante do site. Pode-se
   também pode usar o COM para executar tarefas administrativas na rede e
   configurar o IIS; estes são apenas os usos mais comuns; pode-se fazer muito
   mais com o COM.
  </p>
  <p class="para">
   Além disso, a extensão oferece suporte à instanciação e criação
   montagens .Net usando a camada de interoperabilidade COM fornecida pela
   Microsoft.
  </p>
 </div>
 

 







 




 






 






 





 




 




 




 




 



 








<ul class="chunklist chunklist_book"><li><a href="com.setup.php">Instala&ccedil;&atilde;o/Configura&ccedil;&atilde;o</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="com.requirements.php">Depend&ecirc;ncias</a></li><li><a href="com.installation.php">Instala&ccedil;&atilde;o</a></li><li><a href="com.configuration.php">Configura&ccedil;&otilde;es em Execu&ccedil;&atilde;o</a></li></ul></li><li><a href="com.constants.php">Constantes predefinidas</a></li><li><a href="com.error-handling.php">Erros e tratamento de erros</a></li><li><a href="com.examples.php">Exemplos</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">Arrays e propriedades COM no estilo Array</a></li></ul></li><li><a href="class.com.php">com</a> — A classe com<ul class="chunklist chunklist_book chunklist_children"><li><a href="com.construct.php">com::__construct</a> — Construtor da classe com</li></ul></li><li><a href="class.dotnet.php">dotnet</a> — A classe dotnet<ul class="chunklist chunklist_book chunklist_children"><li><a href="dotnet.construct.php">dotnet::__construct</a> — Construtor da classe dotnet</li></ul></li><li><a href="class.variant.php">variant</a> — Classe variant<ul class="chunklist chunklist_book chunklist_children"><li><a href="variant.construct.php">variant::__construct</a> — Construtor da classe variant</li></ul></li><li><a href="class.compersisthelper.php">COMPersistHelper</a> — A classe COMPersistHelper<ul class="chunklist chunklist_book chunklist_children"><li><a href="compersisthelper.construct.php">COMPersistHelper::__construct</a> — Constr&oacute;i um objeto COMPersistHelper</li><li><a href="compersisthelper.getcurfilename.php">COMPersistHelper::GetCurFileName</a> — Obt&eacute;m o nome do arquivo atual</li><li><a href="compersisthelper.getmaxstreamsize.php">COMPersistHelper::GetMaxStreamSize</a> — Obt&eacute;m o tamanho m&aacute;ximo do fluxo</li><li><a href="compersisthelper.initnew.php">COMPersistHelper::InitNew</a> — Inicializa o objeto no estado padr&atilde;o</li><li><a href="compersisthelper.loadfromfile.php">COMPersistHelper::LoadFromFile</a> — Carrega objeto de um arquivo</li><li><a href="compersisthelper.loadfromstream.php">COMPersistHelper::LoadFromStream</a> — Carrega objeto a partir de um fluxo</li><li><a href="compersisthelper.savetofile.php">COMPersistHelper::SaveToFile</a> — Grava o objeto em um arquivo</li><li><a href="compersisthelper.savetostream.php">COMPersistHelper::SaveToStream</a> — Grava o objeto no fluxo</li></ul></li><li><a href="class.com-exception.php">com_exception</a> — A classe com_exception</li><li><a href="class.com-safearray-proxy.php">com_safearray_proxy</a> — A classe com_safearray_proxy</li><li><a href="ref.com.php">Fun&ccedil;&otilde;es de COM</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.com-create-guid.php">com_create_guid</a> — Gera um identificador &uacute;nico global (GUID)</li><li><a href="function.com-event-sink.php">com_event_sink</a> — Conecta eventos de um objeto COM a um objeto PHP</li><li><a href="function.com-get-active-object.php">com_get_active_object</a> — Retorna um identificador para uma inst&acirc;ncia j&aacute; em execu&ccedil;&atilde;o de um objeto COM</li><li><a href="function.com-load-typelib.php">com_load_typelib</a> — Carrega uma biblioteca de tipos</li><li><a href="function.com-message-pump.php">com_message_pump</a> — Processa mensagens COM, aguardando por um tempo limite</li><li><a href="function.com-print-typeinfo.php">com_print_typeinfo</a> — Mostra uma defini&ccedil;&atilde;o de classe PHP para uma interface despach&aacute;vel</li><li><a href="function.variant-abs.php">variant_abs</a> — Retorna o valor absoluto de uma variante</li><li><a href="function.variant-add.php">variant_add</a> — &quot;Adiciona&quot; dois valores de variante e retorna o resultado</li><li><a href="function.variant-and.php">variant_and</a> — Executa uma opera&ccedil;&atilde;o AND bin&aacute;ria entre duas variantes</li><li><a href="function.variant-cast.php">variant_cast</a> — Converter uma variante em um novo objeto variante de outro tipo</li><li><a href="function.variant-cat.php">variant_cat</a> — Concatena dois valores de variantes e retorna o resultado</li><li><a href="function.variant-cmp.php">variant_cmp</a> — Compara duas variantes</li><li><a href="function.variant-date-from-timestamp.php">variant_date_from_timestamp</a> — Retorna uma representa&ccedil;&atilde;o de data em variante de um timestamp Unix</li><li><a href="function.variant-date-to-timestamp.php">variant_date_to_timestamp</a> — Converte um valor de variante de data/hor&aacute;rio em um timestamp Unix</li><li><a href="function.variant-div.php">variant_div</a> — Retorna o resultado da divis&atilde;o de duas variantes</li><li><a href="function.variant-eqv.php">variant_eqv</a> — Realiza uma equival&ecirc;ncia bin&aacute;ria entre duas variantes</li><li><a href="function.variant-fix.php">variant_fix</a> — Retorna a por&ccedil;&atilde;o inteira de uma variante</li><li><a href="function.variant-get-type.php">variant_get_type</a> — Retorna o tipo de um objeto de variante</li><li><a href="function.variant-idiv.php">variant_idiv</a> — Converte variantes para inteiros e retorna o resultado da divis&atilde;o deles</li><li><a href="function.variant-imp.php">variant_imp</a> — Realiza uma implica&ccedil;&atilde;o bin&aacute;ria entre duas variantes</li><li><a href="function.variant-int.php">variant_int</a> — Retorna a por&ccedil;&atilde;o inteira de uma variante</li><li><a href="function.variant-mod.php">variant_mod</a> — Divide duas variantes e retorna apenas o resto</li><li><a href="function.variant-mul.php">variant_mul</a> — Multiplica os valores de duas variantes</li><li><a href="function.variant-neg.php">variant_neg</a> — Realiza uma nega&ccedil;&atilde;o l&oacute;gica em uma variante</li><li><a href="function.variant-not.php">variant_not</a> — Realiza uma nega&ccedil;&atilde;o bit a bit em uma variante</li><li><a href="function.variant-or.php">variant_or</a> — Realiza&ccedil;&atilde;o uma disjun&ccedil;&atilde;o l&oacute;gica de duas variantes</li><li><a href="function.variant-pow.php">variant_pow</a> — Retorna o resultado da fun&ccedil;&atilde;o de pot&ecirc;ncia com duas variantes</li><li><a href="function.variant-round.php">variant_round</a> — Arredonda uma variante para o n&uacute;mero de casas decimais especificado</li><li><a href="function.variant-set.php">variant_set</a> — Atribui um novo valor para um objeto de variante</li><li><a href="function.variant-set-type.php">variant_set_type</a> — Converte uma variante em outro tipo &quot;in loco&quot;</li><li><a href="function.variant-sub.php">variant_sub</a> — Subtrai o valor da variante da direita do valor da variante da esquerda</li><li><a href="function.variant-xor.php">variant_xor</a> — Realiza uma exclus&atilde;o l&oacute;gica em duas variantes</li></ul></li></ul></div><?php manual_footer($setup); ?>