Я хочу, чтобы приложение Windows запустило другое приложение Direct3D, а приложение Direct3D отобразило элемент управления, предоставленный родительским процессом.
Это вообще возможно? Если это так, как это будет сделано?
Это можно сделать легко, все, что вам нужно сделать, это передать идентификатор окна HWND в качестве параметра при создании D3DDevice. Он даже работает во время взаимодействия - вы можете передать hWnd из .NET в C ++ и визуализировать окно C #, используя нативный DirectX.
Вот один пример размещения содержимого окна WPF в существующем окне Win32. Я сделал это при написании экранной заставки на основе WPF, когда нужно было отобразить небольшое окно предварительного просмотра Заставки.
http://stuff.seans.com/2008/09/01/writing-a-screen-saver-in-wpf/
Это возможно. Я помню, как делал это в VB6, когда писал заставки. Панель управления заставкой отправляет командную строку заставке с HWND окна предварительного просмотра. Используя этот HWND, вы можете получить HDC и все остальное, что вам нужно.