Я хочу открыть в своем главном окне стороннее приложение, например, офис или Adobe Reader.
Что-то вроде этого. Этот пример в окнах форм.
Встроенное приложение
Но я могу использовать только чистый с ++ с winapi. Является ли это возможным? Что я могу использовать для этого. Можете привести пример?
Спасибо
Вы можете сделать это, указав дескриптор окна (HWND) приложения, которое будет встроено. Затем вы можете переопределить это окно в окне хоста, используя SetParent Функция Window API. Описатели окна 32-битные, так что это будет работать даже между процессами 32/64 бит.
Однако следует обратить внимание на правильную отправку событий от хост-приложения во встроенное окно (например, при изменении размера или скрытии хоста, встроенное окно также должно быть изменено или скрыто). А также разместите встроенное окно внутри хоста.
Это может нормально работать с блокнотом, но более сложные приложения могут проявлять странное поведение при повторном сопоставлении с другим окном процесса, но вы можете поэкспериментировать.