Die Anregung war prima.
Ich musste tatsächlich den (Feld)Marshal bemühen, allerdings so:
Code:
[DllImport(Win32Libraries.ComCtl32, CharSet = CharSet.Auto, SetLastError = true)]
internal static extern void TaskDialog(
IntPtr hwndParent,
IntPtr hInstance,
string pszWindowTitle,
string pszMainInstruction,
string pszContent,
TaskDialogButtons dwCommonButtons,
[MarshalAs(UnmanagedType.U4)]
TaskDialogIcon pszIcon,
[In,Out] ref int pnButton);
Jetzt funktioniert es.