Открытие .X файла

После того как вы создали интерфейс IDirectXFile и зарегистрировали используемые шаблоны, вам необходимо открыть .X файл и начать просмотр содержащихся в нем объектов. Процессы открытия .X файла и создания объекта просмотра объединены в один, соответствующий вызову функции IDirectXFile::CreateEnumObject.

HRESULT IDirectXfile::CreateEnumObject( LPVOID pvSource, // имя .Х файла

DXFILELOADOPTIONSdwLoadOptions,//параметры загрузки LPDIRECTXFILEENUMOBJECT* ppEnumObj}; // интерфейс перечисления

Когда вы вызываете функцию CreateEnumObject, укажите ей в качестве параметра pvSource имя загружаемого .X файла, а в качестве ppEnumObj используемый интерфейс. Что же касается dwLoadOptions, вы должны задать значение DXFILELOAD-_FROMFILE, которое сообщает DirectX, что файл загружается с диска. Другие возможные значения dwLoadOptions это DXFILELOADFROMRESOURCE, DXFILE-LOADFROMMEMORY и DXFILELOADFROMURL. Эти значения говорят DirectX загружать файл из ресурсов, буфера памяти или сетевого адреса соответственно. Да, так и есть - вы можете загружать .X файл прямо из Интернета.

Совет. Для загрузки .Xфайла из Интернета, используя адрес, задайте полный сетевой путь в "pvSource". Для загрузки из ресурса или памяти просто укажите дескриптор ресурса или указатель памяти (оба преобразуются к LPVOID) вpvSource.

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

// Filename = имя загружаемого файла (например "test.x") IDirectXFileEnumObject *pEnum; pFile->CreateEnumObject((LPVOID)Filename, \ DXFILELOAD_FROMFILE, &pEnum) ;

Из комментариев кода видно, что "Filename" указывает на правильное имя файла - в данном случае "test.x". После успешного вызова функция CreateEnumObject возвращает вам правильный объект перечисления (необходим один на один открытый файл), готовый к перечислению объектов находящихся в файле.

Регистрация специализированных и стандартных шаблонов || Оглавление || Перечисление объектов данных