Expondo componentes .NET Compacta Framework para COM
Você pode expor componentes .NET Compacta Framework para código nativo, mas há diferenças nessa interoperabilidade quando comparada como o .NET Framework completo.
Expondo componentes gerenciados
Você pode fornecer componentes gerenciados .NET Compacta Framework para aplicativos nativos.O processo envolve as seguintes tarefas:
Crie seus tipos gerenciados considerando a programação COM.Por exemplo, não use tipos genéricos.
Defina a funcionalidade que desejar expor em uma interface gerenciada, e faça o seu objeto gerenciado implementar esta interface.É recomendado o seguinte:
Use os atributos GUID, InterfaceType, e ComVisible para a sua interface gerenciada.
Use o atributo ClassInterface(ClassInterfaceType.None) no seu objeto gerenciado.
Crie definições nativas de seus tipos gerenciado.
Passe o objeto gerenciado para código nativo como uma interface COM.Você pode, então, chamar funções gerenciadas implementadas pelo seu objeto gerenciado a partir do código nativo usando a interface COM.
Diferenças do .NET Compacta Framework
Para chamar funções .NET Compacta Framework gerenciadas a partir do código nativo, primeiro use o Runtime para empacotar uma interface gerenciada ou um delegado para código nativo.Isso significa sempre que você deve iniciar do código gerenciado (com um executável gerenciado) a fim de expor componentes gerenciados para código nativo.
Não há suporte para a seguinte interoperabilidade com código nativo no .NET Compacta Framework:
Uso de uma ferramenta de registro assembly, como o Regasm.exe, para clientes COM usarem um componente gerenciado como uma classe COM.
Ativação de tipos gerenciados a partir de COM.
Hospedagem do runtime do código nativo.
Hospedagem de controles ActiveX.O .NET Compact estrutura não dá suporte a AxHost classe e você não pode usar Microsoft Visual Studio 2005 e o designer para originar um controle ActiveX ao seu formulário gerenciado. Entretanto, dado o suporte COM interop no .NET Compacta Framework, existe a infraestrutura para criar seu próprio host contâiner ActiveX.
Inicialização COM para usar compartimentos de segmentação única.
Geração automática de interfaces de classes.Você deve empacotar a funcionalidade que deseja expor para código nativo em uma interface explícita.
Geração automática de GUIDs.Você deve fornecer para cada interface um GUID explícito a fim de expô-lo ao código nativo.
Atributos de tempo de design para componentes gerenciados expostos
Você pode fornecer atributos de tempo de design para exposição de componentes gerenciados para COM.O .NET Compacta Framework oferece suporte a um subconjunto dos atributos disponíveis no .NET Framework completo, incluindo os seguintes: