Quería llamar a la función GetIdsOfNames desde un objeto COM que implementa la interfaz IDispatch en C#. He escrito el siguiente código pero falla con DISP_E_UNKNOWNNAME. ¿Es este el enfoque correcto para hacer esto?Llamar a un miembro de la interfaz COM de IDispatch desde C#
Object so = Activator.CreateInstance(Type.GetTypeFromProgID("ProgID"));
Object[] args = new Object[5];
string[] rgsNames = new string[1];
rgsNames[0] = "PrintNormal";
uint LOCALE_SYSTEM_DEFAULT = 0x0800;
uint lcid = LOCALE_SYSTEM_DEFAULT;
int cNames = 1;
int[] rgDispId = new int[1];
args[0] = IntPtr.Zero;
args[1] = rgsNames;
args[2] = cNames;
args[3] = lcid;
args[4] = rgDispId;
Object result = so.GetType().InvokeMember("GetIDsOfNames", BindingFlags.InvokeMethod, null, so, args);
Gracias,
Richard
gracias. Eso es realmente muy útil. –