Objeto COM con arrays como parámetros

01/08/2005 - 12:59 por Jose | Informe spam
Hola a todos:
Tengo un proyecto en el que he añadido un objeto COM, del cual necesito
utilizar un método de este manera:
DAMSERVERLib.DAMClass.SearchNetworkInterface(ref System.Array ports , out
System.Array handles )
Se por un ejemplo que he visto en VB6 que los arrays que se le pasan son del
tipo long[].
El caso es que cuando se los paso obtengo un error
System.Runtime.InteropServices.SafeArrayTypeMismatchException.
¿Alguien me puede indicar como tengo que pasarle los arrays del tipo long al
metodo como ref o como out para que me funcione?

Saludos cordiales
 

Leer las respuestas

#1 Tristan
01/08/2005 - 13:32 | Informe spam
Por la pinta de la declaración del método, yo probaría algo como lo siguiente:

int[] ports = {1, 2, 3, 4, 5};
Array arrayPorts = (Array) ports;
Array arrayHandles;
metodo(ref arrayPorts, out arrayHandles);
int[] handles = (int[]) arrayHandles;
MessageBox.Show(handles[0].ToString());

private void SearchNetworkInterface(ref Array ports, out Array handles)
{
handles = new int[ports.Length];
handles.SetValue(1, 0);
}

Juan Carlos Badiola Saiz
MVP - C#

Preguntas similares