STDMETHODIMP ScriptObject::GetIDsOfNames(REFIID riid, OLECHAR **rgszNames, UINT cNames, LCID lcid, DISPID *rgDispID) { //USES_CONVERSION; for (UINT n = 0; n < cNames; n++) { StringW strName = rgszNames[n]; List<SCRIPT_OBJECT_METHOD_TABLE>::Iterator iter = _methodTable.GetHeadPosition(); while (_methodTable.iteratorValid(iter)) { if (strName.Compare(iter->name) == 0) { rgDispID[n] = iter->dispid; break; } iter++; } if (!_methodTable.iteratorValid(iter)) return E_UNEXPECTED; } return S_OK; }