Компоненты предварительного просмотра
В этой главе описываются то, что компоненты предварительного просмотра и что они делают.
Компоненты предварительного просмотра предоставляют две базовых услуги: они рисуют и создают предварительные просмотры. В этом разделе описывается компоненты предварительного просмотра получают данные предварительного просмотра, какая информация хранится с файлом, и что они делают с данными предварительного просмотра.
Получение данных предварительного просмотра
Компоненты предварительного просмотра получают данные из
маленький кэш данных
ссылка они создают к другому ресурсу в файле
файл, для которого они вызываются
Компонент предварительного просмотра может создать маленький кэш данных, содержащий предварительный просмотр. Несмотря на то, что создание кэша предварительного просмотра может быть длительным, кэш может тогда быть сохранен в файле и использоваться для отображения предварительного просмотра для файла быстро в последующих случаях. Компонент предварительного просмотра файла изображения, создающий изображение миниатюр для файла и хранящий его в ветви ресурсов файла, является одним способом получить информацию от кэша данных.
Компонент предварительного просмотра может создать ссылку на другой ресурс в файле. Например, некоторые типы файлов уже содержат предварительный просмотр изображения в них. Компонент предварительного просмотра может тогда создать указатель на те существующие данные, вместо того, чтобы делать другую копию из него. Когда предварительный просмотр для фильма является фактически предварительным просмотром фильма, а не только его изображением плаката, компонент предварительного просмотра фильма работает таким образом.
Если компонент предварительного просмотра может вывести на экран предварительный просмотр для файла достаточно быстро в каждом случае, нет никакой потребности в кэше. Такой компонент предварительного просмотра дает иное толкование данным в файле каждый раз, когда это вызывается, вместо того, чтобы создать кэш предварительного просмотра один раз. Этот метод получения информации позволяет файлу оставаться нетронутым, не требует никакого дискового пространства и не требует, чтобы пользователь или приложение приложили любое специальное усилие для создания предварительного просмотра. К сожалению, в большинстве случаев, не возможно интерпретировать данные достаточно быстро для использования этого подхода. Компоненты предварительного просмотра, обрабатывающие этот тип предварительного просмотра, должны установить pnotComponentNeedsNoCache флаг в их компоненте отмечает поле.
enum { |
pnotComponentNeedsNoCache = 2 |
}; |
Если компонент предварительного просмотра полагается на другие службы системного программного обеспечения, он должен удостовериться, что они присутствуют. Например, если Ваш компонент предварительного просмотра использует Панель инструментов Фильма, это ответственно за вызов Панели инструментов Фильма EnterMovies и ExitMovies функции.
Когда предварительный просмотр завершен, компонент получает нормальный Менеджер компонентов близкий запрос. Если Вы добавляете какие-либо средства управления к окну, необходимо избавиться от них при вызове Менеджера компонентов CloseComponent функция.
Компонент предварительного просмотра никогда не должен записывать обратно к файлу непосредственно. Вызывающая сторона компонента предварительного просмотра ответственна за то, что фактически изменила файл. Необходимо открыть все пути доступа для файла с разрешением чтения только.
Рисунок 4-1 иллюстрирует отношения компонента предварительного просмотра, Программы управления сжатием изображений и приложения.

Храня данные предварительного просмотра в файлах
Предварительный просмотр может или может не содержать звук или текстовые данные или другие типы информации. В дополнение к визуальному предварительному просмотру QuickTime обеспечивает ресурс предварительного просмотра, описанный на Ресурсе Предварительного просмотра, также позволяющем Вам хранить
краткое описание файла
список ключевых слов
связанный язык кодирует для разрешения использования единственного файла больше чем в одной области
дата модификации, чтобы помочь приложениям определить, когда были изменены данные
Ресурс предварительного просмотра
QuickTime использует ресурс предварительного просмотра (определенный pnotResource тип данных) с ресурсом ID 0, чтобы хранить визуальную информацию предварительного просмотра. Структура ресурса предварительного просмотра показана в Перечислении 4-1.
Перечисление 4-1 ресурс предварительного просмотра
typedef struct pnotResource { |
unsigned long modDate; /* modification date */ |
short version; /* version number of preview resource */ |
OSType resType; /* type of resource used as preview cache */ |
short resID; /* resource identification number |
of resource used as preview cache */ |
short numResItems; /* number of additional file |
descriptions */ |
pnotResItem resItem[ ]; /* array of file descriptions */ |
} pnotResource; |
Поле |
Описание |
|---|---|
|
Содержит время изменения (в стандартном Macintosh секунды с полуночи, 1 января 1904) файла, для которого создавался предварительный просмотр. Этот параметр позволяет Вам узнавать, устарел ли предварительный просмотр с содержанием файла. |
|
Содержит номер версии ресурса предварительного просмотра. Младший бит версии является флагом для компонентов предварительного просмотра, только ссылающихся на их данные. Если бит установлен, он указывает, что ресурс, идентифицированный в ресурсе предварительного просмотра, не принадлежит компоненту предварительного просмотра, но является частью файла. Это не удалено, когда предварительный просмотр обновлен или удален (использование Программы управления сжатием изображений |
|
Содержит тип ресурса, используемого в качестве кэша предварительного просмотра для данного файла. Тип ресурса определяет подтип компонента предварительного просмотра, который должен использоваться для отображения предварительного просмотра. |
|
Содержит идентификационный номер ресурса, используемого в качестве кэша предварительного просмотра для указанного файла. |
|
Указывает число дополнительных описаний файлов, сохраненных этим предварительным просмотром. |
|
Содержит структуру элемента ресурса предварительного просмотра (определенный |
Используя данные предварительного просмотра
Компоненты предварительного просмотра могут
создайте предварительный просмотр
нарисуйте предварительный просмотр
создайте и нарисуйте предварительный просмотр
Некоторые компоненты предварительного просмотра только создают предварительный просмотр и полагаются на другой компонент для отображения его. Например, по умолчанию, компонент предварительного просмотра фильма создает предварительный просмотр изображения для файла. Это выведено на экран компонентом предварительного просмотра изображения.
Большинство компонентов предварительного просмотра просто рисует предварительный просмотр. Это самый простой тип компонентов дисплея. Они не требуют, чтобы любая другая обработка событий (включая планирование времени простоя) проигрывала фильм. Компонент предварительного просмотра изображения является примером этого типа компонента.
Компоненты предварительного просмотра, не требующие кэша, должны иметь подтип, соответствующий тип файла, для которого они могут вывести на экран предварительные просмотры.
Компонент предварительного просмотра для звука потребовал бы обработки событий, так как будет требоваться время для игры звука. Если Ваш компонент предварительного просмотра требует обработки событий, Вы должны иметь pnotComponentWantsEvents флаг, установленный в его компоненте, отмечает поле.
enum { |
pnotComponentWantsEvents = 1, |
}; |