У меня особая проблема с объектами OLE, встроенными в документы Lotus Notes.
Пользователи прикрепили ф.э. Документы Word или Excel как объекты OLE (в Lotus Notes Document), и мне нужно получить эти исходные документы из OLE в виде файловых вложений, которые можно открыть в их основных приложениях.
Используя API Lotus Notes C, мне удалось отсоединить объекты OLE от жесткого диска. Проблема в том, что документ Word вложен в двоичный файл OLE в каталог Word.Document.8 или Word.Document.12. Просто переименование двоичного файла OLE в doc или docx не работает.
Вот почему я написал пакет Java OLE, который читает двоичные файлы и извлекает документы. Это работает, но ... есть обратная сторона.
Мне нужно проанализировать имя класса OLE, и если это Word.Document.8, мне нужно написать код, который вручную извлекает все потоки из каталога word.document.8 и сохраняет их как новый объект OLE .doc, чтобы Word мог его правильно открыть .
Это несложно только для документов Office, но в OLE можно встроить все, что угодно, и я не могу охватить все возможности.
Есть ли функция C api, которая может извлекать встроенные объекты из двоичного файла OLE (исходное имя файла не важно, но расширение)? Что делает Lotus или Word при двойном щелчке по объекту OLE? Он должен как-то реконструировать встроенный документ? Хотелось бы сделать так же :-)
Спасибо за помощь.