РЕДАКТИРОВАТЬ : После более глубокого исследования я обнаружил следующее (выдержка из документации):
Документ: Руководство по Photoshop API.Аргумент: Обратные вызовы.
Процедуры обратного вызова организованы в наборы «наборов» связанных подпрограмм, которые реализуют определенную функциональность.
Наборы описываются указателем назапись, содержащая:
- 2-байтовый номер версии для набора,
- 2-байтовый счетчик количества подпрограмм в наборе,
- серия функцийуказатели для подпрограмм обратного вызова.
Вас интересует Property suite .
Текущая версия: 1;Adobe Photoshop: 5,0;Подпрограммы: 2.
Свойства идентифицируются подписью и ключом, которые образуют пару для идентификации интересующего свойства.
Подпись Adobe Photoshop всегда '8BIM' (0x3842494D).
Свойство EXIF контролируется Японской ассоциацией развития электронной промышленности (JEIDA) и Японской ассоциацией электронной промышленности (EIAJ), которые объединились в Novemeber 2000 года. Спецификацию EXIF можно загрузить с их веб-сайта.сайт в следующем месте.
http://it.jeita.or.jp/jhistory/document/standard/exif_eng/jeida49eng.htm
GetPropertyProc( )
MACPASCAL OSErr (*GetPropertyProc) (OSType signature, OSType key, int32 index, int32 * simpleProperty, Handle * complexProperty);
Эта подпрограмма позволяет получить информацию о документе, который обрабатывается в настоящее время.
property name: propEXIFData
id:EXIF
type:complex (modifiable)
description:Camera and device data.
Напомним, Iнапишу какой-нибудь сочный код:
GetPropertyProc getProperty = formatParamBlock->propertyProcs->getPropertyProc;
rc = getProperty(0x3842494D, propEXIFData, 0, &simpProp, &compProp);
if ( rc )
return;
GetPIHandleSizeProc getSize = formatParamBlock->handleProcs->getSizeProc;
int32 size = getSize(compProp);
if ( !size )
return;
LockPIHandleProc lock = formatParamBlock->handleProcs->lockProc;
uint8* exif = (uint8 *)lock(compProp, false);
if ( !exif )
return;