環境 Windows XP 、Outlook 2003
使用してOutlookアドレス帳を開くWPFコンポーネントがあります
Interop.MAPI
ユーザーは複数の受信者を選択して [OK] を選択すると、アドレス帳が閉じます。
ポップアップが閉じられると、待機カーソルが表示され、数秒でエラー メッセージが表示され、アプリケーション (WPF) が終了します。
私はまだ運がないことを理解するのに何時間も費やしました。イベントビューアーから次の例外をコピーしました。
同じアドレス帳が別のモジュールで使用されているため、アドレス帳モジュールには問題がないことがわかりました。
アドレス帳を開いて選択した名前を読み取るメソッドでは、キャッチブロックに到達しませんでした。
例外情報: System.AccessViolationException スタック: System.Windows の System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) の MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) で。 Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) の System.Windows.Window.ShowHelper(System.Object) の System.Windows.Window.Show() の System.Windows.Window.ShowDialog() の xxxxx。 Frw.Base.Client.UI.DialogService.ShowDialog(xxxxx.Frw.Base.Client.UI.BaseViewModel) at xxxxx.Frw.Base.Client.UI.DialogService.ShowDialog(xxxxx.Frw.Base.Client.UI.BaseViewModel) 、System.Windows.Controls.UserControl) xxxxx.Frw.Region.Reu.Client.UI.ViewModels.ReportHeaderViewModel で。MS で xxxxx.Frw.Base.Client.UI.Commands.RelayCommand.Execute(System.Object) で xxxxx.Frw.Region.Reu.Client.UI.ViewModels.ReportHeaderViewModel.b__1(System.Object) で ShowDistributionList()。 Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(System.Windows.Input.ICommandSource, Boolean) の System.Windows.Controls.Primitives.ButtonBase.OnClick() の System.Windows.Controls.Button.OnClick() の System.Windows.Controls .Primitives.ButtonBase.OnMouseLeftButtonUp(System.Windows.Input.MouseButtonEventArgs) で System.Windows.UIElement.OnMouseLeftButtonUpThunk(System.Object, System.Windows.Input.MouseButtonEventArgs) で System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate) 、System.Object) で System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) の System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) の System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) System.Windows.UIElement.ReRaiseEventAs (System.Windows.DependencyObject、System.Windows.RoutedEventArgs、System.Windows.RoutedEvent) で System.Windows.UIElement.OnMouseUpThunk (System.Object、System.Windows.Input.MouseButtonEventArgs) で.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object) で System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) で System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows) .RoutedEventArgs) の System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) の System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) の System.Windows.UIElement .RaiseTrustedEvent(System.Windows.RoutedEventArgs) で System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean) で System.Windows.Input.InputManager.ProcessStagingArea() で System.Windows.Input.InputManager.ProcessInput(System .Windows.Input.InputEventArgs) で System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport) で System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System .Windows.Input.RawMouseActions、Int32、Int32、System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef) で System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean) でSystem.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object、Int32) の MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object、System.Delegate、System.Object、Int32、System.Delegate) の System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows. Threading.DispatcherPriority、System.TimeSpan、System.Delegate、System.Object、System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.Dispatcher.PushFrameImpl(System. Windows.Threading.DispatcherFrame) の System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) の System.Windows.Application.RunDispatcher(System.Object) の System.Windows.Application.RunInternal(System.Windows) .Window) で System.Windows.Application.Run(System.Windows.Window) で xxxxx.Frw.Main.Client.UI.App.Main() でSystem.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) の PushFrameImpl(System.Windows.Threading.DispatcherFrame) System.Windows.Application.RunDispatcher(System.Object) の System.Windows.Application.RunInternal (System.Windows.Window) で System.Windows.Application.Run(System.Windows.Window) で xxxxx.Frw.Main.Client.UI.App.Main()System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) の PushFrameImpl(System.Windows.Threading.DispatcherFrame) System.Windows.Application.RunDispatcher(System.Object) の System.Windows.Application.RunInternal (System.Windows.Window) で System.Windows.Application.Run(System.Windows.Window) で xxxxx.Frw.Main.Client.UI.App.Main()