Учитывая UTI (унифицированный идентификатор типа), найдите все типы, которым он соответствует

Я пишу приложение, которое использует Uniform Type Identifiers . В частности, я вызываю UTTypeCreateAllIdentifiersForTag () и передаю ему различные типы MIME .

Я надеялся, что эта функция (в отличие от UTTypeCreatePreferredIdentifierForTag () ) предоставит мне наиболее конкретный UTI, а также все UTI, которым он соответствует. Похоже, что это не так - он либо возвращает один UTI, либо вторичные UTI являются ложными.

Существует функция UTTypeConformsTo () , определенная в том же файле заголовка, но я бы предпочел функцию, которая возвращает массив всех типов, которым соответствует этот UTI.

Кажется, Надеюсь на меня, поскольку MDItemCopyAttributeList () вернет такой список. Тем не менее, для этого требуется MDItemRef , который может быть создан либо из пути к файлу, либо из URL-адреса, что не очень хорошо. Иногда мои данные хранятся только в памяти, и у меня есть только MIME-тип.

Нужно ли мне перебирать всю базу данных UTI, чтобы получить эту информацию, или я что-то упускаю?

6
задан Peter Hosey 26 January 2012 в 04:59
поделиться