alla fine ci sono riuscito e vi spiego come cosi magari se qualcuno un giorno avrà il mio stesso problema magari capisce.
praticamente le variabili che devono essere passate e che dotnet vede come object e vb6 come variant devono effettivamente essere del tipo in cui vengono lavorate.
es.
nella funzione ho object Data.
la variabile che devo passare alla funzione deve essere non di tipo object ma del tipo in cui deve essere lavorata quindi in questo caso di tipo DATA.
inoltre per i parametri opzionali in dot net va passato questo :
System.Reflection.Missing.Value
mentre in vb6 si evita direttamente di scrivere il parametro

Rispondi quotando