I wanted to call the GetIdsOfNames function from a COM object that implements the IDispatch interface in c#. I\'ve written the following code but it fails with the DISP_E_UN
No you cannot, because InvokeMember internally uses GetIDsOfNames, and this one only checks actual methods, not the first 6 in IDispatch. Or in other words, GetIDsOfNames cannot be invoked using IDispatch's method Invoke. That is how COM works.