QueryArchiveStruct

Структура QueryArchiveStruct является параметром вызова функции ModuleEntry с идентификатором FID_QUERYARCHIVE и служит для передачи параметров обрабатывающей запрос функции и для возврата сведений о форматах, под который подпадает указанный файл.
			
	struct QueryArchiveStruct {
		DWORD dwStructVersion;

		GUID uidFormat;
		GUID uidPlugin;

		const TCHAR *lpFileName;

		const unsigned char *pBuffer;
		DWORD dwBufferSize;

		DWORD dwFlags;

		bool bResult;
	};
			
		

Элементы

dwStructVersion
Версия структуры QueryArchiveStruct. В настоящее время поле не используется.
uidFormat
Уникальный идентификатор формата. [in] Если в поле dwFlags указаны флаги QUERY_FLAG_PLUGIN_UID_READY и QUERY_FLAG_FORMAT_UID_READY, то при вызове функции это поле содержит уникальный идентификатор формата, а модуль должен только подтвердить, что файл с указанными параметрами действительно имеет данный формат. [out] По заверешнии работы функции это поле должно содержать уникальный идентификатор формата, которому соотвествует указанный файл.
uidPlugin
Уникальный идентификатор плагина. [in] Если в поле dwFlags указан флаг QUERY_FLAG_PLUGIN_UID_READY, то при вызове функции это поле содержит уникальный идентификатор плагина (в рамках данного модуля), а модулю необходимо осуществлять поиск форматов только в рамках указанного плагина. [out] По заверешнии работы функции это поле должно содержать уникальный идентификатор плагина, одному из форматов которого соотвествует указанный файл.
lpFileName
Имя файла, формат (или форматы) которого определяются.
pBuffer
Буффер, размером dwBufferSize байт, содержащий данные из начала файла.
dwBufferSize
Размер данных в pBuffer.
dwFlags
Флаги, описывающие параметры вызова функции ModulEntry с идентификатором FID_QUERYARCHIVE и результаты определения формата файла.
Флаг Описание
QUERY_FLAG_FORMAT_UID_READY При вызове функции заранее известен искомый формат файла. Он передается в параметре uidFormat. Требуется лишь проверить файл на соотвествие указанному формату и указать результат в поле pResult. При этом флаг QUERY_FLAG_PLUGIN_UID_READY также установлен.
QUERY_FLAG_PLUGIN_UID_READY При вызове функции заранее известен плагин, который должен обрабатывать файл. Его идентификатор передается в параметре uidPlugin. Необходимо проверить файл на соответствие всем форматам указанного плагина.
QUERY_FLAG_MORE_ARCHIVES Если указанному файлу соответствует несколько форматов с данными параметрами, то необходимо вернуть сведения о первом из них (заполнить поля uidPlugin и uidFormat), установить поле bResult в значение true и указать данный флаг. Функция ModuleEntry с идентификатором FID_QUERYARCHIVE будет вызываться до тех пор, пока не будут получены все необходимые форматы.
bResult
В этом поле необходимо указать результат выполнения функции. Поле должно иметь значение true, если удалось определить или подтвердить формат файла и значение false, если формат файла неизвестен.