Выполняет поиск описания типа в библиотеке. Можно использовать для быстрой проверки присутствия данного имени в библиотеке.
HRESULT FindName ( OLECHAR FAR* szNameBuf, unsigned long IHashVal, ITypelnfo FAR* FAR* ppTInfo, MEMBERID FAR* rgMemld, unsigned int FAR* pcFound );
Параметры:
szNameBuf
Имя, по которому выполняется поиск.
IHashVal
Хэш-значение для ускорения поиска, вычисленное с помощью функции LHashValOfNameSys. Если параметр равен 0, то хэш-значение будет вычисляться автоматически.
ppTInfo
После возврата — массив указателей на описания типов, содержащих заданное имя. Не может быть NULL.
rgMemld
Массив MEMBERID для найденных элементов; rgMemId[i] — это MEMBERID, соответствующий описанию типа, которое задает ppTInfo[i]. He может быть NULL.
pcFound
На входе задает число экземпляров, которые нужно отыскать. Например, для поиска первого вхождения имени можно задать *pcFound = 1. После того, как найдено заданное число вхождений, поиск прекращается.
На выходе указывает число найденных экземпляров. Если значение *pcFound на входе и выходе одинаково, то в библиотеке могут быть и другие описания, содержащие данное имя.
Коды возврата:
Из возвращенного HRESULT получают один из следующих кодов возврата:
Код возврата | Значение |
---|---|
S_OK | Успех. |
E_OUTOFMEMORY | He хватает памяти. |
E_INVALIDARG | Один или несколько аргументов неверны. |
TYPE_E_IOERROR | Функция не может выполнить запись в файл. |
TYPE_E_INVDATAREAD | Функция не может читать из файла. |
TYPE_E_UNSUPFORMAT | Библиотека типа имеет старый формат. |
TYPE_E_INVALIDSTATE | He удается открыть библиотеку типа. |
TYPE_E_CANTLOADLIBRARY | He удается загрузить файл библиотеки или .dll. |
TYPE_E_ELEMENTNOTFOUND | Элемент не найден. |
Комментарии:
Задание *pcFound = n указывает, что в массивах ppTInfo и rgMemld достаточно места для n пар (ptinfo, memid). Если имя в szNameBuf — это имя информации о типе в ppTInfo[i], то в rgMemId[i] возвращается MEMBERID_NIL.