我想從實現IDispatch接口的COM對象中調用GetIdsOfNames函數。我寫了下面的代碼,但是它失敗了,並且DISP_E_UNKNOWNNAME。這是做這件事的正確方法嗎?調用C#中IDispatch COM接口的成員#
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);
感謝,
理查德
謝謝。這真的很有幫助。 –