Expondo COM para componentes .NET Compact Framework
Iniciando com o .NET Compact Framework versão 2.0, você pode chamar objetos COM a partir do código gerenciado.Você também pode importar uma biblioteca de tipos com o Tipo Biblioteca Importer (Tlbimp.exe) fornecida pelo .NET estrutura completo, ou no Visual Studio que você pode adicionar uma referência a biblioteca de tipos para seu projeto. Uma biblioteca de tipos importada é também conhecida como um assembly de interoperabilidade porque ela contém definições de tipos COM descritos em metadados.
Se a memória no código nativo que foi originalmente alocado no código gerenciado permanece armazenada por uma biblioteca de códigos nativos depois que a chamada a função nativa retorna, o objeto de biblioteca nativa deve ser fixado no código gerenciado para que o coletor de lixo não o mova ou colete.Você pode usar o GCHandle estrutura para fixar o objeto.
Código gerenciado deve ser responsável pelo alinhamento de tipos de dados de acordo com os limites de byte adequados, conhecido como o processo de compactação, especificado para o sistema operacional nativo.
Existem três tarefas para chamada de objetos COM do .NET Compact Framework:
Crie definições gerenciadas de suas interfaces e tipos COM.
Referencie essas definições no seu projeto.
Use suas tipos e interfaces COM como tipos gerenciados.
Você também pode codificar manualmente as definições gerenciadas.
Referenciando Assemblies de interoperabilidade
Assemblies de interoperabilidade são bibliotecas de tipos importadas que contêm definições de tipos COM descritos em metadados gerados pelo Importador de Biblioteca de Tipos ou Visual Studio.
Para fazer referência ao assembly de interoperabilidade ao criar projetos, use o /r: comutador com compiladores de linha de comando. Isso é feito para você quando você adiciona uma referência a uma biblioteca de tipos no Visual Studio.
Usando tipos COM como tipos gerenciados
Membros da interface padrão são adicionados à classe durante a importação.The IDispatch vs. IUnknown chamar, QueryInterface, e contagem de referência COM são manipulados automaticamente. Valores de falha HRESULT são mapeados automaticamente para exceções.
Após importar um tipo COM, você poderá usá-lo como qualquer outro tipo gerenciado em tarefas de programação como a seguinte:
Criar instâncias com a new (palavra-chaveNew no Visual Basic).
Capturar exceções.
Chamar diretamente através da classe.
Evitar escolher entre IDispatch vs. IUnknown-chamadas de estilo.
Difundir para interfaces específicas conforme necessário.