Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Использование OLE-сервера


Автор: danika 21.5.2011, 23:11
Здравствуйте.
Используется некоторая программа в качестве OLE-сервера.
Программа может генерировать некий текстовый файл и сохранять его(используя стандартное окно проводника)
на диск.
Вопрос:Как программно подхватить поток,создаваемый OLE-сервером, и вывести текст файла к примеру на RichEdit или Memo всё равно. 

Автор: xvr 24.5.2011, 20:48
Цитата(danika @  21.5.2011,  23:11 Найти цитируемый пост)
 сохранять его(используя стандартное окно проводника) на диск.

'стандартное окно проводника' файл не сохраняет, оно лишь задает имя файла. Собственно работа с файлом делается в самом OLE сервере.

Цитата(danika @  21.5.2011,  23:11 Найти цитируемый пост)
Как программно подхватить поток,создаваемый OLE-сервером,

Простыми средствами - никак.

Автор: danika 28.5.2011, 15:05
Цитата

'стандартное окно проводника' файл не сохраняет, оно лишь задает имя файла. Собственно работа с файлом делается в самом OLE сервере.


Перефразирую вопрос.
 В OLE сервере, зная дескриптор окна "Сохранить как.." и его дочернего поля Edit (имя сохраняемого файла) ,могу ли я обратиться непосредственно к  сохранённому файлу из своей программы.

Можно ведь получить дескриптор ,зная имя класса искомого окна, API функцией Find Window. 

Автор: xvr 30.5.2011, 19:08
Цитата(danika @  28.5.2011,  15:05 Найти цитируемый пост)
В OLE сервере, зная дескриптор окна "Сохранить как.." и его дочернего поля Edit (имя сохраняемого файла) ,могу ли я обратиться непосредственно к  сохранённому файлу из своей программы.

Перефразирую ответ - вы можете сканировать все окна на предмет нужных вам полей, или можете инжектировать в ваш OLE сервер хук на вызов диалога сохранения файла. Вы можете использовать и другие методы перехвата данных и/или сканирования дисков, но к 'OLE серверу' это никакого отношения не имеет. Т.е. то, что перехватываемая программа (или dll) является OLE сервером, вам никак не поможет (это ни на что не влияет).

Если вам нужен ответ именно в этом ракурсе - задайте вопрос в разделе по Win32 API (и без слов 'OLE сервер'  smile )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)