Я думаю, что это только для производительности, 32 битовых значения намного более эффективны управлять.
Почему бы не использовать встроенный класс WindowInteropHelper (см. Пространство имен System.Windows.Interop). Этот класс уже реализует IWin32Window;)
Так что вы можете забыть о "классе OldWindow" ... использование останется прежним
//add a reference to System.Windows.Forms.dll
public partial class MainWindow : Window, System.Windows.Forms.IWin32Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
var fbd = new FolderBrowserDialog();
fbd.ShowDialog(this);
}
IntPtr System.Windows.Forms.IWin32Window.Handle
{
get
{
return ((HwndSource)PresentationSource.FromVisual(this)).Handle;
}
}
}