Hare.ru @ Коллективный разум / Hare.ru @ Дикое место |
Архив hare.ru | |||
Мысли, конвертированные в текст | ||||
Концептуальные работыДоступ к данным V7 из других систем. Работа с Compound-файлами.Денис Абросимов (где-то в 2001) Compaund-файл представляет из себя хранилище OLE-документов, что-то вроде архива. Он состоит из корневого storage – файла, который может содержать другие storage и stream'ы – объекты (по русски, соответственно, папки и файлы). В MFC Compaund-файлы поддерживаются классами COleStreamFile и ColeDocument.В качестве места складирования данных Compaund-файлы используются в основном в поделках Микрософта – Excel, Word, Power Point. Видимо, чтобы не отстать от лидера софтостроения, отечественные девелоперы из незабвенной фирмы 1С для своего бухгалтерского детища избрали такой же способ хранения информации. Compaund-файл включает в себя три составляющие – stream-объекты, storage-объекты и ILockBytes-объекты. Как я уже упоминал, storage – это директории, хранящие в своих недрах stream'ы. LockBytes – это некая прослойка между storage и физической файловой системой. Итак, получим доступ к содержимому Compaund'а на примере некоего файла с загадочным расширением md. Для этого воспользуемся функцией StgOpenStorage – функцией открытия корневого storage. Внутренние storage можно открыть, используя родительский метод Istorage::OpenStorage. Формат:
const WCHAR *pwcsName, IStorage *pstgPriority, DWORD grfMode, SNB snbExclude, DWORD reserved, IStorage **ppstgOpen );
Исходный текст программы можно найти вот здесь. В результате программа извлекает на свет божий нужный нам stream-файл. Более подробно о функциях работы с compound-файлами можно узнать в MSDN, а по-русски – на http://www.firststeps.ru/. |
Партнеры: Также может быть интересно: Канал Россия 1 на http://spbtvonline.ru/ |
|||
Сайт поддерживается за счет партнеров: | ||||
:::... Сайт содержит архив двух версий hare.ru | Карта сайта |