¿Cómo crear un objeto COM en una aplicación para UWP? (C#)

Pregunta: ¿Cómo crear un objeto COM en una aplicación de la Plataforma universal de Windows (UWP)?

Motivación: Quiero cambiar de WPF a UWP. Dado que mi carga de trabajo requiere que las llamadas a bibliotecas de terceros sean accesibles solo a través de COM (que yo sepa), necesito hacer llamadas COM desde UWP.

Contexto:

C#.REDVisual Studio 2015Windows 10Idealmente dirigido a todos los dispositivos UWP, pero está bien si está restringido a computadoras de escritorio / portátiles.

Antecedentes

En Visual Studio 2013 (proyecto "Escritorio clásico" en Visual Studio 2015), usé el código C #

// Conceptual:
DotNetInterface comObjectInstance =
    (DotNetInterface)Microsoft.VisualBasic.Interaction.CreateObject(
        "this string specified the COM object type"
      );

// Example:  Open Excel via COM:
Excel.Application oApp = (Excel.Application)Interaction.CreateObject("Excel.Application");

El proyecto de Visual Studio requería una referencia aMicrosoft.VisualBasic usarInteraction.CreateObject() y la biblioteca de tipos del objeto COM.

Quiero usar este código C # en una aplicación Universal Windows Platform (UWP) producida por Visual Studio 2015 Enterprise en Windows 10 Education. Puedo agregar una referencia a la biblioteca de tipos del objeto COM, pero no puedo hacer referenciaMicrosoft.VisualBasic ya que no aparece en el Administrador de referencias de Visual Studio.

Pensamientos, soluciones probadas, especulaciones, etc.

Agregué una referencia a "Extensiones de escritorio de Windows para UWP" con la esperanza de que pueda habilitar las llamadas a las funciones normales de .NET, pero aún no he descubierto cómo usarlo.

Supongo que incluso si las aplicaciones UWP no pueden realizar llamadas COM, entonces al menos podríamos construir un contenedor que llame a un programa .NET normal (incluso a través de puertos de red) que a su vez podría ejecutar la llamada COM. Dado que es claramente posible evitarlo incluso en el peor de los casos, creo que debería haber (y probablemente lo sea) una solución proporcionada por Microsoft para hacer objetos COM. Pero supongo que dado que UWP es tan nuevo, la documentación en línea es bastante escasa y difícil de encontrar en este momento.

Actualización n. ° 1

Encontré un artículo de MSDN,Win32 y COM para aplicaciones de Windows Runtime y aplicaciones de la Plataforma universal de Windows (UWP), afirma que las aplicaciones WinRT (que incluyen aplicaciones UWP) solo pueden usar un subconjunto de objetos COM. MSDN sugiere usar un elemento COM API compatible o migrar desde una API COM no compatible a un reemplazo funcional.

Pude encontrar este artículo buscando en Google un error de tiempo de ejecución después de encontrar una manera de hacer una llamada COM a mi biblioteca de terceros. El error:

Se produjo una excepción del tipo 'System.Runtime.InteropServices.COMException' en mscorlib.ni.dll pero no se manejó en el código de usuario

Información adicional: La creación de una instancia del componente COM con CLSID {[editar: GUID eliminado]} usando CoCreateInstanceFromApp falló debido al siguiente error: 80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). Asegúrese de que su objeto COM esté en la lista permitida de CoCreateInstanceFromApp.

Todavía no estoy seguro de si hay una forma integrada de acceder a la API COM para mis bibliotecas de terceros. Si no lo hay, puede significar que tendré que hacer mi propio contenedor usando puertos de red o algo así, lo que parece incorrecto.

Respuestas a la pregunta(4)

Su respuesta a la pregunta