Функции для отображения предварительных просмотров

Введение

В этой главе описываются функции для отображения предварительных просмотров, обработки событий в предварительных просмотрах и создания предварительных просмотров, которые предоставлены компонентами предварительного просмотра. Эти функции описаны с точки зрения Программы управления сжатием изображений, которая, наиболее вероятно, вызовет компоненты предварительного просмотра. При разработке компонента предварительного просмотра компонент должен вести себя, как описано здесь.

Обработка событий

PreviewEvent функция предоставлена так, чтобы Ваш компонент предварительного просмотра мог сделать стандартную фильтрацию событий.

Создание предварительных просмотров

Две функции доступны для использования в создании предварительных просмотров. PreviewMakePreview функция создает предварительные просмотры путем выделения дескриптора данным, которые будут добавлены к файлу. С другой стороны, PreviewMakePreviewReference функция делает предварительные просмотры путем возврата типа и идентификационного номера ресурса в файле, который будет использоваться в качестве предварительного просмотра для файла.

Ресурс предварительного просмотра

В этом разделе описываются ресурс предварительного просмотра, использующийся для хранения визуального предварительного просмотра и структуры элемента ресурса предварительного просмотра, которая является массивом, позволяющим Вам хранить дополнительную информацию предварительного просмотра.

Код дисплея предварительного просмотра предполагает, что ветвь данных файла отформатирована с помощью атомов QuickTime. См. фильм в формате QuickTime Основы для получения информации об основанном на атоме хранении.

Добавление предварительного просмотра приводит по крайней мере к двум атомам, добавляемым к файлу данных. Первый атом имеет a pnot тег. Его базовая структура совпадает с pnotResource структура.

struct PreviewResourceRecord {
    unsigned long       modDate;
    short               version;
    OSType              resType;
    short               resID;
};

Срок

Определение

modDate

Содержит время изменения (в стандартном формате Macintosh секунд с полуночи, 1 января 1904) файла, для которого создавался предварительный просмотр. Этот параметр позволяет Вам узнавать, устарел ли предварительный просмотр с содержанием файла.

version

Содержит номер версии ресурса предварительного просмотра. Младший бит версии является флагом для компонентов предварительного просмотра, только ссылающихся на их данные. Если бит установлен, он указывает, что ресурс, идентифицированный в ресурсе предварительного просмотра, не принадлежит компоненту предварительного просмотра, но является частью файла. Это не удалено, когда предварительный просмотр обновлен или удален (использование Программы управления сжатием изображений MakeFilePreview или AddFilePreview функция), как это было бы, если номер версии был 0.

resType

Идентифицирует тип компонента предварительного просмотра, используемого для отображения данных предварительного просмотра и типа атома, содержащего данные предварительного просмотра.

resID

Содержит индекс (на основе 1) из атома, который будет использоваться. Например, a resType из PICT и a resID из 2 говорит QuickTime использовать второй атом PICT в файле для данных предварительного просмотра.

Типы данных

Этот раздел определяет экземпляр компонента, используемый компонентами предварительного просмотра, и перечисляет структуры данных для ресурсов предварительного просмотра и структуры элемента ресурса предварительного просмотра. Посмотрите Ресурс Предварительного просмотра выше, включающий новое PreviewResourceRecord структура данных.

typedef ComponentInstance pnotComponent;
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;
 
typedef struct pnotResItem {
    unsigned long       modDate;    /* last modification date of item */
    OSType              useType;     /* what type of data */
    OSType              resType;    /* resource type containing item */
    short               resID;      /* resource ID containing this item */
    short               rgnCode;    /* region code */
    long                reserved;    /* set to 0 */
} pnotResItem; *pnotResItemPtr;

Константы

Этот раздел определяет константы, использующиеся для передачи с компонентами предварительного просмотра. Это прежде всего флаги, описывающие компонентные возможности предварительного просмотра и требования.

enum {
    pnotComponentWantsEvents    = 1, /* component requires events */
    pnotComponentNeedsNoCache   = 2  /* component does not require cache */
};
enum {
  kPreviewShowDataSelector             = 1, /* PreviewShowData */
  kPreviewMakePreviewSelector          = 2, /* PreviewMakePreview */
  kPreviewMakePreviewReferenceSelector = 3, /* PreviewMakePreviewReference */
  kPreviewEventSelector                = 4  /* PreviewEvent */
};
#define ShowFilePreviewComponentType 'pnot'     /* creates previews */
#define CreateFilePreviewComponentType 'pmak'   /* displays previews */