Есть "падающий" пример с WinForms - я "подергаю" - мне не лень. ИХМО данный функционал (сейчас говорю только касательно WinForms - WPF в автокаде практически не использую) похоже задел на будующее которое не настанет (хотели, но "ниосилили"). Я вставлял готовые WinForm модули (dll) в плагин автокада (часть функционала продублированная в другом месте, которую для удобства можно вызывать и из под акада) она активно работает с формами, естественно вызывая их обычными методами - работают с ними достаточно плотно и сейчас - пока чего-то не падало (хотя я и не исключаю, что может). В общем если есть конкретные примеры (а еще лучше причины) - то я крайне заинтересован.
Я сейчас не помню, какую именно решал задачу, в процессе которой открывал окошки, и какие именно дальнейшие манипуляции приводили к Fatal Error (это было давно, в 2009-м году).
На старом сайте себе "зарубок" на эту тему не сделал видимо, т.к. найти сейчас не смог. Если я верно помню, то на наличие обозначенных не документированных методов мне указал А.Н. Ривилис. Помню, что после внесённых обозначенных изменений фатал прекратил появляться.
С тех пор, вместо Show и ShowDialog я стал использовать обозначенные методы автодеска, а так же перестал воспринимать содержимое документации ObjectARX как 100% точный источник информации, т.к. обозначенные методы (да и не только они, как выяснилось позднее) не были обозначены в ней.
Однако использование "родных" методов автодеска может
дать неожиданный результат, если использовать не тот вариант перегрузки метода:
реализация по умолчанию, к примеру,
ShowModelessWindow(Window formToShow) такова, что размеры и позиция окна сохраняются:
public static void ShowModelessWindow(Window formToShow)
{
ShowModelessWindow(IntPtr.Zero, formToShow, true); // По умолчанию последний аргумент - true
}
public static unsafe void ShowModelessWindow(IntPtr owner, Window formToShow, [MarshalAs(UnmanagedType.U1)] bool persistSizeAndPosition){
...
}
Т.е. чтобы избежать грабли, обозначенные в англоязычной заметке, в коде лучше открывать модальное окошко так:
ShowModelessWindow(IntPtr.Zero, formToShow, false);
Для немодальных окон и для Forms всё аналогично.