From b793bc986c1204f322020c3689e2e9f99a441c97 Mon Sep 17 00:00:00 2001 From: Jeremy Kuhne Date: Mon, 9 Dec 2024 17:21:09 -0800 Subject: [PATCH] Convert to using CsWin32 HRESULT definition This converts to using the CsWin32 HRESULT definition. It creates two HRESULT helpers to provide compatible throw behavior for existing code (PresentationCore threw things one way, other assemblies threw a different way). Also: - Remove dead interop defines (a lot) - Add Primitives test project - Force test projects to use open source key (which System.Private.Windows.Core expects) - Tweak build files a bit to try and ensure test dependencies are in place - Add strings to System.Windows.Primitives to facilitate unifying hresult handling in the future (need to redirect InvalidWmpVersionException) It would be nice to always throw the same way, but that would change exceptions that currently get thrown. Combining the behavior from both would give whatever Marshal gives with special handling for WIC/MIL errors and unwrapping of Win32 COMExceptions into Win32Exceptions. Converting the existing interop to use CsWin32 types will make transitioning far easier. The next change I'm working on is using HWND. --- Microsoft.Dotnet.Wpf.sln | 15 + eng/common/tools.ps1 | 2 +- global.json | 6 +- .../src/Common/Graphics/exports.cs | 525 ++++--- .../src/Common/Graphics/wgx_error.cs | 172 --- .../src/Common/Graphics/wgx_exports.cs | 56 +- .../src/Common/Graphics/wgx_render.cs | 679 +-------- .../MS/Win32/UnsafeNativeMethodsTablet.cs | 65 +- .../Ink/GestureRecognizer/NativeRecognizer.cs | 93 +- .../PresentationCore/OtherAssemblyAttrs.cs | 4 +- .../PresentationCore/PresentationCore.csproj | 6 +- .../BinaryFormat/ExceptionExtensions.cs | 22 - .../System/Windows/DragDrop.cs | 39 +- .../System/Windows/Input/InputMethod.cs | 7 +- .../Input/InputProcessorProfilesLoader.cs | 61 +- .../System/Windows/InterOp/D3DImage.cs | 40 +- .../System/Windows/InterOp/HwndTarget.cs | 25 +- .../System/Windows/Media/ChannelManager.cs | 20 +- .../System/Windows/Media/ColorContext.cs | 78 +- .../Windows/Media/ColorContextHelper.cs | 5 +- .../Windows/Media/ColorTransformHelper.cs | 10 +- .../System/Windows/Media/Composition.cs | 17 +- .../System/Windows/Media/EventProxy.cs | 29 +- .../System/Windows/Media/FactoryMaker.cs | 11 +- .../System/Windows/Media/Geometry.cs | 106 +- .../System/Windows/Media/GlyphTypeface.cs | 30 +- .../Windows/Media/Imaging/BitmapCodecInfo.cs | 208 +-- .../Windows/Media/Imaging/BitmapDecoder.cs | 167 +-- .../Windows/Media/Imaging/BitmapEncoder.cs | 95 +- .../Media/Imaging/BitmapFrameDecode.cs | 54 +- .../Windows/Media/Imaging/BitmapMetadata.cs | 352 ++--- .../Media/Imaging/BitmapMetadataEnumerator.cs | 20 +- .../Windows/Media/Imaging/BitmapPalette.cs | 61 +- .../Windows/Media/Imaging/BitmapSource.cs | 147 +- .../Imaging/BitmapSourceSafeMILHandle.cs | 32 +- .../Media/Imaging/BitmapVisualManager.cs | 7 +- .../Windows/Media/Imaging/BmpBitmapEncoder.cs | 8 +- .../Windows/Media/Imaging/CachedBitmap.cs | 41 +- .../Media/Imaging/ColorConvertedBitmap.cs | 18 +- .../Windows/Media/Imaging/CroppedBitmap.cs | 17 +- .../Media/Imaging/FormatConvertedBitmap.cs | 26 +- .../Windows/Media/Imaging/GifBitmapEncoder.cs | 8 +- .../Imaging/InplaceBitmapMetadataWriter.cs | 62 +- .../Media/Imaging/InteropBitmapSource.cs | 119 +- .../Media/Imaging/JpegBitmapEncoder.cs | 28 +- .../Windows/Media/Imaging/PngBitmapEncoder.cs | 12 +- .../Windows/Media/Imaging/PropVariant.cs | 17 +- .../Media/Imaging/RenderTargetBitmap.cs | 20 +- .../Media/Imaging/TiffBitmapEncoder.cs | 14 +- .../Media/Imaging/TransformedBitmap.cs | 49 +- .../Media/Imaging/UnknownBitmapEncoder.cs | 8 +- .../Windows/Media/Imaging/WmpBitmapEncoder.cs | 84 +- .../Windows/Media/Imaging/WriteableBitmap.cs | 56 +- .../System/Windows/Media/MILUtilities.cs | 19 +- .../System/Windows/Media/MediaContext.cs | 43 +- .../Media/MediaContextNotificationWindow.cs | 23 +- .../System/Windows/Media/MediaPlayerState.cs | 64 +- .../System/Windows/Media/MediaSystem.cs | 19 +- .../System/Windows/Media/PathGeometry.cs | 55 +- .../System/Windows/Media/PixelFormat.cs | 57 +- .../Media/SafeNativeMethodsMilCoreApi.cs | 43 +- .../Windows/Media/SafeReversePInvokeHandle.cs | 9 +- .../System/Windows/Media/StreamAsIStream.cs | 189 +-- .../Media/UnsafeNativeMethodsMilCoreApi.cs | 395 ++--- .../System/Windows/Media/mediaeventshelper.cs | 30 +- .../System/Windows/Media/safemediahandle.cs | 10 +- .../System/Windows/OleServicesContext.cs | 27 +- .../System/Windows/clipboard.cs | 51 +- .../System/Windows/dataobject.cs | 295 ++-- .../Win32/Foundation/HResultExtensions.cs | 300 ++++ .../Internal/AppModel/AppSecurityManager.cs | 21 +- .../MS/Internal/AppModel/OleCmdHelper.cs | 14 +- .../MS/Internal/AppModel/ProgressPage.cs | 35 +- .../MS/Internal/AppModel/ShellProvider.cs | 17 +- .../MS/Internal/Controls/ActiveXContainer.cs | 39 +- .../MS/Internal/Controls/ActiveXSite.cs | 114 +- .../Controls/ConnectionPointCookie.cs | 9 +- .../MS/Internal/Controls/EnumUnknown.cs | 45 +- .../MS/Internal/Controls/WebBrowserSite.cs | 41 +- .../MS/Internal/DataStreams.cs | 22 +- .../Internal/IO/Packaging/XmlGlyphRunInfo.cs | 10 +- .../MS/Internal/IO/Packaging/XpsFilter.cs | 16 +- .../Internal/Printing/UnsafeNativeMethods.cs | 12 +- .../MS/Internal/Printing/Win32PrintDialog.cs | 17 +- .../Microsoft/Win32/CommonItemDialog.cs | 7 +- .../PresentationFramework.csproj | 3 +- .../Appearance/WindowBackdropManager.cs | 22 +- .../Windows/Controls/Primitives/Popup.cs | 43 +- .../System/Windows/Controls/WebBrowser.cs | 19 +- .../Windows/Documents/InputScopeAttribute.cs | 17 +- .../Windows/Documents/NLGSpellerInterop.cs | 9 +- .../Windows/Documents/TextEditorDragDrop.cs | 17 +- ...tServicesDisplayAttributePropertyRanges.cs | 17 +- .../System/Windows/Documents/TextStore.cs | 255 ++-- .../System/Windows/Interop/ActiveXHost.cs | 166 +-- .../System/Windows/Shell/JumpList.cs | 16 +- .../System/Windows/Standard/ErrorCodes.cs | 466 ------ .../System/Windows/Standard/NativeMethods.cs | 80 +- .../System/Windows/Standard/ShellProvider.cs | 6 +- .../System/Windows/Window.cs | 75 +- .../NativeDirectoryServicesQueryAPIs.cs | 7 +- .../Internal/Documents/PeoplePickerWrapper.cs | 26 +- .../src/Shared/MS/Internal/SecurityHelper.cs | 114 +- .../Shared/MS/Internal/TextServicesLoader.cs | 5 +- .../src/Shared/MS/Win32/HandleCollector.cs | 19 +- .../src/Shared/MS/Win32/NativeMethodsCLR.cs | 1207 +-------------- .../src/Shared/MS/Win32/NativeMethodsOther.cs | 392 +---- .../MS/Win32/NativeMethodsSetLastError.cs | 15 +- .../Shared/MS/Win32/SafeNativeMethodsCLR.cs | 43 +- .../Shared/MS/Win32/SafeNativeMethodsOther.cs | 95 +- .../Shared/MS/Win32/UnsafeNativeMethodsCLR.cs | 437 ++---- .../MS/Win32/UnsafeNativeMethodsEventTrace.cs | 6 +- .../MS/Win32/UnsafeNativeMethodsOther.cs | 329 +--- .../Win32/UnsafeNativeMethodsTextServices.cs | 1317 +++-------------- .../src/Shared/RefAssemblyAttrs.cs | 5 + .../System.Windows.Primitives/AssemblyInfo.cs | 3 + .../System.Windows.Primitives/GlobalUsings.cs | 6 + .../System.Windows.Primitives/Resources/SR.cs | 20 + .../Resources/SR.resx | 201 +++ .../Resources/xlf/SR.cs.xlf | 272 ++++ .../Resources/xlf/SR.de.xlf | 272 ++++ .../Resources/xlf/SR.es.xlf | 272 ++++ .../Resources/xlf/SR.fr.xlf | 272 ++++ .../Resources/xlf/SR.it.xlf | 272 ++++ .../Resources/xlf/SR.ja.xlf | 272 ++++ .../Resources/xlf/SR.ko.xlf | 272 ++++ .../Resources/xlf/SR.pl.xlf | 272 ++++ .../Resources/xlf/SR.pt-BR.xlf | 272 ++++ .../Resources/xlf/SR.ru.xlf | 272 ++++ .../Resources/xlf/SR.tr.xlf | 272 ++++ .../Resources/xlf/SR.zh-Hans.xlf | 272 ++++ .../Resources/xlf/SR.zh-Hant.xlf | 272 ++++ .../System.Windows.Primitives.csproj | 13 +- .../Windows/Win32/Foundation/D3dErrors.cs | 40 + .../Windows/Win32/Foundation/MilErrors.cs | 201 +++ .../Foundation/PrimitivesHResultExtensions.cs | 85 ++ .../MS/Internal/Automation/FocusTracker.cs | 4 +- .../Internal/AutomationProxies/Accessible.cs | 132 +- .../Internal/AutomationProxies/ProxySimple.cs | 7 +- .../AutomationProxies/SafeThemeHandle.cs | 8 +- .../AutomationProxies/WinFormsSpinner.cs | 5 +- .../AutomationProxies/WindowsButton.cs | 11 +- .../AutomationProxies/WindowsFormsHelpers.cs | 7 +- .../AutomationProxies/WindowsRichEdit.cs | 19 +- .../AutomationProxies/WindowsStatic.cs | 5 +- .../AutomationProxies/WindowsStatusBar.cs | 6 +- .../AutomationProxies/WindowsUpDown.cs | 9 +- .../MS/Win32/NativeMethods.cs | 16 +- .../UIAutomationTypes.csproj | 2 + .../MS/Internal/Interop/ErrorCodes.cs | 456 ------ .../src/WindowsBase/WindowsBase.csproj | 1 - .../src/WpfGfx/include/wgx_error.cs | 177 --- .../tests/Directory.Build.props | 1 + .../PresentationCore.Tests.csproj | 6 + .../Windows/Win32/Foundation/HResultTests.cs | 27 + .../GlobalUsings.cs | 6 + .../System.Windows.Primitives.Tests.csproj | 25 + .../Win32/Foundation/D3dErrorsTests.cs | 21 + .../Windows/Win32/Foundation/HResultTests.cs | 184 +++ .../Win32/Foundation/MilErrorsTests.cs | 23 + start-vs.cmd | 12 +- 161 files changed, 7970 insertions(+), 8434 deletions(-) delete mode 100644 src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_error.cs delete mode 100644 src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/BinaryFormat/ExceptionExtensions.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/PresentationCore/Windows/Win32/Foundation/HResultExtensions.cs delete mode 100644 src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ErrorCodes.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/GlobalUsings.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.resx create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.cs.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.de.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.es.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.fr.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.it.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ja.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ko.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pl.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pt-BR.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ru.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.tr.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hans.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hant.xlf create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/D3dErrors.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/MilErrors.cs create mode 100644 src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/PrimitivesHResultExtensions.cs delete mode 100644 src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Interop/ErrorCodes.cs delete mode 100644 src/Microsoft.DotNet.Wpf/src/WpfGfx/include/wgx_error.cs create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/Windows/Win32/Foundation/HResultTests.cs create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/GlobalUsings.cs create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/System.Windows.Primitives.Tests.csproj create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/D3dErrorsTests.cs create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/HResultTests.cs create mode 100644 src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/MilErrorsTests.cs diff --git a/Microsoft.Dotnet.Wpf.sln b/Microsoft.Dotnet.Wpf.sln index c3d86130ea5..1d2d8602bc3 100644 --- a/Microsoft.Dotnet.Wpf.sln +++ b/Microsoft.Dotnet.Wpf.sln @@ -381,6 +381,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows.Primitives-r EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PresentationFramework.Fluent.Tests", "src\Microsoft.DotNet.Wpf\tests\UnitTests\PresentationFramework.Fluent.Tests\PresentationFramework.Fluent.Tests.csproj", "{56833D74-2D0B-5516-C1D6-B93D4FFF7612}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Windows.Primitives.Tests", "src\Microsoft.DotNet.Wpf\tests\UnitTests\System.Windows.Primitives.Tests\System.Windows.Primitives.Tests.csproj", "{88CF4EED-8617-D414-D538-A7DE83E7780C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|arm64 = Debug|arm64 @@ -1653,6 +1655,18 @@ Global {56833D74-2D0B-5516-C1D6-B93D4FFF7612}.Release|x64.Build.0 = Release|x64 {56833D74-2D0B-5516-C1D6-B93D4FFF7612}.Release|x86.ActiveCfg = Release|x86 {56833D74-2D0B-5516-C1D6-B93D4FFF7612}.Release|x86.Build.0 = Release|x86 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|arm64.ActiveCfg = Debug|arm64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|arm64.Build.0 = Debug|arm64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|x64.ActiveCfg = Debug|x64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|x64.Build.0 = Debug|x64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|x86.ActiveCfg = Debug|x86 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Debug|x86.Build.0 = Debug|x86 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|arm64.ActiveCfg = Release|arm64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|arm64.Build.0 = Release|arm64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|x64.ActiveCfg = Release|x64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|x64.Build.0 = Release|x64 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|x86.ActiveCfg = Release|x86 + {88CF4EED-8617-D414-D538-A7DE83E7780C}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1780,6 +1794,7 @@ Global {5306FA93-178C-4535-ADEE-86B1DE1B68CB} = {2EE4A2DA-70B3-4767-9D18-618DA0FE3105} {0EFFC7C4-B486-4852-8CED-EDEB46E02C42} = {D0AED517-9972-41CB-8751-983E4EB8F511} {56833D74-2D0B-5516-C1D6-B93D4FFF7612} = {A48B585E-6AB0-4F8D-8484-77F37CB44437} + {88CF4EED-8617-D414-D538-A7DE83E7780C} = {A48B585E-6AB0-4F8D-8484-77F37CB44437} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B4340004-DAC0-497D-B69D-CFA7CD93F567} diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index bd80ccccb51..5de8ff8b099 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -299,7 +299,7 @@ function InstallDotNet([string] $dotnetRoot, $dotnetVersionLabel = "runtime toolset '$runtime/$architecture v$version'" if (Test-Path $runtimePath) { - Write-Host " Runtime toolset '$runtime/$architecture v$version' already installed." + Write-Host " Runtime toolset '$runtime/$architecture v$version' already installed at '$runtimePath'." $installSuccess = $true Exit } diff --git a/global.json b/global.json index 0c542875e4d..1cdf22deaf0 100644 --- a/global.json +++ b/global.json @@ -2,7 +2,11 @@ "tools": { "dotnet": "10.0.100-alpha.1.24573.1", "runtimes": { - "dotnet": [ + "dotnet/x64": [ + "2.1.7", + "$(VSRedistCommonNetCoreSharedFrameworkx64100PackageVersion)" + ], + "dotnet/x86": [ "2.1.7", "$(VSRedistCommonNetCoreSharedFrameworkx64100PackageVersion)" ] diff --git a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/exports.cs b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/exports.cs index 92069b2a676..31df5c9bc61 100644 --- a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/exports.cs +++ b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/exports.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -14,7 +14,8 @@ using MS.Win32; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; -using HRESULT = MS.Internal.HRESULT; +using HRESULT = Windows.Win32.Foundation.HRESULT; +using Windows.Win32.Foundation; /* * @@ -111,101 +112,101 @@ internal static unsafe void CopyBytes(byte* pbTo, private static class UnsafeNativeMethods { [DllImport(DllImport.MilCore)] - internal static extern /*HRESULT*/ int MilResource_CreateOrAddRefOnChannel( + internal static extern HRESULT MilResource_CreateOrAddRefOnChannel( IntPtr pChannel, - DUCE.ResourceType resourceType, - ref DUCE.ResourceHandle hResource + ResourceType resourceType, + ref ResourceHandle hResource ); [DllImport(DllImport.MilCore)] - internal static extern /*HRESULT*/ int MilResource_DuplicateHandle( + internal static extern HRESULT MilResource_DuplicateHandle( IntPtr pSourceChannel, - DUCE.ResourceHandle original, + ResourceHandle original, IntPtr pTargetChannel, - ref DUCE.ResourceHandle duplicate + ref ResourceHandle duplicate ); [DllImport(DllImport.MilCore, EntryPoint = "MilConnection_CreateChannel")]//CASRemoval: - internal static extern int MilConnection_CreateChannel( + internal static extern HRESULT MilConnection_CreateChannel( IntPtr pTransport, IntPtr hChannel, out IntPtr channelHandle); [DllImport(DllImport.MilCore, EntryPoint = "MilConnection_DestroyChannel")]//CASRemoval: - internal static extern int MilConnection_DestroyChannel( + internal static extern HRESULT MilConnection_DestroyChannel( IntPtr channelHandle); [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_CloseBatch")]//CASRemoval: - internal static extern int MilConnection_CloseBatch( + internal static extern HRESULT MilConnection_CloseBatch( IntPtr channelHandle); [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_CommitChannel")]//CASRemoval: - internal static extern int MilConnection_CommitChannel( + internal static extern HRESULT MilConnection_CommitChannel( IntPtr channelHandle); [DllImport(DllImport.MilCore)]//CASRemoval: - internal static extern int WgxConnection_SameThreadPresent( + internal static extern HRESULT WgxConnection_SameThreadPresent( IntPtr pConnection); [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_GetMarshalType")] - internal static extern int MilChannel_GetMarshalType(IntPtr channelHandle, out ChannelMarshalType marshalType); + internal static extern HRESULT MilChannel_GetMarshalType(IntPtr channelHandle, out ChannelMarshalType marshalType); - [DllImport (DllImport.MilCore, EntryPoint = "MilResource_SendCommand")]//CASRemoval: - unsafe internal static extern int MilResource_SendCommand( - byte *pbData, + [DllImport(DllImport.MilCore, EntryPoint = "MilResource_SendCommand")]//CASRemoval: + internal static extern unsafe HRESULT MilResource_SendCommand( + byte* pbData, uint cbSize, bool sendInSeparateBatch, IntPtr pChannel); - [DllImport (DllImport.MilCore, EntryPoint = "MilChannel_BeginCommand")]//CASRemoval: - unsafe internal static extern int MilChannel_BeginCommand( + [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_BeginCommand")]//CASRemoval: + internal static extern unsafe HRESULT MilChannel_BeginCommand( IntPtr pChannel, - byte *pbData, + byte* pbData, uint cbSize, uint cbExtra ); - [DllImport (DllImport.MilCore, EntryPoint = "MilChannel_AppendCommandData")]//CASRemoval: - unsafe internal static extern int MilChannel_AppendCommandData( + [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_AppendCommandData")]//CASRemoval: + internal static extern unsafe HRESULT MilChannel_AppendCommandData( IntPtr pChannel, - byte *pbData, + byte* pbData, uint cbSize ); - [DllImport (DllImport.MilCore, EntryPoint = "MilChannel_EndCommand")]//CASRemoval: - unsafe internal static extern int MilChannel_EndCommand( + [DllImport(DllImport.MilCore, EntryPoint = "MilChannel_EndCommand")]//CASRemoval: + internal static extern unsafe HRESULT MilChannel_EndCommand( IntPtr pChannel); - [DllImport (DllImport.MilCore, EntryPoint = "MilResource_SendCommandMedia")]//CASRemoval: - unsafe internal static extern int MilResource_SendCommandMedia( + [DllImport(DllImport.MilCore, EntryPoint = "MilResource_SendCommandMedia")]//CASRemoval: + internal static extern unsafe HRESULT MilResource_SendCommandMedia( ResourceHandle handle, SafeMediaHandle pMedia, IntPtr pChannel, - bool notifyUceDirect + bool notifyUceDirect ); - [DllImport (DllImport.MilCore, EntryPoint = "MilResource_SendCommandBitmapSource")]//CASRemoval: - unsafe internal static extern int MilResource_SendCommandBitmapSource( + [DllImport(DllImport.MilCore, EntryPoint = "MilResource_SendCommandBitmapSource")]//CASRemoval: + internal static extern unsafe HRESULT MilResource_SendCommandBitmapSource( ResourceHandle handle, BitmapSourceSafeMILHandle /* IWICBitmapSource */ pBitmapSource, IntPtr pChannel); [DllImport(DllImport.MilCore, EntryPoint = "MilResource_ReleaseOnChannel")]//CASRemoval: - internal static extern /*HRESULT*/ int MilResource_ReleaseOnChannel( + internal static extern HRESULT MilResource_ReleaseOnChannel( IntPtr pChannel, - DUCE.ResourceHandle hResource, + ResourceHandle hResource, out int deleted ); [DllImport(DllImport.MilCore)] - internal static extern int MilChannel_SetNotificationWindow( + internal static extern HRESULT MilChannel_SetNotificationWindow( IntPtr pChannel, IntPtr hwnd, WindowMessage message ); [DllImport(DllImport.MilCore)] - internal static extern int MilComposition_WaitForNextMessage( + internal static extern HRESULT MilComposition_WaitForNextMessage( IntPtr pChannel, int nCount, IntPtr[] handles, @@ -215,7 +216,7 @@ out int waitReturn ); [DllImport(DllImport.MilCore)] - internal static extern int MilComposition_PeekNextMessage( + internal static extern HRESULT MilComposition_PeekNextMessage( IntPtr pChannel, out MilMessage.Message message, /* size_t */ IntPtr messageSize, @@ -223,9 +224,9 @@ out int messageRetrieved ); [DllImport(DllImport.MilCore, EntryPoint = "MilResource_GetRefCountOnChannel")] - internal static extern /*HRESULT*/ int MilResource_GetRefCountOnChannel( + internal static extern HRESULT MilResource_GetRefCountOnChannel( IntPtr pChannel, - DUCE.ResourceHandle hResource, + ResourceHandle hResource, out uint refCount ); } @@ -233,7 +234,7 @@ out uint refCount /// /// Define the value of an infinte wait in WaitForNextMessage. /// - internal const UInt32 waitInfinite = UInt32.MaxValue; + internal const uint InfiniteWait = uint.MaxValue; internal static class MilMessage { @@ -242,16 +243,16 @@ internal static class MilMessage /// internal enum Type { - Invalid = 0x00, + Invalid = 0x00, - SyncFlushReply = 0x01, - Caps = 0x04, - PartitionIsZombie = 0x06, - SyncModeStatus = 0x09, - Presented = 0x0A, - BadPixelShader = 0x10, + SyncFlushReply = 0x01, + Caps = 0x04, + PartitionIsZombie = 0x06, + SyncModeStatus = 0x09, + Presented = 0x0A, + BadPixelShader = 0x10, - ForceDWORD = unchecked((int)0xffffffff) + ForceDWORD = unchecked((int)0xffffffff) }; [StructLayout(LayoutKind.Explicit, Pack = 1)] @@ -350,11 +351,11 @@ public Channel(Channel referenceChannel, bool isOutOfBandChannel, IntPtr pConnec referenceChannelHandle = referenceChannel._hChannel; } - HRESULT.Check(UnsafeNativeMethods.MilConnection_CreateChannel( + UnsafeNativeMethods.MilConnection_CreateChannel( _pConnection, referenceChannelHandle, - out _hChannel)); -} + out _hChannel).ThrowOnFailureExtended(); + } /// @@ -374,8 +375,8 @@ internal void Commit() return; } - HRESULT.Check(UnsafeNativeMethods.MilConnection_CommitChannel( - _hChannel)); + UnsafeNativeMethods.MilConnection_CommitChannel( + _hChannel).ThrowOnFailureExtended(); } /// @@ -395,8 +396,8 @@ internal void CloseBatch() return; } - HRESULT.Check(UnsafeNativeMethods.MilConnection_CloseBatch( - _hChannel)); + UnsafeNativeMethods.MilConnection_CloseBatch( + _hChannel).ThrowOnFailureExtended(); } /// @@ -417,8 +418,8 @@ internal void SyncFlush() return; } - HRESULT.Check(MilCoreApi.MilComposition_SyncFlush(_hChannel)); -} + MilCoreApi.MilComposition_SyncFlush(_hChannel).ThrowOnFailureExtended(); + } /// /// Commits the channel and then closes it. @@ -427,15 +428,15 @@ internal void Close() { if (_hChannel != IntPtr.Zero) { - HRESULT.Check(UnsafeNativeMethods.MilConnection_CloseBatch(_hChannel)); - HRESULT.Check(UnsafeNativeMethods.MilConnection_CommitChannel(_hChannel)); + UnsafeNativeMethods.MilConnection_CloseBatch(_hChannel).ThrowOnFailureExtended(); + UnsafeNativeMethods.MilConnection_CommitChannel(_hChannel).ThrowOnFailureExtended(); } _referenceChannel = null; if (_hChannel != IntPtr.Zero) { - HRESULT.Check(UnsafeNativeMethods.MilConnection_DestroyChannel(_hChannel)); + UnsafeNativeMethods.MilConnection_DestroyChannel(_hChannel).ThrowOnFailureExtended(); _hChannel = IntPtr.Zero; } @@ -446,7 +447,7 @@ internal void Close() /// internal void Present() { - HRESULT.Check(UnsafeNativeMethods.WgxConnection_SameThreadPresent(_pConnection)); + UnsafeNativeMethods.WgxConnection_SameThreadPresent(_pConnection).ThrowOnFailureExtended(); } /// @@ -457,21 +458,21 @@ internal void Present() /// Returns true iff the resource was created on the channel. The caller is responsible to /// update the resource appropriately. /// - internal bool CreateOrAddRefOnChannel(object instance, ref DUCE.ResourceHandle handle, DUCE.ResourceType resourceType) + internal bool CreateOrAddRefOnChannel(object instance, ref ResourceHandle handle, ResourceType resourceType) { bool handleNeedsCreation = handle.IsNull; Invariant.Assert(_hChannel != IntPtr.Zero); - HRESULT.Check(UnsafeNativeMethods.MilResource_CreateOrAddRefOnChannel( + UnsafeNativeMethods.MilResource_CreateOrAddRefOnChannel( _hChannel, resourceType, ref handle - )); + ).ThrowOnFailureExtended(); if (EventTrace.IsEnabled(EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW)) { - EventTrace.EventProvider.TraceEvent(EventTrace.Event.CreateOrAddResourceOnChannel, EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW, PerfService.GetPerfElementID(instance), _hChannel, (uint) handle, (uint) resourceType); + EventTrace.EventProvider.TraceEvent(EventTrace.Event.CreateOrAddResourceOnChannel, EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW, PerfService.GetPerfElementID(instance), _hChannel, (uint)handle, (uint)resourceType); } return handleNeedsCreation; @@ -491,21 +492,21 @@ ref handle /// Returns the duplicated handle (valid on the target channel) or the null /// handle if duplication failed. /// - internal DUCE.ResourceHandle DuplicateHandle( - DUCE.ResourceHandle original, - DUCE.Channel targetChannel + internal ResourceHandle DuplicateHandle( + ResourceHandle original, + Channel targetChannel ) { - DUCE.ResourceHandle duplicate = DUCE.ResourceHandle.Null; + ResourceHandle duplicate = ResourceHandle.Null; //Debug.WriteLine(string.Format("DuplicateHandle: Channel: {0}, Resource: {1}, Target channel: {2}, ", _hChannel, original._handle, targetChannel)); - HRESULT.Check(UnsafeNativeMethods.MilResource_DuplicateHandle( + UnsafeNativeMethods.MilResource_DuplicateHandle( _hChannel, original, targetChannel._hChannel, ref duplicate - )); + ).ThrowOnFailureExtended(); return duplicate; } @@ -518,7 +519,7 @@ ref duplicate /// /// Returns true iff the resource is not on this channel anymore. /// - internal bool ReleaseOnChannel(DUCE.ResourceHandle handle) + internal bool ReleaseOnChannel(ResourceHandle handle) { Invariant.Assert(_hChannel != IntPtr.Zero); Debug.Assert(!handle.IsNull); @@ -527,15 +528,15 @@ internal bool ReleaseOnChannel(DUCE.ResourceHandle handle) int releasedOnChannel; - HRESULT.Check(UnsafeNativeMethods.MilResource_ReleaseOnChannel( + UnsafeNativeMethods.MilResource_ReleaseOnChannel( _hChannel, handle, out releasedOnChannel - )); + ).ThrowOnFailureExtended(); if ((releasedOnChannel != 0) && EventTrace.IsEnabled(EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW)) { - EventTrace.EventProvider.TraceEvent(EventTrace.Event.ReleaseOnChannel, EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW, _hChannel, (uint) handle); + EventTrace.EventProvider.TraceEvent(EventTrace.Event.ReleaseOnChannel, EventTrace.Keyword.KeywordGraphics | EventTrace.Keyword.KeywordPerf, EventTrace.Level.PERF_LOW, _hChannel, (uint)handle); } return (releasedOnChannel != 0); @@ -548,18 +549,18 @@ out releasedOnChannel /// /// Returns the ref count for a resource on this channel. /// - internal uint GetRefCount(DUCE.ResourceHandle handle) + internal uint GetRefCount(ResourceHandle handle) { Invariant.Assert(_hChannel != IntPtr.Zero); Debug.Assert(!handle.IsNull); uint refCount; - HRESULT.Check(UnsafeNativeMethods.MilResource_GetRefCountOnChannel( + UnsafeNativeMethods.MilResource_GetRefCountOnChannel( _hChannel, handle, out refCount - )); + ).ThrowOnFailureExtended(); return refCount; } @@ -586,10 +587,10 @@ internal ChannelMarshalType MarshalType Invariant.Assert(_hChannel != IntPtr.Zero); ChannelMarshalType marshalType; - HRESULT.Check(UnsafeNativeMethods.MilChannel_GetMarshalType( + UnsafeNativeMethods.MilChannel_GetMarshalType( _hChannel, out marshalType - )); + ).ThrowOnFailureExtended(); return marshalType; } @@ -620,8 +621,8 @@ internal bool IsOutOfBandChannel /// /// SendCommand sends a command struct through the composition thread. /// - unsafe internal void SendCommand( - byte *pCommandData, + internal unsafe void SendCommand( + byte* pCommandData, int cSize) { SendCommand(pCommandData, cSize, false); @@ -633,8 +634,8 @@ unsafe internal void SendCommand( /// current open batch, or whether it will be added to a new and separate batch /// which is then immediately closed, leaving the current batch untouched. /// - unsafe internal void SendCommand( - byte *pCommandData, + internal unsafe void SendCommand( + byte* pCommandData, int cSize, bool sendInSeparateBatch) { @@ -642,8 +643,6 @@ unsafe internal void SendCommand( { Invariant.Assert(pCommandData != (byte*)0 && cSize > 0); - int hr = HRESULT.S_OK; - if (_hChannel == IntPtr.Zero) { // @@ -656,21 +655,19 @@ unsafe internal void SendCommand( return; } - hr = UnsafeNativeMethods.MilResource_SendCommand( + UnsafeNativeMethods.MilResource_SendCommand( pCommandData, (uint)cSize, sendInSeparateBatch, - _hChannel); - - HRESULT.Check(hr); + _hChannel).ThrowOnFailureExtended(); } } /// /// BeginCommand opens a command on a channel /// - unsafe internal void BeginCommand( - byte *pbCommandData, + internal unsafe void BeginCommand( + byte* pbCommandData, int cbSize, int cbExtra) { @@ -678,8 +675,6 @@ unsafe internal void BeginCommand( { Invariant.Assert(cbSize > 0); - int hr = HRESULT.S_OK; - if (_hChannel == IntPtr.Zero) { // @@ -692,30 +687,26 @@ unsafe internal void BeginCommand( return; } - hr = UnsafeNativeMethods.MilChannel_BeginCommand( + UnsafeNativeMethods.MilChannel_BeginCommand( _hChannel, pbCommandData, (uint)cbSize, (uint)cbExtra - ); - - HRESULT.Check(hr); + ).ThrowOnFailureExtended(); } } /// /// AppendCommandData appends data to an open command on a channel /// - unsafe internal void AppendCommandData( - byte *pbCommandData, + internal unsafe void AppendCommandData( + byte* pbCommandData, int cbSize) { checked { Invariant.Assert(pbCommandData != (byte*)0 && cbSize > 0); - int hr = HRESULT.S_OK; - if (_hChannel == IntPtr.Zero) { // @@ -728,13 +719,11 @@ unsafe internal void AppendCommandData( return; } - hr = UnsafeNativeMethods.MilChannel_AppendCommandData( + UnsafeNativeMethods.MilChannel_AppendCommandData( _hChannel, pbCommandData, (uint)cbSize - ); - - HRESULT.Check(hr); + ).ThrowOnFailureExtended(); } } @@ -755,31 +744,31 @@ internal void EndCommand() return; } - HRESULT.Check(UnsafeNativeMethods.MilChannel_EndCommand(_hChannel)); + UnsafeNativeMethods.MilChannel_EndCommand(_hChannel).ThrowOnFailureExtended(); } /// /// SendCommand that creates an slave bitmap resource /// internal void SendCommandBitmapSource( - DUCE.ResourceHandle imageHandle, + ResourceHandle imageHandle, BitmapSourceSafeMILHandle pBitmapSource ) { Invariant.Assert(pBitmapSource != null && !pBitmapSource.IsInvalid); Invariant.Assert(_hChannel != IntPtr.Zero); - HRESULT.Check(UnsafeNativeMethods.MilResource_SendCommandBitmapSource( + UnsafeNativeMethods.MilResource_SendCommandBitmapSource( imageHandle, pBitmapSource, - _hChannel)); + _hChannel).ThrowOnFailureExtended(); } /// /// SendCommand that creates an slave media resource /// internal void SendCommandMedia( - DUCE.ResourceHandle mediaHandle, + ResourceHandle mediaHandle, SafeMediaHandle pMedia, bool notifyUceDirect ) @@ -788,12 +777,12 @@ bool notifyUceDirect Invariant.Assert(_hChannel != IntPtr.Zero); - HRESULT.Check(UnsafeNativeMethods.MilResource_SendCommandMedia( + UnsafeNativeMethods.MilResource_SendCommandMedia( mediaHandle, pMedia, _hChannel, notifyUceDirect - )); + ).ThrowOnFailureExtended(); } /// @@ -812,11 +801,11 @@ internal void SetNotificationWindow(IntPtr hwnd, WindowMessage message) { Invariant.Assert(_hChannel != IntPtr.Zero); - HRESULT.Check(UnsafeNativeMethods.MilChannel_SetNotificationWindow( + UnsafeNativeMethods.MilChannel_SetNotificationWindow( _hChannel, hwnd, message - )); + ).ThrowOnFailureExtended(); } /// @@ -831,14 +820,14 @@ internal void WaitForNextMessage() { int waitReturn; - HRESULT.Check(UnsafeNativeMethods.MilComposition_WaitForNextMessage( + UnsafeNativeMethods.MilComposition_WaitForNextMessage( _hChannel, 0, null, 1, /* true */ - waitInfinite, + InfiniteWait, out waitReturn - )); + ).ThrowOnFailureExtended(); } /// @@ -861,12 +850,12 @@ internal bool PeekNextMessage(out MilMessage.Message message) { unsafe { - HRESULT.Check(UnsafeNativeMethods.MilComposition_PeekNextMessage( + UnsafeNativeMethods.MilComposition_PeekNextMessage( _hChannel, out message, (IntPtr)sizeof(MilMessage.Message), out messageRetrieved - )); + ).ThrowOnFailureExtended(); } } @@ -884,9 +873,9 @@ out messageRetrieved /// internal struct Resource { - public static readonly Resource Null = new Resource(DUCE.ResourceHandle.Null); + public static readonly Resource Null = new Resource(ResourceHandle.Null); - private DUCE.ResourceHandle _handle; + private ResourceHandle _handle; #if DEBUG private Channel _debugOnly_Channel; #endif @@ -896,7 +885,7 @@ internal struct Resource /// Creates a resource from a type and ResourceHandle. /// This is currently only used for some hwnd interop code in the VisualManager. /// - public Resource(DUCE.ResourceHandle h) + public Resource(ResourceHandle h) { _handle = h; #if DEBUG @@ -907,7 +896,7 @@ public Resource(DUCE.ResourceHandle h) /// /// CreatesOrAddRefs the resource on the specified channel. /// - public bool CreateOrAddRefOnChannel(object instance, Channel channel, DUCE.ResourceType type) + public bool CreateOrAddRefOnChannel(object instance, Channel channel, ResourceType type) { Debug.Assert(channel != null); #if DEBUG @@ -935,7 +924,7 @@ public bool ReleaseOnChannel(Channel channel) #endif if (channel.ReleaseOnChannel(_handle)) { - _handle = DUCE.ResourceHandle.Null; + _handle = ResourceHandle.Null; return true; } return false; @@ -960,7 +949,7 @@ public bool IsOnChannel(Channel channel) /// Consider moving to an abstract handle type in the future. /// - public DUCE.ResourceHandle Handle { get { return _handle; } } + public ResourceHandle Handle { get { return _handle; } } } /// @@ -1125,7 +1114,7 @@ public bool Remove(object key) if (_others != null) { Debug.Assert(_others.Count > 0); - int j = _others.Count-1; + int j = _others.Count - 1; _first = _others[j]; if (j == 0) // Only one entry in the array. { @@ -1138,8 +1127,8 @@ public bool Remove(object key) } else { - _first = new Entry(); -} + _first = new Entry(); + } return true; } @@ -1228,7 +1217,7 @@ public object Get(int index) return _others[index - 1]._key; } -} + } /// /// This is a generic map that maps a key to a value. It is heavily optimized @@ -1246,14 +1235,14 @@ internal struct Map /// private struct Entry { - public Entry(object k, DUCE.ResourceHandle v) + public Entry(object k, ResourceHandle v) { _key = k; _value = v; } public object _key; - public DUCE.ResourceHandle _value; + public ResourceHandle _value; } private const int FOUND_IN_INLINE_STORAGE = -1; @@ -1308,7 +1297,7 @@ private int Find(object key) /// /// Associates a key with the specified value. If the entry already exits the old value is overriden. /// - public void Set(object key, DUCE.ResourceHandle value) + public void Set(object key, ResourceHandle value) { int index = Find(key); @@ -1341,8 +1330,8 @@ public void Set(object key, DUCE.ResourceHandle value) // ... and replace the single entry _head._key = others; - _head._value = DUCE.ResourceHandle.Null; -} + _head._value = ResourceHandle.Null; + } else { // There's already a List - simply add the new entry to the list. @@ -1405,11 +1394,11 @@ public bool Remove(object key) /// Gets the value for the specified key. If the entry for the specified key could not /// be found the Get method returns false otherwise true. /// - public bool Get(object key, out DUCE.ResourceHandle value) + public bool Get(object key, out ResourceHandle value) { int index = Find(key); - value = DUCE.ResourceHandle.Null; + value = ResourceHandle.Null; if (index == FOUND_IN_INLINE_STORAGE) { @@ -1467,7 +1456,7 @@ public object Get(int index) return ((List)_head._key)[index]._key; } -} + } /// /// ShareableDUCEMultiChannelResource class - this class simply wraps a MultiChannelResource, @@ -1497,10 +1486,10 @@ internal struct MultiChannelResource /// The method is not synchronized. If the resource is used in a multi-threaded scenario, the /// caller is responsible for taking a lock before calling CreateOrAddRefOnChannel or ReleaseOnChannel. /// - public bool CreateOrAddRefOnChannel(object instance, Channel channel, DUCE.ResourceType type) + public bool CreateOrAddRefOnChannel(object instance, Channel channel, ResourceType type) { Debug.Assert(channel != null); - DUCE.ResourceHandle handle; + ResourceHandle handle; bool inmap = _map.Get(channel, out handle); bool created = channel.CreateOrAddRefOnChannel(instance, ref handle, type); @@ -1522,12 +1511,12 @@ public bool CreateOrAddRefOnChannel(object instance, Channel channel, DUCE.Resou /// /// The channel to duplicate the handle from. /// The channel to duplicate the handle to. - public DUCE.ResourceHandle DuplicateHandle(Channel sourceChannel, Channel targetChannel) + public ResourceHandle DuplicateHandle(Channel sourceChannel, Channel targetChannel) { Debug.Assert(sourceChannel != null); - DUCE.ResourceHandle duplicate = DUCE.ResourceHandle.Null; + ResourceHandle duplicate = ResourceHandle.Null; - DUCE.ResourceHandle handle = DUCE.ResourceHandle.Null; + ResourceHandle handle = ResourceHandle.Null; bool found = _map.Get(sourceChannel, out handle); Debug.Assert(found); @@ -1564,7 +1553,7 @@ public bool ReleaseOnChannel(Channel channel) { Debug.Assert(channel != null); - DUCE.ResourceHandle handle; + ResourceHandle handle; bool found = _map.Get(channel, out handle); Debug.Assert(found); @@ -1583,9 +1572,9 @@ public bool ReleaseOnChannel(Channel channel) /// /// Returns the ResourceHandle for this resource on the specified channel. /// - public DUCE.ResourceHandle GetHandle(Channel channel) + public ResourceHandle GetHandle(Channel channel) { - DUCE.ResourceHandle h; + ResourceHandle h; if (channel != null) { @@ -1622,9 +1611,9 @@ public int GetChannelCount() return _map.Count(); } - public DUCE.Channel GetChannel(int index) + public Channel GetChannel(int index) { - return _map.Get(index) as DUCE.Channel; + return _map.Get(index) as Channel; } @@ -1632,7 +1621,7 @@ public uint GetRefCountOnChannel(Channel channel) { Debug.Assert(channel != null); - DUCE.ResourceHandle handle; + ResourceHandle handle; bool found = _map.Get(channel, out handle); Debug.Assert(found); @@ -1647,11 +1636,11 @@ internal static class CompositionNode // Public imports for composition nodes. // internal static void SetTransform( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hTransform, + ResourceHandle hCompositionNode, + ResourceHandle hTransform, Channel channel) { - DUCE.MILCMD_VISUAL_SETTRANSFORM command; + MILCMD_VISUAL_SETTRANSFORM command; command.Type = MILCMD.MilCmdVisualSetTransform; command.Handle = hCompositionNode; @@ -1661,18 +1650,18 @@ internal static void SetTransform( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETTRANSFORM) + sizeof(MILCMD_VISUAL_SETTRANSFORM) ); } } internal static void SetEffect( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hEffect, + ResourceHandle hCompositionNode, + ResourceHandle hEffect, Channel channel) { - DUCE.MILCMD_VISUAL_SETEFFECT command; + MILCMD_VISUAL_SETEFFECT command; command.Type = MILCMD.MilCmdVisualSetEffect; command.Handle = hCompositionNode; @@ -1682,18 +1671,18 @@ internal static void SetEffect( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETEFFECT) + sizeof(MILCMD_VISUAL_SETEFFECT) ); } } internal static void SetCacheMode( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hCacheMode, + ResourceHandle hCompositionNode, + ResourceHandle hCacheMode, Channel channel) { - DUCE.MILCMD_VISUAL_SETCACHEMODE command; + MILCMD_VISUAL_SETCACHEMODE command; command.Type = MILCMD.MilCmdVisualSetCacheMode; command.Handle = hCompositionNode; @@ -1703,18 +1692,18 @@ internal static void SetCacheMode( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETCACHEMODE) + sizeof(MILCMD_VISUAL_SETCACHEMODE) ); } } internal static void SetOffset( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, double offsetX, double offsetY, Channel channel) { - DUCE.MILCMD_VISUAL_SETOFFSET command; + MILCMD_VISUAL_SETOFFSET command; command.Type = MILCMD.MilCmdVisualSetOffset; command.Handle = hCompositionNode; command.offsetX = offsetX; @@ -1724,17 +1713,17 @@ internal static void SetOffset( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETOFFSET) + sizeof(MILCMD_VISUAL_SETOFFSET) ); } } internal static void SetContent( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hContent, + ResourceHandle hCompositionNode, + ResourceHandle hContent, Channel channel) { - DUCE.MILCMD_VISUAL_SETCONTENT command; + MILCMD_VISUAL_SETCONTENT command; command.Type = MILCMD.MilCmdVisualSetContent; command.Handle = hCompositionNode; @@ -1744,17 +1733,17 @@ internal static void SetContent( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETCONTENT) + sizeof(MILCMD_VISUAL_SETCONTENT) ); } } internal static void SetAlpha( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, double alpha, Channel channel) { - DUCE.MILCMD_VISUAL_SETALPHA command; + MILCMD_VISUAL_SETALPHA command; command.Type = MILCMD.MilCmdVisualSetAlpha; command.Handle = hCompositionNode; @@ -1764,17 +1753,17 @@ internal static void SetAlpha( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETALPHA) + sizeof(MILCMD_VISUAL_SETALPHA) ); } } internal static void SetAlphaMask( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hAlphaMaskBrush, + ResourceHandle hCompositionNode, + ResourceHandle hAlphaMaskBrush, Channel channel) { - DUCE.MILCMD_VISUAL_SETALPHAMASK command; + MILCMD_VISUAL_SETALPHAMASK command; command.Type = MILCMD.MilCmdVisualSetAlphaMask; command.Handle = hCompositionNode; @@ -1784,21 +1773,21 @@ internal static void SetAlphaMask( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETALPHAMASK) + sizeof(MILCMD_VISUAL_SETALPHAMASK) ); } } internal static void SetScrollableAreaClip( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, Rect? clip, Channel channel) { - DUCE.MILCMD_VISUAL_SETSCROLLABLEAREACLIP command; + MILCMD_VISUAL_SETSCROLLABLEAREACLIP command; command.Type = MILCMD.MilCmdVisualSetScrollableAreaClip; command.Handle = hCompositionNode; - command.IsEnabled = (uint) (clip.HasValue ? 1 : 0); + command.IsEnabled = (uint)(clip.HasValue ? 1 : 0); if (clip.HasValue) { @@ -1813,17 +1802,17 @@ internal static void SetScrollableAreaClip( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETSCROLLABLEAREACLIP) + sizeof(MILCMD_VISUAL_SETSCROLLABLEAREACLIP) ); } } internal static void SetClip( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hClip, + ResourceHandle hCompositionNode, + ResourceHandle hClip, Channel channel) { - DUCE.MILCMD_VISUAL_SETCLIP command; + MILCMD_VISUAL_SETCLIP command; command.Type = MILCMD.MilCmdVisualSetClip; command.Handle = hCompositionNode; @@ -1833,17 +1822,17 @@ internal static void SetClip( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETCLIP) + sizeof(MILCMD_VISUAL_SETCLIP) ); } } internal static void SetRenderOptions( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, MilRenderOptions renderOptions, Channel channel) { - DUCE.MILCMD_VISUAL_SETRENDEROPTIONS command; + MILCMD_VISUAL_SETRENDEROPTIONS command; command.Type = MILCMD.MilCmdVisualSetRenderOptions; command.Handle = hCompositionNode; @@ -1853,17 +1842,17 @@ internal static void SetRenderOptions( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETRENDEROPTIONS) + sizeof(MILCMD_VISUAL_SETRENDEROPTIONS) ); } -} + } internal static void RemoveChild( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hChild, + ResourceHandle hCompositionNode, + ResourceHandle hChild, Channel channel) { - DUCE.MILCMD_VISUAL_REMOVECHILD command; + MILCMD_VISUAL_REMOVECHILD command; command.Type = MILCMD.MilCmdVisualRemoveChild; command.Handle = hCompositionNode; @@ -1873,16 +1862,16 @@ internal static void RemoveChild( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_REMOVECHILD) + sizeof(MILCMD_VISUAL_REMOVECHILD) ); } } internal static void RemoveAllChildren( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, Channel channel) { - DUCE.MILCMD_VISUAL_REMOVEALLCHILDREN command; + MILCMD_VISUAL_REMOVEALLCHILDREN command; command.Type = MILCMD.MilCmdVisualRemoveAllChildren; command.Handle = hCompositionNode; @@ -1891,18 +1880,18 @@ internal static void RemoveAllChildren( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_REMOVEALLCHILDREN) + sizeof(MILCMD_VISUAL_REMOVEALLCHILDREN) ); } } internal static void InsertChildAt( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hChild, + ResourceHandle hCompositionNode, + ResourceHandle hChild, UInt32 iPosition, Channel channel) { - DUCE.MILCMD_VISUAL_INSERTCHILDAT command; + MILCMD_VISUAL_INSERTCHILDAT command; Debug.Assert(!hCompositionNode.IsNull); command.Type = MILCMD.MilCmdVisualInsertChildAt; @@ -1914,13 +1903,13 @@ internal static void InsertChildAt( { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_INSERTCHILDAT) + sizeof(MILCMD_VISUAL_INSERTCHILDAT) ); } } internal static void SetGuidelineCollection( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, DoubleCollection guidelinesX, DoubleCollection guidelinesY, Channel channel @@ -1928,7 +1917,7 @@ Channel channel { checked { - DUCE.MILCMD_VISUAL_SETGUIDELINECOLLECTION command; + MILCMD_VISUAL_SETGUIDELINECOLLECTION command; Debug.Assert(!hCompositionNode.IsNull); int countX = guidelinesX == null ? 0 : guidelinesX.Count; @@ -1946,7 +1935,7 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETGUIDELINECOLLECTION) + sizeof(MILCMD_VISUAL_SETGUIDELINECOLLECTION) ); } } @@ -1976,7 +1965,7 @@ Channel channel { channel.BeginCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL_SETGUIDELINECOLLECTION), + sizeof(MILCMD_VISUAL_SETGUIDELINECOLLECTION), sizeof(float) * countXY ); @@ -1998,13 +1987,13 @@ Channel channel internal static class Viewport3DVisualNode { internal static void SetCamera( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hCamera, + ResourceHandle hCompositionNode, + ResourceHandle hCamera, Channel channel) { unsafe { - DUCE.MILCMD_VIEWPORT3DVISUAL_SETCAMERA command; + MILCMD_VIEWPORT3DVISUAL_SETCAMERA command; command.Type = MILCMD.MilCmdViewport3DVisualSetCamera; command.Handle = hCompositionNode; @@ -2012,19 +2001,19 @@ internal static void SetCamera( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VIEWPORT3DVISUAL_SETCAMERA) + sizeof(MILCMD_VIEWPORT3DVISUAL_SETCAMERA) ); } } internal static void SetViewport( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, Rect viewport, Channel channel) { unsafe { - DUCE.MILCMD_VIEWPORT3DVISUAL_SETVIEWPORT command; + MILCMD_VIEWPORT3DVISUAL_SETVIEWPORT command; command.Type = MILCMD.MilCmdViewport3DVisualSetViewport; command.Handle = hCompositionNode; @@ -2032,19 +2021,19 @@ internal static void SetViewport( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VIEWPORT3DVISUAL_SETVIEWPORT) + sizeof(MILCMD_VIEWPORT3DVISUAL_SETVIEWPORT) ); } } internal static void Set3DChild( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hVisual3D, + ResourceHandle hCompositionNode, + ResourceHandle hVisual3D, Channel channel) { unsafe { - DUCE.MILCMD_VIEWPORT3DVISUAL_SET3DCHILD command; + MILCMD_VIEWPORT3DVISUAL_SET3DCHILD command; command.Type = MILCMD.MilCmdViewport3DVisualSet3DChild; command.Handle = hCompositionNode; @@ -2052,7 +2041,7 @@ internal static void Set3DChild( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VIEWPORT3DVISUAL_SET3DCHILD) + sizeof(MILCMD_VIEWPORT3DVISUAL_SET3DCHILD) ); } } @@ -2061,13 +2050,13 @@ internal static void Set3DChild( internal static class Visual3DNode { internal static void RemoveChild( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hChild, + ResourceHandle hCompositionNode, + ResourceHandle hChild, Channel channel) { unsafe { - DUCE.MILCMD_VISUAL3D_REMOVECHILD command; + MILCMD_VISUAL3D_REMOVECHILD command; command.Type = MILCMD.MilCmdVisual3DRemoveChild; command.Handle = hCompositionNode; @@ -2075,38 +2064,38 @@ internal static void RemoveChild( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL3D_REMOVECHILD) + sizeof(MILCMD_VISUAL3D_REMOVECHILD) ); } } internal static void RemoveAllChildren( - DUCE.ResourceHandle hCompositionNode, + ResourceHandle hCompositionNode, Channel channel) { unsafe { - DUCE.MILCMD_VISUAL3D_REMOVEALLCHILDREN command; + MILCMD_VISUAL3D_REMOVEALLCHILDREN command; command.Type = MILCMD.MilCmdVisual3DRemoveAllChildren; command.Handle = hCompositionNode; channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL3D_REMOVEALLCHILDREN) + sizeof(MILCMD_VISUAL3D_REMOVEALLCHILDREN) ); } } internal static void InsertChildAt( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hChild, + ResourceHandle hCompositionNode, + ResourceHandle hChild, UInt32 iPosition, Channel channel) { unsafe { - DUCE.MILCMD_VISUAL3D_INSERTCHILDAT command; + MILCMD_VISUAL3D_INSERTCHILDAT command; Debug.Assert(!hCompositionNode.IsNull); command.Type = MILCMD.MilCmdVisual3DInsertChildAt; @@ -2116,19 +2105,19 @@ internal static void InsertChildAt( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL3D_INSERTCHILDAT) + sizeof(MILCMD_VISUAL3D_INSERTCHILDAT) ); } } internal static void SetContent( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hContent, + ResourceHandle hCompositionNode, + ResourceHandle hContent, Channel channel) { unsafe { - DUCE.MILCMD_VISUAL3D_SETCONTENT command; + MILCMD_VISUAL3D_SETCONTENT command; command.Type = MILCMD.MilCmdVisual3DSetContent; command.Handle = hCompositionNode; @@ -2136,19 +2125,19 @@ internal static void SetContent( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL3D_SETCONTENT) + sizeof(MILCMD_VISUAL3D_SETCONTENT) ); } } internal static void SetTransform( - DUCE.ResourceHandle hCompositionNode, - DUCE.ResourceHandle hTransform, + ResourceHandle hCompositionNode, + ResourceHandle hTransform, Channel channel) { unsafe { - DUCE.MILCMD_VISUAL3D_SETTRANSFORM command; + MILCMD_VISUAL3D_SETTRANSFORM command; command.Type = MILCMD.MilCmdVisual3DSetTransform; command.Handle = hCompositionNode; @@ -2156,7 +2145,7 @@ internal static void SetTransform( channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_VISUAL3D_SETTRANSFORM) + sizeof(MILCMD_VISUAL3D_SETTRANSFORM) ); } } @@ -2168,7 +2157,7 @@ internal static class CompositionTarget // Public imports for composition targets. // internal static void HwndInitialize( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, IntPtr hWnd, int nWidth, int nHeight, @@ -2178,7 +2167,7 @@ internal static void HwndInitialize( Channel channel ) { - DUCE.MILCMD_HWNDTARGET_CREATE command; + MILCMD_HWNDTARGET_CREATE command; command.Type = MILCMD.MilCmdHwndTargetCreate; command.Handle = hCompositionTarget; @@ -2222,7 +2211,7 @@ Channel channel } bool? enableMultiMonitorDisplayClipping = - System.Windows.CoreCompatibilityPreferences.EnableMultiMonitorDisplayClipping; + CoreCompatibilityPreferences.EnableMultiMonitorDisplayClipping; if (enableMultiMonitorDisplayClipping != null) { @@ -2231,7 +2220,7 @@ Channel channel if (!enableMultiMonitorDisplayClipping.Value) { - command.flags |= (UInt32) MILRTInitializationFlags.MIL_RT_DISABLE_MULTIMON_DISPLAY_CLIPPING; + command.flags |= (UInt32)MILRTInitializationFlags.MIL_RT_DISABLE_MULTIMON_DISPLAY_CLIPPING; } } @@ -2240,7 +2229,7 @@ Channel channel command.flags |= (UInt32)MILRTInitializationFlags.MIL_RT_DISABLE_DIRTY_RECTANGLES; } - command.hBitmap = DUCE.ResourceHandle.Null; + command.hBitmap = ResourceHandle.Null; command.stride = 0; command.ePixelFormat = 0; command.hSection = 0; @@ -2254,20 +2243,20 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_HWNDTARGET_CREATE), + sizeof(MILCMD_HWNDTARGET_CREATE), false /* sendInSeparateBatch */ ); } } internal static void ProcessDpiChanged( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, DpiScale dpiScale, bool afterParent, Channel channel ) { - DUCE.MILCMD_HWNDTARGET_DPICHANGED command; + MILCMD_HWNDTARGET_DPICHANGED command; command.Type = MILCMD.MilCmdHwndTargetDpiChanged; command.Handle = hCompositionTarget; @@ -2279,20 +2268,20 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_HWNDTARGET_DPICHANGED), + sizeof(MILCMD_HWNDTARGET_DPICHANGED), sendInSeparateBatch: false); } } internal static void PrintInitialize( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, IntPtr pRenderTarget, int nWidth, int nHeight, Channel channel ) { - DUCE.MILCMD_GENERICTARGET_CREATE command; + MILCMD_GENERICTARGET_CREATE command; command.Type = MILCMD.MilCmdGenericTargetCreate; command.Handle = hCompositionTarget; @@ -2306,19 +2295,19 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_GENERICTARGET_CREATE), + sizeof(MILCMD_GENERICTARGET_CREATE), false /* sendInSeparateBatch */ ); } } internal static void SetClearColor( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, Color color, Channel channel ) { - DUCE.MILCMD_TARGET_SETCLEARCOLOR command; + MILCMD_TARGET_SETCLEARCOLOR command; command.Type = MILCMD.MilCmdTargetSetClearColor; command.Handle = hCompositionTarget; @@ -2331,18 +2320,18 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_TARGET_SETCLEARCOLOR) + sizeof(MILCMD_TARGET_SETCLEARCOLOR) ); } } internal static void SetRenderingMode( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, MILRTInitializationFlags nRenderingMode, Channel channel ) { - DUCE.MILCMD_TARGET_SETFLAGS command; + MILCMD_TARGET_SETFLAGS command; command.Type = MILCMD.MilCmdTargetSetFlags; command.Handle = hCompositionTarget; @@ -2352,19 +2341,19 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_TARGET_SETFLAGS) + sizeof(MILCMD_TARGET_SETFLAGS) ); } } internal static void SetRoot( - DUCE.ResourceHandle hCompositionTarget, - DUCE.ResourceHandle hRoot, + ResourceHandle hCompositionTarget, + ResourceHandle hRoot, Channel channel ) { - DUCE.MILCMD_TARGET_SETROOT command; + MILCMD_TARGET_SETROOT command; command.Type = MILCMD.MilCmdTargetSetRoot; command.Handle = hCompositionTarget; @@ -2374,7 +2363,7 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_TARGET_SETROOT) + sizeof(MILCMD_TARGET_SETROOT) ); } } @@ -2394,13 +2383,13 @@ internal static void UpdateWindowSettings( Channel channel ) { - DUCE.MILCMD_TARGET_UPDATEWINDOWSETTINGS command; + MILCMD_TARGET_UPDATEWINDOWSETTINGS command; command.Type = MILCMD.MilCmdTargetUpdateWindowSettings; command.Handle = hCompositionTarget; command.renderingEnabled = (uint)(renderingEnabled ? 1 : 0); - command.disableCookie = (uint) disableCookie; + command.disableCookie = (uint)disableCookie; command.windowRect = windowRect; @@ -2420,18 +2409,18 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_TARGET_UPDATEWINDOWSETTINGS) + sizeof(MILCMD_TARGET_UPDATEWINDOWSETTINGS) ); } } internal static void Invalidate( - DUCE.ResourceHandle hCompositionTarget, + ResourceHandle hCompositionTarget, ref NativeMethods.RECT pRect, Channel channel ) { - DUCE.MILCMD_TARGET_INVALIDATE command; + MILCMD_TARGET_INVALIDATE command; command.Type = MILCMD.MilCmdTargetInvalidate; command.Handle = hCompositionTarget; @@ -2441,7 +2430,7 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_TARGET_INVALIDATE), + sizeof(MILCMD_TARGET_INVALIDATE), false /* sendInSeparateBatch */ ); } @@ -2460,7 +2449,7 @@ internal static void NotifyPolicyChangeForNonInteractiveMode( Channel channel ) { - var command = new DUCE.MILCMD_PARTITION_NOTIFYPOLICYCHANGEFORNONINTERACTIVEMODE + var command = new MILCMD_PARTITION_NOTIFYPOLICYCHANGEFORNONINTERACTIVEMODE { Type = MILCMD.MilCmdPartitionNotifyPolicyChangeForNonInteractiveMode, ShouldRenderEvenWhenNoDisplayDevicesAreAvailable = (forceRender ? 1u : 0u) @@ -2470,7 +2459,7 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_PARTITION_NOTIFYPOLICYCHANGEFORNONINTERACTIVEMODE), + sizeof(MILCMD_PARTITION_NOTIFYPOLICYCHANGEFORNONINTERACTIVEMODE), sendInSeparateBatch: false ); } @@ -2481,12 +2470,12 @@ Channel channel internal static class ETWEvent { internal static void RaiseEvent( - DUCE.ResourceHandle hEtwEvent, + ResourceHandle hEtwEvent, UInt32 id, Channel channel ) { - DUCE.MILCMD_ETWEVENTRESOURCE command; + MILCMD_ETWEVENTRESOURCE command; command.Type = MILCMD.MilCmdEtwEventResource; command.Handle = hEtwEvent; @@ -2496,7 +2485,7 @@ Channel channel { channel.SendCommand( (byte*)&command, - sizeof(DUCE.MILCMD_ETWEVENTRESOURCE) + sizeof(MILCMD_ETWEVENTRESOURCE) ); } } @@ -2508,15 +2497,15 @@ Channel channel /// internal interface IResource { - DUCE.ResourceHandle AddRefOnChannel(Channel channel); + ResourceHandle AddRefOnChannel(Channel channel); int GetChannelCount(); - DUCE.Channel GetChannel(int index); + Channel GetChannel(int index); void ReleaseOnChannel(Channel channel); - DUCE.ResourceHandle GetHandle(Channel channel); + ResourceHandle GetHandle(Channel channel); /// /// Only Vieport3DVisual and Visual3D implement this. @@ -2524,7 +2513,7 @@ internal interface IResource /// and the other one stored in _proxy3D. This function returns /// the handle stored in _proxy3D. /// - DUCE.ResourceHandle Get3DHandle(Channel channel); + ResourceHandle Get3DHandle(Channel channel); /// /// Sends a command to compositor to remove the child @@ -2532,7 +2521,7 @@ internal interface IResource /// void RemoveChildFromParent( IResource parent, - DUCE.Channel channel); + Channel channel); } } } diff --git a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_error.cs b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_error.cs deleted file mode 100644 index a0d54aba740..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_error.cs +++ /dev/null @@ -1,172 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// -// - -namespace MS.Internal -{ - #region Enumeration Types - - internal enum WinCodecErrors - { - // Range 0x?8982000 - 0x?8982FFF - WINCODEC_ERR_GENERIC_ERROR = unchecked((int) 0x80004005), - WINCODEC_ERR_INVALIDPARAMETER = unchecked((int) 0x80000003), - WINCODEC_ERR_OUTOFMEMORY = unchecked((int) 0x80000002), - WINCODEC_ERR_NOTIMPLEMENTED = unchecked((int) 0x80000001), - WINCODEC_ERR_ABORTED = unchecked((int) 0x80004004), - WINCODEC_ERR_ACCESSDENIED = unchecked((int) 0x80070005), - WINCODEC_ERR_VALUEOVERFLOW = unchecked((int) 0x80070216), - WINCODEC_ERR_WRONGSTATE = unchecked((int) 0x88982f04), - WINCODEC_ERR_VALUEOUTOFRANGE = unchecked((int) 0x88982f05), - WINCODEC_ERR_UNKNOWNIMAGEFORMAT = unchecked((int) 0x88982f07), - WINCODEC_ERR_UNSUPPORTEDVERSION = unchecked((int) 0x88982f0B), - WINCODEC_ERR_NOTINITIALIZED = unchecked((int) 0x88982f0C), - WINCODEC_ERR_ALREADYLOCKED = unchecked((int) 0x88982f0D), - WINCODEC_ERR_PROPERTYNOTFOUND = unchecked((int) 0x88982f40), - WINCODEC_ERR_PROPERTYNOTSUPPORTED = unchecked((int) 0x88982f41), - WINCODEC_ERR_PROPERTYSIZE = unchecked((int) 0x88982f42), - WINCODEC_ERR_CODECPRESENT = unchecked((int) 0x88982f43), - WINCODEC_ERR_CODECNOTHUMBNAIL = unchecked((int) 0x88982f44), - WINCODEC_ERR_PALETTEUNAVAILABLE = unchecked((int) 0x88982f45), - WINCODEC_ERR_CODECTOOMANYSCANLINES = unchecked((int) 0x88982f46), - WINCODEC_ERR_INTERNALERROR = unchecked((int) 0x88982f48), - WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS = unchecked((int) 0x88982f49), - WINCODEC_ERR_COMPONENTNOTFOUND = unchecked((int) 0x88982f50), - WINCODEC_ERR_IMAGESIZEOUTOFRANGE = unchecked((int) 0x88982f51), - WINCODEC_ERR_TOOMUCHMETADATA = unchecked((int) 0x88982f52), - WINCODEC_ERR_BADIMAGE = unchecked((int) 0x88982f60), - WINCODEC_ERR_BADHEADER = unchecked((int) 0x88982f61), - WINCODEC_ERR_FRAMEMISSING = unchecked((int) 0x88982f62), - WINCODEC_ERR_BADMETADATAHEADER = unchecked((int) 0x88982f63), - WINCODEC_ERR_BADSTREAMDATA = unchecked((int) 0x88982f70), - WINCODEC_ERR_STREAMWRITE = unchecked((int) 0x88982f71), - WINCODEC_ERR_STREAMREAD = unchecked((int) 0x88982f72), - WINCODEC_ERR_STREAMNOTAVAILABLE = unchecked((int) 0x88982f73), - WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT = unchecked((int) 0x88982f80), - WINCODEC_ERR_UNSUPPORTEDOPERATION = unchecked((int) 0x88982f81), - WINCODEC_ERR_INVALIDREGISTRATION = unchecked((int) 0x88982f8A), - WINCODEC_ERR_COMPONENTINITIALIZEFAILURE = unchecked((int) 0x88982f8B), - WINCODEC_ERR_INSUFFICIENTBUFFER = unchecked((int) 0x88982f8C), - WINCODEC_ERR_DUPLICATEMETADATAPRESENT = unchecked((int) 0x88982f8D), - WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE = unchecked((int) 0x88982f8E), - WINCODEC_ERR_UNEXPECTEDSIZE = unchecked((int) 0x88982f8F), - WINCODEC_ERR_INVALIDQUERYREQUEST = unchecked((int) 0x88982f90), - WINCODEC_ERR_UNEXPECTEDMETADATATYPE = unchecked((int) 0x88982f91), - WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT = unchecked((int) 0x88982f92), - WINCODEC_ERR_INVALIDQUERYCHARACTER = unchecked((int) 0x88982f93), - }; - - internal enum MILErrors - { - // Range 0x?8980000 - 0x?8980FFF - WGXHR_CLIPPEDTOEMPTY = unchecked((int) 0x8980001), - WGXHR_EMPTYFILL = unchecked((int) 0x8980002), - WGXHR_INTERNALTEMPORARYSUCCESS = unchecked((int) 0x8980003), - WGXHR_RESETSHAREDHANDLEMANAGER = unchecked((int) 0x8980004), - WGXERR_GENERIC_ERROR = unchecked((int) 0x80004005), - WGXERR_INVALIDPARAMETER = unchecked((int) 0x80000003), - WGXERR_OUTOFMEMORY = unchecked((int) 0x80000002), - WGXERR_NOTIMPLEMENTED = unchecked((int) 0x80000001), - WGXERR_ABORTED = unchecked((int) 0x80004004), - WGXERR_ACCESSDENIED = unchecked((int) 0x80070005), - WGXERR_VALUEOVERFLOW = unchecked((int) 0x80070216), - WGXERR_WRONGSTATE = WinCodecErrors.WINCODEC_ERR_WRONGSTATE, - WGXERR_UNSUPPORTEDVERSION = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDVERSION, - WGXERR_NOTINITIALIZED = WinCodecErrors.WINCODEC_ERR_NOTINITIALIZED, - WGXERR_UNSUPPORTEDPIXELFORMAT = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT, - WGXERR_UNSUPPORTED_OPERATION = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION, - WGXERR_PALETTEUNAVAILABLE = WinCodecErrors.WINCODEC_ERR_PALETTEUNAVAILABLE, - WGXERR_OBJECTBUSY = unchecked((int) 0x88980001), - WGXERR_INSUFFICIENTBUFFER = unchecked((int) 0x88980002), - WGXERR_WIN32ERROR = unchecked((int) 0x88980003), - WGXERR_SCANNER_FAILED = unchecked((int) 0x88980004), - WGXERR_SCREENACCESSDENIED = unchecked((int) 0x88980005), - WGXERR_DISPLAYSTATEINVALID = unchecked((int) 0x88980006), - WGXERR_NONINVERTIBLEMATRIX = unchecked((int) 0x88980007), - WGXERR_ZEROVECTOR = unchecked((int) 0x88980008), - WGXERR_TERMINATED = unchecked((int) 0x88980009), - WGXERR_BADNUMBER = unchecked((int) 0x8898000A), - WGXERR_INTERNALERROR = unchecked((int) 0x88980080), - WGXERR_DISPLAYFORMATNOTSUPPORTED = unchecked((int) 0x88980084), - WGXERR_INVALIDCALL = unchecked((int) 0x88980085), - WGXERR_ALREADYLOCKED = unchecked((int) 0x88980086), - WGXERR_NOTLOCKED = unchecked((int) 0x88980087), - WGXERR_DEVICECANNOTRENDERTEXT = unchecked((int) 0x88980088), - WGXERR_GLYPHBITMAPMISSED = unchecked((int) 0x88980089), - WGXERR_MALFORMEDGLYPHCACHE = unchecked((int) 0x8898008A), - WGXERR_GENERIC_IGNORE = unchecked((int) 0x8898008B), - WGXERR_MALFORMED_GUIDELINE_DATA = unchecked((int) 0x8898008C), - WGXERR_NO_HARDWARE_DEVICE = unchecked((int) 0x8898008D), - WGXERR_NEED_RECREATE_AND_PRESENT = unchecked((int) 0x8898008E), - WGXERR_ALREADY_INITIALIZED = unchecked((int) 0x8898008F), - WGXERR_MISMATCHED_SIZE = unchecked((int) 0x88980090), - WGXERR_NO_REDIRECTION_SURFACE_AVAILABLE = unchecked((int) 0x88980091), - WGXERR_REMOTING_NOT_SUPPORTED = unchecked((int) 0x88980092), - WGXERR_QUEUED_PRESENT_NOT_SUPPORTED = unchecked((int) 0x88980093), - WGXERR_NOT_QUEUING_PRESENTS = unchecked((int) 0x88980094), - WGXERR_NO_REDIRECTION_SURFACE_RETRY_LATER = unchecked((int) 0x88980095), - WGXERR_TOOMANYSHADERELEMNTS = unchecked((int) 0x88980096), - // AVAILABLE = unchecked((int) 0x88980097), - // AVAILABLE = unchecked((int) 0x88980098), - WGXERR_SHADER_COMPILE_FAILED = unchecked((int) 0x88980099), - WGXERR_MAX_TEXTURE_SIZE_EXCEEDED = unchecked((int) 0x8898009A), - // AVAILABLE = unchecked((int) 0x8898009B), - WGXERR_UCE_INVALIDPACKETHEADER = unchecked((int) 0x88980400), - WGXERR_UCE_UNKNOWNPACKET = unchecked((int) 0x88980401), - WGXERR_UCE_ILLEGALPACKET = unchecked((int) 0x88980402), - WGXERR_UCE_MALFORMEDPACKET = unchecked((int) 0x88980403), - WGXERR_UCE_ILLEGALHANDLE = unchecked((int) 0x88980404), - WGXERR_UCE_HANDLELOOKUPFAILED = unchecked((int) 0x88980405), - WGXERR_UCE_RENDERTHREADFAILURE = unchecked((int) 0x88980406), - WGXERR_UCE_CTXSTACKFRSTTARGETNULL = unchecked((int) 0x88980407), - WGXERR_UCE_CONNECTIONIDLOOKUPFAILED = unchecked((int) 0x88980408), - WGXERR_UCE_BLOCKSFULL = unchecked((int) 0x88980409), - WGXERR_UCE_MEMORYFAILURE = unchecked((int) 0x8898040A), - WGXERR_UCE_PACKETRECORDOUTOFRANGE = unchecked((int) 0x8898040B), - WGXERR_UCE_ILLEGALRECORDTYPE = unchecked((int) 0x8898040C), - WGXERR_UCE_OUTOFHANDLES = unchecked((int) 0x8898040D), - WGXERR_UCE_UNCHANGABLE_UPDATE_ATTEMPTED = unchecked((int) 0x8898040E), - WGXERR_UCE_NO_MULTIPLE_WORKER_THREADS = unchecked((int) 0x8898040F), - WGXERR_UCE_REMOTINGNOTSUPPORTED = unchecked((int) 0x88980410), - WGXERR_UCE_MISSINGENDCOMMAND = unchecked((int) 0x88980411), - WGXERR_UCE_MISSINGBEGINCOMMAND = unchecked((int) 0x88980412), - WGXERR_UCE_CHANNELSYNCTIMEDOUT = unchecked((int) 0x88980413), - WGXERR_UCE_CHANNELSYNCABANDONED = unchecked((int) 0x88980414), - WGXERR_UCE_UNSUPPORTEDTRANSPORTVERSION = unchecked((int) 0x88980415), - WGXERR_UCE_TRANSPORTUNAVAILABLE = unchecked((int) 0x88980416), - WGXERR_UCE_FEEDBACK_UNSUPPORTED = unchecked((int) 0x88980417), - WGXERR_UCE_COMMANDTRANSPORTDENIED = unchecked((int) 0x88980418), - WGXERR_UCE_GRAPHICSSTREAMUNAVAILABLE = unchecked((int) 0x88980419), - WGXERR_UCE_GRAPHICSSTREAMALREADYOPEN = unchecked((int) 0x88980420), - WGXERR_UCE_TRANSPORTDISCONNECTED = unchecked((int) 0x88980421), - WGXERR_UCE_TRANSPORTOVERLOADED = unchecked((int) 0x88980422), - WGXERR_UCE_PARTITION_ZOMBIED = unchecked((int) 0x88980423), - WGXERR_UCE_USER_SHADEREFFECT_ERROR = unchecked((int) 0x88980424), - WGXERR_AV_NOCLOCK = unchecked((int) 0x88980500), - WGXERR_AV_NOMEDIATYPE = unchecked((int) 0x88980501), - WGXERR_AV_NOVIDEOMIXER = unchecked((int) 0x88980502), - WGXERR_AV_NOVIDEOPRESENTER = unchecked((int) 0x88980503), - WGXERR_AV_NOREADYFRAMES = unchecked((int) 0x88980504), - WGXERR_AV_MODULENOTLOADED = unchecked((int) 0x88980505), - WGXERR_AV_WMPFACTORYNOTREGISTERED = unchecked((int) 0x88980506), - WGXERR_AV_INVALIDWMPVERSION = unchecked((int) 0x88980507), - WGXERR_AV_INSUFFICIENTVIDEORESOURCES = unchecked((int) 0x88980508), - WGXERR_AV_VIDEOACCELERATIONNOTAVAILABLE = unchecked((int) 0x88980509), - WGXERR_AV_REQUESTEDTEXTURETOOBIG = unchecked((int) 0x8898050A), - WGXERR_AV_SEEKFAILED = unchecked((int) 0x8898050B), - WGXERR_AV_UNEXPECTEDWMPFAILURE = unchecked((int) 0x8898050C), - WGXERR_AV_MEDIAPLAYERCLOSED = unchecked((int) 0x8898050D), - WGXERR_AV_UNKNOWNHARDWAREERROR = unchecked((int) 0x8898050E), - WGXERR_D3DI_INVALIDSURFACEUSAGE = unchecked((int) 0x88980800), - WGXERR_D3DI_INVALIDSURFACESIZE = unchecked((int) 0x88980801), - WGXERR_D3DI_INVALIDSURFACEPOOL = unchecked((int) 0x88980802), - WGXERR_D3DI_INVALIDSURFACEDEVICE = unchecked((int) 0x88980803), - WGXERR_D3DI_INVALIDANTIALIASINGSETTINGS = unchecked((int) 0x88980804) - }; - - #endregion -} - diff --git a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_exports.cs b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_exports.cs index 5c6ea9c459a..9c7c5df379e 100644 --- a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_exports.cs +++ b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_exports.cs @@ -1,11 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace MS.Internal { @@ -14,13 +14,13 @@ namespace MS.Internal internal static class MILRenderTargetBitmap { [DllImport(DllImport.MilCore, EntryPoint="MILRenderTargetBitmapGetBitmap")]//CASRemoval: - internal static extern int /*HRESULT*/ + internal static extern HRESULT GetBitmap( SafeMILHandle /* IMILRenderTargetBitmap */ THIS_PTR, out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.MilCore, EntryPoint = "MILRenderTargetBitmapClear")] - internal static extern int /*HRESULT*/ + internal static extern HRESULT Clear( SafeMILHandle /* IMILRenderTargetBitmap */ THIS_PTR); } @@ -32,121 +32,121 @@ internal static extern int /*HRESULT*/ internal static class MILMedia { [DllImport(DllImport.MilCore, EntryPoint="MILMediaOpen")] - internal static extern int /* HRESULT */ Open( + internal static extern HRESULT Open( SafeMediaHandle /* IMILMedia */ THIS_PTR, [In, MarshalAs(UnmanagedType.BStr)] string /* LPOLESTR */ src ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaStop")]//CASRemoval: - internal static extern int /* HRESULT */ Stop( + internal static extern HRESULT Stop( SafeMediaHandle /* IMILMedia */ THIS_PTR ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaClose")]//CASRemoval: - internal static extern int /*HRESULT */ Close( + internal static extern HRESULT Close( SafeMediaHandle /* IMILMedia */ THIS_PTR ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetPosition")]//CASRemoval: - internal static extern int /* HRESULT */ GetPosition( + internal static extern HRESULT GetPosition( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref long pllTime); [DllImport(DllImport.MilCore, EntryPoint="MILMediaSetPosition")]//CASRemoval: - internal static extern int /* HRESULT */ SetPosition( + internal static extern HRESULT SetPosition( SafeMediaHandle /* IMILMedia */ THIS_PTR, long llTime); [DllImport(DllImport.MilCore, EntryPoint="MILMediaSetVolume")]//CASRemoval: - internal static extern int /* HRESULT */ SetVolume( + internal static extern HRESULT SetVolume( SafeMediaHandle /* IMILMedia */ THIS_PTR, double dblVolume ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaSetBalance")] - internal static extern int /* HRESULT */ SetBalance( + internal static extern HRESULT SetBalance( SafeMediaHandle /* IMILMedia */ THIS_PTR, double dblBalance ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaSetIsScrubbingEnabled")] - internal static extern int /* HRESULT */ SetIsScrubbingEnabled( + internal static extern HRESULT SetIsScrubbingEnabled( SafeMediaHandle /* IMILMedia */ THIS_PTR, bool isScrubbingEnabled ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaIsBuffering")]//CASRemoval: - internal static extern int /* HRESULT */ IsBuffering( + internal static extern HRESULT IsBuffering( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref bool pIsBuffering ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaCanPause")]//CASRemoval: - internal static extern int /* HRESULT */ CanPause( + internal static extern HRESULT CanPause( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref bool pCanPause ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetDownloadProgress")]//CASRemoval: - internal static extern int /* HRESULT */ GetDownloadProgress( + internal static extern HRESULT GetDownloadProgress( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref double pProgress ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetBufferingProgress")]//CASRemoval: - internal static extern int /* HRESULT */ GetBufferingProgress( + internal static extern HRESULT GetBufferingProgress( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref double pProgress ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaSetRate")]//CASRemoval: - internal static extern int /* HRESULT */ SetRate( + internal static extern HRESULT SetRate( SafeMediaHandle /* IMILMedia */ THIS_PTR, double dblRate ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaHasVideo")]//CASRemoval: - internal static extern int /* HRESULT */ HasVideo( + internal static extern HRESULT HasVideo( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref bool pfHasVideo ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaHasAudio")]//CASRemoval: - internal static extern int /* HRESULT */ HasAudio( + internal static extern HRESULT HasAudio( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref bool pfHasAudio ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetNaturalHeight")]//CASRemoval: - internal static extern int /* HRESULT */ GetNaturalHeight( + internal static extern HRESULT GetNaturalHeight( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref UInt32 puiHeight ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetNaturalWidth")]//CASRemoval: - internal static extern int /* HRESULT */ GetNaturalWidth( + internal static extern HRESULT GetNaturalWidth( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref UInt32 puiWidth ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaGetMediaLength")]//CASRemoval: - internal static extern int /* HRESULT */ GetMediaLength( + internal static extern HRESULT GetMediaLength( SafeMediaHandle /* IMILMedia */ THIS_PTR, ref long pllLength ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaNeedUIFrameUpdate")] - internal static extern int /* HRESULT */ NeedUIFrameUpdate( + internal static extern HRESULT NeedUIFrameUpdate( SafeMediaHandle /* IMILMedia */ THIS_PTR ); [DllImport(DllImport.MilCore, EntryPoint="MILMediaShutdown")]//CASRemoval: - internal static extern int /* HRESULT */ Shutdown( + internal static extern HRESULT Shutdown( IntPtr /* IMILMedia */ THIS_PTR ); [DllImport(DllImport.MilCore, EntryPoint = "MILMediaProcessExitHandler")] - internal static extern int /*HRESULT*/ ProcessExitHandler( + internal static extern HRESULT ProcessExitHandler( SafeMediaHandle /* IMILMedia */ THIS_PTR ); } @@ -156,7 +156,7 @@ ref long pllLength internal static class MILSwDoubleBufferedBitmap { [DllImport(DllImport.MilCore, EntryPoint = "MILSwDoubleBufferedBitmapCreate")] - internal static extern int /* HRESULT */ Create( + internal static extern HRESULT Create( uint width, uint height, double dpiX, @@ -179,7 +179,7 @@ ref Int32Rect dirtyRect ); [DllImport(DllImport.MilCore, EntryPoint = "MILSwDoubleBufferedBitmapProtectBackBuffer")] - internal static extern int /* HRESULT */ ProtectBackBuffer( + internal static extern HRESULT ProtectBackBuffer( SafeMILHandle /* CSwDoubleBufferedBitmap */ THIS_PTR ); } @@ -192,7 +192,7 @@ ref Int32Rect dirtyRect internal static class MILUpdateSystemParametersInfo { [DllImport(DllImport.MilCore, EntryPoint="MILUpdateSystemParametersInfo")] - internal static extern int /* HRESULT */ + internal static extern HRESULT Update(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_render.cs b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_render.cs index 9a92a0dbb05..5edf714dd35 100644 --- a/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_render.cs +++ b/src/Microsoft.DotNet.Wpf/src/Common/Graphics/wgx_render.cs @@ -1,28 +1,8 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Runtime.InteropServices; namespace MS.Internal { - #region Enumeration Types - - internal enum NtStatusErrors - { - NT_STATUS_NO_MEMORY = unchecked((int)0xC0000017) - } - - internal enum MediaPlayerErrors - { - NS_E_WMP_LOGON_FAILURE = unchecked((int)0xC00D1196L), - NS_E_WMP_CANNOT_FIND_FILE = unchecked((int)0xC00D1197L), - NS_E_WMP_UNSUPPORTED_FORMAT = unchecked((int)0xC00D1199L), - NS_E_WMP_DSHOW_UNSUPPORTED_FORMAT = unchecked((int)0xC00D119AL), - NS_E_WMP_INVALID_ASX = unchecked((int)0xC00D119DL), - NS_E_WMP_URLDOWNLOADFAILED = unchecked((int)0xC00D0FEAL), - } - internal enum LockFlags { MIL_LOCK_READ = 0x00000001, @@ -320,299 +300,6 @@ internal enum WICPaletteType WICPaletteTypeFixedGray256 = 12 }; - internal enum MILCompoundStyle - { - MILCompoundStyleSingle = 0, - MILCompoundStyleDouble = 1, - MILCompoundStyleTriple = 2, - MILCompoundStyleCustom = 3, - MILCOMPOUNDSTYLE_FORCE_DWORD = 0x7FFFFFFF // MIL_FORCE_DWORD - } - - internal enum MILLineJoin - { - MILLineJoinMiter = 0, - MILLineJoinBevel = 1, - MILLineJoinRound = 2, - MILLineJoinMiterClipped = 3, - MILLINEJOIN_FORCE_DWORD = 0x7FFFFFFF // MIL_FORCE_DWORD - } - - - internal enum MILDashStyle - { - MILDashStyleSolid = 0, - MILDashStyleDash = 1, - MILDashStyleDot = 2, - MILDashStyleDashDot = 3, - MILDashStyleDashDotDot = 4, - MILDashStyleCustom = 5, - MILDASHSTYLE_FORCE_DWORD = 0x7FFFFFFF // MIL_FORCE_DWORD - } - - internal enum MILPropTypes - { - MILPropertyItemTypeInvalid = 0, - MILPropertyItemTypeByte = 1, - MILPropertyItemTypeASCII = 2, - MILPropertyItemTypeWord = 3, - MILPropertyItemTypeLong = 4, - MILPropertyItemTypeRational = 5, - MILPropertyItemTypeUndefined = 7, - MILPropertyItemTypeSLong = 9, - MILPropertyItemTypeSRational = 10, - - MILPropertyItemTypeMax = 0xFFFF, - } - - internal enum MILPropIDs: uint - { - MILPropertyItemIdInvalid = 0x0, - MILPropertyItemIdNewSubfileType = 0x00FE, - MILPropertyItemIdSubfileType = 0x00FF, - MILPropertyItemIdImageWidth = 0x0100, - MILPropertyItemIdImageHeight = 0x0101, - MILPropertyItemIdBitsPerSample = 0x0102, - MILPropertyItemIdCompression = 0x0103, - MILPropertyItemIdPhotometricInterp = 0x0106, - MILPropertyItemIdThreshHolding = 0x0107, - MILPropertyItemIdCellWidth = 0x0108, - MILPropertyItemIdCellHeight = 0x0109, - MILPropertyItemIdFillOrder = 0x010A, - MILPropertyItemIdDocumentName = 0x010D, - MILPropertyItemIdImageDescription = 0x010E, - MILPropertyItemIdEquipMake = 0x010F, - MILPropertyItemIdEquipModel = 0x0110, - MILPropertyItemIdStripOffsets = 0x0111, - MILPropertyItemIdOrientation = 0x0112, - MILPropertyItemIdSamplesPerPixel = 0x0115, - MILPropertyItemIdRowsPerStrip = 0x0116, - MILPropertyItemIdStripBytesCount = 0x0117, - MILPropertyItemIdMinSampleValue = 0x0118, - MILPropertyItemIdMaxSampleValue = 0x0119, - MILPropertyItemIdXResolution = 0x011A, - MILPropertyItemIdYResolution = 0x011B, - MILPropertyItemIdPlanarConfig = 0x011C, - MILPropertyItemIdPageName = 0x011D, - MILPropertyItemIdXPosition = 0x011E, - MILPropertyItemIdYPosition = 0x011F, - MILPropertyItemIdFreeOffset = 0x0120, - MILPropertyItemIdFreeByteCounts = 0x0121, - MILPropertyItemIdGrayResponseUnit = 0x0122, - MILPropertyItemIdGrayResponseCurve = 0x0123, - MILPropertyItemIdT4Option = 0x0124, - MILPropertyItemIdT6Option = 0x0125, - MILPropertyItemIdResolutionUnit = 0x0128, - MILPropertyItemIdPageNumber = 0x0129, - MILPropertyItemIdTransferFuncition = 0x012D, - MILPropertyItemIdSoftwareUsed = 0x0131, - MILPropertyItemIdDateTime = 0x0132, - MILPropertyItemIdArtist = 0x013B, - MILPropertyItemIdHostComputer = 0x013C, - MILPropertyItemIdPredictor = 0x013D, - MILPropertyItemIdWhitePoint = 0x013E, - MILPropertyItemIdPrimaryChromaticities = 0x013F, - MILPropertyItemIdColorMap = 0x0140, - MILPropertyItemIdHalftoneHints = 0x0141, - MILPropertyItemIdTileWidth = 0x0142, - MILPropertyItemIdTileLength = 0x0143, - MILPropertyItemIdTileOffset = 0x0144, - MILPropertyItemIdTileByteCounts = 0x0145, - MILPropertyItemIdInkSet = 0x014C, - MILPropertyItemIdInkNames = 0x014D, - MILPropertyItemIdNumberOfInks = 0x014E, - MILPropertyItemIdDotRange = 0x0150, - MILPropertyItemIdTargetPrinter = 0x0151, - MILPropertyItemIdExtraSamples = 0x0152, - MILPropertyItemIdSampleFormat = 0x0153, - MILPropertyItemIdSMinSampleValue = 0x0154, - MILPropertyItemIdSMaxSampleValue = 0x0155, - MILPropertyItemIdTransferRange = 0x0156, - MILPropertyItemIdScreenWidth = 0x0157, - MILPropertyItemIdScreenHeight = 0x0158, - - MILPropertyItemIdJPEGProc = 0x0200, - MILPropertyItemIdJPEGInterFormat = 0x0201, - MILPropertyItemIdJPEGInterLength = 0x0202, - MILPropertyItemIdJPEGRestartInterval = 0x0203, - MILPropertyItemIdJPEGLosslessPredictors = 0x0205, - MILPropertyItemIdJPEGPointTransforms = 0x0206, - MILPropertyItemIdJPEGQTables = 0x0207, - MILPropertyItemIdJPEGDCTables = 0x0208, - MILPropertyItemIdJPEGACTables = 0x0209, - MILPropertyItemIdYCbCrCoefficients = 0x0211, - MILPropertyItemIdYCbCrSubsampling = 0x0212, - MILPropertyItemIdYCbCrPositioning = 0x0213, - MILPropertyItemIdREFBlackWhite = 0x0214, - MILPropertyItemIdInterlaced = 0x0215, - - MILPropertyItemIdGamma = 0x0301, - MILPropertyItemIdICCProfileDescriptor = 0x0302, - MILPropertyItemIdSRGBRenderingIntent = 0x0303, - MILPropertyItemIdICCProfile = 0x8773, - - MILPropertyItemIdImageTitle = 0x0320, - MILPropertyItemIdCopyright = 0x8298, - - // Extra IDs (Like Adobe Image Information ids etc.) - - MILPropertyItemIdResolutionXUnit = 0x5001, - MILPropertyItemIdResolutionYUnit = 0x5002, - MILPropertyItemIdResolutionXLengthUnit = 0x5003, - MILPropertyItemIdResolutionYLengthUnit = 0x5004, - MILPropertyItemIdPrintFlags = 0x5005, - MILPropertyItemIdPrintFlagsVersion = 0x5006, - MILPropertyItemIdPrintFlagsCrop = 0x5007, - MILPropertyItemIdPrintFlagsBleedWidth = 0x5008, - MILPropertyItemIdPrintFlagsBleedWidthScale = 0x5009, - MILPropertyItemIdHalftoneLPI = 0x500A, - MILPropertyItemIdHalftoneLPIUnit = 0x500B, - MILPropertyItemIdHalftoneDegree = 0x500C, - MILPropertyItemIdHalftoneShape = 0x500D, - MILPropertyItemIdHalftoneMisc = 0x500E, - MILPropertyItemIdHalftoneScreen = 0x500F, - MILPropertyItemIdJPEGQuality = 0x5010, - MILPropertyItemIdGridSize = 0x5011, - MILPropertyItemIdThumbnailFormat = 0x5012, - MILPropertyItemIdThumbnailWidth = 0x5013, - MILPropertyItemIdThumbnailHeight = 0x5014, - MILPropertyItemIdThumbnailColorDepth = 0x5015, - MILPropertyItemIdThumbnailPlanes = 0x5016, - MILPropertyItemIdThumbnailRawBytes = 0x5017, - MILPropertyItemIdThumbnailSize = 0x5018, - MILPropertyItemIdThumbnailCompressedSize = 0x5019, - MILPropertyItemIdColorTransferFunction = 0x501A, - MILPropertyItemIdThumbnailData = 0x501B, - - // Thumbnail related ids - - MILPropertyItemIdThumbnailImageWidth = 0x5020, - MILPropertyItemIdThumbnailImageHeight = 0x5021, - MILPropertyItemIdThumbnailBitsPerSample = 0x5022, - MILPropertyItemIdThumbnailCompression = 0x5023, - MILPropertyItemIdThumbnailPhotometricInterp = 0x5024, - MILPropertyItemIdThumbnailImageDescription = 0x5025, - MILPropertyItemIdThumbnailEquipMake = 0x5026, - MILPropertyItemIdThumbnailEquipModel = 0x5027, - MILPropertyItemIdThumbnailStripOffsets = 0x5028, - MILPropertyItemIdThumbnailOrientation = 0x5029, - MILPropertyItemIdThumbnailSamplesPerPixel = 0x502A, - MILPropertyItemIdThumbnailRowsPerStrip = 0x502B, - MILPropertyItemIdThumbnailStripBytesCount = 0x502C, - MILPropertyItemIdThumbnailResolutionX = 0x502D, - MILPropertyItemIdThumbnailResolutionY = 0x502E, - MILPropertyItemIdThumbnailPlanarConfig = 0x502F, - MILPropertyItemIdThumbnailResolutionUnit = 0x5030, - MILPropertyItemIdThumbnailTransferFunction = 0x5031, - MILPropertyItemIdThumbnailSoftwareUsed = 0x5032, - MILPropertyItemIdThumbnailDateTime = 0x5033, - MILPropertyItemIdThumbnailArtist = 0x5034, - MILPropertyItemIdThumbnailWhitePoint = 0x5035, - MILPropertyItemIdThumbnailPrimaryChromaticities = 0x5036, - MILPropertyItemIdThumbnailYCbCrCoefficients = 0x5037, - MILPropertyItemIdThumbnailYCbCrSubsampling = 0x5038, - MILPropertyItemIdThumbnailYCbCrPositioning = 0x5039, - MILPropertyItemIdThumbnailRefBlackWhite = 0x503A, - MILPropertyItemIdThumbnailCopyRight = 0x503B, - - MILPropertyItemIdLuminanceTable = 0x5090, - MILPropertyItemIdChrominanceTable = 0x5091, - MILPropertyItemIdFrameDelay = 0x5100, - MILPropertyItemIdLoopCount = 0x5101, - MILPropertyItemIdGlobalPalette = 0x5102, - MILPropertyItemIdIndexBackground = 0x5103, - MILPropertyItemIdIndexTransparent = 0x5104, - - MILPropertyItemIdPixelUnit = 0x5110, - MILPropertyItemIdPixelPerUnitX = 0x5111, - MILPropertyItemIdPixelPerUnitY = 0x5112, - MILPropertyItemIdPaletteHistogram = 0x5113, - - // EXIF specific ids - MILPropertyItemIdExifIFD = 0x8769, - MILPropertyItemIdExifExposureTime = 0x829A, - MILPropertyItemIdExifFNumber = 0x829D, - MILPropertyItemIdExifExposureProg = 0x8822, - MILPropertyItemIdExifSpectralSense = 0x8824, - MILPropertyItemIdExifISOSpeed = 0x8827, - MILPropertyItemIdExifOECF = 0x8828, - MILPropertyItemIdExifVer = 0x9000, - MILPropertyItemIdExifDTOrig = 0x9003, - MILPropertyItemIdExifDTDigitized = 0x9004, - MILPropertyItemIdExifCompConfig = 0x9101, - MILPropertyItemIdExifCompBPP = 0x9102, - MILPropertyItemIdExifShutterSpeed = 0x9201, - MILPropertyItemIdExifAperture = 0x9202, - MILPropertyItemIdExifBrightness = 0x9203, - MILPropertyItemIdExifExposureBias = 0x9204, - MILPropertyItemIdExifMaxAperture = 0x9205, - MILPropertyItemIdExifSubjectDist = 0x9206, - MILPropertyItemIdExifMeteringMode = 0x9207, - MILPropertyItemIdExifLightSource = 0x9208, - MILPropertyItemIdExifFlash = 0x9209, - MILPropertyItemIdExifFocalLength = 0x920A, - MILPropertyItemIdExifMakerNote = 0x927C, - MILPropertyItemIdExifUserComment = 0x9286, - MILPropertyItemIdExifDTSubsec = 0x9290, - MILPropertyItemIdExifDTOrigSS = 0x9291, - MILPropertyItemIdExifDTDigSS = 0x9292, - MILPropertyItemIdExifFPXVer = 0xA000, - MILPropertyItemIdExifColorSpace = 0xA001, - MILPropertyItemIdExifPixXDim = 0xA002, - MILPropertyItemIdExifPixYDim = 0xA003, - MILPropertyItemIdExifRelatedWav = 0xA004, - MILPropertyItemIdExifInterop = 0xA005, - MILPropertyItemIdExifFlashEnergy = 0xA20B, - MILPropertyItemIdExifSpatialFR = 0xA20C, - MILPropertyItemIdExifFocalXRes = 0xA20E, - MILPropertyItemIdExifFocalYRes = 0xA20F, - MILPropertyItemIdExifFocalResUnit = 0xA210, - MILPropertyItemIdExifSubjectLoc = 0xA214, - MILPropertyItemIdExifExposureIndex = 0xA215, - MILPropertyItemIdExifSensingMethod = 0xA217, - MILPropertyItemIdExifFileSource = 0xA300, - MILPropertyItemIdExifSceneType = 0xA301, - MILPropertyItemIdExifCfaPattern = 0xA302, - - MILPropertyItemIdMax = 0xFFFF - }; - - internal enum ChildType - { - eCOB = 0x0, - eCOBGROUP = 0x1, - eChildLast = 0x2 - }; - - enum MILResourceType - { - eMILResourceVideo = 0, - eMILCOB = 1, - eMILChain = 2, - eMILTarget = 3, - eMILResource = 4, - eMILResourceLast = 5 - }; - - enum MILAVInstructionType - { - eAVPlay = 0, - eAVStop, - eAVPause, - eAVResume, - eAVSetSeek, - eAVGetVolume, - eAVSetVolume, - eAVGetState, - eAVHasVideo, - eAVHasAudio, - eAVWidth, - eAVHeight, - eAVMediaLength - }; - #endregion - - #region Structures /// /// Transform options when doing a lossless JPEG image save /// @@ -644,368 +331,4 @@ internal enum WICBitmapTransformOptions /// WICBitmapTransformFlipVertical = 0x10 } - - internal enum WICComponentType - { - WICDecoder = 0x00000001, - WICEncoder = 0x00000002, - WICFormat = 0x00000004, - WICFormatConverter = 0x00000008, - WICMetadataReader = 0x00000010, - WICMetadataWriter = 0x00000020 - } - - [StructLayout(LayoutKind.Sequential)] - internal struct WICBitmapPattern - { - Int64 Offset; - UInt32 Length; - IntPtr Pattern; - IntPtr Mask; - } - - [StructLayout(LayoutKind.Sequential)] - internal struct MILBitmapItem - { - uint Size; - IntPtr Desc; - uint DescSize; - IntPtr Data; - uint DataSize; - uint Cookie; - }; - - [StructLayout(LayoutKind.Sequential)] - internal struct BitmapTransformCaps - { - // Size of this structure. - - int nSize; - - // minimum number of inputs required. - - int cMinInputs; - - // maximum number of inputs that will be processed. - - int cMaxInputs; - - // Set to false requires all the inputs and the - // output to have the same pixel format determined - // by calling IsPixelFormatSupported() for any - // index. Set to true allows different input/output - // pixel formats. - - [MarshalAs(UnmanagedType.Bool)] bool fSupportMultiFormat; - - // Supports auxilliary data out. - - [MarshalAs(UnmanagedType.Bool)] bool fAuxiliaryData; - - // TRUE if the effect supports multiple output - - [MarshalAs(UnmanagedType.Bool)] bool fSupportMultiOutput; - - // TRUE if the effect can provide output band by band - - [MarshalAs(UnmanagedType.Bool)] bool fSupportBanding; - - // TRUE if the effect supports multi-resolution - - [MarshalAs(UnmanagedType.Bool)] bool fSupportMultiResolution; -}; - - [StructLayout(LayoutKind.Sequential)] - internal struct HWND - { - public int hwnd; - } - - [StructLayout(LayoutKind.Sequential)] - internal struct MILAVInstruction - { - internal IntPtr m_pMedia; - internal MILAVInstructionType m_instType; - internal nested_u u; - - [StructLayout(LayoutKind.Explicit)] - internal struct nested_u - { - [FieldOffset(0)] [MarshalAs(UnmanagedType.Bool)] internal bool m_fValue; - [FieldOffset(0)] internal double m_dblValue; - [FieldOffset(0)] internal int m_iValue; - [FieldOffset(0)] internal long m_lValue; - [FieldOffset(0)] internal float m_flValue; - }; -}; - - #endregion - - #region HRESULT - /// - /// HRESULT - /// - /// - // [StructLayout(LayoutKind.Sequential)] - internal struct HRESULT - { - // NTSTATUS error codes are converted to HRESULT by ORing the FACILITY_NT_BIT - // into the status code. - internal const int FACILITY_NT_BIT = 0x10000000; - - internal const int FACILITY_MASK = 0x7FFF0000; - - internal const int FACILITY_WINCODEC_ERROR = 0x08980000; - - internal const int COMPONENT_MASK = 0x0000E000; - - internal const int COMPONENT_WINCODEC_ERROR = 0x00002000; - - internal static bool IsWindowsCodecError(int hr) - { - return (hr & (FACILITY_MASK | COMPONENT_MASK)) == (FACILITY_WINCODEC_ERROR | COMPONENT_WINCODEC_ERROR); - } - - /// - /// If the result is not a success, then throw the appropriate exception. - /// - /// - /// - internal static Exception ConvertHRToException(int hr) - { - Exception exceptionForHR = Marshal.GetExceptionForHR(hr, (IntPtr)(-1)); - - if ((hr & FACILITY_NT_BIT) == FACILITY_NT_BIT) - { - // Convert HRESULT to NTSTATUS code. - switch(hr & ~FACILITY_NT_BIT) - { - case (int) NtStatusErrors.NT_STATUS_NO_MEMORY: - return new OutOfMemoryException(); - - default: - return exceptionForHR; - } - } - else - { - switch (hr) - { - case (int) NtStatusErrors.NT_STATUS_NO_MEMORY: - return new System.OutOfMemoryException(); - - case (int)WinCodecErrors.WINCODEC_ERR_WRONGSTATE: - return new System.InvalidOperationException(SR.Image_WrongState, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_VALUEOUTOFRANGE: - case (int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW: - return new System.OverflowException(SR.Image_Overflow, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNKNOWNIMAGEFORMAT: - return new System.IO.FileFormatException(null, SR.Image_UnknownFormat, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDVERSION: - return new System.IO.FileLoadException(SR.MilErr_UnsupportedVersion, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_NOTINITIALIZED: - return new System.InvalidOperationException(SR.WIC_NotInitialized, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND: - return new System.ArgumentException(SR.Image_PropertyNotFound, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_PROPERTYNOTSUPPORTED: - return new System.NotSupportedException(SR.Image_PropertyNotSupported, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_PROPERTYSIZE: - return new System.ArgumentException(SR.Image_PropertySize, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_CODECPRESENT: - return new System.InvalidOperationException(SR.Image_CodecPresent, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_CODECNOTHUMBNAIL: - return new System.NotSupportedException(SR.Image_NoThumbnail, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_PALETTEUNAVAILABLE: - return new System.InvalidOperationException(SR.Image_NoPalette, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_CODECTOOMANYSCANLINES: - return new System.ArgumentException(SR.Image_TooManyScanlines, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_INTERNALERROR: - return new System.InvalidOperationException(SR.Image_InternalError, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS: - return new System.ArgumentException(SR.Image_BadDimensions, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_COMPONENTINITIALIZEFAILURE: - case (int)WinCodecErrors.WINCODEC_ERR_COMPONENTNOTFOUND: - return new System.NotSupportedException(SR.Image_ComponentNotFound, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNEXPECTEDSIZE: - case (int)WinCodecErrors.WINCODEC_ERR_BADIMAGE: // error decoding image file - return new System.IO.FileFormatException(null, SR.Image_DecoderError, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_BADHEADER: // error decoding header - return new System.IO.FileFormatException(null, SR.Image_HeaderError, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_FRAMEMISSING: - return new System.ArgumentException(SR.Image_FrameMissing, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_BADMETADATAHEADER: - return new System.ArgumentException(SR.Image_BadMetadataHeader, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_BADSTREAMDATA: - return new System.ArgumentException(SR.Image_BadStreamData, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_STREAMWRITE: - return new System.InvalidOperationException(SR.Image_StreamWrite, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT: - return new System.NotSupportedException(SR.Image_UnsupportedPixelFormat, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION: - return new System.NotSupportedException(SR.Image_UnsupportedOperation, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_IMAGESIZEOUTOFRANGE: - return new System.ArgumentException(SR.Image_SizeOutOfRange, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_STREAMREAD: - return new System.IO.IOException(SR.Image_StreamRead, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_INVALIDQUERYREQUEST: - return new System.IO.IOException(SR.Image_InvalidQueryRequest, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_UNEXPECTEDMETADATATYPE: - return new System.IO.FileFormatException(null, SR.Image_UnexpectedMetadataType, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT: - return new System.IO.FileFormatException(null, SR.Image_RequestOnlyValidAtMetadataRoot, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_INVALIDQUERYCHARACTER: - return new System.IO.IOException(SR.Image_InvalidQueryCharacter, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_DUPLICATEMETADATAPRESENT: - return new System.IO.FileFormatException(null, SR.Image_DuplicateMetadataPresent, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE: - return new System.IO.FileFormatException(null, SR.Image_PropertyUnexpectedType, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_TOOMUCHMETADATA: - return new System.IO.FileFormatException(null, SR.Image_TooMuchMetadata, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_STREAMNOTAVAILABLE: - return new System.NotSupportedException(SR.Image_StreamNotAvailable, exceptionForHR); - - case (int)WinCodecErrors.WINCODEC_ERR_INSUFFICIENTBUFFER: - return new System.ArgumentException(SR.Image_InsufficientBuffer, exceptionForHR); - - case unchecked((int)0x80070057): - return new System.ArgumentException(SR.Format(SR.Media_InvalidArgument, null), exceptionForHR); - - case unchecked((int)0x800707db): - return new System.IO.FileFormatException(null, SR.Image_InvalidColorContext, exceptionForHR); - - case (int)MILErrors.WGXERR_DISPLAYSTATEINVALID: - return new System.InvalidOperationException(SR.Image_DisplayStateInvalid, exceptionForHR); - - case (int)MILErrors.WGXERR_NONINVERTIBLEMATRIX: - return new System.ArithmeticException(SR.Image_SingularMatrix, exceptionForHR); - - case (int)MILErrors.WGXERR_AV_INVALIDWMPVERSION: - return new System.Windows.Media.InvalidWmpVersionException(SR.Format(SR.Media_InvalidWmpVersion, null), exceptionForHR); - - case (int)MILErrors.WGXERR_AV_INSUFFICIENTVIDEORESOURCES: - return new System.NotSupportedException(SR.Format(SR.Media_InsufficientVideoResources, null), exceptionForHR); - - case (int)MILErrors.WGXERR_AV_VIDEOACCELERATIONNOTAVAILABLE: - return new System.NotSupportedException(SR.Format(SR.Media_HardwareVideoAccelerationNotAvailable, null), exceptionForHR); - - case (int)MILErrors.WGXERR_AV_MEDIAPLAYERCLOSED: - return new System.NotSupportedException(SR.Format(SR.Media_PlayerIsClosed, null), exceptionForHR); - - case (int)MediaPlayerErrors.NS_E_WMP_URLDOWNLOADFAILED: - return new System.IO.FileNotFoundException(SR.Format(SR.Media_DownloadFailed, null), exceptionForHR); - - case (int)MediaPlayerErrors.NS_E_WMP_LOGON_FAILURE: - return new System.Security.SecurityException(SR.Media_LogonFailure, exceptionForHR); - - case (int)MediaPlayerErrors.NS_E_WMP_CANNOT_FIND_FILE: - return new System.IO.FileNotFoundException(SR.Media_FileNotFound, exceptionForHR); - - case (int)MediaPlayerErrors.NS_E_WMP_UNSUPPORTED_FORMAT: - case (int)MediaPlayerErrors.NS_E_WMP_DSHOW_UNSUPPORTED_FORMAT: - return new System.IO.FileFormatException(SR.Media_FileFormatNotSupported, exceptionForHR); - - case (int)MediaPlayerErrors.NS_E_WMP_INVALID_ASX: - return new System.IO.FileFormatException(SR.Media_PlaylistFormatNotSupported, exceptionForHR); - - case (int)MILErrors.WGXERR_BADNUMBER: - return new System.ArithmeticException(SR.Geometry_BadNumber, exceptionForHR); - - case (int)MILErrors.WGXERR_D3DI_INVALIDSURFACEUSAGE: - return new System.ArgumentException(SR.D3DImage_InvalidUsage, exceptionForHR); - case (int)MILErrors.WGXERR_D3DI_INVALIDSURFACESIZE: - return new System.ArgumentException(SR.D3DImage_SurfaceTooBig, exceptionForHR); - case (int)MILErrors.WGXERR_D3DI_INVALIDSURFACEPOOL: - return new System.ArgumentException(SR.D3DImage_InvalidPool, exceptionForHR); - case (int)MILErrors.WGXERR_D3DI_INVALIDSURFACEDEVICE: - return new System.ArgumentException(SR.D3DImage_InvalidDevice, exceptionForHR); - case (int)MILErrors.WGXERR_D3DI_INVALIDANTIALIASINGSETTINGS: - return new System.ArgumentException(SR.D3DImage_AARequires9Ex, exceptionForHR); - - default: - return exceptionForHR; - } - } - } - - /// - /// If the result is not a success, then throw the appropriate exception. - /// - /// - /// - public static void Check(int hr) - { - if (hr >= 0) - { - // The call succeeded, don't bother calling Marshal.ThrowExceptionForHr - return; - } - else - { - throw ConvertHRToException(hr); - } - } - - /// - /// HRESULT succeeded. - /// - /// - public static bool Succeeded(int hr) - { - if (hr >= 0) - { - return true; - } - else - { - return false; - } - } - - /// - /// HRESULT succeeded. - /// - /// - public static bool Failed(int hr) - { - return !(HRESULT.Succeeded(hr)); - } - - internal const int S_OK = 0; - internal const int E_FAIL = unchecked((int)0x80004005); - internal const int E_OUTOFMEMORY = unchecked((int)0x8007000E); - internal const int D3DERR_OUTOFVIDEOMEMORY = unchecked((int)0x8876017C); - } - #endregion } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/Win32/UnsafeNativeMethodsTablet.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/Win32/UnsafeNativeMethodsTablet.cs index 937f03fefb2..17dfd1f032c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/Win32/UnsafeNativeMethodsTablet.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/Win32/UnsafeNativeMethodsTablet.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using System.Text; using System.Runtime.InteropServices; using System.Windows.Ink; +using Windows.Win32.Foundation; namespace MS.Win32.Recognizer { @@ -15,50 +16,48 @@ namespace MS.Win32.Recognizer internal static class UnsafeNativeMethods { [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int CreateRecognizer([In] ref Guid clsid, [Out] out RecognizerSafeHandle hRec); + internal static extern HRESULT CreateRecognizer([In] ref Guid clsid, [Out] out RecognizerSafeHandle hRec); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int DestroyRecognizer([In] IntPtr hRec); + internal static extern HRESULT DestroyRecognizer([In] IntPtr hRec); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int CreateContext([In] RecognizerSafeHandle hRec, [Out] out ContextSafeHandle hRecContext); + internal static extern HRESULT CreateContext([In] RecognizerSafeHandle hRec, [Out] out ContextSafeHandle hRecContext); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int DestroyContext([In] IntPtr hRecContext); + internal static extern HRESULT DestroyContext([In] IntPtr hRecContext); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int AddStroke([In] ContextSafeHandle hRecContext, [In] ref PACKET_DESCRIPTION packetDesc, [In] uint cbPackets, [In] IntPtr pByte, [In, MarshalAs(UnmanagedType.LPStruct)] NativeMethods.XFORM xForm); + internal static extern HRESULT AddStroke([In] ContextSafeHandle hRecContext, [In] ref PACKET_DESCRIPTION packetDesc, [In] uint cbPackets, [In] IntPtr pByte, [In, MarshalAs(UnmanagedType.LPStruct)] NativeMethods.XFORM xForm); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int SetEnabledUnicodeRanges([In] ContextSafeHandle hRecContext, [In] uint cRangs, [In] CHARACTER_RANGE[] charRanges); + internal static extern HRESULT SetEnabledUnicodeRanges([In] ContextSafeHandle hRecContext, [In] uint cRangs, [In] CHARACTER_RANGE[] charRanges); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int EndInkInput([In] ContextSafeHandle hRecContext); + internal static extern HRESULT EndInkInput([In] ContextSafeHandle hRecContext); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int Process([In] ContextSafeHandle hRecContext, [Out] out bool partialProcessing); + internal static extern HRESULT Process([In] ContextSafeHandle hRecContext, [Out] out bool partialProcessing); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int GetAlternateList([In] ContextSafeHandle hRecContext, [In, Out] ref RECO_RANGE recoRange, [In, Out] ref uint cAlts, [In, Out] IntPtr[] recAtls, [In] ALT_BREAKS breaks); + internal static extern HRESULT GetAlternateList([In] ContextSafeHandle hRecContext, [In, Out] ref RECO_RANGE recoRange, [In, Out] ref uint cAlts, [In, Out] IntPtr[] recAtls, [In] ALT_BREAKS breaks); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int DestroyAlternate([In] IntPtr hRecAtls); + internal static extern HRESULT DestroyAlternate([In] IntPtr hRecAtls); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi, CharSet = CharSet.Unicode)] - internal static extern int GetString([In] IntPtr hRecAtls, [Out] out RECO_RANGE recoRange, [In, Out]ref uint size, [In, Out] StringBuilder recoString); + internal static extern HRESULT GetString([In] IntPtr hRecAtls, [Out] out RECO_RANGE recoRange, [In, Out]ref uint size, [In, Out] StringBuilder recoString); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int GetConfidenceLevel([In] IntPtr hRecAtls, [Out] out RECO_RANGE recoRange, [Out] out RecognitionConfidence confidenceLevel); + internal static extern HRESULT GetConfidenceLevel([In] IntPtr hRecAtls, [Out] out RECO_RANGE recoRange, [Out] out RecognitionConfidence confidenceLevel); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int ResetContext([In] ContextSafeHandle hRecContext); + internal static extern HRESULT ResetContext([In] ContextSafeHandle hRecContext); [DllImport(ExternDll.Mshwgst, CallingConvention = CallingConvention.Winapi)] - internal static extern int GetLatticePtr([In] ContextSafeHandle hRecContext, [In] ref IntPtr pRecoLattice); + internal static extern HRESULT GetLatticePtr([In] ContextSafeHandle hRecContext, [In] ref IntPtr pRecoLattice); } - - /// /// RecognizerSafeHandle /// @@ -86,10 +85,10 @@ public override bool IsInvalid } } - override protected bool ReleaseHandle() + protected override bool ReleaseHandle() { - Debug.Assert(handle != IntPtr.Zero); - return (MS.Internal.HRESULT.Succeeded(MS.Win32.Recognizer.UnsafeNativeMethods.DestroyRecognizer(handle))); + Debug.Assert(handle != 0); + return UnsafeNativeMethods.DestroyRecognizer(handle).Succeeded; } } @@ -120,33 +119,33 @@ public override bool IsInvalid return IsClosed || handle == IntPtr.Zero; } } - - override protected bool ReleaseHandle() + + protected override bool ReleaseHandle() { - //Note: It is not an error to have already called DestroyRecognizer - //which makes _recognizerHandle.IsInvalid == true before calling - //DestroyContext. I have removed this assert, but left it commented for - //context. - //Debug.Assert(_recognizerHandle != null && !_recognizerHandle.IsInvalid); - Debug.Assert(handle != IntPtr.Zero); - int hr = MS.Win32.Recognizer.UnsafeNativeMethods.DestroyContext(handle); + // Note: It is not an error to have already called DestroyRecognizer + // which makes _recognizerHandle.IsInvalid == true before calling + // DestroyContext. I have removed this assert, but left it commented for + // context. + // + // Debug.Assert(_recognizerHandle != null && !_recognizerHandle.IsInvalid); + Debug.Assert(handle != 0); + HRESULT result = UnsafeNativeMethods.DestroyContext(handle); // Now, dereference the attached recognizer. _recognizerHandle = null; - return MS.Internal.HRESULT.Succeeded(hr); + return result.Succeeded; } - internal void AddReferenceOnRecognizer(RecognizerSafeHandle handle) { - System.Diagnostics.Debug.Assert(_recognizerHandle == null); + Debug.Assert(_recognizerHandle == null); _recognizerHandle = handle; } private RecognizerSafeHandle _recognizerHandle; } - + // The structure has been copied from public\internal\drivers\inc\tpcshrd.h //typedef struct _PROPERTY_METRICS // { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/GestureRecognizer/NativeRecognizer.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/GestureRecognizer/NativeRecognizer.cs index fb0de6bcc17..1222440ceda 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/GestureRecognizer/NativeRecognizer.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/MS/internal/Ink/GestureRecognizer/NativeRecognizer.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -13,6 +13,7 @@ using System.Windows.Media; using System.Windows.Ink; using System.Windows.Input; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 // suppressing PreSharp warnings @@ -44,20 +45,22 @@ static NativeRecognizer() /// private NativeRecognizer() { - Debug.Assert(NativeRecognizer.RecognizerHandleSingleton != null); + Debug.Assert(RecognizerHandleSingleton != null); - int hr = MS.Win32.Recognizer.UnsafeNativeMethods.CreateContext(NativeRecognizer.RecognizerHandleSingleton, - out _hContext); - if (HRESULT.Failed(hr)) + HRESULT result = Win32.Recognizer.UnsafeNativeMethods.CreateContext( + RecognizerHandleSingleton, + out _hContext); + + if (result.Failed) { - //don't throw a com exception here, we don't need to pass out any details + // Don't throw a com exception here, we don't need to pass out any details throw new InvalidOperationException(SR.UnspecifiedGestureConstructionException); } // We add a reference of the recognizer to the context handle. // The context will dereference the recognizer reference when it gets disposed. // This trick will prevent the GC from disposing the recognizer before all contexts. - _hContext.AddReferenceOnRecognizer(NativeRecognizer.RecognizerHandleSingleton); + _hContext.AddReferenceOnRecognizer(RecognizerHandleSingleton); } #endregion Constructors @@ -76,7 +79,7 @@ private NativeRecognizer() /// null if it fails internal static NativeRecognizer CreateInstance() { - if (NativeRecognizer.RecognizerHandleSingleton != null) + if (RecognizerHandleSingleton != null) { return new NativeRecognizer(); } @@ -99,8 +102,7 @@ internal ApplicationGesture[] SetEnabledGestures(IEnumerable GetApplicationGestureArrayAndVerify(applicationGestures); // Set enabled Gestures. - int hr = SetEnabledGestures(_hContext, enabledGestures); - if (HRESULT.Failed(hr)) + if (SetEnabledGestures(_hContext, enabledGestures).Failed) { //don't throw a com exception here, we don't need to pass out any details throw new InvalidOperationException(SR.UnspecifiedSetEnabledGesturesException); @@ -136,33 +138,32 @@ internal GestureRecognitionResult[] Recognize(StrokeCollection strokes) return recResults; } - int hr = 0; + HRESULT result = HRESULT.S_OK; try { // Reset the context - hr = MS.Win32.Recognizer.UnsafeNativeMethods.ResetContext(_hContext); - if (HRESULT.Failed(hr)) + result = Win32.Recognizer.UnsafeNativeMethods.ResetContext(_hContext); + if (result.Failed) { //finally block will clean up and throw return recResults; } // Add strokes - hr = AddStrokes(_hContext, strokes); - if (HRESULT.Failed(hr)) + result = AddStrokes(_hContext, strokes); + if (result.Failed) { //AddStrokes's finally block will clean up this finally block will throw return recResults; } // recognize the ink - bool bIncremental; - hr = MS.Win32.Recognizer.UnsafeNativeMethods.Process(_hContext, out bIncremental); + result = Win32.Recognizer.UnsafeNativeMethods.Process(_hContext, out bool bIncremental); - if (HRESULT.Succeeded(hr)) + if (result.Succeeded) { - if ( s_GetAlternateListExists ) + if (s_GetAlternateListExists) { recResults = InvokeGetAlternateList(); } @@ -175,7 +176,7 @@ internal GestureRecognitionResult[] Recognize(StrokeCollection strokes) finally { // Check if we should report any error. - if ( HRESULT.Failed(hr) ) + if (result.Failed) { //don't throw a com exception here, we don't need to pass out any details throw new InvalidOperationException(SR.UnspecifiedGestureException); @@ -324,13 +325,13 @@ private static bool LoadRecognizerDll() if (path != null) { - IntPtr hModule = MS.Win32.UnsafeNativeMethods.LoadLibrary(path); + IntPtr hModule = UnsafeNativeMethods.LoadLibrary(path); // Check whether GetAlternateList exists in the loaded Dll. s_GetAlternateListExists = false; if ( hModule != IntPtr.Zero ) { - s_GetAlternateListExists = MS.Win32.UnsafeNativeMethods.GetProcAddressNoThrow( + s_GetAlternateListExists = UnsafeNativeMethods.GetProcAddressNoThrow( new HandleRef(null, hModule), "GetAlternateList") != IntPtr.Zero ? true : false; } @@ -344,7 +345,7 @@ private static bool LoadRecognizerDll() /// Set the enabled gestures. /// This method is called from the internal SetEnabledGestures method. /// - private int SetEnabledGestures(MS.Win32.Recognizer.ContextSafeHandle recContext, ApplicationGesture[] enabledGestures) + private HRESULT SetEnabledGestures(MS.Win32.Recognizer.ContextSafeHandle recContext, ApplicationGesture[] enabledGestures) { Debug.Assert(recContext != null && !recContext.IsInvalid); @@ -383,20 +384,18 @@ private int SetEnabledGestures(MS.Win32.Recognizer.ContextSafeHandle recContext, charRanges[i].wcLow = (ushort)( enabledGestures[i] ); } } - int hr = MS.Win32.Recognizer.UnsafeNativeMethods.SetEnabledUnicodeRanges(recContext, cRanges, charRanges); - return hr; + + return Win32.Recognizer.UnsafeNativeMethods.SetEnabledUnicodeRanges(recContext, cRanges, charRanges); } /// /// Add the strokes to the recoContext. /// The method is called from the internal Recognize method. /// - private int AddStrokes(MS.Win32.Recognizer.ContextSafeHandle recContext, StrokeCollection strokes) + private HRESULT AddStrokes(MS.Win32.Recognizer.ContextSafeHandle recContext, StrokeCollection strokes) { Debug.Assert(recContext != null && !recContext.IsInvalid); - int hr; - foreach ( Stroke stroke in strokes ) { MS.Win32.Recognizer.PACKET_DESCRIPTION packetDescription = @@ -409,14 +408,21 @@ private int AddStrokes(MS.Win32.Recognizer.ContextSafeHandle recContext, StrokeC GetPacketData(stroke, out packetDescription, out countOfBytes, out packets, out xForm); if (packets == IntPtr.Zero) { - return -2147483640; //E_FAIL - 0x80000008. We never raise this in an exception + // This isn't actually E_FAIL, it's the Macintosh version of it from the headers. Keeping for compat. + return (HRESULT)(-2147483640); // E_FAIL - 0x80000008. We never raise this in an exception } - hr = MS.Win32.Recognizer.UnsafeNativeMethods.AddStroke(recContext, ref packetDescription, (uint)countOfBytes, packets, xForm); - if ( HRESULT.Failed(hr) ) + HRESULT result = Win32.Recognizer.UnsafeNativeMethods.AddStroke( + recContext, + ref packetDescription, + (uint)countOfBytes, + packets, + xForm); + + if (result.Failed) { // Return from here. The finally block will free the memory and report the error properly. - return hr; + return result; } } finally @@ -426,7 +432,7 @@ private int AddStrokes(MS.Win32.Recognizer.ContextSafeHandle recContext, StrokeC } } - return MS.Win32.Recognizer.UnsafeNativeMethods.EndInkInput(recContext); + return Win32.Recognizer.UnsafeNativeMethods.EndInkInput(recContext); } /// @@ -585,7 +591,6 @@ private void ReleaseResourcesinPacketDescription(MS.Win32.Recognizer.PACKET_DESC private GestureRecognitionResult[] InvokeGetAlternateList() { GestureRecognitionResult[] recResults = Array.Empty(); - int hr = 0; MS.Win32.Recognizer.RECO_RANGE recoRange; recoRange.iwcBegin = 0; @@ -595,9 +600,14 @@ private GestureRecognitionResult[] InvokeGetAlternateList() try { - hr = MS.Win32.Recognizer.UnsafeNativeMethods.GetAlternateList(_hContext, ref recoRange, ref countOfAlternates, pRecoAlternates, MS.Win32.Recognizer.ALT_BREAKS.ALT_BREAKS_SAME); + HRESULT result = Win32.Recognizer.UnsafeNativeMethods.GetAlternateList( + _hContext, + ref recoRange, + ref countOfAlternates, + pRecoAlternates, + Win32.Recognizer.ALT_BREAKS.ALT_BREAKS_SAME); - if ( HRESULT.Succeeded(hr) && countOfAlternates != 0 ) + if (result.Succeeded && countOfAlternates != 0) { List resultList = new List(); @@ -607,8 +617,8 @@ private GestureRecognitionResult[] InvokeGetAlternateList() StringBuilder recoString = new StringBuilder(1); RecognitionConfidence confidenceLevel; - if ( HRESULT.Failed(MS.Win32.Recognizer.UnsafeNativeMethods.GetString(pRecoAlternates[i], out recoRange, ref size, recoString)) - || HRESULT.Failed(MS.Win32.Recognizer.UnsafeNativeMethods.GetConfidenceLevel(pRecoAlternates[i], out recoRange, out confidenceLevel)) ) + if (Win32.Recognizer.UnsafeNativeMethods.GetString(pRecoAlternates[i], out recoRange, ref size, recoString).Failed + || Win32.Recognizer.UnsafeNativeMethods.GetConfidenceLevel(pRecoAlternates[i], out recoRange, out confidenceLevel).Failed) { // Fail to retrieve the reco result, skip this one continue; @@ -650,15 +660,12 @@ private GestureRecognitionResult[] InvokeGetLatticePtr() { GestureRecognitionResult[] recResults = Array.Empty(); -// int hr = 0; IntPtr ptr = IntPtr.Zero; // NOTICE-2005/07/11-WAYNEZEN, // There is no need to free the returned the structure. // The memory will be released when ResetContext, which is invoked in the callee - Recognize, is called. - if ( HRESULT.Succeeded( - MS.Win32.Recognizer.UnsafeNativeMethods.GetLatticePtr( - _hContext, ref ptr)) ) + if (Win32.Recognizer.UnsafeNativeMethods.GetLatticePtr(_hContext, ref ptr).Succeeded) { unsafe { @@ -750,7 +757,7 @@ private static MS.Win32.Recognizer.RecognizerSafeHandle RecognizerHandleSingleto { if (s_isSupported && s_hRec == null) { - if (HRESULT.Failed(MS.Win32.Recognizer.UnsafeNativeMethods.CreateRecognizer(ref s_Gesture, out s_hRec))) + if (Win32.Recognizer.UnsafeNativeMethods.CreateRecognizer(ref s_Gesture, out s_hRec).Failed) { s_hRec = null; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/OtherAssemblyAttrs.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/OtherAssemblyAttrs.cs index 83f94f0a9f2..d2e632e33f9 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/OtherAssemblyAttrs.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/OtherAssemblyAttrs.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -17,7 +17,7 @@ [assembly: InternalsVisibleTo(BuildInfo.PresentationFrameworkSystemDrawing)] [assembly: InternalsVisibleTo(BuildInfo.SystemWindowsControlsRibbon)] [assembly: InternalsVisibleTo(BuildInfo.WindowsFormsIntegration)] -[assembly: InternalsVisibleTo($"PresentationCore.Tests, PublicKey={BuildInfo.WCP_PUBLIC_KEY_STRING}")] +[assembly: InternalsVisibleTo($"PresentationCore.Tests, PublicKey={BuildInfo.OpenPublicKey}")] [assembly: TypeForwardedTo(typeof(System.Windows.Markup.IUriContext))] [assembly: TypeForwardedTo(typeof(System.Windows.Media.TextFormattingMode))] [assembly: TypeForwardedTo(typeof(System.Windows.Input.ICommand))] diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj b/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj index df8afb8ed48..42dfbe12663 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/PresentationCore.csproj @@ -29,8 +29,6 @@ Common\System\SR.cs - - @@ -336,7 +334,6 @@ - @@ -1418,6 +1415,7 @@ + @@ -1425,6 +1423,7 @@ + @@ -1435,6 +1434,7 @@ + diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/BinaryFormat/ExceptionExtensions.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/BinaryFormat/ExceptionExtensions.cs deleted file mode 100644 index 069900280e7..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/BinaryFormat/ExceptionExtensions.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Threading; - -namespace System.Windows -{ - internal static class ExceptionExtensions - { - /// - /// Returns if the exception is an exception that isn't recoverable and/or a likely - /// bug in our implementation. - /// - public static bool IsCriticalException(this Exception ex) - => ex is NullReferenceException - or StackOverflowException - or OutOfMemoryException - or ThreadAbortException - or IndexOutOfRangeException - or AccessViolationException; - } -} diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DragDrop.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DragDrop.cs index 67dd9e3e5df..e2d8995b4a4 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DragDrop.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/DragDrop.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -19,6 +19,7 @@ using System.Windows.Interop; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; +using Windows.Win32.Foundation; namespace System.Windows { @@ -627,7 +628,7 @@ public OleDragSource(DependencyObject dragSource) /// /// Query the source to know the drag continue or not. /// - int UnsafeNativeMethods.IOleDropSource.OleQueryContinueDrag(int escapeKey, int grfkeyState) + HRESULT UnsafeNativeMethods.IOleDropSource.OleQueryContinueDrag(int escapeKey, int grfkeyState) { bool escapePressed; QueryContinueDragEventArgs args; @@ -648,24 +649,24 @@ int UnsafeNativeMethods.IOleDropSource.OleQueryContinueDrag(int escapeKey, int g // Check the drag continue result. if (args.Action == DragAction.Continue) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } else if (args.Action == DragAction.Drop) { - return NativeMethods.DRAGDROP_S_DROP; + return HRESULT.DRAGDROP_S_DROP; } else if (args.Action == DragAction.Cancel) { - return NativeMethods.DRAGDROP_S_CANCEL; + return HRESULT.DRAGDROP_S_CANCEL; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// Give feedback from the source whether use the default cursor or not. /// - int UnsafeNativeMethods.IOleDropSource.OleGiveFeedback(int effect) + HRESULT UnsafeNativeMethods.IOleDropSource.OleGiveFeedback(int effect) { GiveFeedbackEventArgs args; @@ -678,10 +679,10 @@ int UnsafeNativeMethods.IOleDropSource.OleGiveFeedback(int effect) // Check the give feedback result whether use default cursors or not. if (args.UseDefaultCursors) { - return NativeMethods.DRAGDROP_S_USEDEFAULTCURSORS; + return HRESULT.DRAGDROP_S_USEDEFAULTCURSORS; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -910,7 +911,7 @@ public OleDropTarget(IntPtr handle) /// /// OleDragEnter - check the data object and notify DragEnter to the target element. /// - int UnsafeNativeMethods.IOleDropTarget.OleDragEnter(object data, int dragDropKeyStates, long point, ref int effects) + HRESULT UnsafeNativeMethods.IOleDropTarget.OleDragEnter(object data, int dragDropKeyStates, long point, ref int effects) { DependencyObject target; Point targetPoint; @@ -922,7 +923,7 @@ int UnsafeNativeMethods.IOleDropTarget.OleDragEnter(object data, int dragDropKey // Set the none effect. effects = (int)DragDropEffects.None; - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } // Get the current target from the mouse drag point that is based on screen. @@ -947,13 +948,13 @@ int UnsafeNativeMethods.IOleDropTarget.OleDragEnter(object data, int dragDropKey effects = (int)DragDropEffects.None; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// OleDragOver - get the drop effect from the target element. /// - int UnsafeNativeMethods.IOleDropTarget.OleDragOver(int dragDropKeyStates, long point, ref int effects) + HRESULT UnsafeNativeMethods.IOleDropTarget.OleDragOver(int dragDropKeyStates, long point, ref int effects) { DependencyObject target; Point targetPoint; @@ -1032,13 +1033,13 @@ int UnsafeNativeMethods.IOleDropTarget.OleDragOver(int dragDropKeyStates, long p } } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// OleDragLeave. /// - int UnsafeNativeMethods.IOleDropTarget.OleDragLeave() + HRESULT UnsafeNativeMethods.IOleDropTarget.OleDragLeave() { if (_lastTarget != null) { @@ -1065,13 +1066,13 @@ int UnsafeNativeMethods.IOleDropTarget.OleDragLeave() } } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// OleDrop - drop the object to the target element. /// - int UnsafeNativeMethods.IOleDropTarget.OleDrop(object data, int dragDropKeyStates, long point, ref int effects) + HRESULT UnsafeNativeMethods.IOleDropTarget.OleDrop(object data, int dragDropKeyStates, long point, ref int effects) { IDataObject dataObject; DependencyObject target; @@ -1083,7 +1084,7 @@ int UnsafeNativeMethods.IOleDropTarget.OleDrop(object data, int dragDropKeyState { effects = (int)DragDropEffects.None; - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } // Reset last element and target point. @@ -1108,7 +1109,7 @@ int UnsafeNativeMethods.IOleDropTarget.OleDrop(object data, int dragDropKeyState effects = (int)DragDropEffects.None; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } #endregion IOleDropTarget diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputMethod.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputMethod.cs index 5fecd80ac86..f13d31a5e67 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputMethod.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputMethod.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Interop; using MS.Win32; using MS.Internal; +using Windows.Win32.Foundation; namespace System.Windows.Input { @@ -1292,7 +1293,7 @@ private static void IsInputMethodEnabled_Changed(DependencyObject d, DependencyP IInputElement inputElement = (IInputElement)d; if (inputElement == Keyboard.FocusedElement) { - InputMethod.Current.EnableOrDisableInputMethod((bool) e.NewValue); + Current.EnableOrDisableInputMethod((bool) e.NewValue); } } @@ -1657,7 +1658,7 @@ private UnsafeNativeMethods.TF_LANGUAGEPROFILE GetCurrentKeybordTipProfile() UnsafeNativeMethods.TF_LANGUAGEPROFILE[] tf_profiles = new UnsafeNativeMethods.TF_LANGUAGEPROFILE[1]; int fetched; - while(enumIpp.Next(1, tf_profiles, out fetched) == NativeMethods.S_OK) + while(enumIpp.Next(1, tf_profiles, out fetched) == HRESULT.S_OK) { // Check if this profile is active. if (tf_profiles[0].fActive == true) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputProcessorProfilesLoader.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputProcessorProfilesLoader.cs index d161dffe3b5..e80ddbcb667 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputProcessorProfilesLoader.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Input/InputProcessorProfilesLoader.cs @@ -1,73 +1,32 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// -// -// Description: Creates ITfThreadMgr instances, the root object of the Text -// Services Framework. -// -// - -// PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. -#pragma warning disable 1634, 1691 +#nullable enable using System.Threading; using MS.Win32; +using Windows.Win32.Foundation; namespace System.Windows.Input { - //------------------------------------------------------ - // - // InputProcessorProfilesLoader class - // - //------------------------------------------------------ - /// - /// Loads an instance of the Text Services Framework. + /// Loads an instance of the Text Services Input Processor Profiles. /// internal static class InputProcessorProfilesLoader { - //------------------------------------------------------ - // - // Constructors - // - //------------------------------------------------------ - - #region Constructors - - #endregion Constructors - - //------------------------------------------------------ - // - // Internal Properties - // - //------------------------------------------------------ - - #region Internal Properties - /// - /// Loads an instance of the Text Services Framework. + /// Loads an instance of the Text Services Framework. /// /// - /// May return null if no text services are available. + /// May return if no text services are available. /// - internal static UnsafeNativeMethods.ITfInputProcessorProfiles Load() + internal static UnsafeNativeMethods.ITfInputProcessorProfiles? Load() { - UnsafeNativeMethods.ITfInputProcessorProfiles obj; - Debug.Assert(Thread.CurrentThread.GetApartmentState() == ApartmentState.STA, "Load called on MTA thread!"); - -#pragma warning suppress 6523 - if (UnsafeNativeMethods.TF_CreateInputProcessorProfiles(out obj) == NativeMethods.S_OK) - { - return obj; - } - return null; + return UnsafeNativeMethods.TF_CreateInputProcessorProfiles(out UnsafeNativeMethods.ITfInputProcessorProfiles obj) == HRESULT.S_OK + ? obj + : null; } - - #endregion Internal Properties } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/D3DImage.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/D3DImage.cs index 46b40636527..7d15094faf7 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/D3DImage.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/D3DImage.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -14,6 +14,7 @@ using System.Windows.Media.Imaging; using System.Windows.Threading; using System.Threading; +using Windows.Win32.Foundation; namespace System.Windows.Interop { @@ -153,7 +154,7 @@ public void SetBackBuffer(D3DResourceType backBufferType, IntPtr backBuffer, boo // in a null _pInteropDeviceBitmap at the end if (backBuffer != IntPtr.Zero) { - HRESULT.Check(UnsafeNativeMethods.InteropDeviceBitmap.Create( + UnsafeNativeMethods.InteropDeviceBitmap.Create( backBuffer, _dpiX, _dpiY, @@ -163,7 +164,7 @@ public void SetBackBuffer(D3DResourceType backBufferType, IntPtr backBuffer, boo out newBitmap, out newPixelWidth, out newPixelHeight - )); + ).ThrowOnFailureExtended(); } // @@ -299,18 +300,18 @@ public void AddDirtyRect(Int32Rect dirtyRect) throw new InvalidOperationException(SR.D3DImage_MustHaveBackBuffer); } - dirtyRect.ValidateForDirtyRect("dirtyRect", PixelWidth, PixelHeight); + dirtyRect.ValidateForDirtyRect(nameof(dirtyRect), PixelWidth, PixelHeight); if (dirtyRect.HasArea) { // Unmanaged code will make sure that the rect is well-formed - HRESULT.Check(UnsafeNativeMethods.InteropDeviceBitmap.AddDirtyRect( - dirtyRect.X, - dirtyRect.Y, - dirtyRect.Width, - dirtyRect.Height, + UnsafeNativeMethods.InteropDeviceBitmap.AddDirtyRect( + dirtyRect.X, + dirtyRect.Y, + dirtyRect.Width, + dirtyRect.Height, _pInteropDeviceBitmap - )); - + ).ThrowOnFailureExtended(); + // We're now dirty, but we won't consider it a change until Unlock _isDirty = true; _isChangePending = true; @@ -400,7 +401,7 @@ public sealed override double Width { ReadPreamble(); - return ImageSource.PixelsToDIPs(_dpiX, (int)_pixelWidth); + return PixelsToDIPs(_dpiX, (int)_pixelWidth); } } @@ -415,7 +416,7 @@ public sealed override double Height { ReadPreamble(); - return ImageSource.PixelsToDIPs(_dpiY, (int)_pixelHeight); + return PixelsToDIPs(_dpiY, (int)_pixelHeight); } } @@ -514,24 +515,23 @@ protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) /// protected internal virtual BitmapSource CopyBackBuffer() { - BitmapSource copy = null; - + if (_pInteropDeviceBitmap != null) { BitmapSourceSafeMILHandle pIWICBitmapSource; - - if (HRESULT.Succeeded(UnsafeNativeMethods.InteropDeviceBitmap.GetAsSoftwareBitmap( + + if (UnsafeNativeMethods.InteropDeviceBitmap.GetAsSoftwareBitmap( _pInteropDeviceBitmap, out pIWICBitmapSource - ))) + ).Succeeded) { // CachedBitmap will AddRef the bitmap copy = new CachedBitmap(pIWICBitmapSource); } } - return copy; + return copy; } private void CloneCommon(Freezable sourceFreezable) @@ -826,7 +826,7 @@ internal override void UpdateResource(DUCE.Channel channel, bool skipOnChannelCh internal override DUCE.ResourceHandle AddRefOnChannelCore(DUCE.Channel channel) { - if (_duceResource.CreateOrAddRefOnChannel(this, channel, System.Windows.Media.Composition.DUCE.ResourceType.TYPE_D3DIMAGE)) + if (_duceResource.CreateOrAddRefOnChannel(this, channel, DUCE.ResourceType.TYPE_D3DIMAGE)) { AddRefOnChannelAnimations(channel); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/HwndTarget.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/HwndTarget.cs index 7e0190fada4..2c07a53a27e 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/HwndTarget.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/InterOp/HwndTarget.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -16,9 +16,10 @@ using MS.Win32; using MS.Internal.PresentationCore; -using HRESULT = MS.Internal.HRESULT; +using HRESULT = Windows.Win32.Foundation.HRESULT; using NativeMethodsSetLastError = MS.Internal.WindowsBase.NativeMethodsSetLastError; using PROCESS_DPI_AWARENESS = MS.Win32.NativeMethods.PROCESS_DPI_AWARENESS; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 // suppressing PreSharp warnings @@ -544,9 +545,9 @@ out processId ); } - int hr = VisualTarget_AttachToHwnd(hwnd); + HRESULT hr = VisualTarget_AttachToHwnd(hwnd); - if (HRESULT.Failed(hr)) + if (hr.Failed) { if (hr == unchecked((int)0x80070005)) // E_ACCESSDENIED { @@ -556,7 +557,7 @@ out processId } else { - HRESULT.Check(hr); + hr.ThrowOnFailureExtended(); } } @@ -566,15 +567,11 @@ out processId } [DllImport(DllImport.MilCore, EntryPoint = "MilVisualTarget_AttachToHwnd")] - internal static extern int VisualTarget_AttachToHwnd( - IntPtr hwnd - ); + internal static extern HRESULT VisualTarget_AttachToHwnd(IntPtr hwnd); [DllImport(DllImport.MilCore, EntryPoint = "MilVisualTarget_DetachFromHwnd")] - internal static extern int VisualTarget_DetachFromHwnd( - IntPtr hwnd - ); + internal static extern HRESULT VisualTarget_DetachFromHwnd(IntPtr hwnd); internal void InvalidateRenderMode() { @@ -604,7 +601,7 @@ internal void InvalidateRenderMode() //Obtain compatibility flags set in the application bool? enableMultiMonitorDisplayClipping = - System.Windows.CoreCompatibilityPreferences.EnableMultiMonitorDisplayClipping; + CoreCompatibilityPreferences.EnableMultiMonitorDisplayClipping; if (enableMultiMonitorDisplayClipping != null) { @@ -686,7 +683,7 @@ public override void Dispose() { RootVisual = null; - HRESULT.Check(VisualTarget_DetachFromHwnd(_hWnd)); + VisualTarget_DetachFromHwnd(_hWnd).ThrowOnFailureExtended(); // // Unregister this CompositionTarget from the MediaSystem. @@ -1524,7 +1521,7 @@ private bool OnSettingChange(Int32 firstParam) (int)firstParam == (int)NativeMethods.SPI_SETDISPLAYTEXTCONTRASTLEVEL ) { - HRESULT.Check(MILUpdateSystemParametersInfo.Update()); + MILUpdateSystemParametersInfo.Update().ThrowOnFailureExtended(); return true; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ChannelManager.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ChannelManager.cs index af7338394e0..347131ae611 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ChannelManager.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ChannelManager.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,7 +12,7 @@ using System.Windows.Media.Composition; using MS.Internal; - +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods.MilCoreApi; namespace System.Windows.Media @@ -48,16 +48,16 @@ internal void CreateChannels() // Pass in a reference to the global mediasystem channel so that it uses // the same partition. _asyncChannel = new DUCE.Channel( - System.Windows.Media.MediaSystem.ServiceChannel, + MediaSystem.ServiceChannel, false, // not out of band - System.Windows.Media.MediaSystem.Connection, + MediaSystem.Connection, false // sync transport ); _asyncOutOfBandChannel = new DUCE.Channel( - System.Windows.Media.MediaSystem.ServiceChannel, + MediaSystem.ServiceChannel, true, // out of band - System.Windows.Media.MediaSystem.Connection, + MediaSystem.Connection, false // sync transport ); } @@ -104,12 +104,12 @@ internal void RemoveChannels() _asyncOutOfBandChannel.Close(); _asyncOutOfBandChannel = null; } - + RemoveSyncChannels(); if (_pSyncConnection != IntPtr.Zero) { - HRESULT.Check(UnsafeNativeMethods.WgxConnection_Disconnect(_pSyncConnection)); + UnsafeNativeMethods.WgxConnection_Disconnect(_pSyncConnection).ThrowOnFailureExtended(); _pSyncConnection = IntPtr.Zero; } } @@ -123,9 +123,9 @@ internal DUCE.Channel AllocateSyncChannel() if (_pSyncConnection == IntPtr.Zero) { - HRESULT.Check(UnsafeNativeMethods.WgxConnection_Create( + UnsafeNativeMethods.WgxConnection_Create( true, // true means synchronous transport - out _pSyncConnection)); + out _pSyncConnection).ThrowOnFailureExtended(); } if (_freeSyncChannels == null) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContext.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContext.cs index 1132c55c573..944c90bc08b 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContext.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContext.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -16,6 +16,7 @@ using UnsafeNativeMethodsMilCoreApi = MS.Win32.PresentationCore.UnsafeNativeMethods; using IWICCC = MS.Win32.PresentationCore.UnsafeNativeMethods.IWICColorContext; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -39,9 +40,9 @@ private ColorContext(SafeMILHandle colorContextHandle) // will be invalid and we'll emulate the old failure behavior later in // OpenProfileStream() // - + IWICCC.WICColorContextType type; - if (HRESULT.Failed(IWICCC.GetType(_colorContextHandle, out type))) + if (IWICCC.GetType(_colorContextHandle, out type).Failed) { return; } @@ -50,13 +51,15 @@ private ColorContext(SafeMILHandle colorContextHandle) { case IWICCC.WICColorContextType.WICColorContextProfile: uint cbProfileActual; - int hr = IWICCC.GetProfileBytes(_colorContextHandle, 0, null, out cbProfileActual); - if (HRESULT.Succeeded(hr) && cbProfileActual != 0) + HRESULT hr = IWICCC.GetProfileBytes(_colorContextHandle, 0, null, out cbProfileActual); + if (hr.Succeeded && cbProfileActual != 0) { byte[] profileData = new byte[cbProfileActual]; - if (HRESULT.Failed(IWICCC.GetProfileBytes( - _colorContextHandle, cbProfileActual, profileData, out cbProfileActual)) - ) + if (IWICCC.GetProfileBytes( + _colorContextHandle, + cbProfileActual, + profileData, + out cbProfileActual).Failed) { return; } @@ -68,7 +71,7 @@ private ColorContext(SafeMILHandle colorContextHandle) case IWICCC.WICColorContextType.WICColorContextExifColorSpace: uint colorSpace; - if (HRESULT.Failed(IWICCC.GetExifColorSpace(_colorContextHandle, out colorSpace))) + if (IWICCC.GetExifColorSpace(_colorContextHandle, out colorSpace).Failed) { return; } @@ -115,16 +118,17 @@ private ColorContext(SafeMILHandle colorContextHandle) _colorContextHandle.Dispose(); _colorContextHandle = null; - if (HRESULT.Failed(UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext( - factoryMaker.ImagingFactoryPtr, out _colorContextHandle)) - ) + if (UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext( + factoryMaker.ImagingFactoryPtr, + out _colorContextHandle).Failed) { return; } - if (HRESULT.Failed(IWICCC.InitializeFromMemory( - _colorContextHandle, sRGBProfile, (uint)sRGBProfile.Length)) - ) + if (IWICCC.InitializeFromMemory( + _colorContextHandle, + sRGBProfile, + (uint)sRGBProfile.Length).Failed) { return; } @@ -335,7 +339,7 @@ internal bool IsValid } } - internal delegate int GetColorContextsDelegate(ref uint numContexts, IntPtr[] colorContextPtrs); + internal delegate HRESULT GetColorContextsDelegate(ref uint numContexts, IntPtr[] colorContextPtrs); /// /// Helper method that will retrieve ColorContexts from an unmanaged object (e.g. BitmapDecoder or BitmapFrameDecode) @@ -345,12 +349,12 @@ internal static IList GetColorContextsHelper(GetColorContextsDeleg uint numContexts = 0; List colorContextsList = null; - int hr = getColorContexts(ref numContexts, null); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION) + HRESULT hr = getColorContexts(ref numContexts, null); + if (hr != HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) { - HRESULT.Check(hr); + hr.ThrowOnFailureExtended(); } - + if (numContexts > 0) { // GetColorContexts does not create new IWICColorContexts. Instead, it initializes existing @@ -361,7 +365,9 @@ internal static IList GetColorContextsHelper(GetColorContextsDeleg { for (uint i = 0; i < numContexts; ++i) { - HRESULT.Check(UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext(factoryMaker.ImagingFactoryPtr, out colorContextHandles[i])); + UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext( + factoryMaker.ImagingFactoryPtr, + out colorContextHandles[i]).ThrowOnFailureExtended(); } } @@ -374,7 +380,7 @@ internal static IList GetColorContextsHelper(GetColorContextsDeleg colorContextPtrs[i] = colorContextHandles[i].DangerousGetHandle(); } - HRESULT.Check(getColorContexts(ref numContexts, colorContextPtrs)); + getColorContexts(ref numContexts, colorContextPtrs).ThrowOnFailureExtended(); } colorContextsList = new List((int)numContexts); @@ -549,7 +555,11 @@ private static Uri GetStandardColorSpaceProfile() uint bufferSize = SIZE; StringBuilder buffer = new StringBuilder(SIZE); - HRESULT.Check(UnsafeNativeMethodsMilCoreApi.Mscms.GetStandardColorSpaceProfile(IntPtr.Zero, dwProfileID, buffer, out bufferSize)); + UnsafeNativeMethodsMilCoreApi.Mscms.GetStandardColorSpaceProfile( + IntPtr.Zero, + dwProfileID, + buffer, + out bufferSize).ThrowOnFailureExtended(); Uri profilePath; string profilePathString = buffer.ToString(); @@ -567,7 +577,10 @@ private static Uri GetStandardColorSpaceProfile() // bufferSize was modified by GetStandardColorSpaceProfile so set it again bufferSize = SIZE; - HRESULT.Check(UnsafeNativeMethodsMilCoreApi.Mscms.GetColorDirectory(IntPtr.Zero, buffer, out bufferSize)); + UnsafeNativeMethodsMilCoreApi.Mscms.GetColorDirectory( + IntPtr.Zero, + buffer, + out bufferSize).ThrowOnFailureExtended(); profilePath = new Uri(Path.Combine(buffer.ToString(), profilePathString)); } @@ -600,8 +613,13 @@ private void FromStream(Stream stm, string filename) using (FactoryMaker factoryMaker = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext(factoryMaker.ImagingFactoryPtr, out _colorContextHandle)); - HRESULT.Check(IWICCC.InitializeFromMemory(_colorContextHandle, rawBytes, (uint)numBytesRead)); + UnsafeNativeMethodsMilCoreApi.WICCodec.CreateColorContext( + factoryMaker.ImagingFactoryPtr, + out _colorContextHandle).ThrowOnFailureExtended(); + IWICCC.InitializeFromMemory( + _colorContextHandle, + rawBytes, + (uint)numBytesRead).ThrowOnFailureExtended(); } return; @@ -647,8 +665,8 @@ private void FromRawBytes(byte[] data, int dataLength, bool dontThrowException) return; } else - { - HRESULT.Check(Marshal.GetHRForLastWin32Error()); + { + ((HRESULT)Marshal.GetHRForLastWin32Error()).ThrowOnFailureExtended(); } } } @@ -661,8 +679,8 @@ private void FromRawBytes(byte[] data, int dataLength, bool dontThrowException) return; } else - { - HRESULT.Check(Marshal.GetHRForLastWin32Error()); + { + ((HRESULT)Marshal.GetHRForLastWin32Error()).ThrowOnFailureExtended(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContextHelper.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContextHelper.cs index 5d5762e92a9..f903eb89868 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContextHelper.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorContextHelper.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using MS.Internal; using MS.Win32; using Microsoft.Win32.SafeHandles; +using Windows.Win32.Foundation; using UnsafeNativeMethodsMilCoreApi = MS.Win32.PresentationCore.UnsafeNativeMethods; @@ -91,7 +92,7 @@ internal void GetColorProfileFromHandle(byte[] buffer, ref uint bufferSize) // what we want. if (!UnsafeNativeMethodsMilCoreApi.Mscms.GetColorProfileFromHandle(_profileHandle, buffer, ref bufferSize) && buffer != null) { - HRESULT.Check(Marshal.GetHRForLastWin32Error()); + ((HRESULT)Marshal.GetHRForLastWin32Error()).ThrowOnFailureExtended(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorTransformHelper.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorTransformHelper.cs index 07975f176b3..5464975a233 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorTransformHelper.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/ColorTransformHelper.cs @@ -1,10 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Runtime.InteropServices; -using MS.Internal; using Microsoft.Win32.SafeHandles; +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; @@ -98,7 +98,7 @@ internal void CreateTransform(SafeProfileHandle sourceProfile, SafeProfileHandle if (_transformHandle == null || _transformHandle.IsInvalid) { - HRESULT.Check(Marshal.GetHRForLastWin32Error()); + ((HRESULT)Marshal.GetHRForLastWin32Error()).ThrowOnFailureExtended(); } } @@ -111,13 +111,13 @@ internal void TranslateColors(IntPtr paInputColors, UInt32 numColors, UInt32 inp throw new InvalidOperationException(SR.Image_ColorTransformInvalid); } - HRESULT.Check(UnsafeNativeMethods.Mscms.TranslateColors( + UnsafeNativeMethods.Mscms.TranslateColors( _transformHandle, paInputColors, numColors, inputColorType, paOutputColors, - outputColorType)); + outputColorType).ThrowOnFailureExtended(); } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Composition.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Composition.cs index 9aa79767051..40b03a38a25 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Composition.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Composition.cs @@ -1,9 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Windows.Media.Media3D; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace System.Windows.Media.Composition { @@ -192,12 +193,12 @@ internal static UInt32 BooleanToUInt32(Boolean v) internal static partial class MilCoreApi { [DllImport(DllImport.MilCore)] - internal static extern int MilComposition_SyncFlush( + internal static extern HRESULT MilComposition_SyncFlush( IntPtr pChannel ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_GetPointAtLengthFraction( + internal unsafe static extern HRESULT MilUtility_GetPointAtLengthFraction( MilMatrix3x2D *pMatrix, FillRule fillRule, byte *pPathData, @@ -207,7 +208,7 @@ internal unsafe static extern int MilUtility_GetPointAtLengthFraction( out Point vecTangent); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PolygonBounds( + internal unsafe static extern HRESULT MilUtility_PolygonBounds( MilMatrix3x2D *pWorldMatrix, MIL_PEN_DATA *pPenData, double *pDashArray, @@ -222,7 +223,7 @@ internal unsafe static extern int MilUtility_PolygonBounds( Rect *pBounds); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PolygonHitTest( + internal unsafe static extern HRESULT MilUtility_PolygonHitTest( MilMatrix3x2D *pGeometryMatrix, MIL_PEN_DATA *pPenData, double *pDashArray, @@ -236,7 +237,7 @@ internal unsafe static extern int MilUtility_PolygonHitTest( out bool pDoesContain); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryHitTest( + internal unsafe static extern HRESULT MilUtility_PathGeometryHitTest( MilMatrix3x2D *pMatrix, MIL_PEN_DATA* pPenData, double* pDashArray, @@ -249,7 +250,7 @@ internal unsafe static extern int MilUtility_PathGeometryHitTest( out bool pDoesContain); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryHitTestPathGeometry( + internal unsafe static extern HRESULT MilUtility_PathGeometryHitTestPathGeometry( MilMatrix3x2D *pMatrix1, FillRule fillRule1, byte *pPathData1, @@ -263,7 +264,7 @@ internal unsafe static extern int MilUtility_PathGeometryHitTestPathGeometry( IntersectionDetail* pDetail); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_GeometryGetArea( + internal unsafe static extern HRESULT MilUtility_GeometryGetArea( FillRule fillRule, byte *pPathData, UInt32 nSize, diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/EventProxy.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/EventProxy.cs index 1211eea8a75..1b3288c3af3 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/EventProxy.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/EventProxy.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,6 +8,7 @@ using MS.Internal; using MS.Win32; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -47,8 +48,8 @@ internal static class EventProxyStaticPtrs { static EventProxyStaticPtrs() { - EventProxyStaticPtrs.pfnDispose = new EventProxyDescriptor.Dispose(EventProxyDescriptor.StaticDispose); - EventProxyStaticPtrs.pfnRaiseEvent = new EventProxyDescriptor.RaiseEvent(EventProxyWrapper.RaiseEvent); + pfnDispose = new EventProxyDescriptor.Dispose(EventProxyDescriptor.StaticDispose); + pfnRaiseEvent = new EventProxyDescriptor.RaiseEvent(EventProxyWrapper.RaiseEvent); } internal static EventProxyDescriptor.Dispose pfnDispose; @@ -75,9 +76,8 @@ private EventProxyWrapper(IInvokable invokable) #region Public methods - public int RaiseEvent(byte[] buffer, uint cb) + public HRESULT RaiseEvent(byte[] buffer, uint cb) { -#pragma warning disable 6500 try { ObjectDisposedException.ThrowIf(target == null, typeof(EventProxyWrapper)); @@ -90,16 +90,15 @@ public int RaiseEvent(byte[] buffer, uint cb) { // return E_HANDLE to notify that object is no longer alive - return NativeMethods.E_HANDLE; + return HRESULT.E_HANDLE; } } catch (Exception e) { - return Marshal.GetHRForException(e); + return (HRESULT)Marshal.GetHRForException(e); } -#pragma warning restore 6500 - return NativeMethods.S_OK; + return HRESULT.S_OK; } #endregion @@ -108,13 +107,13 @@ public int RaiseEvent(byte[] buffer, uint cb) internal static EventProxyWrapper FromEPD(ref EventProxyDescriptor epd) { Debug.Assert(((IntPtr)epd.m_handle) != IntPtr.Zero, "Stream is disposed."); - System.Runtime.InteropServices.GCHandle handle = (System.Runtime.InteropServices.GCHandle)(epd.m_handle); - return (EventProxyWrapper)(handle.Target); + GCHandle handle = epd.m_handle; + return (EventProxyWrapper)handle.Target; } internal static int RaiseEvent(ref EventProxyDescriptor pEPD, byte[] buffer, uint cb) { - EventProxyWrapper target = EventProxyWrapper.FromEPD(ref pEPD); + EventProxyWrapper target = FromEPD(ref pEPD); if (target != null) { return target.RaiseEvent(buffer, cb); @@ -141,9 +140,9 @@ internal static SafeMILHandle CreateEventProxyWrapper(IInvokable invokable) epd.pfnDispose = EventProxyStaticPtrs.pfnDispose; epd.pfnRaiseEvent = EventProxyStaticPtrs.pfnRaiseEvent; - epd.m_handle = System.Runtime.InteropServices.GCHandle.Alloc(epw, System.Runtime.InteropServices.GCHandleType.Normal); + epd.m_handle = GCHandle.Alloc(epw, GCHandleType.Normal); - HRESULT.Check(MILCreateEventProxy(ref epd, out eventProxy)); + MILCreateEventProxy(ref epd, out eventProxy).ThrowOnFailureExtended(); return eventProxy; } @@ -151,7 +150,7 @@ internal static SafeMILHandle CreateEventProxyWrapper(IInvokable invokable) #endregion [DllImport(DllImport.MilCore)] - private extern static int /* HRESULT */ MILCreateEventProxy(ref EventProxyDescriptor pEPD, out SafeMILHandle ppEventProxy); + private extern static HRESULT MILCreateEventProxy(ref EventProxyDescriptor pEPD, out SafeMILHandle ppEventProxy); } #endregion } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/FactoryMaker.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/FactoryMaker.cs index 547656c256b..5d0484a6c2c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/FactoryMaker.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/FactoryMaker.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ // using MS.Internal; +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media @@ -30,7 +31,9 @@ internal FactoryMaker() // should catch it. We won't add ref counter here if this // happens. - HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateFactory(out s_pFactory, MS.Internal.Composition.Version.MilSdkVersion)); + UnsafeNativeMethods.MILFactory2.CreateFactory( + out s_pFactory, + MS.Internal.Composition.Version.MilSdkVersion).ThrowOnFailureExtended(); } s_cInstance++; @@ -111,7 +114,9 @@ internal IntPtr ImagingFactoryPtr { lock (s_factoryMakerLock) { - HRESULT.Check(UnsafeNativeMethods.WICCodec.CreateImagingFactory(UnsafeNativeMethods.WICCodec.WINCODEC_SDK_VERSION, out s_pImagingFactory)); + UnsafeNativeMethods.WICCodec.CreateImagingFactory( + UnsafeNativeMethods.WICCodec.WINCODEC_SDK_VERSION, + out s_pImagingFactory).ThrowOnFailureExtended(); } } Debug.Assert(s_pImagingFactory != IntPtr.Zero); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Geometry.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Geometry.cs index 1a1e8ad9597..0542192d81e 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Geometry.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Geometry.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -14,6 +14,7 @@ using System.Windows.Media.Composition; using System.Windows.Media.Animation; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -186,7 +187,7 @@ internal unsafe static Rect GetBoundsHelper( fixed (double *pDashArray = dashArray) { - int hr = MilCoreApi.MilUtility_PolygonBounds( + HRESULT result = MilCoreApi.MilUtility_PolygonBounds( &worldMatrix, (fPenContributesToBounds) ? &penData : null, (dashArray == null) ? null : pDashArray, @@ -201,7 +202,7 @@ internal unsafe static Rect GetBoundsHelper( &bounds ); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry has empty bounds. @@ -209,7 +210,7 @@ internal unsafe static Rect GetBoundsHelper( } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -286,7 +287,7 @@ public virtual double GetArea(double tolerance, ToleranceType type) { Debug.Assert(pbPathData != (byte*)0); - int hr = MilCoreApi.MilUtility_GeometryGetArea( + HRESULT result = MilCoreApi.MilUtility_GeometryGetArea( pathData.FillRule, pbPathData, pathData.Size, @@ -295,7 +296,7 @@ public virtual double GetArea(double tolerance, ToleranceType type) type == ToleranceType.Relative, &area); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry has 0 area. @@ -303,7 +304,7 @@ public virtual double GetArea(double tolerance, ToleranceType type) } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } } @@ -407,21 +408,21 @@ internal virtual bool ContainsInternal(Pen pen, Point hitPoint, double tolerance { Debug.Assert(pbPathData != (byte*)0); - fixed (double * dashArrayFixed = dashArray) + fixed (double* dashArrayFixed = dashArray) { - int hr = MilCoreApi.MilUtility_PathGeometryHitTest( - &pathData.Matrix, - (pen == null) ? null : &penData, - dashArrayFixed, - pathData.FillRule, - pbPathData, - pathData.Size, - tolerance, - type == ToleranceType.Relative, - &hitPoint, - out contains); - - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + HRESULT result = MilCoreApi.MilUtility_PathGeometryHitTest( + &pathData.Matrix, + (pen == null) ? null : &penData, + dashArrayFixed, + pathData.FillRule, + pbPathData, + pathData.Size, + tolerance, + type == ToleranceType.Relative, + &hitPoint, + out contains); + + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry is never hittable. @@ -429,7 +430,7 @@ internal virtual bool ContainsInternal(Pen pen, Point hitPoint, double tolerance } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } } @@ -458,20 +459,20 @@ internal unsafe bool ContainsInternal(Pen pen, Point hitPoint, double tolerance, fixed (double *dashArrayFixed = dashArray) { - int hr = MilCoreApi.MilUtility_PolygonHitTest( - &matrix, - (pen == null) ? null : &penData, - dashArrayFixed, - pPoints, - pTypes, - pointCount, - typeCount, - tolerance, - type == ToleranceType.Relative, - &hitPoint, - out contains); + HRESULT result = MilCoreApi.MilUtility_PolygonHitTest( + &matrix, + (pen == null) ? null : &penData, + dashArrayFixed, + pPoints, + pTypes, + pointCount, + typeCount, + tolerance, + type == ToleranceType.Relative, + &hitPoint, + out contains); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry is never hittable. @@ -479,7 +480,7 @@ internal unsafe bool ContainsInternal(Pen pen, Point hitPoint, double tolerance, } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -612,8 +613,8 @@ public virtual PathGeometry GetFlattenedPathGeometry(double tolerance, Tolerance FillRule fillRule = FillRule.Nonzero; PathGeometry.FigureList list = new PathGeometry.FigureList(); - - int hr = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryFlatten( + + HRESULT result = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryFlatten( &pathData.Matrix, pathData.FillRule, pbPathData, @@ -623,7 +624,7 @@ public virtual PathGeometry GetFlattenedPathGeometry(double tolerance, Tolerance new PathGeometry.AddFigureToListDelegate(list.AddFigureToList), out fillRule); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we return an empty geometry. @@ -631,8 +632,7 @@ public virtual PathGeometry GetFlattenedPathGeometry(double tolerance, Tolerance } else { - HRESULT.Check(hr); - + result.ThrowOnFailureExtended(); resultGeometry = new PathGeometry(list.Figures, fillRule, null); } } @@ -709,7 +709,7 @@ public virtual PathGeometry GetWidenedPathGeometry(Pen pen, double tolerance, To try { - int hr = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryWiden( + HRESULT result = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryWiden( &penData, (dashArray == null) ? null : (double*)handle.AddrOfPinnedObject(), &pathData.Matrix, @@ -721,7 +721,7 @@ public virtual PathGeometry GetWidenedPathGeometry(Pen pen, double tolerance, To new PathGeometry.AddFigureToListDelegate(list.AddFigureToList), out fillRule); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we return an empty geometry. @@ -729,8 +729,7 @@ public virtual PathGeometry GetWidenedPathGeometry(Pen pen, double tolerance, To } else { - HRESULT.Check(hr); - + result.ThrowOnFailureExtended(); resultGeometry = new PathGeometry(list.Figures, fillRule, null); } } @@ -796,11 +795,11 @@ public static PathGeometry Combine( Transform transform) { return PathGeometry.InternalCombine( - geometry1, - geometry2, - mode, - transform, - Geometry.StandardFlatteningTolerance, + geometry1, + geometry2, + mode, + transform, + StandardFlatteningTolerance, ToleranceType.Absolute); } @@ -841,7 +840,7 @@ public virtual PathGeometry GetOutlinedPathGeometry(double tolerance, ToleranceT FillRule fillRule = FillRule.Nonzero; PathGeometry.FigureList list = new PathGeometry.FigureList(); - int hr = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryOutline( + HRESULT result = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryOutline( &pathData.Matrix, pathData.FillRule, pbPathData, @@ -851,7 +850,7 @@ public virtual PathGeometry GetOutlinedPathGeometry(double tolerance, ToleranceT new PathGeometry.AddFigureToListDelegate(list.AddFigureToList), out fillRule); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we return an empty geometry. @@ -859,8 +858,7 @@ public virtual PathGeometry GetOutlinedPathGeometry(double tolerance, ToleranceT } else { - HRESULT.Check(hr); - + result.ThrowOnFailureExtended(); resultGeometry = new PathGeometry(list.Figures, fillRule, null); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/GlyphTypeface.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/GlyphTypeface.cs index c7eca52c219..33ef29335e8 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/GlyphTypeface.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/GlyphTypeface.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -23,6 +23,7 @@ using MS.Internal.FontFace; using MS.Internal.PresentationCore; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; +using Windows.Win32.Foundation; namespace System.Windows.Media @@ -828,7 +829,7 @@ public IDictionary AdvanceWidths get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetAdvanceWidth); + return CreateGlyphIndexer(GetAdvanceWidth); } } @@ -840,7 +841,7 @@ public IDictionary AdvanceHeights get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetAdvanceHeight); + return CreateGlyphIndexer(GetAdvanceHeight); } } @@ -855,7 +856,7 @@ public IDictionary LeftSideBearings get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetLeftSidebearing); + return CreateGlyphIndexer(GetLeftSidebearing); } } @@ -870,7 +871,7 @@ public IDictionary RightSideBearings get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetRightSidebearing); + return CreateGlyphIndexer(GetRightSidebearing); } } @@ -886,7 +887,7 @@ public IDictionary TopSideBearings get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetTopSidebearing); + return CreateGlyphIndexer(GetTopSidebearing); } } @@ -902,7 +903,7 @@ public IDictionary BottomSideBearings get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetBottomSidebearing); + return CreateGlyphIndexer(GetBottomSidebearing); } } @@ -914,7 +915,7 @@ public IDictionary DistancesFromHorizontalBaselineToBlackBoxBott get { CheckInitialized(); // This can only be called on fully initialized GlyphTypeface - return CreateGlyphIndexer(this.GetBaseline); + return CreateGlyphIndexer(GetBaseline); } } @@ -1263,7 +1264,7 @@ internal Geometry ComputeGlyphOutline(ushort glyphIndex, MS.Internal.Text.TextInterface.FontFace fontFaceDWrite = _font.GetFontFace(); try { - HRESULT.Check(UnsafeNativeMethods.MilCoreApi.MilGlyphRun_GetGlyphOutline( + UnsafeNativeMethods.MilCoreApi.MilGlyphRun_GetGlyphOutline( fontFaceDWrite.DWriteFontFaceAddRef, // Released in this native code function glyphIndex, sideways, @@ -1271,7 +1272,7 @@ internal Geometry ComputeGlyphOutline(ushort glyphIndex, out pMilPathGeometry, out size, out fillRule - )); + ).ThrowOnFailureExtended(); } finally { @@ -1281,12 +1282,11 @@ out fillRule Geometry.PathGeometryData pathGeoData = new Geometry.PathGeometryData(); byte[] data = new byte[size]; Marshal.Copy(new IntPtr(pMilPathGeometry), data, 0, checked((int)size)); - + // Delete the memory we allocated in native code. - HRESULT.Check(UnsafeNativeMethods.MilCoreApi.MilGlyphRun_ReleasePathGeometryData( - pMilPathGeometry - )); - + UnsafeNativeMethods.MilCoreApi.MilGlyphRun_ReleasePathGeometryData( + pMilPathGeometry).ThrowOnFailureExtended(); + pathGeoData.SerializedData = data; pathGeoData.FillRule = fillRule; pathGeoData.Matrix = CompositionResourceManager.MatrixToMilMatrix3x2D(Matrix.Identity); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapCodecInfo.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapCodecInfo.cs index 2da17eb0970..e6964492c7f 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapCodecInfo.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapCodecInfo.cs @@ -1,13 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// - -using MS.Internal; using MS.Win32.PresentationCore; using System.Text; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -48,15 +45,11 @@ public virtual Guid ContainerFormat { get { - EnsureBuiltIn(); - Guid containerFormat; - - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetContainerFormat( + UnsafeNativeMethods.WICBitmapCodecInfo.GetContainerFormat( _codecInfoHandle, - out containerFormat - )); + out Guid containerFormat).ThrowOnFailureExtended(); return containerFormat; } @@ -69,125 +62,98 @@ public virtual string Author { get { - EnsureBuiltIn(); StringBuilder author = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetAuthor( + UnsafeNativeMethods.WICComponentInfo.GetAuthor( _codecInfoHandle, 0, author, - out length - )); + out uint length).ThrowOnFailureExtended(); - Debug.Assert(length >= 0); - - // get the string back + // Get the string back if (length > 0) { author = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetAuthor( + UnsafeNativeMethods.WICComponentInfo.GetAuthor( _codecInfoHandle, length, author, - out length - )); + out _).ThrowOnFailureExtended(); } - if (author != null) - return author.ToString(); - else - return String.Empty; + return author?.ToString() ?? string.Empty; } } /// - /// Version + /// Version /// - public virtual System.Version Version + public virtual Version Version { get { - EnsureBuiltIn(); StringBuilder version = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetVersion( + UnsafeNativeMethods.WICComponentInfo.GetVersion( _codecInfoHandle, 0, version, - out length - )); - - Debug.Assert(length >= 0); + out uint length).ThrowOnFailureExtended(); - // get the string back if (length > 0) { + // Get the string back version = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetVersion( + UnsafeNativeMethods.WICComponentInfo.GetVersion( _codecInfoHandle, length, version, - out length - )); + out _).ThrowOnFailureExtended(); } - if (version != null) - return new Version(version.ToString()); - else - return new Version(); + return version is not null ? new Version(version.ToString()) : new Version(); } } /// - /// Spec Version + /// Spec Version /// public virtual Version SpecificationVersion { get { - EnsureBuiltIn(); StringBuilder specVersion = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetSpecVersion( + UnsafeNativeMethods.WICComponentInfo.GetSpecVersion( _codecInfoHandle, 0, specVersion, - out length - )); - - Debug.Assert(length >= 0); + out uint length).ThrowOnFailureExtended(); - // get the string back + // Get the string back if (length > 0) { specVersion = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetSpecVersion( + UnsafeNativeMethods.WICComponentInfo.GetSpecVersion( _codecInfoHandle, length, specVersion, - out length - )); + out _).ThrowOnFailureExtended(); } - if (specVersion != null) - return new Version(specVersion.ToString()); - else - return new Version(); + return specVersion is not null ? new Version(specVersion.ToString()) : new Version(); } } @@ -198,39 +164,33 @@ public virtual string FriendlyName { get { - EnsureBuiltIn(); StringBuilder friendlyName = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetFriendlyName( + UnsafeNativeMethods.WICComponentInfo.GetFriendlyName( _codecInfoHandle, 0, friendlyName, - out length - )); + out uint length).ThrowOnFailureExtended(); Debug.Assert(length >= 0); - // get the string back + // Get the string back if (length > 0) { friendlyName = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICComponentInfo.GetFriendlyName( + UnsafeNativeMethods.WICComponentInfo.GetFriendlyName( _codecInfoHandle, length, friendlyName, out length - )); + ).ThrowOnFailureExtended(); } - if (friendlyName != null) - return friendlyName.ToString(); - else - return String.Empty; + return friendlyName?.ToString() ?? string.Empty; } } @@ -241,39 +201,30 @@ public virtual string DeviceManufacturer { get { - EnsureBuiltIn(); StringBuilder deviceManufacturer = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceManufacturer( + UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceManufacturer( _codecInfoHandle, 0, deviceManufacturer, - out length - )); - - Debug.Assert(length >= 0); + out uint length).ThrowOnFailureExtended(); - // get the string back + // Get the string back if (length > 0) { deviceManufacturer = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceManufacturer( + UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceManufacturer( _codecInfoHandle, length, deviceManufacturer, - out length - )); + out length).ThrowOnFailureExtended(); } - if (deviceManufacturer != null) - return deviceManufacturer.ToString(); - else - return String.Empty; + return deviceManufacturer?.ToString() ?? string.Empty; } } @@ -284,39 +235,30 @@ public virtual string DeviceModels { get { - EnsureBuiltIn(); StringBuilder deviceModels = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceModels( + UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceModels( _codecInfoHandle, 0, deviceModels, - out length - )); - - Debug.Assert(length >= 0); + out uint length).ThrowOnFailureExtended(); - // get the string back + // Get the string back if (length > 0) { deviceModels = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceModels( + UnsafeNativeMethods.WICBitmapCodecInfo.GetDeviceModels( _codecInfoHandle, length, deviceModels, - out length - )); + out _).ThrowOnFailureExtended(); } - if (deviceModels != null) - return deviceModels.ToString(); - else - return String.Empty; + return deviceModels?.ToString() ?? string.Empty; } } @@ -327,39 +269,32 @@ public virtual string MimeTypes { get { - EnsureBuiltIn(); StringBuilder mimeTypes = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( + UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( _codecInfoHandle, 0, mimeTypes, - out length - )); + out uint length).ThrowOnFailureExtended(); Debug.Assert(length >= 0); - // get the string back + // Get the string back if (length > 0) { mimeTypes = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( + UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( _codecInfoHandle, length, mimeTypes, - out length - )); + out _).ThrowOnFailureExtended(); } - if (mimeTypes != null) - return mimeTypes.ToString(); - else - return String.Empty; + return mimeTypes?.ToString() ?? string.Empty; } } @@ -370,39 +305,30 @@ public virtual string FileExtensions { get { - EnsureBuiltIn(); StringBuilder fileExtensions = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetFileExtensions( + UnsafeNativeMethods.WICBitmapCodecInfo.GetFileExtensions( _codecInfoHandle, 0, fileExtensions, - out length - )); + out uint length).ThrowOnFailureExtended(); - Debug.Assert(length >= 0); - - // get the string back + // Get the string back if (length > 0) { fileExtensions = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetFileExtensions( + UnsafeNativeMethods.WICBitmapCodecInfo.GetFileExtensions( _codecInfoHandle, length, fileExtensions, - out length - )); + out _).ThrowOnFailureExtended(); } - if (fileExtensions != null) - return fileExtensions.ToString(); - else - return String.Empty; + return fileExtensions?.ToString() ?? string.Empty; } } @@ -413,15 +339,11 @@ public virtual bool SupportsAnimation { get { - EnsureBuiltIn(); - bool supportsAnimation; - - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportAnimation( + UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportAnimation( _codecInfoHandle, - out supportsAnimation - )); + out bool supportsAnimation).ThrowOnFailureExtended(); return supportsAnimation; } @@ -434,15 +356,11 @@ public virtual bool SupportsLossless { get { - EnsureBuiltIn(); - bool supportsLossless; - - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportLossless( + UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportLossless( _codecInfoHandle, - out supportsLossless - )); + out bool supportsLossless).ThrowOnFailureExtended(); return supportsLossless; } @@ -455,15 +373,11 @@ public virtual bool SupportsMultipleFrames { get { - EnsureBuiltIn(); - bool supportsMultiFrame; - - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportMultiframe( + UnsafeNativeMethods.WICBitmapCodecInfo.DoesSupportMultiframe( _codecInfoHandle, - out supportsMultiFrame - )); + out bool supportsMultiFrame).ThrowOnFailureExtended(); return supportsMultiFrame; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapDecoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapDecoder.cs index ca0edcb0cfb..75732cb982f 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapDecoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapDecoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -15,6 +15,7 @@ using System.Net; using System.Net.Cache; using System.Text; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -243,7 +244,7 @@ bool insertInDecoderCache if (uri != null) { finalUri = (baseUri != null) ? - System.Windows.Navigation.BaseUriHelper.GetResolvedUri(baseUri, uri) : + Navigation.BaseUriHelper.GetResolvedUri(baseUri, uri) : uri; if (insertInDecoderCache) @@ -278,7 +279,7 @@ out clsId else { // Create an unmanaged decoder - decoderHandle = BitmapDecoder.SetupDecoderFromUriOrStream( + decoderHandle = SetupDecoderFromUriOrStream( finalUri, stream, cacheOption, @@ -524,13 +525,13 @@ public virtual BitmapPalette Palette lock (_syncObject) { - int hr = UnsafeNativeMethods.WICBitmapDecoder.CopyPalette( + HRESULT result = UnsafeNativeMethods.WICBitmapDecoder.CopyPalette( _decoderHandle, - paletteHandle - ); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_PALETTEUNAVAILABLE) + paletteHandle); + + if (result != HRESULT.WINCODEC_ERR_PALETTEUNAVAILABLE) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); _palette = new BitmapPalette(paletteHandle); } } @@ -574,13 +575,13 @@ public virtual BitmapSource Thumbnail // Check if there is embedded thumbnail or not lock (_syncObject) { - int hr = UnsafeNativeMethods.WICBitmapDecoder.GetThumbnail( + HRESULT result = UnsafeNativeMethods.WICBitmapDecoder.GetThumbnail( _decoderHandle, - out thumbnail - ); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_CODECNOTHUMBNAIL) + out thumbnail); + + if (result != HRESULT.WINCODEC_ERR_CODECNOTHUMBNAIL) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -589,16 +590,16 @@ out thumbnail BitmapSourceSafeMILHandle thumbHandle = new BitmapSourceSafeMILHandle(thumbnail); SafeMILHandle unmanagedPalette = BitmapPalette.CreateInternalPalette(); BitmapPalette palette = null; - - int hr = UnsafeNativeMethods.WICBitmapSource.CopyPalette( - thumbHandle, - unmanagedPalette - ); - if (hr == HRESULT.S_OK) + + HRESULT result = UnsafeNativeMethods.WICBitmapSource.CopyPalette( + thumbHandle, + unmanagedPalette); + + if (result == HRESULT.S_OK) { palette = new BitmapPalette(unmanagedPalette); } - + _thumbnail = new UnmanagedBitmapWrapper( BitmapSource.CreateCachedBitmap( null, @@ -634,13 +635,13 @@ public virtual BitmapMetadata Metadata lock (_syncObject) { - int hr = UnsafeNativeMethods.WICBitmapDecoder.GetMetadataQueryReader( + HRESULT result = UnsafeNativeMethods.WICBitmapDecoder.GetMetadataQueryReader( _decoderHandle, - out metadata - ); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION) + out metadata); + + if (result != HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -674,10 +675,9 @@ public virtual BitmapCodecInfo CodecInfo { SafeMILHandle /* IWICBitmapDecoderInfo */ codecInfoHandle = new SafeMILHandle(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapDecoder.GetDecoderInfo( + UnsafeNativeMethods.WICBitmapDecoder.GetDecoderInfo( _decoderHandle, - out codecInfoHandle - )); + out codecInfoHandle).ThrowOnFailureExtended(); _codecInfo = new BitmapCodecInfoInternal(codecInfoHandle); } @@ -728,13 +728,13 @@ public virtual BitmapSource Preview lock (_syncObject) { // Check if there is embedded preview or not - int hr = UnsafeNativeMethods.WICBitmapDecoder.GetPreview( + HRESULT result = UnsafeNativeMethods.WICBitmapDecoder.GetPreview( _decoderHandle, - out preview - ); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION) + out preview); + + if (result != HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -743,27 +743,27 @@ out preview BitmapSourceSafeMILHandle previewHandle = new BitmapSourceSafeMILHandle(preview); SafeMILHandle unmanagedPalette = BitmapPalette.CreateInternalPalette(); BitmapPalette palette = null; - - int hr = UnsafeNativeMethods.WICBitmapSource.CopyPalette( - previewHandle, - unmanagedPalette - ); - if (hr == HRESULT.S_OK) + + HRESULT result = UnsafeNativeMethods.WICBitmapSource.CopyPalette( + previewHandle, + unmanagedPalette); + + if (result == HRESULT.S_OK) { palette = new BitmapPalette(unmanagedPalette); } - + _preview = new UnmanagedBitmapWrapper( BitmapSource.CreateCachedBitmap( null, previewHandle, BitmapCreateOptions.PreservePixelFormat, _cacheOption, - palette - )); + palette)); + _preview.Freeze(); } - + _isPreviewCached = true; } @@ -938,10 +938,10 @@ internal object SyncObject /// /// Used as a delegate in InternalColorContexts to get the unmanaged IWICColorContexts /// - private int GetColorContexts(ref uint numContexts, IntPtr[] colorContextPtrs) + private HRESULT GetColorContexts(ref uint numContexts, IntPtr[] colorContextPtrs) { Invariant.Assert(colorContextPtrs == null || numContexts <= colorContextPtrs.Length); - + return UnsafeNativeMethods.WICBitmapDecoder.GetColorContexts(_decoderHandle, numContexts, colorContextPtrs, out numContexts); } @@ -982,7 +982,7 @@ internal void CheckOriginalWritable() { if (!_isOriginalWritable) { - throw new System.InvalidOperationException(SR.Image_OriginalStreamReadOnly); + throw new InvalidOperationException(SR.Image_OriginalStreamReadOnly); } } @@ -1003,7 +1003,7 @@ out SafeFileHandle safeFilehandle { SafeMILHandle decoderHandle; IntPtr decoder = IntPtr.Zero; - System.IO.Stream bitmapStream = null; + Stream bitmapStream = null; unmanagedMemoryStream = null; safeFilehandle = null; isOriginalWritable = false; @@ -1030,7 +1030,7 @@ out SafeFileHandle safeFilehandle } } - if ((bitmapStream == null) || (bitmapStream == System.IO.Stream.Null)) + if ((bitmapStream == null) || (bitmapStream == Stream.Null)) { // We didn't get a stream from the pack web request, so we have // to try to create one ourselves. @@ -1044,7 +1044,7 @@ out SafeFileHandle safeFilehandle if (uri.IsFile) { // FileStream does a demand for us, so no need to do a demand - bitmapStream = new System.IO.FileStream(uri.LocalPath, FileMode.Open, FileAccess.Read, FileShare.Read); + bitmapStream = new FileStream(uri.LocalPath, FileMode.Open, FileAccess.Read, FileShare.Read); } } else // Any other zone @@ -1075,7 +1075,7 @@ out SafeFileHandle safeFilehandle // We don't have an absolute URI, so we don't necessarily know // if it is a file, but we'll have to assume it is and try to // create a stream from the original string. - bitmapStream = new System.IO.FileStream(uri.OriginalString, FileMode.Open, FileAccess.Read, FileShare.Read); + bitmapStream = new FileStream(uri.OriginalString, FileMode.Open, FileAccess.Read, FileShare.Read); #pragma warning restore 6518 } @@ -1104,9 +1104,9 @@ out SafeFileHandle safeFilehandle IntPtr comStream = IntPtr.Zero; - if (stream is System.IO.FileStream) + if (stream is FileStream) { - System.IO.FileStream filestream = stream as System.IO.FileStream; + FileStream filestream = stream as FileStream; try { if (filestream.IsAsync is false) @@ -1142,29 +1142,27 @@ out SafeFileHandle safeFilehandle { using (FactoryMaker myFactory = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateDecoderFromFileHandle( + UnsafeNativeMethods.WICImagingFactory.CreateDecoderFromFileHandle( myFactory.ImagingFactoryPtr, safeFilehandle, ref vendorMicrosoft, metadataFlags, - out decoder - )); + out decoder).ThrowOnFailureExtended(); } } else { - comStream = BitmapDecoder.GetIStreamFromStream(ref stream); + comStream = GetIStreamFromStream(ref stream); using (FactoryMaker myFactory = new FactoryMaker()) { // This does an add-ref on the comStream - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateDecoderFromStream( + UnsafeNativeMethods.WICImagingFactory.CreateDecoderFromStream( myFactory.ImagingFactoryPtr, comStream, ref vendorMicrosoft, metadataFlags, - out decoder - )); + out decoder).ThrowOnFailureExtended(); } } Debug.Assert(decoder != IntPtr.Zero); @@ -1228,7 +1226,7 @@ private static Stream ProcessUncFiles(Uri uri) { - return new System.IO.FileStream(uri.LocalPath, FileMode.Open, FileAccess.Read, FileShare.Read); + return new FileStream(uri.LocalPath, FileMode.Open, FileAccess.Read, FileShare.Read); } /// Returns the decoder's CLSID @@ -1238,52 +1236,41 @@ private static Guid GetCLSIDFromDecoder(SafeMILHandle decoderHandle, out string // Get the decoder info SafeMILHandle decoderInfo = new SafeMILHandle(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapDecoder.GetDecoderInfo( + UnsafeNativeMethods.WICBitmapDecoder.GetDecoderInfo( decoderHandle, - out decoderInfo - )); + out decoderInfo).ThrowOnFailureExtended(); // Get CLSID for the decoder - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetContainerFormat(decoderInfo, out clsId)); + UnsafeNativeMethods.WICBitmapCodecInfo.GetContainerFormat(decoderInfo, out clsId).ThrowOnFailureExtended(); StringBuilder mimeTypes = null; - UInt32 length = 0; // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( + UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( decoderInfo, 0, mimeTypes, - out length - )); + out uint length).ThrowOnFailureExtended(); - // get the string back + // Get the string back if (length > 0) { mimeTypes = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( + UnsafeNativeMethods.WICBitmapCodecInfo.GetMimeTypes( decoderInfo, length, mimeTypes, - out length - )); + out _).ThrowOnFailureExtended(); } - if (mimeTypes != null) - { - decoderMimeTypes = mimeTypes.ToString(); - } - else - { - decoderMimeTypes = String.Empty; - } + decoderMimeTypes = mimeTypes?.ToString() ?? string.Empty; return clsId; } /// Return a seekable stream if the current one is not seekable - private static System.IO.Stream GetSeekableStream(System.IO.Stream bitmapStream) + private static Stream GetSeekableStream(Stream bitmapStream) { // MIL codecs require the source stream to be seekable. But if // the source stream is an internet stream, it is not seekable. @@ -1301,8 +1288,8 @@ private static System.IO.Stream GetSeekableStream(System.IO.Stream bitmapStream) // hack here and pass the network stream (CConectStream) // directly to the unmanaged code - System.IO.MemoryStream memStream = - new System.IO.MemoryStream(); + MemoryStream memStream = + new MemoryStream(); byte[] buffer = new byte[1024]; int read; @@ -1323,7 +1310,7 @@ private static System.IO.Stream GetSeekableStream(System.IO.Stream bitmapStream) } while (true); // Reset the memory stream pointer back to the begining - memStream.Seek(0, System.IO.SeekOrigin.Begin); + memStream.Seek(0, SeekOrigin.Begin); // Use the new stream @@ -1434,7 +1421,7 @@ internal void SetupFrames(BitmapDecoder decoder, ReadOnlyCollection { uint numFrames = 1; - HRESULT.Check(UnsafeNativeMethods.WICBitmapDecoder.GetFrameCount(_decoderHandle, out numFrames)); + UnsafeNativeMethods.WICBitmapDecoder.GetFrameCount(_decoderHandle, out numFrames).ThrowOnFailureExtended(); _frames = new List((int)numFrames); @@ -1502,7 +1489,7 @@ private void EnsureBuiltInDecoder() /// /// /// - private static IntPtr GetIStreamFromStream(ref System.IO.Stream bitmapStream) + private static IntPtr GetIStreamFromStream(ref Stream bitmapStream) { IntPtr comStream = IntPtr.Zero; @@ -1532,7 +1519,7 @@ private static IntPtr GetIStreamFromStream(ref System.IO.Stream bitmapStream) if (comStream == IntPtr.Zero) { - throw new System.InvalidOperationException( + throw new InvalidOperationException( SR.Image_CantDealWithStream); } @@ -1546,12 +1533,12 @@ private static IntPtr GetIStreamFromStream(ref System.IO.Stream bitmapStream) { // we don't need the original stream anymore UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref comStream); - bitmapStream = System.IO.Stream.Null; + bitmapStream = Stream.Null; return memoryStream; } else if (!seekable) { - throw new System.InvalidOperationException( + throw new InvalidOperationException( SR.Image_CantDealWithStream); } } @@ -1559,7 +1546,7 @@ private static IntPtr GetIStreamFromStream(ref System.IO.Stream bitmapStream) if (comStream == IntPtr.Zero) { - throw new System.InvalidOperationException( + throw new InvalidOperationException( SR.Image_CantDealWithStream); } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapEncoder.cs index ebfb262c206..6eae6b533db 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using System.Windows.Threading; using System.Runtime.InteropServices; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 // suppressing PreSharp warnings @@ -243,12 +244,11 @@ public virtual BitmapCodecInfo CodecInfo // There should always be a codec info. if (_codecInfo == null) { - SafeMILHandle /* IWICBitmapEncoderInfo */ codecInfoHandle = new SafeMILHandle(); + SafeMILHandle /* IWICBitmapEncoderInfo */ codecInfoHandle = new SafeMILHandle(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.GetEncoderInfo( + UnsafeNativeMethods.WICBitmapEncoder.GetEncoderInfo( _encoderHandle, - out codecInfoHandle - )); + out codecInfoHandle).ThrowOnFailureExtended(); _codecInfo = new BitmapCodecInfoInternal(codecInfoHandle); } @@ -349,11 +349,10 @@ public virtual void Save(System.IO.Stream stream) comStream = StreamAsIStream.IStreamFrom(stream); // does this addref the stream? - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.Initialize( + UnsafeNativeMethods.WICBitmapEncoder.Initialize( encoderHandle, comStream, - WICBitmapEncodeCacheOption.WICBitmapEncodeNoCache - )); + WICBitmapEncodeCacheOption.WICBitmapEncodeNoCache).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.EncoderInitialized; @@ -366,10 +365,9 @@ public virtual void Save(System.IO.Stream stream) lock (_thumbnail.SyncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.SetThumbnail( + UnsafeNativeMethods.WICBitmapEncoder.SetThumbnail( encoderHandle, - thumbnailBitmapSource - )); + thumbnailBitmapSource).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.EncoderThumbnailSet; @@ -381,10 +379,9 @@ public virtual void Save(System.IO.Stream stream) { SafeMILHandle paletteHandle = _palette.InternalPalette; - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.SetPalette( + UnsafeNativeMethods.WICBitmapEncoder.SetPalette( encoderHandle, - paletteHandle - )); + paletteHandle).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.EncoderPaletteSet; @@ -407,11 +404,10 @@ public virtual void Save(System.IO.Stream stream) lock (_metadata.SyncObject) { - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( + UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( _metadataHandle, "/", - ref propVar - )); + ref propVar).ThrowOnFailureExtended(); } } finally @@ -425,11 +421,10 @@ ref propVar { SafeMILHandle frameEncodeHandle = new SafeMILHandle(); SafeMILHandle encoderOptions = new SafeMILHandle(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.CreateNewFrame( + UnsafeNativeMethods.WICBitmapEncoder.CreateNewFrame( encoderHandle, out frameEncodeHandle, - out encoderOptions - )); + out encoderOptions).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.EncoderCreatedNewFrame; @@ -445,7 +440,7 @@ out encoderOptions } // Now let the encoder know we are done encoding the file. - HRESULT.Check(UnsafeNativeMethods.WICBitmapEncoder.Commit(encoderHandle)); + UnsafeNativeMethods.WICBitmapEncoder.Commit(encoderHandle).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.EncoderCommitted; @@ -521,18 +516,18 @@ private void EnsureMetadata(bool createBitmapMetadata) { SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle = new SafeMILHandle(); - int hr = UnsafeNativeMethods.WICBitmapEncoder.GetMetadataQueryWriter( + HRESULT result = UnsafeNativeMethods.WICBitmapEncoder.GetMetadataQueryWriter( _encoderHandle, out metadataHandle ); - if (hr == (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION) + if (result == HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) { _supportsGlobalMetadata = false; return; } - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); _metadataHandle = metadataHandle; } @@ -558,12 +553,11 @@ private void EnsureUnmanagedEncoder() Guid vendorMicrosoft = new Guid(MILGuidData.GUID_VendorMicrosoft); Guid containerFormat = ContainerFormat; - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateEncoder( - myFactory.ImagingFactoryPtr, - ref containerFormat, - ref vendorMicrosoft, - out encoderHandle - )); + UnsafeNativeMethods.WICImagingFactory.CreateEncoder( + myFactory.ImagingFactoryPtr, + ref containerFormat, + ref vendorMicrosoft, + out encoderHandle).ThrowOnFailureExtended(); _encoderHandle = encoderHandle; } @@ -581,11 +575,10 @@ private void SaveFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOpt _encodeState = EncodeState.FrameEncodeInitialized; // Set the size - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.SetSize( + UnsafeNativeMethods.WICBitmapFrameEncode.SetSize( frameEncodeHandle, frame.PixelWidth, - frame.PixelHeight - )); + frame.PixelHeight).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeSizeSet; @@ -603,11 +596,10 @@ private void SaveFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOpt dpiY = 96; } - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.SetResolution( + UnsafeNativeMethods.WICBitmapFrameEncode.SetResolution( frameEncodeHandle, dpiX, - dpiY - )); + dpiY).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeResolutionSet; @@ -623,10 +615,9 @@ private void SaveFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOpt lock (thumbnail.SyncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.SetThumbnail( + UnsafeNativeMethods.WICBitmapFrameEncode.SetThumbnail( frameEncodeHandle, - thumbnailHandle - )); + thumbnailHandle).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeThumbnailSet; @@ -658,7 +649,7 @@ private void SaveFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOpt { IList colorContexts = frame.ColorContexts; if (colorContexts != null && colorContexts.Count > 0) - { + { int count = colorContexts.Count; // Marshal can't convert SafeMILHandle[] so we must @@ -695,12 +686,11 @@ private void SaveFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOpt // Set the pixel format and palette of the bitmap. // This could (but hopefully won't) introduce a format converter. - HRESULT.Check(UnsafeNativeMethods.WICCodec.WICSetEncoderFormat( + UnsafeNativeMethods.WICCodec.WICSetEncoderFormat( bitmapSourceHandle, paletteHandle, frameEncodeHandle, - out outSourceHandle - )); + out outSourceHandle).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeFormatSet; @@ -716,10 +706,9 @@ out outSourceHandle { SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle = new SafeMILHandle(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.GetMetadataQueryWriter( + UnsafeNativeMethods.WICBitmapFrameEncode.GetMetadataQueryWriter( frameEncodeHandle, - out metadataHandle - )); + out metadataHandle).ThrowOnFailureExtended(); PROPVARIANT propVar = new PROPVARIANT(); @@ -729,11 +718,10 @@ out metadataHandle lock (metadata.SyncObject) { - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( + UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( metadataHandle, "/", - ref propVar - )); + ref propVar).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeMetadataSet; @@ -747,18 +735,15 @@ ref propVar } Int32Rect r = new Int32Rect(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.WriteSource( + UnsafeNativeMethods.WICBitmapFrameEncode.WriteSource( frameEncodeHandle, outSourceHandle, - ref r - )); + ref r).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeSourceWritten; - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Commit( - frameEncodeHandle - )); + UnsafeNativeMethods.WICBitmapFrameEncode.Commit(frameEncodeHandle).ThrowOnFailureExtended(); // Helpful for debugging stress and remote dumps _encodeState = EncodeState.FrameEncodeCommitted; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapFrameDecode.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapFrameDecode.cs index 1527655d7a9..236d0801bd4 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapFrameDecode.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapFrameDecode.cs @@ -1,13 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// - using System.Collections.ObjectModel; using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 // Allow suppression of certain presharp messages @@ -115,7 +113,7 @@ LateBoundBitmapDecoder decoder byte[] pixels = new byte[4]; - BitmapSource source = BitmapSource.Create( + BitmapSource source = Create( 1, 1, 96, @@ -215,11 +213,15 @@ public override BitmapDecoder Decoder /// /// Used as a delegate in ColorContexts to get the unmanaged IWICColorContexts /// - private int GetColorContexts(ref uint numContexts, IntPtr[] colorContextPtrs) + private HRESULT GetColorContexts(ref uint numContexts, IntPtr[] colorContextPtrs) { Invariant.Assert(colorContextPtrs == null || numContexts <= colorContextPtrs.Length); - - return UnsafeNativeMethods.WICBitmapFrameDecode.GetColorContexts(_frameSource, numContexts, colorContextPtrs, out numContexts); + + return UnsafeNativeMethods.WICBitmapFrameDecode.GetColorContexts( + _frameSource, + numContexts, + colorContextPtrs, + out numContexts); } /// @@ -576,14 +578,14 @@ private void EnsureThumbnail() lock (_syncObject) { // Check if there is embedded thumbnail or not - int hr = UnsafeNativeMethods.WICBitmapFrameDecode.GetThumbnail( + HRESULT result = UnsafeNativeMethods.WICBitmapFrameDecode.GetThumbnail( _frameSource, out thumbnail ); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_CODECNOTHUMBNAIL) + if (result != HRESULT.WINCODEC_ERR_CODECNOTHUMBNAIL) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -595,11 +597,9 @@ out thumbnail SafeMILHandle unmanagedPalette = BitmapPalette.CreateInternalPalette(); BitmapPalette palette = null; - int hr = UnsafeNativeMethods.WICBitmapSource.CopyPalette( - thumbHandle, - unmanagedPalette - ); - if (hr == HRESULT.S_OK) + HRESULT result = UnsafeNativeMethods.WICBitmapSource.CopyPalette(thumbHandle, unmanagedPalette); + + if (result == HRESULT.S_OK) { palette = new BitmapPalette(unmanagedPalette); } @@ -637,14 +637,13 @@ internal override BitmapMetadata InternalMetadata lock (_syncObject) { // Check if there is embedded metadata or not - int hr = UnsafeNativeMethods.WICBitmapFrameDecode.GetMetadataQueryReader( + HRESULT result = UnsafeNativeMethods.WICBitmapFrameDecode.GetMetadataQueryReader( _frameSource, - out metadata - ); + out metadata); - if (hr != (int)WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION) + if (result != HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -676,7 +675,7 @@ private void EnsureSource() { if (_decoder == null) { - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_NOTINITIALIZED); + HRESULT.WINCODEC_ERR_NOTINITIALIZED.ThrowOnFailureExtended(); } // @@ -701,11 +700,10 @@ private void EnsureSource() Debug.Assert(_syncObject != null); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapDecoder.GetFrame( + UnsafeNativeMethods.WICBitmapDecoder.GetFrame( _decoder.InternalDecoder, (uint)_frameNumber, - out frameDecode - )); + out frameDecode).ThrowOnFailureExtended(); _frameSource = new BitmapSourceSafeMILHandle(frameDecode); _frameSource.CalculateSize(); @@ -765,7 +763,7 @@ public WeakBitmapFrameDecodeEventSink(BitmapFrameDecode cloned, BitmapFrameDecod public void OnSourceDownloadCompleted(object sender, EventArgs e) { - BitmapFrameDecode clone = this.Target as BitmapFrameDecode; + BitmapFrameDecode clone = Target as BitmapFrameDecode; if (null != clone) { clone.OnOriginalDownloadCompleted(_original, e); @@ -778,7 +776,7 @@ public void OnSourceDownloadCompleted(object sender, EventArgs e) public void OnSourceDownloadFailed(object sender, ExceptionEventArgs e) { - BitmapFrameDecode clone = this.Target as BitmapFrameDecode; + BitmapFrameDecode clone = Target as BitmapFrameDecode; if (null != clone) { clone.OnOriginalDownloadFailed(e); @@ -791,7 +789,7 @@ public void OnSourceDownloadFailed(object sender, ExceptionEventArgs e) public void OnSourceDownloadProgress(object sender, DownloadProgressEventArgs e) { - BitmapFrameDecode clone = this.Target as BitmapFrameDecode; + BitmapFrameDecode clone = Target as BitmapFrameDecode; if (null != clone) { clone.OnDownloadProgress(sender, e); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadata.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadata.cs index ae8f0353562..e122c457d22 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadata.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadata.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,7 +12,8 @@ using System.Globalization; using System.Runtime.InteropServices; using System.Text; -using MS.Internal.PresentationCore; // SecurityHelper +using MS.Internal.PresentationCore; +using Windows.Win32.Foundation; // SecurityHelper #pragma warning disable 1634, 1691 // suppressing PreSharp warnings @@ -34,27 +35,27 @@ public partial class BitmapMetadata : ImageMetadata, IEnumerable, IEnumerable /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int GetReaderByIndex( + public HRESULT GetReaderByIndex( UInt32 index, out IntPtr /* IWICMetadataReader */ pIMetadataReader ) @@ -213,7 +207,7 @@ out IntPtr /* IWICMetadataReader */ pIMetadataReader if (index >= _metadataBlocks.Count) { pIMetadataReader = IntPtr.Zero; - return (int) WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND; + return HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND; } SafeMILHandle metadataReader = (SafeMILHandle) _metadataBlocks[(int)index]; @@ -229,7 +223,7 @@ out IntPtr /* IWICMetadataReader */ pIMetadataReader /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int GetEnumerator( + public HRESULT GetEnumerator( out IntPtr /* IEnumUnknown */ pIEnumMetadata ) { @@ -239,35 +233,30 @@ out IntPtr /* IEnumUnknown */ pIEnumMetadata pIEnumMetadata = Marshal.GetComInterfaceForObject( blockEnumerator, - typeof(System.Windows.Media.Imaging.BitmapMetadata.IEnumUnknown)); + typeof(IEnumUnknown)); - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int InitializeFromBlockReader( + public HRESULT InitializeFromBlockReader( IntPtr /* IWICMetadataBlockReader */ pIBlockReader ) { Invariant.Assert(pIBlockReader != IntPtr.Zero); - int hr = MS.Win32.NativeMethods.S_OK; - - UInt32 count = 0; - Guid guidVendor = new Guid(MILGuidData.GUID_VendorMicrosoft); ArrayList metadataBlocks = new ArrayList(); - hr = UnsafeNativeMethods.WICMetadataBlockReader.GetCount( + HRESULT result = UnsafeNativeMethods.WICMetadataBlockReader.GetCount( pIBlockReader, - out count - ); + out uint count); - if (HRESULT.Succeeded(hr)) + if (result.Succeeded) { using (FactoryMaker factoryMaker = new FactoryMaker()) { @@ -278,25 +267,23 @@ out count try { - hr = UnsafeNativeMethods.WICMetadataBlockReader.GetReaderByIndex( + result = UnsafeNativeMethods.WICMetadataBlockReader.GetReaderByIndex( pIBlockReader, i, - out pIMetadataReader - ); + out pIMetadataReader); - if (HRESULT.Failed(hr)) + if (result.Failed) { break; } - hr = UnsafeNativeMethods.WICComponentFactory.CreateMetadataWriterFromReader( + result = UnsafeNativeMethods.WICComponentFactory.CreateMetadataWriterFromReader( factoryMaker.ImagingFactoryPtr, pIMetadataReader, ref guidVendor, - out pIMetadataWriter - ); + out pIMetadataWriter); - if (HRESULT.Failed(hr)) + if (result.Failed) { break; } @@ -315,8 +302,8 @@ out pIMetadataWriter } if (pIMetadataWriter != IntPtr.Zero) { - #pragma warning suppress 6031 // Return value ignored on purpose. - UnsafeNativeMethods.MILUnknown.Release(pIMetadataWriter); + // Return value ignored on purpose. + _ = UnsafeNativeMethods.MILUnknown.Release(pIMetadataWriter); } } } @@ -325,14 +312,14 @@ out pIMetadataWriter _metadataBlocks = metadataBlocks; } - return hr; + return result; } /// /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int GetWriterByIndex( + public HRESULT GetWriterByIndex( UInt32 index, out IntPtr /* IWICMetadataWriter */ pIMetadataWriter ) @@ -340,7 +327,7 @@ out IntPtr /* IWICMetadataWriter */ pIMetadataWriter if (index >= _metadataBlocks.Count) { pIMetadataWriter = IntPtr.Zero; - return (int) WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND; + return HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND; } SafeMILHandle metadataWriter = (SafeMILHandle) _metadataBlocks[(int)index]; @@ -356,18 +343,18 @@ out IntPtr /* IWICMetadataWriter */ pIMetadataWriter /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int AddWriter( + public HRESULT AddWriter( IntPtr /* IWICMetadataWriter */ pIMetadataWriter ) { if (pIMetadataWriter == IntPtr.Zero) { - return (int) WinCodecErrors.WINCODEC_ERR_INVALIDPARAMETER; + return HRESULT.FromWin32(WIN32_ERROR.ERROR_INVALID_PARAMETER); } if (_fixedSize && _metadataBlocks.Count>0) { - return (int) WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION; + return HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION; } SafeMILHandle metadataWriter = new SafeMILHandle(pIMetadataWriter); @@ -376,31 +363,31 @@ public int AddWriter( _metadataBlocks.Add(metadataWriter); - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int SetWriterByIndex( + public HRESULT SetWriterByIndex( UInt32 index, IntPtr /* IWICMetadataWriter */ pIMetadataWriter ) { if (index >= _metadataBlocks.Count) { - return (int) WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND; + return HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND; } if (pIMetadataWriter == IntPtr.Zero) { - return (int) WinCodecErrors.WINCODEC_ERR_INVALIDPARAMETER; + return HRESULT.FromWin32(WIN32_ERROR.ERROR_INVALID_PARAMETER); } if (_fixedSize) { - return (int) WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION; + return HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION; } SafeMILHandle metadataWriter = new SafeMILHandle(pIMetadataWriter); @@ -409,26 +396,24 @@ public int SetWriterByIndex( _metadataBlocks[(int)index] = metadataWriter; - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } - public int RemoveWriterByIndex( - UInt32 index - ) + public HRESULT RemoveWriterByIndex(uint index) { if (index >= _metadataBlocks.Count) { - return (int) WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND; + return HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND; } if (_fixedSize) { - return (int) WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION; + return HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION; } _metadataBlocks.Remove(index); - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } internal ArrayList MetadataBlocks @@ -453,26 +438,26 @@ internal ArrayList MetadataBlocks // Guid: IID_IEnumUnknown [ComImport(), Guid("00000100-0000-0000-C000-000000000046"), - InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IEnumUnknown { [PreserveSig] - int Next( + HRESULT Next( UInt32 celt, out IntPtr /* IUnknown ** */ rgelt, ref UInt32 pceltFetched ); [PreserveSig] - int Skip( + HRESULT Skip( UInt32 celt ); [PreserveSig] - int Reset(); + HRESULT Reset(); [PreserveSig] - int Clone( + HRESULT Clone( ref IntPtr /* IEnumString ** */ ppEnum ); } @@ -501,7 +486,7 @@ BitmapMetadataBlockWriter blockWriter /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int Next( + public HRESULT Next( UInt32 celt, out IntPtr /* IUnknown ** */ rgelt, ref UInt32 pceltFetched @@ -512,69 +497,65 @@ ref UInt32 pceltFetched { rgelt = IntPtr.Zero; pceltFetched = 0; - return (int) WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION; + return HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION; } if (_index >= _metadataBlocks.Count || celt == 0) { rgelt = IntPtr.Zero; pceltFetched = 0; - return MS.Win32.NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } else { - SafeMILHandle metadataHandle = (SafeMILHandle) _metadataBlocks[(int)_index]; + SafeMILHandle metadataHandle = (SafeMILHandle)_metadataBlocks[(int)_index]; Guid wicMetadataReader = MILGuidData.IID_IWICMetadataReader; - int hr = UnsafeNativeMethods.MILUnknown.QueryInterface( + HRESULT result = UnsafeNativeMethods.MILUnknown.QueryInterface( metadataHandle, ref wicMetadataReader, out rgelt); - if (HRESULT.Succeeded(hr)) + if (result.Succeeded) { pceltFetched = 1; _index++; } - return hr; + return result; } } - public int Skip( - UInt32 celt - ) + public HRESULT Skip(uint celt) { - UInt32 newIndex = _index + celt; + uint newIndex = _index + celt; if (newIndex > _metadataBlocks.Count) { - _index = (uint) _metadataBlocks.Count; - return MS.Win32.NativeMethods.S_FALSE; + _index = (uint)_metadataBlocks.Count; + return HRESULT.S_FALSE; } else { _index += celt; - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } } - public int Reset() + public HRESULT Reset() { _index = 0; - return MS.Win32.NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// This method is part of an interface that is only called by way of WindowsCodec. It is not /// publicly exposed or accessible in any way. /// - public int Clone( - ref IntPtr /* IEnumUnknown ** */ ppEnum - ) + public HRESULT Clone(ref IntPtr /* IEnumUnknown ** */ ppEnum) { ppEnum = IntPtr.Zero; - return (int) WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION; + return HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION; } private ArrayList _metadataBlocks; @@ -583,9 +564,6 @@ ref IntPtr /* IEnumUnknown ** */ ppEnum #region Constructors - /// - /// - /// public BitmapMetadata(String containerFormat) { ArgumentNullException.ThrowIfNull(containerFormat); @@ -593,10 +571,7 @@ public BitmapMetadata(String containerFormat) Guid guid = new Guid(); // Find the length of the string needed - HRESULT.Check(UnsafeNativeMethods.WICCodec.WICMapShortNameToGuid( - containerFormat, - ref guid - )); + UnsafeNativeMethods.WICCodec.WICMapShortNameToGuid(containerFormat, ref guid).ThrowOnFailureExtended(); Init(guid, false, false); } @@ -644,7 +619,7 @@ internal BitmapMetadata(BitmapMetadata bitmapMetadata) /// private void Init(Guid containerFormat, bool readOnly, bool fixedSize) { - int hr = 0; + HRESULT result = HRESULT.S_OK; IntPtr /* IWICMetadataQueryWriter */ queryWriter = IntPtr.Zero; using (FactoryMaker factoryMaker = new FactoryMaker()) @@ -652,7 +627,7 @@ private void Init(Guid containerFormat, bool readOnly, bool fixedSize) Guid vendorMicrosoft = new Guid(MILGuidData.GUID_VendorMicrosoft); // If it's a metadata format, create a Query Writer to wrap it. - hr = UnsafeNativeMethods.WICImagingFactory.CreateQueryWriter( + result = UnsafeNativeMethods.WICImagingFactory.CreateQueryWriter( factoryMaker.ImagingFactoryPtr, ref containerFormat, ref vendorMicrosoft, @@ -660,7 +635,7 @@ out queryWriter ); } - if (HRESULT.Succeeded(hr)) + if (result.Succeeded) { _readOnly = readOnly; _fixedSize = fixedSize; @@ -692,13 +667,12 @@ private void InitializeFromBlockWriter(Guid containerFormat, bool readOnly, bool blockWriter = Marshal.GetComInterfaceForObject( _blockWriter, - typeof(System.Windows.Media.Imaging.BitmapMetadata.IWICMetadataBlockWriter)); + typeof(IWICMetadataBlockWriter)); - HRESULT.Check(UnsafeNativeMethods.WICComponentFactory.CreateQueryWriterFromBlockWriter( + UnsafeNativeMethods.WICComponentFactory.CreateQueryWriterFromBlockWriter( factoryMaker.ImagingFactoryPtr, blockWriter, - ref queryWriter - )); + ref queryWriter).ThrowOnFailureExtended(); _readOnly = readOnly; _fixedSize = fixedSize; @@ -741,13 +715,12 @@ private void InitializeFromBlockWriter(BitmapMetadataBlockWriter sourceBlockWrit blockWriter = Marshal.GetComInterfaceForObject( _blockWriter, - typeof(System.Windows.Media.Imaging.BitmapMetadata.IWICMetadataBlockWriter)); + typeof(IWICMetadataBlockWriter)); - HRESULT.Check(UnsafeNativeMethods.WICComponentFactory.CreateQueryWriterFromBlockWriter( + UnsafeNativeMethods.WICComponentFactory.CreateQueryWriterFromBlockWriter( factoryMaker.ImagingFactoryPtr, blockWriter, - ref queryWriter - )); + ref queryWriter).ThrowOnFailureExtended(); _readOnly = false; _fixedSize = false; @@ -778,7 +751,7 @@ ref queryWriter /// private void InitializeFromMetadataWriter(SafeMILHandle metadataHandle, object syncObject) { - int hr; + HRESULT result; IntPtr queryWriter = IntPtr.Zero; Guid guidVendor = new Guid(MILGuidData.GUID_VendorMicrosoft); @@ -790,7 +763,7 @@ private void InitializeFromMetadataWriter(SafeMILHandle metadataHandle, object s { lock (syncObject) { - hr = UnsafeNativeMethods.WICImagingFactory.CreateQueryWriterFromReader( + result = UnsafeNativeMethods.WICImagingFactory.CreateQueryWriterFromReader( factoryMaker.ImagingFactoryPtr, metadataHandle, ref guidVendor, @@ -798,7 +771,7 @@ private void InitializeFromMetadataWriter(SafeMILHandle metadataHandle, object s } } - if (HRESULT.Succeeded(hr)) + if (result.Succeeded) { _readOnly = false; _fixedSize = false; @@ -809,17 +782,17 @@ private void InitializeFromMetadataWriter(SafeMILHandle metadataHandle, object s _syncObject = _metadataHandle; } - else if (!HRESULT.IsWindowsCodecError(hr)) + else if (!result.IsWindowsCodecError()) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } finally { if (queryWriter != IntPtr.Zero) { - #pragma warning suppress 6031 // Return value ignored on purpose. - UnsafeNativeMethods.MILUnknown.Release(queryWriter); + // Return value ignored on purpose. + _ = UnsafeNativeMethods.MILUnknown.Release(queryWriter); } } } @@ -838,7 +811,7 @@ private void InitializeFromMetadataWriter(SafeMILHandle metadataHandle, object s } /// - /// Implementation of Freezable.CreateInstanceCore. + /// Implementation of Freezable.CreateInstanceCore. /// /// The new Freezable. protected override Freezable CreateInstanceCore() @@ -847,7 +820,7 @@ protected override Freezable CreateInstanceCore() } /// - /// Implementation of Freezable.CloneCore. + /// Implementation of Freezable.CloneCore. /// protected override void CloneCore(Freezable sourceFreezable) { @@ -858,7 +831,7 @@ protected override void CloneCore(Freezable sourceFreezable) } /// - /// Implementation of Freezable.CloneCurrentValueCore. + /// Implementation of Freezable.CloneCurrentValueCore. /// protected override void CloneCurrentValueCore(Freezable sourceFreezable) { @@ -870,7 +843,7 @@ protected override void CloneCurrentValueCore(Freezable sourceFreezable) /// - /// Implementation of Freezable.GetAsFrozenCore. + /// Implementation of Freezable.GetAsFrozenCore. /// protected override void GetAsFrozenCore(Freezable sourceFreezable) { @@ -882,7 +855,7 @@ protected override void GetAsFrozenCore(Freezable sourceFreezable) /// - /// Implementation of Freezable.GetCurrentValueAsFrozenCore. + /// Implementation of Freezable.GetCurrentValueAsFrozenCore. /// protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { @@ -894,16 +867,13 @@ protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) #endregion - /// - /// - /// public String Format { get { EnsureBitmapMetadata(); StringBuilder format = null; - UInt32 length = 0; + uint length = 0; // This calls EnsureBitmapMetadata() Guid guid = GuidFormat; @@ -911,26 +881,22 @@ public String Format // Find the length of the string needed lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICCodec.WICMapGuidToShortName( + UnsafeNativeMethods.WICCodec.WICMapGuidToShortName( ref guid, 0, format, - ref length - )); - - Debug.Assert(length >= 0); + ref length).ThrowOnFailureExtended(); - // get the string back + // Get the string back if (length > 0) { format = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICCodec.WICMapGuidToShortName( + UnsafeNativeMethods.WICCodec.WICMapGuidToShortName( ref guid, length, format, - ref length - )); + ref length).ThrowOnFailureExtended(); } } @@ -938,41 +904,33 @@ ref length } } - /// - /// - /// public String Location { get { StringBuilder location = null; - UInt32 length = 0; EnsureBitmapMetadata(); // Find the length of the string needed lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryReader.GetLocation( + UnsafeNativeMethods.WICMetadataQueryReader.GetLocation( _metadataHandle, 0, location, - out length - )); + out uint length).ThrowOnFailureExtended(); - Debug.Assert(length >= 0); - - // get the string back + // Get the string back if (length > 0) { location = new StringBuilder((int)length); - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryReader.GetLocation( + UnsafeNativeMethods.WICMetadataQueryReader.GetLocation( _metadataHandle, length, location, - out length - )); + out length).ThrowOnFailureExtended(); } } @@ -982,9 +940,6 @@ out length #region Properties - /// - /// - /// public bool IsReadOnly { get @@ -995,9 +950,6 @@ public bool IsReadOnly } } - /// - /// - /// public bool IsFixedSize { get @@ -1025,7 +977,7 @@ public void SetQuery(String query, object value) if (_readOnly) { - throw new System.InvalidOperationException(SR.Image_MetadataReadOnly); + throw new InvalidOperationException(SR.Image_MetadataReadOnly); } // Store these for debugging stress failures. @@ -1053,11 +1005,10 @@ public void SetQuery(String query, object value) { lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( + UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( _metadataHandle, query, - ref propVar - )); + ref propVar).ThrowOnFailureExtended(); } } } @@ -1065,11 +1016,10 @@ ref propVar { lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( + UnsafeNativeMethods.WICMetadataQueryWriter.SetMetadataByName( _metadataHandle, query, - ref propVar - )); + ref propVar).ThrowOnFailureExtended(); } } } @@ -1081,12 +1031,9 @@ ref propVar WritePostscript(); } - /// - /// - /// public object GetQuery(String query) { - int hr; + HRESULT result; ArgumentNullException.ThrowIfNull(query); @@ -1100,16 +1047,15 @@ public object GetQuery(String query) lock (_syncObject) { - hr = UnsafeNativeMethods.WICMetadataQueryReader.GetMetadataByName( + result = UnsafeNativeMethods.WICMetadataQueryReader.GetMetadataByName( _metadataHandle, query, - ref propVar - ); + ref propVar); } - if (hr != (int)WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND) + if (result != HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); object objValue = propVar.ToObject(_syncObject); @@ -1134,12 +1080,9 @@ ref propVar return null; } - /// - /// - /// public void RemoveQuery(String query) { - int hr; + HRESULT result; WritePreamble(); @@ -1147,51 +1090,39 @@ public void RemoveQuery(String query) if (_readOnly) { - throw new System.InvalidOperationException(SR.Image_MetadataReadOnly); + throw new InvalidOperationException(SR.Image_MetadataReadOnly); } EnsureBitmapMetadata(); lock (_syncObject) { - hr = UnsafeNativeMethods.WICMetadataQueryWriter.RemoveMetadataByName( + result = UnsafeNativeMethods.WICMetadataQueryWriter.RemoveMetadataByName( _metadataHandle, - query - ); + query); } - if (hr != (int)WinCodecErrors.WINCODEC_ERR_PROPERTYNOTFOUND) + if (result != HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND) { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } - /// - /// - /// IEnumerator IEnumerable.GetEnumerator() { EnsureBitmapMetadata(); - return new BitmapMetadataEnumerator(_metadataHandle); } - /// - /// - /// IEnumerator IEnumerable.GetEnumerator() { EnsureBitmapMetadata(); - return new BitmapMetadataEnumerator(_metadataHandle); } - /// - /// - /// public bool ContainsQuery(String query) { - int hr; + HRESULT result; ArgumentNullException.ThrowIfNull(query); @@ -1199,20 +1130,20 @@ public bool ContainsQuery(String query) lock (_syncObject) { - hr = UnsafeNativeMethods.WICMetadataQueryReader.ContainsMetadataByName( + result = UnsafeNativeMethods.WICMetadataQueryReader.ContainsMetadataByName( _metadataHandle, query, IntPtr.Zero ); } - if (HRESULT.IsWindowsCodecError(hr)) + if (result.IsWindowsCodecError()) { return false; } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } return true; @@ -1274,14 +1205,14 @@ public int Rating if (rating != null && rating.GetType() == typeof(ushort)) { - return System.Convert.ToInt32(rating, CultureInfo.InvariantCulture); + return Convert.ToInt32(rating, CultureInfo.InvariantCulture); } return 0; } set { - SetQuery(policy_Rating, System.Convert.ToUInt16(value, CultureInfo.InvariantCulture)); + SetQuery(policy_Rating, Convert.ToUInt16(value, CultureInfo.InvariantCulture)); } } @@ -1323,9 +1254,9 @@ public String DateTaken get { object fileTime = GetQuery(policy_DateTaken); - if (fileTime != null && fileTime.GetType() == typeof(System.Runtime.InteropServices.ComTypes.FILETIME)) + if (fileTime != null && fileTime.GetType() == typeof(Runtime.InteropServices.ComTypes.FILETIME)) { - System.Runtime.InteropServices.ComTypes.FILETIME time = (System.Runtime.InteropServices.ComTypes.FILETIME)fileTime; + Runtime.InteropServices.ComTypes.FILETIME time = (Runtime.InteropServices.ComTypes.FILETIME)fileTime; DateTime dateTime = DateTime.FromFileTime( (((long)time.dwHighDateTime) << 32) + (uint)time.dwLowDateTime ); return dateTime.ToString(); } @@ -1333,7 +1264,7 @@ public String DateTaken } set { - DateTime dt = System.Convert.ToDateTime(value, CultureInfo.InvariantCulture); + DateTime dt = Convert.ToDateTime(value, CultureInfo.InvariantCulture); PROPVARIANT propVar= new PROPVARIANT(); propVar.varType = (ushort)VarEnum.VT_FILETIME; @@ -1477,10 +1408,9 @@ internal Guid GuidFormat EnsureBitmapMetadata(); - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryReader.GetContainerFormat( + UnsafeNativeMethods.WICMetadataQueryReader.GetContainerFormat( _metadataHandle, - out guid - )); + out guid).ThrowOnFailureExtended(); return guid; } @@ -1516,7 +1446,7 @@ private void EnsureBitmapMetadata() if (_metadataHandle == null) { - throw new System.InvalidOperationException(SR.Image_MetadataInitializationIncomplete); + throw new InvalidOperationException(SR.Image_MetadataInitializationIncomplete); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadataEnumerator.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadataEnumerator.cs index 345fb4831ac..df5a61265e2 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadataEnumerator.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapMetadataEnumerator.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,8 +7,8 @@ using System.Collections; using System.Runtime.InteropServices; -using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -62,19 +62,19 @@ public bool MoveNext() try { - int hr = UnsafeNativeMethods.EnumString.Next( + HRESULT result = UnsafeNativeMethods.EnumString.Next( _enumeratorHandle, 1, ref ppStr, ref celtFetched); - if (HRESULT.IsWindowsCodecError(hr)) + if (result.IsWindowsCodecError()) { _current = null; return false; } - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); if (celtFetched == 0) { @@ -92,19 +92,19 @@ public bool MoveNext() { Marshal.FreeCoTaskMem(ppStr); ppStr = IntPtr.Zero; - } + } } return true; } - + /// /// Sets the enumerator to its initial position, which is before the first element /// in the collection. /// public void Reset() { - HRESULT.Check(UnsafeNativeMethods.EnumString.Reset(_enumeratorHandle)); + UnsafeNativeMethods.EnumString.Reset(_enumeratorHandle).ThrowOnFailureExtended(); _current = null; _fStarted = false; @@ -167,9 +167,9 @@ internal BitmapMetadataEnumerator(SafeMILHandle metadataHandle) { Debug.Assert(metadataHandle != null && !metadataHandle.IsInvalid); - HRESULT.Check(UnsafeNativeMethods.WICMetadataQueryReader.GetEnumerator( + UnsafeNativeMethods.WICMetadataQueryReader.GetEnumerator( metadataHandle, - out _enumeratorHandle)); + out _enumeratorHandle).ThrowOnFailureExtended(); _current = null; _fStarted = false; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapPalette.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapPalette.cs index b4e2659a081..ae345b411b3 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapPalette.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapPalette.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using MS.Win32.PresentationCore; using System.Windows.Threading; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -72,11 +73,11 @@ public BitmapPalette(BitmapSource bitmapSource, int maxColorCount) lock (bitmapSource.SyncObject) { - HRESULT.Check(UnsafeNativeMethods.WICPalette.InitializeFromBitmap( - _palette, - unmanagedBitmap, - maxColorCount, - false)); + UnsafeNativeMethods.WICPalette.InitializeFromBitmap( + _palette, + unmanagedBitmap, + maxColorCount, + false).ThrowOnFailureExtended(); } UpdateManaged(); @@ -117,10 +118,10 @@ internal BitmapPalette(WICPaletteType paletteType, _palette = CreateInternalPalette(); - HRESULT.Check(UnsafeNativeMethods.WICPalette.InitializePredefined( - _palette, - paletteType, - addtransparentColor)); + UnsafeNativeMethods.WICPalette.InitializePredefined( + _palette, + paletteType, + addtransparentColor).ThrowOnFailureExtended(); // Fill in the Colors property. UpdateManaged(); @@ -158,11 +159,9 @@ static internal BitmapPalette CreateFromBitmapSource(BitmapSource source) // that likely means that the source doesn't have a palette. lock (source.SyncObject) { - int hr = UnsafeNativeMethods.WICBitmapSource.CopyPalette( - bitmapSource, - unmanagedPalette); + HRESULT result = UnsafeNativeMethods.WICBitmapSource.CopyPalette(bitmapSource, unmanagedPalette); - if (hr != HRESULT.S_OK) + if (result != HRESULT.S_OK) { return null; } @@ -171,8 +170,8 @@ static internal BitmapPalette CreateFromBitmapSource(BitmapSource source) WICPaletteType paletteType; bool hasAlpha; - HRESULT.Check(UnsafeNativeMethods.WICPalette.GetType(unmanagedPalette, out paletteType)); - HRESULT.Check(UnsafeNativeMethods.WICPalette.HasAlpha(unmanagedPalette, out hasAlpha)); + UnsafeNativeMethods.WICPalette.GetType(unmanagedPalette, out paletteType).ThrowOnFailureExtended(); + UnsafeNativeMethods.WICPalette.HasAlpha(unmanagedPalette, out hasAlpha).ThrowOnFailureExtended(); if (paletteType == WICPaletteType.WICPaletteTypeCustom || paletteType == WICPaletteType.WICPaletteTypeOptimal) @@ -247,9 +246,10 @@ static internal SafeMILHandle CreateInternalPalette() using (FactoryMaker myFactory = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreatePalette( - myFactory.ImagingFactoryPtr, - out palette)); + UnsafeNativeMethods.WICImagingFactory.CreatePalette( + myFactory.ImagingFactoryPtr, + out palette).ThrowOnFailureExtended(); + Debug.Assert(palette != null && !palette.IsInvalid); } @@ -280,10 +280,10 @@ unsafe private void UpdateUnmanaged() fixed (void* paletteColorArrayPinned = paletteColorArray) { - HRESULT.Check(UnsafeNativeMethods.WICPalette.InitializeCustom( - _palette, - (IntPtr)paletteColorArrayPinned, - numColors)); + UnsafeNativeMethods.WICPalette.InitializeCustom( + _palette, + (IntPtr)paletteColorArrayPinned, + numColors).ThrowOnFailureExtended(); } } @@ -296,8 +296,7 @@ private void UpdateManaged() int numColors = 0; int cActualColors = 0; - HRESULT.Check(UnsafeNativeMethods.WICPalette.GetColorCount(_palette, - out numColors)); + UnsafeNativeMethods.WICPalette.GetColorCount(_palette, out numColors).ThrowOnFailureExtended(); List colors = new List(); @@ -310,13 +309,13 @@ private void UpdateManaged() ImagePaletteColor[] paletteColorArray = new ImagePaletteColor[numColors]; unsafe { - fixed(void* paletteColorArrayPinned = paletteColorArray) + fixed (void* paletteColorArrayPinned = paletteColorArray) { - HRESULT.Check(UnsafeNativeMethods.WICPalette.GetColors( - _palette, - numColors, - (IntPtr)paletteColorArrayPinned, - out cActualColors)); + UnsafeNativeMethods.WICPalette.GetColors( + _palette, + numColors, + (IntPtr)paletteColorArrayPinned, + out cActualColors).ThrowOnFailureExtended(); Debug.Assert(cActualColors == numColors); } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSource.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSource.cs index 99908947ab1..9c447d1e969 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSource.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSource.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,6 +9,7 @@ using MS.Win32; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -235,7 +236,7 @@ public virtual Imaging.BitmapPalette Palette // update the local palette if (_format.Palettized) { - _palette = Imaging.BitmapPalette.CreateFromBitmapSource(this); + _palette = BitmapPalette.CreateFromBitmapSource(this); } } @@ -440,7 +441,7 @@ public override ImageMetadata Metadata /// private double GetWidthInternal() { - return ImageSource.PixelsToDIPs(this.DpiX, this.PixelWidth); + return PixelsToDIPs(DpiX, PixelWidth); } /// @@ -448,7 +449,7 @@ private double GetWidthInternal() /// private double GetHeightInternal() { - return ImageSource.PixelsToDIPs(this.DpiY, this.PixelHeight); + return PixelsToDIPs(DpiY, PixelHeight); } /// @@ -581,10 +582,10 @@ internal BitmapSourceSafeMILHandle WicSourceHandle { IntPtr wicSource = IntPtr.Zero; Guid _uuidWicBitmapSource = MILGuidData.IID_IWICBitmapSource; - HRESULT.Check(UnsafeNativeMethods.MILUnknown.QueryInterface( + UnsafeNativeMethods.MILUnknown.QueryInterface( value, ref _uuidWicBitmapSource, - out wicSource)); + out wicSource).ThrowOnFailureExtended(); _wicSource = new BitmapSourceSafeMILHandle(wicSource, value); UpdateCachedSettings(); @@ -609,15 +610,15 @@ internal virtual void UpdateCachedSettings() { _format = PixelFormat.GetPixelFormat(_wicSource); - HRESULT.Check(UnsafeNativeMethods.WICBitmapSource.GetSize( + UnsafeNativeMethods.WICBitmapSource.GetSize( _wicSource, out pw, - out ph)); + out ph).ThrowOnFailureExtended(); - HRESULT.Check(UnsafeNativeMethods.WICBitmapSource.GetResolution( + UnsafeNativeMethods.WICBitmapSource.GetResolution( _wicSource, out _dpiX, - out _dpiY)); + out _dpiY).ThrowOnFailureExtended(); } _pixelWidth = (int)pw; @@ -644,7 +645,7 @@ unsafe internal void CriticalCopyPixels(Int32Rect sourceRect, Array pixels, int if (offset < 0) { - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } int elementSize = -1; @@ -732,13 +733,12 @@ internal void CriticalCopyPixels(Int32Rect sourceRect, IntPtr buffer, int buffer lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapSource.CopyPixels( + UnsafeNativeMethods.WICBitmapSource.CopyPixels( WicSourceHandle, ref sourceRect, (uint)stride, (uint)bufferSize, - buffer - )); + buffer).ThrowOnFailureExtended(); } } @@ -814,13 +814,12 @@ internal virtual BitmapSourceSafeMILHandle DUCECompatiblePtr { fixed (void* pixelArray = &((byte[])buffer)[0]) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapSource.CopyPixels( + UnsafeNativeMethods.WICBitmapSource.CopyPixels( pIWICSource, ref sourceRect, (uint)bufferSize, (uint)bufferSize, - (IntPtr)pixelArray - )); + (IntPtr)pixelArray).ThrowOnFailureExtended(); } } } @@ -852,18 +851,18 @@ internal virtual BitmapSourceSafeMILHandle DUCECompatiblePtr // necessary to avoid format conversion in the UCE during render and accompanying // sychronization locks with UI thread during bitmap access. - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFormatConverter( + UnsafeNativeMethods.WICImagingFactory.CreateFormatConverter( factoryMaker.ImagingFactoryPtr, - out pIWicConverter)); + out pIWicConverter).ThrowOnFailureExtended(); - HRESULT.Check(UnsafeNativeMethods.WICFormatConverter.Initialize( + UnsafeNativeMethods.WICFormatConverter.Initialize( pIWicConverter, pIWICSource, ref destFmt, DitherType.DitherTypeNone, new SafeMILHandle(IntPtr.Zero), 0, - WICPaletteType.WICPaletteTypeCustom)); + WICPaletteType.WICPaletteTypeCustom).ThrowOnFailureExtended(); pIWICSource = pIWicConverter; @@ -874,11 +873,11 @@ internal virtual BitmapSourceSafeMILHandle DUCECompatiblePtr try { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( - factoryMaker.ImagingFactoryPtr, - pIWICSource, - WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, - out pIWICSource)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( + factoryMaker.ImagingFactoryPtr, + pIWICSource, + WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, + out pIWICSource).ThrowOnFailureExtended(); } catch (Exception e) { @@ -900,9 +899,9 @@ internal virtual BitmapSourceSafeMILHandle DUCECompatiblePtr } } - HRESULT.Check(UnsafeNativeMethods.MilCoreApi.CreateCWICWrapperBitmap( - pIWICSource, - out pCWICWrapperBitmap)); + UnsafeNativeMethods.MilCoreApi.CreateCWICWrapperBitmap( + pIWICSource, + out pCWICWrapperBitmap).ThrowOnFailureExtended(); UnsafeNativeMethods.MILUnknown.AddRef(pCWICWrapperBitmap); _convertedDUCEPtr = new BitmapSourceSafeMILHandle(pCWICWrapperBitmap.DangerousGetHandle(), pIWICSource); @@ -1100,7 +1099,7 @@ BitmapPalette palette if (!IsCompatibleFormat(originalFmt)) changeFormat = true; - destFmt = BitmapSource.GetClosestDUCEFormat(originalFmt, palette); + destFmt = GetClosestDUCEFormat(originalFmt, palette); } if (frame != null && @@ -1189,26 +1188,26 @@ BitmapPalette palette { // start up a format converter Guid fmtDestFmt = destFmt.Guid; - HRESULT.Check(UnsafeNativeMethods.WICCodec.WICConvertBitmapSource( - ref fmtDestFmt, - wicSource, - out wicConverter)); + UnsafeNativeMethods.WICCodec.WICConvertBitmapSource( + ref fmtDestFmt, + wicSource, + out wicConverter).ThrowOnFailureExtended(); // dump the converted contents into a bitmap - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( - wicFactory, - wicConverter, - wicCache, - out wicConvertedSource)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( + wicFactory, + wicConverter, + wicCache, + out wicConvertedSource).ThrowOnFailureExtended(); } else { // Create the unmanaged resources - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( - wicFactory, - wicSource, - wicCache, - out wicConvertedSource)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( + wicFactory, + wicSource, + wicCache, + out wicConvertedSource).ThrowOnFailureExtended(); } wicConvertedSource.CalculateSize(); @@ -1734,13 +1733,13 @@ int IWICBitmapSource.GetSize(out int puiWidth, out int puiHeight) { puiWidth = bitmapSource.PixelWidth; puiHeight = bitmapSource.PixelHeight; - return NativeMethods.S_OK; + return HRESULT.S_OK; } else { puiWidth = 0; puiHeight = 0; - return NativeMethods.E_FAIL; + return HRESULT.E_FAIL; } } @@ -1750,12 +1749,12 @@ int IWICBitmapSource.GetPixelFormat(out Guid guidFormat) if(_bitmapSource.TryGetTarget(out bitmapSource)) { guidFormat = bitmapSource.Format.Guid; - return NativeMethods.S_OK; + return HRESULT.S_OK; } else { guidFormat = Guid.Empty; - return NativeMethods.E_FAIL; + return HRESULT.E_FAIL; } } @@ -1766,13 +1765,13 @@ int IWICBitmapSource.GetResolution(out double pDpiX, out double pDpiY) { pDpiX = bitmapSource.DpiX; pDpiY = bitmapSource.DpiY; - return NativeMethods.S_OK; + return HRESULT.S_OK; } else { pDpiX = 0.0; pDpiY = 0.0; - return NativeMethods.E_FAIL; + return HRESULT.E_FAIL; } } @@ -1784,15 +1783,18 @@ int IWICBitmapSource.GetPalette(IntPtr /* IWICPalette */ pIPalette) BitmapPalette palette = bitmapSource.Palette; if ((palette == null) || (palette.InternalPalette == null) || palette.InternalPalette.IsInvalid) { - return (int)WinCodecErrors.WINCODEC_ERR_PALETTEUNAVAILABLE; + return (int)HRESULT.WINCODEC_ERR_PALETTEUNAVAILABLE; } - - HRESULT.Check(UnsafeNativeMethods.WICPalette.InitializeFromPalette(pIPalette, palette.InternalPalette)); - return NativeMethods.S_OK; + + UnsafeNativeMethods.WICPalette.InitializeFromPalette( + pIPalette, + palette.InternalPalette).ThrowOnFailureExtended(); + + return HRESULT.S_OK; } else { - return NativeMethods.E_FAIL; + return HRESULT.E_FAIL; } } @@ -1800,12 +1802,12 @@ int IWICBitmapSource.CopyPixels(IntPtr prc, int cbStride, int cbPixels, IntPtr p { if (cbStride < 0) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } if (pvPixels == IntPtr.Zero) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } BitmapSource bitmapSource; @@ -1826,29 +1828,28 @@ int IWICBitmapSource.CopyPixels(IntPtr prc, int cbStride, int cbPixels, IntPtr p rectHeight = rc.Height; rectWidth = rc.Width; - + if (rc.Width < 1 || rc.Height < 1) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } - + // assuming cbStride can't be negative, but that prc.Height can PixelFormat pfStruct = bitmapSource.Format; - + if (pfStruct.Format == PixelFormatEnum.Default || pfStruct.Format == PixelFormatEnum.Extended) { - return (int)(WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT); + return HRESULT.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT; } - - + int rectRowSize = checked((rectWidth * pfStruct.InternalBitsPerPixel + 7) / 8); - + if (cbPixels < checked((rectHeight - 1) * cbStride + rectRowSize)) { - return (int)(WinCodecErrors.WINCODEC_ERR_INSUFFICIENTBUFFER); + return HRESULT.WINCODEC_ERR_INSUFFICIENTBUFFER; } - + // Need to marshal int arraySize = checked(rectHeight * rectRowSize); byte[] managedArray = new byte[arraySize]; @@ -1865,12 +1866,12 @@ int IWICBitmapSource.CopyPixels(IntPtr prc, int cbStride, int cbPixels, IntPtr p rowPtr += cbStride; } } - - return NativeMethods.S_OK; + + return HRESULT.S_OK; } else { - return NativeMethods.E_FAIL; + return HRESULT.E_FAIL; } } } @@ -1903,7 +1904,7 @@ public WeakBitmapSourceEventSink(BitmapSource bitmapSource) public void OnSourceDownloadCompleted(object sender, EventArgs e) { - BitmapSource bitmapSource = this.Target as BitmapSource; + BitmapSource bitmapSource = Target as BitmapSource; if (null != bitmapSource) { bitmapSource.OnSourceDownloadCompleted(bitmapSource, e); @@ -1916,7 +1917,7 @@ public void OnSourceDownloadCompleted(object sender, EventArgs e) public void OnSourceDownloadFailed(object sender, ExceptionEventArgs e) { - BitmapSource bitmapSource = this.Target as BitmapSource; + BitmapSource bitmapSource = Target as BitmapSource; if (null != bitmapSource) { bitmapSource.OnSourceDownloadFailed(bitmapSource, e); @@ -1929,7 +1930,7 @@ public void OnSourceDownloadFailed(object sender, ExceptionEventArgs e) public void OnSourceDownloadProgress(object sender, DownloadProgressEventArgs e) { - BitmapSource bitmapSource = this.Target as BitmapSource; + BitmapSource bitmapSource = Target as BitmapSource; if (null != bitmapSource) { bitmapSource.OnSourceDownloadProgress(bitmapSource, e); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSourceSafeMILHandle.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSourceSafeMILHandle.cs index 197979e32ca..805acfa0a06 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSourceSafeMILHandle.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapSourceSafeMILHandle.cs @@ -1,25 +1,18 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// -// -// Description: -// A sub-class of SafeMILHandle that can estimate size for bitmap -// source objects. - using MS.Internal; +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media.Imaging { /// - /// Constructor which computes size of the handle and delegates - /// to baseclass safe handle. + /// A sub-class of SafeMILHandle that can estimate size for bitmap + /// source objects. /// - internal class BitmapSourceSafeMILHandle : SafeMILHandle { static BitmapSourceSafeMILHandle() { } @@ -76,13 +69,12 @@ private static long ComputeEstimatedSize(IntPtr bitmapObject) // calling through the right vtable on the pinvoke. // - int hr = UnsafeNativeMethods.MILUnknown.QueryInterface( + HRESULT result = UnsafeNativeMethods.MILUnknown.QueryInterface( bitmapObject, ref _uuidBitmap, - out wicBitmap - ); + out wicBitmap); - if (hr == HRESULT.S_OK) + if (result == HRESULT.S_OK) { Debug.Assert(wicBitmap != IntPtr.Zero); @@ -98,17 +90,17 @@ out wicBitmap uint pixelWidth = 0; uint pixelHeight = 0; - hr = UnsafeNativeMethods.WICBitmapSource.GetSize( + result = UnsafeNativeMethods.WICBitmapSource.GetSize( bitmapSourceSafeHandle, out pixelWidth, out pixelHeight); - if (hr == HRESULT.S_OK) + if (result == HRESULT.S_OK) { Guid guidFormat; - hr = UnsafeNativeMethods.WICBitmapSource.GetPixelFormat(bitmapSourceSafeHandle, out guidFormat); - if (hr == HRESULT.S_OK) + result = UnsafeNativeMethods.WICBitmapSource.GetPixelFormat(bitmapSourceSafeHandle, out guidFormat); + if (result == HRESULT.S_OK) { // // Go to long space to avoid overflow and check for overflow @@ -148,5 +140,5 @@ protected override bool ReleaseHandle() /// Guid for IWICBitmapSource /// private static Guid _uuidBitmap = MILGuidData.IID_IWICBitmapSource; -} + } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapVisualManager.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapVisualManager.cs index 8174bcfc9a6..1dc28681290 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapVisualManager.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BitmapVisualManager.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using MS.Internal; using System.Windows.Media.Composition; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -111,10 +112,10 @@ internal void Render(Visual visual, Matrix worldTransform, Rect windowClip) Guid iidRTB = MILGuidData.IID_IMILRenderTargetBitmap; - HRESULT.Check(UnsafeNativeMethods.MILUnknown.QueryInterface( + UnsafeNativeMethods.MILUnknown.QueryInterface( renderTargetBitmap, ref iidRTB, - out pIRenderTargetBitmap)); + out pIRenderTargetBitmap).ThrowOnFailureExtended(); // diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BmpBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BmpBitmapEncoder.cs index 4127350365b..d435dd65a84 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BmpBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/BmpBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -53,10 +54,9 @@ internal override Guid ContainerFormat /// internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOptions) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CachedBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CachedBitmap.cs index ed5519621ac..193a18d4ed7 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CachedBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CachedBitmap.cs @@ -1,9 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -355,11 +356,11 @@ SafeMILHandle wicSource { using (FactoryMaker factoryMaker = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( - factoryMaker.ImagingFactoryPtr, - wicSource, - WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, - out bitmapSource)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( + factoryMaker.ImagingFactoryPtr, + wicSource, + WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, + out bitmapSource).ThrowOnFailureExtended(); } bitmapSource.CalculateSize(); @@ -409,28 +410,28 @@ int stride using (FactoryMaker factoryMaker = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromMemory( - factoryMaker.ImagingFactoryPtr, - (uint)pixelWidth, (uint)pixelHeight, - ref guidFmt, - (uint)stride, - (uint)bufferSize, - buffer, - out wicBitmap)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromMemory( + factoryMaker.ImagingFactoryPtr, + (uint)pixelWidth, (uint)pixelHeight, + ref guidFmt, + (uint)stride, + (uint)bufferSize, + buffer, + out wicBitmap).ThrowOnFailureExtended(); wicBitmap.CalculateSize(); } - HRESULT.Check(UnsafeNativeMethods.WICBitmap.SetResolution( - wicBitmap, - dpiX, - dpiY)); + UnsafeNativeMethods.WICBitmap.SetResolution( + wicBitmap, + dpiX, + dpiY).ThrowOnFailureExtended(); if (pixelFormat.Palettized) { - HRESULT.Check(UnsafeNativeMethods.WICBitmap.SetPalette( + UnsafeNativeMethods.WICBitmap.SetPalette( wicBitmap, - palette.InternalPalette)); + palette.InternalPalette).ThrowOnFailureExtended(); } WicSourceHandle = wicBitmap; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/ColorConvertedBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/ColorConvertedBitmap.cs index 9960e5cfdf1..4976ef18019 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/ColorConvertedBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/ColorConvertedBitmap.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ComponentModel; using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -89,19 +90,18 @@ internal override void FinalizeCreation() _bitmapInit.EnsureInitializedComplete(); BitmapSourceSafeMILHandle wicConverter = null; - HRESULT.Check(UnsafeNativeMethods.WICCodec.CreateColorTransform( - out wicConverter)); + UnsafeNativeMethods.WICCodec.CreateColorTransform(out wicConverter).ThrowOnFailureExtended(); lock (_syncObject) { Guid fmtDestFmt = DestinationFormat.Guid; - HRESULT.Check(UnsafeNativeMethods.WICColorTransform.Initialize( - wicConverter, - Source.WicSourceHandle, - SourceColorContext.ColorContextHandle, - DestinationColorContext.ColorContextHandle, - ref fmtDestFmt)); + UnsafeNativeMethods.WICColorTransform.Initialize( + wicConverter, + Source.WicSourceHandle, + SourceColorContext.ColorContextHandle, + DestinationColorContext.ColorContextHandle, + ref fmtDestFmt).ThrowOnFailureExtended(); } // diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CroppedBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CroppedBitmap.cs index f7721e4775d..740754b7232 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CroppedBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/CroppedBitmap.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ComponentModel; using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -96,16 +97,16 @@ internal override void FinalizeCreation() { IntPtr wicFactory = factoryMaker.ImagingFactoryPtr; - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapClipper( - wicFactory, - out wicClipper)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapClipper( + wicFactory, + out wicClipper).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapClipper.Initialize( - wicClipper, - source.WicSourceHandle, - ref rect)); + UnsafeNativeMethods.WICBitmapClipper.Initialize( + wicClipper, + source.WicSourceHandle, + ref rect).ThrowOnFailureExtended(); } // diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/FormatConvertedBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/FormatConvertedBitmap.cs index 5a4670ff811..ded8bcb244d 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/FormatConvertedBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/FormatConvertedBitmap.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ComponentModel; using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -96,9 +97,9 @@ internal override void FinalizeCreation() { IntPtr wicFactory = factoryMaker.ImagingFactoryPtr; - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFormatConverter( - wicFactory, - out wicFormatter)); + UnsafeNativeMethods.WICImagingFactory.CreateFormatConverter( + wicFactory, + out wicFormatter).ThrowOnFailureExtended(); SafeMILHandle internalPalette; if (DestinationPalette != null) @@ -110,15 +111,14 @@ internal override void FinalizeCreation() lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICFormatConverter.Initialize( - wicFormatter, - Source.WicSourceHandle, - ref format, - DitherType.DitherTypeErrorDiffusion, - internalPalette, - AlphaThreshold, - WICPaletteType.WICPaletteTypeOptimal - )); + UnsafeNativeMethods.WICFormatConverter.Initialize( + wicFormatter, + Source.WicSourceHandle, + ref format, + DitherType.DitherTypeErrorDiffusion, + internalPalette, + AlphaThreshold, + WICPaletteType.WICPaletteTypeOptimal).ThrowOnFailureExtended(); } // diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/GifBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/GifBitmapEncoder.cs index 56f4ccf34e2..f1841fd6d7f 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/GifBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/GifBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -53,10 +54,9 @@ internal override Guid ContainerFormat /// internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOptions) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InplaceBitmapMetadataWriter.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InplaceBitmapMetadataWriter.cs index 157e9dd4803..6f74b790723 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InplaceBitmapMetadataWriter.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InplaceBitmapMetadataWriter.cs @@ -1,13 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// - using MS.Internal; using MS.Win32.PresentationCore; -using MS.Internal.PresentationCore; // SecurityHelper +using Windows.Win32.Foundation; // SecurityHelper namespace System.Windows.Media.Imaging { @@ -16,20 +13,14 @@ namespace System.Windows.Media.Imaging /// /// Metadata Class for BitmapImage. /// - sealed public partial class InPlaceBitmapMetadataWriter : BitmapMetadata + public sealed partial class InPlaceBitmapMetadataWriter : BitmapMetadata { #region Constructors - /// - /// - /// private InPlaceBitmapMetadataWriter() { } - /// - /// - /// internal InPlaceBitmapMetadataWriter( SafeMILHandle /* IWICFastMetadataEncoder */ fmeHandle, SafeMILHandle /* IWICMetadataQueryWriter */ metadataHandle, @@ -39,10 +30,7 @@ object syncObject _fmeHandle = fmeHandle; } - /// - /// - /// - static internal InPlaceBitmapMetadataWriter CreateFromFrameDecode(BitmapSourceSafeMILHandle frameHandle, object syncObject) + internal static InPlaceBitmapMetadataWriter CreateFromFrameDecode(BitmapSourceSafeMILHandle frameHandle, object syncObject) { Invariant.Assert(frameHandle != null); @@ -53,24 +41,21 @@ static internal InPlaceBitmapMetadataWriter CreateFromFrameDecode(BitmapSourceSa { lock (syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromFrameDecode( - factoryMaker.ImagingFactoryPtr, - frameHandle, - out fmeHandle)); + UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromFrameDecode( + factoryMaker.ImagingFactoryPtr, + frameHandle, + out fmeHandle).ThrowOnFailureExtended(); } } - HRESULT.Check(UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( - fmeHandle, - out metadataHandle)); + UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( + fmeHandle, + out metadataHandle).ThrowOnFailureExtended(); return new InPlaceBitmapMetadataWriter(fmeHandle, metadataHandle, syncObject); } - /// - /// - /// - static internal InPlaceBitmapMetadataWriter CreateFromDecoder(SafeMILHandle decoderHandle, object syncObject) + internal static InPlaceBitmapMetadataWriter CreateFromDecoder(SafeMILHandle decoderHandle, object syncObject) { Invariant.Assert(decoderHandle != null); @@ -81,35 +66,28 @@ static internal InPlaceBitmapMetadataWriter CreateFromDecoder(SafeMILHandle deco { lock (syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromDecoder( - factoryMaker.ImagingFactoryPtr, - decoderHandle, - out fmeHandle)); + UnsafeNativeMethods.WICImagingFactory.CreateFastMetadataEncoderFromDecoder( + factoryMaker.ImagingFactoryPtr, + decoderHandle, + out fmeHandle).ThrowOnFailureExtended(); } } - HRESULT.Check(UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( - fmeHandle, - out metadataHandle)); + UnsafeNativeMethods.WICFastMetadataEncoder.GetMetadataQueryWriter( + fmeHandle, + out metadataHandle).ThrowOnFailureExtended(); return new InPlaceBitmapMetadataWriter(fmeHandle, metadataHandle, syncObject); } - /// - /// - /// public bool TrySave() { - int hr; - Invariant.Assert(_fmeHandle != null); lock (SyncObject) { - hr = UnsafeNativeMethods.WICFastMetadataEncoder.Commit(_fmeHandle); + return UnsafeNativeMethods.WICFastMetadataEncoder.Commit(_fmeHandle).Succeeded; } - - return HRESULT.Succeeded(hr); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InteropBitmapSource.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InteropBitmapSource.cs index 3cb22a1aa29..c4437d0e281 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InteropBitmapSource.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/InteropBitmapSource.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Media; using System.Windows.Media.Composition; using System.Windows.Media.Imaging; +using Windows.Win32.Foundation; namespace System.Windows.Interop { @@ -30,11 +31,6 @@ private InteropBitmap() : base(true) /// /// Construct a BitmapSource from an HBITMAP. /// - /// - /// - /// - /// - /// internal InteropBitmap(IntPtr hbitmap, IntPtr hpalette, Int32Rect sourceRect, BitmapSizeOptions sizeOptions, WICBitmapAlphaChannelOption alphaOptions) : base(true) // Use virtuals { @@ -42,13 +38,14 @@ internal InteropBitmap(IntPtr hbitmap, IntPtr hpalette, Int32Rect sourceRect, Bi using (FactoryMaker myFactory = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromHBITMAP( - myFactory.ImagingFactoryPtr, - hbitmap, - hpalette, - alphaOptions, - out _unmanagedSource)); - Debug.Assert (_unmanagedSource != null && !_unmanagedSource.IsInvalid); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromHBITMAP( + myFactory.ImagingFactoryPtr, + hbitmap, + hpalette, + alphaOptions, + out _unmanagedSource).ThrowOnFailureExtended(); + + Debug.Assert(_unmanagedSource != null && !_unmanagedSource.IsInvalid); } _unmanagedSource.CalculateSize(); @@ -60,13 +57,10 @@ internal InteropBitmap(IntPtr hbitmap, IntPtr hpalette, Int32Rect sourceRect, Bi FinalizeCreation(); } - + /// /// Construct a BitmapSource from an HICON. /// - /// - /// - /// internal InteropBitmap(IntPtr hicon, Int32Rect sourceRect, BitmapSizeOptions sizeOptions) : base(true) // Use virtuals { @@ -75,11 +69,12 @@ internal InteropBitmap(IntPtr hicon, Int32Rect sourceRect, BitmapSizeOptions siz using (FactoryMaker myFactory = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromHICON( + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromHICON( myFactory.ImagingFactoryPtr, hicon, - out _unmanagedSource)); - Debug.Assert (_unmanagedSource != null && !_unmanagedSource.IsInvalid); + out _unmanagedSource).ThrowOnFailureExtended(); + + Debug.Assert(_unmanagedSource != null && !_unmanagedSource.IsInvalid); } _unmanagedSource.CalculateSize(); @@ -95,12 +90,6 @@ internal InteropBitmap(IntPtr hicon, Int32Rect sourceRect, BitmapSizeOptions siz /// /// Construct a BitmapSource from a memory section. /// - /// - /// - /// - /// - /// - /// internal InteropBitmap( IntPtr section, int pixelWidth, @@ -117,16 +106,16 @@ internal InteropBitmap( Guid formatGuid = format.Guid; - HRESULT.Check(UnsafeNativeMethods.WindowsCodecApi.CreateBitmapFromSection( - (uint)pixelWidth, - (uint)pixelHeight, - ref formatGuid, - section, - (uint)stride, - (uint)offset, - out _unmanagedSource - )); - Debug.Assert (_unmanagedSource != null && !_unmanagedSource.IsInvalid); + UnsafeNativeMethods.WindowsCodecApi.CreateBitmapFromSection( + (uint)pixelWidth, + (uint)pixelHeight, + ref formatGuid, + section, + (uint)stride, + (uint)offset, + out _unmanagedSource).ThrowOnFailureExtended(); + + Debug.Assert(_unmanagedSource != null && !_unmanagedSource.IsInvalid); _unmanagedSource.CalculateSize(); _sourceRect = Int32Rect.Empty; @@ -228,11 +217,11 @@ SafeMILHandle wicSource { using (FactoryMaker factoryMaker = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( - factoryMaker.ImagingFactoryPtr, - wicSource, - WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, - out bitmapSource)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFromSource( + factoryMaker.ImagingFactoryPtr, + wicSource, + WICBitmapCreateCacheOptions.WICBitmapCacheOnLoad, + out bitmapSource).ThrowOnFailureExtended(); } bitmapSource.CalculateSize(); @@ -345,7 +334,7 @@ internal override void FinalizeCreation() BitmapSourceSafeMILHandle wicTransformer = null; BitmapSourceSafeMILHandle transformedSource = _unmanagedSource; - HRESULT.Check(UnsafeNativeMethods.WICBitmap.SetResolution(_unmanagedSource, 96, 96)); + UnsafeNativeMethods.WICBitmap.SetResolution(_unmanagedSource, 96, 96).ThrowOnFailureExtended(); using (FactoryMaker factoryMaker = new FactoryMaker()) { @@ -353,16 +342,16 @@ internal override void FinalizeCreation() if (!_sourceRect.IsEmpty) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapClipper( - wicFactory, - out wicClipper)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapClipper( + wicFactory, + out wicClipper).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapClipper.Initialize( - wicClipper, - transformedSource, - ref _sourceRect)); + UnsafeNativeMethods.WICBitmapClipper.Initialize( + wicClipper, + transformedSource, + ref _sourceRect).ThrowOnFailureExtended(); } transformedSource = wicClipper; @@ -381,32 +370,32 @@ internal override void FinalizeCreation() out width, out height); - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapScaler( - wicFactory, - out wicTransformer)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapScaler( + wicFactory, + out wicTransformer).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapScaler.Initialize( - wicTransformer, - transformedSource, - width, - height, - WICInterpolationMode.Fant)); + UnsafeNativeMethods.WICBitmapScaler.Initialize( + wicTransformer, + transformedSource, + width, + height, + WICInterpolationMode.Fant).ThrowOnFailureExtended(); } } else if (_sizeOptions.Rotation != Rotation.Rotate0) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( - wicFactory, - out wicTransformer)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( + wicFactory, + out wicTransformer).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( - wicTransformer, - transformedSource, - _sizeOptions.WICTransformOptions)); + UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( + wicTransformer, + transformedSource, + _sizeOptions.WICTransformOptions).ThrowOnFailureExtended(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/JpegBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/JpegBitmapEncoder.cs index ba96c2fb7a7..3d288da0437 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/JpegBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/JpegBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -123,7 +124,7 @@ public bool FlipHorizontal } set { - if (value != this.FlipHorizontal) + if (value != FlipHorizontal) { if (value) { @@ -149,7 +150,7 @@ public bool FlipVertical } set { - if (value != this.FlipVertical) + if (value != FlipVertical) { if (value) { @@ -195,11 +196,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("BitmapTransform"); propValue.Init((byte) _transformation); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -213,13 +214,13 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle try { propBag.Init("ImageQuality"); - propValue.Init( ((float)_qualityLevel) / 100.0f); + propValue.Init(((float)_qualityLevel) / 100.0f); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -228,10 +229,9 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle } } - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } /// @@ -247,7 +247,7 @@ private bool Rotate90 } set { - if (value != this.Rotate90) + if (value != Rotate90) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; @@ -278,7 +278,7 @@ private bool Rotate180 } set { - if (value != this.Rotate180) + if (value != Rotate180) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; @@ -309,7 +309,7 @@ private bool Rotate270 } set { - if (value != this.Rotate270) + if (value != Rotate270) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PngBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PngBitmapEncoder.cs index 3aa2b327139..e0ed6b711f9 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PngBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PngBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -109,11 +110,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("InterlaceOption"); propValue.Init(_interlaceOption == PngInterlaceOption.On); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -122,10 +123,9 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle } } - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PropVariant.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PropVariant.cs index 4a5ac3bcd61..2326fea8bc9 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PropVariant.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/PropVariant.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,6 +9,7 @@ using MS.Win32.PresentationCore; using System.Runtime.InteropServices; using MS.Internal.PresentationCore; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 // suppressing PreSharp warnings @@ -420,10 +421,10 @@ internal void Init(object value) } Guid wicMetadataQueryReader = MILGuidData.IID_IWICMetadataQueryReader; - HRESULT.Check(UnsafeNativeMethods.MILUnknown.QueryInterface( + UnsafeNativeMethods.MILUnknown.QueryInterface( metadataHandle, ref wicMetadataQueryReader, - out punkTemp)); + out punkTemp).ThrowOnFailureExtended(); varType = (ushort)VarEnum.VT_UNKNOWN; punkVal = punkTemp; @@ -706,9 +707,9 @@ internal object ToObject(object syncObject) try { - int hr = UnsafeNativeMethods.MILUnknown.QueryInterface(punkVal, ref guidIWICQueryWriter, out queryHandle); + HRESULT result = UnsafeNativeMethods.MILUnknown.QueryInterface(punkVal, ref guidIWICQueryWriter, out queryHandle); - if (hr == HRESULT.S_OK) + if (result == HRESULT.S_OK) { // It's a IWICMetadataQueryWriter interface - read and write SafeMILHandle metadataHandle = new SafeMILHandle(queryHandle); @@ -720,9 +721,9 @@ internal object ToObject(object syncObject) } else { - hr = UnsafeNativeMethods.MILUnknown.QueryInterface(punkVal, ref guidIWICQueryReader, out queryHandle); + result = UnsafeNativeMethods.MILUnknown.QueryInterface(punkVal, ref guidIWICQueryReader, out queryHandle); - if (hr == HRESULT.S_OK) + if (result == HRESULT.S_OK) { // It's a IWICMetadataQueryReader interface - read only SafeMILHandle metadataHandle = new SafeMILHandle(queryHandle); @@ -733,7 +734,7 @@ internal object ToObject(object syncObject) return new BitmapMetadata(metadataHandle, true, false, syncObject); } - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } finally diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/RenderTargetBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/RenderTargetBitmap.cs index cf87a573029..33381a8191d 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/RenderTargetBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/RenderTargetBitmap.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using MS.Internal; using MS.Win32.PresentationCore; using System.Windows.Media.Composition; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -104,7 +105,7 @@ private void CopyCommon(RenderTargetBitmap sourceBitmap) using (FactoryMaker myFactory = new FactoryMaker()) { // Create an IWICBitmap - BitmapSourceSafeMILHandle newBitmapHandle = BitmapSource.CreateCachedBitmap( + BitmapSourceSafeMILHandle newBitmapHandle = CreateCachedBitmap( null, WicSourceHandle, BitmapCreateOptions.PreservePixelFormat, @@ -117,11 +118,10 @@ private void CopyCommon(RenderTargetBitmap sourceBitmap) } // Now create a Render target from that Bitmap - HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateBitmapRenderTargetForBitmap( + UnsafeNativeMethods.MILFactory2.CreateBitmapRenderTargetForBitmap( myFactory.FactoryPtr, newBitmapHandle, - out _renderTargetBitmap - )); + out _renderTargetBitmap).ThrowOnFailureExtended(); } _bitmapInit.EndInit(); @@ -190,7 +190,7 @@ public void Render(Visual visual) /// public void Clear() { - HRESULT.Check(MILRenderTargetBitmap.Clear(_renderTargetBitmap)); + MILRenderTargetBitmap.Clear(_renderTargetBitmap).ThrowOnFailureExtended(); RenderTargetContentsChanged(); } @@ -236,7 +236,7 @@ internal override void FinalizeCreation() using (FactoryMaker myFactory = new FactoryMaker()) { SafeMILHandle renderTargetBitmap = null; - HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateBitmapRenderTarget( + UnsafeNativeMethods.MILFactory2.CreateBitmapRenderTarget( myFactory.FactoryPtr, (uint)_pixelWidth, (uint)_pixelHeight, @@ -244,14 +244,14 @@ internal override void FinalizeCreation() (float)_dpiX, (float)_dpiY, MILRTInitializationFlags.MIL_RT_INITIALIZE_DEFAULT, - out renderTargetBitmap)); + out renderTargetBitmap).ThrowOnFailureExtended(); Debug.Assert(renderTargetBitmap != null && !renderTargetBitmap.IsInvalid); BitmapSourceSafeMILHandle bitmapSource = null; - HRESULT.Check(MILRenderTargetBitmap.GetBitmap( + MILRenderTargetBitmap.GetBitmap( renderTargetBitmap, - out bitmapSource)); + out bitmapSource).ThrowOnFailureExtended(); Debug.Assert(bitmapSource != null && !bitmapSource.IsInvalid); lock (_syncObject) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TiffBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TiffBitmapEncoder.cs index 8f965626de9..02aec6e8e00 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TiffBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TiffBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -143,13 +144,13 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle try { propBag.Init("TiffCompressionMethod"); - propValue.Init((byte) _compressionMethod); + propValue.Init((byte)_compressionMethod); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -158,10 +159,9 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle } } - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TransformedBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TransformedBitmap.cs index 0ecc22e5748..63755d9fcce 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TransformedBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/TransformedBitmap.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ComponentModel; using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -176,18 +177,18 @@ internal override void FinalizeCreation() uint width = Math.Max(1, (uint)(scaleX * _source.PixelWidth + 0.5)); uint height = Math.Max(1, (uint)(scaleY * _source.PixelHeight + 0.5)); - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapScaler( - wicFactory, - out wicTransformer)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapScaler( + wicFactory, + out wicTransformer).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapScaler.Initialize( - wicTransformer, - _source.WicSourceHandle, - width, - height, - WICInterpolationMode.Fant)); + UnsafeNativeMethods.WICBitmapScaler.Initialize( + wicTransformer, + _source.WicSourceHandle, + width, + height, + WICInterpolationMode.Fant).ThrowOnFailureExtended(); } } @@ -208,16 +209,16 @@ internal override void FinalizeCreation() BitmapSourceSafeMILHandle rotator = null; - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( - wicFactory, - out rotator)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( + wicFactory, + out rotator).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( - rotator, - wicTransformer, - options)); + UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( + rotator, + wicTransformer, + options).ThrowOnFailureExtended(); } wicTransformer = rotator; @@ -228,16 +229,16 @@ internal override void FinalizeCreation() if (options == WICBitmapTransformOptions.WICBitmapTransformRotate0 && DoubleUtil.IsOne(scaleX) && DoubleUtil.IsOne(scaleY)) { - HRESULT.Check(UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( - wicFactory, - out wicTransformer)); + UnsafeNativeMethods.WICImagingFactory.CreateBitmapFlipRotator( + wicFactory, + out wicTransformer).ThrowOnFailureExtended(); lock (_syncObject) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( - wicTransformer, - _source.WicSourceHandle, - WICBitmapTransformOptions.WICBitmapTransformRotate0)); + UnsafeNativeMethods.WICBitmapFlipRotator.Initialize( + wicTransformer, + _source.WicSourceHandle, + WICBitmapTransformOptions.WICBitmapTransformRotate0).ThrowOnFailureExtended(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/UnknownBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/UnknownBitmapEncoder.cs index 106ec00ce29..7404055f7e0 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/UnknownBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/UnknownBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -56,10 +57,9 @@ internal override Guid ContainerFormat /// internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOptions) { - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } #endregion diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WmpBitmapEncoder.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WmpBitmapEncoder.cs index 2478a4b8deb..83a406a8ec4 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WmpBitmapEncoder.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WmpBitmapEncoder.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using MS.Internal; using MS.Win32.PresentationCore; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -140,7 +141,7 @@ public bool FlipHorizontal } set { - if (value != this.FlipHorizontal) + if (value != FlipHorizontal) { if (value) { @@ -166,7 +167,7 @@ public bool FlipVertical } set { - if (value != this.FlipVertical) + if (value != FlipVertical) { if (value) { @@ -421,11 +422,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("ImageQuality"); propValue.Init((float)_imagequalitylevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -439,13 +440,13 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle try { propBag.Init("BitmapTransform"); - propValue.Init((byte) _transformation); + propValue.Init((byte)_transformation); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -461,11 +462,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("Lossless"); propValue.Init((bool)_lossless); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -481,11 +482,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("UseCodecOptions"); propValue.Init((bool)_usecodecoptions); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -501,11 +502,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("Quality"); propValue.Init((byte)_qualitylevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -521,11 +522,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("Subsampling"); propValue.Init((byte)_subsamplinglevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -541,11 +542,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("Overlap"); propValue.Init((byte)_overlaplevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -561,11 +562,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("HorizontalTileSlices"); propValue.Init((ushort)_horizontaltileslices ); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -581,11 +582,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("VerticalTileSlices"); propValue.Init((ushort)_verticaltileslices ); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -601,11 +602,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("FrequencyOrder"); propValue.Init((bool)_frequencyorder); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -621,11 +622,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("InterleavedAlpha"); propValue.Init((bool)_interleavedalpha); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -641,11 +642,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("AlphaQuality"); propValue.Init((byte)_alphaqualitylevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -661,11 +662,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("CompressedDomainTranscode"); propValue.Init((bool)_compresseddomaintranscode); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -681,11 +682,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("ImageDataDiscard"); propValue.Init((byte)_imagedatadiscardlevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -701,11 +702,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("AlphaDataDiscard"); propValue.Init((byte)_alphadatadiscardlevel); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -721,11 +722,11 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle propBag.Init("IgnoreOverlap"); propValue.Init((bool)_ignoreoverlap); - HRESULT.Check(UnsafeNativeMethods.IPropertyBag2.Write( + UnsafeNativeMethods.IPropertyBag2.Write( encoderOptions, 1, ref propBag, - ref propValue)); + ref propValue).ThrowOnFailureExtended(); } finally { @@ -734,10 +735,9 @@ internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle } } - HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( + UnsafeNativeMethods.WICBitmapFrameEncode.Initialize( frameEncodeHandle, - encoderOptions - )); + encoderOptions).ThrowOnFailureExtended(); } /// @@ -753,7 +753,7 @@ private bool Rotate90 } set { - if (value != this.Rotate90) + if (value != Rotate90) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; @@ -784,7 +784,7 @@ private bool Rotate180 } set { - if (value != this.Rotate180) + if (value != Rotate180) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; @@ -815,7 +815,7 @@ private bool Rotate270 } set { - if (value != this.Rotate270) + if (value != Rotate270) { bool IsFlipH = FlipHorizontal; bool IsFlipV = FlipVertical; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WriteableBitmap.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WriteableBitmap.cs index ab96f9e8919..4b7a49af8c0 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WriteableBitmap.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/Imaging/WriteableBitmap.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,6 +8,7 @@ using System.Runtime.InteropServices; using System.Windows.Media.Composition; using System.Threading; +using Windows.Win32.Foundation; namespace System.Windows.Media.Imaging { @@ -81,25 +82,25 @@ BitmapPalette palette if (pixelWidth < 0) { // Backwards Compat - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } if (pixelWidth == 0) { // Backwards Compat - HRESULT.Check(MS.Win32.NativeMethods.E_INVALIDARG); + HRESULT.E_INVALIDARG.ThrowOnFailureExtended(); } if (pixelHeight < 0) { // Backwards Compat - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } if (pixelHeight == 0) { // Backwards Compat - HRESULT.Check(MS.Win32.NativeMethods.E_INVALIDARG); + HRESULT.E_INVALIDARG.ThrowOnFailureExtended(); } // @@ -114,15 +115,14 @@ BitmapPalette palette internalPalette = palette.InternalPalette; } - HRESULT.Check(MILSwDoubleBufferedBitmap.Create( - (uint) pixelWidth, // safe cast - (uint) pixelHeight, // safe cast + MILSwDoubleBufferedBitmap.Create( + (uint)pixelWidth, // safe cast + (uint)pixelHeight, // safe cast dpiX, dpiY, ref formatGuid, internalPalette, - out _pDoubleBufferedBitmap - )); + out _pDoubleBufferedBitmap).ThrowOnFailureExtended(); _pDoubleBufferedBitmap.UpdateEstimatedSize( GetEstimatedSize(pixelWidth, pixelHeight, pixelFormat)); @@ -254,12 +254,11 @@ public bool TryLock(Duration timeout) Int32Rect rect = new Int32Rect(0, 0, _pixelWidth, _pixelHeight); - HRESULT.Check(UnsafeNativeMethods.WICBitmap.Lock( + UnsafeNativeMethods.WICBitmap.Lock( WicSourceHandle, ref rect, LockFlags.MIL_LOCK_WRITE, - out _pBackBufferLock - )); + out _pBackBufferLock).ThrowOnFailureExtended(); // If this is the first lock operation, cache the BackBuffer and // BackBufferStride. These two values will never change, so we @@ -268,18 +267,18 @@ out _pBackBufferLock { IntPtr tempBackBufferPointer = IntPtr.Zero; uint lockBufferSize = 0; - HRESULT.Check(UnsafeNativeMethods.WICBitmapLock.GetDataPointer( + UnsafeNativeMethods.WICBitmapLock.GetDataPointer( _pBackBufferLock, ref lockBufferSize, - ref tempBackBufferPointer - )); + ref tempBackBufferPointer).ThrowOnFailureExtended(); + BackBuffer = tempBackBufferPointer; uint lockBufferStride = 0; - HRESULT.Check(UnsafeNativeMethods.WICBitmapLock.GetStride( + UnsafeNativeMethods.WICBitmapLock.GetStride( _pBackBufferLock, - ref lockBufferStride - )); + ref lockBufferStride).ThrowOnFailureExtended(); + Invariant.Assert(lockBufferStride <= Int32.MaxValue); _backBufferStride = (int)lockBufferStride; } @@ -600,7 +599,7 @@ protected override bool FreezeCore(bool isChecking) // // Protect the back buffer for writing - HRESULT.Check(MILSwDoubleBufferedBitmap.ProtectBackBuffer(_pDoubleBufferedBitmap)); + MILSwDoubleBufferedBitmap.ProtectBackBuffer(_pDoubleBufferedBitmap).ThrowOnFailureExtended(); // Get the back buffer to be used as our WicSourceHandle AcquireBackBuffer(TimeSpan.Zero, false); @@ -723,13 +722,13 @@ BitmapSource source if (source.PixelWidth < 0) { // Backwards Compat - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } if (source.PixelHeight < 0) { // Backwards Compat - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } BeginInit(); @@ -744,16 +743,15 @@ BitmapSource source { internalPalette = source.Palette.InternalPalette; } - - HRESULT.Check(MILSwDoubleBufferedBitmap.Create( + + MILSwDoubleBufferedBitmap.Create( (uint)source.PixelWidth, // safe cast (uint)source.PixelHeight, // safe cast source.DpiX, source.DpiY, ref formatGuid, internalPalette, - out _pDoubleBufferedBitmap - )); + out _pDoubleBufferedBitmap).ThrowOnFailureExtended(); _pDoubleBufferedBitmap.UpdateEstimatedSize( GetEstimatedSize(source.PixelWidth, source.PixelHeight, source.Format)); @@ -831,11 +829,11 @@ bool backwardsCompat } else if(sourceRect.Width > _pixelWidth || sourceRect.Height > _pixelHeight || destinationX > _pixelWidth - sourceRect.Width || destinationY > _pixelHeight - sourceRect.Height) { - HRESULT.Check(MS.Win32.NativeMethods.E_INVALIDARG); + HRESULT.E_INVALIDARG.ThrowOnFailureExtended(); } else if (destinationX < 0 || destinationY < 0) { - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_VALUEOVERFLOW); + HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW).ThrowOnFailureExtended(); } // @@ -871,7 +869,7 @@ bool backwardsCompat { if (backwardsCompat) { - HRESULT.Check((int)WinCodecErrors.WINCODEC_ERR_INSUFFICIENTBUFFER); + HRESULT.WINCODEC_ERR_INSUFFICIENTBUFFER.ThrowOnFailureExtended(); } else { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MILUtilities.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MILUtilities.cs index a6ae8561157..287a56852cd 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MILUtilities.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MILUtilities.cs @@ -1,14 +1,12 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// - using System.Windows.Media.Media3D; using System.Windows.Media.Composition; using MS.Internal; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -145,10 +143,10 @@ internal struct MilRectF }; [DllImport(DllImport.MilCore)] - private extern static /*HRESULT*/ int MIL3DCalcProjected2DBounds( + private static extern HRESULT MIL3DCalcProjected2DBounds( ref D3DMATRIX pFullTransform3D, ref MILRect3D pboxBounds, - out MilRectF prcDestRect); + out MilRectF prcDestRect); [DllImport(DllImport.MilCore, EntryPoint = "MilUtility_CopyPixelBuffer", PreserveSig = false)] internal extern static unsafe void MILCopyPixelBuffer( @@ -172,11 +170,10 @@ internal static Rect ProjectBounds( MILRect3D originalBoxFloat = new MILRect3D(ref originalBox); MilRectF outRect = new MilRectF(); - HRESULT.Check( - MIL3DCalcProjected2DBounds( - ref viewProjFloatMatrix, - ref originalBoxFloat, - out outRect)); + MIL3DCalcProjected2DBounds( + ref viewProjFloatMatrix, + ref originalBoxFloat, + out outRect).ThrowOnFailureExtended(); if (outRect.Left == outRect.Right || outRect.Top == outRect.Bottom) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContext.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContext.cs index 00e222801f5..661bf053af4 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContext.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContext.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using MS.Internal; using MS.Utility; using MS.Win32; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -214,7 +215,7 @@ internal MediaContext(Dispatcher dispatcher) } // Subscribe to the OnDestroyContext event so that we can cleanup our state. - _destroyHandler = new EventHandler(this.OnDestroyContext); + _destroyHandler = new EventHandler(OnDestroyContext); Dispatcher.ShutdownFinished += _destroyHandler; _renderMessage = new DispatcherOperationCallback(RenderMessageHandler); @@ -271,7 +272,7 @@ internal void NotifySyncChannelMessage(DUCE.Channel channel) // we remove the sync channels so that if the app handles the exception // it will get a new partition on the next sync render request. _channelManager.RemoveSyncChannels(); - NotifyPartitionIsZombie(message.HRESULTFailure.HRESULTFailureCode); + NotifyPartitionIsZombie((HRESULT)message.HRESULTFailure.HRESULTFailureCode); break; default: @@ -315,7 +316,7 @@ internal void NotifyChannelMessage() break; case DUCE.MilMessage.Type.PartitionIsZombie: - NotifyPartitionIsZombie(message.HRESULTFailure.HRESULTFailureCode); + NotifyPartitionIsZombie((HRESULT)message.HRESULTFailure.HRESULTFailureCode); break; case DUCE.MilMessage.Type.BadPixelShader: @@ -413,23 +414,27 @@ private void NotifyBadPixelShader() /// zombie state. This means either an unhandled batch processing, /// rendering or presentation error and will require us to reconnect. /// - private void NotifyPartitionIsZombie(int failureCode) + private static void NotifyPartitionIsZombie(HRESULT failureCode) { + // We only get back these kinds of notification: // - // We only get back these kinds of notification:- - // For all OOM cases, we get E_OUTOFMEMORY. - // For all OOVM cases, we get D3DERR_OUTOFVIDEOMEMORY and - // for all other errors we get WGXERR_UCE_RENDERTHREADFAILURE. - // + // For all OOM cases, we get E_OUTOFMEMORY. + // For all OOVM cases, we get D3DERR_OUTOFVIDEOMEMORY and + // for all other errors we get WGXERR_UCE_RENDERTHREADFAILURE. - switch (failureCode) + if (failureCode == HRESULT.E_OUTOFMEMORY) + { +#pragma warning disable CA2201 // Do not raise reserved exception types + throw new OutOfMemoryException(); + } + else if (failureCode == D3dErrors.D3DERR_OUTOFVIDEOMEMORY) + { + throw new OutOfMemoryException(SR.MediaContext_OutOfVideoMemory); +#pragma warning restore CA2201 + } + else { - case HRESULT.E_OUTOFMEMORY: - throw new System.OutOfMemoryException(); - case HRESULT.D3DERR_OUTOFVIDEOMEMORY: - throw new System.OutOfMemoryException(SR.MediaContext_OutOfVideoMemory); - default: - throw new System.InvalidOperationException(SR.MediaContext_RenderThreadError); + throw new InvalidOperationException(SR.MediaContext_RenderThreadError); } } @@ -1508,7 +1513,7 @@ internal static void UnregisterICompositionTarget(Dispatcher dispatcher, ICompos Debug.Assert(dispatcher != null); Debug.Assert(iv != null); - MediaContext.From(dispatcher).UnregisterICompositionTargetInternal(iv); + From(dispatcher).UnregisterICompositionTargetInternal(iv); } /// @@ -1823,7 +1828,7 @@ private void RenderMessageHandlerCore( // (TimeManager gets its tick time from MediaContext's IClock implementation). // In the case where we can't query QPC or aren't doing interlocked presents, // this will be equal to the current time, which is a good enough approximation. - Rendering?.Invoke(this.Dispatcher, new RenderingEventArgs(_timeManager.LastTickTime)); + Rendering?.Invoke(Dispatcher, new RenderingEventArgs(_timeManager.LastTickTime)); // call all render callbacks again in case the Rendering event affects layout // this will enable layout effecting changes to get triggered this frame diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContextNotificationWindow.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContextNotificationWindow.cs index ac1e3246ac7..2e1e7be3cae 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContextNotificationWindow.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaContextNotificationWindow.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,6 +12,8 @@ using System.Runtime.InteropServices; using MS.Internal.Interop; using MS.Win32; +using Windows.Win32.Foundation; +using HRESULT = Windows.Win32.Foundation.HRESULT; namespace System.Windows.Media { @@ -73,17 +75,15 @@ internal MediaContextNotificationWindow(MediaContext ownerMediaContext) // ChangeWindowMessageFilter(s_dwmRedirectionEnvironmentChanged, 1 /* MSGFLT_ADD */); - MS.Internal.HRESULT.Check(MilContent_AttachToHwnd(_hwndNotification.Handle)); + MilContent_AttachToHwnd(_hwndNotification.Handle).ThrowOnFailureExtended(); } public void Dispose() { if (!_isDisposed) { - // // If DWM is not running, this call will result in NoOp. - // - MS.Internal.HRESULT.Check(MilContent_DetachFromHwnd(_hwndNotification.Handle)); + MilContent_DetachFromHwnd(_hwndNotification.Handle).ThrowOnFailureExtended(); _hwndNotification.Dispose(); @@ -134,14 +134,13 @@ private IntPtr MessageFilter(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, if (message == WindowMessage.WM_DWMCOMPOSITIONCHANGED) { - // // We need to register as MIL content to receive the Vista Magnifier messages // (see comments in ctor). // // We're going to attempt to attach to DWM every time the desktop composition // state changes to ensure that we properly handle DWM crashing/restarting/etc. - // - MS.Internal.HRESULT.Check(MilContent_AttachToHwnd(_hwndNotification.Handle)); + + MilContent_AttachToHwnd(_hwndNotification.Handle).ThrowOnFailureExtended(); } else if (message == s_channelNotifyMessage) { @@ -156,14 +155,10 @@ private IntPtr MessageFilter(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, } [DllImport(DllImport.MilCore)] - private static extern int MilContent_AttachToHwnd( - IntPtr hwnd - ); + private static extern HRESULT MilContent_AttachToHwnd(IntPtr hwnd); [DllImport(DllImport.MilCore)] - private static extern int MilContent_DetachFromHwnd( - IntPtr hwnd - ); + private static extern HRESULT MilContent_DetachFromHwnd(IntPtr hwnd); /// /// Allow lower integrity applications to send specified window messages diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaPlayerState.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaPlayerState.cs index f7fbc3ed54e..ff8a12a4e92 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaPlayerState.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaPlayerState.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Navigation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; +using Windows.Win32.Foundation; #pragma warning disable 1634, 1691 @@ -102,7 +103,7 @@ internal bool IsBuffering { VerifyAPI(); bool isBuffering = false; - HRESULT.Check(MILMedia.IsBuffering(_nativeMedia, ref isBuffering)); + MILMedia.IsBuffering(_nativeMedia, ref isBuffering).ThrowOnFailureExtended(); return isBuffering; } } @@ -116,7 +117,7 @@ internal bool CanPause { VerifyAPI(); bool canPause = false; - HRESULT.Check(MILMedia.CanPause(_nativeMedia, ref canPause)); + MILMedia.CanPause(_nativeMedia, ref canPause).ThrowOnFailureExtended(); return canPause; } } @@ -130,7 +131,7 @@ internal double DownloadProgress { VerifyAPI(); double downloadProgress = 0; - HRESULT.Check(MILMedia.GetDownloadProgress(_nativeMedia, ref downloadProgress)); + MILMedia.GetDownloadProgress(_nativeMedia, ref downloadProgress).ThrowOnFailureExtended(); return downloadProgress; } } @@ -144,7 +145,7 @@ internal double BufferingProgress { VerifyAPI(); double bufferingProgress = 0; - HRESULT.Check(MILMedia.GetBufferingProgress(_nativeMedia, ref bufferingProgress)); + MILMedia.GetBufferingProgress(_nativeMedia, ref bufferingProgress).ThrowOnFailureExtended(); return bufferingProgress; } } @@ -160,7 +161,7 @@ internal Int32 NaturalVideoHeight UInt32 height = 0; - HRESULT.Check(MILMedia.GetNaturalHeight(_nativeMedia, ref height)); + MILMedia.GetNaturalHeight(_nativeMedia, ref height).ThrowOnFailureExtended(); return (Int32)height; } } @@ -176,7 +177,7 @@ internal Int32 NaturalVideoWidth UInt32 width = 0; - HRESULT.Check(MILMedia.GetNaturalWidth(_nativeMedia, ref width)); + MILMedia.GetNaturalWidth(_nativeMedia, ref width).ThrowOnFailureExtended(); return (Int32)width; } } @@ -192,7 +193,7 @@ internal bool HasAudio bool hasAudio = true; - HRESULT.Check(MILMedia.HasAudio(_nativeMedia, ref hasAudio)); + MILMedia.HasAudio(_nativeMedia, ref hasAudio).ThrowOnFailureExtended(); return hasAudio; } } @@ -208,7 +209,7 @@ internal bool HasVideo bool hasVideo = false; - HRESULT.Check(MILMedia.HasVideo(_nativeMedia, ref hasVideo)); + MILMedia.HasVideo(_nativeMedia, ref hasVideo).ThrowOnFailureExtended(); return hasVideo; } } @@ -259,9 +260,7 @@ internal double Volume { if (!_muted) { - int hr = MILMedia.SetVolume(_nativeMedia, value); - - HRESULT.Check(hr); + MILMedia.SetVolume(_nativeMedia, value).ThrowOnFailureExtended(); // value is changing _volume = value; @@ -305,9 +304,7 @@ internal double Balance // is not the same. No need to do extra work. if (!DoubleUtil.AreClose(_balance, value)) { - int hr = MILMedia.SetBalance(_nativeMedia, value); - - HRESULT.Check(hr); + MILMedia.SetBalance(_nativeMedia, value).ThrowOnFailureExtended(); // value is changing _balance = value; @@ -330,7 +327,7 @@ internal bool ScrubbingEnabled VerifyAPI(); if (value != _scrubbingEnabled) { - HRESULT.Check(MILMedia.SetIsScrubbingEnabled(_nativeMedia, value)); + MILMedia.SetIsScrubbingEnabled(_nativeMedia, value).ThrowOnFailureExtended(); _scrubbingEnabled = value; } } @@ -358,7 +355,7 @@ internal bool IsMuted // Going from Unmuted -> Muted // Set the volume to 0 - this.Volume = 0; + Volume = 0; _muted = true; // make sure cached volume is previous value @@ -375,7 +372,7 @@ internal bool IsMuted _volume = 0; // set volume to old cached value, which will also update our current cached value - this.Volume = volume; + Volume = volume; } } } @@ -387,7 +384,8 @@ internal Duration NaturalDuration VerifyAPI(); long mediaLength = 0; - HRESULT.Check(MILMedia.GetMediaLength(_nativeMedia, ref mediaLength)); + MILMedia.GetMediaLength(_nativeMedia, ref mediaLength).ThrowOnFailureExtended(); + if (mediaLength == 0) { return Duration.Automatic; @@ -718,7 +716,7 @@ internal void Stop() VerifyNotControlledByClock(); - HRESULT.Check(MILMedia.Close(_nativeMedia)); + MILMedia.Close(_nativeMedia).ThrowOnFailureExtended(); // // Once we successfully close, we don't have a clock anymore. @@ -767,8 +765,7 @@ bool notifyUceDirectly NeedUIFrameUpdate() { VerifyAPI(); - - HRESULT.Check(MILMedia.NeedUIFrameUpdate(_nativeMedia)); + MILMedia.NeedUIFrameUpdate(_nativeMedia).ThrowOnFailureExtended(); } #endregion @@ -786,12 +783,11 @@ private void CreateMedia(MediaPlayer mediaPlayer) { using (FactoryMaker myFactory = new FactoryMaker()) { - HRESULT.Check(UnsafeNativeMethods.MILFactory2.CreateMediaPlayer( - myFactory.FactoryPtr, - unmanagedProxy, - true, - out _nativeMedia - )); + UnsafeNativeMethods.MILFactory2.CreateMediaPlayer( + myFactory.FactoryPtr, + unmanagedProxy, + true, + out _nativeMedia).ThrowOnFailureExtended(); } } catch @@ -844,7 +840,7 @@ private void OpenMedia(Uri source) // We pass in exact same URI for which we demanded permissions so that we can be sure // there is no discrepancy between the two. - HRESULT.Check(MILMedia.Open(_nativeMedia, toOpen)); + MILMedia.Open(_nativeMedia, toOpen).ThrowOnFailureExtended(); } private Uri ResolveUri(Uri uri, Uri appBase) @@ -885,8 +881,7 @@ private string DemandPermissions(Uri absoluteUri) internal void SetPosition(TimeSpan value) { VerifyAPI(); - - HRESULT.Check(MILMedia.SetPosition(_nativeMedia, value.Ticks)); + MILMedia.SetPosition(_nativeMedia, value.Ticks).ThrowOnFailureExtended(); } /// @@ -895,9 +890,8 @@ internal void SetPosition(TimeSpan value) private TimeSpan GetPosition() { VerifyAPI(); - long position = 0; - HRESULT.Check(MILMedia.GetPosition(_nativeMedia, ref position)); + MILMedia.GetPosition(_nativeMedia, ref position).ThrowOnFailureExtended(); return TimeSpan.FromTicks(position); } @@ -906,10 +900,8 @@ private double PrivateSpeedRatio set { VerifyAPI(); - ArgumentOutOfRangeException.ThrowIfEqual(value, double.NaN); - - HRESULT.Check(MILMedia.SetRate(_nativeMedia, value)); + MILMedia.SetRate(_nativeMedia, value).ThrowOnFailureExtended(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaSystem.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaSystem.cs index 4e667e318ca..e10b7324e3c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaSystem.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/MediaSystem.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -10,7 +10,7 @@ using System.Windows.Media.Composition; using System.Windows.Threading; using MS.Internal; - +using Windows.Win32.Foundation; using SafeNativeMethods = MS.Win32.PresentationCore.SafeNativeMethods; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods.MilCoreApi; @@ -42,7 +42,7 @@ public static bool Startup(MediaContext mc) // *** Failure here does NOT indicate a bug in MediaContext.Startup! *** // - HRESULT.Check(UnsafeNativeMethods.MilVersionCheck(MS.Internal.Composition.Version.MilSdkVersion)); + UnsafeNativeMethods.MilVersionCheck(MS.Internal.Composition.Version.MilSdkVersion).ThrowOnFailureExtended(); using (CompositionEngineLock.Acquire()) { @@ -51,9 +51,8 @@ public static bool Startup(MediaContext mc) //Is this the first startup? if (0 == s_refCount) { - HRESULT.Check(SafeNativeMethods.MilCompositionEngine_InitializePartitionManager( - 0 // THREAD_PRIORITY_NORMAL - )); + SafeNativeMethods.MilCompositionEngine_InitializePartitionManager( + 0).ThrowOnFailureExtended(); // THREAD_PRIORITY_NORMAL s_forceSoftareForGraphicsStreamMagnifier = UnsafeNativeMethods.WgxConnection_ShouldForceSoftwareForGraphicsStreamClient(); @@ -134,7 +133,7 @@ internal static void Shutdown(MediaContext mc) DisconnectTransport(); } - HRESULT.Check(SafeNativeMethods.MilCompositionEngine_DeinitializePartitionManager()); + SafeNativeMethods.MilCompositionEngine_DeinitializePartitionManager().ThrowOnFailureExtended(); } } } @@ -194,9 +193,9 @@ private static void ConnectTransport() // If creation fails, fall back to a local transport. // - HRESULT.Check(UnsafeNativeMethods.WgxConnection_Create( + UnsafeNativeMethods.WgxConnection_Create( false, // false means asynchronous transport - out s_pConnection)); + out s_pConnection).ThrowOnFailureExtended(); // Create service channel used by global glyph cache. This channel is // the first channel created for the app, and by creating it with @@ -227,7 +226,7 @@ private static void DisconnectTransport() // Close global glyph cache channel. s_serviceChannel.Close(); - HRESULT.Check(UnsafeNativeMethods.WgxConnection_Disconnect(s_pConnection)); + UnsafeNativeMethods.WgxConnection_Disconnect(s_pConnection).ThrowOnFailureExtended(); // Release references to global glyph cache and service channel. s_serviceChannel = null; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PathGeometry.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PathGeometry.cs index 8e6ec842f1a..cbd06ad22a4 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PathGeometry.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PathGeometry.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using System.Windows.Markup; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -568,14 +569,14 @@ public void GetPointAtFractionLength( { Debug.Assert(pbPathData != (byte*)0); - HRESULT.Check(MilCoreApi.MilUtility_GetPointAtLengthFraction( + MilCoreApi.MilUtility_GetPointAtLengthFraction( &pathData.Matrix, pathData.FillRule, pbPathData, pathData.Size, progress, out point, - out tangent)); + out tangent).ThrowOnFailureExtended(); } } } @@ -619,7 +620,7 @@ internal static PathGeometry InternalCombine( FillRule fillRule = FillRule.Nonzero; FigureList list = new FigureList(); - int hr = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryCombine( + HRESULT result = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryCombine( &matrix, &data1.Matrix, data1.FillRule, @@ -635,7 +636,7 @@ internal static PathGeometry InternalCombine( mode, out fillRule); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we return an empty geometry. @@ -643,8 +644,7 @@ internal static PathGeometry InternalCombine( } else { - HRESULT.Check(hr); - + result.ThrowOnFailureExtended(); resultGeometry = new PathGeometry(list.Figures, fillRule, null); } } @@ -710,10 +710,10 @@ public override Rect Bounds /// internal static Rect GetPathBounds( PathGeometryData pathData, - Pen pen, - Matrix worldMatrix, - double tolerance, - ToleranceType type, + Pen pen, + Matrix worldMatrix, + double tolerance, + ToleranceType type, bool skipHollows) { if (pathData.IsEmpty()) @@ -722,18 +722,18 @@ internal static Rect GetPathBounds( } else { - MilRectD bounds = PathGeometry.GetPathBoundsAsRB( + MilRectD bounds = GetPathBoundsAsRB( pathData, pen, - worldMatrix, - tolerance, + worldMatrix, + tolerance, type, skipHollows); return bounds.AsRect; } } - + /// /// Gets the bounds of this PathGeometry as an axis-aligned bounding box with pen and/or transform /// @@ -771,9 +771,9 @@ internal static MilRectD GetPathBoundsAsRB( Debug.Assert(pbPathData != (byte*)0); - fixed (double *pDashArray = dashArray) + fixed (double* pDashArray = dashArray) { - int hr = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryBounds( + HRESULT result = UnsafeNativeMethods.MilCoreApi.MilUtility_PathGeometryBounds( (pen == null) ? null : &penData, pDashArray, &worldMatrix3X2, @@ -784,10 +784,9 @@ internal static MilRectD GetPathBoundsAsRB( tolerance, type == ToleranceType.Relative, skipHollows, - &bounds - ); + &bounds); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry has empty bounds @@ -797,7 +796,7 @@ internal static MilRectD GetPathBoundsAsRB( } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } @@ -827,11 +826,11 @@ internal static IntersectionDetail HitTestWithPathGeometry( { Debug.Assert(pbPathData1 != (byte*)0); - fixed (byte *pbPathData2 = data2.SerializedData) + fixed (byte* pbPathData2 = data2.SerializedData) { Debug.Assert(pbPathData2 != (byte*)0); - int hr = MilCoreApi.MilUtility_PathGeometryHitTestPathGeometry( + HRESULT result = MilCoreApi.MilUtility_PathGeometryHitTestPathGeometry( &data1.Matrix, data1.FillRule, pbPathData1, @@ -844,7 +843,7 @@ internal static IntersectionDetail HitTestWithPathGeometry( type == ToleranceType.Relative, &detail); - if (hr == (int)MILErrors.WGXERR_BADNUMBER) + if (result == MilErrors.WGXERR_BADNUMBER) { // When we encounter NaNs in the renderer, we absorb the error and draw // nothing. To be consistent, we report that the geometry is never hittable. @@ -852,7 +851,7 @@ internal static IntersectionDetail HitTestWithPathGeometry( } else { - HRESULT.Check(hr); + result.ThrowOnFailureExtended(); } } } @@ -952,10 +951,10 @@ internal override PathGeometryData GetPathGeometryData() PathGeometryData data = new PathGeometryData(); data.FillRule = FillRule; data.Matrix = CompositionResourceManager.TransformToMilMatrix3x2D(Transform); - + if (IsObviouslyEmpty()) { - return Geometry.GetEmptyPathGeometryData(); + return GetEmptyPathGeometryData(); } ByteStreamGeometryContext ctx = new ByteStreamGeometryContext(); @@ -989,7 +988,7 @@ private void ManualUpdateResource(DUCE.Channel channel, bool skipOnChannelCheck) // Obtain handles for properties that implement DUCE.IResource DUCE.ResourceHandle hTransform; if (vTransform == null || - Object.ReferenceEquals(vTransform, Transform.Identity) + ReferenceEquals(vTransform, Transform.Identity) ) { hTransform = DUCE.ResourceHandle.Null; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PixelFormat.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PixelFormat.cs index 3ad6804d24a..4fd453485ad 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PixelFormat.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/PixelFormat.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,6 +9,7 @@ using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; using System.Runtime.CompilerServices; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -192,7 +193,7 @@ internal PixelFormat(PixelFormatEnum format) _flags = GetPixelFormatFlagsFromEnum(format); _bitsPerPixel = GetBitsPerPixelFromEnum(format); - _guidFormat = PixelFormat.GetGuidFromFormat(format); + _guidFormat = GetGuidFromFormat(format); } /// @@ -207,7 +208,7 @@ internal PixelFormat(string pixelFormatString) ArgumentNullException.ThrowIfNull(pixelFormatString); - string upperPixelFormatString = pixelFormatString.ToUpper(System.Globalization.CultureInfo.InvariantCulture); + string upperPixelFormatString = pixelFormatString.ToUpper(Globalization.CultureInfo.InvariantCulture); switch (upperPixelFormatString) { @@ -328,7 +329,7 @@ internal PixelFormat(string pixelFormatString) _flags = GetPixelFormatFlagsFromEnum(format); _bitsPerPixel = GetBitsPerPixelFromEnum(format); - _guidFormat = PixelFormat.GetGuidFromFormat(format); + _guidFormat = GetGuidFromFormat(format); } static private Guid GetGuidFromFormat(PixelFormatEnum format) @@ -506,10 +507,9 @@ public IList Masks try { - HRESULT.Check(UnsafeNativeMethods.WICPixelFormatInfo.GetChannelCount( + UnsafeNativeMethods.WICPixelFormatInfo.GetChannelCount( pixelFormatInfo, - out channelCount - )); + out channelCount).ThrowOnFailureExtended(); Debug.Assert(channelCount >= 1); @@ -519,8 +519,12 @@ out channelCount { for (uint i = 0; i < channelCount; i++) { - HRESULT.Check(UnsafeNativeMethods.WICPixelFormatInfo.GetChannelMask( - pixelFormatInfo, i, 0, null, out cbBytes)); + UnsafeNativeMethods.WICPixelFormatInfo.GetChannelMask( + pixelFormatInfo, + i, + 0, + null, + out cbBytes).ThrowOnFailureExtended(); Debug.Assert(cbBytes > 0); @@ -528,8 +532,12 @@ out channelCount fixed (byte *pbChannelMask = channelMask) { - HRESULT.Check(UnsafeNativeMethods.WICPixelFormatInfo.GetChannelMask( - pixelFormatInfo, i, cbBytes, pbChannelMask, out cbBytes)); + UnsafeNativeMethods.WICPixelFormatInfo.GetChannelMask( + pixelFormatInfo, + i, + cbBytes, + pbChannelMask, + out cbBytes).ThrowOnFailureExtended(); Debug.Assert(cbBytes == channelMask.Length); } @@ -559,24 +567,26 @@ internal IntPtr CreatePixelFormatInfo() { try { - Guid guidPixelFormat = this.Guid; + Guid guidPixelFormat = Guid; - int hr = UnsafeNativeMethods.WICImagingFactory.CreateComponentInfo( + HRESULT result = UnsafeNativeMethods.WICImagingFactory.CreateComponentInfo( myFactory.ImagingFactoryPtr, ref guidPixelFormat, out componentInfo); - if (hr == (int)WinCodecErrors.WINCODEC_ERR_COMPONENTINITIALIZEFAILURE || - hr == (int)WinCodecErrors.WINCODEC_ERR_COMPONENTNOTFOUND) + + if (result == HRESULT.WINCODEC_ERR_COMPONENTINITIALIZEFAILURE + || result == HRESULT.WINCODEC_ERR_COMPONENTNOTFOUND) { - throw new System.NotSupportedException(SR.Image_NoPixelFormatFound); + throw new NotSupportedException(SR.Image_NoPixelFormatFound); } - HRESULT.Check(hr); + + result.ThrowOnFailureExtended(); Guid guidPixelFormatInfo = MILGuidData.IID_IWICPixelFormatInfo; - HRESULT.Check(UnsafeNativeMethods.MILUnknown.QueryInterface( + UnsafeNativeMethods.MILUnknown.QueryInterface( componentInfo, ref guidPixelFormatInfo, - out pixelFormatInfo)); + out pixelFormatInfo).ThrowOnFailureExtended(); } finally { @@ -603,10 +613,9 @@ internal int InternalBitsPerPixel try { - HRESULT.Check(UnsafeNativeMethods.WICPixelFormatInfo.GetBitsPerPixel( + UnsafeNativeMethods.WICPixelFormatInfo.GetBitsPerPixel( pixelFormatInfo, - out bpp - )); + out bpp).ThrowOnFailureExtended(); } finally { @@ -619,7 +628,7 @@ out bpp _bitsPerPixel = bpp; } - return (int) _bitsPerPixel; + return (int)_bitsPerPixel; } } @@ -672,7 +681,7 @@ internal static PixelFormat GetPixelFormat ( { Guid guidPixelFormat = WICPixelFormatGUIDs.WICPixelFormatDontCare; - HRESULT.Check(UnsafeNativeMethods.WICBitmapSource.GetPixelFormat(bitmapSource, out guidPixelFormat)); + UnsafeNativeMethods.WICBitmapSource.GetPixelFormat(bitmapSource, out guidPixelFormat).ThrowOnFailureExtended(); return new PixelFormat(guidPixelFormat); } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeNativeMethodsMilCoreApi.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeNativeMethodsMilCoreApi.cs index 0f59f1135c5..db6cfa565fd 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeNativeMethodsMilCoreApi.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeNativeMethodsMilCoreApi.cs @@ -1,48 +1,21 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System.Runtime.InteropServices; - -// -// ABOUT THIS FILE: -// -- This file contains native methods which are deemed SAFE for partial trust callers -// -- These methods DO have the SuppressUnmanagedCodeSecurity attribute which means -// stalk walks for unmanaged -// code will stop with the immediate caler. -// -- Put methods in here which are needed in partial trust scenarios -// -- If you have questions about how to use this file, email avsee +using Windows.Win32.Foundation; namespace MS.Win32.PresentationCore { internal static partial class SafeNativeMethods { - internal static int MilCompositionEngine_InitializePartitionManager(int nPriority) - { - return SafeNativeMethodsPrivate.MilCompositionEngine_InitializePartitionManager(nPriority); - } - - internal static int MilCompositionEngine_DeinitializePartitionManager() - { - return SafeNativeMethodsPrivate.MilCompositionEngine_DeinitializePartitionManager(); - } - - internal static long GetNextPerfElementId() - { - return SafeNativeMethodsPrivate.GetNextPerfElementId(); - } - - private static partial class SafeNativeMethodsPrivate - { - [DllImport(DllImport.MilCore)] - internal static extern int MilCompositionEngine_InitializePartitionManager(int nPriority); + [DllImport(DllImport.MilCore)] + internal static extern HRESULT MilCompositionEngine_InitializePartitionManager(int nPriority); - [DllImport(DllImport.MilCore)] - internal static extern int MilCompositionEngine_DeinitializePartitionManager(); + [DllImport(DllImport.MilCore)] + internal static extern HRESULT MilCompositionEngine_DeinitializePartitionManager(); - [DllImport(DllImport.MilCore)] - internal static extern long GetNextPerfElementId(); - } + [DllImport(DllImport.MilCore)] + internal static extern long GetNextPerfElementId(); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeReversePInvokeHandle.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeReversePInvokeHandle.cs index 056de9ec34c..28111cf818d 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeReversePInvokeHandle.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/SafeReversePInvokeHandle.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,6 +12,7 @@ using Microsoft.Win32.SafeHandles; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -30,11 +31,13 @@ internal SafeReversePInvokeWrapper() : base(true) /// Use this constructor if the handle exists at construction time. /// SafeMILHandle owns the release of the parameter. /// - internal SafeReversePInvokeWrapper(IntPtr delegatePtr) : base(true) + internal SafeReversePInvokeWrapper(IntPtr delegatePtr) : base(true) { // Wrap the reverse p-invoke into a reversePInvokeWrapper. IntPtr reversePInvokeWrapper; - HRESULT.Check(UnsafeNativeMethods.MilCoreApi.MilCreateReversePInvokeWrapper(delegatePtr, out reversePInvokeWrapper)); + UnsafeNativeMethods.MilCoreApi.MilCreateReversePInvokeWrapper( + delegatePtr, + out reversePInvokeWrapper).ThrowOnFailureExtended(); SetHandle(reversePInvokeWrapper); } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/StreamAsIStream.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/StreamAsIStream.cs index 62fd460f39d..d62b155dd53 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/StreamAsIStream.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/StreamAsIStream.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,7 +7,7 @@ using MS.Internal; using MS.Win32; using System.Runtime.InteropServices; - +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media @@ -70,24 +70,24 @@ internal static class StaticPtrs { static StaticPtrs() { - StaticPtrs.pfnDispose = new StreamDescriptor.Dispose(StreamDescriptor.StaticDispose); + pfnDispose = new StreamDescriptor.Dispose(StreamDescriptor.StaticDispose); - StaticPtrs.pfnClone = new StreamDescriptor.Clone(StreamAsIStream.Clone); - StaticPtrs.pfnCommit = new StreamDescriptor.Commit(StreamAsIStream.Commit); - StaticPtrs.pfnCopyTo = new StreamDescriptor.CopyTo(StreamAsIStream.CopyTo); - StaticPtrs.pfnLockRegion = new StreamDescriptor.LockRegion(StreamAsIStream.LockRegion); - StaticPtrs.pfnRead = new StreamDescriptor.Read(StreamAsIStream.Read); - StaticPtrs.pfnRevert = new StreamDescriptor.Revert(StreamAsIStream.Revert); + pfnClone = new StreamDescriptor.Clone(StreamAsIStream.Clone); + pfnCommit = new StreamDescriptor.Commit(StreamAsIStream.Commit); + pfnCopyTo = new StreamDescriptor.CopyTo(StreamAsIStream.CopyTo); + pfnLockRegion = new StreamDescriptor.LockRegion(StreamAsIStream.LockRegion); + pfnRead = new StreamDescriptor.Read(StreamAsIStream.Read); + pfnRevert = new StreamDescriptor.Revert(StreamAsIStream.Revert); unsafe { - StaticPtrs.pfnSeek = new StreamDescriptor.Seek(StreamAsIStream.Seek); + pfnSeek = new StreamDescriptor.Seek(StreamAsIStream.Seek); } - StaticPtrs.pfnSetSize = new StreamDescriptor.SetSize(StreamAsIStream.SetSize); - StaticPtrs.pfnStat = new StreamDescriptor.Stat(StreamAsIStream.Stat); - StaticPtrs.pfnUnlockRegion = new StreamDescriptor.UnlockRegion(StreamAsIStream.UnlockRegion); - StaticPtrs.pfnWrite = new StreamDescriptor.Write(StreamAsIStream.Write); - StaticPtrs.pfnCanWrite = new StreamDescriptor.CanWrite(StreamAsIStream.CanWrite); - StaticPtrs.pfnCanSeek = new StreamDescriptor.CanSeek(StreamAsIStream.CanSeek); + pfnSetSize = new StreamDescriptor.SetSize(StreamAsIStream.SetSize); + pfnStat = new StreamDescriptor.Stat(StreamAsIStream.Stat); + pfnUnlockRegion = new StreamDescriptor.UnlockRegion(StreamAsIStream.UnlockRegion); + pfnWrite = new StreamDescriptor.Write(StreamAsIStream.Write); + pfnCanWrite = new StreamDescriptor.CanWrite(StreamAsIStream.CanWrite); + pfnCanSeek = new StreamDescriptor.CanSeek(StreamAsIStream.CanSeek); } internal static StreamDescriptor.Dispose pfnDispose; @@ -153,12 +153,10 @@ private void ActualizeVirtualPosition() #endregion #region StreamFunctions - public int Clone(out IntPtr stream) + public HRESULT Clone(out IntPtr stream) { stream = IntPtr.Zero; - #pragma warning disable 6500 - try { Verify(); @@ -170,15 +168,11 @@ public int Clone(out IntPtr stream) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } public int Commit(uint grfCommitFlags) { - #pragma warning disable 6500 - try { Verify(); @@ -193,14 +187,12 @@ public int Commit(uint grfCommitFlags) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } public int CopyTo(IntPtr /* IStream */ pstm, long cb, out long cbRead, out long cbWritten) { - int hr = NativeMethods.S_OK; + HRESULT result = HRESULT.S_OK; uint bufsize = 4096; // one page @@ -209,8 +201,6 @@ public int CopyTo(IntPtr /* IStream */ pstm, long cb, out long cbRead, out long cbWritten = 0; cbRead = 0; - #pragma warning disable 6500 - try { Verify(); @@ -226,7 +216,7 @@ public int CopyTo(IntPtr /* IStream */ pstm, long cb, out long cbRead, out long uint read = 0; - hr = Read(buffer.AsSpan(0, (int) toRead), out read); + result = Read(buffer.AsSpan(0, (int) toRead), out read); if (read == 0) { @@ -235,13 +225,11 @@ public int CopyTo(IntPtr /* IStream */ pstm, long cb, out long cbRead, out long cbRead += read; - uint written = 0; - - hr = MILIStreamWrite(pstm, buffer, read, out written); + result = MILIStreamWrite(pstm, buffer, read, out uint written); if (written != read) { - return hr; + return result; } cbWritten += read; @@ -254,15 +242,11 @@ public int CopyTo(IntPtr /* IStream */ pstm, long cb, out long cbRead, out long return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return hr; + return result; } public int LockRegion(long libOffset, long cb, uint dwLockType) { - #pragma warning disable 6500 - try { Verify(); @@ -274,23 +258,19 @@ public int LockRegion(long libOffset, long cb, uint dwLockType) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } - public int Read(Span buffer, out uint cbRead) + public HRESULT Read(Span buffer, out uint cbRead) { cbRead = 0; - #pragma warning disable 6500 - try { Verify(); ActualizeVirtualPosition(); - cbRead = (uint) dataStream.Read(buffer); + cbRead = (uint)dataStream.Read(buffer); } catch (Exception e) { @@ -299,15 +279,11 @@ public int Read(Span buffer, out uint cbRead) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } - public int Revert() + public HRESULT Revert() { - #pragma warning disable 6500 - try { Verify(); @@ -319,15 +295,11 @@ public int Revert() return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } - public unsafe int Seek(long offset, uint origin, long * plibNewPostion) + public unsafe HRESULT Seek(long offset, uint origin, long * plibNewPostion) { - #pragma warning disable 6500 - try { Verify(); @@ -395,19 +367,14 @@ public unsafe int Seek(long offset, uint origin, long * plibNewPostion) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } - public int SetSize(long value) + public HRESULT SetSize(long value) { - #pragma warning disable 6500 - try { Verify(); - dataStream.SetLength(value); } catch (Exception e) @@ -417,18 +384,14 @@ public int SetSize(long value) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } - public int Stat(out System.Runtime.InteropServices.ComTypes.STATSTG statstg, uint grfStatFlag) + public HRESULT Stat(out System.Runtime.InteropServices.ComTypes.STATSTG statstg, uint grfStatFlag) { System.Runtime.InteropServices.ComTypes.STATSTG statstgOut = new System.Runtime.InteropServices.ComTypes.STATSTG(); statstg = statstgOut; - #pragma warning disable 6500 - try { Verify(); @@ -446,15 +409,11 @@ public int Stat(out System.Runtime.InteropServices.ComTypes.STATSTG statstg, uin return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } - public int UnlockRegion(long libOffset, long cb, uint dwLockType) + public HRESULT UnlockRegion(long libOffset, long cb, uint dwLockType) { - #pragma warning disable 6500 - try { Verify(); @@ -466,24 +425,20 @@ public int UnlockRegion(long libOffset, long cb, uint dwLockType) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } public int Write(byte[] buffer, uint cb, out uint cbWritten) { cbWritten = 0; - #pragma warning disable 6500 - try { Verify(); ActualizeVirtualPosition(); - dataStream.Write(buffer, 0, (int) cb); + dataStream.Write(buffer, 0, (int)cb); cbWritten = cb; } @@ -494,21 +449,16 @@ public int Write(byte[] buffer, uint cb, out uint cbWritten) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } public int CanWrite(out bool canWrite) { canWrite = false; - #pragma warning disable 6500 - try { Verify(); - canWrite = dataStream.CanWrite; } catch (Exception e) @@ -518,21 +468,16 @@ public int CanWrite(out bool canWrite) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } public int CanSeek(out bool canSeek) { canSeek = false; - #pragma warning disable 6500 - try { Verify(); - canSeek = dataStream.CanSeek; } catch (Exception e) @@ -542,16 +487,14 @@ public int CanSeek(out bool canSeek) return SecurityHelper.GetHRForException(e); } - #pragma warning restore 6500 - - return NativeMethods.S_OK; + return HRESULT.S_OK; } #endregion #region Verify private void Verify() { - if (this.dataStream == null) + if (dataStream == null) { throw new System.ObjectDisposedException(SR.Media_StreamClosed); } @@ -568,68 +511,68 @@ internal static StreamAsIStream FromSD(ref StreamDescriptor sd) internal static int Clone(ref StreamDescriptor pSD, out IntPtr stream) { - return (StreamAsIStream.FromSD(ref pSD)).Clone(out stream); + return (FromSD(ref pSD)).Clone(out stream); } internal static int Commit(ref StreamDescriptor pSD, UInt32 grfCommitFlags) { - return (StreamAsIStream.FromSD(ref pSD)).Commit(grfCommitFlags); + return (FromSD(ref pSD)).Commit(grfCommitFlags); } internal static int CopyTo(ref StreamDescriptor pSD, IntPtr pstm, long cb, out long cbRead, out long cbWritten) { - return (StreamAsIStream.FromSD(ref pSD)).CopyTo(pstm, cb, out cbRead, out cbWritten); + return (FromSD(ref pSD)).CopyTo(pstm, cb, out cbRead, out cbWritten); } internal static int LockRegion(ref StreamDescriptor pSD, long libOffset, long cb, uint dwLockType) { - return (StreamAsIStream.FromSD(ref pSD)).LockRegion(libOffset, cb, dwLockType); + return (FromSD(ref pSD)).LockRegion(libOffset, cb, dwLockType); } internal static unsafe int Read(ref StreamDescriptor pSD, IntPtr buffer, uint cb, out uint cbRead) { var span = new Span(buffer.ToPointer(), (int) cb); - return (StreamAsIStream.FromSD(ref pSD)).Read(span, out cbRead); + return (FromSD(ref pSD)).Read(span, out cbRead); } internal static int Revert(ref StreamDescriptor pSD) { - return (StreamAsIStream.FromSD(ref pSD)).Revert(); + return (FromSD(ref pSD)).Revert(); } internal unsafe static int Seek(ref StreamDescriptor pSD, long offset, uint origin, long* plibNewPostion) { - return (StreamAsIStream.FromSD(ref pSD)).Seek(offset, origin, plibNewPostion); + return (FromSD(ref pSD)).Seek(offset, origin, plibNewPostion); } internal static int SetSize(ref StreamDescriptor pSD, long value) { - return (StreamAsIStream.FromSD(ref pSD)).SetSize(value); + return (FromSD(ref pSD)).SetSize(value); } internal static int Stat(ref StreamDescriptor pSD, out System.Runtime.InteropServices.ComTypes.STATSTG statstg, uint grfStatFlag) { - return (StreamAsIStream.FromSD(ref pSD)).Stat(out statstg, grfStatFlag); + return (FromSD(ref pSD)).Stat(out statstg, grfStatFlag); } internal static int UnlockRegion(ref StreamDescriptor pSD, long libOffset, long cb, uint dwLockType) { - return (StreamAsIStream.FromSD(ref pSD)).UnlockRegion(libOffset, cb, dwLockType); + return (FromSD(ref pSD)).UnlockRegion(libOffset, cb, dwLockType); } internal static int Write(ref StreamDescriptor pSD, byte[] buffer, uint cb, out uint cbWritten) { - return (StreamAsIStream.FromSD(ref pSD)).Write(buffer, cb, out cbWritten); + return (FromSD(ref pSD)).Write(buffer, cb, out cbWritten); } internal static int CanWrite(ref StreamDescriptor pSD, out bool canWrite) { - return (StreamAsIStream.FromSD(ref pSD)).CanWrite(out canWrite); + return (FromSD(ref pSD)).CanWrite(out canWrite); } internal static int CanSeek(ref StreamDescriptor pSD, out bool canSeek) { - return (StreamAsIStream.FromSD(ref pSD)).CanSeek(out canSeek); + return FromSD(ref pSD).CanSeek(out canSeek); } #endregion @@ -641,12 +584,12 @@ internal static IntPtr IStreamMemoryFrom(IntPtr comStream) using (FactoryMaker myFactory = new FactoryMaker()) { - if (HRESULT.Failed(UnsafeNativeMethods.WICImagingFactory.CreateStream(myFactory.ImagingFactoryPtr, out pIStream))) + if (UnsafeNativeMethods.WICImagingFactory.CreateStream(myFactory.ImagingFactoryPtr, out pIStream).Failed) { return IntPtr.Zero; } - if (HRESULT.Failed(UnsafeNativeMethods.WICStream.InitializeFromIStream(pIStream, comStream))) + if (UnsafeNativeMethods.WICStream.InitializeFromIStream(pIStream, comStream).Failed) { UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref pIStream); @@ -663,12 +606,12 @@ internal static IntPtr IStreamFrom(IntPtr memoryBuffer, int bufferSize) using (FactoryMaker myFactory = new FactoryMaker()) { - if (HRESULT.Failed(UnsafeNativeMethods.WICImagingFactory.CreateStream(myFactory.ImagingFactoryPtr, out pIStream))) + if (UnsafeNativeMethods.WICImagingFactory.CreateStream(myFactory.ImagingFactoryPtr, out pIStream).Failed) { return IntPtr.Zero; } - if (HRESULT.Failed(UnsafeNativeMethods.WICStream.InitializeFromMemory(pIStream, memoryBuffer, (uint) bufferSize))) + if (UnsafeNativeMethods.WICStream.InitializeFromMemory(pIStream, memoryBuffer, (uint)bufferSize).Failed) { UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref pIStream); @@ -708,16 +651,20 @@ internal static IntPtr IStreamFrom(System.IO.Stream stream) sd.pfnCanWrite = StaticPtrs.pfnCanWrite; sd.pfnCanSeek = StaticPtrs.pfnCanSeek; - sd.m_handle = System.Runtime.InteropServices.GCHandle.Alloc(sais, System.Runtime.InteropServices.GCHandleType.Normal); + sd.m_handle = GCHandle.Alloc(sais, GCHandleType.Normal); - HRESULT.Check(UnsafeNativeMethods.MilCoreApi.MILCreateStreamFromStreamDescriptor(ref sd, out pStream)); + UnsafeNativeMethods.MilCoreApi.MILCreateStreamFromStreamDescriptor(ref sd, out pStream).ThrowOnFailureExtended(); return pStream; } #endregion - [DllImport(DllImport.MilCore)]//CASRemoval: - private extern static int /* HRESULT */ MILIStreamWrite(IntPtr pStream, [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)]byte[] buffer, uint cb, out uint cbWritten); + [DllImport(DllImport.MilCore)] + private static extern HRESULT MILIStreamWrite( + IntPtr pStream, + [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer, + uint cb, + out uint cbWritten); } #endregion } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/UnsafeNativeMethodsMilCoreApi.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/UnsafeNativeMethodsMilCoreApi.cs index 40962845841..465573f06d7 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/UnsafeNativeMethodsMilCoreApi.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/UnsafeNativeMethodsMilCoreApi.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -17,6 +17,8 @@ using System.Windows.Media.Imaging; using System.Windows; +using HRESULT = Windows.Win32.Foundation.HRESULT; + #pragma warning disable 1634, 1691 // suppressing PreSharp warnings namespace MS.Win32.PresentationCore @@ -38,26 +40,26 @@ internal static class MilCoreApi internal static extern void ExitMediaSystemLock(); [DllImport(DllImport.MilCore)] - internal static extern int MilVersionCheck( + internal static extern HRESULT MilVersionCheck( uint uiCallerMilSdkVersion ); - + [DllImport(DllImport.MilCore)] internal static extern bool WgxConnection_ShouldForceSoftwareForGraphicsStreamClient(); [DllImport(DllImport.MilCore)] - internal static extern int WgxConnection_Create( - bool requestSynchronousTransport, - out IntPtr ppConnection); + internal static extern HRESULT WgxConnection_Create( + bool requestSynchronousTransport, + out IntPtr ppConnection); [DllImport(DllImport.MilCore)] - internal static extern int WgxConnection_Disconnect(IntPtr pTranspManager); + internal static extern HRESULT WgxConnection_Disconnect(IntPtr pTranspManager); [DllImport(DllImport.MilCore)] - internal extern static int /* HRESULT */ MILCreateStreamFromStreamDescriptor(ref System.Windows.Media.StreamDescriptor pSD, out IntPtr ppStream); + internal static extern HRESULT MILCreateStreamFromStreamDescriptor(ref System.Windows.Media.StreamDescriptor pSD, out IntPtr ppStream); [DllImport(DllImport.MilCore)] - unsafe internal static extern void MilUtility_GetTileBrushMapping( + internal static extern unsafe void MilUtility_GetTileBrushMapping( D3DMATRIX* transform, D3DMATRIX* relativeTransform, Stretch stretch, @@ -74,9 +76,9 @@ out int brushIsEmpty ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryBounds( - MIL_PEN_DATA *pPenData, - double *pDashArray, + internal static extern unsafe HRESULT MilUtility_PathGeometryBounds( + MIL_PEN_DATA* pPenData, + double* pDashArray, MilMatrix3x2D* pWorldMatrix, FillRule fillRule, byte* pPathData, @@ -88,7 +90,7 @@ internal unsafe static extern int MilUtility_PathGeometryBounds( MilRectD* pBounds); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryCombine( + internal static extern unsafe HRESULT MilUtility_PathGeometryCombine( MilMatrix3x2D* pMatrix, MilMatrix3x2D* pMatrix1, FillRule fillRule1, @@ -105,9 +107,9 @@ internal unsafe static extern int MilUtility_PathGeometryCombine( out FillRule resultFillRule); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryWiden( - MIL_PEN_DATA *pPenData, - double *pDashArray, + internal static extern unsafe HRESULT MilUtility_PathGeometryWiden( + MIL_PEN_DATA* pPenData, + double* pDashArray, MilMatrix3x2D* pMatrix, FillRule fillRule, byte* pPathData, @@ -118,7 +120,7 @@ internal unsafe static extern int MilUtility_PathGeometryWiden( out FillRule widenedFillRule); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryOutline( + internal static extern unsafe HRESULT MilUtility_PathGeometryOutline( MilMatrix3x2D* pMatrix, FillRule fillRule, byte* pPathData, @@ -129,7 +131,7 @@ internal unsafe static extern int MilUtility_PathGeometryOutline( out FillRule outlinedFillRule); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilUtility_PathGeometryFlatten( + internal static extern unsafe HRESULT MilUtility_PathGeometryFlatten( MilMatrix3x2D* pMatrix, FillRule fillRule, byte* pPathData, @@ -140,7 +142,7 @@ internal unsafe static extern int MilUtility_PathGeometryFlatten( out FillRule resultFillRule); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphCache_BeginCommandAtRenderTime( + internal static extern unsafe HRESULT MilGlyphCache_BeginCommandAtRenderTime( IntPtr pMilSlaveGlyphCacheTarget, byte* pbData, uint cbSize, @@ -148,29 +150,29 @@ uint cbExtra ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphCache_AppendCommandDataAtRenderTime( + internal static extern unsafe HRESULT MilGlyphCache_AppendCommandDataAtRenderTime( IntPtr pMilSlaveGlyphCacheTarget, byte* pbData, uint cbSize ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphCache_EndCommandAtRenderTime( + internal static extern unsafe HRESULT MilGlyphCache_EndCommandAtRenderTime( IntPtr pMilSlaveGlyphCacheTarget ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphRun_SetGeometryAtRenderTime( + internal static extern unsafe HRESULT MilGlyphRun_SetGeometryAtRenderTime( IntPtr pMilGlyphRunTarget, byte* pCmd, uint cbCmd ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphRun_GetGlyphOutline( + internal static extern unsafe HRESULT MilGlyphRun_GetGlyphOutline( IntPtr pFontFace, - ushort glyphIndex, - bool sideways, + ushort glyphIndex, + bool sideways, double renderingEmSize, out byte* pPathGeometryData, out UInt32 pSize, @@ -178,31 +180,31 @@ out FillRule pFillRule ); [DllImport(DllImport.MilCore)] - internal unsafe static extern int MilGlyphRun_ReleasePathGeometryData( + internal static extern unsafe HRESULT MilGlyphRun_ReleasePathGeometryData( byte* pPathGeometryData ); [DllImport(DllImport.MilCore, EntryPoint = "MilCreateReversePInvokeWrapper")] - internal unsafe static extern /*HRESULT*/ int MilCreateReversePInvokeWrapper( - IntPtr pFcn, + internal static extern unsafe HRESULT MilCreateReversePInvokeWrapper( + IntPtr pFcn, out IntPtr reversePInvokeWrapper); [DllImport(DllImport.MilCore, EntryPoint = "MilReleasePInvokePtrBlocking")] - internal unsafe static extern void MilReleasePInvokePtrBlocking( + internal static extern unsafe void MilReleasePInvokePtrBlocking( IntPtr reversePInvokeWrapper); [DllImport(DllImport.MilCore, EntryPoint = "RenderOptions_ForceSoftwareRenderingModeForProcess")] - internal unsafe static extern void RenderOptions_ForceSoftwareRenderingModeForProcess( + internal static extern unsafe void RenderOptions_ForceSoftwareRenderingModeForProcess( bool fForce); [DllImport(DllImport.MilCore, EntryPoint = "RenderOptions_IsSoftwareRenderingForcedForProcess")] - internal unsafe static extern bool RenderOptions_IsSoftwareRenderingForcedForProcess(); + internal static extern unsafe bool RenderOptions_IsSoftwareRenderingForcedForProcess(); [DllImport(DllImport.MilCore, EntryPoint = "RenderOptions_EnableHardwareAccelerationInRdp")] - internal unsafe static extern void RenderOptions_EnableHardwareAccelerationInRdp(bool value); + internal static extern unsafe void RenderOptions_EnableHardwareAccelerationInRdp(bool value); [DllImport(DllImport.MilCore, EntryPoint = "MilResource_CreateCWICWrapperBitmap")] - internal unsafe static extern int /* HRESULT */ CreateCWICWrapperBitmap( + internal static extern unsafe HRESULT CreateCWICWrapperBitmap( BitmapSourceSafeMILHandle /* IWICBitmapSource */ pIWICBitmapSource, out BitmapSourceSafeMILHandle /* CWICWrapperBitmap as IWICBitmapSource */ pCWICWrapperBitmap); } @@ -210,33 +212,33 @@ internal unsafe static extern void RenderOptions_ForceSoftwareRenderingModeForPr internal static class WICComponentInfo { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentInfo_GetCLSID_Proxy")] - internal static extern int /* HRESULT */ GetCLSID( + internal static extern HRESULT GetCLSID( System.Windows.Media.SafeMILHandle /* IWICComponentInfo */ THIS_PTR, out Guid pclsid); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentInfo_GetAuthor_Proxy")] - internal static extern int /* HRESULT */ GetAuthor( + internal static extern HRESULT GetAuthor( System.Windows.Media.SafeMILHandle /* IWICComponentInfo */ THIS_PTR, UInt32 cchAuthor, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzAuthor, out UInt32 pcchActual); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentInfo_GetVersion_Proxy")] - internal static extern int /* HRESULT */ GetVersion( + internal static extern HRESULT GetVersion( System.Windows.Media.SafeMILHandle /* IWICComponentInfo */ THIS_PTR, UInt32 cchVersion, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzVersion, out UInt32 pcchActual); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentInfo_GetSpecVersion_Proxy")] - internal static extern int /* HRESULT */ GetSpecVersion( + internal static extern HRESULT GetSpecVersion( System.Windows.Media.SafeMILHandle /* IWICComponentInfo */ THIS_PTR, UInt32 cchSpecVersion, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzSpecVersion, out UInt32 pcchActual); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentInfo_GetFriendlyName_Proxy")] - internal static extern int /* HRESULT */ GetFriendlyName( + internal static extern HRESULT GetFriendlyName( System.Windows.Media.SafeMILHandle /* IWICComponentInfo */ THIS_PTR, UInt32 cchFriendlyName, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzFriendlyName, @@ -246,12 +248,12 @@ internal static class WICComponentInfo internal static class WICBitmapCodecInfo { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_GetContainerFormat_Proxy")] - internal static extern int /* HRESULT */ GetContainerFormat( + internal static extern HRESULT GetContainerFormat( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, out Guid pguidContainerFormat); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_GetDeviceManufacturer_Proxy")] - internal static extern int /* HRESULT */ GetDeviceManufacturer( + internal static extern HRESULT GetDeviceManufacturer( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, UInt32 cchDeviceManufacturer, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDeviceManufacturer, @@ -259,7 +261,7 @@ out UInt32 pcchActual ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_GetDeviceModels_Proxy")] - internal static extern int /* HRESULT */ GetDeviceModels( + internal static extern HRESULT GetDeviceModels( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, UInt32 cchDeviceModels, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDeviceModels, @@ -267,7 +269,7 @@ out UInt32 pcchActual ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_GetMimeTypes_Proxy")] - internal static extern int /* HRESULT */ GetMimeTypes( + internal static extern HRESULT GetMimeTypes( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, UInt32 cchMimeTypes, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzMimeTypes, @@ -275,7 +277,7 @@ out UInt32 pcchActual ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_GetFileExtensions_Proxy")] - internal static extern int /* HRESULT */ GetFileExtensions( + internal static extern HRESULT GetFileExtensions( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, UInt32 cchFileExtensions, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzFileExtensions, @@ -283,33 +285,33 @@ out UInt32 pcchActual ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_DoesSupportAnimation_Proxy")] - internal static extern int /* HRESULT */ DoesSupportAnimation( + internal static extern HRESULT DoesSupportAnimation( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, out bool pfSupportAnimation ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_DoesSupportLossless_Proxy")] - internal static extern int /* HRESULT */ DoesSupportLossless( + internal static extern HRESULT DoesSupportLossless( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, out bool pfSupportLossless ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapCodecInfo_DoesSupportMultiframe_Proxy")] - internal static extern int /* HRESULT */ DoesSupportMultiframe( + internal static extern HRESULT DoesSupportMultiframe( System.Windows.Media.SafeMILHandle /* IWICBitmapCodecInfo */ THIS_PTR, out bool pfSupportMultiframe ); -} + } internal static class WICMetadataQueryReader { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryReader_GetContainerFormat_Proxy")] - internal static extern int /* HRESULT */ GetContainerFormat( + internal static extern HRESULT GetContainerFormat( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryReader */ THIS_PTR, out Guid pguidContainerFormat); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryReader_GetLocation_Proxy")] - internal static extern int /* HRESULT */ GetLocation( + internal static extern HRESULT GetLocation( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryReader */ THIS_PTR, UInt32 cchLocation, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzNamespace, @@ -317,21 +319,21 @@ out UInt32 pcchActual ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryReader_GetMetadataByName_Proxy")] - internal static extern int /* HRESULT */ GetMetadataByName( + internal static extern HRESULT GetMetadataByName( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryReader */ THIS_PTR, [MarshalAs(UnmanagedType.LPWStr)] String wzName, ref System.Windows.Media.Imaging.PROPVARIANT propValue ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryReader_GetMetadataByName_Proxy")] - internal static extern int /* HRESULT */ ContainsMetadataByName( + internal static extern HRESULT ContainsMetadataByName( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryReader */ THIS_PTR, [MarshalAs(UnmanagedType.LPWStr)] String wzName, IntPtr propVar ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryReader_GetEnumerator_Proxy")] - internal static extern int /* HRESULT */ GetEnumerator( + internal static extern HRESULT GetEnumerator( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryReader */ THIS_PTR, out System.Windows.Media.SafeMILHandle /* IEnumString */ enumString ); @@ -340,14 +342,14 @@ out System.Windows.Media.SafeMILHandle /* IEnumString */ enumString internal static class WICMetadataQueryWriter { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryWriter_SetMetadataByName_Proxy")] - internal static extern int /* HRESULT */ SetMetadataByName( + internal static extern HRESULT SetMetadataByName( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryWriter */ THIS_PTR, [MarshalAs(UnmanagedType.LPWStr)] String wzName, ref System.Windows.Media.Imaging.PROPVARIANT propValue ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataQueryWriter_RemoveMetadataByName_Proxy")] - internal static extern int /* HRESULT */ RemoveMetadataByName( + internal static extern HRESULT RemoveMetadataByName( System.Windows.Media.SafeMILHandle /* IWICMetadataQueryWriter */ THIS_PTR, [MarshalAs(UnmanagedType.LPWStr)] String wzName ); @@ -356,12 +358,12 @@ ref System.Windows.Media.Imaging.PROPVARIANT propValue internal static class WICFastMetadataEncoder { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICFastMetadataEncoder_Commit_Proxy")] - internal static extern int /* HRESULT */ Commit( + internal static extern HRESULT Commit( System.Windows.Media.SafeMILHandle /* IWICFastMetadataEncoder */ THIS_PTR ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICFastMetadataEncoder_GetMetadataQueryWriter_Proxy")] - internal static extern int /* HRESULT */ GetMetadataQueryWriter( + internal static extern HRESULT GetMetadataQueryWriter( System.Windows.Media.SafeMILHandle /* IWICFastMetadataEncoder */ THIS_PTR, out SafeMILHandle /* IWICMetadataQueryWriter */ ppIQueryWriter ); @@ -370,7 +372,7 @@ out SafeMILHandle /* IWICMetadataQueryWriter */ ppIQueryWriter internal static class EnumString { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IEnumString_Next_WIC_Proxy")] - internal static extern int /* HRESULT */ Next( + internal static extern HRESULT Next( System.Windows.Media.SafeMILHandle /* IEnumString */ THIS_PTR, Int32 celt, ref IntPtr rgElt, @@ -378,7 +380,7 @@ ref Int32 pceltFetched ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IEnumString_Reset_WIC_Proxy")] - internal static extern int /* HRESULT */ Reset( + internal static extern HRESULT Reset( System.Windows.Media.SafeMILHandle /* IEnumString */ THIS_PTR ); } @@ -386,7 +388,7 @@ ref Int32 pceltFetched internal static class IPropertyBag2 { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IPropertyBag2_Write_Proxy")] - internal static extern int /* HRESULT */ Write( + internal static extern HRESULT Write( System.Windows.Media.SafeMILHandle /* IPropertyBag2 */ THIS_PTR, UInt32 cProperties, ref System.Windows.Media.Imaging.PROPBAG2 propBag, @@ -397,29 +399,29 @@ ref System.Windows.Media.Imaging.PROPVARIANT propValue internal static class WICBitmapSource { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_GetSize_Proxy")] - internal static extern int /* HRESULT */ GetSize( + internal static extern HRESULT GetSize( System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ THIS_PTR, out UInt32 puiWidth, out UInt32 puiHeight); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_GetPixelFormat_Proxy")] - internal static extern int /* HRESULT */ GetPixelFormat( + internal static extern HRESULT GetPixelFormat( System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ THIS_PTR, out Guid pPixelFormatEnum); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_GetResolution_Proxy")] - internal static extern int /* HRESULT */ GetResolution( + internal static extern HRESULT GetResolution( System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ THIS_PTR, out double pDpiX, out double pDpiY); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_CopyPalette_Proxy")] - internal static extern int /* HRESULT */ CopyPalette( + internal static extern HRESULT CopyPalette( System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IMILPalette */ pIPalette); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapSource_CopyPixels_Proxy")] - internal static extern int /* HRESULT */ CopyPixels( + internal static extern HRESULT CopyPixels( SafeMILHandle /* IWICBitmapSource */ THIS_PTR, ref Int32Rect prc, UInt32 cbStride, @@ -430,23 +432,23 @@ internal static class WICBitmapSource internal static class WICBitmapDecoder { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetDecoderInfo_Proxy")] - internal static extern int /* HRESULT */ GetDecoderInfo( + internal static extern HRESULT GetDecoderInfo( SafeMILHandle THIS_PTR, out SafeMILHandle /* IWICBitmapDecoderInfo */ ppIDecoderInfo); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_CopyPalette_Proxy")] - internal static extern int /* HRESULT */ CopyPalette( + internal static extern HRESULT CopyPalette( SafeMILHandle /* IWICBitmapDecoder */ THIS_PTR, SafeMILHandle /* IMILPalette */ pIPalette); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetPreview_Proxy")] - internal static extern int /* HRESULT */ GetPreview( + internal static extern HRESULT GetPreview( SafeMILHandle THIS_PTR, out IntPtr /* IWICBitmapSource */ ppIBitmapSource ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetColorContexts_Proxy")] - internal static extern int /* HRESULT */ GetColorContexts( + internal static extern HRESULT GetColorContexts( SafeMILHandle THIS_PTR, uint count, IntPtr[] /* IWICColorContext */ ppIColorContext, @@ -454,25 +456,25 @@ out uint pActualCount ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetThumbnail_Proxy")] - internal static extern int /* HRESULT */ GetThumbnail( + internal static extern HRESULT GetThumbnail( SafeMILHandle /* IWICBitmapDecoder */ THIS_PTR, out IntPtr /* IWICBitmapSource */ ppIThumbnail ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetMetadataQueryReader_Proxy")] - internal static extern int /* HRESULT */ GetMetadataQueryReader( + internal static extern HRESULT GetMetadataQueryReader( SafeMILHandle /* IWICBitmapDecoder */ THIS_PTR, out IntPtr /* IWICMetadataQueryReader */ ppIQueryReader ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetFrameCount_Proxy")] - internal static extern int /* HRESULT */ GetFrameCount( + internal static extern HRESULT GetFrameCount( SafeMILHandle THIS_PTR, out uint pFrameCount ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapDecoder_GetFrame_Proxy")] - internal static extern int /* HRESULT */ GetFrame( + internal static extern HRESULT GetFrame( SafeMILHandle /* IWICBitmapDecoder */ THIS_PTR, UInt32 index, out IntPtr /* IWICBitmapFrameDecode */ ppIFrameDecode @@ -482,25 +484,25 @@ out IntPtr /* IWICBitmapFrameDecode */ ppIFrameDecode internal static class WICBitmapFrameDecode { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameDecode_GetThumbnail_Proxy")] - internal static extern int /* HRESULT */ GetThumbnail( + internal static extern HRESULT GetThumbnail( SafeMILHandle /* IWICBitmapFrameDecode */ THIS_PTR, out IntPtr /* IWICBitmap */ ppIThumbnail ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameDecode_GetMetadataQueryReader_Proxy")] - internal static extern int /* HRESULT */ GetMetadataQueryReader( + internal static extern HRESULT GetMetadataQueryReader( SafeMILHandle /* IWICBitmapFrameDecode */ THIS_PTR, out IntPtr /* IWICMetadataQueryReader */ ppIQueryReader ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameDecode_GetColorContexts_Proxy")] - internal static extern int /* HRESULT */ GetColorContexts( + internal static extern HRESULT GetColorContexts( SafeMILHandle /* IWICBitmapFrameDecode */ THIS_PTR, uint count, IntPtr[] /* IWICColorContext */ ppIColorContext, out uint pActualCount ); -} + } internal static class MILUnknown { @@ -518,20 +520,20 @@ internal static void ReleaseInterface(ref IntPtr ptr) { if (ptr != IntPtr.Zero) { - #pragma warning suppress 6031 // Return value ignored on purpose. +#pragma warning suppress 6031 // Return value ignored on purpose. UnsafeNativeMethods.MILUnknown.Release(ptr); ptr = IntPtr.Zero; } } [DllImport(DllImport.MilCore, EntryPoint = "MILQueryInterface")] - internal static extern int /* HRESULT */ QueryInterface( + internal static extern HRESULT QueryInterface( IntPtr pIUnknown, ref Guid guid, out IntPtr ppvObject); [DllImport(DllImport.MilCore, EntryPoint = "MILQueryInterface")] - internal static extern int /* HRESULT */ QueryInterface( + internal static extern HRESULT QueryInterface( SafeMILHandle pIUnknown, ref Guid guid, out IntPtr ppvObject); @@ -540,12 +542,12 @@ internal static void ReleaseInterface(ref IntPtr ptr) internal static class WICStream { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICStream_InitializeFromIStream_Proxy")] - internal static extern int /*HRESULT*/ InitializeFromIStream( + internal static extern HRESULT InitializeFromIStream( IntPtr pIWICStream, IntPtr pIStream); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICStream_InitializeFromMemory_Proxy")] - internal static extern int /*HRESULT*/ InitializeFromMemory( + internal static extern HRESULT InitializeFromMemory( IntPtr pIWICStream, IntPtr pbBuffer, uint cbSize); @@ -554,7 +556,7 @@ internal static class WICStream internal static class WindowsCodecApi { [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICCreateBitmapFromSection")] - internal static extern int /*HRESULT*/ CreateBitmapFromSection( + internal static extern HRESULT CreateBitmapFromSection( UInt32 width, UInt32 height, ref Guid pixelFormatGuid, @@ -566,126 +568,126 @@ internal static class WindowsCodecApi internal static class WICBitmapFrameEncode { - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapFrameEncode_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_Initialize_Proxy")] + internal static extern HRESULT Initialize(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, SafeMILHandle /* IPropertyBag2* */ pIEncoderOptions); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapFrameEncode_Commit_Proxy")] - internal static extern int /* HRESULT */ Commit(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR); + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_Commit_Proxy")] + internal static extern HRESULT Commit(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapFrameEncode_SetSize_Proxy")] - internal static extern int /* HRESULT */ SetSize(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_SetSize_Proxy")] + internal static extern HRESULT SetSize(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, int width, int height); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapFrameEncode_SetResolution_Proxy")] - internal static extern int /* HRESULT */ SetResolution(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, - double dpiX, - double dpiY); + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_SetResolution_Proxy")] + internal static extern HRESULT SetResolution(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, + double dpiX, + double dpiY); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapFrameEncode_WriteSource_Proxy")] - internal static extern int /* HRESULT */ WriteSource(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_WriteSource_Proxy")] + internal static extern HRESULT WriteSource(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, SafeMILHandle /* IWICBitmapSource* */ pIBitmapSource, ref Int32Rect /* MILRect* */ r); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_SetThumbnail_Proxy")] - internal static extern int /* HRESULT */ SetThumbnail(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, + internal static extern HRESULT SetThumbnail(SafeMILHandle /* IWICBitmapFrameEncode* */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource* */ pIThumbnail); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_GetMetadataQueryWriter_Proxy")] - internal static extern int /* HRESULT */ GetMetadataQueryWriter( + internal static extern HRESULT GetMetadataQueryWriter( SafeMILHandle /* IWICBitmapFrameEncode */ THIS_PTR, out SafeMILHandle /* IWICMetadataQueryWriter */ ppIQueryWriter ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFrameEncode_SetColorContexts_Proxy")] - internal static extern int /* HRESULT */ SetColorContexts(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + internal static extern HRESULT SetColorContexts(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, uint nIndex, IntPtr[] /* IWICColorContext */ ppIColorContext ); -} + } internal static class WICBitmapEncoder { - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_Initialize_Proxy")] + internal static extern HRESULT Initialize(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, IntPtr /* IStream */ pStream, WICBitmapEncodeCacheOption option); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_GetEncoderInfo_Proxy")] - internal static extern int /* HRESULT */ GetEncoderInfo(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_GetEncoderInfo_Proxy")] + internal static extern HRESULT GetEncoderInfo(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, out SafeMILHandle /* IWICBitmapEncoderInfo ** */ ppIEncoderInfo ); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_CreateNewFrame_Proxy")] - internal static extern int /* HRESULT */ CreateNewFrame(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_CreateNewFrame_Proxy")] + internal static extern HRESULT CreateNewFrame(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, out SafeMILHandle /* IWICBitmapFrameEncode ** */ ppIFramEncode, out SafeMILHandle /* IPropertyBag2 ** */ ppIEncoderOptions ); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_SetThumbnail_Proxy")] - internal static extern int /* HRESULT */ SetThumbnail(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_SetThumbnail_Proxy")] + internal static extern HRESULT SetThumbnail(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource* */ pIThumbnail); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_SetPalette_Proxy")] - internal static extern int /* HRESULT */ SetPalette(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_SetPalette_Proxy")] + internal static extern HRESULT SetPalette(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICPalette* */ pIPalette); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_GetMetadataQueryWriter_Proxy")] - internal static extern int /* HRESULT */ GetMetadataQueryWriter( + internal static extern HRESULT GetMetadataQueryWriter( SafeMILHandle /* IWICBitmapEncoder */ THIS_PTR, out SafeMILHandle /* IWICMetadataQueryWriter */ ppIQueryWriter ); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICBitmapEncoder_Commit_Proxy")] - internal static extern int /* HRESULT */ Commit(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR); + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapEncoder_Commit_Proxy")] + internal static extern HRESULT Commit(SafeMILHandle /* IWICBitmapEncoder* */ THIS_PTR); } internal static class WICPalette { - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_InitializePredefined_Proxy")] - internal static extern int /* HRESULT */ InitializePredefined(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_InitializePredefined_Proxy")] + internal static extern HRESULT InitializePredefined(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, WICPaletteType ePaletteType, bool fAddTransparentColor); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_InitializeCustom_Proxy")] - internal static extern int /* HRESULT */ InitializeCustom(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_InitializeCustom_Proxy")] + internal static extern HRESULT InitializeCustom(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, IntPtr /* MILColor* */ pColors, int colorCount); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_InitializeFromBitmap_Proxy")] - internal static extern int /* HRESULT */ InitializeFromBitmap(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_InitializeFromBitmap_Proxy")] + internal static extern HRESULT InitializeFromBitmap(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource* */ pISurface, int colorCount, bool fAddTransparentColor); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_InitializeFromPalette_Proxy")] - internal static extern int /* HRESULT */ InitializeFromPalette(IntPtr /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_InitializeFromPalette_Proxy")] + internal static extern HRESULT InitializeFromPalette(IntPtr /* IWICPalette */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICPalette */ pIWICPalette); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_GetType_Proxy")] - internal static extern int /* HRESULT */ GetType(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_GetType_Proxy")] + internal static extern HRESULT GetType(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, out WICPaletteType pePaletteType); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_GetColorCount_Proxy")] - internal static extern int /* HRESULT */ GetColorCount(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_GetColorCount_Proxy")] + internal static extern HRESULT GetColorCount(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, out int pColorCount); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_GetColors_Proxy")] - internal static extern int /* HRESULT */ GetColors(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_GetColors_Proxy")] + internal static extern HRESULT GetColors(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, int colorCount, IntPtr /* MILColor* */ pColors, out int pcActualCount); - [DllImport(DllImport.WindowsCodecs, EntryPoint="IWICPalette_HasAlpha_Proxy")] - internal static extern int /* HRESULT */ HasAlpha(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPalette_HasAlpha_Proxy")] + internal static extern HRESULT HasAlpha(System.Windows.Media.SafeMILHandle /* IWICPalette */ THIS_PTR, out bool pfHasAlpha); } internal static class WICImagingFactory { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateDecoderFromStream_Proxy")] - internal static extern int /*HRESULT*/ CreateDecoderFromStream( + internal static extern HRESULT CreateDecoderFromStream( IntPtr pICodecFactory, IntPtr /* IStream */ pIStream, ref Guid guidVendor, @@ -693,7 +695,7 @@ internal static class WICImagingFactory out IntPtr /* IWICBitmapDecoder */ ppIDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateDecoderFromFileHandle_Proxy")] - internal static extern int /*HRESULT*/ CreateDecoderFromFileHandle( + internal static extern HRESULT CreateDecoderFromFileHandle( IntPtr pICodecFactory, Microsoft.Win32.SafeHandles.SafeFileHandle /*ULONG_PTR*/ hFileHandle, ref Guid guidVendor, @@ -701,57 +703,57 @@ internal static class WICImagingFactory out IntPtr /* IWICBitmapDecoder */ ppIDecode); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateComponentInfo_Proxy")] - internal static extern int /*HRESULT*/ CreateComponentInfo( + internal static extern HRESULT CreateComponentInfo( IntPtr pICodecFactory, ref Guid clsidComponent, out IntPtr /* IWICComponentInfo */ ppIComponentInfo); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreatePalette_Proxy")] - internal static extern int /*HRESULT*/ CreatePalette( + internal static extern HRESULT CreatePalette( IntPtr pICodecFactory, out SafeMILHandle /* IWICPalette */ ppIPalette); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateFormatConverter_Proxy")] - internal static extern int /* HRESULT */ CreateFormatConverter( + internal static extern HRESULT CreateFormatConverter( IntPtr pICodecFactory, out BitmapSourceSafeMILHandle /* IWICFormatConverter */ ppFormatConverter); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapScaler_Proxy")] - internal static extern int /* HRESULT */ CreateBitmapScaler( + internal static extern HRESULT CreateBitmapScaler( IntPtr pICodecFactory, out BitmapSourceSafeMILHandle /* IWICBitmapScaler */ ppBitmapScaler); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapClipper_Proxy")] - internal static extern int /* HRESULT */ CreateBitmapClipper( + internal static extern HRESULT CreateBitmapClipper( IntPtr pICodecFactory, out BitmapSourceSafeMILHandle /* IWICBitmapClipper */ ppBitmapClipper); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFlipRotator_Proxy")] - internal static extern int /* HRESULT */ CreateBitmapFlipRotator( + internal static extern HRESULT CreateBitmapFlipRotator( IntPtr pICodecFactory, out BitmapSourceSafeMILHandle /* IWICBitmapFlipRotator */ ppBitmapFlipRotator); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateStream_Proxy")] - internal static extern int /* HRESULT */ CreateStream( + internal static extern HRESULT CreateStream( IntPtr pICodecFactory, out IntPtr /* IWICBitmapStream */ ppIStream); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateEncoder_Proxy")] - internal static extern int /* HRESULT */ CreateEncoder( + internal static extern HRESULT CreateEncoder( IntPtr pICodecFactory, ref Guid guidContainerFormat, ref Guid guidVendor, out SafeMILHandle /* IUnknown** */ ppICodec); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFromSource_Proxy")] - internal static extern int /*HRESULT*/ CreateBitmapFromSource( + internal static extern HRESULT CreateBitmapFromSource( IntPtr THIS_PTR, SafeMILHandle /* IWICBitmapSource */ pIBitmapSource, WICBitmapCreateCacheOptions options, out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFromMemory_Proxy")] - internal static extern int /*HRESULT*/ CreateBitmapFromMemory( + internal static extern HRESULT CreateBitmapFromMemory( IntPtr THIS_PTR, UInt32 width, UInt32 height, @@ -762,7 +764,7 @@ internal static class WICImagingFactory out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmap_Proxy")] - internal static extern int /*HRESULT*/ CreateBitmap( + internal static extern HRESULT CreateBitmap( IntPtr THIS_PTR, UInt32 width, UInt32 height, @@ -771,7 +773,7 @@ internal static class WICImagingFactory out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFromHBITMAP_Proxy")] - internal static extern int /*HRESULT*/ CreateBitmapFromHBITMAP( + internal static extern HRESULT CreateBitmapFromHBITMAP( IntPtr THIS_PTR, IntPtr hBitmap, IntPtr hPalette, @@ -779,25 +781,25 @@ internal static class WICImagingFactory out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateBitmapFromHICON_Proxy")] - internal static extern int /*HRESULT*/ CreateBitmapFromHICON( + internal static extern HRESULT CreateBitmapFromHICON( IntPtr THIS_PTR, IntPtr hIcon, out BitmapSourceSafeMILHandle /* IWICBitmap */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateFastMetadataEncoderFromDecoder_Proxy")] - internal static extern int /*HRESULT*/ CreateFastMetadataEncoderFromDecoder( + internal static extern HRESULT CreateFastMetadataEncoderFromDecoder( IntPtr THIS_PTR, SafeMILHandle /* IWICBitmapDecoder */ pIDecoder, out SafeMILHandle /* IWICFastMetadataEncoder */ ppIFME); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateFastMetadataEncoderFromFrameDecode_Proxy")] - internal static extern int /*HRESULT*/ CreateFastMetadataEncoderFromFrameDecode( + internal static extern HRESULT CreateFastMetadataEncoderFromFrameDecode( IntPtr THIS_PTR, BitmapSourceSafeMILHandle /* IWICBitmapFrameDecode */ pIFrameDecode, out SafeMILHandle /* IWICFastMetadataEncoder */ ppIBitmap); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateQueryWriter_Proxy")] - internal static extern int /*HRESULT*/ CreateQueryWriter( + internal static extern HRESULT CreateQueryWriter( IntPtr THIS_PTR, ref Guid metadataFormat, ref Guid guidVendor, @@ -805,7 +807,7 @@ out IntPtr /* IWICMetadataQueryWriter */ queryWriter ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICImagingFactory_CreateQueryWriterFromReader_Proxy")] - internal static extern int /*HRESULT*/ CreateQueryWriterFromReader( + internal static extern HRESULT CreateQueryWriterFromReader( IntPtr THIS_PTR, SafeMILHandle /* IWICMetadataQueryReader */ queryReader, ref Guid guidVendor, @@ -816,7 +818,7 @@ out IntPtr /* IWICMetadataQueryWriter */ queryWriter internal static class WICComponentFactory { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentFactory_CreateMetadataWriterFromReader_Proxy")] - internal static extern int /*HRESULT*/ CreateMetadataWriterFromReader( + internal static extern HRESULT CreateMetadataWriterFromReader( IntPtr pICodecFactory, SafeMILHandle pIMetadataReader, ref Guid guidVendor, @@ -824,7 +826,7 @@ out IntPtr metadataWriter ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICComponentFactory_CreateQueryWriterFromBlockWriter_Proxy")] - internal static extern int /*HRESULT*/ CreateQueryWriterFromBlockWriter( + internal static extern HRESULT CreateQueryWriterFromBlockWriter( IntPtr pICodecFactory, IntPtr pIBlockWriter, ref IntPtr ppIQueryWriter @@ -834,13 +836,13 @@ ref IntPtr ppIQueryWriter internal static class WICMetadataBlockReader { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataBlockReader_GetCount_Proxy")] - internal static extern int /*HRESULT*/ GetCount( + internal static extern HRESULT GetCount( IntPtr pIBlockReader, out UInt32 count ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICMetadataBlockReader_GetReaderByIndex_Proxy")] - internal static extern int /*HRESULT*/ GetReaderByIndex( + internal static extern HRESULT GetReaderByIndex( IntPtr pIBlockReader, UInt32 index, out SafeMILHandle /* IWICMetadataReader* */ pIMetadataReader @@ -850,23 +852,23 @@ out SafeMILHandle /* IWICMetadataReader* */ pIMetadataReader internal static class WICPixelFormatInfo { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPixelFormatInfo_GetBitsPerPixel_Proxy")] - internal static extern int /*HRESULT*/ GetBitsPerPixel( + internal static extern HRESULT GetBitsPerPixel( IntPtr /* IWICPixelFormatInfo */ pIPixelFormatInfo, out UInt32 uiBitsPerPixel ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPixelFormatInfo_GetChannelCount_Proxy")] - internal static extern int /*HRESULT*/ GetChannelCount( + internal static extern HRESULT GetChannelCount( IntPtr /* IWICPixelFormatInfo */ pIPixelFormatInfo, out UInt32 uiChannelCount ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICPixelFormatInfo_GetChannelMask_Proxy")] - internal unsafe static extern int /*HRESULT*/ GetChannelMask( + internal static extern unsafe HRESULT GetChannelMask( IntPtr /* IWICPixelFormatInfo */ pIPixelFormatInfo, UInt32 uiChannelIndex, UInt32 cbMaskBuffer, - byte *pbMaskBuffer, + byte* pbMaskBuffer, out UInt32 cbActual ); } @@ -874,7 +876,7 @@ out UInt32 cbActual internal static class WICBitmapClipper { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapClipper_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize( + internal static extern HRESULT Initialize( System.Windows.Media.SafeMILHandle /* IWICBitmapClipper */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ source, ref Int32Rect prc); @@ -883,7 +885,7 @@ internal static class WICBitmapClipper internal static class WICBitmapFlipRotator { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapFlipRotator_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize( + internal static extern HRESULT Initialize( System.Windows.Media.SafeMILHandle /* IWICBitmapFlipRotator */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ source, WICBitmapTransformOptions options); @@ -892,7 +894,7 @@ internal static class WICBitmapFlipRotator internal static class WICBitmapScaler { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapScaler_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize( + internal static extern HRESULT Initialize( System.Windows.Media.SafeMILHandle /* IWICBitmapScaler */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ source, uint width, @@ -903,7 +905,7 @@ internal static class WICBitmapScaler internal static class WICFormatConverter { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICFormatConverter_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize( + internal static extern HRESULT Initialize( System.Windows.Media.SafeMILHandle /* IWICFormatConverter */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ source, ref Guid dstFormat, @@ -915,15 +917,15 @@ WICPaletteType paletteTranslate } internal static class IWICColorContext { - internal enum WICColorContextType : uint + internal enum WICColorContextType : uint { - WICColorContextUninitialized = 0, - WICColorContextProfile = 1, + WICColorContextUninitialized = 0, + WICColorContextProfile = 1, WICColorContextExifColorSpace = 2 }; - + [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICColorContext_InitializeFromMemory_Proxy")] - internal static extern int /* HRESULT */ InitializeFromMemory( + internal static extern HRESULT InitializeFromMemory( SafeMILHandle THIS_PTR, byte[] pbBuffer, uint cbBufferSize @@ -932,7 +934,7 @@ uint cbBufferSize // We import the following functions from MilCore because WindowsCodecs does not have // them built-in [DllImport(DllImport.MilCore, EntryPoint = "IWICColorContext_GetProfileBytes_Proxy")] - internal static extern int /* HRESULT */ GetProfileBytes( + internal static extern HRESULT GetProfileBytes( SafeMILHandle THIS_PTR, uint cbBuffer, /* inout */ byte[] pbBuffer, @@ -940,13 +942,13 @@ out uint pcbActual ); [DllImport(DllImport.MilCore, EntryPoint = "IWICColorContext_GetType_Proxy")] - internal static extern int /* HRESULT */ GetType( + internal static extern HRESULT GetType( SafeMILHandle THIS_PTR, out WICColorContextType pType ); [DllImport(DllImport.MilCore, EntryPoint = "IWICColorContext_GetExifColorSpace_Proxy")] - internal static extern int /* HRESULT */ GetExifColorSpace( + internal static extern HRESULT GetExifColorSpace( SafeMILHandle THIS_PTR, out uint pValue ); @@ -955,7 +957,7 @@ out uint pValue internal static class WICColorTransform { [DllImport(DllImport.WindowsCodecsExt, EntryPoint = "IWICColorTransform_Initialize_Proxy")] - internal static extern int /* HRESULT */ Initialize( + internal static extern HRESULT Initialize( System.Windows.Media.SafeMILHandle /* IWICColorTransform */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IWICBitmapSource */ source, System.Windows.Media.SafeMILHandle /* IWICColorContext */ pIContextSource, @@ -967,20 +969,20 @@ ref Guid pixelFmtDest internal static class WICBitmap { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmap_Lock_Proxy")] - internal static extern int /* HRESULT */ Lock( + internal static extern HRESULT Lock( System.Windows.Media.SafeMILHandle /* IWICBitmap */ THIS_PTR, ref Int32Rect prcLock, LockFlags flags, out SafeMILHandle /* IWICBitmapLock* */ ppILock); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmap_SetResolution_Proxy")] - internal static extern int /* HRESULT */ SetResolution( + internal static extern HRESULT SetResolution( System.Windows.Media.SafeMILHandle /* IWICBitmap */ THIS_PTR, double dpiX, double dpiY); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmap_SetPalette_Proxy")] - internal static extern int /* HRESULT */ SetPalette( + internal static extern HRESULT SetPalette( System.Windows.Media.SafeMILHandle /* IWICBitmap */ THIS_PTR, System.Windows.Media.SafeMILHandle /* IMILPalette */ pIPalette); } @@ -988,13 +990,13 @@ internal static class WICBitmap internal static class WICBitmapLock { [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapLock_GetStride_Proxy")] - internal static extern int /* HRESULT */ GetStride( + internal static extern HRESULT GetStride( SafeMILHandle /* IWICBitmapLock */ pILock, ref uint pcbStride ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "IWICBitmapLock_GetDataPointer_STA_Proxy")] - internal static extern int /* HRESULT */ GetDataPointer( + internal static extern HRESULT GetDataPointer( SafeMILHandle /* IWICBitmapLock */ pILock, ref uint pcbBufferSize, ref IntPtr ppbData @@ -1008,52 +1010,52 @@ internal static class WICCodec internal const int WINCODEC_SDK_VERSION = 0x0236; [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICCreateImagingFactory_Proxy")] - internal static extern int CreateImagingFactory( + internal static extern HRESULT CreateImagingFactory( UInt32 SDKVersion, out IntPtr ppICodecFactory ); [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICConvertBitmapSource")] - internal static extern int /* HRESULT */ WICConvertBitmapSource( + internal static extern HRESULT WICConvertBitmapSource( ref Guid dstPixelFormatGuid, SafeMILHandle /* IWICBitmapSource */ pISrc, out BitmapSourceSafeMILHandle /* IWICBitmapSource* */ ppIDst); [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICSetEncoderFormat_Proxy")] - internal static extern int /* HRESULT */ WICSetEncoderFormat( + internal static extern HRESULT WICSetEncoderFormat( SafeMILHandle /* IWICBitmapSource */ pSourceIn, SafeMILHandle /* IMILPalette */ pIPalette, SafeMILHandle /* IWICBitmapFrameEncode* */ pIFrameEncode, out SafeMILHandle /* IWICBitmapSource** */ ppSourceOut); [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICMapGuidToShortName")]//CASRemoval: - internal static extern int /* HRESULT */ WICMapGuidToShortName( + internal static extern HRESULT WICMapGuidToShortName( ref Guid guid, uint cchName, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzName, ref uint pcchActual); [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICMapShortNameToGuid")]//CASRemoval: - internal static extern int /* HRESULT */ WICMapShortNameToGuid( + internal static extern HRESULT WICMapShortNameToGuid( [MarshalAs(UnmanagedType.LPWStr)] String wzName, ref Guid guid); [DllImport(DllImport.WindowsCodecsExt, EntryPoint = "WICCreateColorTransform_Proxy")] - internal static extern int /* HRESULT */ CreateColorTransform( + internal static extern HRESULT CreateColorTransform( out BitmapSourceSafeMILHandle /* IWICColorTransform */ ppWICColorTransform); [DllImport(DllImport.WindowsCodecs, EntryPoint = "WICCreateColorContext_Proxy")] - internal static extern int /* HRESULT */ CreateColorContext( + internal static extern HRESULT CreateColorContext( IntPtr pICodecFactory, out System.Windows.Media.SafeMILHandle /* IWICColorContext */ ppColorContext); [DllImport("ole32.dll")] - internal static extern int /* HRESULT */ CoInitialize( + internal static extern HRESULT CoInitialize( IntPtr reserved); [DllImport("ole32.dll")] internal static extern void CoUninitialize(); -} + } internal static class Mscms { @@ -1064,7 +1066,7 @@ internal static class Mscms internal static extern bool DeleteColorTransform(IntPtr /* HTRANSFORM */ hColorTransform); [DllImport(DllImport.Mscms, EntryPoint = "TranslateColors")] - internal static extern int /* HRESULT */ TranslateColors(ColorTransformHandle /* HTRANSFORM */ hColorTransform, IntPtr paInputColors, UInt32 nColors, UInt32 ctInput, IntPtr paOutputColors, UInt32 ctOutput); + internal static extern HRESULT TranslateColors(ColorTransformHandle /* HTRANSFORM */ hColorTransform, IntPtr paInputColors, UInt32 nColors, UInt32 ctInput, IntPtr paOutputColors, UInt32 ctOutput); [DllImport(DllImport.Mscms, EntryPoint = "OpenColorProfile")] internal static extern SafeProfileHandle /* HANDLE */ OpenColorProfile(ref MS.Win32.UnsafeNativeMethods.PROFILE pProfile, UInt32 dwDesiredAccess, UInt32 dwShareMode, UInt32 dwCreationMode); @@ -1076,10 +1078,10 @@ internal static class Mscms internal static extern bool GetColorProfileHeader(SafeProfileHandle /* HANDLE */ phProfile, out MS.Win32.UnsafeNativeMethods.PROFILEHEADER pHeader); [DllImport(DllImport.Mscms, CharSet = CharSet.Auto, BestFitMapping = false)] - internal static extern int /* HRESULT */ GetColorDirectory(IntPtr pMachineName, StringBuilder pBuffer, out uint pdwSize); + internal static extern HRESULT GetColorDirectory(IntPtr pMachineName, StringBuilder pBuffer, out uint pdwSize); [DllImport(DllImport.Mscms, CharSet = CharSet.Auto, BestFitMapping = false)] - internal static extern int /* HRESULT */ GetStandardColorSpaceProfile(IntPtr pMachineName, uint dwProfileID, StringBuilder pProfileName, out uint pdwSize); + internal static extern HRESULT GetStandardColorSpaceProfile(IntPtr pMachineName, uint dwProfileID, StringBuilder pProfileName, out uint pdwSize); [DllImport(DllImport.Mscms, EntryPoint = "GetColorProfileFromHandle", SetLastError = true)] internal static extern bool GetColorProfileFromHandle(SafeProfileHandle /* HANDLE */ hProfile, byte[] pBuffer, ref uint pdwSize); @@ -1088,20 +1090,20 @@ internal static class Mscms internal static class MILFactory2 { [DllImport(DllImport.MilCore, EntryPoint = "MILCreateFactory")] - internal static extern int CreateFactory( + internal static extern HRESULT CreateFactory( out IntPtr ppIFactory, UInt32 SDKVersion ); [DllImport(DllImport.MilCore, EntryPoint = "MILFactoryCreateMediaPlayer")] - internal static extern int /*HRESULT*/ CreateMediaPlayer( + internal static extern HRESULT CreateMediaPlayer( IntPtr THIS_PTR, SafeMILHandle /* CEventProxy */ pEventProxy, bool canOpenAllMedia, out SafeMediaHandle /* IMILMedia */ ppMedia); [DllImport(DllImport.MilCore, EntryPoint = "MILFactoryCreateBitmapRenderTarget")] - internal static extern int /* HRESULT */ CreateBitmapRenderTarget( + internal static extern HRESULT CreateBitmapRenderTarget( IntPtr THIS_PTR, UInt32 width, UInt32 height, @@ -1112,7 +1114,7 @@ UInt32 SDKVersion out SafeMILHandle /* IMILRenderTargetBitmap */ ppIRenderTargetBitmap); [DllImport(DllImport.MilCore, EntryPoint = "MILFactoryCreateSWRenderTargetForBitmap")] - internal static extern int /* HRESULT */ CreateBitmapRenderTargetForBitmap( + internal static extern HRESULT CreateBitmapRenderTargetForBitmap( IntPtr THIS_PTR, BitmapSourceSafeMILHandle /* IWICBitmap */ pIBitmap, out SafeMILHandle /* IMILRenderTargetBitmap */ ppIRenderTargetBitmap); @@ -1121,9 +1123,9 @@ UInt32 SDKVersion internal static class InteropDeviceBitmap { internal delegate void FrontBufferAvailableCallback(bool lost, uint version); - + [DllImport(DllImport.MilCore, EntryPoint = "InteropDeviceBitmap_Create")] - internal static extern int Create( + internal static extern HRESULT Create( IntPtr d3dResource, double dpiX, double dpiY, @@ -1141,17 +1143,18 @@ SafeMILHandle pInteropDeviceBitmap ); [DllImport(DllImport.MilCore, EntryPoint = "InteropDeviceBitmap_AddDirtyRect")] - internal static extern int AddDirtyRect( - - int x, - int y, - int w, + internal static extern HRESULT AddDirtyRect( + int x, + int y, + int w, int h, SafeMILHandle pInteropDeviceBitmap ); [DllImport(DllImport.MilCore, EntryPoint = "InteropDeviceBitmap_GetAsSoftwareBitmap")] - internal static extern int GetAsSoftwareBitmap(SafeMILHandle pInteropDeviceBitmap, out BitmapSourceSafeMILHandle pIWICBitmapSource); + internal static extern HRESULT GetAsSoftwareBitmap( + SafeMILHandle pInteropDeviceBitmap, + out BitmapSourceSafeMILHandle pIWICBitmapSource); } } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/mediaeventshelper.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/mediaeventshelper.cs index 056cee85b76..97329e82671 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/mediaeventshelper.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/mediaeventshelper.cs @@ -1,14 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. -// -// - using System.Text; -using MS.Internal; using System.Windows.Threading; using System.IO; +using Windows.Win32.Foundation; namespace System.Windows.Media { @@ -28,28 +25,28 @@ internal class MediaEventsHelper : IInvokable internal MediaEventsHelper(MediaPlayer mediaPlayer) { _mediaOpened = new DispatcherOperationCallback(OnMediaOpened); - this.DispatcherMediaOpened += _mediaOpened; + DispatcherMediaOpened += _mediaOpened; _mediaFailed = new DispatcherOperationCallback(OnMediaFailed); - this.DispatcherMediaFailed += _mediaFailed; + DispatcherMediaFailed += _mediaFailed; _mediaPrerolled = new DispatcherOperationCallback(OnMediaPrerolled); - this.DispatcherMediaPrerolled += _mediaPrerolled; + DispatcherMediaPrerolled += _mediaPrerolled; _mediaEnded = new DispatcherOperationCallback(OnMediaEnded); - this.DispatcherMediaEnded += _mediaEnded; + DispatcherMediaEnded += _mediaEnded; _bufferingStarted = new DispatcherOperationCallback(OnBufferingStarted); - this.DispatcherBufferingStarted += _bufferingStarted; + DispatcherBufferingStarted += _bufferingStarted; _bufferingEnded = new DispatcherOperationCallback(OnBufferingEnded); - this.DispatcherBufferingEnded += _bufferingEnded; + DispatcherBufferingEnded += _bufferingEnded; _scriptCommand = new DispatcherOperationCallback(OnScriptCommand); - this.DispatcherScriptCommand += _scriptCommand; + DispatcherScriptCommand += _scriptCommand; _newFrame = new DispatcherOperationCallback(OnNewFrame); - this.DispatcherMediaNewFrame += _newFrame; + DispatcherMediaNewFrame += _newFrame; SetSender(mediaPlayer); } @@ -231,10 +228,7 @@ internal void RaiseMediaFailed(Exception e) /// void IInvokable.RaiseEvent(byte[] buffer, int cb) { - const int S_OK = 0; - AVEvent avEventType = AVEvent.AVMediaNone; - int failureHr = S_OK; int size = 0; // @@ -261,7 +255,7 @@ void IInvokable.RaiseEvent(byte[] buffer, int cb) // Unpack the event and the errorHResult // avEventType = (AVEvent)reader.ReadUInt32(); - failureHr = (int)reader.ReadUInt32(); + HRESULT failureHr = (HRESULT)reader.ReadUInt32(); switch(avEventType) { @@ -275,7 +269,7 @@ void IInvokable.RaiseEvent(byte[] buffer, int cb) case AVEvent.AVMediaFailed: - RaiseMediaFailed(HRESULT.ConvertHRToException(failureHr)); + RaiseMediaFailed(failureHr.GetExtendedException()); break; case AVEvent.AVMediaBufferingStarted: diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/safemediahandle.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/safemediahandle.cs index 3e486c425ad..79a51fcb821 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/safemediahandle.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/Media/safemediahandle.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,21 +6,17 @@ // using MS.Internal; - +using Windows.Win32.Foundation; using UnsafeNativeMethods = MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media { internal class SafeMediaHandle : SafeMILHandle { - /// - /// internal SafeMediaHandle() { } - /// - /// internal SafeMediaHandle(IntPtr handle) { SetHandle(handle); @@ -28,7 +24,7 @@ internal SafeMediaHandle(IntPtr handle) protected override bool ReleaseHandle() { - HRESULT.Check(MILMedia.Shutdown(handle)); + MILMedia.Shutdown(handle).ThrowOnFailureExtended(); UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref handle); return true; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/OleServicesContext.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/OleServicesContext.cs index 12c60ebf310..b1ccf3291af 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/OleServicesContext.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/OleServicesContext.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,6 +12,7 @@ using System.Windows.Input; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; +using Windows.Win32.Foundation; namespace System.Windows { @@ -72,7 +73,7 @@ internal static OleServicesContext CurrentOleServicesContext OleServicesContext oleServicesContext; // Get the ole services context from the Thread data slot. - oleServicesContext = (OleServicesContext)Thread.GetData(OleServicesContext._threadDataSlot); + oleServicesContext = (OleServicesContext)Thread.GetData(_threadDataSlot); if (oleServicesContext == null) { @@ -80,7 +81,7 @@ internal static OleServicesContext CurrentOleServicesContext oleServicesContext = new OleServicesContext(); // Save the ole services context into the UIContext data slot. - Thread.SetData(OleServicesContext._threadDataSlot, oleServicesContext); + Thread.SetData(_threadDataSlot, oleServicesContext); } return oleServicesContext; @@ -100,7 +101,7 @@ internal static OleServicesContext CurrentOleServicesContext /// /// OleSetClipboard - Call OLE Interopo OleSetClipboard() /// - internal int OleSetClipboard(IComDataObject dataObject) + internal HRESULT OleSetClipboard(IComDataObject dataObject) { if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { @@ -113,7 +114,7 @@ internal int OleSetClipboard(IComDataObject dataObject) /// /// OleGetClipboard - Call OLE Interop OleGetClipboard() /// - internal int OleGetClipboard(ref IComDataObject dataObject) + internal HRESULT OleGetClipboard(ref IComDataObject dataObject) { if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { @@ -126,7 +127,7 @@ internal int OleGetClipboard(ref IComDataObject dataObject) /// /// OleFlushClipboard - Call OLE Interop OleFlushClipboard() /// - internal int OleFlushClipboard() + internal HRESULT OleFlushClipboard() { if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { @@ -138,11 +139,11 @@ internal int OleFlushClipboard() /// /// OleIsCurrentClipboard - OleIsCurrentClipboard only works for the data object - /// used in the OleSetClipboard. This means that it can’t be called by the consumer + /// used in the OleSetClipboard. This means that it can’t be called by the consumer /// of the data object to determine if the object that was on the clipboard at the /// previous OleGetClipboard call is still on the Clipboard. /// - internal int OleIsCurrentClipboard(IComDataObject dataObject) + internal HRESULT OleIsCurrentClipboard(IComDataObject dataObject) { if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { @@ -223,8 +224,6 @@ internal int OleRevokeDragDrop(HandleRef windowHandle) /// private void SetDispatcherThread() { - int hr; - if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA) { throw new ThreadStateException(SR.OleServicesContext_ThreadMustBeSTA); @@ -232,11 +231,11 @@ private void SetDispatcherThread() // Initialize Ole services. // Balanced with OleUninitialize call in OnDispatcherShutdown. - hr = OleInitialize(); + HRESULT result = OleInitialize(); - if (!NativeMethods.Succeeded(hr)) + if (!result.Succeeded) { - throw new SystemException(SR.Format(SR.OleServicesContext_oleInitializeFailure, hr)); + throw new SystemException(SR.Format(SR.OleServicesContext_oleInitializeFailure, result)); } // Add Dispatcher.Shutdown event handler. @@ -266,7 +265,7 @@ private void OnDispatcherShutdown(object sender, EventArgs args) } // Wrapper for UnsafeNativeMethods.OleInitialize, useful for debugging. - private int OleInitialize() + private HRESULT OleInitialize() { #if DEBUG _debugOleInitializeRefCount++; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs index 19b90b15ea1..879ef14bb72 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/clipboard.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -17,6 +17,7 @@ using System.Windows.Media.Imaging; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; +using Windows.Win32.Foundation; namespace System.Windows { @@ -49,16 +50,16 @@ public static void Clear() while (true) { // Clear the system clipboard by calling OleSetClipboard with null parameter. - int hr = OleServicesContext.CurrentOleServicesContext.OleSetClipboard(null); + HRESULT result = OleServicesContext.CurrentOleServicesContext.OleSetClipboard(null); - if (NativeMethods.Succeeded(hr)) + if (result.Succeeded) { break; } if (--i == 0) { - Marshal.ThrowExceptionForHR(hr); + result.ThrowOnFailure(); } Thread.Sleep(OleRetryDelay); @@ -138,16 +139,16 @@ public static void Flush() while (true) { - int hr = OleServicesContext.CurrentOleServicesContext.OleFlushClipboard(); + HRESULT result = OleServicesContext.CurrentOleServicesContext.OleFlushClipboard(); - if (NativeMethods.Succeeded(hr)) + if (result.Succeeded) { break; } if (--i == 0) { - SecurityHelper.ThrowExceptionForHR(hr); + result.ThrowOnFailure(); } Thread.Sleep(OleRetryDelay); @@ -358,7 +359,7 @@ public static IDataObject GetDataObject() /// Data object from the current containing clipboard which the caller /// previously placed on the clipboard. /// - public static bool IsCurrent(IDataObject data) + public static bool IsCurrent(IDataObject data) { bool bReturn; @@ -368,7 +369,7 @@ public static bool IsCurrent(IDataObject data) if (data is IComDataObject) { - int hr; + HRESULT result; // Retry OLE operations several times as mitigation for clipboard locking issues in TS sessions. @@ -376,9 +377,9 @@ public static bool IsCurrent(IDataObject data) while (true) { - hr = OleServicesContext.CurrentOleServicesContext.OleIsCurrentClipboard((IComDataObject)data); + result = OleServicesContext.CurrentOleServicesContext.OleIsCurrentClipboard((IComDataObject)data); - if (NativeMethods.Succeeded(hr) || (--i == 0)) + if (result.Succeeded || (--i == 0)) { break; } @@ -386,13 +387,15 @@ public static bool IsCurrent(IDataObject data) Thread.Sleep(OleRetryDelay); } - if (hr == NativeMethods.S_OK) + if (result == HRESULT.S_OK) { bReturn = true; } - else if (!NativeMethods.Succeeded(hr)) + else if (!result.Succeeded) { - throw new ExternalException("OleIsCurrentClipboard()", hr); +#pragma warning disable CA2201 // Do not raise reserved exception types + throw new ExternalException("OleIsCurrentClipboard()", result); +#pragma warning restore CA2201 } } @@ -480,16 +483,16 @@ internal static void CriticalSetDataObject(object data, bool copy) while (true) { // Clear the system clipboard by calling OleSetClipboard with null parameter. - int hr = OleServicesContext.CurrentOleServicesContext.OleSetClipboard(dataObject); + HRESULT result = OleServicesContext.CurrentOleServicesContext.OleSetClipboard(dataObject); - if (NativeMethods.Succeeded(hr)) + if (result.Succeeded) { break; } if (--i == 0) { - Marshal.ThrowExceptionForHR(hr); + result.ThrowOnFailure(); } Thread.Sleep(OleRetryDelay); @@ -555,9 +558,9 @@ private static bool IsDynamicCodePolicyEnabled() IntPtr entryPoint = UnsafeNativeMethods.GetProcAddressNoThrow(new HandleRef(null, hModule), "WldpIsDynamicCodePolicyEnabled"); if (entryPoint != IntPtr.Zero) { - int hResult = UnsafeNativeMethods.WldpIsDynamicCodePolicyEnabled(out isEnabled); + HRESULT result = UnsafeNativeMethods.WldpIsDynamicCodePolicyEnabled(out isEnabled); - if (hResult != NativeMethods.S_OK) + if (result != HRESULT.S_OK) { isEnabled = false; } @@ -590,16 +593,16 @@ private static IDataObject GetDataObjectInternal() while (true) { oleDataObject = null; - int hr = OleServicesContext.CurrentOleServicesContext.OleGetClipboard(ref oleDataObject); + HRESULT result = OleServicesContext.CurrentOleServicesContext.OleGetClipboard(ref oleDataObject); - if (NativeMethods.Succeeded(hr)) + if (result.Succeeded) { break; } if (--i == 0) { - Marshal.ThrowExceptionForHR(hr); + result.ThrowOnFailure(); } Thread.Sleep(OleRetryDelay); @@ -659,7 +662,7 @@ private static object GetDataInternal(string format) { IDataObject dataObject; - dataObject = Clipboard.GetDataObject(); + dataObject = GetDataObject(); if (dataObject != null) { @@ -702,7 +705,7 @@ private static void SetDataInternal(string format, object data) dataObject = new DataObject(); dataObject.SetData(format, data, autoConvert); - Clipboard.SetDataObject(dataObject, /*copy*/true); + SetDataObject(dataObject, copy: true); } /// diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/dataobject.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/dataobject.cs index e5f24310b5d..ab74bd839ec 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/dataobject.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/System/Windows/dataobject.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -16,6 +16,7 @@ using System.Windows.Media.Imaging; using System.Text; using MS.Internal; +using Windows.Win32.Foundation; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; @@ -549,7 +550,7 @@ int IComDataObject.DAdvise(ref FORMATETC pFormatetc, ADVF advf, IAdviseSink pAdv return ((OleConverter)_innerData).OleDataObject.DAdvise(ref pFormatetc, advf, pAdvSink, out pdwConnection); } pdwConnection = 0; - return (NativeMethods.E_NOTIMPL); + return HRESULT.E_NOTIMPL; } /// @@ -563,8 +564,8 @@ void IComDataObject.DUnadvise(int dwConnection) return; } - // Throw the exception NativeMethods.E_NOTIMPL. - Marshal.ThrowExceptionForHR(NativeMethods.E_NOTIMPL); + // Throw the exception HRESULT.E_NOTIMPL. + HRESULT.E_NOTIMPL.ThrowOnFailure(); } /// @@ -577,7 +578,7 @@ int IComDataObject.EnumDAdvise(out IEnumSTATDATA enumAdvise) return ((OleConverter)_innerData).OleDataObject.EnumDAdvise(out enumAdvise); } enumAdvise = null; - return (OLE_E_ADVISENOTSUPPORTED); + return HRESULT.OLE_E_ADVISENOTSUPPORTED; } // @@ -595,7 +596,7 @@ IEnumFORMATETC IComDataObject.EnumFormatEtc(DATADIR dwDirection) } else { - throw new ExternalException(SR.Format(SR.DataObject_NotImplementedEnumFormatEtc, dwDirection), NativeMethods.E_NOTIMPL); + throw new ExternalException(SR.Format(SR.DataObject_NotImplementedEnumFormatEtc, dwDirection), HRESULT.E_NOTIMPL); } } @@ -610,7 +611,8 @@ int IComDataObject.GetCanonicalFormatEtc(ref FORMATETC pformatetcIn, out FORMATE if (pformatetcIn.lindex != -1) { - return DV_E_LINDEX; + // return HRESULT.DV_E_LINDEX; + return (HRESULT)(-2147221400); } if (_innerData is OleConverter) @@ -618,7 +620,8 @@ int IComDataObject.GetCanonicalFormatEtc(ref FORMATETC pformatetcIn, out FORMATE return ((OleConverter)_innerData).OleDataObject.GetCanonicalFormatEtc(ref pformatetcIn, out pformatetcOut); } - return DATA_S_SAMEFORMATETC; + // return HRESULT.DATA_S_SAMEFORMATETC; + return (HRESULT)262448; } /// @@ -632,9 +635,7 @@ void IComDataObject.GetData(ref FORMATETC formatetc, out STGMEDIUM medium) return; } - int hr; - - hr = DV_E_TYMED; + HRESULT result = HRESULT.DV_E_TYMED; medium = new STGMEDIUM(); @@ -649,9 +650,9 @@ void IComDataObject.GetData(ref FORMATETC formatetc, out STGMEDIUM medium) | NativeMethods.GMEM_ZEROINIT, (IntPtr)1); - hr = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); + result = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); - if (NativeMethods.Failed(hr)) + if (result.Failed) { Win32GlobalFree(new HandleRef(this, medium.unionmember)); } @@ -661,15 +662,15 @@ void IComDataObject.GetData(ref FORMATETC formatetc, out STGMEDIUM medium) medium.tymed = TYMED.TYMED_ISTREAM; IStream istream = null; - hr = Win32CreateStreamOnHGlobal(IntPtr.Zero, true /*deleteOnRelease*/, ref istream); - if ( NativeMethods.Succeeded(hr) ) + result = Win32CreateStreamOnHGlobal(IntPtr.Zero, true /*deleteOnRelease*/, ref istream); + if (result.Succeeded) { medium.unionmember = Marshal.GetComInterfaceForObject(istream, typeof(IStream)); Marshal.ReleaseComObject(istream); - hr = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); + result = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); - if ( NativeMethods.Failed(hr) ) + if (result.Failed) { Marshal.Release(medium.unionmember); } @@ -678,16 +679,15 @@ void IComDataObject.GetData(ref FORMATETC formatetc, out STGMEDIUM medium) else { medium.tymed = formatetc.tymed; - hr = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); + result = OleGetDataUnrestricted(ref formatetc, ref medium, false /* doNotReallocate */); } } // Make sure we zero out that pointer if we don't support the format. - if (NativeMethods.Failed(hr)) + if (result.Failed) { medium.unionmember = IntPtr.Zero; - - Marshal.ThrowExceptionForHR(hr); + result.ThrowOnFailure(); } } @@ -703,14 +703,10 @@ void IComDataObject.GetDataHere(ref FORMATETC formatetc, ref STGMEDIUM medium) medium.tymed != TYMED.TYMED_HGLOBAL && medium.tymed != TYMED.TYMED_FILE) { - Marshal.ThrowExceptionForHR(DV_E_TYMED); + HRESULT.DV_E_TYMED.ThrowOnFailure(); } - int hr = OleGetDataUnrestricted(ref formatetc, ref medium, true /* doNotReallocate */); - if (NativeMethods.Failed(hr)) - { - Marshal.ThrowExceptionForHR(hr); - } + OleGetDataUnrestricted(ref formatetc, ref medium, doNotReallocate: true).ThrowOnFailure(); } /// @@ -728,27 +724,27 @@ int IComDataObject.QueryGetData(ref FORMATETC formatetc) { if (formatetc.cfFormat == 0) { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } else { if (!GetDataPresent(DataFormats.GetDataFormat(formatetc.cfFormat).Name)) { - return (DV_E_FORMATETC); + return HRESULT.DV_E_FORMATETC; } } } else { - return (DV_E_TYMED); + return HRESULT.DV_E_TYMED; } } else { - return (DV_E_DVASPECT); + return HRESULT.DV_E_DVASPECT; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -762,7 +758,7 @@ void IComDataObject.SetData(ref FORMATETC pFormatetcIn, ref STGMEDIUM pmedium, b return; } - Marshal.ThrowExceptionForHR(NativeMethods.E_NOTIMPL); + Marshal.ThrowExceptionForHR(HRESULT.E_NOTIMPL); } //...................................................... @@ -982,15 +978,9 @@ internal static IntPtr Win32GlobalAlloc(int flags, IntPtr bytes) /// /// Call Win32 UnsafeNativeMethods.CreateStreamOnHGlobal() with Win32 error checking. /// - private static int Win32CreateStreamOnHGlobal(IntPtr hGlobal, bool fDeleteOnRelease, ref IStream istream) + private static HRESULT Win32CreateStreamOnHGlobal(IntPtr hGlobal, bool fDeleteOnRelease, ref IStream istream) { - int hr = UnsafeNativeMethods.CreateStreamOnHGlobal(hGlobal, fDeleteOnRelease, ref istream); - if ( NativeMethods.Failed(hr) ) - { - Marshal.ThrowExceptionForHR(hr); - } - - return hr; + return UnsafeNativeMethods.CreateStreamOnHGlobal(hGlobal, fDeleteOnRelease, ref istream).ThrowOnFailure(); } /// @@ -1238,13 +1228,13 @@ internal static string[] GetMappedFormats(string format) /// Behaves like IComDataObject.GetData and IComDataObject.GetDataHere, /// except we make no restrictions TYMED values. /// - private int OleGetDataUnrestricted(ref FORMATETC formatetc, ref STGMEDIUM medium, bool doNotReallocate) + private HRESULT OleGetDataUnrestricted(ref FORMATETC formatetc, ref STGMEDIUM medium, bool doNotReallocate) { if (_innerData is OleConverter) { ((OleConverter)_innerData).OleDataObject.GetDataHere(ref formatetc, ref medium); - return NativeMethods.S_OK; + return HRESULT.S_OK; } return GetDataIntoOleStructs(ref formatetc, ref medium, doNotReallocate); @@ -1407,11 +1397,9 @@ private IntPtr GetEnhancedMetafileHandle(String format, object data) /// Populates Ole datastructes from a WinForms dataObject. This is the core /// of WinForms to OLE conversion. /// - private int GetDataIntoOleStructs(ref FORMATETC formatetc, ref STGMEDIUM medium, bool doNotReallocate) + private HRESULT GetDataIntoOleStructs(ref FORMATETC formatetc, ref STGMEDIUM medium, bool doNotReallocate) { - int hr; - - hr = DV_E_TYMED; + HRESULT result = HRESULT.DV_E_TYMED; if (GetTymedUseable(formatetc.tymed) && GetTymedUseable(medium.tymed)) { @@ -1420,7 +1408,7 @@ private int GetDataIntoOleStructs(ref FORMATETC formatetc, ref STGMEDIUM medium, format = DataFormats.GetDataFormat(formatetc.cfFormat).Name; // set the default result with DV_E_FORMATETC. - hr = DV_E_FORMATETC; + result = HRESULT.DV_E_FORMATETC; if (GetDataPresent(format)) { @@ -1429,78 +1417,76 @@ private int GetDataIntoOleStructs(ref FORMATETC formatetc, ref STGMEDIUM medium, data = GetData(format); // set the default result with DV_E_TYMED. - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; if ((formatetc.tymed & TYMED.TYMED_HGLOBAL) != 0) { - hr = GetDataIntoOleStructsByTypeMedimHGlobal(format, data, ref medium, doNotReallocate); + result = GetDataIntoOleStructsByTypeMedimHGlobal(format, data, ref medium, doNotReallocate); } else if ( ( formatetc.tymed & TYMED.TYMED_GDI ) != 0 ) { - hr = GetDataIntoOleStructsByTypeMediumGDI(format, data, ref medium); + result = GetDataIntoOleStructsByTypeMediumGDI(format, data, ref medium); } else if ( ( formatetc.tymed & TYMED.TYMED_ENHMF ) != 0 ) { - hr = GetDataIntoOleStructsByTypeMediumEnhancedMetaFile(format, data, ref medium); + result = GetDataIntoOleStructsByTypeMediumEnhancedMetaFile(format, data, ref medium); } else if ( ( formatetc.tymed & TYMED.TYMED_ISTREAM ) != 0 ) { - hr = GetDataIntoOleStructsByTypeMedimIStream(format, data, ref medium); + result = GetDataIntoOleStructsByTypeMedimIStream(format, data, ref medium); } } } - return hr; + return result; } /// /// Populates Ole data structes from a dataObject that is TYMED_HGLOBAL. /// - private int GetDataIntoOleStructsByTypeMedimHGlobal(string format, object data, ref STGMEDIUM medium, bool doNotReallocate) + private HRESULT GetDataIntoOleStructsByTypeMedimHGlobal(string format, object data, ref STGMEDIUM medium, bool doNotReallocate) { - int hr; - - hr = NativeMethods.E_FAIL; + HRESULT result = HRESULT.E_FAIL; if (data is Stream) { - hr = SaveStreamToHandle(medium.unionmember, (Stream)data, doNotReallocate); + result = SaveStreamToHandle(medium.unionmember, (Stream)data, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.Html) || IsFormatEqual(format, DataFormats.Xaml)) { // Save Html and Xaml data string as UTF8 encoding. - hr = SaveStringToHandleAsUtf8(medium.unionmember, data.ToString(), doNotReallocate); + result = SaveStringToHandleAsUtf8(medium.unionmember, data.ToString(), doNotReallocate); } else if (IsFormatEqual(format, DataFormats.Text) || IsFormatEqual(format, DataFormats.Rtf) || IsFormatEqual(format, DataFormats.OemText) || IsFormatEqual(format, DataFormats.CommaSeparatedValue)) { - hr = SaveStringToHandle(medium.unionmember, data.ToString(), false /* unicode */, doNotReallocate); + result = SaveStringToHandle(medium.unionmember, data.ToString(), false /* unicode */, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.UnicodeText)|| IsFormatEqual(format, DataFormats.ApplicationTrust)) { - hr = SaveStringToHandle(medium.unionmember, data.ToString(), true /* unicode */, doNotReallocate); + result = SaveStringToHandle(medium.unionmember, data.ToString(), true /* unicode */, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.FileDrop)) { - hr = SaveFileListToHandle(medium.unionmember, (string[])data, doNotReallocate); + result = SaveFileListToHandle(medium.unionmember, (string[])data, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.FileName)) { string[] filelist; filelist = (string[])data; - hr = SaveStringToHandle(medium.unionmember, filelist[0], false /* unicode */, doNotReallocate); + result = SaveStringToHandle(medium.unionmember, filelist[0], false /* unicode */, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.FileNameW)) { string[] filelist; filelist = (string[])data; - hr = SaveStringToHandle(medium.unionmember, filelist[0], true /* unicode */, doNotReallocate); + result = SaveStringToHandle(medium.unionmember, filelist[0], true /* unicode */, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.Dib) && SystemDrawingHelper.IsImage(data)) @@ -1508,65 +1494,64 @@ private int GetDataIntoOleStructsByTypeMedimHGlobal(string format, object data, // GDI+ does not properly handle saving to DIB images. Since the // clipboard will take an HBITMAP and publish a Dib, we don't need // to support this. - // - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; } else if (IsFormatEqual(format, typeof(BitmapSource).FullName)) { // Save the System.Drawing.Bitmap or BitmapSource data to handle as BitmapSource - hr = SaveSystemBitmapSourceToHandle(medium.unionmember, data, doNotReallocate); + result = SaveSystemBitmapSourceToHandle(medium.unionmember, data, doNotReallocate); } else if (IsFormatEqual(format, SystemDrawingBitmapFormat)) { // Save the System.Drawing.Bitmap or BitmapSource data to handle as System.Drawing.Bitmap - hr = SaveSystemDrawingBitmapToHandle(medium.unionmember, data, doNotReallocate); + result = SaveSystemDrawingBitmapToHandle(medium.unionmember, data, doNotReallocate); } else if (IsFormatEqual(format, DataFormats.EnhancedMetafile) || SystemDrawingHelper.IsMetafile(data)) { // We don't need to support the enhanced metafile for TYMED.TYMED_HGLOBAL, // since we directly support TYMED.TYMED_ENHMF. - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; } #pragma warning disable SYSLIB0050 else if (IsFormatEqual(format, DataFormats.Serializable) || data is ISerializable || (data != null && data.GetType().IsSerializable)) { - hr = SaveObjectToHandle(medium.unionmember, data, doNotReallocate); + result = SaveObjectToHandle(medium.unionmember, data, doNotReallocate); } #pragma warning restore SYSLIB0050 else { // Couldn't find the proper data for the current TYMED_HGLOBAL - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; } - if (hr == NativeMethods.S_OK) + if (result == HRESULT.S_OK) { medium.tymed = TYMED.TYMED_HGLOBAL; } - return hr; + return result; } /// /// Populates Ole data structes from a dataObject that is TYMED_ISTREAM. /// - private int GetDataIntoOleStructsByTypeMedimIStream(string format, object data, ref STGMEDIUM medium) + private HRESULT GetDataIntoOleStructsByTypeMedimIStream(string format, object data, ref STGMEDIUM medium) { IStream istream = (IStream)( Marshal.GetObjectForIUnknown(medium.unionmember) ); if ( istream == null ) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } - int hr = NativeMethods.E_FAIL; + HRESULT result = HRESULT.E_FAIL; try { // If the format is ISF, we should copy the data from the managed stream to the COM IStream object. - if ( format == System.Windows.Ink.StrokeCollection.InkSerializedFormat ) + if (format == Ink.StrokeCollection.InkSerializedFormat) { Stream inkStream = data as Stream; @@ -1579,7 +1564,7 @@ private int GetDataIntoOleStructsByTypeMedimIStream(string format, object data, inkStream.ReadExactly(buffer); istream.Write(buffer, NativeMethods.IntPtrToInt32(size), IntPtr.Zero); - hr = NativeMethods.S_OK; + result = HRESULT.S_OK; } } } @@ -1588,22 +1573,20 @@ private int GetDataIntoOleStructsByTypeMedimIStream(string format, object data, Marshal.ReleaseComObject(istream); } - if ( NativeMethods.Succeeded(hr) ) + if (result.Succeeded) { medium.tymed = TYMED.TYMED_ISTREAM; } - return hr; + return result; } /// /// Populates Ole data structes from a dataObject that is TYMED_GDI. /// - private int GetDataIntoOleStructsByTypeMediumGDI(string format, object data, ref STGMEDIUM medium) + private HRESULT GetDataIntoOleStructsByTypeMediumGDI(string format, object data, ref STGMEDIUM medium) { - int hr; - - hr = NativeMethods.E_FAIL; + HRESULT result = HRESULT.E_FAIL; if (IsFormatEqual(format, DataFormats.Bitmap) && (SystemDrawingHelper.IsBitmap(data) || IsDataSystemBitmapSource(data))) @@ -1618,27 +1601,25 @@ private int GetDataIntoOleStructsByTypeMediumGDI(string format, object data, ref medium.tymed = TYMED.TYMED_GDI; medium.unionmember = hBitmap; - hr = NativeMethods.S_OK; + result = HRESULT.S_OK; } } else { // Couldn't find the proper data for the current TYMED_GDI - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; } - return hr; + return result; } /// /// Populates Ole data structes from a dataObject that is TYMED_ENHMF. /// - private int GetDataIntoOleStructsByTypeMediumEnhancedMetaFile(string format, object data, ref STGMEDIUM medium) + private HRESULT GetDataIntoOleStructsByTypeMediumEnhancedMetaFile(string format, object data, ref STGMEDIUM medium) { IntPtr hMetafile; - int hr; - - hr = NativeMethods.E_FAIL; + HRESULT result = HRESULT.E_FAIL; if (IsFormatEqual(format, DataFormats.EnhancedMetafile)) { @@ -1651,19 +1632,19 @@ private int GetDataIntoOleStructsByTypeMediumEnhancedMetaFile(string format, obj medium.tymed = TYMED.TYMED_ENHMF; medium.unionmember = hMetafile; - hr = NativeMethods.S_OK; + result = HRESULT.S_OK; } } else { // Couldn't find the proper data for the current TYMED_ENHMF - hr = DV_E_TYMED; + result = HRESULT.DV_E_TYMED; } - return hr; + return result; } #pragma warning disable SYSLIB0011 // Type or member is obsolete - private int SaveObjectToHandle(IntPtr handle, Object data, bool doNotReallocate) + private HRESULT SaveObjectToHandle(IntPtr handle, Object data, bool doNotReallocate) { Stream stream; BinaryWriter binaryWriter; @@ -1693,6 +1674,7 @@ private int SaveObjectToHandle(IntPtr handle, Object data, bool doNotReallocate) formatter.Serialize(stream, data); #pragma warning restore SYSLIB0011 // BinaryFormatter is obsolete } + return SaveStreamToHandle(handle, stream, doNotReallocate); } } @@ -1702,22 +1684,22 @@ private int SaveObjectToHandle(IntPtr handle, Object data, bool doNotReallocate) /// /// Saves stream out to handle. /// - private int SaveStreamToHandle(IntPtr handle, Stream stream, bool doNotReallocate) + private HRESULT SaveStreamToHandle(IntPtr handle, Stream stream, bool doNotReallocate) { IntPtr size; IntPtr ptr; if (handle == IntPtr.Zero) { - return (NativeMethods.E_INVALIDARG); + return HRESULT.E_INVALIDARG; } size = (IntPtr)stream.Length; - int hr = EnsureMemoryCapacity(ref handle, NativeMethods.IntPtrToInt32(size), doNotReallocate); - if (NativeMethods.Failed(hr)) + HRESULT result = EnsureMemoryCapacity(ref handle, NativeMethods.IntPtrToInt32(size), doNotReallocate); + if (result.Failed) { - return hr; + return result; } ptr = Win32GlobalLock(new HandleRef(this, handle)); @@ -1736,13 +1718,13 @@ private int SaveStreamToHandle(IntPtr handle, Stream stream, bool doNotReallocat Win32GlobalUnlock(new HandleRef(this, handle)); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// Save the System.Drawing.Bitmap or BitmapSource data to handle as BitmapSource. /// - private int SaveSystemBitmapSourceToHandle(IntPtr handle, Object data, bool doNotReallocate) + private HRESULT SaveSystemBitmapSourceToHandle(IntPtr handle, Object data, bool doNotReallocate) { BitmapSource bitmapSource; Stream bitmapStream; @@ -1780,7 +1762,7 @@ private int SaveSystemBitmapSourceToHandle(IntPtr handle, Object data, bool doNo /// /// Save the System.Drawing.Bitmap or BitmapSource data to handle as System.Drawing.Bitmap. /// - private int SaveSystemDrawingBitmapToHandle(IntPtr handle, Object data, bool doNotReallocate) + private HRESULT SaveSystemDrawingBitmapToHandle(IntPtr handle, Object data, bool doNotReallocate) { object systemDrawingBitmap = SystemDrawingHelper.GetBitmap(data); @@ -1792,7 +1774,7 @@ private int SaveSystemDrawingBitmapToHandle(IntPtr handle, Object data, bool doN /// /// Saves a list of files out to the handle in HDROP format. /// - private int SaveFileListToHandle(IntPtr handle, string[] files, bool doNotReallocate) + private HRESULT SaveFileListToHandle(IntPtr handle, string[] files, bool doNotReallocate) { IntPtr currentPtr; Int32 baseStructSize; @@ -1802,18 +1784,18 @@ private int SaveFileListToHandle(IntPtr handle, string[] files, bool doNotReallo if (files == null || files.Length < 1) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } if (handle == IntPtr.Zero) { - return (NativeMethods.E_INVALIDARG); + return HRESULT.E_INVALIDARG; } if (Marshal.SystemDefaultCharSize == 1) { Invariant.Assert(false, "Expected the system default char size to be 2 for Unicode systems."); - return (NativeMethods.E_INVALIDARG); + return HRESULT.E_INVALIDARG; } currentPtr = IntPtr.Zero; @@ -1829,10 +1811,10 @@ private int SaveFileListToHandle(IntPtr handle, string[] files, bool doNotReallo // Add the extra 2bytes since it is unicode. sizeInBytes += 2; - int hr = EnsureMemoryCapacity(ref handle, sizeInBytes, doNotReallocate); - if (NativeMethods.Failed(hr)) + HRESULT result = EnsureMemoryCapacity(ref handle, sizeInBytes, doNotReallocate); + if (result.Failed) { - return hr; + return result; } basePtr = Win32GlobalLock(new HandleRef(this, handle)); @@ -1884,18 +1866,18 @@ private int SaveFileListToHandle(IntPtr handle, string[] files, bool doNotReallo Win32GlobalUnlock(new HandleRef(this, handle)); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// Save string to handle. If unicode is set to true /// then the string is saved as unicode, else it is saves as DBCS. /// - private int SaveStringToHandle(IntPtr handle, string str, bool unicode, bool doNotReallocate) + private HRESULT SaveStringToHandle(IntPtr handle, string str, bool unicode, bool doNotReallocate) { if (handle == IntPtr.Zero) { - return (NativeMethods.E_INVALIDARG); + return HRESULT.E_INVALIDARG; } if (unicode) @@ -1906,10 +1888,10 @@ private int SaveStringToHandle(IntPtr handle, string str, bool unicode, bool doN byteSize = (str.Length*2 + 2); - int hr = EnsureMemoryCapacity(ref handle, byteSize, doNotReallocate); - if (NativeMethods.Failed(hr)) + HRESULT result = EnsureMemoryCapacity(ref handle, byteSize, doNotReallocate); + if (result.Failed) { - return hr; + return result; } ptr = Win32GlobalLock(new HandleRef(this, handle)); @@ -1964,10 +1946,10 @@ private int SaveStringToHandle(IntPtr handle, string str, bool unicode, bool doN } // Ensure memory allocation and copy multi byte data with the null terminate - int hr = EnsureMemoryCapacity(ref handle, pinvokeSize + 1, doNotReallocate); - if (NativeMethods.Failed(hr)) + HRESULT result = EnsureMemoryCapacity(ref handle, pinvokeSize + 1, doNotReallocate); + if (result.Failed) { - return hr; + return result; } ptr = Win32GlobalLock(new HandleRef(this, handle)); @@ -1990,14 +1972,14 @@ private int SaveStringToHandle(IntPtr handle, string str, bool unicode, bool doN } } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// /// Save string to handle as UTF8 encoding. /// Html and Xaml data format will be save as UTF8 encoding. /// - private int SaveStringToHandleAsUtf8(IntPtr handle, string str, bool doNotReallocate) + private HRESULT SaveStringToHandleAsUtf8(IntPtr handle, string str, bool doNotReallocate) { IntPtr pointerUtf8; byte[] utf8Bytes; @@ -2006,7 +1988,7 @@ private int SaveStringToHandleAsUtf8(IntPtr handle, string str, bool doNotReallo if (handle == IntPtr.Zero) { - return (NativeMethods.E_INVALIDARG); + return HRESULT.E_INVALIDARG; } // Create UTF8Encoding instance to convert the string to UFT8 from GetBytes. @@ -2018,10 +2000,10 @@ private int SaveStringToHandleAsUtf8(IntPtr handle, string str, bool doNotReallo // Create byte array and assign UTF8 encoding. utf8Bytes = utf8Encoding.GetBytes(str); - int hr = EnsureMemoryCapacity(ref handle, utf8ByteCount + 1, doNotReallocate); - if (NativeMethods.Failed(hr)) + HRESULT result = EnsureMemoryCapacity(ref handle, utf8ByteCount + 1, doNotReallocate); + if (result.Failed) { - return hr; + return result; } pointerUtf8 = Win32GlobalLock(new HandleRef(this, handle)); @@ -2045,7 +2027,7 @@ private int SaveStringToHandleAsUtf8(IntPtr handle, string str, bool doNotReallo Win32GlobalUnlock(new HandleRef(this, handle)); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -2117,9 +2099,9 @@ private static bool IsFormatEqual(string format1, string format2) /// If doNotReallocate is false, this method will always realloc the original /// handle to fit minimumByteCount tightly. /// - private int EnsureMemoryCapacity(ref IntPtr handle, Int32 minimumByteCount, bool doNotReallocate) + private HRESULT EnsureMemoryCapacity(ref IntPtr handle, Int32 minimumByteCount, bool doNotReallocate) { - int hr = NativeMethods.S_OK; + HRESULT result = HRESULT.S_OK; if (doNotReallocate) { @@ -2127,7 +2109,9 @@ private int EnsureMemoryCapacity(ref IntPtr handle, Int32 minimumByteCount, bool if (byteCount < minimumByteCount) { handle = IntPtr.Zero; - hr = STG_E_MEDIUMFULL; + + // HRESULT.STG_E_MEDIUMFULL; Replace when added to System.Private.Windows.Core. + result = (HRESULT)(-2147286928); } } else @@ -2140,11 +2124,11 @@ private int EnsureMemoryCapacity(ref IntPtr handle, Int32 minimumByteCount, bool if (handle == IntPtr.Zero) { - hr = NativeMethods.E_OUTOFMEMORY; + result = HRESULT.E_OUTOFMEMORY; } } - return hr; + return result; } /// @@ -2209,15 +2193,6 @@ private static object EnsureBitmapDataFromFormat(string format, bool autoConvert private const string SystemBitmapSourceFormat = "System.Windows.Media.Imaging.BitmapSource"; private const string SystemDrawingImagingMetafileFormat = "System.Drawing.Imaging.Metafile"; - private const int DV_E_FORMATETC = unchecked((int)0x80040064); - private const int DV_E_LINDEX = unchecked((int)0x80040068); - private const int DV_E_TYMED = unchecked((int)0x80040069); - private const int DV_E_DVASPECT = unchecked((int)0x8004006B); - private const int OLE_E_NOTRUNNING = unchecked((int)0x80040005); - private const int OLE_E_ADVISENOTSUPPORTED = unchecked((int)0x80040003); - private const int DATA_S_SAMEFORMATETC = unchecked((int)0x00040130); - private const int STG_E_MEDIUMFULL = unchecked((int)0x80030070); - // Const integer base size of the file drop list: "4 + 8 + 4 + 4" private const int FILEDROPBASESIZE = 20; @@ -2326,12 +2301,12 @@ public int Next(int celt, FORMATETC[] rgelt, int[] pceltFetched) if (rgelt == null) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } for (int i = 0; i < celt && _current < _formats.Length; i++) { - rgelt[i] = _formats[this._current]; + rgelt[i] = _formats[_current]; _current++; fetched++; } @@ -2341,7 +2316,7 @@ public int Next(int celt, FORMATETC[] rgelt, int[] pceltFetched) pceltFetched[0] = fetched; } - return (fetched == celt) ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return (fetched == celt) ? HRESULT.S_OK : HRESULT.S_FALSE; } // IEnumFORMATETC.Skip implementation. @@ -2350,14 +2325,14 @@ public int Skip(int celt) // Make sure we don't overflow on the skip. _current = _current + (int)Math.Min(celt, Int32.MaxValue - _current); - return (_current < _formats.Length) ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return (_current < _formats.Length) ? HRESULT.S_OK : HRESULT.S_FALSE; } // IEnumFORMATETC.Reset implementation. public int Reset() { _current = 0; - return NativeMethods.S_OK; + return HRESULT.S_OK; } // IEnumFORMATETC.Clone implementation. @@ -2494,7 +2469,7 @@ public string[] GetFormats(bool autoConvert) { retrieved[0] = 0; - if (enumFORMATETC.Next(1, formatetc, retrieved) == NativeMethods.S_OK && retrieved[0] > 0) + if (enumFORMATETC.Next(1, formatetc, retrieved) == HRESULT.S_OK && retrieved[0] > 0) { string name; @@ -2694,7 +2669,7 @@ private Object GetDataFromOleIStream(string format, DVASPECT aspect, int index) object outData = null; - if (NativeMethods.S_OK == QueryGetDataInner(ref formatetc)) + if (HRESULT.S_OK == QueryGetDataInner(ref formatetc)) { GetDataInner(ref formatetc, out medium); try @@ -2866,7 +2841,7 @@ private object GetDataFromOleHGLOBAL(string format, DVASPECT aspect, int index) data = null; - if (NativeMethods.S_OK == QueryGetDataInner(ref formatetc)) + if (HRESULT.S_OK == QueryGetDataInner(ref formatetc)) { GetDataInner(ref formatetc, out medium); try @@ -2923,7 +2898,7 @@ private Object GetDataFromOleOther(string format, DVASPECT aspect, int index) data = null; - if (NativeMethods.S_OK == QueryGetDataInner(ref formatetc)) + if (HRESULT.S_OK == QueryGetDataInner(ref formatetc)) { GetDataInner(ref formatetc, out medium); try @@ -3246,7 +3221,7 @@ private bool GetDataPresentInner(string format, DVASPECT aspect, int index) hr = QueryGetDataInner(ref formatetc); - return (hr == NativeMethods.S_OK); + return hr == HRESULT.S_OK; } private int QueryGetDataInner(ref FORMATETC formatetc) @@ -3270,7 +3245,7 @@ private IEnumFORMATETC EnumFormatEtcInner(DATADIR dwDirection) /// We need a separate method to avoid loading the System.Drawing assembly /// when unnecessary. /// - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + [System.Runtime.CompilerServices.MethodImpl(Runtime.CompilerServices.MethodImplOptions.NoInlining)] private Object GetBitmapSourceFromHbitmap(IntPtr hbitmap) { return Imaging.CreateBitmapSourceFromHBitmap( @@ -3426,7 +3401,7 @@ public string[] GetFormats(bool autoConvert) dataStoreIndex < entries.Length; dataStoreIndex++) { - if (DataObject.IsFormatAndDataSerializable(cur[mappedFormatIndex], entries[dataStoreIndex].Data)) + if (IsFormatAndDataSerializable(cur[mappedFormatIndex], entries[dataStoreIndex].Data)) { if (serializationCheckFailedForThisFunction) { @@ -3461,7 +3436,7 @@ public string[] GetFormats(bool autoConvert) public void SetData(Object data) { if (data is ISerializable - && !this._data.ContainsKey(DataFormats.Serializable)) + && !_data.ContainsKey(DataFormats.Serializable)) { SetData(DataFormats.Serializable, data); } @@ -3633,7 +3608,7 @@ private void SetData(string format, Object data, bool autoConvert, DVASPECT aspe DataStoreEntry[] datalist; dse = new DataStoreEntry(data, autoConvert, aspect, index); - datalist = (DataStoreEntry[])this._data[format]; + datalist = (DataStoreEntry[])_data[format]; if (datalist == null) { @@ -3649,7 +3624,7 @@ private void SetData(string format, Object data, bool autoConvert, DVASPECT aspe } datalist[0] = dse; - this._data[format] = datalist; + _data[format] = datalist; } private DataStoreEntry FindDataStoreEntry(string format, DVASPECT aspect, int index) @@ -3738,10 +3713,10 @@ private class DataStoreEntry public DataStoreEntry(Object data, bool autoConvert, DVASPECT aspect, int index) { - this._data = data; - this._autoConvert = autoConvert; - this._aspect = aspect; - this._index = index; + _data = data; + _autoConvert = autoConvert; + _aspect = aspect; + _index = index; } #endregion Constructors diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationCore/Windows/Win32/Foundation/HResultExtensions.cs b/src/Microsoft.DotNet.Wpf/src/PresentationCore/Windows/Win32/Foundation/HResultExtensions.cs new file mode 100644 index 00000000000..e946bf93d48 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/PresentationCore/Windows/Win32/Foundation/HResultExtensions.cs @@ -0,0 +1,300 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#nullable enable + +using System.Diagnostics.CodeAnalysis; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; +using System.Windows.Media; +using Windows.Win32.System.Diagnostics.Debug; + +namespace Windows.Win32.Foundation; + +internal static class HResultExtensions +{ + /// + /// Extended version of that special cases WIC and MIL errors. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void ThrowOnFailureExtended(this HRESULT result) + { + if (!result.Failed) + { + return; + } + + // Separate method to facilitate inlining. + result.ThrowOnFailureExtendedPrivate(); + } + + [DoesNotReturn] + [MethodImpl(MethodImplOptions.NoInlining)] + private static void ThrowOnFailureExtendedPrivate(this HRESULT result) => throw result.GetExtendedException(); + + /// + /// Helper that gets gets exceptions with special casing for WIC and MIL errors. Callers should check + /// before calling this method. + /// + internal static Exception GetExtendedException(this HRESULT result) + { + Debug.Assert(result.Failed); + + if (result.IsNtStatus() && result.ToNtStatus() == NTSTATUS.STATUS_NO_MEMORY) + { + // We historically threw this. +#pragma warning disable CA2201 // Do not raise reserved exception types + return new OutOfMemoryException(); +#pragma warning restore CA2201 + } + + // Pass -1 to ignore current IErrorInfo. + Exception exception = Marshal.GetExceptionForHR(result, -1) + ?? new InvalidOperationException() { HResult = result.Value }; + + FACILITY_CODE facility = result.Facility; + + if (facility == FACILITY_CODE.FACILITY_WIN32) + { + WIN32_ERROR error = (WIN32_ERROR)result.Code; + + return error switch + { + // This is what WINCODEC_ERR_VALUEOVERFLOW is defined to. + WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW => new OverflowException(SR.Image_Overflow, exception), + // Previously checked directly as 0x80070057. + WIN32_ERROR.ERROR_INVALID_PARAMETER => new ArgumentException(SR.Media_InvalidArgument, exception), + // Previously checked directly as 0x800707db. + WIN32_ERROR.ERROR_INVALID_PROFILE => new FileFormatException(null, SR.Image_InvalidColorContext, exception), + _ => exception, + }; + } + else if (facility == FACILITY_CODE.FACILITY_MEDIASERVER) + { + if (result == MediaPlayerErrors.NS_E_WMP_LOGON_FAILURE) + { + return new SecurityException(SR.Media_LogonFailure, exception); + } + else if (result == MediaPlayerErrors.NS_E_WMP_CANNOT_FIND_FILE) + { + return new FileNotFoundException(SR.Media_FileNotFound, exception); + } + else if (result == MediaPlayerErrors.NS_E_WMP_UNSUPPORTED_FORMAT + || result == MediaPlayerErrors.NS_E_WMP_DSHOW_UNSUPPORTED_FORMAT) + { + return new FileFormatException(SR.Media_FileFormatNotSupported, exception); + } + else if (result == MediaPlayerErrors.NS_E_WMP_INVALID_ASX) + { + return new FileFormatException(SR.Media_PlaylistFormatNotSupported, exception); + } + } + else if (facility == FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM) + { + if (result == MilErrors.WGXERR_DISPLAYSTATEINVALID) + { + return new InvalidOperationException(SR.Image_DisplayStateInvalid, exception); + } + else if (result == MilErrors.WGXERR_NONINVERTIBLEMATRIX) + { + return new ArithmeticException(SR.Image_SingularMatrix, exception); + } + else if (result == MilErrors.WGXERR_AV_INVALIDWMPVERSION) + { + return new InvalidWmpVersionException(SR.Media_InvalidWmpVersion, exception); + } + else if (result == MilErrors.WGXERR_AV_INSUFFICIENTVIDEORESOURCES) + { + return new NotSupportedException(SR.Media_InsufficientVideoResources, exception); + } + else if (result == MilErrors.WGXERR_AV_VIDEOACCELERATIONNOTAVAILABLE) + { + return new NotSupportedException(SR.Media_HardwareVideoAccelerationNotAvailable, exception); + } + else if (result == MilErrors.WGXERR_AV_MEDIAPLAYERCLOSED) + { + return new NotSupportedException(SR.Media_PlayerIsClosed, exception); + } + else if (result == MilErrors.WGXERR_BADNUMBER) + { + return new ArgumentException(SR.Geometry_BadNumber, exception); + } + else if (result == MilErrors.WGXERR_D3DI_INVALIDSURFACEUSAGE) + { + return new ArgumentException(SR.D3DImage_InvalidUsage, exception); + } + else if (result == MilErrors.WGXERR_D3DI_INVALIDSURFACESIZE) + { + return new ArgumentException(SR.D3DImage_SurfaceTooBig, exception); + } + else if (result == MilErrors.WGXERR_D3DI_INVALIDSURFACEPOOL) + { + return new ArgumentException(SR.D3DImage_InvalidPool, exception); + } + else if (result == MilErrors.WGXERR_D3DI_INVALIDSURFACEDEVICE) + { + return new ArgumentException(SR.D3DImage_InvalidDevice, exception); + } + else if (result == MilErrors.WGXERR_D3DI_INVALIDANTIALIASINGSETTINGS) + { + return new ArgumentException(SR.D3DImage_AARequires9Ex, exception); + } + else if (result == HRESULT.WINCODEC_ERR_WRONGSTATE) + { + return new InvalidOperationException(SR.Image_WrongState, exception); + } + else if (result == HRESULT.WINCODEC_ERR_VALUEOUTOFRANGE) + { + return new OverflowException(SR.Image_Overflow, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNKNOWNIMAGEFORMAT) + { + return new FileFormatException(null, SR.Image_UnknownFormat, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNSUPPORTEDVERSION) + { + return new FileLoadException(SR.MilErr_UnsupportedVersion, exception); + } + else if (result == HRESULT.WINCODEC_ERR_NOTINITIALIZED) + { + return new InvalidOperationException(SR.WIC_NotInitialized, exception); + } + else if (result == HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND) + { + return new ArgumentException(SR.Image_PropertyNotFound, exception); + } + else if (result == HRESULT.WINCODEC_ERR_PROPERTYNOTSUPPORTED) + { + return new NotSupportedException(SR.Image_PropertyNotSupported, exception); + } + else if (result == HRESULT.WINCODEC_ERR_PROPERTYSIZE) + { + return new ArgumentException(SR.Image_PropertySize, exception); + } + else if (result == HRESULT.WINCODEC_ERR_CODECPRESENT) + { + return new InvalidOperationException(SR.Image_CodecPresent, exception); + } + else if (result == HRESULT.WINCODEC_ERR_CODECNOTHUMBNAIL) + { + return new NotSupportedException(SR.Image_NoThumbnail, exception); + } + else if (result == HRESULT.WINCODEC_ERR_PALETTEUNAVAILABLE) + { + return new InvalidOperationException(SR.Image_NoPalette, exception); + } + else if (result == HRESULT.WINCODEC_ERR_CODECTOOMANYSCANLINES) + { + return new ArgumentException(SR.Image_TooManyScanlines, exception); + } + else if (result == HRESULT.WINCODEC_ERR_INTERNALERROR) + { + return new InvalidOperationException(SR.Image_InternalError, exception); + } + else if (result == HRESULT.WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS) + { + return new ArgumentException(SR.Image_BadDimensions, exception); + } + else if (result == HRESULT.WINCODEC_ERR_COMPONENTINITIALIZEFAILURE + || result == HRESULT.WINCODEC_ERR_COMPONENTNOTFOUND) + { + return new NotSupportedException(SR.Image_ComponentNotFound, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNEXPECTEDSIZE + || result == HRESULT.WINCODEC_ERR_BADIMAGE) + { + return new FileFormatException(null, SR.Image_DecoderError, exception); + } + else if (result == HRESULT.WINCODEC_ERR_BADHEADER) + { + return new FileFormatException(null, SR.Image_HeaderError, exception); + } + else if (result == HRESULT.WINCODEC_ERR_FRAMEMISSING) + { + return new ArgumentException(SR.Image_FrameMissing, exception); + } + else if (result == HRESULT.WINCODEC_ERR_BADMETADATAHEADER) + { + return new ArgumentException(SR.Image_BadMetadataHeader, exception); + } + else if (result == HRESULT.WINCODEC_ERR_BADSTREAMDATA) + { + return new ArgumentException(SR.Image_BadStreamData, exception); + } + else if (result == HRESULT.WINCODEC_ERR_STREAMWRITE) + { + return new InvalidOperationException(SR.Image_StreamWrite, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT) + { + return new NotSupportedException(SR.Image_UnsupportedPixelFormat, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION) + { + return new NotSupportedException(SR.Image_UnsupportedOperation, exception); + } + else if (result == HRESULT.WINCODEC_ERR_IMAGESIZEOUTOFRANGE) + { + return new ArgumentException(SR.Image_SizeOutOfRange, exception); + } + else if (result == HRESULT.WINCODEC_ERR_STREAMREAD) + { + return new IOException(SR.Image_StreamRead, exception); + } + else if (result == HRESULT.WINCODEC_ERR_INVALIDQUERYREQUEST) + { + return new IOException(SR.Image_InvalidQueryRequest, exception); + } + else if (result == HRESULT.WINCODEC_ERR_UNEXPECTEDMETADATATYPE) + { + return new FileFormatException(null, SR.Image_UnexpectedMetadataType, exception); + } + else if (result == HRESULT.WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT) + { + return new FileFormatException(null, SR.Image_RequestOnlyValidAtMetadataRoot, exception); + } + else if (result == HRESULT.WINCODEC_ERR_INVALIDQUERYCHARACTER) + { + return new IOException(SR.Image_InvalidQueryCharacter, exception); + } + else if (result == HRESULT.WINCODEC_ERR_DUPLICATEMETADATAPRESENT) + { + return new FileFormatException(null, SR.Image_DuplicateMetadataPresent, exception); + } + else if (result == HRESULT.WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE) + { + return new FileFormatException(null, SR.Image_PropertyUnexpectedType, exception); + } + else if (result == HRESULT.WINCODEC_ERR_TOOMUCHMETADATA) + { + return new FileFormatException(null, SR.Image_TooMuchMetadata, exception); + } + else if (result == HRESULT.WINCODEC_ERR_STREAMNOTAVAILABLE) + { + return new NotSupportedException(SR.Image_StreamNotAvailable, exception); + } + else if (result == HRESULT.WINCODEC_ERR_INSUFFICIENTBUFFER) + { + return new ArgumentException(SR.Image_InsufficientBuffer, exception); + } + } + + return exception; + } + +#pragma warning disable IDE1006 // Naming Styles +#pragma warning disable format + + // Waiting on WinForms update to get these in HRESULT. + internal static class MediaPlayerErrors + { + internal static readonly HRESULT NS_E_WMP_LOGON_FAILURE = new(unchecked((int)0xC00D1196L)); + internal static readonly HRESULT NS_E_WMP_CANNOT_FIND_FILE = new(unchecked((int)0xC00D1197L)); + internal static readonly HRESULT NS_E_WMP_UNSUPPORTED_FORMAT = new(unchecked((int)0xC00D1199L)); + internal static readonly HRESULT NS_E_WMP_DSHOW_UNSUPPORTED_FORMAT = new(unchecked((int)0xC00D119AL)); + internal static readonly HRESULT NS_E_WMP_INVALID_ASX = new(unchecked((int)0xC00D119DL)); + internal static readonly HRESULT NS_E_WMP_URLDOWNLOADFAILED = new(unchecked((int)0xC00D0FEAL)); + } +} diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/AppSecurityManager.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/AppSecurityManager.cs index 47ab6841795..a548a566ae6 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/AppSecurityManager.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/AppSecurityManager.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -19,6 +19,7 @@ using MS.Win32; using System.Runtime.InteropServices; using MS.Internal.Documents.Application; +using Windows.Win32.Foundation; namespace MS.Internal.AppModel { @@ -75,9 +76,9 @@ internal static LaunchResult SafeLaunchBrowserOnlyIfPossible(Uri originatingUri, { LaunchResult launched = LaunchResult.NotLaunched; - bool isKnownScheme = (Object.ReferenceEquals(destinationUri.Scheme, Uri.UriSchemeHttp)) || - (Object.ReferenceEquals(destinationUri.Scheme, Uri.UriSchemeHttps)) || - destinationUri.IsFile; + bool isKnownScheme = ReferenceEquals(destinationUri.Scheme, Uri.UriSchemeHttp) + || ReferenceEquals(destinationUri.Scheme, Uri.UriSchemeHttps) + || destinationUri.IsFile; bool fIsMailTo = string.Equals(destinationUri.Scheme, Uri.UriSchemeMailto, StringComparison.OrdinalIgnoreCase); @@ -185,8 +186,8 @@ private static LaunchResult CanNavigateToUrlWithZoneCheck(Uri originatingUri, Ur // is this feature enabled ? fEnabled = UnsafeNativeMethods.CoInternetIsFeatureEnabled( - NativeMethods.FEATURE_ZONE_ELEVATION, - NativeMethods.GET_FEATURE_FROM_PROCESS) != NativeMethods.S_FALSE; + NativeMethods.FEATURE_ZONE_ELEVATION, + NativeMethods.GET_FEATURE_FROM_PROCESS) != HRESULT.S_FALSE; targetZone = MapUrlToZone(destinationUri); @@ -300,10 +301,10 @@ private static LaunchResult CheckBlockNavigation(Uri originatingUri, Uri destina if (fEnabled) { if (UnsafeNativeMethods.CoInternetIsFeatureZoneElevationEnabled( - BindUriHelper.UriToString(originatingUri), - BindUriHelper.UriToString(destinationUri), - _secMgr, - NativeMethods.GET_FEATURE_FROM_PROCESS) == NativeMethods.S_FALSE) + BindUriHelper.UriToString(originatingUri), + BindUriHelper.UriToString(destinationUri), + _secMgr, + NativeMethods.GET_FEATURE_FROM_PROCESS) == HRESULT.S_FALSE) { return LaunchResult.Launched; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/OleCmdHelper.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/OleCmdHelper.cs index 14b406d4af1..b98eed41108 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/OleCmdHelper.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/OleCmdHelper.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -19,6 +19,9 @@ using MS.Internal.Documents; // DocumentApplicationDocumentViewer using MS.Internal.KnownBoxes; using MS.Win32; +using Standard; + +using Windows.Win32.Foundation; namespace MS.Internal.AppModel { @@ -61,7 +64,7 @@ unrecognized commands. if (Application.Current == null || Application.IsShuttingDown == true) { - Marshal.ThrowExceptionForHR(NativeMethods.E_FAIL); + HRESULT.E_FAIL.ThrowOnFailure(); } // Get values from mapping here else mark them as disabled ==> @@ -71,7 +74,7 @@ unrecognized commands. IDictionary oleCmdMappingTable = GetOleCmdMappingTable(guidCmdGroup); if (oleCmdMappingTable == null) { - Marshal.ThrowExceptionForHR(OleCmdHelper.OLECMDERR_E_UNKNOWNGROUP); + ((HRESULT)OLECMDERR_E_UNKNOWNGROUP).ThrowOnFailure(); } CommandWithArgument command = oleCmdMappingTable[cmdId] as CommandWithArgument; if (command == null) @@ -110,7 +113,7 @@ internal void ExecCommand(Guid guidCmdGroup, uint commandId, object arg) { if (Application.Current == null || Application.IsShuttingDown == true) { - Marshal.ThrowExceptionForHR(NativeMethods.E_FAIL); + HRESULT.E_FAIL.ThrowOnFailure(); } int hresult = (int)Application.Current.Dispatcher.Invoke( @@ -148,7 +151,8 @@ private object ExecCommandCallback(object arguments) // This will always succeed because Window is IInputElement target = (IInputElement)Application.Current.MainWindow; } - return command.Execute(target, arg) ? NativeMethods.S_OK : OLECMDERR_E_DISABLED; + + return command.Execute(target, arg) ? HRESULT.S_OK : OLECMDERR_E_DISABLED; } private IDictionary GetOleCmdMappingTable(Guid guidCmdGroup) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ProgressPage.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ProgressPage.cs index 3be58d9322b..143553ae221 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ProgressPage.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ProgressPage.cs @@ -1,6 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. // // Description: @@ -11,9 +10,7 @@ using System.Runtime.InteropServices; using System.Windows.Interop; using System.Windows.Threading; - -// Disambiguate MS.Internal.HRESULT... -using HR = MS.Internal.Interop.HRESULT; +using Windows.Win32.Foundation; namespace MS.Internal.AppModel { @@ -22,17 +19,17 @@ namespace MS.Internal.AppModel interface INativeProgressPage { [PreserveSig] - HR Show(); + HRESULT Show(); [PreserveSig] - HR Hide(); + HRESULT Hide(); [PreserveSig] - HR ShowProgressMessage(string message); + HRESULT ShowProgressMessage(string message); [PreserveSig] - HR SetApplicationName(string appName); + HRESULT SetApplicationName(string appName); [PreserveSig] - HR SetPublisherName(string publisherName); + HRESULT SetPublisherName(string publisherName); [PreserveSig] - HR OnDownloadProgress(ulong bytesDownloaded, ulong bytesTotal); + HRESULT OnDownloadProgress(ulong bytesDownloaded, ulong bytesTotal); }; /// @@ -54,13 +51,13 @@ internal NativeProgressPageProxy(INativeProgressPage npp) public void ShowProgressMessage(string message) { // Ignore the error code. This page is transient and it's not the end of the world if this doesn't show up. - HR hr = _npp.ShowProgressMessage(message); + _ = _npp.ShowProgressMessage(message); } public Uri DeploymentPath { set { } - get { throw new System.NotImplementedException(); } + get { throw new NotImplementedException(); } } /// @@ -70,14 +67,14 @@ public Uri DeploymentPath public DispatcherOperationCallback StopCallback { set { } - get { throw new System.NotImplementedException(); } + get { throw new NotImplementedException(); } } /// /// The native progress page sends a Refresh request to its host object, which then calls /// IBrowserHostServices.ExecCommand(OLECMDID_REFRESH). /// - public System.Windows.Threading.DispatcherOperationCallback RefreshCallback + public DispatcherOperationCallback RefreshCallback { set { } get { return null; } @@ -88,10 +85,10 @@ public string ApplicationName set { // Ignore the error code. This page is transient and it's not the end of the world if this doesn't show up. - HR hr = _npp.SetApplicationName(value); + _ = _npp.SetApplicationName(value); } - get { throw new System.NotImplementedException(); } + get { throw new NotImplementedException(); } } /// @@ -105,7 +102,7 @@ public string PublisherName set { // Ignore the error code. This page is transient and it's not the end of the world if this doesn't show up. - HR hr = _npp.SetPublisherName(value); + _ = _npp.SetPublisherName(value); } get { throw new System.NotImplementedException(); } @@ -117,7 +114,7 @@ public string PublisherName public void UpdateProgress(long bytesDownloaded, long bytesTotal) { // Ignore the error code. This page is transient and it's not the end of the world if this doesn't show up. - HR hr = _npp.OnDownloadProgress((ulong)bytesDownloaded, (ulong)bytesTotal); + _ = _npp.OnDownloadProgress((ulong)bytesDownloaded, (ulong)bytesTotal); } INativeProgressPage _npp; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ShellProvider.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ShellProvider.cs index 01987ea9e74..b7ce88c0a69 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ShellProvider.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/AppModel/ShellProvider.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -7,6 +7,7 @@ using System.Text; using MS.Win32; using MS.Internal.Interop; +using Windows.Win32.Foundation; // Some COM interfaces and Win32 structures are already declared in the framework. // Interesting ones to remember in System.Runtime.InteropServices.ComTypes are: @@ -16,11 +17,6 @@ namespace MS.Internal.AppModel { - // There are THREE definitions of HRESULT. Two in ErrorCodes, and one in wgx_render.cs. - // wgx_render.cs wins if we don't put this inside of the namespace. - using Win32Error = MS.Internal.Interop.Win32Error; - using HRESULT = MS.Internal.Interop.HRESULT; - #region Structs [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)] @@ -964,17 +960,18 @@ public static IShellItem2 GetShellItemForPath(string path) Guid iidShellItem2 = new Guid(IID.ShellItem2); object unk; - HRESULT hr = NativeMethods2.SHCreateItemFromParsingName(path, null, ref iidShellItem2, out unk); + HRESULT result = NativeMethods2.SHCreateItemFromParsingName(path, null, ref iidShellItem2, out unk); // Silently absorb errors such as ERROR_FILE_NOT_FOUND, ERROR_PATH_NOT_FOUND. // Let others pass through - if (hr == (HRESULT)Win32Error.ERROR_FILE_NOT_FOUND || hr == (HRESULT)Win32Error.ERROR_PATH_NOT_FOUND) + if (result == HRESULT.FromWin32(WIN32_ERROR.ERROR_FILE_NOT_FOUND) + || result == HRESULT.FromWin32(WIN32_ERROR.ERROR_PATH_NOT_FOUND)) { - hr = HRESULT.S_OK; + result = HRESULT.S_OK; unk = null; } - hr.ThrowIfFailed(); + result.ThrowOnFailureUnwrapWin32(); return (IShellItem2)unk; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXContainer.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXContainer.cs index 395c152e716..40f32c568af 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXContainer.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXContainer.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Interop; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.Controls { @@ -25,7 +26,7 @@ internal class ActiveXContainer : UnsafeNativeMethods.IOleContainer, UnsafeNativ internal ActiveXContainer(ActiveXHost host) { - this._host = host; + _host = host; Invariant.Assert(_host != null); } @@ -50,7 +51,7 @@ int UnsafeNativeMethods.IOleContainer.ParseDisplayName(Object pbc, string pszDis if (ppmkOut != null) ppmkOut[0] = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleContainer.EnumObjects(int grfFlags, out UnsafeNativeMethods.IEnumUnknown ppenum) @@ -73,16 +74,16 @@ int UnsafeNativeMethods.IOleContainer.EnumObjects(int grfFlags, out UnsafeNative Object[] temp = new Object[1]; temp[0] = ax; ppenum = new EnumUnknown(temp); - return NativeMethods.S_OK; + return HRESULT.S_OK; } ppenum = new EnumUnknown(null); - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleContainer.LockContainer(bool fLock) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } #endregion IOleContainer @@ -100,22 +101,22 @@ IntPtr UnsafeNativeMethods.IOleInPlaceFrame.GetWindow() int UnsafeNativeMethods.IOleInPlaceFrame.ContextSensitiveHelp(int fEnterMode) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceFrame.GetBorder(NativeMethods.COMRECT lprectBorder) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.RequestBorderSpace(NativeMethods.COMRECT pborderwidths) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.SetBorderSpace(NativeMethods.COMRECT pborderwidths) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.SetActiveObject(UnsafeNativeMethods.IOleInPlaceActiveObject pActiveObject, string pszObjName) @@ -152,37 +153,37 @@ int UnsafeNativeMethods.IOleInPlaceFrame.SetActiveObject(UnsafeNativeMethods.IOl } */ - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceFrame.InsertMenus(IntPtr hmenuShared, NativeMethods.tagOleMenuGroupWidths lpMenuWidths) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceFrame.SetMenu(IntPtr hmenuShared, IntPtr holemenu, IntPtr hwndActiveObject) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.RemoveMenus(IntPtr hmenuShared) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.SetStatusText(string pszStatusText) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.EnableModeless(bool fEnable) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceFrame.TranslateAccelerator(ref MSG lpmsg, short wID) { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } #endregion IOleInPlaceFrame @@ -214,7 +215,7 @@ internal void OnUIDeactivate(ActiveXHost site) #if DEBUG if (_siteUIActive != null) { //TODO: Debug.Assert(_siteUIActive == site, "deactivating when not active..."); - Debug.Assert(this.ActiveXHost == site, "deactivating when not active..."); + Debug.Assert(ActiveXHost == site, "deactivating when not active..."); } #endif // DEBUG @@ -227,7 +228,7 @@ internal void OnUIDeactivate(ActiveXHost site) internal void OnInPlaceDeactivate(ActiveXHost site) { //TODO: Clear the focus here too? - if (this.ActiveXHost == site) + if (ActiveXHost == site) { } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXSite.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXSite.cs index 1b3f7d9e187..39dec9f7d1d 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXSite.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ActiveXSite.cs @@ -1,12 +1,12 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. - using System.Runtime.InteropServices; using System.Windows; using System.Windows.Interop; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.Controls { @@ -44,18 +44,18 @@ internal ActiveXSite(ActiveXHost host) #region IOleControlSite int UnsafeNativeMethods.IOleControlSite.OnControlInfoChanged() { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleControlSite.LockInPlaceActive(int fLock) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleControlSite.GetExtendedControl(out object ppDisp) { ppDisp = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleControlSite.TransformCoords(ref NativeMethods.POINT pPtlHimetric, ref NativeMethods.POINTF pPtfContainer, int dwFlags) @@ -74,7 +74,7 @@ int UnsafeNativeMethods.IOleControlSite.TransformCoords(ref NativeMethods.POINT } else { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } } else if ((dwFlags & NativeMethods.XFORMCOORDS_CONTAINERTOHIMETRIC) != 0) @@ -91,15 +91,15 @@ int UnsafeNativeMethods.IOleControlSite.TransformCoords(ref NativeMethods.POINT } else { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } } else { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -117,7 +117,7 @@ int UnsafeNativeMethods.IOleControlSite.TranslateAccelerator(ref MSG pMsg, int g try { bool f = ((Control)this.Host).PreProcessMessage(ref msg); - return f ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return f ? HRESULT.S_OK : HRESULT.S_FALSE; } finally { this.Host.SetAxHostState(AxHostHelper.siteProcessedInputKey, false); @@ -126,17 +126,17 @@ int UnsafeNativeMethods.IOleControlSite.TranslateAccelerator(ref MSG pMsg, int g // This is called by IOleInPlaceActiveObject::TranslateAccelerator. // returning S_FALSE means we don't process the messages. Let the webbrowser control handle it. - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } int UnsafeNativeMethods.IOleControlSite.OnFocus(int fGotFocus) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleControlSite.ShowPropertyFrame() { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } #endregion IOleControlSite @@ -148,52 +148,52 @@ int UnsafeNativeMethods.IOleControlSite.ShowPropertyFrame() int UnsafeNativeMethods.IOleClientSite.SaveObject() { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleClientSite.GetMoniker(int dwAssign, int dwWhichMoniker, out Object moniker) { moniker = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleClientSite.GetContainer(out UnsafeNativeMethods.IOleContainer container) { - container = this.Host.Container; - return NativeMethods.S_OK; + container = Host.Container; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleClientSite.ShowObject() { if (HostState >= ActiveXHelper.ActiveXState.InPlaceActive) { IntPtr hwnd; - if (NativeMethods.Succeeded(this.Host.ActiveXInPlaceObject.GetWindow(out hwnd))) + if (Host.ActiveXInPlaceObject.GetWindow(out hwnd).Succeeded) { - if (this.Host.ControlHandle.Handle != hwnd) + if (Host.ControlHandle.Handle != hwnd) { if (hwnd != IntPtr.Zero) { - this.Host.AttachWindow(hwnd); - this.OnActiveXRectChange(this.Host.Bounds); + Host.AttachWindow(hwnd); + OnActiveXRectChange(Host.Bounds); } } } - else if (this.Host.ActiveXInPlaceObject is UnsafeNativeMethods.IOleInPlaceObjectWindowless) + else if (Host.ActiveXInPlaceObject is UnsafeNativeMethods.IOleInPlaceObjectWindowless) { throw new InvalidOperationException(SR.AxWindowlessControl); } } - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleClientSite.OnShowWindow(int fShow) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleClientSite.RequestNewObjectLayout() { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } #endregion IOleClientSite @@ -207,7 +207,7 @@ IntPtr UnsafeNativeMethods.IOleInPlaceSite.GetWindow() { try { - return this.Host.ParentHandle.Handle; + return Host.ParentHandle.Handle; } catch (Exception t) { @@ -218,12 +218,12 @@ IntPtr UnsafeNativeMethods.IOleInPlaceSite.GetWindow() int UnsafeNativeMethods.IOleInPlaceSite.ContextSensitiveHelp(int fEnterMode) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IOleInPlaceSite.CanInPlaceActivate() { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.OnInPlaceActivate() @@ -231,55 +231,55 @@ int UnsafeNativeMethods.IOleInPlaceSite.OnInPlaceActivate() HostState = ActiveXHelper.ActiveXState.InPlaceActive; if (!HostBounds.IsEmpty) { - this.OnActiveXRectChange(HostBounds); + OnActiveXRectChange(HostBounds); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.OnUIActivate() { HostState = ActiveXHelper.ActiveXState.UIActive; - this.Host.Container.OnUIActivate(this.Host); - return NativeMethods.S_OK; + Host.Container.OnUIActivate(Host); + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.GetWindowContext(out UnsafeNativeMethods.IOleInPlaceFrame ppFrame, out UnsafeNativeMethods.IOleInPlaceUIWindow ppDoc, NativeMethods.COMRECT lprcPosRect, NativeMethods.COMRECT lprcClipRect, NativeMethods.OLEINPLACEFRAMEINFO lpFrameInfo) { ppDoc = null; - ppFrame = this.Host.Container; + ppFrame = Host.Container; - lprcPosRect.left = (int)this.Host.Bounds.left; - lprcPosRect.top = (int)this.Host.Bounds.top; - lprcPosRect.right = (int)this.Host.Bounds.right; - lprcPosRect.bottom = (int)this.Host.Bounds.bottom; + lprcPosRect.left = (int)Host.Bounds.left; + lprcPosRect.top = (int)Host.Bounds.top; + lprcPosRect.right = (int)Host.Bounds.right; + lprcPosRect.bottom = (int)Host.Bounds.bottom; - lprcClipRect = this.Host.Bounds; + lprcClipRect = Host.Bounds; if (lpFrameInfo != null) { lpFrameInfo.cb = (uint)Marshal.SizeOf(typeof(NativeMethods.OLEINPLACEFRAMEINFO)); lpFrameInfo.fMDIApp = false; lpFrameInfo.hAccel = IntPtr.Zero; lpFrameInfo.cAccelEntries = 0; - lpFrameInfo.hwndFrame = this.Host.ParentHandle.Handle; + lpFrameInfo.hwndFrame = Host.ParentHandle.Handle; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.Scroll(NativeMethods.SIZE scrollExtant) { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } int UnsafeNativeMethods.IOleInPlaceSite.OnUIDeactivate(int fUndoable) { - this.Host.Container.OnUIDeactivate(this.Host); + Host.Container.OnUIDeactivate(Host); if (HostState > ActiveXHelper.ActiveXState.InPlaceActive) { HostState = ActiveXHelper.ActiveXState.InPlaceActive; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.OnInPlaceDeactivate() @@ -289,24 +289,24 @@ int UnsafeNativeMethods.IOleInPlaceSite.OnInPlaceDeactivate() ((UnsafeNativeMethods.IOleInPlaceSite)this).OnUIDeactivate(0); } - this.Host.Container.OnInPlaceDeactivate(this.Host); + Host.Container.OnInPlaceDeactivate(Host); HostState = ActiveXHelper.ActiveXState.Running; - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.DiscardUndoState() { - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IOleInPlaceSite.DeactivateAndUndo() { - return this.Host.ActiveXInPlaceObject.UIDeactivate(); + return Host.ActiveXInPlaceObject.UIDeactivate(); } int UnsafeNativeMethods.IOleInPlaceSite.OnPosRectChange(NativeMethods.COMRECT lprcPosRect) { - return this.OnActiveXRectChange(lprcPosRect); + return OnActiveXRectChange(lprcPosRect); } #endregion IOleInPlaceSite @@ -316,11 +316,11 @@ ActiveXHelper.ActiveXState HostState { get { - return this.Host.ActiveXState; + return Host.ActiveXState; } set { - this.Host.ActiveXState = value; + Host.ActiveXState = value; } } @@ -328,7 +328,7 @@ internal NativeMethods.COMRECT HostBounds { get { - return this.Host.Bounds; + return Host.Bounds; } } @@ -365,7 +365,7 @@ void UnsafeNativeMethods.IPropertyNotifySink.OnChanged(int dispid) int UnsafeNativeMethods.IPropertyNotifySink.OnRequestEdit(int dispid) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } #endregion IPropertyNotifySink @@ -433,7 +433,7 @@ internal void StartEvents() if (_connectionPoint != null) return; - Object nativeObject = this.Host.ActiveXInstance; + Object nativeObject = Host.ActiveXInstance; if (nativeObject != null) { try @@ -461,16 +461,16 @@ internal void StopEvents() internal int OnActiveXRectChange(NativeMethods.COMRECT lprcPosRect) { - if (this.Host.ActiveXInPlaceObject != null) + if (Host.ActiveXInPlaceObject != null) { - this.Host.ActiveXInPlaceObject.SetObjectRects( + Host.ActiveXInPlaceObject.SetObjectRects( lprcPosRect, lprcPosRect); //Same clip rect - this.Host.Bounds = lprcPosRect; + Host.Bounds = lprcPosRect; } - return NativeMethods.S_OK; + return HRESULT.S_OK; } #endregion Internal Methods diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ConnectionPointCookie.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ConnectionPointCookie.cs index f9998b07633..e0258e47f09 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ConnectionPointCookie.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/ConnectionPointCookie.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Runtime.InteropServices; using System.Windows; using MS.Win32; +using Windows.Win32.Foundation; // Since we disable PreSharp warnings in this file, PreSharp warning is unknown to C# compiler. // We first need to disable warnings about unknown message numbers and unknown pragmas. @@ -30,7 +31,7 @@ internal ConnectionPointCookie(object source, object sink, Type eventInterface) try { Guid tmp = eventInterface.GUID; - if (cpc.FindConnectionPoint(ref tmp, out connectionPoint) != NativeMethods.S_OK) + if (cpc.FindConnectionPoint(ref tmp, out connectionPoint) != HRESULT.S_OK) { connectionPoint = null; } @@ -58,7 +59,7 @@ internal ConnectionPointCookie(object source, object sink, Type eventInterface) else { int hr = connectionPoint.Advise(sink, ref cookie); - if (hr != NativeMethods.S_OK) + if (hr != HRESULT.S_OK) { cookie = 0; Marshal.FinalReleaseComObject(connectionPoint); @@ -122,7 +123,7 @@ internal void Disconnect() try { - System.Runtime.InteropServices.Marshal.FinalReleaseComObject(connectionPoint); + Marshal.FinalReleaseComObject(connectionPoint); } catch (Exception ex) { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/EnumUnknown.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/EnumUnknown.cs index da041e9ca32..d947a52b50c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/EnumUnknown.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/EnumUnknown.cs @@ -1,21 +1,18 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -// -// Description: Helper object implementing IEnumUnknown for enumerating controls -// -// Source copied from AxContainer.cs -// using System.Runtime.InteropServices; - using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.Controls { #region class EnumUnknown + /// + /// Helper object implementing IEnumUnknown for enumerating controls. + /// Source copied from AxContainer.cs + /// internal class EnumUnknown : UnsafeNativeMethods.IEnumUnknown { private Object[] arr; @@ -25,8 +22,8 @@ internal class EnumUnknown : UnsafeNativeMethods.IEnumUnknown internal EnumUnknown(Object[] arr) { this.arr = arr; - this.loc = 0; - this.size = (arr == null) ? 0 : arr.Length; + loc = 0; + size = (arr == null) ? 0 : arr.Length; } private EnumUnknown(Object[] arr, int loc) @@ -42,21 +39,21 @@ unsafe int UnsafeNativeMethods.IEnumUnknown.Next(int celt, IntPtr rgelt, IntPtr if (celt < 0) { - return NativeMethods.E_INVALIDARG; + return HRESULT.E_INVALIDARG; } int fetched = 0; - if (this.loc >= this.size) + if (loc >= size) { fetched = 0; } else { - for (; this.loc < this.size && fetched < celt; ++(this.loc)) + for (; loc < size && fetched < celt; ++(loc)) { - if (this.arr[this.loc] != null) + if (arr[loc] != null) { - Marshal.WriteIntPtr(rgelt, Marshal.GetIUnknownForObject(this.arr[this.loc])); + Marshal.WriteIntPtr(rgelt, Marshal.GetIUnknownForObject(arr[loc])); rgelt = (IntPtr)((long)rgelt + (long)sizeof(IntPtr)); ++fetched; } @@ -68,29 +65,29 @@ unsafe int UnsafeNativeMethods.IEnumUnknown.Next(int celt, IntPtr rgelt, IntPtr if (fetched != celt) { - return (NativeMethods.S_FALSE); + return (HRESULT.S_FALSE); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IEnumUnknown.Skip(int celt) { - this.loc += celt; - if (this.loc >= this.size) + loc += celt; + if (loc >= size) { - return (NativeMethods.S_FALSE); + return (HRESULT.S_FALSE); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } void UnsafeNativeMethods.IEnumUnknown.Reset() { - this.loc = 0; + loc = 0; } void UnsafeNativeMethods.IEnumUnknown.Clone(out UnsafeNativeMethods.IEnumUnknown ppenum) { - ppenum = new EnumUnknown(this.arr, this.loc); + ppenum = new EnumUnknown(arr, loc); } } #endregion class EnumUnknown diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/WebBrowserSite.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/WebBrowserSite.cs index 37e365d1550..fc3313db239 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/WebBrowserSite.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Controls/WebBrowserSite.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -17,6 +17,7 @@ using System.Windows.Input; using System.Windows.Threading; using System.Threading; +using Windows.Win32.Foundation; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; @@ -65,7 +66,7 @@ int UnsafeNativeMethods.IDocHostUIHandler.ShowContextMenu(int dwID, ref NativeMe // i.e., execute the shortcut key. Returning S_OK will cancel the context menu // - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } int UnsafeNativeMethods.IDocHostUIHandler.GetHostInfo(NativeMethods.DOCHOSTUIINFO info) @@ -89,13 +90,13 @@ int UnsafeNativeMethods.IDocHostUIHandler.GetHostInfo(NativeMethods.DOCHOSTUIINF NativeMethods.DOCHOSTUIFLAG.ENABLE_REDIRECT_NOTIFICATION | NativeMethods.DOCHOSTUIFLAG.NO3DOUTERBORDER); - return NativeMethods.S_OK; + return HRESULT.S_OK; } int UnsafeNativeMethods.IDocHostUIHandler.EnableModeless(bool fEnable) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } @@ -103,36 +104,36 @@ int UnsafeNativeMethods.IDocHostUIHandler.ShowUI(int dwID, UnsafeNativeMethods.I NativeMethods.IOleCommandTarget commandTarget, UnsafeNativeMethods.IOleInPlaceFrame frame, UnsafeNativeMethods.IOleInPlaceUIWindow doc) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.HideUI() { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.UpdateUI() { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.OnDocWindowActivate(bool fActivate) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.OnFrameWindowActivate(bool fActivate) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.ResizeBorder(NativeMethods.COMRECT rect, UnsafeNativeMethods.IOleInPlaceUIWindow doc, bool fFrameWindow) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.GetOptionKeyPath(string[] pbstrKey, int dw) { - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.GetDropTarget(UnsafeNativeMethods.IOleDropTarget pDropTarget, out UnsafeNativeMethods.IOleDropTarget ppDropTarget) @@ -141,7 +142,7 @@ int UnsafeNativeMethods.IDocHostUIHandler.GetDropTarget(UnsafeNativeMethods.IOle // Set to null no matter what we return, to prevent the marshaller // from behaving erroneously if the pointer points to random stuff. ppDropTarget = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } /// @@ -152,7 +153,7 @@ int UnsafeNativeMethods.IDocHostUIHandler.GetExternal(out object ppDispatch) { WebBrowser wb = (WebBrowser)Host; ppDispatch = wb.HostingAdaptor.ObjectForScripting; - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -173,13 +174,13 @@ int UnsafeNativeMethods.IDocHostUIHandler.TranslateAccelerator(ref System.Window if (msg.message != WindowMessage.WM_CHAR && Enum.IsDefined(typeof(Shortcut), (Shortcut)keyCode)) { - return NativeMethods.S_OK; + return HRESULT.S_OK; } - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } */ - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } int UnsafeNativeMethods.IDocHostUIHandler.TranslateUrl(int dwTranslate, string strUrlIn, out string pstrUrlOut) @@ -188,7 +189,7 @@ int UnsafeNativeMethods.IDocHostUIHandler.TranslateUrl(int dwTranslate, string s // Set to null no matter what we return, to prevent the marshaller // from behaving erroneously if the pointer points to random stuff. pstrUrlOut = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } int UnsafeNativeMethods.IDocHostUIHandler.FilterDataObject(IComDataObject pDO, out IComDataObject ppDORet) @@ -197,7 +198,7 @@ int UnsafeNativeMethods.IDocHostUIHandler.FilterDataObject(IComDataObject pDO, o // Set to null no matter what we return, to prevent the marshaller // from behaving erroneously if the pointer points to random stuff. ppDORet = null; - return NativeMethods.E_NOTIMPL; + return HRESULT.E_NOTIMPL; } #endregion @@ -214,9 +215,9 @@ int UnsafeNativeMethods.IOleControlSite.TranslateAccelerator(ref MSG msg, int gr // For the WebOCHostedInBrowserProcess case, we need to switch to the right thread. Host.Dispatcher.Invoke( DispatcherPriority.Send, new SendOrPostCallback(MoveFocusCallback), direction); - return NativeMethods.S_OK; + return HRESULT.S_OK; } - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } private void MoveFocusCallback(object direction) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/DataStreams.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/DataStreams.cs index 93de5d6ac3c..c836135964c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/DataStreams.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/DataStreams.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -105,7 +105,7 @@ private ArrayList SaveSubStreams(UIElement element) // These properties should not be journaled. // There should be a better way to do this, maybe FrameworkPropertyMetadata.CausesNavigation? // Or maybe the Source property should be on INavigatorHost - if (object.ReferenceEquals(localValueEntry.Property, Frame.SourceProperty)) + if (ReferenceEquals(localValueEntry.Property, Frame.SourceProperty)) continue; if (subStreams == null) @@ -132,10 +132,10 @@ private ArrayList SaveSubStreams(UIElement element) Debug.Fail($"Unexpected exception writing binary formatted data. {ex.Message}"); } - if(!success) + if (!success) { #pragma warning disable SYSLIB0011 // BinaryFormatter is obsolete - this.Formatter.Serialize(byteStream, currentValue); + Formatter.Serialize(byteStream, currentValue); #pragma warning restore SYSLIB0011 // BinaryFormatter is obsolete } @@ -171,7 +171,7 @@ private void SaveState(object node) if (persistId != 0) { - ArrayList subStreams = this.SaveSubStreams(element); + ArrayList subStreams = SaveSubStreams(element); if (subStreams != null) { // @@ -266,7 +266,7 @@ private void LoadSubStreams(UIElement element, ArrayList subStreams) { dataStream.Position = 0; #pragma warning disable SYSLIB0011 // BinaryFormatter is obsolete - newValue = this.Formatter.Deserialize(dataStream); + newValue = Formatter.Deserialize(dataStream); #pragma warning restore SYSLIB0011 // BinaryFormatter is obsolete } @@ -291,10 +291,10 @@ private void LoadState(object node) // Due to bug 1282529, PersistId can be null. Only XAML/BAML-loaded elements have it. if (persistId != 0) { - if (this.HasSubStreams(persistId)) + if (HasSubStreams(persistId)) { // Get the properties to restore - ArrayList properties = this.GetSubStreams(persistId); + ArrayList properties = GetSubStreams(persistId); LoadSubStreams(element, properties); } @@ -366,14 +366,14 @@ internal void Save(Object root) { _subStreams.Clear(); } - WalkLogicalTree(root, new NodeOperation(this.SaveState)); + WalkLogicalTree(root, new NodeOperation(SaveState)); } internal void Load(Object root) { - if (this.HasAnyData) + if (HasAnyData) { - WalkLogicalTree(root, new NodeOperation(this.LoadState)); + WalkLogicalTree(root, new NodeOperation(LoadState)); } } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XmlGlyphRunInfo.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XmlGlyphRunInfo.cs index 74d0caa241f..32f0ca7dc85 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XmlGlyphRunInfo.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XmlGlyphRunInfo.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -57,8 +57,8 @@ internal XmlGlyphRunInfo(XmlNode glyphsNode) /// The point is given in page coordinates. /// double.NaN can be returned in either coordinate when the input glyph run is invalid. /// - internal override Windows.Point StartPosition - { + internal override Point StartPosition + { get { throw new NotSupportedException(SR.XmlGlyphRunInfoIsNonGraphic); @@ -73,8 +73,8 @@ internal override Windows.Point StartPosition /// The point is given in page coordinates. /// double.NaN can be returned in either coordinate when the input glyph run is invalid. /// - internal override Windows.Point EndPosition - { + internal override Point EndPosition + { get { throw new NotSupportedException(SR.XmlGlyphRunInfoIsNonGraphic); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XpsFilter.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XpsFilter.cs index f45de9fd061..59a48291de7 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XpsFilter.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/IO/Packaging/XpsFilter.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -20,6 +20,8 @@ using MS.Win32; using MS.Internal.Interop; // For STAT_CHUNK, etc. +using Windows.Win32.Foundation; + namespace MS.Internal.IO.Packaging { #region XpsFilter @@ -53,14 +55,14 @@ IFILTER_FLAGS IFilter.Init( if (_filter == null) { throw new COMException(SR.FileToFilterNotLoaded, - (int)NativeMethods.E_FAIL); + (int)HRESULT.E_FAIL); } if (cAttributes > 0 && aAttributes == null) { // Attributes count and array do not match. throw new COMException(SR.FilterInitInvalidAttributes, - (int)NativeMethods.E_INVALIDARG); + (int)HRESULT.E_INVALIDARG); } return _filter.Init(grfFlags, cAttributes, aAttributes); @@ -316,11 +318,11 @@ int IPersistFile.GetCurFile(out string ppszFileName) if (_filter == null || _xpsFileName == null) { ppszFileName = $"*.{PackagingUtilities.ContainerFileExtension}"; - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } ppszFileName = _xpsFileName; - return NativeMethods.S_OK; + return HRESULT.S_OK; } /// @@ -336,7 +338,7 @@ int IPersistFile.GetCurFile(out string ppszFileName) [PreserveSig] int IPersistFile.IsDirty() { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } /// @@ -503,7 +505,7 @@ void IPersistStream.GetClassID(out Guid pClassID) [PreserveSig] int IPersistStream.IsDirty() { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } /// diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/UnsafeNativeMethods.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/UnsafeNativeMethods.cs index c38f611dc7d..c038f967972 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/UnsafeNativeMethods.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/UnsafeNativeMethods.cs @@ -1,8 +1,8 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System.Runtime.InteropServices; +using Windows.Win32.Foundation; using MS.Internal.PresentationFramework; @@ -11,13 +11,7 @@ namespace MS.Internal.Printing internal static class UnsafeNativeMethods { [DllImport("comdlg32.dll", CharSet = CharSet.Auto)] - internal - static - extern - Int32 - PrintDlgEx( - IntPtr pdex - ); + internal static extern HRESULT PrintDlgEx(IntPtr pdex); [DllImport("kernel32.dll")] internal diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/Win32PrintDialog.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/Win32PrintDialog.cs index 5fc0e52d1a2..0d59d1f97ff 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/Win32PrintDialog.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/MS/Internal/Printing/Win32PrintDialog.cs @@ -1,14 +1,14 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. #if !DONOTREFPRINTINGASMMETA - using System.Printing.Interop; using System.Printing; using System.Runtime.InteropServices; using System.Windows.Controls; +using Windows.Win32.Foundation; namespace MS.Internal.Printing { @@ -67,7 +67,7 @@ internal partial class Win32PrintDialog try { - if (this._printQueue == null || this._printTicket == null) + if (_printQueue == null || _printTicket == null) { // Normally printDlgEx.SyncToStruct() probes the printer if both the print queue and print // ticket are not null. @@ -88,8 +88,7 @@ internal partial class Win32PrintDialog // // Display the Win32 print dialog // - Int32 hr = UnsafeNativeMethods.PrintDlgEx(printDlgEx.UnmanagedPrintDlgEx); - if (hr == MS.Win32.NativeMethods.S_OK) + if (UnsafeNativeMethods.PrintDlgEx(printDlgEx.UnmanagedPrintDlgEx) == HRESULT.S_OK) { result = printDlgEx.SyncFromStruct(); } @@ -118,12 +117,12 @@ internal partial class Win32PrintDialog if (owner == IntPtr.Zero) { - owner = MS.Win32.UnsafeNativeMethods.GetActiveWindow(); + owner = Win32.UnsafeNativeMethods.GetActiveWindow(); } - if(0 != MS.Win32.UnsafeNativeMethods.MessageBox(new HandleRef(null, owner), message, caption, type)) + if (0 != Win32.UnsafeNativeMethods.MessageBox(new HandleRef(null, owner), message, caption, type)) { - result = NativeMethods.PD_RESULT_CANCEL; + result = NativeMethods.PD_RESULT_CANCEL; } } else @@ -284,7 +283,7 @@ private void ProbeForPrintingSupport() // We could avoid the exception if we had access to // MS.Internal.Printing.Configuration.NativeMethods.BindPTProviderThunk - string printerName = (this._printQueue != null) ? this._printQueue.FullName : string.Empty; + string printerName = (_printQueue != null) ? _printQueue.FullName : string.Empty; try { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Microsoft/Win32/CommonItemDialog.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Microsoft/Win32/CommonItemDialog.cs index f3e3c76357f..fcbbe8ab174 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Microsoft/Win32/CommonItemDialog.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/Microsoft/Win32/CommonItemDialog.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,10 +9,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Windows; - -// There are THREE definitions of HRESULT. Two in ErrorCodes, and one in wgx_render.cs. -// wgx_render.cs wins if we don't explicitly define it here. -using HRESULT = MS.Internal.Interop.HRESULT; +using Windows.Win32.Foundation; namespace Microsoft.Win32 { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/PresentationFramework.csproj b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/PresentationFramework.csproj index 5b90421c0a6..90b49d883ba 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/PresentationFramework.csproj +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/PresentationFramework.csproj @@ -1313,7 +1313,6 @@ - @@ -1371,6 +1370,7 @@ + @@ -1387,6 +1387,7 @@ + diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Appearance/WindowBackdropManager.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Appearance/WindowBackdropManager.cs index 81157e76b02..02924cdf00e 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Appearance/WindowBackdropManager.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Appearance/WindowBackdropManager.cs @@ -1,8 +1,11 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + using System.Windows.Interop; using System.Windows.Media; using MS.Internal; using Standard; -using HRESULT = Standard.HRESULT; +using Windows.Win32.Foundation; // ReSharper disable once CheckNamespace namespace System.Windows.Appearance; @@ -71,11 +74,11 @@ private static bool ApplyBackdrop(IntPtr hwnd, WindowBackdropType backdropType) var backdropPvAttribute = backdropType switch { - WindowBackdropType.Auto => Standard.DWMSBT.DWMSBT_TABBEDWINDOW, - WindowBackdropType.TabbedWindow => Standard.DWMSBT.DWMSBT_TABBEDWINDOW, - WindowBackdropType.MainWindow => Standard.DWMSBT.DWMSBT_MAINWINDOW, - WindowBackdropType.TransientWindow => Standard.DWMSBT.DWMSBT_TRANSIENTWINDOW, - _ => Standard.DWMSBT.DWMSBT_NONE + WindowBackdropType.Auto => DWMSBT.DWMSBT_TABBEDWINDOW, + WindowBackdropType.TabbedWindow => DWMSBT.DWMSBT_TABBEDWINDOW, + WindowBackdropType.MainWindow => DWMSBT.DWMSBT_MAINWINDOW, + WindowBackdropType.TransientWindow => DWMSBT.DWMSBT_TRANSIENTWINDOW, + _ => DWMSBT.DWMSBT_NONE }; var dwmResult = NativeMethods.DwmSetWindowAttributeSystemBackdropType(hwnd, backdropPvAttribute); @@ -86,7 +89,7 @@ private static bool RemoveBackdrop(IntPtr hwnd) { UpdateGlassFrame(hwnd, WindowBackdropType.None); - var backdropPvAttribute = Standard.DWMSBT.DWMSBT_NONE; + var backdropPvAttribute = DWMSBT.DWMSBT_NONE; var dwmResult = NativeMethods.DwmSetWindowAttributeSystemBackdropType(hwnd, backdropPvAttribute); return dwmResult == HRESULT.S_OK; } @@ -128,8 +131,7 @@ private static bool UpdateGlassFrame(IntPtr hwnd, WindowBackdropType backdropTyp margins = new MARGINS { cxLeftWidth = -1, cxRightWidth = -1, cyTopHeight = -1, cyBottomHeight = -1 }; } - var dwmApiResult = NativeMethods.DwmExtendFrameIntoClientArea(hwnd, ref margins); - return new HRESULT((uint)dwmApiResult) == HRESULT.S_OK; + return NativeMethods.DwmExtendFrameIntoClientArea(hwnd, ref margins) == HRESULT.S_OK; } #endregion @@ -143,4 +145,4 @@ private static bool UpdateGlassFrame(IntPtr hwnd, WindowBackdropType backdropTyp #endregion -} \ No newline at end of file +} diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Primitives/Popup.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Primitives/Popup.cs index df7fd9c875f..932d5c085ef 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Primitives/Popup.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/Primitives/Popup.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -23,6 +23,7 @@ using MS.Internal.KnownBoxes; using MS.Internal.Interop; using MS.Win32; +using Windows.Win32.Foundation; using CommonDependencyProperty = MS.Internal.PresentationFramework.CommonDependencyPropertyAttribute; @@ -264,9 +265,9 @@ private void UpdatePlacementTargetRegistration(UIElement oldValue, UIElement new // This causes Popup and its descedents to miss some change notifications. // Thus a Popup that isnt connected to the tree in any way should be // designated standalone and thus IsSelfInheritanceParent = true. - if (!this.IsSelfInheritanceParent) + if (!IsSelfInheritanceParent) { - this.SetIsSelfInheritanceParent(); + SetIsSelfInheritanceParent(); } // Invalidate relevant properties for this subtree @@ -1215,7 +1216,7 @@ private static void OnLostMouseCapture(object sender, MouseEventArgs e) // // Note we do not reestablish capture if we are losing capture // ourselves. - bool reestablishCapture = e.OriginalSource != root && Mouse.Captured == null && MS.Win32.SafeNativeMethods.GetCapture() == IntPtr.Zero; + bool reestablishCapture = e.OriginalSource != root && Mouse.Captured == null && SafeNativeMethods.GetCapture() == IntPtr.Zero; if(reestablishCapture) { @@ -1287,7 +1288,7 @@ void IAddChild.AddChild(Object value) throw new ArgumentException(SR.Format(SR.UnexpectedParameterType, value.GetType(), typeof(UIElement)), "value"); } - this.Child = element; + Child = element; } /// @@ -1324,7 +1325,7 @@ internal override bool BlockReverseInheritance() // In the case that the Popup has a TemplatedParent we don't want // to block reverse inheritance because the Popup is considered // part of that tree. - return this.TemplatedParent == null; + return TemplatedParent == null; } /// @@ -1395,7 +1396,7 @@ protected override bool IsUnchanged { get { - return Object.ReferenceEquals(Content, _popup.Child); + return ReferenceEquals(Content, _popup.Child); } } @@ -2667,9 +2668,9 @@ private Rect GetScreenBounds(Rect boundingBox, Point p) SafeNativeMethods.GetMonitorInfo(new HandleRef(null, monitor), monitorInfo); //If this is a pop up for a menu or ToolTip then respect the work area if opening in the work area. - if (((this.Child is MenuBase) - || (this.Child is ToolTip) - || (this.TemplatedParent is MenuItem)) + if (((Child is MenuBase) + || (Child is ToolTip) + || (TemplatedParent is MenuItem)) && ((p.X >= monitorInfo.rcWork.left) && (p.X <= monitorInfo.rcWork.right) && (p.Y >= monitorInfo.rcWork.top) @@ -2979,7 +2980,7 @@ internal bool IsChildPopup internal Point ClientToScreen(Visual rootVisual, Point clientPoint) { // Get the HwndSource of the target element. - HwndSource targetWindow = PopupSecurityHelper.GetPresentationSource(rootVisual) as HwndSource; + HwndSource targetWindow = GetPresentationSource(rootVisual) as HwndSource; if (targetWindow != null) { @@ -3023,7 +3024,7 @@ internal NativeMethods.POINT GetMouseCursorPos(Visual targetVisual) HwndSource hwndSource = null; if (targetVisual != null) { - hwndSource = PopupSecurityHelper.GetPresentationSource(targetVisual) as HwndSource; + hwndSource = GetPresentationSource(targetVisual) as HwndSource; } IInputElement relativeTarget = targetVisual as IInputElement; @@ -3118,7 +3119,7 @@ internal static Matrix GetTransformToDevice(Visual targetVisual) HwndSource hwndSource = null; if (targetVisual != null) { - hwndSource = PopupSecurityHelper.GetPresentationSource(targetVisual) as HwndSource; + hwndSource = GetPresentationSource(targetVisual) as HwndSource; } if (hwndSource != null) @@ -3151,7 +3152,7 @@ internal void SetWindowRootVisual(Visual v) internal static bool IsVisualPresentationSourceNull(Visual visual) { - return (PopupSecurityHelper.GetPresentationSource(visual) == null); + return (GetPresentationSource(visual) == null); } internal void ShowWindow() @@ -3301,13 +3302,13 @@ internal void BuildWindow(int x, int y, Visual placementTarget, } // get visual's PresentationSource - HwndSource hwndSource = PopupSecurityHelper.GetPresentationSource(mainTreeVisual) as HwndSource; + HwndSource hwndSource = GetPresentationSource(mainTreeVisual) as HwndSource; // get parent handle IntPtr parent = IntPtr.Zero; if (hwndSource != null) { - parent = PopupSecurityHelper.GetHandle(hwndSource); + parent = GetHandle(hwndSource); } int classStyle = 0; @@ -3438,13 +3439,11 @@ internal void ForceMsaaToUiaBridge(PopupRoot popupRoot) if (lResult != IntPtr.Zero) { IAccessible acc = null; - int hr = NativeMethods.S_FALSE; Guid iid = new Guid(MS.Internal.AppModel.IID.Accessible); - hr = UnsafeNativeMethods.ObjectFromLresult(lResult, ref iid, IntPtr.Zero, ref acc); - if (hr == NativeMethods.S_OK && acc != null) + HRESULT result = UnsafeNativeMethods.ObjectFromLresult(lResult, ref iid, IntPtr.Zero, ref acc); + if (result == HRESULT.S_OK && acc != null) { // Release IAccessible(acc) object, just trusting the GC - ; } } } @@ -3530,8 +3529,8 @@ internal static bool IsPerMonitorDpiScalingActive var target = popup?.GetTarget() as UIElement; if (target != null) { - var rootVisual = Popup.GetRootVisual(target); - var targetToClientTransform = Popup.TransformToClient(target, rootVisual); + var rootVisual = GetRootVisual(target); + var targetToClientTransform = TransformToClient(target, rootVisual); Point ptPlacementTargetOrigin; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/WebBrowser.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/WebBrowser.cs index 5ebd5e587cb..1b37d8b94ab 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/WebBrowser.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Controls/WebBrowser.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -20,8 +20,7 @@ using MS.Internal.Controls; using MS.Internal.Telemetry.PresentationFramework; using System.Diagnostics.CodeAnalysis; - -using HRESULT = MS.Internal.Interop.HRESULT; +using Windows.Win32.Foundation; using PackUriHelper = MS.Internal.IO.Packaging.PackUriHelper; /* Overview of Keyboard Input Routing for the WebOC @@ -288,7 +287,7 @@ public object InvokeScript(string scriptName, params object[] args) int[] dispids = new int[] { NativeMethods.DISPID_UNKNOWN }; HRESULT hr = scriptObjectEx.GetIDsOfNames(ref guid, names, 1, Thread.CurrentThread.CurrentCulture.LCID, dispids); - hr.ThrowIfFailed(); + hr.ThrowOnFailureUnwrapWin32(); if (args != null) { @@ -321,7 +320,7 @@ public object InvokeScript(string scriptName, params object[] args) out retVal, new NativeMethods.EXCEPINFO(), null); - hr.ThrowIfFailed(); + hr.ThrowOnFailureUnwrapWin32(); } finally { @@ -545,7 +544,7 @@ internal override object CreateActiveXObject(Guid clsid) internal override void AttachInterfaces(object nativeActiveXObject) { //cache the interface - this._axIWebBrowser2 = (UnsafeNativeMethods.IWebBrowser2)nativeActiveXObject; + _axIWebBrowser2 = (UnsafeNativeMethods.IWebBrowser2)nativeActiveXObject; // //Initializations @@ -922,7 +921,7 @@ private void DoNavigate(Uri source, ref object targetFrameName, ref object postD /// private void SyncUIActiveState() { - if (ActiveXState != ActiveXHelper.ActiveXState.UIActive && this.HasFocusWithinCore()) + if (ActiveXState != ActiveXHelper.ActiveXState.UIActive && HasFocusWithinCore()) { Invariant.Assert(ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive); ActiveXState = ActiveXHelper.ActiveXState.UIActive; @@ -955,12 +954,12 @@ protected override bool TabIntoCore(TraversalRequest request) Invariant.Assert(ActiveXState >= ActiveXHelper.ActiveXState.InPlaceActive, "Should be at least InPlaceActive when tabbed into"); bool activated = DoVerb(NativeMethods.OLEIVERB_UIACTIVATE); - + if (activated) { - this.ActiveXState = ActiveXHelper.ActiveXState.UIActive; + ActiveXState = ActiveXHelper.ActiveXState.UIActive; } - + return activated; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/InputScopeAttribute.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/InputScopeAttribute.cs index 60b57d8af88..1687e5b145f 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/InputScopeAttribute.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/InputScopeAttribute.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -10,6 +10,7 @@ using System.Runtime.InteropServices; using System.Windows.Input; using MS.Win32; +using Windows.Win32.Foundation; namespace System.Windows.Documents @@ -58,7 +59,7 @@ public void GetInputScopes(out IntPtr ppinputscopes, out int count) } catch (OutOfMemoryException) { - throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, NativeMethods.E_OUTOFMEMORY); + throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, HRESULT.E_OUTOFMEMORY); } for (int i = 0; i < count; i++) @@ -86,7 +87,7 @@ public int GetPhrase(out IntPtr ppbstrPhrases, out int count) } catch (OutOfMemoryException) { - throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, NativeMethods.E_OUTOFMEMORY); + throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, HRESULT.E_OUTOFMEMORY); } int offset = 0; @@ -105,14 +106,14 @@ public int GetPhrase(out IntPtr ppbstrPhrases, out int count) Marshal.FreeBSTR(Marshal.ReadIntPtr(ppbstrPhrases, offset)); offset += IntPtr.Size; } - throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, NativeMethods.E_OUTOFMEMORY); + throw new COMException(SR.InputScopeAttribute_E_OUTOFMEMORY, HRESULT.E_OUTOFMEMORY); } Marshal.WriteIntPtr(ppbstrPhrases , offset, pbstr); offset += IntPtr.Size; } - return count > 0 ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return count > 0 ? HRESULT.S_OK : HRESULT.S_FALSE; } // A method of ITfInputScope. @@ -124,7 +125,7 @@ public int GetRegularExpression(out string desc) { desc = _inputScope.RegularExpression; } - return desc != null ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return desc != null ? HRESULT.S_OK : HRESULT.S_FALSE; } // A method of ITfInputScope. @@ -136,14 +137,14 @@ public int GetSRGC(out string desc) { desc = _inputScope.SrgsMarkup; } - return desc != null ? NativeMethods.S_OK : NativeMethods.S_FALSE; + return desc != null ? HRESULT.S_OK : HRESULT.S_FALSE; } // A method of ITfInputScope. public int GetXML(out string desc) { desc = null; - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } #endregion Internal Methods diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/NLGSpellerInterop.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/NLGSpellerInterop.cs index cb62e4448b2..293aa390de0 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/NLGSpellerInterop.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/NLGSpellerInterop.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,6 +8,7 @@ using System.Globalization; using System.Windows.Controls; using MS.Internal.PresentationFramework; +using Windows.Win32.Foundation; // // Description: Custom COM marshalling code and interfaces for interaction @@ -220,7 +221,7 @@ internal override int EnumTextSegments(char[] text, int count, result = EnumVariantNext(sentenceEnumerator, variant, fetched); - if ((result != NativeMethods.S_OK) || (fetched[0] == 0)) + if ((result != HRESULT.S_OK) || (fetched[0] == 0)) { break; } @@ -594,7 +595,7 @@ private void EnumerateSuggestions() variant.Clear(); result = EnumVariantNext(variantEnumerator, variant, fetched); - if ((result != NativeMethods.S_OK) || (fetched[0] == 0)) + if ((result != HRESULT.S_OK) || (fetched[0] == 0)) { break; } @@ -963,7 +964,7 @@ private ILexicon AddLexicon(string lexiconFilePath) { hasDemand = true; - lexicon = NLGSpellerInterop.CreateLexicon(); + lexicon = CreateLexicon(); lexicon.ReadFrom(lexiconFilePath); _textChunk.get_Context(out textContext); textContext.AddLexicon(lexicon); diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextEditorDragDrop.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextEditorDragDrop.cs index e3b4a7b30e1..48f21d1df1c 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextEditorDragDrop.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextEditorDragDrop.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Data; // BindingExpression using System.Windows.Media; using MS.Win32; +using Windows.Win32.Foundation; // // Description: A Component of TextEditor class supposrtinng Drag-and-drop @@ -118,13 +119,13 @@ internal bool SourceOnMouseLeftButtonDown(Point mouseDownPoint) internal void DoMouseLeftButtonUp(MouseButtonEventArgs e) { if (_dragStarted) - { + { // We get to this state when drag gesture ends within the selection, // so we only need to set selection into mouse-releasing point. - if (this.TextView.IsValid) + if (TextView.IsValid) { Point mouseDownPoint = e.GetPosition(_textEditor.TextView.RenderScope); - ITextPointer cursorPosition = this.TextView.GetTextPositionFromPoint(mouseDownPoint, /*snapToText:*/true); + ITextPointer cursorPosition = TextView.GetTextPositionFromPoint(mouseDownPoint, /*snapToText:*/true); if (cursorPosition != null) { _textEditor.Selection.SetSelectionByMouse(cursorPosition, mouseDownPoint); @@ -228,7 +229,7 @@ private void SourceDoDragDrop(ITextSelection selection, IDataObject dataObject) // if something unexpected happened during the drag and drop operation, // e.g. the application receiving the drop failed. In this case we should // not fail, we should catch the exception and act as if the drop wasn't allowed. - catch (COMException ex) when(ex.HResult == NativeMethods.E_UNEXPECTED) + catch (COMException ex) when(ex.HResult == HRESULT.E_UNEXPECTED) { } @@ -407,7 +408,7 @@ internal void TargetOnDragOver(DragEventArgs e) if (dragPosition != null) { // Get the caret position to show the dropable point. - Rect caretRectangle = this.TextView.GetRectangleFromTextPosition(dragPosition); + Rect caretRectangle = TextView.GetRectangleFromTextPosition(dragPosition); // NOTE: We DO NOT use GetCurrentValue because springload formatting should NOT be involved for drop caret. object fontStylePropertyValue = dragPosition.GetValue(TextElement.FontStyleProperty); @@ -445,7 +446,7 @@ private ITextPointer GetDropPosition(Visual target, Point point) transform.TryTransform(point, out point); } - ITextPointer dropPosition = this.TextView.GetTextPositionFromPoint(point, /*snapToText:*/true); + ITextPointer dropPosition = TextView.GetTextPositionFromPoint(point, /*snapToText:*/true); // For rich text content we adjust drop position to word boundary if (dropPosition != null) @@ -455,7 +456,7 @@ private ITextPointer GetDropPosition(Visual target, Point point) if (_textEditor.AcceptsRichContent) { - TextSegment lineRange = TextEditorSelection.GetNormalizedLineRange(this.TextView, dropPosition); + TextSegment lineRange = TextEditorSelection.GetNormalizedLineRange(TextView, dropPosition); if (!lineRange.IsNull && // The drop position must be before of end of line diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextServicesDisplayAttributePropertyRanges.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextServicesDisplayAttributePropertyRanges.cs index 0f33d489085..1ca76b174dc 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextServicesDisplayAttributePropertyRanges.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextServicesDisplayAttributePropertyRanges.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -6,6 +6,7 @@ using System.Runtime.InteropServices; using System.Collections; using MS.Win32; +using Windows.Win32.Foundation; namespace System.Windows.Documents { @@ -116,12 +117,12 @@ internal override void OnEndEdit(UnsafeNativeMethods.ITfContext context, displayAttributeGuid = Guid; context.GetProperty(ref displayAttributeGuid, out displayAttributeProperty); // Get a range enumerator for the property. - if (displayAttributeProperty.EnumRanges(ecReadOnly, out attributeRangeEnumerator, null) == NativeMethods.S_OK) + if (displayAttributeProperty.EnumRanges(ecReadOnly, out attributeRangeEnumerator, null) == HRESULT.S_OK) { attributeRanges = new UnsafeNativeMethods.ITfRange[1]; // Walk each range. - while (attributeRangeEnumerator.Next(1, attributeRanges, out fetched) == NativeMethods.S_OK) + while (attributeRangeEnumerator.Next(1, attributeRanges, out fetched) == HRESULT.S_OK) { // Get a DisplayAttribute for this range. guidAtom = GetInt32Value(ecReadOnly, displayAttributeProperty, attributeRanges[0]); @@ -144,8 +145,8 @@ internal override void OnEndEdit(UnsafeNativeMethods.ITfContext context, if (_compositionAdorner == null) { - _compositionAdorner = new CompositionAdorner(this.TextStore.TextView); - _compositionAdorner.Initialize(this.TextStore.TextView); + _compositionAdorner = new CompositionAdorner(TextStore.TextView); + _compositionAdorner.Initialize(TextStore.TextView); } #if UNUSED_IME_HIGHLIGHT_LAYER @@ -171,7 +172,7 @@ internal override void OnEndEdit(UnsafeNativeMethods.ITfContext context, if (_compositionAdorner != null) { // Update the layout to get the acurated rectangle from calling GetRectangleFromTextPosition - this.TextStore.RenderScope.UpdateLayout(); + TextStore.RenderScope.UpdateLayout(); // Invalidate the composition adorner to render the composition attribute ranges. _compositionAdorner.InvalidateAdorner(); @@ -225,7 +226,7 @@ private static TextServicesDisplayAttribute GetDisplayAttribute(Int32 guidatom) // Use category manager to convert guidatom to GUID. // UnsafeNativeMethods.ITfCategoryMgr catmgr; - if (UnsafeNativeMethods.TF_CreateCategoryMgr(out catmgr) != NativeMethods.S_OK) + if (UnsafeNativeMethods.TF_CreateCategoryMgr(out catmgr) != HRESULT.S_OK) return null; if (catmgr == null) @@ -245,7 +246,7 @@ private static TextServicesDisplayAttribute GetDisplayAttribute(Int32 guidatom) UnsafeNativeMethods.ITfDisplayAttributeMgr dam; UnsafeNativeMethods.ITfDisplayAttributeInfo dai; UnsafeNativeMethods.TF_DISPLAYATTRIBUTE tfattr; - if (UnsafeNativeMethods.TF_CreateDisplayAttributeMgr(out dam) != NativeMethods.S_OK) + if (UnsafeNativeMethods.TF_CreateDisplayAttributeMgr(out dam) != HRESULT.S_OK) return null; if (dam == null) diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextStore.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextStore.cs index 0e8e7b0257c..d84f5b87785 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextStore.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Documents/TextStore.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -20,6 +20,7 @@ using System.Windows.Interop; using MS.Internal.Documents; using MS.Win32; +using Windows.Win32.Foundation; namespace System.Windows.Documents { @@ -328,9 +329,9 @@ public void GetSelection(int index, int count, UnsafeNativeMethods.TS_SELECTION_ if (count > 0 && (index == 0 || index == UnsafeNativeMethods.TS_DEFAULT_SELECTION)) { - selection[0].start = this.TextSelection.Start.CharOffset; - selection[0].end = this.TextSelection.End.CharOffset; - selection[0].style.ase = (this.TextSelection.MovingPosition.CompareTo(this.TextSelection.Start) == 0) ? UnsafeNativeMethods.TsActiveSelEnd.TS_AE_START : UnsafeNativeMethods.TsActiveSelEnd.TS_AE_END; + selection[0].start = TextSelection.Start.CharOffset; + selection[0].end = TextSelection.End.CharOffset; + selection[0].style.ase = (TextSelection.MovingPosition.CompareTo(TextSelection.Start) == 0) ? UnsafeNativeMethods.TsActiveSelEnd.TS_AE_START : UnsafeNativeMethods.TsActiveSelEnd.TS_AE_END; selection[0].style.interimChar = _interimSelection; fetched = 1; @@ -364,15 +365,15 @@ public void SetSelection(int count, UnsafeNativeMethods.TS_SELECTION_ACP[] selec { // Setting a caret. Make sure we set Backward direction to // keep the caret tight with the composition text. - this.TextSelection.SetCaretToPosition(start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true); + TextSelection.SetCaretToPosition(start, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true); } else if (selection[0].style.ase == UnsafeNativeMethods.TsActiveSelEnd.TS_AE_START) { - this.TextSelection.Select(end, start); + TextSelection.Select(end, start); } else { - this.TextSelection.Select(start, end); + TextSelection.Select(start, end); } // Update the selection style of InterimSelection. @@ -382,7 +383,7 @@ public void SetSelection(int count, UnsafeNativeMethods.TS_SELECTION_ACP[] selec if (previousInterimSelection != _interimSelection) { // Call TextSelection to start/stop the block caret. - this.TextSelection.OnInterimSelectionChanged(_interimSelection); + TextSelection.OnInterimSelectionChanged(_interimSelection); } } } @@ -470,7 +471,7 @@ public void GetText(int startIndex, int endIndex, char[] text, int cchReq, out i // See msdn's ITextStoreACP documentation for a full description. public void SetText(UnsafeNativeMethods.SetTextFlags flags, int startIndex, int endIndex, char[] text, int cch, out UnsafeNativeMethods.TS_TEXTCHANGE change) { - if (this.IsReadOnly) + if (IsReadOnly) { throw new COMException(SR.TextStore_TS_E_READONLY, UnsafeNativeMethods.TS_E_READONLY); } @@ -493,7 +494,7 @@ public void SetText(UnsafeNativeMethods.SetTextFlags flags, int startIndex, int if (start == null) { - throw new COMException(SR.TextStore_CompositionRejected, NativeMethods.E_FAIL); + throw new COMException(SR.TextStore_CompositionRejected, HRESULT.E_FAIL); } if (start.CompareTo(end) > 0) @@ -504,7 +505,7 @@ public void SetText(UnsafeNativeMethods.SetTextFlags flags, int startIndex, int string filteredText = FilterCompositionString(new string(text), start.GetOffsetToPosition(end)); // does NOT filter MaxLength. if (filteredText == null) { - throw new COMException(SR.TextStore_CompositionRejected, NativeMethods.E_FAIL); + throw new COMException(SR.TextStore_CompositionRejected, HRESULT.E_FAIL); } // Openes a composition undo unit for the composition undo. @@ -515,7 +516,7 @@ public void SetText(UnsafeNativeMethods.SetTextFlags flags, int startIndex, int { ITextRange range = new TextRange(start, end, true /* ignoreTextUnitBoundaries */); - this.TextEditor.SetText(range, filteredText, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.SetText(range, filteredText, InputLanguageManager.Current.CurrentInputLanguage); change.start = startIndex; change.oldEnd = endIndex; @@ -624,7 +625,7 @@ public void InsertEmbedded(UnsafeNativeMethods.InsertEmbeddedFlags flags, int st data = obj as IComDataObject; if (data == null) { - throw new COMException(SR.TextStore_BadObject, NativeMethods.E_INVALIDARG); + throw new COMException(SR.TextStore_BadObject, HRESULT.E_INVALIDARG); } container = (TextContainer)this.TextContainer; @@ -671,7 +672,7 @@ public void InsertTextAtSelection(UnsafeNativeMethods.InsertAtSelectionFlags fla // We need to refactor the code to change that. // - ITextRange range = new TextRange(this.TextSelection.AnchorPosition, this.TextSelection.MovingPosition); + ITextRange range = new TextRange(TextSelection.AnchorPosition, TextSelection.MovingPosition); range.ApplyTypingHeuristics(false /* overType */); ITextPointer start; @@ -705,13 +706,13 @@ public void InsertTextAtSelection(UnsafeNativeMethods.InsertAtSelectionFlags fla string filteredText = FilterCompositionString(new string(text), range.Start.GetOffsetToPosition(range.End)); // does NOT filter MaxLength. if (filteredText == null) { - throw new COMException(SR.TextStore_CompositionRejected, NativeMethods.E_FAIL); + throw new COMException(SR.TextStore_CompositionRejected, HRESULT.E_FAIL); } // We still need to call ApplyTypingHeuristics, even though // we already did the work above, because it might need // to spring load formatting. - this.TextSelection.ApplyTypingHeuristics(false /* overType */); + TextSelection.ApplyTypingHeuristics(false /* overType */); //Invariant.Assert(this.TextSelection.Start.CompareTo(range.Start) == 0 && this.TextSelection.End.CompareTo(range.End) == 0); // We cannot make this Assertion because TextRange will normalize @@ -739,10 +740,10 @@ public void InsertTextAtSelection(UnsafeNativeMethods.InsertAtSelectionFlags fla // Avoid calling Select when the selection doesn't need a // final reposition to preserve any spring loaded formatting // from ApplyTypingHeuristics. - if (start.CompareTo(this.TextSelection.Start) != 0 || - end.CompareTo(this.TextSelection.End) != 0) + if (start.CompareTo(TextSelection.Start) != 0 || + end.CompareTo(TextSelection.End) != 0) { - this.TextSelection.Select(start, end); + TextSelection.Select(start, end); } if (!_isComposing && _previousCompositionStartOffset == -1) @@ -753,11 +754,11 @@ public void InsertTextAtSelection(UnsafeNativeMethods.InsertAtSelectionFlags fla // to remember where the composition started, from the // point of view of the application listening to events // we will raise in the future. - _previousCompositionStartOffset = this.TextSelection.Start.Offset; - _previousCompositionEndOffset = this.TextSelection.End.Offset; + _previousCompositionStartOffset = TextSelection.Start.Offset; + _previousCompositionEndOffset = TextSelection.End.Offset; } - this.TextEditor.SetSelectedText(filteredText, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.SetSelectedText(filteredText, InputLanguageManager.Current.CurrentInputLanguage); change.start = startNavigator.CharOffset; change.newEnd = endNavigator.CharOffset; @@ -821,7 +822,7 @@ public void InsertEmbeddedAtSelection(UnsafeNativeMethods.InsertAtSelectionFlags data = obj as IComDataObject; if (data == null) { - throw new COMException(SR.TextStore_BadObject, NativeMethods.E_INVALIDARG); + throw new COMException(SR.TextStore_BadObject, HRESULT.E_INVALIDARG); } // Do the insert. @@ -852,9 +853,9 @@ public int RequestSupportedAttrs(UnsafeNativeMethods.AttributeFlags flags, int c count, filterAttributes); if (_preparedattributes.Count == 0) - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; - return NativeMethods.S_OK; + return HRESULT.S_OK; } // See msdn's ITextStoreACP documentation for a full description. @@ -872,9 +873,9 @@ public int RequestAttrsAtPosition(int index, int count, Guid[] filterAttributes, count, filterAttributes); if (_preparedattributes.Count == 0) - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; - return NativeMethods.S_OK; + return HRESULT.S_OK; } @@ -915,7 +916,7 @@ public void RetrieveRequestedAttrs(int count, UnsafeNativeMethods.TS_ATTRVAL[] a // See msdn's ITextStoreACP documentation for a full description. public void GetEnd(out int end) { - end = this.TextContainer.IMECharCount; + end = TextContainer.IMECharCount; } // See msdn's ITextStoreACP documentation for a full description. @@ -1037,7 +1038,7 @@ void UnsafeNativeMethods.ITextStoreACP.GetTextExt(int viewCookie, int startIndex "text changed - bail"); } - _netCharCount = this.TextContainer.IMECharCount; + _netCharCount = TextContainer.IMECharCount; throw new COMException(SR.TextStore_TS_E_NOLAYOUT, UnsafeNativeMethods.TS_E_NOLAYOUT); } @@ -1050,7 +1051,7 @@ void UnsafeNativeMethods.ITextStoreACP.GetTextExt(int viewCookie, int startIndex startPointer = CreatePointerAtCharOffset(startIndex, LogicalDirection.Forward); startPointer.MoveToInsertionPosition(LogicalDirection.Forward); - if (!this.TextView.IsValid) + if (!TextView.IsValid) { // We can not get the visual. Return TS_R_NOLAYOUT to the caller. throw new COMException(SR.TextStore_TS_E_NOLAYOUT, UnsafeNativeMethods.TS_E_NOLAYOUT); @@ -1073,7 +1074,7 @@ void UnsafeNativeMethods.ITextStoreACP.GetTextExt(int viewCookie, int startIndex do { // Compute the textSegment bounds line by line. - TextSegment lineRange = this.TextView.GetLineRange(navigator); + TextSegment lineRange = TextView.GetLineRange(navigator); ITextPointer end; Rect lineRect; @@ -1250,13 +1251,13 @@ public void OnStartComposition(UnsafeNativeMethods.ITfCompositionView view, out } else { - if (this.TextEditor.AcceptsRichContent && start.CompareTo(end) != 0) + if (TextEditor.AcceptsRichContent && start.CompareTo(end) != 0) { TextElement startElement = (TextElement)((TextPointer)start).Parent; TextElement endElement = (TextElement)((TextPointer)end).Parent; TextElement commonAncestor = TextElement.GetCommonAncestor(startElement, endElement); - int originalIMECharCount = this.TextContainer.IMECharCount; + int originalIMECharCount = TextContainer.IMECharCount; TextRange range = new TextRange(start, end); string unmergedText = range.Text; @@ -1266,7 +1267,7 @@ public void OnStartComposition(UnsafeNativeMethods.ITfCompositionView view, out // serialized text for the range can include extra characters for things like // ListItems, which could cause us to increase the number of characters visible // to the IME in the document. - this.TextEditor.MarkCultureProperty(range, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.MarkCultureProperty(range, InputLanguageManager.Current.CurrentInputLanguage); } else if (commonAncestor is Paragraph || commonAncestor is Span) { @@ -1282,19 +1283,19 @@ public void OnStartComposition(UnsafeNativeMethods.ITfCompositionView view, out // Force any merges now by replacing the content with a single // Run, before we start caching character offsets. - this.TextEditor.SetText(range, unmergedText, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.SetText(range, unmergedText, InputLanguageManager.Current.CurrentInputLanguage); } // It is crucial that from the point of view of the IME the document // has not changed. That means the plain text of the content we just // replaced must not have changed. Invariant.Assert(range.Text == unmergedText); - Invariant.Assert(originalIMECharCount == this.TextContainer.IMECharCount); + Invariant.Assert(originalIMECharCount == TextContainer.IMECharCount); } } // Add the composition message into the composition message list. // This composition message list will be handled all together after we release the lock. - this.CompositionEventList.Add(new CompositionEventRecord(CompositionStage.StartComposition, startOffsetBefore, endOffsetBefore, _lastCompositionText)); + CompositionEventList.Add(new CompositionEventRecord(CompositionStage.StartComposition, startOffsetBefore, endOffsetBefore, _lastCompositionText)); _previousCompositionStartOffset = start.Offset; _previousCompositionEndOffset = end.Offset; @@ -1321,7 +1322,7 @@ public void OnUpdateComposition(UnsafeNativeMethods.ITfCompositionView view, Uns } // If UiScope has a ToolTip and it is open, any keyboard/mouse activity should close the tooltip. - this.TextEditor.CloseToolTip(); + TextEditor.CloseToolTip(); Invariant.Assert(_isComposing); Invariant.Assert(_previousCompositionStartOffset != -1); @@ -1348,7 +1349,7 @@ public void OnUpdateComposition(UnsafeNativeMethods.ITfCompositionView view, Uns { // Add internal shift record to process it later when we raise events in RaiseCompositionEvents. CompositionEventRecord record = new CompositionEventRecord(CompositionStage.UpdateComposition, _previousCompositionStartOffset, _previousCompositionEndOffset, compositionText, true); - this.CompositionEventList.Add(record); + CompositionEventList.Add(record); _previousCompositionStartOffset = newStart.Offset; _previousCompositionEndOffset = newEnd.Offset; @@ -1361,13 +1362,13 @@ public void OnUpdateComposition(UnsafeNativeMethods.ITfCompositionView view, Uns // This composition message list will be handled all together after release the lock. CompositionEventRecord record = new CompositionEventRecord(CompositionStage.UpdateComposition, _previousCompositionStartOffset, _previousCompositionEndOffset, compositionText); - CompositionEventRecord previousRecord = (this.CompositionEventList.Count == 0) ? null : this.CompositionEventList[this.CompositionEventList.Count - 1]; + CompositionEventRecord previousRecord = (CompositionEventList.Count == 0) ? null : CompositionEventList[CompositionEventList.Count - 1]; if (_lastCompositionText == null || !string.Equals(compositionText, _lastCompositionText, StringComparison.Ordinal)) { // Add the new update event. - this.CompositionEventList.Add(record); + CompositionEventList.Add(record); } _previousCompositionStartOffset = oldStart.Offset; @@ -1406,7 +1407,7 @@ public void OnEndComposition(UnsafeNativeMethods.ITfCompositionView view) { // Add the composition message into the composition message list. // This composition message list will be handled all together after release the lock. - this.CompositionEventList.Add(new CompositionEventRecord(CompositionStage.EndComposition, start.Offset, end.Offset, TextRangeBase.GetTextInternal(start, end))); + CompositionEventList.Add(new CompositionEventRecord(CompositionStage.EndComposition, start.Offset, end.Offset, TextRangeBase.GetTextInternal(start, end))); // Composition event is completed, so new composition undo unit will be opened. CompositionParentUndoUnit unit = PeekCompositionParentUndoUnit(); @@ -1509,10 +1510,10 @@ public void OnTransitoryExtensionUpdated(UnsafeNativeMethods.ITfContext context, string filteredText = FilterCompositionString(result, TextSelection.Start.GetOffsetToPosition(TextSelection.End)); // does NOT filter MaxLength. if (filteredText == null) { - throw new COMException(SR.TextStore_CompositionRejected, NativeMethods.E_FAIL); + throw new COMException(SR.TextStore_CompositionRejected, HRESULT.E_FAIL); } - this.TextEditor.SetText(TextSelection, filteredText, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.SetText(TextSelection, filteredText, InputLanguageManager.Current.CurrentInputLanguage); TextSelection.Select(TextSelection.End, TextSelection.End); } } @@ -1561,13 +1562,13 @@ public int AdviceMouseSink(UnsafeNativeMethods.ITfRangeACP range, UnsafeNativeMe UiScope.PreviewMouseRightButtonUp += new MouseButtonEventHandler(OnMouseButtonEvent); UiScope.PreviewMouseMove += new MouseEventHandler(OnMouseEvent); } - return NativeMethods.S_OK; + return HRESULT.S_OK; } // existing mouse sink is unadviced. public int UnadviceMouseSink(int dwCookie) { - int ret = NativeMethods.E_INVALIDARG; + int ret = HRESULT.E_INVALIDARG; int i; for (i = 0; i < _mouseSinks.Count; i++) { @@ -1595,7 +1596,7 @@ public int UnadviceMouseSink(int dwCookie) { mSink.Dispose(); } - ret = NativeMethods.S_OK; + ret = HRESULT.S_OK; break; } } @@ -1616,14 +1617,14 @@ public int UnadviceMouseSink(int dwCookie) // Called by the TextEditor when the document should go live. internal void OnAttach() { - _netCharCount = this.TextContainer.IMECharCount; + _netCharCount = TextContainer.IMECharCount; // keep _textservicesHost because we may not be in Dispatcher when GC Finalizer calls OnDetach(). _textservicesHost = TextServicesHost.Current; _textservicesHost.RegisterTextStore(this); - this.TextContainer.Change += new TextContainerChangeEventHandler(OnTextContainerChange); + TextContainer.Change += new TextContainerChangeEventHandler(OnTextContainerChange); _textservicesproperty = new TextServicesProperty(this); @@ -1637,9 +1638,9 @@ internal void OnAttach() internal void OnDetach(bool finalizer) { // TextEditor could be GCed before. - if (this.IsTextEditorValid) + if (IsTextEditorValid) { - this.TextContainer.Change -= new TextContainerChangeEventHandler(OnTextContainerChange); + TextContainer.Change -= new TextContainerChangeEventHandler(OnTextContainerChange); } // Relase the naitive resources. Unregister ThreadFocusSink and EditSink and release DocumentManager. @@ -1888,7 +1889,7 @@ internal void CompleteComposition() { if (_isComposing) { - FrameworkTextComposition.CompleteCurrentComposition(this.DocumentManager); + FrameworkTextComposition.CompleteCurrentComposition(DocumentManager); } _previousCompositionStartOffset = -1; @@ -1903,14 +1904,14 @@ internal ITextPointer CreatePointerAtCharOffset(int charOffset, LogicalDirection { ValidateCharOffset(charOffset); - ITextPointer pointer = this.TextContainer.CreatePointerAtCharOffset(charOffset, direction); + ITextPointer pointer = TextContainer.CreatePointerAtCharOffset(charOffset, direction); if (pointer == null) { // A null pointer means that the ITextContainer has no character offsets. // This happens in an empty TextBox, or in a mal-formed RichTextBox. // In either case, use the selection start. - pointer = this.TextSelection.Start.CreatePointer(direction); + pointer = TextSelection.Start.CreatePointer(direction); } return pointer; @@ -1957,7 +1958,7 @@ internal void UpdateCompositionText(FrameworkTextComposition composition) // If we're here it means composition is being finalized // range = new TextRange(composition._ResultStart, composition._ResultEnd, true /* ignoreTextUnitBoundaries */); - text = this.TextEditor._FilterText(composition.Text, range); + text = TextEditor._FilterText(composition.Text, range); if (text.Length != composition.Text.Length) { @@ -1967,7 +1968,7 @@ internal void UpdateCompositionText(FrameworkTextComposition composition) else { range = new TextRange(composition._CompositionStart, composition._CompositionEnd, true /* ignoreTextUnitBoundaries */); - text = this.TextEditor._FilterText(composition.CompositionText, range, /*filterMaxLength:*/false); + text = TextEditor._FilterText(composition.CompositionText, range, /*filterMaxLength:*/false); // A change in length should not happen other than for MaxLength filtering during finalization since we cover those // cases and reject input if necessary when the IME edits the document in the first place. @@ -1996,19 +1997,19 @@ internal void UpdateCompositionText(FrameworkTextComposition composition) compositionUndoUnit.IsLastCompositionUnit = true; } - this.TextSelection.BeginChange(); + TextSelection.BeginChange(); try { - this.TextEditor.SetText(range, text, InputLanguageManager.Current.CurrentInputLanguage); + TextEditor.SetText(range, text, InputLanguageManager.Current.CurrentInputLanguage); // shouldn't we record the selection position from the original event instead? if (_interimSelection) { - this.TextSelection.Select(range.Start, range.End); + TextSelection.Select(range.Start, range.End); } else { - this.TextSelection.SetCaretToPosition(range.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true); + TextSelection.SetCaretToPosition(range.End, LogicalDirection.Backward, /*allowStopAtLineEnd:*/true, /*allowStopNearSpace:*/true); } compositionUndoUnit.RecordRedoSelectionState(range.End, range.End); @@ -2026,7 +2027,7 @@ internal void UpdateCompositionText(FrameworkTextComposition composition) } // PUBLIC EVENT: - this.TextSelection.EndChange(); + TextSelection.EndChange(); if (IsTracing) { @@ -2074,24 +2075,24 @@ internal UIElement RenderScope { get { - if (this.TextEditor == null) + if (TextEditor == null) return null; - if (this.TextEditor.TextView == null) + if (TextEditor.TextView == null) return null; - return this.TextEditor.TextView.RenderScope; + return TextEditor.TextView.RenderScope; } } internal FrameworkElement UiScope { - get { return this.TextEditor.UiScope; } + get { return TextEditor.UiScope; } } internal ITextContainer TextContainer { - get { return this.TextEditor.TextContainer; } + get { return TextEditor.TextContainer; } } internal ITextView TextView @@ -2191,7 +2192,7 @@ private void OnTextContainerChange(object sender, TextContainerChangeEventArgs a IMECompositionTracer.Trace(this, IMECompositionTraceOp.BOnTextContainerChange); } - Invariant.Assert(sender == this.TextContainer); + Invariant.Assert(sender == TextContainer); #if ENABLE_INK_EMBEDDING // Record the offset of the first symbol in the document @@ -2312,12 +2313,12 @@ private int GrantLockWorker(UnsafeNativeMethods.LockFlags flags) int hrSession; - TextEditor textEditor = this.TextEditor; + TextEditor textEditor = TextEditor; if (textEditor == null) { // The app shutdown before we got an async callback. - hrSession = NativeMethods.E_FAIL; + hrSession = HRESULT.E_FAIL; } else { @@ -2613,7 +2614,7 @@ private void GetVisualInfo(out PresentationSource source, out IWin32Window win32 throw new COMException(SR.TextStore_TS_E_NOLAYOUT, UnsafeNativeMethods.TS_E_NOLAYOUT); } - view = this.TextView; + view = TextView; } // Transforms mil measure unit points to screen pixels. @@ -2664,7 +2665,7 @@ private void InsertEmbeddedAtPosition(TextPointer position, IComDataObject data, if (stgmedium.unionmember == IntPtr.Zero) { - throw new COMException(SR.TextStore_BadObjectData, NativeMethods.E_INVALIDARG); + throw new COMException(SR.TextStore_BadObjectData, HRESULT.E_INVALIDARG); } IntPtr hbitmap = SystemDrawingHelper.ConvertMetafileToHBitmap(stgmedium.unionmember); @@ -2917,7 +2918,7 @@ private void GetCompositionPositions(out ITextPointer start, out ITextPointer en if (_isComposing) { - UnsafeNativeMethods.ITfCompositionView view = FrameworkTextComposition.GetCurrentCompositionView(this.DocumentManager); + UnsafeNativeMethods.ITfCompositionView view = FrameworkTextComposition.GetCurrentCompositionView(DocumentManager); if (view != null) { @@ -3111,7 +3112,7 @@ private CompositionParentUndoUnit OpenCompositionUndoUnit() // and add it to the undo stack. private CompositionParentUndoUnit OpenCompositionUndoUnit(ITextPointer compositionStart, ITextPointer compositionEnd) { - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); if (undoManager == null || !undoManager.IsEnabled) { @@ -3138,16 +3139,16 @@ private CompositionParentUndoUnit OpenCompositionUndoUnit(ITextPointer compositi GetCompositionPositions(out compositionStart, out compositionEnd); } - if (compositionStart != null && compositionStart.CompareTo(this.TextSelection.Start) > 0) + if (compositionStart != null && compositionStart.CompareTo(TextSelection.Start) > 0) { start = compositionStart; } else { - start = this.TextSelection.Start; + start = TextSelection.Start; } - CompositionParentUndoUnit unit = new CompositionParentUndoUnit(this.TextSelection, start, start, _nextUndoUnitIsFirstCompositionUnit); + CompositionParentUndoUnit unit = new CompositionParentUndoUnit(TextSelection, start, start, _nextUndoUnitIsFirstCompositionUnit); _nextUndoUnitIsFirstCompositionUnit = false; // Add the given composition undo unit to the undo manager and making it @@ -3272,7 +3273,7 @@ private void RemoveContent(ITextPointer startPosition, ITextPointer endPosition, // filter MaxLength. private string FilterCompositionString(string text, int charsToReplaceCount) { - string newText = this.TextEditor._FilterText(text, charsToReplaceCount, /*filterMaxLength:*/false); + string newText = TextEditor._FilterText(text, charsToReplaceCount, /*filterMaxLength:*/false); // if the length has been changed, there is no way to recover and we finalize the composition string. if (newText.Length != text.Length) @@ -3330,7 +3331,7 @@ private void ValidateChange(UnsafeNativeMethods.TS_TEXTCHANGE change) // in sync with the actual TextContainer. private void VerifyTextStoreConsistency() { - if (_netCharCount != this.TextContainer.IMECharCount) + if (_netCharCount != TextContainer.IMECharCount) { Invariant.Assert(false, "TextContainer/TextStore have inconsistent char counts!"); } @@ -3341,9 +3342,9 @@ private void VerifyTextStoreConsistency() // too large for the document. private void ValidateCharOffset(int offset) { - if (offset < 0 || offset > this.TextContainer.IMECharCount) + if (offset < 0 || offset > TextContainer.IMECharCount) { - throw new ArgumentException(SR.Format(SR.TextStore_BadIMECharOffset, offset, this.TextContainer.IMECharCount)); + throw new ArgumentException(SR.Format(SR.TextStore_BadIMECharOffset, offset, TextContainer.IMECharCount)); } } @@ -3437,7 +3438,7 @@ private static void GetAdjustedSelection(ITextPointer startIn, ITextPointer endI // If we have non-canonical format, give up. if (start == null || start.IsAtRowEnd || TextPointerBase.IsInBlockUIContainer(start)) { - throw new COMException(SR.TextStore_CompositionRejected, NativeMethods.E_FAIL); + throw new COMException(SR.TextStore_CompositionRejected, HRESULT.E_FAIL); } startOut = start; @@ -3507,7 +3508,7 @@ private void GetNormalizedRange(int startCharOffset, int endCharOffset, out ITex // then restore state forward incrementally with each public event. private void HandleCompositionEvents(int previousUndoCount) { - if (this.CompositionEventList.Count == 0 || + if (CompositionEventList.Count == 0 || _compositionEventState != CompositionEventState.NotRaisingEvents) { // No work to do. @@ -3534,10 +3535,10 @@ private void HandleCompositionEvents(int previousUndoCount) try { // Remember our original selection positions. - int imeSelectionAnchorOffset = this.TextSelection.AnchorPosition.Offset; - int imeSelectionMovingOffset = this.TextSelection.MovingPosition.Offset; + int imeSelectionAnchorOffset = TextSelection.AnchorPosition.Offset; + int imeSelectionMovingOffset = TextSelection.MovingPosition.Offset; - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); // // Undo the last set of IME changes, saving the current state @@ -3568,7 +3569,7 @@ private void HandleCompositionEvents(int previousUndoCount) finally { // Clear the composition message list - this.CompositionEventList.Clear(); + CompositionEventList.Clear(); // Reset the rasising composition events flag _compositionEventState = CompositionEventState.NotRaisingEvents; @@ -3586,10 +3587,10 @@ private void HandleCompositionEvents(int previousUndoCount) // Open the text parent undo unit private TextParentUndoUnit OpenTextParentUndoUnit() { - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); // Create the text parent undo unit - TextParentUndoUnit textParentUndoUnit = new TextParentUndoUnit(this.TextSelection, this.TextSelection.Start, this.TextSelection.Start); + TextParentUndoUnit textParentUndoUnit = new TextParentUndoUnit(TextSelection, TextSelection.Start, TextSelection.Start); // Open the text parent undo unit undoManager.Open(textParentUndoUnit); @@ -3602,7 +3603,7 @@ private void CloseTextParentUndoUnit(TextParentUndoUnit textParentUndoUnit, Undo { if (textParentUndoUnit != null) { - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); // Close the text parent undo unit undoManager.Close(textParentUndoUnit, undoCloseAction); @@ -3624,16 +3625,16 @@ private void RaiseCompositionEvents(out int appSelectionAnchorOffset, out int ap appSelectionAnchorOffset = -1; appSelectionMovingOffset = -1; - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); // Raise the each composition events - for (int i = 0; i < this.CompositionEventList.Count; i++) + for (int i = 0; i < CompositionEventList.Count; i++) { - CompositionEventRecord record = this.CompositionEventList[i]; - FrameworkTextComposition composition = CreateComposition(this.TextEditor, this); + CompositionEventRecord record = CompositionEventList[i]; + FrameworkTextComposition composition = CreateComposition(TextEditor, this); - ITextPointer start = this.TextContainer.CreatePointerAtOffset(record.StartOffsetBefore, LogicalDirection.Backward); - ITextPointer end = this.TextContainer.CreatePointerAtOffset(record.EndOffsetBefore, LogicalDirection.Forward); + ITextPointer start = TextContainer.CreatePointerAtOffset(record.StartOffsetBefore, LogicalDirection.Backward); + ITextPointer end = TextContainer.CreatePointerAtOffset(record.EndOffsetBefore, LogicalDirection.Forward); bool handled = false; _handledByTextStoreListener = false; @@ -3774,8 +3775,8 @@ private void RaiseCompositionEvents(out int appSelectionAnchorOffset, out int ap if (_compositionModifiedByEventListener) { // Stop rasing the composition by application's text change or handled events - appSelectionAnchorOffset = this.TextSelection.AnchorPosition.Offset; - appSelectionMovingOffset = this.TextSelection.MovingPosition.Offset; + appSelectionAnchorOffset = TextSelection.AnchorPosition.Offset; + appSelectionMovingOffset = TextSelection.MovingPosition.Offset; break; } @@ -3801,8 +3802,8 @@ private void RaiseCompositionEvents(out int appSelectionAnchorOffset, out int ap if (_compositionModifiedByEventListener) { // Stop rasing the composition by application's text change or handled events - appSelectionAnchorOffset = this.TextSelection.AnchorPosition.Offset; - appSelectionMovingOffset = this.TextSelection.MovingPosition.Offset; + appSelectionAnchorOffset = TextSelection.AnchorPosition.Offset; + appSelectionMovingOffset = TextSelection.MovingPosition.Offset; break; } } @@ -3818,12 +3819,12 @@ private bool IsMaxLengthExceeded(string textData, int charsToReplaceCount) { // We only filter text for plain text content - if (!this.TextEditor.AcceptsRichContent && this.TextEditor.MaxLength > 0) + if (!TextEditor.AcceptsRichContent && TextEditor.MaxLength > 0) { - ITextContainer textContainer = this.TextContainer; + ITextContainer textContainer = TextContainer; int currentLength = textContainer.SymbolCount - charsToReplaceCount; - int extraCharsAllowed = Math.Max(0, this.TextEditor.MaxLength - currentLength); + int extraCharsAllowed = Math.Max(0, TextEditor.MaxLength - currentLength); // Does textData length exceed allowed char length? if (textData.Length > extraCharsAllowed) @@ -3868,7 +3869,7 @@ private void SetFinalDocumentState(UndoManager undoManager, Stack imeChangeStack IMECompositionTracer.Trace(this, IMECompositionTraceOp.BSetFinalDocumentState); } - this.TextSelection.BeginChangeNoUndo(); + TextSelection.BeginChangeNoUndo(); // make sure this method decreases the IME reentrancy count, // even if an exception bypasses the normal codepath @@ -3893,7 +3894,7 @@ private void SetFinalDocumentState(UndoManager undoManager, Stack imeChangeStack RedoQuietly(imeChangeCount); // At this point the document should be exactly where the IME left it. - Invariant.Assert(_netCharCount == this.TextContainer.IMECharCount); + Invariant.Assert(_netCharCount == TextContainer.IMECharCount); // we are done replaying IME changes, IME lock requests can be granted again --_replayingIMEChangeReentrancyCount; @@ -3947,14 +3948,14 @@ private void SetFinalDocumentState(UndoManager undoManager, Stack imeChangeStack RedoQuietly(appChangeCount); // The IME should have received the app change events from preceeding RedoQuietly. - Invariant.Assert(_netCharCount == this.TextContainer.IMECharCount); + Invariant.Assert(_netCharCount == TextContainer.IMECharCount); // we can't rely on Redo fixing up the selection. // If the app only modified the selection appChangeCount == 0. - ITextPointer anchor = this.TextContainer.CreatePointerAtOffset(appSelectionAnchorOffset, LogicalDirection.Forward); - ITextPointer moving = this.TextContainer.CreatePointerAtOffset(appSelectionMovingOffset, LogicalDirection.Forward); + ITextPointer anchor = TextContainer.CreatePointerAtOffset(appSelectionAnchorOffset, LogicalDirection.Forward); + ITextPointer moving = TextContainer.CreatePointerAtOffset(appSelectionMovingOffset, LogicalDirection.Forward); - this.TextSelection.Select(anchor, moving); + TextSelection.Select(anchor, moving); // // We may have a filtering related composition undo unit on the top @@ -3972,10 +3973,10 @@ private void SetFinalDocumentState(UndoManager undoManager, Stack imeChangeStack else { // Restore the selection. - ITextPointer anchor = this.TextContainer.CreatePointerAtOffset(imeSelectionAnchorOffset, LogicalDirection.Backward); - ITextPointer moving = this.TextContainer.CreatePointerAtOffset(imeSelectionMovingOffset, LogicalDirection.Backward); + ITextPointer anchor = TextContainer.CreatePointerAtOffset(imeSelectionAnchorOffset, LogicalDirection.Backward); + ITextPointer moving = TextContainer.CreatePointerAtOffset(imeSelectionMovingOffset, LogicalDirection.Backward); - this.TextSelection.Select(anchor, moving); + TextSelection.Select(anchor, moving); // Since we just had a composition accepted, we need to merge all // of its individual units now. @@ -3985,7 +3986,7 @@ private void SetFinalDocumentState(UndoManager undoManager, Stack imeChangeStack finally { _replayingIMEChangeReentrancyCount += deltaReplayingIMEChangeReentrancyCount; - this.TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); + TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); } if (IsTracing) @@ -4004,16 +4005,16 @@ private void UndoQuietly(int count) IMECompositionTracer.Trace(this, IMECompositionTraceOp.BUndoQuietly, count); } - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); - this.TextSelection.BeginChangeNoUndo(); + TextSelection.BeginChangeNoUndo(); try { undoManager.Undo(count); } finally { - this.TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); + TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); } if (IsTracing) @@ -4033,16 +4034,16 @@ private void RedoQuietly(int count) IMECompositionTracer.Trace(this, IMECompositionTraceOp.BRedoQuietly, count); } - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); - this.TextSelection.BeginChangeNoUndo(); + TextSelection.BeginChangeNoUndo(); try { undoManager.Redo(count); } finally { - this.TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); + TextSelection.EndChange(false /* disableScroll */, true /* skipEvents */); } if (IsTracing) @@ -4056,7 +4057,7 @@ private void RedoQuietly(int count) // single undo units. private void MergeCompositionUndoUnits() { - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); if (undoManager == null || !undoManager.IsEnabled) { @@ -4102,7 +4103,7 @@ private void MergeCompositionUndoUnits() // if any. Does not actually pop the unit. private CompositionParentUndoUnit PeekCompositionParentUndoUnit() { - UndoManager undoManager = UndoManager.GetUndoManager(this.TextContainer.Parent); + UndoManager undoManager = UndoManager.GetUndoManager(TextContainer.Parent); if (undoManager == null || !undoManager.IsEnabled) return null; @@ -4132,14 +4133,14 @@ private TextEditor TextEditor private ITextSelection TextSelection { - get { return this.TextEditor.Selection; } + get { return TextEditor.Selection; } } private bool IsReadOnly { get { - return ((bool)this.UiScope.GetValue(TextEditor.IsReadOnlyProperty) || TextEditor.IsReadOnly); + return ((bool)UiScope.GetValue(TextEditor.IsReadOnlyProperty) || TextEditor.IsReadOnly); } } @@ -4237,7 +4238,7 @@ internal TextEditor TextEditor { try { - return (TextEditor)this.Target; + return (TextEditor)Target; } catch (InvalidOperationException) { @@ -4361,15 +4362,15 @@ internal void MergeCompositionUnit(CompositionParentUndoUnit unit) { object[] units = unit.CopyUnits(); - Invariant.Assert(this.Locked); // If this fails, then the Locked = true below is invalid. - this.Locked = false; + Invariant.Assert(Locked); // If this fails, then the Locked = true below is invalid. + Locked = false; for (int i = units.Length - 1; i >= 0; i--) { Add((IUndoUnit)units[i]); } - this.Locked = true; + Locked = true; MergeRedoSelectionState(unit); @@ -4402,7 +4403,7 @@ internal bool IsLastCompositionUnit // Returns a shallow copy of this units children. private object[] CopyUnits() { - return this.Units.ToArray(); + return Units.ToArray(); } private readonly bool _isFirstCompositionUnit; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Interop/ActiveXHost.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Interop/ActiveXHost.cs index c66b388311c..5b33abac41f 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Interop/ActiveXHost.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Interop/ActiveXHost.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -31,6 +31,7 @@ using MS.Internal; using MS.Internal.Controls; using MS.Win32; +using Windows.Win32.Foundation; // Since we disable PreSharp warnings in this file, PreSharp warning is unknown to C# compiler. // We first need to disable warnings about unknown message numbers and unknown pragmas. @@ -65,8 +66,8 @@ static ActiveXHost() { // We use this map to lookup which invalidator method to call // when the Avalon parent's properties change. - invalidatorMap[UIElement.VisibilityProperty] = new PropertyInvalidator(OnVisibilityInvalidated); - invalidatorMap[FrameworkElement.IsEnabledProperty] = new PropertyInvalidator(OnIsEnabledInvalidated); + invalidatorMap[VisibilityProperty] = new PropertyInvalidator(OnVisibilityInvalidated); + invalidatorMap[IsEnabledProperty] = new PropertyInvalidator(OnIsEnabledInvalidated); // register for access keys EventManager.RegisterClassHandler(typeof(ActiveXHost), AccessKeyManager.AccessKeyPressedEvent, new AccessKeyPressedEventHandler(OnAccessKeyPressed)); @@ -140,7 +141,7 @@ protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) /// protected override HandleRef BuildWindowCore(HandleRef hwndParent) { - this.ParentHandle = hwndParent; + ParentHandle = hwndParent; //BuildWindowCore should only be called if visible. Bug 1236445 tracks this. TransitionUpTo(ActiveXHelper.ActiveXState.InPlaceActive); @@ -180,7 +181,7 @@ protected override void OnWindowPositionChanged(Rect bounds) //SetExtent only sets height and width, can call it for perf if X, Y haven't changed //We need to call SetObjectRects instead, which updates X, Y, width and height //OnActiveXRectChange calls SetObjectRects - this.ActiveXSite.OnActiveXRectChange(_bounds); + ActiveXSite.OnActiveXRectChange(_bounds); } /// @@ -395,108 +396,108 @@ internal void SetAxHostState(int mask, bool value) internal void TransitionUpTo(ActiveXHelper.ActiveXState state) { - if (!this.GetAxHostState(ActiveXHelper.inTransition)) + if (!GetAxHostState(ActiveXHelper.inTransition)) { - this.SetAxHostState(ActiveXHelper.inTransition, true); + SetAxHostState(ActiveXHelper.inTransition, true); try { ActiveXHelper.ActiveXState oldState; - while (state > this.ActiveXState) + while (state > ActiveXState) { - oldState = this.ActiveXState; + oldState = ActiveXState; - switch (this.ActiveXState) + switch (ActiveXState) { case ActiveXHelper.ActiveXState.Passive: TransitionFromPassiveToLoaded(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.Loaded; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.Loaded; break; case ActiveXHelper.ActiveXState.Loaded: TransitionFromLoadedToRunning(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Running, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.Running; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Running, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.Running; break; case ActiveXHelper.ActiveXState.Running: TransitionFromRunningToInPlaceActive(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; break; case ActiveXHelper.ActiveXState.InPlaceActive: TransitionFromInPlaceActiveToUIActive(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.UIActive, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.UIActive; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.UIActive, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.UIActive; break; default: Debug.Fail("bad state"); - this.ActiveXState = this.ActiveXState + 1; // To exit the loop + ActiveXState = ActiveXState + 1; // To exit the loop break; } - OnActiveXStateChange((int)oldState, (int)this.ActiveXState); + OnActiveXStateChange((int)oldState, (int)ActiveXState); } } finally { - this.SetAxHostState(ActiveXHelper.inTransition, false); + SetAxHostState(ActiveXHelper.inTransition, false); } } } internal void TransitionDownTo(ActiveXHelper.ActiveXState state) { - if (!this.GetAxHostState(ActiveXHelper.inTransition)) + if (!GetAxHostState(ActiveXHelper.inTransition)) { - this.SetAxHostState(ActiveXHelper.inTransition, true); + SetAxHostState(ActiveXHelper.inTransition, true); try { ActiveXHelper.ActiveXState oldState; - while (state < this.ActiveXState) + while (state < ActiveXState) { - oldState = this.ActiveXState; + oldState = ActiveXState; - switch (this.ActiveXState) + switch (ActiveXState) { case ActiveXHelper.ActiveXState.Open: Debug.Fail("how did we ever get into the open state?"); - this.ActiveXState = ActiveXHelper.ActiveXState.UIActive; + ActiveXState = ActiveXHelper.ActiveXState.UIActive; break; case ActiveXHelper.ActiveXState.UIActive: TransitionFromUIActiveToInPlaceActive(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; break; case ActiveXHelper.ActiveXState.InPlaceActive: TransitionFromInPlaceActiveToRunning(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Running, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.Running; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Running, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.Running; break; case ActiveXHelper.ActiveXState.Running: TransitionFromRunningToLoaded(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.Loaded; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.Loaded; break; case ActiveXHelper.ActiveXState.Loaded: TransitionFromLoadedToPassive(); - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Passive, "Failed transition"); - this.ActiveXState = ActiveXHelper.ActiveXState.Passive; + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Passive, "Failed transition"); + ActiveXState = ActiveXHelper.ActiveXState.Passive; break; default: Debug.Fail("bad state"); - this.ActiveXState = this.ActiveXState - 1; // To exit the loop + ActiveXState = ActiveXState - 1; // To exit the loop break; } - OnActiveXStateChange((int)oldState, (int)this.ActiveXState); + OnActiveXStateChange((int)oldState, (int)ActiveXState); } } finally { - this.SetAxHostState(ActiveXHelper.inTransition, false); + SetAxHostState(ActiveXHelper.inTransition, false); } } } @@ -505,13 +506,13 @@ internal bool DoVerb(int verb) { int hr = _axOleObject.DoVerb(verb, IntPtr.Zero, - this.ActiveXSite, + ActiveXSite, 0, - this.ParentHandle.Handle, + ParentHandle.Handle, _bounds); - Debug.Assert(hr == NativeMethods.S_OK, $"DoVerb call failed for verb 0x{verb:X}"); - return hr == NativeMethods.S_OK; + Debug.Assert(hr == HRESULT.S_OK, $"DoVerb call failed for verb 0x{verb:X}"); + return hr == HRESULT.S_OK; } internal void AttachWindow(IntPtr hwnd) @@ -525,36 +526,36 @@ internal void AttachWindow(IntPtr hwnd) _axWindow = new HandleRef(this, hwnd); - if (this.ParentHandle.Handle != IntPtr.Zero) + if (ParentHandle.Handle != IntPtr.Zero) { - UnsafeNativeMethods.SetParent(_axWindow, this.ParentHandle); + UnsafeNativeMethods.SetParent(_axWindow, ParentHandle); } } private void StartEvents() { - if (!this.GetAxHostState(ActiveXHelper.sinkAttached)) + if (!GetAxHostState(ActiveXHelper.sinkAttached)) { - this.SetAxHostState(ActiveXHelper.sinkAttached, true); + SetAxHostState(ActiveXHelper.sinkAttached, true); CreateSink(); } - this.ActiveXSite.StartEvents(); + ActiveXSite.StartEvents(); } private void StopEvents() { - if (this.GetAxHostState(ActiveXHelper.sinkAttached)) + if (GetAxHostState(ActiveXHelper.sinkAttached)) { - this.SetAxHostState(ActiveXHelper.sinkAttached, false); + SetAxHostState(ActiveXHelper.sinkAttached, false); DetachSink(); } - this.ActiveXSite.StopEvents(); + ActiveXSite.StopEvents(); } private void TransitionFromPassiveToLoaded() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Passive, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.Passive) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Passive, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.Passive) { // // First, create the ActiveX control @@ -565,19 +566,19 @@ private void TransitionFromPassiveToLoaded() // // We are now Loaded! - this.ActiveXState = ActiveXHelper.ActiveXState.Loaded; + ActiveXState = ActiveXHelper.ActiveXState.Loaded; // // Lets give them a chance to cast the ActiveX object // to the appropriate interfaces. - this.AttachInterfacesInternal(); + AttachInterfacesInternal(); } } private void TransitionFromLoadedToPassive() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.Loaded) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.Loaded) { // // Need to make sure that we don't handle any PropertyChanged @@ -591,7 +592,7 @@ private void TransitionFromLoadedToPassive() { // // Lets first get the cached interface pointers of _axInstance released. - this.DetachInterfacesInternal(); + DetachInterfacesInternal(); Marshal.FinalReleaseComObject(_axInstance); _axInstance = null; @@ -604,39 +605,39 @@ private void TransitionFromLoadedToPassive() // // We are now Passive! - this.ActiveXState = ActiveXHelper.ActiveXState.Passive; + ActiveXState = ActiveXHelper.ActiveXState.Passive; } } private void TransitionFromLoadedToRunning() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.Loaded) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Loaded, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.Loaded) { // // See if the ActiveX control returns OLEMISC_SETCLIENTSITEFIRST int bits = 0; - int hr = _axOleObject.GetMiscStatus(NativeMethods.DVASPECT_CONTENT, out bits); - if (NativeMethods.Succeeded(hr) && ((bits & NativeMethods.OLEMISC_SETCLIENTSITEFIRST) != 0)) + HRESULT result = _axOleObject.GetMiscStatus(NativeMethods.DVASPECT_CONTENT, out bits); + if (result.Succeeded && ((bits & NativeMethods.OLEMISC_SETCLIENTSITEFIRST) != 0)) { // // Simply setting the site to the ActiveX control should activate it. // And this will take us to the Running state. - _axOleObject.SetClientSite(this.ActiveXSite); + _axOleObject.SetClientSite(ActiveXSite); } StartEvents(); // // We are now Running! - this.ActiveXState = ActiveXHelper.ActiveXState.Running; + ActiveXState = ActiveXHelper.ActiveXState.Running; } } private void TransitionFromRunningToLoaded() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Running, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.Running) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Running, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.Running) { StopEvents(); @@ -646,14 +647,14 @@ private void TransitionFromRunningToLoaded() // // We are now Loaded! - this.ActiveXState = ActiveXHelper.ActiveXState.Loaded; + ActiveXState = ActiveXHelper.ActiveXState.Loaded; } } private void TransitionFromRunningToInPlaceActive() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.Running, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.Running) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.Running, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.Running) { try { @@ -673,14 +674,14 @@ private void TransitionFromRunningToInPlaceActive() // // We are now InPlaceActive! - this.ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; + ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; } } private void TransitionFromInPlaceActiveToRunning() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive) { // // InPlaceDeactivate. @@ -688,34 +689,33 @@ private void TransitionFromInPlaceActiveToRunning() // // We are now Running! - this.ActiveXState = ActiveXHelper.ActiveXState.Running; + ActiveXState = ActiveXHelper.ActiveXState.Running; } } private void TransitionFromInPlaceActiveToUIActive() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.InPlaceActive) { DoVerb(NativeMethods.OLEIVERB_UIACTIVATE); // // We are now UIActive! - this.ActiveXState = ActiveXHelper.ActiveXState.UIActive; + ActiveXState = ActiveXHelper.ActiveXState.UIActive; } } private void TransitionFromUIActiveToInPlaceActive() { - Debug.Assert(this.ActiveXState == ActiveXHelper.ActiveXState.UIActive, "Wrong start state to transition from"); - if (this.ActiveXState == ActiveXHelper.ActiveXState.UIActive) + Debug.Assert(ActiveXState == ActiveXHelper.ActiveXState.UIActive, "Wrong start state to transition from"); + if (ActiveXState == ActiveXHelper.ActiveXState.UIActive) { - int hr = _axOleInPlaceObject.UIDeactivate(); - Debug.Assert(NativeMethods.Succeeded(hr), "Failed in IOleInPlaceObject.UiDeactivate"); + HRESULT result = _axOleInPlaceObject.UIDeactivate(); + Debug.Assert(result.Succeeded, "Failed in IOleInPlaceObject.UiDeactivate"); - // // We are now InPlaceActive! - this.ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; + ActiveXState = ActiveXHelper.ActiveXState.InPlaceActive; } } @@ -837,7 +837,7 @@ private void OnInitialized(object sender, EventArgs e) // AccessKeyManager.Register(k.ToString(), this); //} - this.Initialized -= new EventHandler(this.OnInitialized); + Initialized -= new EventHandler(OnInitialized); //Cannot inplace activate yet, since BuildWindowCore is not called yet //and we need that for getting the parent handle to pass on to the control. diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Shell/JumpList.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Shell/JumpList.cs index 3822e12022a..fe96eab7adf 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Shell/JumpList.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Shell/JumpList.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,8 +12,7 @@ using MS.Internal.AppModel; using MS.Internal.Interop; using MS.Win32; - -using HRESULT = MS.Internal.Interop.HRESULT; +using Windows.Win32.Foundation; namespace System.Windows.Shell { @@ -411,7 +410,8 @@ private static string _RuntimeId hr = HRESULT.S_OK; appId = null; } - hr.ThrowIfFailed(); + + hr.ThrowOnFailureUnwrapWin32(); return appId; } } @@ -482,7 +482,7 @@ private void ApplyList() // if they really care. We'll happily add too many items with the hope that if the user changes the setting // items will be recovered from the overflow. uint slotsVisible; - Guid removedIid = new Guid(IID.ObjectArray); + Guid removedIid = new Guid(MS.Internal.AppModel.IID.ObjectArray); var objectsRemoved = (IObjectArray)destinationList.BeginList(out slotsVisible, ref removedIid); // Keep track of the items that were previously removed by the user. @@ -765,7 +765,7 @@ private static List<_ShellObjectPair> GenerateJumpItems(IObjectArray shellObject var retList = new List<_ShellObjectPair>(); - Guid unknownIid = new Guid(IID.Unknown); + Guid unknownIid = new Guid(MS.Internal.AppModel.IID.Unknown); uint count = shellObjects.GetCount(); for (uint i = 0; i < count; ++i) { @@ -831,7 +831,7 @@ private static void AddCategory(ICustomDestinationList cdl, string category, Lis { // If the list contained items that could not be added because this object isn't a handler // then drop all ShellItems and retry without them. - if (isHeterogenous && hr == HRESULT.DESTS_E_NO_MATCHING_ASSOC_HANDLER) + if (isHeterogenous && hr == (HRESULT)unchecked((int)0x80040F03)) // HRESULT.DESTS_E_NO_MATCHING_ASSOC_HANDLER { if (TraceShell.IsEnabled) { @@ -860,7 +860,7 @@ private static void AddCategory(ICustomDestinationList cdl, string category, Lis } else { - Debug.Assert(HRESULT.DESTS_E_NO_MATCHING_ASSOC_HANDLER != hr); + Debug.Assert(hr != (HRESULT)unchecked((int)0x80040F03)); // HRESULT.DESTS_E_NO_MATCHING_ASSOC_HANDLER // If we failed for some other reason, just reject everything. foreach (var item in jumpItems) { diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ErrorCodes.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ErrorCodes.cs deleted file mode 100644 index b72e0e80252..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ErrorCodes.cs +++ /dev/null @@ -1,466 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using System.Globalization; -using System.Reflection; -using System.Runtime.InteropServices; - -namespace Standard -{ - /// - /// Wrapper for common Win32 status codes. - /// - [StructLayout(LayoutKind.Explicit)] - internal struct Win32Error - { - [FieldOffset(0)] - private readonly int _value; - - // NOTE: These public static field declarations are automatically - // picked up by (HRESULT's) ToString through reflection. - - /// The operation completed successfully. - public static readonly Win32Error ERROR_SUCCESS = new Win32Error(0); - /// Incorrect function. - public static readonly Win32Error ERROR_INVALID_FUNCTION = new Win32Error(1); - /// The system cannot find the file specified. - public static readonly Win32Error ERROR_FILE_NOT_FOUND = new Win32Error(2); - /// The system cannot find the path specified. - public static readonly Win32Error ERROR_PATH_NOT_FOUND = new Win32Error(3); - /// The system cannot open the file. - public static readonly Win32Error ERROR_TOO_MANY_OPEN_FILES = new Win32Error(4); - /// Access is denied. - public static readonly Win32Error ERROR_ACCESS_DENIED = new Win32Error(5); - /// The handle is invalid. - public static readonly Win32Error ERROR_INVALID_HANDLE = new Win32Error(6); - /// Not enough storage is available to complete this operation. - public static readonly Win32Error ERROR_OUTOFMEMORY = new Win32Error(14); - /// There are no more files. - public static readonly Win32Error ERROR_NO_MORE_FILES = new Win32Error(18); - /// The process cannot access the file because it is being used by another process. - public static readonly Win32Error ERROR_SHARING_VIOLATION = new Win32Error(32); - /// The parameter is incorrect. - public static readonly Win32Error ERROR_INVALID_PARAMETER = new Win32Error(87); - /// The data area passed to a system call is too small. - public static readonly Win32Error ERROR_INSUFFICIENT_BUFFER = new Win32Error(122); - /// Cannot nest calls to LoadModule. - public static readonly Win32Error ERROR_NESTING_NOT_ALLOWED = new Win32Error(215); - /// Illegal operation attempted on a registry key that has been marked for deletion. - public static readonly Win32Error ERROR_KEY_DELETED = new Win32Error(1018); - /// Element not found. - public static readonly Win32Error ERROR_NOT_FOUND = new Win32Error(1168); - /// There was no match for the specified key in the index. - public static readonly Win32Error ERROR_NO_MATCH = new Win32Error(1169); - /// An invalid device was specified. - public static readonly Win32Error ERROR_BAD_DEVICE = new Win32Error(1200); - /// The operation was canceled by the user. - public static readonly Win32Error ERROR_CANCELLED = new Win32Error(1223); - /// The window class was already registered. - public static readonly Win32Error ERROR_CLASS_ALREADY_EXISTS = new Win32Error(1410); - /// The specified datatype is invalid. - public static readonly Win32Error ERROR_INVALID_DATATYPE = new Win32Error(1804); - /// Invalid window handle. - public static readonly Win32Error ERROR_INVALID_WINDOW_HANDLE = new Win32Error(1400); - /// This operation returned because the timeout period expired. - public static readonly Win32Error ERROR_TIMEOUT = new Win32Error(1460); - - /// - /// Create a new Win32 error. - /// - /// The integer value of the error. - public Win32Error(int i) - { - _value = i; - } - - /// Performs HRESULT_FROM_WIN32 conversion. - /// The Win32 error being converted to an HRESULT. - /// The equivilent HRESULT value. - public static explicit operator HRESULT(Win32Error error) - { - // #define __HRESULT_FROM_WIN32(x) - // ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000))) - if (error._value <= 0) - { - return new HRESULT((uint)error._value); - } - return HRESULT.Make(true, Facility.Win32, error._value & 0x0000FFFF); - } - - // Method version of the cast operation - /// Performs HRESULT_FROM_WIN32 conversion. - /// The Win32 error being converted to an HRESULT. - /// The equivilent HRESULT value. - public HRESULT ToHRESULT() - { - return (HRESULT)this; - } - - /// Performs the equivalent of Win32's GetLastError() - /// A Win32Error instance with the result of the native GetLastError - public static Win32Error GetLastError() - { - return new Win32Error(Marshal.GetLastWin32Error()); - } - - public override bool Equals(object obj) - { - try - { - return ((Win32Error)obj)._value == _value; - } - catch (InvalidCastException) - { - return false; - } - } - - public override int GetHashCode() - { - return _value.GetHashCode(); - } - - /// - /// Compare two Win32 error codes for equality. - /// - /// The first error code to compare. - /// The second error code to compare. - /// Whether the two error codes are the same. - public static bool operator ==(Win32Error errLeft, Win32Error errRight) - { - return errLeft._value == errRight._value; - } - - /// - /// Compare two Win32 error codes for inequality. - /// - /// The first error code to compare. - /// The second error code to compare. - /// Whether the two error codes are not the same. - public static bool operator !=(Win32Error errLeft, Win32Error errRight) - { - return !(errLeft == errRight); - } - } - - internal enum Facility - { - /// FACILITY_NULL - Null = 0, - /// FACILITY_RPC - Rpc = 1, - /// FACILITY_DISPATCH - Dispatch = 2, - /// FACILITY_STORAGE - Storage = 3, - /// FACILITY_ITF - Itf = 4, - /// FACILITY_WIN32 - Win32 = 7, - /// FACILITY_WINDOWS - Windows = 8, - /// FACILITY_CONTROL - Control = 10, - /// MSDN doced facility code for ESE errors. - Ese = 0xE5E, - /// FACILITY_WINCODEC (WIC) - WinCodec = 0x898, - } - - /// Wrapper for HRESULT status codes. - [StructLayout(LayoutKind.Explicit)] - internal struct HRESULT - { - [FieldOffset(0)] - private readonly uint _value; - - // NOTE: These public static field declarations are automatically - // picked up by ToString through reflection. - /// S_OK - public static readonly HRESULT S_OK = new HRESULT(0x00000000); - /// S_FALSE - public static readonly HRESULT S_FALSE = new HRESULT(0x00000001); - /// E_PENDING - public static readonly HRESULT E_PENDING = new HRESULT(0x8000000A); - /// E_NOTIMPL - public static readonly HRESULT E_NOTIMPL = new HRESULT(0x80004001); - /// E_NOINTERFACE - public static readonly HRESULT E_NOINTERFACE = new HRESULT(0x80004002); - /// E_POINTER - public static readonly HRESULT E_POINTER = new HRESULT(0x80004003); - /// E_ABORT - public static readonly HRESULT E_ABORT = new HRESULT(0x80004004); - /// E_FAIL - public static readonly HRESULT E_FAIL = new HRESULT(0x80004005); - /// E_UNEXPECTED - public static readonly HRESULT E_UNEXPECTED = new HRESULT(0x8000FFFF); - /// STG_E_INVALIDFUNCTION - public static readonly HRESULT STG_E_INVALIDFUNCTION = new HRESULT(0x80030001); - /// REGDB_E_CLASSNOTREG - public static readonly HRESULT REGDB_E_CLASSNOTREG = new HRESULT(0x80040154); - - /// DESTS_E_NO_MATCHING_ASSOC_HANDLER. Win7 internal error code for Jump Lists. - /// There is no Assoc Handler for the given item registered by the specified application. - public static readonly HRESULT DESTS_E_NO_MATCHING_ASSOC_HANDLER = new HRESULT(0x80040F03); - /// DESTS_E_NORECDOCS. Win7 internal error code for Jump Lists. - /// The given item is excluded from the recent docs folder by the NoRecDocs bit on its registration. - public static readonly HRESULT DESTS_E_NORECDOCS = new HRESULT(0x80040F04); - /// DESTS_E_NOTALLCLEARED. Win7 internal error code for Jump Lists. - /// Not all of the items were successfully cleared - public static readonly HRESULT DESTS_E_NOTALLCLEARED = new HRESULT(0x80040F05); - - /// E_ACCESSDENIED - /// Win32Error ERROR_ACCESS_DENIED. - public static readonly HRESULT E_ACCESSDENIED = new HRESULT(0x80070005); - /// E_OUTOFMEMORY - /// Win32Error ERROR_OUTOFMEMORY. - public static readonly HRESULT E_OUTOFMEMORY = new HRESULT(0x8007000E); - /// E_INVALIDARG - /// Win32Error ERROR_INVALID_PARAMETER. - public static readonly HRESULT E_INVALIDARG = new HRESULT(0x80070057); - /// INTSAFE_E_ARITHMETIC_OVERFLOW - public static readonly HRESULT INTSAFE_E_ARITHMETIC_OVERFLOW = new HRESULT(0x80070216); - /// COR_E_OBJECTDISPOSED - public static readonly HRESULT COR_E_OBJECTDISPOSED = new HRESULT(0x80131622); - /// WC_E_GREATERTHAN - public static readonly HRESULT WC_E_GREATERTHAN = new HRESULT(0xC00CEE23); - /// WC_E_SYNTAX - public static readonly HRESULT WC_E_SYNTAX = new HRESULT(0xC00CEE2D); - - /// - /// Create an HRESULT from an integer value. - /// - /// - public HRESULT(uint i) - { - _value = i; - } - - public static HRESULT Make(bool severe, Facility facility, int code) - { - //#define MAKE_HRESULT(sev,fac,code) \ - // ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) - - // Severity has 1 bit reserved. - // bitness is enforced by the boolean parameter. - - // Facility has 11 bits reserved (different than SCODES, which have 4 bits reserved) - // MSDN documentation incorrectly uses 12 bits for the ESE facility (e5e), so go ahead and let that one slide. - // And WIC also ignores it the documented size... - Assert.Implies((int)facility != (int)((int)facility & 0x1FF), facility == Facility.Ese || facility == Facility.WinCodec); - // Code has 4 bits reserved. - Assert.AreEqual(code, code & 0xFFFF); - - return new HRESULT((uint)((severe ? (1 << 31) : 0) | ((int)facility << 16) | code)); - } - - /// - /// retrieve HRESULT_FACILITY - /// - public Facility Facility - { - get - { - return GetFacility((int)_value); - } - } - - public static Facility GetFacility(int errorCode) - { - // #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) - return (Facility)((errorCode >> 16) & 0x1fff); - } - - /// - /// retrieve HRESULT_CODE - /// - public int Code - { - get - { - return GetCode((int)_value); - } - } - - public static int GetCode(int error) - { - // #define HRESULT_CODE(hr) ((hr) & 0xFFFF) - return (int)(error & 0xFFFF); - } - - #region Object class override members - - /// - /// Get a string representation of this HRESULT. - /// - /// - public override string ToString() - { - // Use reflection to try to name this HRESULT. - // This is expensive, but if someone's ever printing HRESULT strings then - // I think it's a fair guess that they're not in a performance critical area - // (e.g. printing exception strings). - // This is less error prone than trying to keep the list in the function. - // To properly add an HRESULT's name to the ToString table, just add the HRESULT - // like all the others above. - // - // CONSIDER: This data is static. It could be cached - // after first usage for fast lookup since the keys are unique. - // - foreach (FieldInfo publicStaticField in typeof(HRESULT).GetFields(BindingFlags.Static | BindingFlags.Public)) - { - if (publicStaticField.FieldType == typeof(HRESULT)) - { - var hr = (HRESULT)publicStaticField.GetValue(null); - if (hr == this) - { - return publicStaticField.Name; - } - } - } - - // Try Win32 error codes also - if (Facility == Facility.Win32) - { - foreach (FieldInfo publicStaticField in typeof(Win32Error).GetFields(BindingFlags.Static | BindingFlags.Public)) - { - if (publicStaticField.FieldType == typeof(Win32Error)) - { - var error = (Win32Error)publicStaticField.GetValue(null); - if ((HRESULT)error == this) - { - return $"HRESULT_FROM_WIN32({publicStaticField.Name})"; - } - } - } - } - - // If there's no good name for this HRESULT, - // return the string as readable hex (0x########) format. - return string.Create(CultureInfo.InvariantCulture, $"0x{_value:X8}"); - } - - public override bool Equals(object obj) - { - try - { - return ((HRESULT)obj)._value == _value; - } - catch (InvalidCastException) - { - return false; - } - } - - public override int GetHashCode() - { - return _value.GetHashCode(); - } - - #endregion - - public static bool operator ==(HRESULT hrLeft, HRESULT hrRight) - { - return hrLeft._value == hrRight._value; - } - - public static bool operator !=(HRESULT hrLeft, HRESULT hrRight) - { - return !(hrLeft == hrRight); - } - - public bool Succeeded - { - get { return (int)_value >= 0; } - } - - public bool Failed - { - get { return (int)_value < 0; } - } - - public void ThrowIfFailed() - { - ThrowIfFailed(null); - } - - [SuppressMessage("Microsoft.Usage", "CA2201:DoNotRaiseReservedExceptionTypes", Justification="Only recreating Exceptions that were already raised.")] - public void ThrowIfFailed(string message) - { - if (Failed) - { - if (string.IsNullOrEmpty(message)) - { - message = ToString(); - } -#if DEBUG - else - { - message += $" ({ToString()})"; - } -#endif - // Wow. Reflection in a throw call. Later on this may turn out to have been a bad idea. - // If you're throwing an exception I assume it's OK for me to take some time to give it back. - // I want to convert the HRESULT to a more appropriate exception type than COMException. - // Marshal.ThrowExceptionForHR does this for me, but the general call uses GetErrorInfo - // if it's set, and then ignores the HRESULT that I've provided. This makes it so this - // call works the first time but you get burned on the second. To avoid this, I use - // the overload that explicitly ignores the IErrorInfo. - // In addition, the function doesn't allow me to set the Message unless I go through - // the process of implementing an IErrorInfo and then use that. There's no stock - // implementations of IErrorInfo available and I don't think it's worth the maintenance - // overhead of doing it, nor would it have significant value over this approach. - Exception e = MS.Internal.PresentationFramework.SecurityHelper.GetExceptionForHR((int)_value); - Assert.IsNotNull(e); - // ArgumentNullException doesn't have the right constructor parameters, - // (nor does Win32Exception...) - // but E_POINTER gets mapped to NullReferenceException, - // so I don't think it will ever matter. - Assert.IsFalse(e is ArgumentNullException); - - // If we're not getting anything better than a COMException from Marshal, - // then at least check the facility and attempt to do better ourselves. - if (e.GetType() == typeof(COMException)) - { - switch (Facility) - { - case Facility.Win32: - e = CreateWin32Exception(Code, message); - break; - default: - e = new COMException(message, (int)_value); - break; - } - } - else - { - ConstructorInfo cons = e.GetType().GetConstructor(new[] { typeof(string) }); - if (null != cons) - { - e = cons.Invoke(new object[] { message }) as Exception; - Assert.IsNotNull(e); - } - } - throw e; - } - } - - /// - /// Convert the result of Win32 GetLastError() into a raised exception. - /// - public static void ThrowLastError() - { - ((HRESULT)Win32Error.GetLastError()).ThrowIfFailed(); - // Only expecting to call this when we're expecting a failed GetLastError() - Assert.Fail(); - } - - private static Exception CreateWin32Exception(int code, string message) - { - return new Win32Exception(code, message); - } - } -} diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/NativeMethods.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/NativeMethods.cs index 39e54e1e89f..d55e2927c00 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/NativeMethods.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/NativeMethods.cs @@ -1,8 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - using System.ComponentModel; using System.Diagnostics.CodeAnalysis; @@ -11,6 +8,7 @@ using System.Runtime.InteropServices.ComTypes; using System.Text; using Microsoft.Win32.SafeHandles; +using Windows.Win32.Foundation; // Some COM interfaces and Win32 structures are already declared in the framework. // Interesting ones to remember in System.Runtime.InteropServices.ComTypes are: @@ -1454,7 +1452,7 @@ public static SafeDC CreateCompatibleDC(SafeDC hdc) dc = NativeMethods.CreateCompatibleDC(hPtr); if (dc == null) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } finally @@ -1491,8 +1489,8 @@ public static SafeDC GetDC(IntPtr hwnd) if (dc.IsInvalid) { - // GetDC does not set the last error... - HRESULT.E_FAIL.ThrowIfFailed(); + // GetDC does not set the last error. + HRESULT.E_FAIL.ThrowOnFailureUnwrapWin32(); } return dc; @@ -1532,7 +1530,7 @@ private SafeGdiplusStartupToken() : base(true) { } protected override bool ReleaseHandle() { - Status s = NativeMethods.GdiplusShutdown(this.handle); + Status s = NativeMethods.GdiplusShutdown(handle); return s == Status.Ok; } @@ -1600,7 +1598,7 @@ protected override bool ReleaseHandle() { try { - if (!this.IsInvalid) + if (!IsInvalid) { int dwCookie = handle.ToInt32(); handle = IntPtr.Zero; @@ -2287,7 +2285,7 @@ public static RECT AdjustWindowRectEx(RECT lpRect, WS dwStyle, bool bMenu, WS_EX // Native version modifies the parameter in place. if (!_AdjustWindowRectEx(ref lpRect, dwStyle, bMenu, dwExStyle)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return lpRect; @@ -2325,7 +2323,7 @@ public static HRESULT ChangeWindowMessageFilterEx(IntPtr hwnd, WM message, MSGFL ret = _ChangeWindowMessageFilter(message, action); if (!ret) { - return (HRESULT)Win32Error.GetLastError(); + return HRESULT.FromWin32((WIN32_ERROR)Marshal.GetLastPInvokeError()); } return HRESULT.S_OK; } @@ -2334,7 +2332,7 @@ public static HRESULT ChangeWindowMessageFilterEx(IntPtr hwnd, WM message, MSGFL ret = _ChangeWindowMessageFilterEx(hwnd, message, action, ref filterstruct); if (!ret) { - return (HRESULT)Win32Error.GetLastError(); + return HRESULT.FromWin32((WIN32_ERROR)Marshal.GetLastPInvokeError()); } filterInfo = filterstruct.ExtStatus; @@ -2398,7 +2396,7 @@ public static SafeHBITMAP CreateDIBSection(SafeDC hdc, ref BITMAPINFO bitmapInfo if (hBitmap.IsInvalid) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return hBitmap; @@ -2478,7 +2476,7 @@ public static IntPtr CreateWindowEx( IntPtr ret = _CreateWindowEx(dwExStyle, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); if (IntPtr.Zero == ret) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return ret; @@ -2507,7 +2505,7 @@ public static IntPtr CreateWindowEx( public static extern int DwmGetWindowAttribute(IntPtr hWnd, DWMWA dwAttributeToGet, ref int pvAttributeValue, int cbAttribute); [DllImport("dwmapi.dll", PreserveSig = false)] - public static extern int DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS pMarInset); + public static extern HRESULT DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS pMarInset); [DllImport("dwmapi.dll", EntryPoint = "DwmIsCompositionEnabled", PreserveSig = false)] [return: MarshalAs(UnmanagedType.Bool)] @@ -2640,7 +2638,7 @@ public static RECT GetClientRect(IntPtr hwnd) RECT rc; if (!_GetClientRect(hwnd, out rc)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return rc; } @@ -2662,10 +2660,13 @@ public static void GetCurrentThemeName(out string themeFileName, out string colo var sizeBuilder = new StringBuilder((int)Win32Value.MAX_PATH); // This will throw if the theme service is not active (e.g. not UxTheme!IsThemeActive). - _GetCurrentThemeName(fileNameBuilder, fileNameBuilder.Capacity, - colorBuilder, colorBuilder.Capacity, - sizeBuilder, sizeBuilder.Capacity) - .ThrowIfFailed(); + _GetCurrentThemeName( + fileNameBuilder, + fileNameBuilder.Capacity, + colorBuilder, + colorBuilder.Capacity, + sizeBuilder, + sizeBuilder.Capacity).ThrowOnFailureUnwrapWin32(); themeFileName = fileNameBuilder.ToString(); color = colorBuilder.ToString(); @@ -2690,7 +2691,7 @@ public static string GetModuleFileName(IntPtr hModule) int size = _GetModuleFileName(hModule, buffer, buffer.Capacity); if (size == 0) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } // GetModuleFileName returns nSize when it's truncated but does NOT set the last error. @@ -2714,7 +2715,7 @@ public static IntPtr GetModuleHandle(string lpModuleName) IntPtr retPtr = _GetModuleHandle(lpModuleName); if (retPtr == IntPtr.Zero) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return retPtr; } @@ -2741,7 +2742,7 @@ public static IntPtr GetStockObject(StockObject fnObject) IntPtr retPtr = _GetStockObject(fnObject); if (retPtr == IntPtr.Zero) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return retPtr; } @@ -2816,7 +2817,7 @@ public static RECT GetWindowRect(IntPtr hwnd) RECT rc; if (!_GetWindowRect(hwnd, out rc)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return rc; } @@ -2875,7 +2876,7 @@ public static short RegisterClassEx(ref WNDCLASSEX lpwcx) short ret = _RegisterClassEx(ref lpwcx); if (ret == 0) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return ret; @@ -2889,7 +2890,7 @@ public static WM RegisterWindowMessage(string lpString) uint iRet = _RegisterWindowMessage(lpString); if (iRet == 0) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return (WM)iRet; } @@ -2903,7 +2904,7 @@ public static IntPtr SetActiveWindow(IntPtr hwnd) IntPtr ret = _SetActiveWindow(hwnd); if (ret == IntPtr.Zero) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return ret; @@ -2978,7 +2979,7 @@ public static bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int } [DllImport("shell32.dll", SetLastError = false)] - public static extern Win32Error SHFileOperation(ref SHFILEOPSTRUCT lpFileOp); + public static extern WIN32_ERROR SHFileOperation(ref SHFILEOPSTRUCT lpFileOp); [DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] @@ -3002,7 +3003,7 @@ public static void SystemParametersInfo(SPI uiAction, int uiParam, string pvPara { if (!_SystemParametersInfo_String(uiAction, uiParam, pvParam, fWinIni)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } @@ -3014,7 +3015,7 @@ public static NONCLIENTMETRICS SystemParameterInfo_GetNONCLIENTMETRICS() if (!_SystemParametersInfo_NONCLIENTMETRICS(SPI.GETNONCLIENTMETRICS, metrics.cbSize, ref metrics, SPIF.None)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return metrics; @@ -3026,7 +3027,7 @@ public static HIGHCONTRAST SystemParameterInfo_GetHIGHCONTRAST() if (!_SystemParametersInfo_HIGHCONTRAST(SPI.GETHIGHCONTRAST, hc.cbSize, ref hc, SPIF.None)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return hc; @@ -3045,7 +3046,7 @@ public static IntPtr SelectObject(SafeDC hdc, IntPtr hgdiobj) IntPtr ret = _SelectObject(hdc, hgdiobj); if (ret == IntPtr.Zero) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return ret; } @@ -3058,7 +3059,7 @@ public static IntPtr SelectObject(SafeDC hdc, SafeHBITMAP hgdiobj) IntPtr ret = _SelectObjectSafeHBITMAP(hdc, hgdiobj); if (ret == IntPtr.Zero) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } return ret; } @@ -3082,7 +3083,7 @@ public static void UnregisterClass(short atom, IntPtr hinstance) { if (!_UnregisterClassAtom(new IntPtr(atom), hinstance)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } @@ -3090,7 +3091,7 @@ public static void UnregisterClass(string lpClassName, IntPtr hInstance) { if (!_UnregisterClassName(lpClassName, hInstance)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } @@ -3133,7 +3134,7 @@ public static void UpdateLayeredWindow( { if (!_UpdateLayeredWindow(hwnd, hdcDst, ref pptDst, ref psize, hdcSrc, ref pptSrc, crKey, ref pblend, dwFlags)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } @@ -3145,7 +3146,7 @@ public static void UpdateLayeredWindow( { if (!_UpdateLayeredWindowIntPtr(hwnd, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero, crKey, ref pblend, dwFlags)) { - HRESULT.ThrowLastError(); + throw new Win32Exception(); } } @@ -3186,12 +3187,13 @@ public static void SHAddToRecentDocs(IShellLinkW shellLink) var dti = new DWM_TIMING_INFO { cbSize = Marshal.SizeOf(typeof(DWM_TIMING_INFO)) }; HRESULT hr = _DwmGetCompositionTimingInfo(hwnd, ref dti); - if (hr == HRESULT.E_PENDING) + if (hr.Value == (-2147483638) /* HRESULT.E_PENDING */) { // The system isn't yet ready to respond. Return null rather than throw. return null; } - hr.ThrowIfFailed(); + + hr.ThrowOnFailureUnwrapWin32(); return dti; } diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ShellProvider.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ShellProvider.cs index 2cd2c598680..c491b1f2b56 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ShellProvider.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Standard/ShellProvider.cs @@ -1,13 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Text; using MS.Internal.Interop; +using Windows.Win32.Foundation; using FILETIME = System.Runtime.InteropServices.ComTypes.FILETIME; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs index ad3c6198892..ed8017b0186 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationFramework/System/Windows/Window.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -23,8 +23,7 @@ using BuildInfo = MS.Internal.PresentationFramework.BuildInfo; using SNM = Standard.NativeMethods; -using HRESULT = MS.Internal.Interop.HRESULT; -using Win32Error = MS.Internal.Interop.Win32Error; +using Windows.Win32.Foundation; //In order to avoid generating warnings about unknown message numbers and //unknown pragmas when compiling your C# source code with the actual C# compiler, @@ -84,15 +83,15 @@ static Window() WM_APPLYTASKBARITEMINFO = UnsafeNativeMethods.RegisterWindowMessage("WPF_ApplyTaskbarItemInfo"); EventManager.RegisterClassHandler(typeof(Window), - UIElement.ManipulationCompletedEvent, + ManipulationCompletedEvent, new EventHandler(OnStaticManipulationCompleted), /*handledEventsToo*/ true); EventManager.RegisterClassHandler(typeof(Window), - UIElement.ManipulationInertiaStartingEvent, + ManipulationInertiaStartingEvent, new EventHandler(OnStaticManipulationInertiaStarting), /*handledEventsToo*/ true); - Window.DpiChangedEvent = EventManager.RegisterRoutedEvent("DpiChanged", RoutingStrategy.Bubble, + DpiChangedEvent = EventManager.RegisterRoutedEvent("DpiChanged", RoutingStrategy.Bubble, typeof (System.Windows.DpiChangedEventHandler), typeof (Window)); } @@ -515,7 +514,7 @@ protected internal override IEnumerator LogicalChildren { // Don't use UIElementCollection because we don't have a reference to content's visual parent; // window has style and user can change it. - return new SingleChildEnumerator(this.Content); + return new SingleChildEnumerator(Content); } } @@ -536,7 +535,7 @@ public static Window GetWindow(DependencyObject dependencyObject) // Normally this value is set to the root Window element, all the element // inside the window view will get this value through property inheritance mechanism. - return dependencyObject.GetValue(Window.IWindowServiceProperty) as Window; + return dependencyObject.GetValue(IWindowServiceProperty) as Window; } #endregion static public method @@ -683,7 +682,7 @@ private void HandleTaskbarListError(HRESULT hr) // Even if some of the taskbar methods get this error it doesn't mean that all of them will. // They aren't all implemented with SendMessageTimeout, and unfortunately the ITaskbarList3 API inconsistently // exposes that implementation detail. - if (hr == (HRESULT)Win32Error.ERROR_TIMEOUT) + if (hr == HRESULT.FromWin32(WIN32_ERROR.ERROR_TIMEOUT)) { // Explorer appears to be busy. Post back to the Window to try again. if (TraceShell.IsEnabled) @@ -695,7 +694,7 @@ private void HandleTaskbarListError(HRESULT hr) // Explorer being non-responsive should be a transient issue. Post back to apply the full TaskbarItemInfo. _taskbarRetryTimer.Start(); } - else if (hr == (HRESULT)Win32Error.ERROR_INVALID_WINDOW_HANDLE || hr == HRESULT.E_NOTIMPL) + else if (hr == HRESULT.FromWin32(WIN32_ERROR.ERROR_INVALID_WINDOW_HANDLE) || hr == HRESULT.E_NOTIMPL) { // We'll get this when Explorer's not running. This means there's no Shell to integrate with. if (TraceShell.IsEnabled) @@ -722,7 +721,7 @@ private void HandleTaskbarListError(HRESULT hr) private void OnTaskbarItemInfoSubPropertyChanged(object sender, DependencyPropertyChangedEventArgs e) { // Don't propagate changes from other TaskbarItemInfos. - if (sender != this.TaskbarItemInfo) + if (sender != TaskbarItemInfo) { // Since this and the TaskbarItemInfo should share affinity for the same thread // this really shouldn't happen... @@ -1644,8 +1643,8 @@ public event EventHandler SourceInitialized /// public event DpiChangedEventHandler DpiChanged { - add { AddHandler(Window.DpiChangedEvent, value); } - remove { RemoveHandler(Window.DpiChangedEvent, value); } + add { AddHandler(DpiChangedEvent, value); } + remove { RemoveHandler(DpiChangedEvent, value); } } /// @@ -1765,7 +1764,7 @@ protected override AutomationPeer OnCreateAutomationPeer() /// protected override void OnDpiChanged(DpiScale oldDpi, DpiScale newDpi) { - RaiseEvent(new DpiChangedEventArgs(oldDpi, newDpi, Window.DpiChangedEvent, this)); + RaiseEvent(new DpiChangedEventArgs(oldDpi, newDpi, DpiChangedEvent, this)); } /// @@ -1870,9 +1869,9 @@ protected override Size ArrangeOverride(Size arrangeBounds) return arrangeBounds; } - if (this.VisualChildrenCount > 0) + if (VisualChildrenCount > 0) { - UIElement child = this.GetVisualChild(0) as UIElement; + UIElement child = GetVisualChild(0) as UIElement; if (child != null) { // Find out the size of the window frame x. @@ -1946,7 +1945,7 @@ protected override void OnContentChanged(object oldContent, object newContent) // Thus we don't want to hook up another event handler if (_postContentRenderedFromLoadedHandler == false) { - this.Loaded += new RoutedEventHandler(LoadedHandler); + Loaded += new RoutedEventHandler(LoadedHandler); _postContentRenderedFromLoadedHandler = true; } } @@ -2674,10 +2673,10 @@ internal virtual void CorrectStyleForBorderlessWindowCase() internal virtual void GetRequestedDimensions(ref double requestedLeft, ref double requestedTop, ref double requestedWidth, ref double requestedHeight) { - requestedTop = this.Top; - requestedLeft = this.Left; - requestedWidth = this.Width; - requestedHeight = this.Height; + requestedTop = Top; + requestedLeft = Left; + requestedWidth = Width; + requestedHeight = Height; } internal virtual void SetupInitialState(double requestedTop, double requestedLeft, double requestedWidth, double requestedHeight) @@ -2928,7 +2927,7 @@ internal void SetRootVisualAndUpdateSTC() double yDeviceUnits = rc.top; // inputs to CalculateWindowLocation must be in DEVICE units - Point newSizeDeviceUnits = LogicalToDeviceUnits(new Point(this.ActualWidth, this.ActualHeight)); + Point newSizeDeviceUnits = LogicalToDeviceUnits(new Point(ActualWidth, ActualHeight)); if (CalculateWindowLocation(ref xDeviceUnits, ref yDeviceUnits, new Size(newSizeDeviceUnits.X, newSizeDeviceUnits.Y))) { if (WindowState == WindowState.Normal) @@ -3406,9 +3405,9 @@ private Size MeasureOverrideHelper(Size constraint) return new Size(0,0); } - if (this.VisualChildrenCount > 0) + if (VisualChildrenCount > 0) { - UIElement child = this.GetVisualChild(0) as UIElement; + UIElement child = GetVisualChild(0) as UIElement; if (child != null) // UIElement children { // Find out the size of the window frame x. @@ -3481,7 +3480,7 @@ internal virtual WindowMinMax GetWindowMinMax() // // Get the final Min/Max Width // - mm.minWidth = Math.Max(this.MinWidth, minSizeLogicalUnits.X); + mm.minWidth = Math.Max(MinWidth, minSizeLogicalUnits.X); // Min's precedence is higher than Max; If Min is greater than Max, use Min. if (MinWidth > MaxWidth) @@ -3503,12 +3502,12 @@ internal virtual WindowMinMax GetWindowMinMax() // // Get the final Min/Max Height // - mm.minHeight = Math.Max(this.MinHeight, minSizeLogicalUnits.Y); + mm.minHeight = Math.Max(MinHeight, minSizeLogicalUnits.Y); // Min's precedence is higher than Max; If Min is greater than Max, use Min. if (MinHeight > MaxHeight) { - mm.maxHeight = Math.Min(this.MinHeight, maxSizeLogicalUnits.Y); + mm.maxHeight = Math.Min(MinHeight, maxSizeLogicalUnits.Y); } else { @@ -3531,7 +3530,7 @@ private void LoadedHandler(object sender, RoutedEventArgs e) { PostContentRendered(); _postContentRenderedFromLoadedHandler = false; - this.Loaded -= new RoutedEventHandler(LoadedHandler); + Loaded -= new RoutedEventHandler(LoadedHandler); } } @@ -4535,7 +4534,7 @@ private void UpdateWindowListsOnClose() Owner.OwnedWindowsInternal.Remove(this); } - if (this.IsInsideApp) + if (IsInsideApp) { if (Application.Current.Dispatcher.Thread == Dispatcher.CurrentDispatcher.Thread) { @@ -4662,8 +4661,8 @@ private bool WmSizeChanged(IntPtr wParam) try { _updateHwndSize = false; - SetValue(FrameworkElement.WidthProperty, ptLogicalUnits.X); - SetValue(FrameworkElement.HeightProperty, ptLogicalUnits.Y); + SetValue(WidthProperty, ptLogicalUnits.X); + SetValue(HeightProperty, ptLogicalUnits.Y); } finally { @@ -5005,7 +5004,7 @@ internal virtual bool HandleWmNcHitTestMsg(IntPtr lParam, ref IntPtr refInt) // x,y should be not be less than zero // x,y should not be greater than RenderSize.Width and RenderSize.Height - GeneralTransform transfromFromWindow = this.TransformToDescendant(_resizeGripControl); + GeneralTransform transfromFromWindow = TransformToDescendant(_resizeGripControl); Point mousePositionWRTResizeGripControl = ptLogicalUnits; if (transfromFromWindow == null || transfromFromWindow.TryTransform(ptLogicalUnits, out mousePositionWRTResizeGripControl) == false) { @@ -5993,7 +5992,7 @@ private void UpdateHwndRestoreBounds(double newValue, BoundsSpecified specifiedR // of the window's visibility. // SetWindowPlacement with SW_SHOWMAXIMIZED and SW_SHOWMINIMIZED will cause a hidden window to show. // To workaround this issue, we check whether the current window is hidden and set showCmd to SW_HIDE if it is. - if (!this._isVisible) + if (!_isVisible) { wp.showCmd = NativeMethods.SW_HIDE; } @@ -6840,11 +6839,11 @@ private HRESULT UpdateTaskbarThumbButtons() private void CreateRtl() { - if ( this.FlowDirection == FlowDirection.LeftToRight ) + if ( FlowDirection == FlowDirection.LeftToRight ) { _StyleEx &= ~NativeMethods.WS_EX_LAYOUTRTL; } - else if ( this.FlowDirection == FlowDirection.RightToLeft ) + else if ( FlowDirection == FlowDirection.RightToLeft ) { _StyleEx |= NativeMethods.WS_EX_LAYOUTRTL; } @@ -6906,7 +6905,7 @@ private void ClearRootVisual() private NativeMethods.POINT GetPointRelativeToWindow( int x, int y ) { - return _swh.GetPointRelativeToWindow( x, y, this.FlowDirection); + return _swh.GetPointRelativeToWindow( x, y, FlowDirection); } // If you're in the middle of changing the window's _style or _styleEx and call this function, @@ -7216,7 +7215,7 @@ private WindowCollection OwnedWindowsInternal /// private System.Windows.Application App { - get {return System.Windows.Application.Current;} + get {return Application.Current;} } /// @@ -7913,7 +7912,7 @@ private bool MonitorEnumProc(IntPtr hMonitor, IntPtr hdcMonitor, ref NativeMetho NativeMethods.MONITOR_DPI_TYPE.MDT_EFFECTIVE_DPI, out dpiX, out dpiY); - if (hr == NativeMethods.S_OK) + if (hr == HRESULT.S_OK) { double dpiScaleX = dpiX * 1.0d / 96.0d; double dpiScaleY = dpiY * 1.0d / 96.0d; diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/Application/NativeDirectoryServicesQueryAPIs.cs b/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/Application/NativeDirectoryServicesQueryAPIs.cs index d946e970ceb..a4534586f79 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/Application/NativeDirectoryServicesQueryAPIs.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/Application/NativeDirectoryServicesQueryAPIs.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,6 +9,7 @@ using System; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; +using Windows.Win32.Foundation; namespace MS.Internal.Documents { @@ -36,12 +37,12 @@ internal static class UnsafeNativeMethods /// https://docs.microsoft.com/en-us/windows/desktop/api/cmnquery/nf-cmnquery-icommonquery-openquerywindow /// [Guid("ab50dec0-6f1d-11d0-a1c4-00aa00c16e65")] - [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] + [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [ComImport] internal interface ICommonQuery { [PreserveSig] - UInt32 OpenQueryWindow( + HRESULT OpenQueryWindow( [In] IntPtr hwndParent, [In] ref OpenQueryWindowParams pQueryWnd, [Out] out IDataObject ppDataObj diff --git a/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/PeoplePickerWrapper.cs b/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/PeoplePickerWrapper.cs index 0c9f646f53e..fc6227f7053 100644 --- a/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/PeoplePickerWrapper.cs +++ b/src/Microsoft.DotNet.Wpf/src/PresentationUI/MS/Internal/Documents/PeoplePickerWrapper.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -13,6 +13,7 @@ using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; using System.Windows.TrustUI; +using Windows.Win32.Foundation; namespace MS.Internal.Documents { @@ -143,7 +144,7 @@ private IDataObject OpenQueryWindow(IntPtr hWndParent) IntPtr queryInitParamsPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(queryInitParams)); //Now try to invoke the OpenQueryWindow method - uint hresult = UnsafeNativeMethods.E_FAIL; + HRESULT hresult = HRESULT.E_FAIL; IDataObject data = null; try @@ -179,10 +180,11 @@ private IDataObject OpenQueryWindow(IntPtr hWndParent) //Invoke the OpenQueryWindow method on the ICommonQuery object, //which will invoke the dialog and return any entered data in the //"data" field. - //OpenQueryWindow will not return until the dialog is closed. - hresult = commonQueryInstance.OpenQueryWindow(hWndParent, - ref openQueryWindowParams, - out data); + //OpenQueryWindow will not return until the dialog is closed. + hresult = commonQueryInstance.OpenQueryWindow( + hWndParent, + ref openQueryWindowParams, + out data); } finally { @@ -191,13 +193,13 @@ private IDataObject OpenQueryWindow(IntPtr hWndParent) Marshal.FreeCoTaskMem(queryInitParamsPtr); commonQueryInstance = null; } - - if (hresult == UnsafeNativeMethods.S_OK) + + if (hresult == HRESULT.S_OK) { //The user pressed "OK," so we can return the selected data return data; } - else if (hresult == UnsafeNativeMethods.S_FALSE) + else if (hresult == HRESULT.S_FALSE) { //The user canceled out, so we just return null. return null; @@ -332,16 +334,16 @@ internal DsObjectNamesWrapper(System.IO.MemoryStream dataStream) /// /// Finalizer for DsObjectNamesWrapper, ensures that unmanaged resources are properly - /// cleaned up. + /// cleaned up. /// ~DsObjectNamesWrapper() { - this.Dispose(); + Dispose(); } /// /// The number of names in the DsObjectNames struct this class is wrapping. - /// + /// internal uint Count { get diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/SecurityHelper.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/SecurityHelper.cs index 98618c5151e..0a15a5908b7 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/SecurityHelper.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/SecurityHelper.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -16,6 +16,7 @@ #if !PBTCOMPILER using MS.Win32; using System.IO.Packaging; +using Windows.Win32.Foundation; #endif #if PRESENTATION_CORE @@ -73,43 +74,46 @@ internal static Uri GetBaseDirectory(AppDomain domain) return( appBase ); } - internal static int MapUrlToZoneWrapper(Uri uri) - { - int targetZone = NativeMethods.URLZONE_LOCAL_MACHINE ; // fail securely this is the most priveleged zone - int hr = NativeMethods.S_OK ; - object curSecMgr = null; - hr = UnsafeNativeMethods.CoInternetCreateSecurityManager( - null, - out curSecMgr , - 0 ); - if ( NativeMethods.Failed( hr )) - throw new Win32Exception( hr ) ; - - UnsafeNativeMethods.IInternetSecurityManager pSec = (UnsafeNativeMethods.IInternetSecurityManager) curSecMgr; - - string uriString = BindUriHelper.UriToString( uri ) ; - // - // special case the condition if file is on local machine or UNC to ensure that content with mark of the web - // does not yield with an internet zone result - // - if (uri.IsFile) - { - pSec.MapUrlToZone( uriString, out targetZone, MS.Win32.NativeMethods.MUTZ_NOSAVEDFILECHECK ); - } - else - { - pSec.MapUrlToZone( uriString, out targetZone, 0 ); - } - // - // This is the condition for Invalid zone - // - if (targetZone < 0) - { - throw new SecurityException( SR.Invalid_URI ); - } - pSec = null; - curSecMgr = null; - return targetZone; + internal static int MapUrlToZoneWrapper(Uri uri) + { + int targetZone = NativeMethods.URLZONE_LOCAL_MACHINE ; // fail securely this is the most priveleged zone + + HRESULT result = UnsafeNativeMethods.CoInternetCreateSecurityManager( + null, + out object curSecMgr, + 0); + + if (result.Failed) + { + // This isn't technically right, keeping for compat. + throw new Win32Exception(result); + } + + UnsafeNativeMethods.IInternetSecurityManager pSec = (UnsafeNativeMethods.IInternetSecurityManager) curSecMgr; + + string uriString = BindUriHelper.UriToString( uri ) ; + // + // special case the condition if file is on local machine or UNC to ensure that content with mark of the web + // does not yield with an internet zone result + // + if (uri.IsFile) + { + pSec.MapUrlToZone( uriString, out targetZone, NativeMethods.MUTZ_NOSAVEDFILECHECK); + } + else + { + pSec.MapUrlToZone( uriString, out targetZone, 0 ); + } + // + // This is the condition for Invalid zone + // + if (targetZone < 0) + { + throw new SecurityException( SR.Invalid_URI ); + } + pSec = null; + curSecMgr = null; + return targetZone; } #endif @@ -140,21 +144,21 @@ internal static void ThrowExceptionForHR(int hr) { Marshal.ThrowExceptionForHR(hr, new IntPtr(-1)); } - - internal static int GetHRForException(Exception exception) + + internal static HRESULT GetHRForException(Exception exception) { ArgumentNullException.ThrowIfNull(exception); // GetHRForException fills a per thread IErrorInfo object with data from the exception // The exception may contain security sensitive data like full file paths that we do not // want to leak into an IErrorInfo - int hr = Marshal.GetHRForException(exception); + HRESULT result = (HRESULT)Marshal.GetHRForException(exception); // Call GetHRForException a second time with a security safe exception object // to make sure the per thread IErrorInfo is cleared of security sensitive data Marshal.GetHRForException(new Exception()); - return hr; + return result; } #endif @@ -165,44 +169,38 @@ internal static int GetHRForException(Exception exception) /// A helper method to do the necessary work to display a standard MessageBox. This method performs /// and necessary elevations to make the dialog work as well. /// - internal - static - void - ShowMessageBoxHelper( - System.Windows.Window parent, + internal static void ShowMessageBoxHelper( + Window parent, string text, string title, - System.Windows.MessageBoxButton buttons, - System.Windows.MessageBoxImage image + MessageBoxButton buttons, + MessageBoxImage image ) { // if we have a known parent window set, let's use it when alerting the user. if (parent != null) { - System.Windows.MessageBox.Show(parent, text, title, buttons, image); + MessageBox.Show(parent, text, title, buttons, image); } else { - System.Windows.MessageBox.Show(text, title, buttons, image); + MessageBox.Show(text, title, buttons, image); } } /// /// A helper method to do the necessary work to display a standard MessageBox. This method performs /// and necessary elevations to make the dialog work as well. /// - internal - static - void - ShowMessageBoxHelper( + internal static void ShowMessageBoxHelper( IntPtr parentHwnd, string text, string title, - System.Windows.MessageBoxButton buttons, - System.Windows.MessageBoxImage image + MessageBoxButton buttons, + MessageBoxImage image ) { // NOTE: the last param must always be MessageBoxOptions.None for this to be considered TreatAsSafe - System.Windows.MessageBox.ShowCore(parentHwnd, text, title, buttons, image, MessageBoxResult.None, MessageBoxOptions.None); + MessageBox.ShowCore(parentHwnd, text, title, buttons, image, MessageBoxResult.None, MessageBoxOptions.None); } #endif diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/TextServicesLoader.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/TextServicesLoader.cs index fa5180a2c0e..4cab13541e7 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/TextServicesLoader.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Internal/TextServicesLoader.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -15,6 +15,7 @@ using System.Threading; using Microsoft.Win32; using MS.Win32; +using Windows.Win32.Foundation; #if WINDOWS_BASE #elif PRESENTATION_CORE @@ -103,7 +104,7 @@ internal static UnsafeNativeMethods.ITfThreadMgr Load() // loaded (no TIPs to run), you can check that in msctf.dll's NoTipsInstalled // which lives in nt\windows\advcore\ctf\lib\immxutil.cpp. If that's the // problem, ServicesInstalled is out of sync with Cicero's thinking. - if (UnsafeNativeMethods.TF_CreateThreadMgr(out threadManager) == NativeMethods.S_OK) + if (UnsafeNativeMethods.TF_CreateThreadMgr(out threadManager) == HRESULT.S_OK) { return threadManager; } diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HandleCollector.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HandleCollector.cs index 5c6a94642f7..c99362bc442 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HandleCollector.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/HandleCollector.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -24,11 +24,6 @@ internal static IntPtr Add(IntPtr handle, int type) { return handle; } - internal static SafeHandle Add(SafeHandle handle, int type) { - handleTypes[type - 1].Add(); - return handle; - } - internal static void Add(int type) { handleTypes[type - 1].Add(); } @@ -36,15 +31,18 @@ internal static void Add(int type) { /// /// Registers a new type of handle with the handle collector. /// - internal static int RegisterType(string typeName, int expense, int initialThreshold) { + internal static int RegisterType(string typeName, int expense, int initialThreshold) + { lock (handleMutex) { if (handleTypeCount == 0 || handleTypeCount == handleTypes.Length) { HandleType[] newTypes = new HandleType[handleTypeCount + 10]; - if (handleTypes != null) { + if (handleTypes != null) + { Array.Copy(handleTypes, 0, newTypes, 0, handleTypeCount); } + handleTypes = newTypes; } @@ -63,11 +61,6 @@ internal static IntPtr Remove(IntPtr handle, int type) { return handle ; } - internal static SafeHandle Remove(SafeHandle handle, int type) { - handleTypes[type - 1].Remove(); - return handle ; - } - internal static void Remove(int type) { handleTypes[type - 1].Remove(); } diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsCLR.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsCLR.cs index 96ce2a431e2..1d3ec811d6b 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsCLR.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsCLR.cs @@ -1,28 +1,24 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. #pragma warning disable 649 // Disable CS0649: "field is never assigned to" using System.Runtime.InteropServices; using System; using System.Text; +using Windows.Win32; + #if !DRT && !UIAUTOMATIONTYPES using MS.Internal.Interop; using MS.Utility; #endif + // The SecurityHelper class differs between assemblies and could not actually be // shared, so it is duplicated across namespaces to prevent name collision. #if WINDOWS_BASE using MS.Internal.WindowsBase; -#elif PRESENTATION_CORE - using MS.Internal.PresentationCore; -#elif PRESENTATIONFRAMEWORK - using MS.Internal.PresentationFramework; #elif UIAUTOMATIONTYPES - using MS.Internal.UIAutomationTypes; -#elif DRT - using MS.Internal.Drt; +using MS.Internal.UIAutomationTypes; #else #error Attempt to use a class (duplicated across multiple namespaces) from an unknown assembly. #endif @@ -42,32 +38,32 @@ public class XFORM { public XFORM() { - this.eM11 = this.eM22 = 1; // identity matrix. + eM11 = eM22 = 1; // identity matrix. } public XFORM( float em11, float em12, float em21, float em22, float edx, float edy ) { - this.eM11 = em11; - this.eM12 = em12; - this.eM21 = em21; - this.eM22 = em22; - this.eDx = edx; - this.eDy = edy; + eM11 = em11; + eM12 = em12; + eM21 = em21; + eM22 = em22; + eDx = edx; + eDy = edy; } public XFORM( float[] elements ) { - this.eM11 = elements[0]; - this.eM12 = elements[1]; - this.eM21 = elements[2]; - this.eM22 = elements[3]; - this.eDx = elements[4]; - this.eDy = elements[5]; + eM11 = elements[0]; + eM12 = elements[1]; + eM21 = elements[2]; + eM22 = elements[3]; + eDx = elements[4]; + eDy = elements[5]; } public override string ToString() { - return String.Format(System.Globalization.CultureInfo.CurrentCulture,"[{0}, {1}, {2}, {3}, {4}, {5}]", this.eM11, this.eM12, this.eM21, this.eM22, this.eDx, this.eDy ); + return String.Format(System.Globalization.CultureInfo.CurrentCulture,"[{0}, {1}, {2}, {3}, {4}, {5}]", eM11, eM12, eM21, eM22, eDx, eDy ); } public override bool Equals( object obj ) @@ -79,33 +75,23 @@ public override bool Equals( object obj ) return false; } - return this.eM11 == xform.eM11 && - this.eM12 == xform.eM12 && - this.eM21 == xform.eM21 && - this.eM22 == xform.eM22 && - this.eDx == xform.eDx && - this.eDy == xform.eDy; + return eM11 == xform.eM11 && + eM12 == xform.eM12 && + eM21 == xform.eM21 && + eM22 == xform.eM22 && + eDx == xform.eDx && + eDy == xform.eDy; } public override int GetHashCode() { - return this.ToString().GetHashCode(); + return ToString().GetHashCode(); } } #endif - public static IntPtr InvalidIntPtr = (IntPtr)(-1); - public static IntPtr LPSTR_TEXTCALLBACK = (IntPtr)(-1); public static HandleRef NullHandleRef = new HandleRef(null, IntPtr.Zero); - public const int ERROR = 0; - - public const int BITMAPINFO_MAX_COLORSIZE = 256; - - public const int - PAGE_READWRITE = 0x04, - FILE_MAP_READ = 0x0004; - public const int APPCOMMAND_BROWSER_BACKWARD = 1; public const int APPCOMMAND_BROWSER_FORWARD = 2; public const int APPCOMMAND_BROWSER_REFRESH = 3; @@ -167,10 +153,6 @@ public const int public const int BITSPIXEL = 12; public const int - cmb4 = 0x0473, - CS_DBLCLKS = 0x0008, - CS_DROPSHADOW = 0x00020000, - CS_SAVEBITS = 0x0800, CF_TEXT = 1, CF_BITMAP = 2, CF_METAFILEPICT = 3, @@ -187,260 +169,18 @@ public const int CF_ENHMETAFILE = 14, CF_HDROP = 15, CF_LOCALE = 16, - CLSCTX_INPROC_SERVER = 0x1, - CLSCTX_LOCAL_SERVER = 0x4, - CW_USEDEFAULT = (unchecked((int)0x80000000)), - CWP_SKIPINVISIBLE = 0x0001, - COLOR_WINDOW = 5, - CB_ERR = (-1), - CBN_SELCHANGE = 1, - CBN_DBLCLK = 2, - CBN_EDITCHANGE = 5, - CBN_EDITUPDATE = 6, - CBN_DROPDOWN = 7, - CBN_CLOSEUP = 8, - CBN_SELENDOK = 9, - CBS_SIMPLE = 0x0001, - CBS_DROPDOWN = 0x0002, - CBS_DROPDOWNLIST = 0x0003, - CBS_OWNERDRAWFIXED = 0x0010, - CBS_OWNERDRAWVARIABLE = 0x0020, - CBS_AUTOHSCROLL = 0x0040, - CBS_HASSTRINGS = 0x0200, - CBS_NOINTEGRALHEIGHT = 0x0400, - CB_GETEDITSEL = 0x0140, - CB_LIMITTEXT = 0x0141, - CB_SETEDITSEL = 0x0142, - CB_ADDSTRING = 0x0143, - CB_DELETESTRING = 0x0144, - CB_GETCURSEL = 0x0147, - CB_GETLBTEXT = 0x0148, - CB_GETLBTEXTLEN = 0x0149, - CB_INSERTSTRING = 0x014A, - CB_RESETCONTENT = 0x014B, - CB_FINDSTRING = 0x014C, - CB_SETCURSEL = 0x014E, - CB_SHOWDROPDOWN = 0x014F, - CB_GETITEMDATA = 0x0150, - CB_SETITEMHEIGHT = 0x0153, - CB_GETITEMHEIGHT = 0x0154, - CB_GETDROPPEDSTATE = 0x0157, - CB_FINDSTRINGEXACT = 0x0158, - CB_SETDROPPEDWIDTH = 0x0160, - CDRF_DODEFAULT = 0x00000000, - CDRF_NEWFONT = 0x00000002, - CDRF_SKIPDEFAULT = 0x00000004, - CDRF_NOTIFYPOSTPAINT = 0x00000010, - CDRF_NOTIFYITEMDRAW = 0x00000020, - CDRF_NOTIFYSUBITEMDRAW = CDRF_NOTIFYITEMDRAW, - CDDS_PREPAINT = 0x00000001, - CDDS_POSTPAINT = 0x00000002, - CDDS_ITEM = 0x00010000, - CDDS_SUBITEM = 0x00020000, - CDDS_ITEMPREPAINT = (0x00010000|0x00000001), - CDDS_ITEMPOSTPAINT = (0x00010000|0x00000002), - CDIS_SELECTED = 0x0001, - CDIS_GRAYED = 0x0002, - CDIS_DISABLED = 0x0004, - CDIS_CHECKED = 0x0008, - CDIS_FOCUS = 0x0010, - CDIS_DEFAULT = 0x0020, - CDIS_HOT = 0x0040, - CDIS_MARKED = 0x0080, - CDIS_INDETERMINATE = 0x0100, - CDIS_SHOWKEYBOARDCUES = 0x0200, - CLR_NONE = unchecked((int)0xFFFFFFFF), - CLR_DEFAULT = unchecked((int)0xFF000000), - CCM_SETVERSION = (0x2000+0x7), - CCM_GETVERSION = (0x2000+0x8), - CCS_NORESIZE = 0x00000004, - CCS_NOPARENTALIGN = 0x00000008, - CCS_NODIVIDER = 0x00000040, - CBEM_INSERTITEMA = (0x0400+1), - CBEM_GETITEMA = (0x0400+4), - CBEM_SETITEMA = (0x0400+5), - CBEM_INSERTITEMW = (0x0400+11), - CBEM_SETITEMW = (0x0400+12), - CBEM_GETITEMW = (0x0400+13), - CBEN_ENDEDITA = ((0-800)-5), - CBEN_ENDEDITW = ((0-800)-6), - CONNECT_E_NOCONNECTION = unchecked((int)0x80040200), - CONNECT_E_CANNOTCONNECT = unchecked((int)0x80040202), - CTRLINFO_EATS_RETURN = 1, - CTRLINFO_EATS_ESCAPE = 2, - CSIDL_DESKTOP = 0x0000, // - CSIDL_INTERNET = 0x0001, // Internet Explorer (icon on desktop) - CSIDL_PROGRAMS = 0x0002, // Start Menu\Programs - CSIDL_PERSONAL = 0x0005, // My Documents - CSIDL_FAVORITES = 0x0006, // \Favorites - CSIDL_STARTUP = 0x0007, // Start Menu\Programs\Startup - CSIDL_RECENT = 0x0008, // \Recent - CSIDL_SENDTO = 0x0009, // \SendTo - CSIDL_STARTMENU = 0x000b, // \Start Menu - CSIDL_DESKTOPDIRECTORY = 0x0010, // \Desktop - CSIDL_TEMPLATES = 0x0015, - CSIDL_APPDATA = 0x001a, // \Application Data - CSIDL_LOCAL_APPDATA = 0x001c, // \Local Settings\Applicaiton Data (non roaming) - CSIDL_INTERNET_CACHE = 0x0020, - CSIDL_COOKIES = 0x0021, - CSIDL_HISTORY = 0x0022, - CSIDL_COMMON_APPDATA = 0x0023, // All Users\Application Data - CSIDL_SYSTEM = 0x0025, // GetSystemDirectory() - CSIDL_PROGRAM_FILES = 0x0026, // C:\Program Files - CSIDL_PROGRAM_FILES_COMMON = 0x002b; // C:\Program Files\Common - - public const int DUPLICATE = 0x06, - DISPID_VALUE = 0, + CW_USEDEFAULT = (unchecked((int)0x80000000)); + + public const int DISPID_UNKNOWN = (-1), - DISPID_PROPERTYPUT = (-3), DISPATCH_METHOD = 0x1, - DISPATCH_PROPERTYGET = 0x2, - DISPATCH_PROPERTYPUT = 0x4, - DISPATCH_PROPERTYPUTREF = 0x8, - DV_E_DVASPECT = unchecked((int)0x8004006B), DEFAULT_GUI_FONT = 17, DIB_RGB_COLORS = 0, - DRAGDROP_E_NOTREGISTERED = unchecked((int)0x80040100), - DRAGDROP_E_ALREADYREGISTERED = unchecked((int)0x80040101), - DUPLICATE_SAME_ACCESS = 0x00000002, - DFC_CAPTION = 1, - DFC_MENU = 2, - DFC_SCROLL = 3, - DFC_BUTTON = 4, - DFCS_CAPTIONCLOSE = 0x0000, - DFCS_CAPTIONMIN = 0x0001, - DFCS_CAPTIONMAX = 0x0002, - DFCS_CAPTIONRESTORE = 0x0003, - DFCS_CAPTIONHELP = 0x0004, - DFCS_MENUARROW = 0x0000, - DFCS_MENUCHECK = 0x0001, - DFCS_MENUBULLET = 0x0002, - DFCS_SCROLLUP = 0x0000, - DFCS_SCROLLDOWN = 0x0001, - DFCS_SCROLLLEFT = 0x0002, - DFCS_SCROLLRIGHT = 0x0003, - DFCS_SCROLLCOMBOBOX = 0x0005, - DFCS_BUTTONCHECK = 0x0000, - DFCS_BUTTONRADIO = 0x0004, - DFCS_BUTTON3STATE = 0x0008, - DFCS_BUTTONPUSH = 0x0010, - DFCS_INACTIVE = 0x0100, - DFCS_PUSHED = 0x0200, - DFCS_CHECKED = 0x0400, - DFCS_FLAT = 0x4000, - DT_LEFT = 0x00000000, - DT_RIGHT = 0x00000002, - DT_VCENTER = 0x00000004, - DT_SINGLELINE = 0x00000020, - DT_NOCLIP = 0x00000100, - DT_CALCRECT = 0x00000400, - DT_NOPREFIX = 0x00000800, - DT_EDITCONTROL = 0x00002000, - DT_EXPANDTABS = 0x00000040, - DT_END_ELLIPSIS = 0x00008000, - DT_RTLREADING = 0x00020000, - DT_WORDBREAK = 0x00000010, - DCX_WINDOW = 0x00000001, - DCX_CACHE = 0x00000002, - DCX_LOCKWINDOWUPDATE = 0x00000400, - DI_NORMAL = 0x0003, - DLGC_WANTARROWS = 0x0001, - DLGC_WANTTAB = 0x0002, - DLGC_WANTALLKEYS = 0x0004, - DLGC_WANTCHARS = 0x0080, - DTM_GETSYSTEMTIME = (0x1000+1), - DTM_SETSYSTEMTIME = (0x1000+2), - DTM_SETRANGE = (0x1000+4), - DTM_SETFORMATA = (0x1000+5), - DTM_SETFORMATW = (0x1000+50), - DTM_SETMCCOLOR = (0x1000+6), - DTM_SETMCFONT = (0x1000+9), - DTS_UPDOWN = 0x0001, - DTS_SHOWNONE = 0x0002, - DTS_LONGDATEFORMAT = 0x0004, - DTS_TIMEFORMAT = 0x0009, - DTS_RIGHTALIGN = 0x0020, - DTN_DATETIMECHANGE = ((0-760)+1), - DTN_USERSTRINGA = ((0-760)+2), - DTN_USERSTRINGW = ((0-760)+15), - DTN_WMKEYDOWNA = ((0-760)+3), - DTN_WMKEYDOWNW = ((0-760)+16), - DTN_FORMATA = ((0-760)+4), - DTN_FORMATW = ((0-760)+17), - DTN_FORMATQUERYA = ((0-760)+5), - DTN_FORMATQUERYW = ((0-760)+18), - DTN_DROPDOWN = ((0-760)+6), - DTN_CLOSEUP = ((0-760)+7), - DVASPECT_CONTENT = 1, - DVASPECT_TRANSPARENT = 32, - DVASPECT_OPAQUE = 16; - - public const int E_NOTIMPL = unchecked((int)0x80004001), - E_OUTOFMEMORY = unchecked((int)0x8007000E), - E_INVALIDARG = unchecked((int)0x80070057), - E_NOINTERFACE = unchecked((int)0x80004002), - E_FAIL = unchecked((int)0x80004005), - E_ABORT = unchecked((int)0x80004004), - E_ACCESSDENIED = unchecked((int)0x80070005), - E_UNEXPECTED = unchecked((int)0x8000FFFF), - INET_E_DEFAULT_ACTION = unchecked((int)0x800C0011), - ETO_OPAQUE = 0x0002, - ETO_CLIPPED = 0x0004, - EMR_POLYTEXTOUTA = 96, - EMR_POLYTEXTOUTW = 97, - EDGE_RAISED = (0x0001|0x0004), - EDGE_SUNKEN = (0x0002|0x0008), - EDGE_ETCHED = (0x0002|0x0004), - EDGE_BUMP = (0x0001|0x0008), - ES_LEFT = 0x0000, - ES_CENTER = 0x0001, - ES_RIGHT = 0x0002, - ES_MULTILINE = 0x0004, - ES_UPPERCASE = 0x0008, - ES_LOWERCASE = 0x0010, - ES_AUTOVSCROLL = 0x0040, - ES_AUTOHSCROLL = 0x0080, - ES_NOHIDESEL = 0x0100, - ES_READONLY = 0x0800, - ES_PASSWORD = 0x0020, - EN_CHANGE = 0x0300, - EN_UPDATE = 0x0400, - EN_HSCROLL = 0x0601, - EN_VSCROLL = 0x0602, - EN_ALIGN_LTR_EC = 0x0700, - EN_ALIGN_RTL_EC = 0x0701, - EC_LEFTMARGIN = 0x0001, - EC_RIGHTMARGIN = 0x0002, - EM_GETSEL = 0x00B0, - EM_SETSEL = 0x00B1, - EM_SCROLL = 0x00B5, - EM_SCROLLCARET = 0x00B7, - EM_GETMODIFY = 0x00B8, - EM_SETMODIFY = 0x00B9, - EM_GETLINECOUNT = 0x00BA, - EM_REPLACESEL = 0x00C2, - EM_GETLINE = 0x00C4, - EM_LIMITTEXT = 0x00C5, - EM_CANUNDO = 0x00C6, - EM_UNDO = 0x00C7, - EM_SETPASSWORDCHAR = 0x00CC, - EM_GETPASSWORDCHAR = 0x00D2, - EM_EMPTYUNDOBUFFER = 0x00CD, - EM_SETREADONLY = 0x00CF, - EM_SETMARGINS = 0x00D3, - EM_POSFROMCHAR = 0x00D6, - EM_CHARFROMPOS = 0x00D7, - EM_LINEFROMCHAR = 0x00C9, - EM_LINEINDEX = 0x00BB; - - public const int FNERR_SUBCLASSFAILURE = 0x3001, - FNERR_INVALIDFILENAME = 0x3002, - FNERR_BUFFERTOOSMALL = 0x3003; + DVASPECT_CONTENT = 1; public const int GMEM_MOVEABLE = 0x0002, GMEM_ZEROINIT = 0x0040, GMEM_DDESHARE = 0x2000, - GCL_WNDPROC = (-24), GWL_WNDPROC = (-4), GWL_HWNDPARENT = (-8), GWL_STYLE = (-16), @@ -452,21 +192,11 @@ public const int GW_HWNDPREV = 3, GW_OWNER = 4, GW_CHILD = 5, - GMR_VISIBLE = 0, - GMR_DAYSTATE = 1, - GDI_ERROR = (unchecked((int)0xFFFFFFFF)), - GDTR_MIN = 0x0001, - GDTR_MAX = 0x0002, - GDT_VALID = 0, - GDT_NONE = 1, GA_PARENT = 1, - GA_ROOT = 2; + GA_ROOT = 2; // ImmGetCompostionString index. public const int - GCS_COMPREADSTR = 0x0001, - GCS_COMPREADATTR = 0x0002, - GCS_COMPREADCLAUSE = 0x0004, GCS_COMPSTR = 0x0008, GCS_COMPATTR = 0x0010, GCS_COMPCLAUSE = 0x0020, @@ -489,12 +219,7 @@ public const int NI_COMPOSITIONSTR = 0x0015, // wParam of report message WM_IME_NOTIFY - IMN_CLOSESTATUSWINDOW = 0x0001, - IMN_OPENSTATUSWINDOW = 0x0002, - IMN_CHANGECANDIDATE = 0x0003, - IMN_CLOSECANDIDATE = 0x0004, IMN_OPENCANDIDATE = 0x0005, - IMN_SETCONVERSIONMODE = 0x0006, IMN_SETSENTENCEMODE = 0x0007, IMN_SETOPENSTATUS = 0x0008, IMN_SETCANDIDATEPOS = 0x0009, @@ -534,7 +259,6 @@ public const int IME_CMODE_EUDC = 0x0200, IME_CMODE_SYMBOL = 0x0400, IME_CMODE_FIXED = 0x0800, - IME_CMODE_RESERVED = unchecked((int)0xF0000000), // bit field for sentence mode IME_SMODE_NONE = 0x0000, @@ -620,46 +344,11 @@ public struct REGISTERWORD } public const int - HC_ACTION = 0, - HC_GETNEXT = 1, - HC_SKIP = 2, - HTNOWHERE = 0, HTCLIENT = 1, - HTBOTTOM = 15, - HTTRANSPARENT = (-1), HTBOTTOMLEFT = 16, HTBOTTOMRIGHT = 17, - HELPINFO_WINDOW = 0x0001, - HCF_HIGHCONTRASTON = 0x00000001, - HDI_ORDER = 0x0080, - HDI_WIDTH = 0x0001, - HDM_GETITEMCOUNT = (0x1200+0), - HDM_INSERTITEMA = (0x1200+1), - HDM_INSERTITEMW = (0x1200+10), - HDM_GETITEMA = (0x1200+3), - HDM_GETITEMW = (0x1200+11), - HDM_SETITEMA = (0x1200+4), - HDM_SETITEMW = (0x1200+12), - HDN_ITEMCHANGINGA = ((0-300)-0), - HDN_ITEMCHANGINGW = ((0-300)-20), - HDN_ITEMCHANGEDA = ((0-300)-1), - HDN_ITEMCHANGEDW = ((0-300)-21), - HDN_ITEMCLICKA = ((0-300)-2), - HDN_ITEMCLICKW = ((0-300)-22), - HDN_ITEMDBLCLICKA = ((0-300)-3), - HDN_ITEMDBLCLICKW = ((0-300)-23), - HDN_DIVIDERDBLCLICKA = ((0-300)-5), - HDN_DIVIDERDBLCLICKW = ((0-300)-25), - HDN_BEGINTDRAG = ((0-300)-10), - HDN_BEGINTRACKA = ((0-300)-6), - HDN_BEGINTRACKW = ((0-300)-26), - HDN_ENDDRAG = ((0-300)-11), - HDN_ENDTRACKA = ((0-300)-7), - HDN_ENDTRACKW = ((0-300)-27), - HDN_TRACKA = ((0-300)-8), - HDN_TRACKW = ((0-300)-28), - HDN_GETDISPINFOA = ((0-300)-9), - HDN_GETDISPINFOW = ((0-300)-29); + HCF_HIGHCONTRASTON = 0x00000001; + // HOVER_DEFAULT = Do not use this value ever! It crashes entire servers. public static HandleRef HWND_TOP = new HandleRef(null, (IntPtr)0); @@ -669,7 +358,7 @@ public const int // NOTE: NativeMethodsOther.cs defines the following //public static IntPtr HWND_MESSAGE = new IntPtr(-3); - public const int INPLACE_E_NOTOOLSPACE = unchecked((int)0x800401A1), + public const int ICON_SMALL = 0, ICON_BIG = 1, IDC_ARROW = 32512, @@ -685,36 +374,7 @@ public const int IDC_NO = 32648, IDC_APPSTARTING = 32650, IDC_HELP = 32651, - IMAGE_ICON = 1, - IMAGE_CURSOR = 2, - ICC_LISTVIEW_CLASSES = 0x00000001, - ICC_TREEVIEW_CLASSES = 0x00000002, - ICC_BAR_CLASSES = 0x00000004, - ICC_TAB_CLASSES = 0x00000008, - ICC_PROGRESS_CLASS = 0x00000020, - ICC_DATE_CLASSES = 0x00000100, - ILC_MASK = 0x0001, - ILC_COLOR = 0x0000, - ILC_COLOR4 = 0x0004, - ILC_COLOR8 = 0x0008, - ILC_COLOR16 = 0x0010, - ILC_COLOR24 = 0x0018, - ILC_COLOR32 = 0x0020, - ILC_MIRROR = 0x00002000, - ILD_NORMAL = 0x0000, - ILD_TRANSPARENT = 0x0001, - ILD_MASK = 0x0010, - ILD_ROP = 0x0040, - - // ImageList - // - ILP_NORMAL = 0, - ILP_DOWNLEVEL = 1, - ILS_NORMAL = 0x0, - ILS_GLOW = 0x1, - ILS_SHADOW = 0x2, - ILS_SATURATE = 0x4, - ILS_ALPHA = 0x8; + IMAGE_CURSOR = 2; public const int CSC_NAVIGATEFORWARD = 0x00000001, CSC_NAVIGATEBACK = 0x00000002; @@ -722,118 +382,17 @@ public const int public const int STG_E_CANTSAVE = unchecked((int)0x80030103); public const int LOGPIXELSX = 88, - LOGPIXELSY = 90, - LB_ERR = (-1), - LB_ERRSPACE = (-2), - LBN_SELCHANGE = 1, - LBN_DBLCLK = 2, - LB_ADDSTRING = 0x0180, - LB_INSERTSTRING = 0x0181, - LB_DELETESTRING = 0x0182, - LB_RESETCONTENT = 0x0184, - LB_SETSEL = 0x0185, - LB_SETCURSEL = 0x0186, - LB_GETSEL = 0x0187, - LB_GETCARETINDEX = 0x019F, - LB_GETCURSEL = 0x0188, - LB_GETTEXT = 0x0189, - LB_GETTEXTLEN = 0x018A, - LB_GETTOPINDEX = 0x018E, - LB_FINDSTRING = 0x018F, - LB_GETSELCOUNT = 0x0190, - LB_GETSELITEMS = 0x0191, - LB_SETTABSTOPS = 0x0192, - LB_SETHORIZONTALEXTENT = 0x0194, - LB_SETCOLUMNWIDTH = 0x0195, - LB_SETTOPINDEX = 0x0197, - LB_GETITEMRECT = 0x0198, - LB_SETITEMHEIGHT = 0x01A0, - LB_GETITEMHEIGHT = 0x01A1, - LB_FINDSTRINGEXACT = 0x01A2, - LB_ITEMFROMPOINT = 0x01A9, - LB_SETLOCALE = 0x01A5; + LOGPIXELSY = 90; public const int LWA_ALPHA = 0x00000002; public const int MEMBERID_NIL = (-1), MAX_PATH = 260, - MA_ACTIVATE = 0x0001, - MA_ACTIVATEANDEAT = 0x0002, MA_NOACTIVATE = 0x0003, - MA_NOACTIVATEANDEAT = 0x0004, - MM_TEXT = 1, - MM_ANISOTROPIC = 8, MK_LBUTTON = 0x0001, MK_RBUTTON = 0x0002, MK_SHIFT = 0x0004, - MK_CONTROL = 0x0008, - MK_MBUTTON = 0x0010, - MNC_EXECUTE = 2, - MNC_SELECT = 3, - MIIM_STATE = 0x00000001, - MIIM_ID = 0x00000002, - MIIM_SUBMENU = 0x00000004, - MIIM_TYPE = 0x00000010, - MIIM_DATA = 0x00000020, - MIIM_STRING = 0x00000040, - MIIM_BITMAP = 0x00000080, - MIIM_FTYPE = 0x00000100, - MB_OK = 0x00000000, - MF_BYCOMMAND = 0x00000000, - MF_BYPOSITION = 0x00000400, - MF_ENABLED = 0x00000000, - MF_GRAYED = 0x00000001, - MF_POPUP = 0x00000010, - MF_SYSMENU = 0x00002000, - MFS_DISABLED = 0x00000003, - MFT_MENUBREAK = 0x00000040, - MFT_SEPARATOR = 0x00000800, - MFT_RIGHTORDER = 0x00002000, - MFT_RIGHTJUSTIFY = 0x00004000, - MDIS_ALLCHILDSTYLES = 0x0001, - MDITILE_VERTICAL = 0x0000, - MDITILE_HORIZONTAL = 0x0001, - MDITILE_SKIPDISABLED = 0x0002, - MCM_SETMAXSELCOUNT = (0x1000+4), - MCM_SETSELRANGE = (0x1000+6), - MCM_GETMONTHRANGE = (0x1000+7), - MCM_GETMINREQRECT = (0x1000+9), - MCM_SETCOLOR = (0x1000+10), - MCM_SETTODAY = (0x1000+12), - MCM_GETTODAY = (0x1000+13), - MCM_HITTEST = (0x1000+14), - MCM_SETFIRSTDAYOFWEEK = (0x1000+15), - MCM_SETRANGE = (0x1000+18), - MCM_SETMONTHDELTA = (0x1000+20), - MCM_GETMAXTODAYWIDTH = (0x1000+21), - MCHT_TITLE = 0x00010000, - MCHT_CALENDAR = 0x00020000, - MCHT_TODAYLINK = 0x00030000, - MCHT_TITLEBK = (0x00010000), - MCHT_TITLEMONTH = (0x00010000|0x0001), - MCHT_TITLEYEAR = (0x00010000|0x0002), - MCHT_TITLEBTNNEXT = (0x00010000|0x01000000|0x0003), - MCHT_TITLEBTNPREV = (0x00010000|0x02000000|0x0003), - MCHT_CALENDARBK = (0x00020000), - MCHT_CALENDARDATE = (0x00020000|0x0001), - MCHT_CALENDARDATENEXT = ((0x00020000|0x0001)|0x01000000), - MCHT_CALENDARDATEPREV = ((0x00020000|0x0001)|0x02000000), - MCHT_CALENDARDAY = (0x00020000|0x0002), - MCHT_CALENDARWEEKNUM = (0x00020000|0x0003), - MCSC_TEXT = 1, - MCSC_TITLEBK = 2, - MCSC_TITLETEXT = 3, - MCSC_MONTHBK = 4, - MCSC_TRAILINGTEXT = 5, - MCN_SELCHANGE = ((0-750)+1), - MCN_GETDAYSTATE = ((0-750)+3), - MCN_SELECT = ((0-750)+4), - MCS_DAYSTATE = 0x0001, - MCS_MULTISELECT = 0x0002, - MCS_WEEKNUMBERS = 0x0004, - MCS_NOTODAYCIRCLE = 0x0008, - MCS_NOTODAY = 0x0010, - MSAA_MENU_SIG = (unchecked((int) 0xAA0DF00D)); + MK_CONTROL = 0x0008; //ActiveX related defines public const int @@ -859,72 +418,7 @@ public const int XFORMCOORDS_HIMETRICTOCONTAINER = 0x4, XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8; - public const int OFN_READONLY = 0x00000001, - OFN_OVERWRITEPROMPT = 0x00000002, - OFN_HIDEREADONLY = 0x00000004, - OFN_NOCHANGEDIR = 0x00000008, - //OFN_SHOWHELP = 0x00000010, - OFN_ENABLEHOOK = 0x00000020, - OFN_NOVALIDATE = 0x00000100, - OFN_ALLOWMULTISELECT = 0x00000200, - OFN_PATHMUSTEXIST = 0x00000800, - OFN_FILEMUSTEXIST = 0x00001000, - OFN_CREATEPROMPT = 0x00002000, - OFN_EXPLORER = 0x00080000, - OFN_NODEREFERENCELINKS = 0x00100000, - OFN_ENABLESIZING = 0x00800000, - OFN_USESHELLITEM = 0x01000000; - - public const int PDERR_SETUPFAILURE = 0x1001, - PDERR_PARSEFAILURE = 0x1002, - PDERR_RETDEFFAILURE = 0x1003, - PDERR_LOADDRVFAILURE = 0x1004, - PDERR_GETDEVMODEFAIL = 0x1005, - PDERR_INITFAILURE = 0x1006, - PDERR_NODEVICES = 0x1007, - PDERR_NODEFAULTPRN = 0x1008, - PDERR_DNDMMISMATCH = 0x1009, - PDERR_CREATEICFAILURE = 0x100A, - PDERR_PRINTERNOTFOUND = 0x100B, - PDERR_DEFAULTDIFFERENT = 0x100C, - PD_ALLPAGES = 0x00000000, - PD_SELECTION = 0x00000001, - PD_PAGENUMS = 0x00000002, - PD_NOSELECTION = 0x00000004, - PD_NOPAGENUMS = 0x00000008, - PD_COLLATE = 0x00000010, - PD_PRINTTOFILE = 0x00000020, - PD_PRINTSETUP = 0x00000040, - PD_NOWARNING = 0x00000080, - PD_RETURNDC = 0x00000100, - PD_RETURNIC = 0x00000200, - PD_RETURNDEFAULT = 0x00000400, - PD_SHOWHELP = 0x00000800, - PD_ENABLEPRINTHOOK = 0x00001000, - PD_ENABLESETUPHOOK = 0x00002000, - PD_ENABLEPRINTTEMPLATE = 0x00004000, - PD_ENABLESETUPTEMPLATE = 0x00008000, - PD_ENABLEPRINTTEMPLATEHANDLE = 0x00010000, - PD_ENABLESETUPTEMPLATEHANDLE = 0x00020000, - PD_USEDEVMODECOPIES = 0x00040000, - PD_USEDEVMODECOPIESANDCOLLATE = 0x00040000, - PD_DISABLEPRINTTOFILE = 0x00080000, - PD_HIDEPRINTTOFILE = 0x00100000, - PD_NONETWORKBUTTON = 0x00200000, - PD_CURRENTPAGE = 0x00400000, - PD_NOCURRENTPAGE = 0x00800000, - PD_EXCLUSIONFLAGS = 0x01000000, - PD_USELARGETEMPLATE = 0x10000000, - PSD_MINMARGINS = 0x00000001, - PSD_MARGINS = 0x00000002, - PSD_INHUNDREDTHSOFMILLIMETERS = 0x00000008, - PSD_DISABLEMARGINS = 0x00000010, - PSD_DISABLEPRINTER = 0x00000020, - PSD_DISABLEORIENTATION = 0x00000100, - PSD_DISABLEPAPER = 0x00000200, - PSD_SHOWHELP = 0x00000800, - PSD_ENABLEPAGESETUPHOOK = 0x00002000, - PSD_NONETWORKBUTTON = 0x00200000, + public const int PS_SOLID = 0, PS_DOT = 2, PLANES = 14, @@ -936,16 +430,6 @@ public const int PM_NOREMOVE = 0x0000, PM_REMOVE = 0x0001, PM_NOYIELD = 0x0002, - PBM_SETRANGE = (0x0400+1), - PBM_SETPOS = (0x0400+2), - PBM_SETSTEP = (0x0400+4), - PBM_SETRANGE32 = (0x0400+6), - PBM_SETBARCOLOR = (0x0400+9), - PBM_SETBKCOLOR = (0x2000 +1), - PSM_SETTITLEA = (0x0400+111), - PSM_SETTITLEW = (0x0400+120), - PSM_SETFINISHTEXTA = (0x0400+115), - PSM_SETFINISHTEXTW = (0x0400+121), PATCOPY = 0x00F00021, PATINVERT = 0x005A0049; @@ -966,8 +450,7 @@ public const int public const int RDW_INVALIDATE = 0x0001; public const int RDW_ALLCHILDREN = 0x0080; - public const int stc4 = 0x0443, - SHGFP_TYPE_CURRENT = 0, + public const int STGM_READ = 0x00000000, STGM_WRITE = 0x00000001, STGM_READWRITE = 0x00000002, @@ -983,29 +466,7 @@ public const int STGTY_PROPERTY = 4, STARTF_USESHOWWINDOW = 0x00000001, - SB_HORZ = 0, - SB_VERT = 1, - SB_CTL = 2, - SB_LINEUP = 0, - SB_LINELEFT = 0, - SB_LINEDOWN = 1, - SB_LINERIGHT = 1, - SB_PAGEUP = 2, - SB_PAGELEFT = 2, - SB_PAGEDOWN = 3, - SB_PAGERIGHT = 3, - SB_THUMBPOSITION = 4, - SB_THUMBTRACK = 5, - SB_LEFT = 6, - SB_RIGHT = 7, - SB_ENDSCROLL = 8, - SB_TOP = 6, - SB_BOTTOM = 7, SIZE_MAXIMIZED = 2, - ESB_ENABLE_BOTH = 0x0000, - ESB_DISABLE_BOTH =0x0003, - SORT_DEFAULT =0x0, - SUBLANG_DEFAULT = 0x01, SW_HIDE = 0, SW_NORMAL = 1, SW_SHOWMINIMIZED = 2, @@ -1026,35 +487,14 @@ public const int SWP_HIDEWINDOW = 0x0080, SWP_DRAWFRAME = 0x0020; - public const int MB_ICONHAND = 0x000010, - MB_ICONQUESTION = 0x000020, - MB_ICONEXCLAMATION = 0x000030, - MB_ICONASTERISK = 0x000040; - - public const int SW_SCROLLCHILDREN = 0x0001, - SW_INVALIDATE = 0x0002, - SW_ERASE = 0x0004, - SW_SMOOTHSCROLL = 0x0010, + public const int SC_SIZE = 0xF000, SC_MINIMIZE = 0xF020, SC_MAXIMIZE = 0xF030, SC_CLOSE = 0xF060, SC_KEYMENU = 0xF100, SC_RESTORE = 0xF120, - SC_MOVE = 0xF010, - SS_LEFT = 0x00000000, - SS_CENTER = 0x00000001, - SS_RIGHT = 0x00000002, - SS_OWNERDRAW = 0x0000000D, - SS_NOPREFIX = 0x00000080, - SS_SUNKEN = 0x00001000, - SBS_HORZ = 0x0000, - SBS_VERT = 0x0001, - SIF_RANGE = 0x0001, - SIF_PAGE = 0x0002, - SIF_POS = 0x0004, - SIF_TRACKPOS = 0x0010, - SIF_ALL = (0x0001|0x0002|0x0004|0x0010), + SC_MOVE = 0xF010, SPI_GETFONTSMOOTHING = 0x004A, SPI_GETDROPSHADOW = 0x1024, SPI_GETFLATMENU = 0x1022, @@ -1098,29 +538,6 @@ public const int SPI_GETDEFAULTINPUTLANG = 89, SPI_GETSNAPTODEFBUTTON = 95, SPI_GETWHEELSCROLLLINES = 104, - SBARS_SIZEGRIP = 0x0100, - SB_SETTEXTA = (0x0400+1), - SB_SETTEXTW = (0x0400+11), - SB_GETTEXTA = (0x0400+2), - SB_GETTEXTW = (0x0400+13), - SB_GETTEXTLENGTHA = (0x0400+3), - SB_GETTEXTLENGTHW = (0x0400+12), - SB_SETPARTS = (0x0400+4), - SB_SIMPLE = (0x0400+9), - SB_GETRECT = (0x0400+10), - SB_SETICON = (0x0400+15), - SB_SETTIPTEXTA = (0x0400+16), - SB_SETTIPTEXTW = (0x0400+17), - SB_GETTIPTEXTA = (0x0400+18), - SB_GETTIPTEXTW = (0x0400+19), - SBT_OWNERDRAW = 0x1000, - SBT_NOBORDERS = 0x0100, - SBT_POPOUT = 0x0200, - SBT_RTLREADING = 0x0400, - SRCCOPY = 0x00CC0020, - SRCAND = 0x008800C6, /* dest = source AND dest */ - SRCPAINT = 0x00EE0086, /* dest = source OR dest */ - NOTSRCCOPY = 0x00330008, /* dest = (NOT source) */ STATFLAG_DEFAULT = 0x0, STATFLAG_NONAME = 0x1, STATFLAG_NOOPEN = 0x2, @@ -1132,323 +549,19 @@ public const int STREAM_SEEK_CUR = 0x1, STREAM_SEEK_END = 0x2; - public const int S_OK = 0x00000000; - public const int S_FALSE = 0x00000001; - - public static bool Succeeded(int hr) { - return(hr >= 0); - } - - public static bool Failed(int hr) { - return(hr < 0); - } - - public const int TRANSPARENT = 1, - OPAQUE = 2, - TME_HOVER = 0x00000001, - TME_LEAVE = 0x00000002, - TPM_LEFTBUTTON = 0x0000, - TPM_RIGHTBUTTON = 0x0002, - TPM_LEFTALIGN = 0x0000, - TPM_RIGHTALIGN = 0x0008, - TPM_VERTICAL = 0x0040, - TV_FIRST = 0x1100, - TBSTATE_CHECKED = 0x01, - TBSTATE_ENABLED = 0x04, - TBSTATE_HIDDEN = 0x08, - TBSTATE_INDETERMINATE = 0x10, - TBSTYLE_BUTTON = 0x00, - TBSTYLE_SEP = 0x01, - TBSTYLE_CHECK = 0x02, - TBSTYLE_DROPDOWN = 0x08, - TBSTYLE_TOOLTIPS = 0x0100, - TBSTYLE_FLAT = 0x0800, - TBSTYLE_LIST = 0x1000, - TBSTYLE_EX_DRAWDDARROWS = 0x00000001, - TB_ENABLEBUTTON = (0x0400+1), - TB_ISBUTTONCHECKED = (0x0400+10), - TB_ISBUTTONINDETERMINATE = (0x0400+13), - TB_ADDBUTTONSA = (0x0400+20), - TB_ADDBUTTONSW = (0x0400+68), - TB_INSERTBUTTONA = (0x0400+21), - TB_INSERTBUTTONW = (0x0400+67), - TB_DELETEBUTTON = (0x0400+22), - TB_GETBUTTON = (0x0400+23), - TB_SAVERESTOREA = (0x0400+26), - TB_SAVERESTOREW = (0x0400+76), - TB_ADDSTRINGA = (0x0400+28), - TB_ADDSTRINGW = (0x0400+77), - TB_BUTTONSTRUCTSIZE = (0x0400+30), - TB_SETBUTTONSIZE = (0x0400+31), - TB_AUTOSIZE = (0x0400+33), - TB_GETROWS = (0x0400+40), - TB_GETBUTTONTEXTA = (0x0400+45), - TB_GETBUTTONTEXTW = (0x0400+75), - TB_SETIMAGELIST = (0x0400+48), - TB_GETRECT = (0x0400+51), - TB_GETBUTTONSIZE = (0x0400+58), - TB_GETBUTTONINFOW = (0x0400+63), - TB_SETBUTTONINFOW = (0x0400+64), - TB_GETBUTTONINFOA = (0x0400+65), - TB_SETBUTTONINFOA = (0x0400+66), - TB_MAPACCELERATORA = (0x0400+78), - TB_SETEXTENDEDSTYLE = (0x0400+84), - TB_MAPACCELERATORW = (0x0400+90), - TB_GETTOOLTIPS = (0x0400 + 35), - TB_SETTOOLTIPS = (0x0400 + 36), - TBIF_IMAGE = 0x00000001, - TBIF_TEXT = 0x00000002, - TBIF_STATE = 0x00000004, - TBIF_STYLE = 0x00000008, - TBIF_COMMAND = 0x00000020, - TBIF_SIZE = 0x00000040, - TBN_GETBUTTONINFOA = ((0-700)-0), - TBN_GETBUTTONINFOW = ((0-700)-20), - TBN_QUERYINSERT = ((0-700)-6), - TBN_DROPDOWN = ((0-700)-10), - TBN_HOTITEMCHANGE = ((0-700)-13), - TBN_GETDISPINFOA = ((0-700)-16), - TBN_GETDISPINFOW = ((0-700)-17), - TBN_GETINFOTIPA = ((0-700)-18), - TBN_GETINFOTIPW = ((0-700)-19), - TTS_ALWAYSTIP = 0x01, - TTS_NOPREFIX =0x02, - TTS_NOANIMATE =0x10, - TTS_NOFADE =0x20, - TTS_BALLOON =0x40, - //TTI_NONE =0, - //TTI_INFO =1, - TTI_WARNING =2, - //TTI_ERROR =3, - TTF_IDISHWND = 0x0001, - TTF_RTLREADING = 0x0004, - TTF_TRACK = 0x0020, - TTF_CENTERTIP = 0x0002, - TTF_SUBCLASS = 0x0010, - TTF_TRANSPARENT = 0x0100, - TTF_ABSOLUTE = 0x0080, - TTDT_AUTOMATIC = 0, - TTDT_RESHOW = 1, - TTDT_AUTOPOP = 2, - TTDT_INITIAL = 3, - TTM_TRACKACTIVATE = (0x0400+17), - TTM_TRACKPOSITION = (0x0400+18), - TTM_ACTIVATE = (0x0400+1), - TTM_POP = (0x0400 + 28), - TTM_ADJUSTRECT = (0x400 + 31), - TTM_SETDELAYTIME = (0x0400+3), -#if !DRT && !UIAUTOMATIONTYPES - TTM_SETTITLEA =((int)WindowMessage.WM_USER + 32), // wParam = TTI_*, lParam = char* szTitle - TTM_SETTITLEW =((int)WindowMessage.WM_USER + 33), // wParam = TTI_*, lParam = wchar* szTitle -#endif - TTM_ADDTOOLA = (0x0400+4), - TTM_ADDTOOLW = (0x0400+50), - TTM_DELTOOLA = (0x0400+5), - TTM_DELTOOLW = (0x0400+51), - TTM_NEWTOOLRECTA = (0x0400+6), - TTM_NEWTOOLRECTW = (0x0400+52), - TTM_RELAYEVENT = (0x0400+7), - TTM_GETTIPBKCOLOR = (0x0400+22), - TTM_SETTIPBKCOLOR = (0x0400 + 19), - TTM_SETTIPTEXTCOLOR = (0x0400 + 20), - TTM_GETTIPTEXTCOLOR = (0x0400+23), - TTM_GETTOOLINFOA = (0x0400+8), - TTM_GETTOOLINFOW = (0x0400+53), - TTM_SETTOOLINFOA = (0x0400+9), - TTM_SETTOOLINFOW = (0x0400+54), - TTM_HITTESTA = (0x0400+10), - TTM_HITTESTW = (0x0400+55), - TTM_GETTEXTA = (0x0400+11), - TTM_GETTEXTW = (0x0400+56), - TTM_UPDATE = (0x0400+29), - TTM_UPDATETIPTEXTA = (0x0400+12), - TTM_UPDATETIPTEXTW = (0x0400+57), - TTM_ENUMTOOLSA = (0x0400+14), - TTM_ENUMTOOLSW = (0x0400+58), - TTM_GETCURRENTTOOLA = (0x0400+15), - TTM_GETCURRENTTOOLW = (0x0400+59), - TTM_WINDOWFROMPOINT = (0x0400+16), - TTM_GETDELAYTIME = (0x0400+21), - TTM_SETMAXTIPWIDTH = (0x0400+24), - TTN_GETDISPINFOA = ((0-520)-0), - TTN_GETDISPINFOW = ((0-520)-10), - TTN_SHOW = ((0-520)-1), - TTN_POP = ((0-520)-2), - TTN_NEEDTEXTA = ((0-520)-0), - TTN_NEEDTEXTW = ((0-520)-10), - TBS_AUTOTICKS = 0x0001, - TBS_VERT = 0x0002, - TBS_TOP = 0x0004, - TBS_BOTTOM = 0x0000, - TBS_BOTH = 0x0008, - TBS_NOTICKS = 0x0010, - TBM_GETPOS = (0x0400), - TBM_SETTIC = (0x0400+4), - TBM_SETPOS = (0x0400+5), - TBM_SETRANGE = (0x0400+6), - TBM_SETRANGEMIN = (0x0400+7), - TBM_SETRANGEMAX = (0x0400+8), - TBM_SETTICFREQ = (0x0400+20), - TBM_SETPAGESIZE = (0x0400+21), - TBM_SETLINESIZE = (0x0400+23), - TB_LINEUP = 0, - TB_LINEDOWN = 1, - TB_PAGEUP = 2, - TB_PAGEDOWN = 3, - TB_THUMBPOSITION = 4, - TB_THUMBTRACK = 5, - TB_TOP = 6, - TB_BOTTOM = 7, - TB_ENDTRACK = 8, - TVS_HASBUTTONS = 0x0001, - TVS_HASLINES = 0x0002, - TVS_LINESATROOT = 0x0004, - TVS_EDITLABELS = 0x0008, - TVS_SHOWSELALWAYS = 0x0020, - TVS_RTLREADING = 0x0040, - TVS_CHECKBOXES = 0x0100, - TVS_TRACKSELECT = 0x0200, - TVS_FULLROWSELECT = 0x1000, - TVS_NONEVENHEIGHT = 0x4000, - TVS_INFOTIP = 0x0800, - TVS_NOTOOLTIPS = 0x0080, - TVIF_TEXT = 0x0001, - TVIF_IMAGE = 0x0002, - TVIF_PARAM = 0x0004, - TVIF_STATE = 0x0008, - TVIF_HANDLE = 0x0010, - TVIF_SELECTEDIMAGE = 0x0020, - TVIS_SELECTED = 0x0002, - TVIS_EXPANDED = 0x0020, - TVIS_EXPANDEDONCE = 0x0040, - TVIS_STATEIMAGEMASK = 0xF000, - TVI_ROOT = (unchecked((int)0xFFFF0000)), - TVI_FIRST = (unchecked((int)0xFFFF0001)), - TVM_INSERTITEMA = (0x1100+0), - TVM_INSERTITEMW = (0x1100+50), - TVM_DELETEITEM = (0x1100+1), - TVM_EXPAND = (0x1100+2), - TVE_COLLAPSE = 0x0001, - TVE_EXPAND = 0x0002, - TVM_GETITEMRECT = (0x1100+4), - TVM_GETINDENT = (0x1100+6), - TVM_SETINDENT = (0x1100+7), - TVM_SETIMAGELIST = (0x1100+9), - TVM_GETNEXTITEM = (0x1100+10), - TVGN_NEXT = 0x0001, - TVGN_PREVIOUS = 0x0002, - TVGN_FIRSTVISIBLE = 0x0005, - TVGN_NEXTVISIBLE = 0x0006, - TVGN_PREVIOUSVISIBLE = 0x0007, - TVGN_CARET = 0x0009, - TVM_SELECTITEM = (0x1100+11), - TVM_GETITEMA = (0x1100+12), - TVM_GETITEMW = (0x1100+62), - TVM_SETITEMA = (0x1100+13), - TVM_SETITEMW = (0x1100+63), - TVM_EDITLABELA = (0x1100+14), - TVM_EDITLABELW = (0x1100+65), - TVM_GETEDITCONTROL = (0x1100+15), - TVM_GETVISIBLECOUNT = (0x1100+16), - TVM_HITTEST = (0x1100+17), - TVM_ENSUREVISIBLE = (0x1100+20), - TVM_ENDEDITLABELNOW = (0x1100+22), - TVM_GETISEARCHSTRINGA = (0x1100+23), - TVM_GETISEARCHSTRINGW = (0x1100+64), - TVM_SETITEMHEIGHT = (0x1100+27), - TVM_GETITEMHEIGHT = (0x1100+28), - TVN_SELCHANGINGA = ((0-400)-1), - TVN_SELCHANGINGW = ((0-400)-50), - TVN_GETINFOTIPA = ((0-400)-13), - TVN_GETINFOTIPW = ((0-400)-14), - TVN_SELCHANGEDA = ((0-400)-2), - TVN_SELCHANGEDW = ((0-400)-51), - TVC_UNKNOWN = 0x0000, - TVC_BYMOUSE = 0x0001, - TVC_BYKEYBOARD = 0x0002, - TVN_GETDISPINFOA = ((0-400)-3), - TVN_GETDISPINFOW = ((0-400)-52), - TVN_SETDISPINFOA = ((0-400)-4), - TVN_SETDISPINFOW = ((0-400)-53), - TVN_ITEMEXPANDINGA = ((0-400)-5), - TVN_ITEMEXPANDINGW = ((0-400)-54), - TVN_ITEMEXPANDEDA = ((0-400)-6), - TVN_ITEMEXPANDEDW = ((0-400)-55), - TVN_BEGINDRAGA = ((0-400)-7), - TVN_BEGINDRAGW = ((0-400)-56), - TVN_BEGINRDRAGA = ((0-400)-8), - TVN_BEGINRDRAGW = ((0-400)-57), - TVN_BEGINLABELEDITA = ((0-400)-10), - TVN_BEGINLABELEDITW = ((0-400)-59), - TVN_ENDLABELEDITA = ((0-400)-11), - TVN_ENDLABELEDITW = ((0-400)-60), - TCS_BOTTOM = 0x0002, - TCS_RIGHT = 0x0002, - TCS_FLATBUTTONS = 0x0008, - TCS_HOTTRACK = 0x0040, - TCS_VERTICAL = 0x0080, - TCS_TABS = 0x0000, - TCS_BUTTONS = 0x0100, - TCS_MULTILINE = 0x0200, - TCS_RIGHTJUSTIFY = 0x0000, - TCS_FIXEDWIDTH = 0x0400, - TCS_RAGGEDRIGHT = 0x0800, - TCS_OWNERDRAWFIXED = 0x2000, - TCS_TOOLTIPS = 0x4000, - TCM_SETIMAGELIST = (0x1300+3), - TCIF_TEXT = 0x0001, - TCIF_IMAGE = 0x0002, - TCM_GETITEMA = (0x1300+5), - TCM_GETITEMW = (0x1300+60), - TCM_SETITEMA = (0x1300+6), - TCM_SETITEMW = (0x1300+61), - TCM_INSERTITEMA = (0x1300+7), - TCM_INSERTITEMW = (0x1300+62), - TCM_DELETEITEM = (0x1300+8), - TCM_DELETEALLITEMS = (0x1300+9), - TCM_GETITEMRECT = (0x1300+10), - TCM_GETCURSEL = (0x1300+11), - TCM_SETCURSEL = (0x1300+12), - TCM_ADJUSTRECT = (0x1300+40), - TCM_SETITEMSIZE = (0x1300+41), - TCM_SETPADDING = (0x1300+43), - TCM_GETROWCOUNT = (0x1300+44), - TCM_GETTOOLTIPS = (0x1300+45), - TCM_SETTOOLTIPS = (0x1300+46), - TCN_SELCHANGE = ((0-550)-1), - TCN_SELCHANGING = ((0-550)-2), - TBSTYLE_WRAPPABLE = 0x0200, - TVM_SETBKCOLOR = (TV_FIRST + 29), - TVM_SETTEXTCOLOR = (TV_FIRST + 30), - TYMED_NULL = 0, - TVM_GETLINECOLOR = (TV_FIRST + 41), - TVM_SETLINECOLOR = (TV_FIRST + 40), - TVM_SETTOOLTIPS = (TV_FIRST + 24), - TVSIL_STATE = 2, - TVM_SORTCHILDRENCB = (TV_FIRST + 21); - - public const int - UIS_SET = 1, - UIS_CLEAR = 2, - UIS_INITIALIZE = 3, - UISF_HIDEFOCUS = 0x1, - UISF_HIDEACCEL = 0x2, - UISF_ACTIVE = 0x4; + public const int TME_LEAVE = 0x00000002; public const int VK_TAB = 0x09; public const int VK_SHIFT = 0x10; public const int VK_CONTROL = 0x11; public const int VK_MENU = 0x12; - public const int WH_JOURNALPLAYBACK = 1, - WH_GETMESSAGE = 3, - WH_MOUSE = 7, - WSF_VISIBLE = 0x0001, + public const int WA_INACTIVE = 0, WA_ACTIVE = 1, WA_CLICKACTIVE = 2; - public const int WHEEL_DELTA = 120, + public const int #if !DRT && !UIAUTOMATIONTYPES WM_REFLECT = (int)WindowMessage.WM_USER + 0x1C00, WM_CHOOSEFONT_GETLOGFONT = (int)WindowMessage.WM_USER +1, @@ -1497,20 +610,15 @@ public const int public const int WHITE_BRUSH = 0x00000000; public const int NULL_BRUSH = 5; - public const int XBUTTON1 = 0x0001; - public const int XBUTTON2 = 0x0002; - public static int SignedHIWORD(int n) { int i = (int)(short)((n >> 16) & 0xffff); - return i; } public static int SignedLOWORD(int n) { int i = (int)(short)(n & 0xFFFF); - return i; } @@ -1560,14 +668,6 @@ public override string ToString() { public delegate IntPtr WndProc(IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam); - [StructLayout(LayoutKind.Sequential)] - public struct MARGINS { - public int cxLeftWidth; - public int cxRightWidth; - public int cyTopHeight; - public int cyBottomHeight; - } - [StructLayout(LayoutKind.Sequential)] public class NONCLIENTMETRICS { public int cbSize = SizeOf(); @@ -1682,28 +782,8 @@ public class BITMAP { } [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)] - public class LOGFONT { - public LOGFONT() { - } - public LOGFONT( LOGFONT lf ) - { - ArgumentNullException.ThrowIfNull(lf); - - this.lfHeight = lf.lfHeight; - this.lfWidth = lf.lfWidth; - this.lfEscapement = lf.lfEscapement; - this.lfOrientation = lf.lfOrientation; - this.lfWeight = lf.lfWeight; - this.lfItalic = lf.lfItalic; - this.lfUnderline = lf.lfUnderline; - this.lfStrikeOut = lf.lfStrikeOut; - this.lfCharSet = lf.lfCharSet; - this.lfOutPrecision = lf.lfOutPrecision; - this.lfClipPrecision = lf.lfClipPrecision; - this.lfQuality = lf.lfQuality; - this.lfPitchAndFamily = lf.lfPitchAndFamily; - this.lfFaceName = lf.lfFaceName; - } + public class LOGFONT + { public int lfHeight; public int lfWidth; public int lfEscapement; @@ -1718,94 +798,11 @@ public LOGFONT( LOGFONT lf ) public byte lfQuality; public byte lfPitchAndFamily; [MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)] - public string lfFaceName; - } - - [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)] - public class MENUITEMINFO_T - { - public int cbSize = SizeOf(); - public int fMask = 0; - public int fType = 0; - public int fState = 0; - public int wID = 0; - public IntPtr hSubMenu = IntPtr.Zero; - public IntPtr hbmpChecked = IntPtr.Zero; - public IntPtr hbmpUnchecked = IntPtr.Zero; - public int dwItemData = 0; - public string dwTypeData = null; - public int cch = 0; - - private static int SizeOf() - { - return Marshal.SizeOf(typeof(MENUITEMINFO_T)); - } + public string lfFaceName; } public delegate bool EnumThreadWindowsCallback(IntPtr hWnd, IntPtr lParam); - [StructLayout(LayoutKind.Sequential)] - internal class OFNOTIFY - { - // hdr was a by-value NMHDR structure - internal IntPtr hdr_hwndFrom; - internal IntPtr hdr_idFrom; - internal int hdr_code; - - internal IntPtr lpOFN; - internal IntPtr pszFile; - } - - [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)] - public class OPENFILENAME_I - { - public int lStructSize = SizeOf(); //ndirect.DllLib.sizeOf(this); - public IntPtr hwndOwner; - public IntPtr hInstance; - public string lpstrFilter; // use embedded nulls to separate filters - public IntPtr lpstrCustomFilter; - public int nMaxCustFilter; - public int nFilterIndex; - public IntPtr lpstrFile; - public int nMaxFile = NativeMethods.MAX_PATH; - public IntPtr lpstrFileTitle; - public int nMaxFileTitle = NativeMethods.MAX_PATH; - public string lpstrInitialDir; - public string lpstrTitle; - public int Flags; - public short nFileOffset; - public short nFileExtension; - public string lpstrDefExt; - public IntPtr lCustData; - public WndProc lpfnHook; - public string lpTemplateName; - public IntPtr pvReserved; - public int dwReserved; - public int FlagsEx; - - private static int SizeOf() - { - return Marshal.SizeOf(typeof(OPENFILENAME_I)); - } - } - - // constants related to the OPENFILENAME structure and file open/save dialogs - public const int CDN_FIRST = unchecked((int)(0U-601U)); - - public const int CDN_INITDONE = (CDN_FIRST - 0x0000); - public const int CDN_SELCHANGE = (CDN_FIRST - 0x0001); - public const int CDN_SHAREVIOLATION = (CDN_FIRST - 0x0003); - public const int CDN_FILEOK = (CDN_FIRST - 0x0005); - -#if !DRT && !UIAUTOMATIONTYPES - public const int CDM_FIRST = (int)WindowMessage.WM_USER + 100; - - public const int CDM_GETSPEC = (CDM_FIRST + 0x0000); - public const int CDM_GETFILEPATH = (CDM_FIRST + 0x0001); -#endif - - public const int DWL_MSGRESULT = 0; - [StructLayout(LayoutKind.Sequential)] public struct STYLESTRUCT { public int styleOld; @@ -1869,17 +866,17 @@ public class COMRECT { public COMRECT(int x, int y, int right, int bottom) { - this.left = x; - this.top = y; + left = x; + top = y; this.right = right; this.bottom = bottom; } public COMRECT(RECT rect) { - this.left = rect.left; - this.top = rect.top; - this.bottom = rect.bottom; - this.right = rect.right; + left = rect.left; + top = rect.top; + bottom = rect.bottom; + right = rect.right; } public void CopyTo(COMRECT destRect) { @@ -1905,22 +902,22 @@ public sealed class tagOleMenuGroupWidths { [StructLayout(LayoutKind.Sequential)/*leftover(noAutoOffset)*/] public struct POINTF { - public float x; - public float y; + public float x; + public float y; } [StructLayout(LayoutKind.Sequential)/*leftover(noAutoOffset)*/] public sealed class OLEINPLACEFRAMEINFO { - [MarshalAs(UnmanagedType.U4)/*leftover(offset=0, cb)*/] - public uint cb; + [MarshalAs(UnmanagedType.U4)/*leftover(offset=0, cb)*/] + public uint cb; - public bool fMDIApp; - public IntPtr hwndFrame; - public IntPtr hAccel; + public bool fMDIApp; + public IntPtr hwndFrame; + public IntPtr hAccel; - [MarshalAs(UnmanagedType.U4)/*leftover(offset=16, cAccelEntries)*/] - public uint cAccelEntries; + [MarshalAs(UnmanagedType.U4)/*leftover(offset=16, cAccelEntries)*/] + public uint cAccelEntries; } [StructLayout(LayoutKind.Sequential)/*leftover(noAutoOffset)*/] @@ -1948,26 +945,6 @@ public sealed class tagLOGPALETTE public ushort palNumEntries = 0; } - [StructLayout(LayoutKind.Sequential)/*leftover(noAutoOffset)*/] - public sealed class tagCONTROLINFO - { - [MarshalAs(UnmanagedType.U4)/*leftover(offset=0, cb)*/] - public uint cb = (uint)SizeOf(); - - public IntPtr hAccel; - - [MarshalAs(UnmanagedType.U2)/*leftover(offset=8, cAccel)*/] - public ushort cAccel; - - [MarshalAs(UnmanagedType.U4)/*leftover(offset=10, dwFlags)*/] - public uint dwFlags; - - private static int SizeOf() - { - return Marshal.SizeOf(typeof(tagCONTROLINFO)); - } - } - [StructLayout(LayoutKind.Sequential)] public sealed class VARIANT { [MarshalAs(UnmanagedType.I2)] @@ -1990,16 +967,16 @@ public bool Byref{ } public void Clear() { - if ((this.vt == (int)tagVT.VT_UNKNOWN || this.vt == (int)tagVT.VT_DISPATCH) && this.data1 != IntPtr.Zero) { - Marshal.Release(this.data1); + if ((vt == (int)tagVT.VT_UNKNOWN || vt == (int)tagVT.VT_DISPATCH) && data1 != IntPtr.Zero) { + Marshal.Release(data1); } - if (this.vt == (int)tagVT.VT_BSTR && this.data1 != IntPtr.Zero) { - SysFreeString(this.data1); + if (vt == (int)tagVT.VT_BSTR && data1 != IntPtr.Zero) { + SysFreeString(data1); } - this.data1 = this.data2 = IntPtr.Zero; - this.vt = (int)tagVT.VT_EMPTY; + data1 = data2 = IntPtr.Zero; + vt = (int)tagVT.VT_EMPTY; } ~VARIANT() { @@ -2039,7 +1016,7 @@ public object ToObject() { IntPtr val = data1; long longVal; - int vtType = (int)(this.vt & (short)tagVT.VT_TYPEMASK); + int vtType = (int)(vt & (short)tagVT.VT_TYPEMASK); switch (vtType) { case (int)tagVT.VT_EMPTY: @@ -2433,30 +1410,13 @@ internal override void PutString(string s) } } - public static class CommonHandles { - static CommonHandles() { - } - - /// - /// Handle type for accelerator tables. - /// - public static readonly int Accelerator = HandleCollector.RegisterType("Accelerator", 80, 50); - + public static class CommonHandles + { /// /// handle type for cursors. /// public static readonly int Cursor = HandleCollector.RegisterType("Cursor", 20, 500); - /// - /// Handle type for enhanced metafiles. - /// - public static readonly int EMF = HandleCollector.RegisterType("EnhancedMetaFile", 20, 500); - - /// - /// Handle type for file find handles. - /// - public static readonly int Find = HandleCollector.RegisterType("Find", 0, 1000); - /// /// Handle type for GDI objects. /// @@ -2477,16 +1437,6 @@ static CommonHandles() { /// Handle type for kernel objects. /// public static readonly int Kernel = HandleCollector.RegisterType("Kernel", 0, 1000); - - /// - /// Handle type for files. - /// - public static readonly int Menu = HandleCollector.RegisterType("Menu", 30, 1000); - - /// - /// Handle type for windows. - /// - public static readonly int Window = HandleCollector.RegisterType("Window", 5, 1000); } public const int PBT_APMPOWERSTATUSCHANGE = 0x000A; @@ -2502,15 +1452,14 @@ public struct SYSTEM_POWER_STATUS { } // WinEvent - public const int EVENT_SYSTEM_MOVESIZESTART = 0x000A; - public const int EVENT_SYSTEM_MOVESIZEEND = 0x000B; + public const int EVENT_SYSTEM_MOVESIZEEND = 0x000B; public const int EVENT_OBJECT_STATECHANGE = 0x800A; public const int EVENT_OBJECT_FOCUS = 0x8005; - public const int OBJID_CLIENT = unchecked(unchecked((int)0xFFFFFFFC)); - public const int WINEVENT_OUTOFCONTEXT = 0x0000; + public const int OBJID_CLIENT = unchecked(unchecked((int)0xFFFFFFFC)); + public const int WINEVENT_OUTOFCONTEXT = 0x0000; // the delegate passed to USER for receiving a WinEvent - internal delegate void WinEventProcDef (int winEventHook, int eventId, IntPtr hwnd, int idObject, int idChild, int eventThread, int eventTime); + internal delegate void WinEventProcDef(int winEventHook, int eventId, IntPtr hwnd, int idObject, int idChild, int eventThread, int eventTime); #region WebBrowser Related Definitions /// @@ -2578,8 +1527,8 @@ public struct RID_DEVICE_INFO public RID_DEVICE_INFO_HID hid; } - public const uint RIDI_DEVICEINFO = 0x2000000b; - public const uint RIM_TYPEHID = 2; + public const uint RIDI_DEVICEINFO = 0x2000000b; + public const uint RIM_TYPEHID = 2; public const ushort HID_USAGE_PAGE_DIGITIZER = 0x0D; public const ushort HID_USAGE_DIGITIZER_DIGITIZER = 1; public const ushort HID_USAGE_DIGITIZER_PEN = 2; @@ -2596,9 +1545,7 @@ public struct BLENDFUNCTION } public const int AC_SRC_OVER = 0x00000000; - public const int ULW_COLORKEY = 0x00000001; public const int ULW_ALPHA = 0x00000002; - public const int ULW_OPAQUE = 0x00000004; /// /// Contains values that indicate the type of session information to retrieve diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsOther.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsOther.cs index 36439b4a808..2dec5df3806 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsOther.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsOther.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -231,7 +231,7 @@ private BitmapHandle() : this(true) { } - private BitmapHandle(bool ownsHandle) : base(ownsHandle, NativeMethods.CommonHandles.GDI) + private BitmapHandle(bool ownsHandle) : base(ownsHandle, CommonHandles.GDI) { } @@ -256,7 +256,7 @@ internal static BitmapHandle CreateFromHandle(IntPtr hbitmap, bool ownsHandle=tr internal sealed class IconHandle : WpfSafeHandle { - private IconHandle() : base(true, NativeMethods.CommonHandles.Icon) + private IconHandle() : base(true, CommonHandles.Icon) { } @@ -281,7 +281,7 @@ internal IntPtr CriticalGetHandle() internal sealed class CursorHandle : WpfSafeHandle { - private CursorHandle() : base(true, NativeMethods.CommonHandles.Cursor) + private CursorHandle() : base(true, CommonHandles.Cursor) { } @@ -336,35 +336,6 @@ public static int IntPtrToInt32(IntPtr intPtr) public static IntPtr HWND_MESSAGE = new IntPtr(-3); - - [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)] - public class WNDCLASSEX_I - { - public int cbSize = 0; - - public int style = 0; - - public IntPtr lpfnWndProc = IntPtr.Zero; - - public int cbClsExtra = 0; - - public int cbWndExtra = 0; - - public IntPtr hInstance = IntPtr.Zero; - - public IntPtr hIcon = IntPtr.Zero; - - public IntPtr hCursor = IntPtr.Zero; - - public IntPtr hbrBackground = IntPtr.Zero; - - public IntPtr lpszMenuName = IntPtr.Zero; - - public IntPtr lpszClassName = IntPtr.Zero; - - public IntPtr hIconSm = IntPtr.Zero; - } - // NOTE: this replaces the RECT struct in NativeMethodsCLR.cs because it adds an extra method IsEmpty [StructLayout(LayoutKind.Sequential)] public struct RECT @@ -546,57 +517,49 @@ private static int SizeOf() } } - internal sealed class SafeLocalMemHandle : SafeHandleZeroOrMinusOneIsInvalid - { - public SafeLocalMemHandle() : base(true) - { - } + internal sealed class SafeLocalMemHandle : SafeHandleZeroOrMinusOneIsInvalid + { + public SafeLocalMemHandle() : base(true) + { + } - public SafeLocalMemHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) - { - base.SetHandle(existingHandle); - } + public SafeLocalMemHandle(IntPtr existingHandle, bool ownsHandle) : base(ownsHandle) + { + base.SetHandle(existingHandle); + } - protected override bool ReleaseHandle() - { - return (LocalFree(base.handle) == IntPtr.Zero); - } + protected override bool ReleaseHandle() + { + return (LocalFree(base.handle) == IntPtr.Zero); + } [DllImport("kernel32.dll")] - private static extern IntPtr LocalFree(IntPtr hMem); - } - - - internal const uint DELETE = 0x00010000, READ_CONTROL = 0x00020000, WRITE_DAC = 0x00040000, WRITE_OWNER = 0x00080000, SYNCHRONIZE = 0x00100000, STANDARD_RIGHTS_REQUIRED = 0x000F0000, STANDARD_RIGHTS_READ = READ_CONTROL, STANDARD_RIGHTS_WRITE = READ_CONTROL, STANDARD_RIGHTS_EXECUTE = READ_CONTROL, STANDARD_RIGHTS_ALL = 0x001F0000, SPECIFIC_RIGHTS_ALL = 0x0000FFFF, ACCESS_SYSTEM_SECURITY = 0x01000000, MAXIMUM_ALLOWED = 0x02000000, GENERIC_READ = 0x80000000, GENERIC_WRITE = 0x40000000, GENERIC_EXECUTE = 0x20000000, GENERIC_ALL = 0x10000000; - - internal const uint FILE_READ_DATA = 0x0001, // file & pipe - FILE_LIST_DIRECTORY = 0x0001, // directory - FILE_WRITE_DATA = 0x0002, // file & pipe - FILE_ADD_FILE = 0x0002, // directory - FILE_APPEND_DATA = 0x0004, // file - FILE_ADD_SUBDIRECTORY = 0x0004, // directory - FILE_CREATE_PIPE_INSTANCE = 0x0004, // named pipe - FILE_READ_EA = 0x0008, // file & directory - FILE_WRITE_EA = 0x0010, // file & directory - FILE_EXECUTE = 0x0020, // file - FILE_TRAVERSE = 0x0020, // directory - FILE_DELETE_CHILD = 0x0040, // directory - FILE_READ_ATTRIBUTES = 0x0080, // all - FILE_WRITE_ATTRIBUTES = 0x0100; // all - - internal const uint FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF, FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE, FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE, FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE; + private static extern IntPtr LocalFree(IntPtr hMem); + } - internal const uint FILE_SHARE_READ = 0x00000001, FILE_SHARE_WRITE = 0x00000002, FILE_SHARE_DELETE = 0x00000004; - internal const int ERROR_ALREADY_EXISTS = 183; + internal const uint DELETE = 0x00010000, + READ_CONTROL = 0x00020000, + WRITE_DAC = 0x00040000, + WRITE_OWNER = 0x00080000, + SYNCHRONIZE = 0x00100000, + STANDARD_RIGHTS_REQUIRED = 0x000F0000, + STANDARD_RIGHTS_READ = READ_CONTROL, + STANDARD_RIGHTS_WRITE = READ_CONTROL, + STANDARD_RIGHTS_EXECUTE = READ_CONTROL, + STANDARD_RIGHTS_ALL = 0x001F0000, + SPECIFIC_RIGHTS_ALL = 0x0000FFFF, + ACCESS_SYSTEM_SECURITY = 0x01000000, + MAXIMUM_ALLOWED = 0x02000000, + GENERIC_READ = 0x80000000, + GENERIC_WRITE = 0x40000000, + GENERIC_EXECUTE = 0x20000000, + GENERIC_ALL = 0x10000000; + + internal const uint FILE_SHARE_READ = 0x00000001; internal const int OPEN_EXISTING = 3; - internal const int PAGE_READONLY = 0x02; - - internal const int SECTION_MAP_READ = 0x0004; - - internal const int FILE_ATTRIBUTE_NORMAL = 0x00000080; internal const int FILE_ATTRIBUTE_TEMPORARY = 0x00000100; internal const int FILE_FLAG_DELETE_ON_CLOSE = 0x04000000; @@ -938,9 +901,6 @@ public class WNDCLASSEX_D // from Framework internal const int ENDSESSION_LOGOFF = (unchecked((int)0x80000000)); - internal const int - ERROR_SUCCESS = 0; - public const int LOCALE_FONTSIGNATURE = 0x00000058; public const int @@ -1001,73 +961,14 @@ public const int SPI_SETBORDER = 0x0006, SPI_SETNONCLIENTMETRICS = 0x002A; - public const int LANG_KOREAN = 0x12; - -#if NEVER - public static int PRIMARYLANGID(int lgid) - { - return ((ushort)(lgid) & 0x3ff); - } -#endif - public const int - MB_YESNO = 0x00000004, - MB_SYSTEMMODAL = 0x00001000, - IDYES = 6; - - public const int PM_QS_INPUT = unchecked(QS_INPUT << 16); - public const int PM_QS_PAINT = unchecked(QS_PAINT << 16); - - - public const int - SW_PARENTCLOSING = 1, - SW_PARENTOPENING = 3, - SC_MOUSEMOVE = SC_MOVE + 0x02, - SPI_SETKEYBOARDSPEED = 0x000B; - - internal const int TYMED_HGLOBAL = 1; - internal const int TYMED_FILE = 2; - internal const int TYMED_ISTREAM = 4; - internal const int TYMED_ISTORAGE = 8; - internal const int TYMED_GDI = 16; - internal const int TYMED_MFPICT = 32; - internal const int TYMED_ENHMF = 64; - + SW_PARENTCLOSING = 1, + SW_PARENTOPENING = 3, + SC_MOUSEMOVE = SC_MOVE + 0x02, + SPI_SETKEYBOARDSPEED = 0x000B; public const int WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX); - public const int KEYEVENTF_EXTENDEDKEY = 0x0001; - public const int KEYEVENTF_KEYUP = 0x0002; - public const int KEYEVENTF_UNICODE = 0x0004; - public const int KEYEVENTF_SCANCODE = 0x0008; - - public const int MOUSEEVENTF_MOVE = 0x0001; - public const int MOUSEEVENTF_LEFTDOWN = 0x0002; - public const int MOUSEEVENTF_LEFTUP = 0x0004; - public const int MOUSEEVENTF_RIGHTDOWN = 0x0008; - public const int MOUSEEVENTF_RIGHTUP = 0x0010; - public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; - public const int MOUSEEVENTF_MIDDLEUP = 0x0040; - public const int MOUSEEVENTF_XDOWN = 0x0080; - public const int MOUSEEVENTF_XUP = 0x0100; - public const int MOUSEEVENTF_WHEEL = 0x00800; - public const int MOUSEEVENTF_VIRTUALDESK = 0x04000; - public const int MOUSEEVENTF_ABSOLUTE = 0x08000; - public const int MOUSEEVENTF_ACTUAL = 0x10000; - - public const int GWL_HINSTANCE = -6; - public const int GWL_USERDATA = -21; - public const int GCL_MENUNAME = -8; - public const int GCL_HBRBACKGROUND = -10; - public const int GCL_HCURSOR = -12; - public const int GCL_HICON = -14; - public const int GCL_HMODULE = -16; - public const int GCL_CBWNDEXTRA = -18; - public const int GCL_CBCLSEXTRA = -20; - public const int GCL_STYLE = -26; - public const int GCW_ATOM = -32; - public const int GCL_HICONSM = -34; - public const int MONITOR_DEFAULTTONULL = 0x00000000; public const int MONITOR_DEFAULTTOPRIMARY = 0x00000001; public const int MONITOR_DEFAULTTONEAREST = 0x00000002; @@ -1085,27 +986,6 @@ private static int SizeOf() } } - - - [StructLayout(LayoutKind.Sequential)] - public sealed class STATDATA - { - [MarshalAs(UnmanagedType.U4)] - public int advf = 0; - [MarshalAs(UnmanagedType.U4)] - public int dwConnection = 0; - } - - public enum WINDOWTHEMEATTRIBUTETYPE - { - WTA_NONCLIENT = 1 - }; - - public const uint WTNCA_NODRAWCAPTION = 0x00000001; // don't draw the window caption - public const uint WTNCA_NODRAWICON = 0x00000002; // don't draw the system icon - public const uint WTNCA_NOSYSMENU = 0x00000004; // don't expose the system menu icon functionality - public const uint WTNCA_VALIDBITS = (WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON | WTNCA_NOSYSMENU); - #if WCP_SYSTEM_THEMES_ENABLED [StructLayout(LayoutKind.Sequential)] public class WTA_OPTIONS @@ -1115,10 +995,6 @@ public class WTA_OPTIONS }; #endif // WCP_SYSTEM_THEMES_ENABLED - - internal const int NO_ERROR = 0; - - /////////////////////////// // Used by BASE @@ -1161,16 +1037,8 @@ public class WTA_OPTIONS [StructLayout(LayoutKind.Sequential)] public struct HWND { - /// - /// - /// public IntPtr h; - /// - /// - /// - /// - /// public static HWND Cast(IntPtr h) { HWND hTemp = new HWND(); @@ -1183,53 +1051,27 @@ public HandleRef MakeHandleRef(object wrapper) return new HandleRef(wrapper,h); } - /// - /// - /// - /// - /// public static implicit operator IntPtr(HWND h) { return h.h; } - /// - /// - /// - /// - /// - /// public static bool operator ==(HWND hl, HWND hr) { return (hl.h == hr.h); } - /// - /// - /// - /// - /// - /// public static bool operator !=(HWND hl, HWND hr) { return (hl.h != hr.h); } - /// - /// - /// - /// - /// override public bool Equals(object oCompare) { HWND hr = Cast((HWND)oCompare); return (h == hr.h); } - /// - /// - /// - /// public override int GetHashCode() { return (int)h; @@ -1241,40 +1083,7 @@ public override int GetHashCode() /// public struct HDC { - /// - /// - /// public IntPtr h; - - /// - /// - /// - /// - /// - public static HDC Cast(IntPtr h) - { - HDC hTemp = new HDC(); - hTemp.h = h; - return hTemp; - } - - public HandleRef MakeHandleRef( object wrapper) - { - return new HandleRef(wrapper, h); - } - - /// - /// - /// - public static HDC NULL - { - get - { - HDC hTemp = new HDC(); - hTemp.h = IntPtr.Zero; - return hTemp; - } - } } public const int DRAGDROP_S_DROP = 0x00040100; @@ -1284,110 +1093,6 @@ public static HDC NULL public const int TME_CANCEL = (unchecked((int)0x80000000)); public const int IDC_HAND = 32649; - /// - /// End document printing - /// - /// Printer DC - /// More than 0 if succeeds, zero or less if fails - [DllImport("gdi32.dll")] - public static extern Int32 EndDoc(HDC hdc); - - public const int DM_ORIENTATION = 0x00000001; - public const int DM_PAPERSIZE = 0x00000002; - public const int DM_PAPERLENGTH = 0x00000004; - public const int DM_PAPERWIDTH = 0x00000008; - public const int DM_PRINTQUALITY = 0x00000400; - public const int DM_YRESOLUTION = 0x00002000; - - /// - /// Escape description for ExtEscape - /// - [StructLayout(LayoutKind.Sequential)] - public unsafe struct PrinterEscape - { - public Int32 cbInput; - public UInt32 cbOutput; - public UInt32 opcode; - public Int32 cbSize; - - public void* buffer; - } - - /// - /// Send Escape to DC (printer) - /// - /// Printer DC - /// Escape code - /// # bytes in lpvInData - /// Input data - /// size of lpvOutData in bytes - /// Structure to receive data - /// 0 if escape not implemented, negative if error, otherwise succeeds - [DllImport("gdi32.dll")] - public static unsafe extern Int32 ExtEscape(HDC hdc, Int32 nEscape, Int32 cbInput, PrinterEscape* lpvInData, Int32 cbOutput, [Out] void* lpvOutData); - - public const int MM_ISOTROPIC = 7; - - - public const int DM_OUT_BUFFER = 2; - - - /// - /// Document info for printing - /// - [StructLayout(LayoutKind.Sequential)] - public unsafe struct DocInfo - {// (*)indicates must be specfied - internal Int32 cbSize; // (*)size of this structure (20) - internal String lpszName; // (*)Name of document - internal String lpszOutput; // Name of output file (null) - internal String lpszDatatype; // Type of data ("raw" or "emf") can be null - internal Int32 fwType; // Flags about print job (0) - } - - /// - /// Start document printing - /// - /// Printer DC - /// Document information - /// More than zero if succeeded - [DllImport("gdi32.dll")] - public unsafe static extern Int32 StartDoc(HDC hdc, ref DocInfo docInfo); - - /// - /// - /// - /// - /// - /// - /// - [DllImport("winspool.drv", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public unsafe static extern Int32 OpenPrinterA(String printerName, IntPtr* phPrinter, void* pDefaults); - - /// - /// - /// - /// - /// - [DllImport("winspool.drv")]//CASRemoval: - public static extern Int32 ClosePrinter(IntPtr hPrinter); - - /// - /// End document page - /// - /// Printer DC - /// More than 0 if succeeds, zero or less if fails - [DllImport("gdi32.dll")]//CASRemoval: - public static extern Int32 EndPage(HDC hdc); - - /// - /// Start document page - /// - /// Printer DC - /// More than 0 if succeeds, zero or less if fails - [DllImport("gdi32.dll")]//CASRemoval: - public static extern Int32 StartPage(HDC hdc); - /// Win32 constants public const int E_HANDLE = unchecked((int)0x80070006); @@ -1508,7 +1213,7 @@ internal struct InternetCacheConfigInfo public const int WTS_REMOTE_DISCONNECT = 0x4; public const int WTS_SESSION_LOCK = 0x7; public const int WTS_SESSION_UNLOCK = 0x8; - + public const uint NOTIFY_FOR_THIS_SESSION = 0; public const int PBT_APMSUSPEND = 0x0004; @@ -1526,8 +1231,6 @@ public struct POWERBROADCAST_SETTING { public static readonly Guid GUID_MONITOR_POWER_ON = new Guid(0x02731015, 0x4510, 0x4526, 0x99, 0xE6, 0xE5, 0xA1, 0x7E, 0xBD, 0x1A, 0xEA); - - public const uint PROFILE_READ = 1; // @@ -1542,7 +1245,7 @@ public enum ProfileType : uint public enum COLORTYPE : uint { - COLOR_GRAY = 1, + COLOR_GRAY = 1, COLOR_RGB, COLOR_XYZ, COLOR_Yxy, @@ -1560,7 +1263,7 @@ public enum COLORTYPE : uint }; public enum ColorSpace : uint - { + { SPACE_XYZ = 0x58595A20, // = 'XYZ ' SPACE_Lab = 0x4C616220, // = 'Lab ' SPACE_Luv = 0x4C757620, // = 'Luv ' @@ -1592,10 +1295,5 @@ public enum ColorSpace : uint SPACE_F_CHANNEL = 0x46434C52, // = 'FCLR' SPACE_sRGB = 0x73524742 // = 'sRGB' }; - - // - // - // } } - diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsSetLastError.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsSetLastError.cs index 378430190b4..901c41e2f3d 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsSetLastError.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/NativeMethodsSetLastError.cs @@ -1,10 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; -using System.Text; using System.Runtime.InteropServices; +using System.Text; using MS.Win32; // Description: P/Invokes for methods that need to call SetLastError(0) @@ -21,8 +21,6 @@ namespace MS.Internal.UIAutomationClientSideProviders namespace MS.Internal.WinFormsIntegration #elif UIAUTOMATIONTYPES namespace MS.Internal.UIAutomationTypes -#elif DRT -namespace MS.Internal.Drt #else #error Class is being used from an unknown assembly. #endif @@ -33,7 +31,7 @@ internal static class NativeMethodsSetLastError #if WINDOWSFORMSINTEGRATION // WinFormsIntegration - [DllImport(PresentationNativeDll, EntryPoint="EnableWindowWrapper", SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(PresentationNativeDll, EntryPoint="EnableWindowWrapper", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool EnableWindow(IntPtr hWnd, bool enable); #elif UIAUTOMATIONCLIENT || UIAUTOMATIONCLIENTSIDEPROVIDERS // UIAutomation @@ -93,7 +91,7 @@ internal static class NativeMethodsSetLastError #endif #else // Base/Core/FW + DRT - [DllImport(PresentationNativeDll, EntryPoint="EnableWindowWrapper", SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(PresentationNativeDll, EntryPoint="EnableWindowWrapper", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool EnableWindow(HandleRef hWnd, bool enable); [DllImport(PresentationNativeDll, EntryPoint="GetAncestorWrapper", CharSet = CharSet.Auto)] @@ -105,9 +103,6 @@ internal static class NativeMethodsSetLastError [DllImport(PresentationNativeDll, EntryPoint="GetParentWrapper", SetLastError = true)] public static extern IntPtr GetParent(HandleRef hWnd); - [DllImport(PresentationNativeDll, EntryPoint="GetWindowWrapper", ExactSpelling = true, SetLastError = true)] - public static extern IntPtr GetWindow(IntPtr hWnd, int uCmd); - [DllImport(PresentationNativeDll, EntryPoint="GetWindowLongWrapper", CharSet=CharSet.Auto, SetLastError=true)] public static extern Int32 GetWindowLong(HandleRef hWnd, int nIndex ); @@ -129,7 +124,7 @@ internal static class NativeMethodsSetLastError [DllImport(PresentationNativeDll, EntryPoint = "GetWindowTextWrapper", CharSet=CharSet.Auto, BestFitMapping = false, SetLastError = true)] public static extern int GetWindowText(HandleRef hWnd, [Out] StringBuilder lpString, int nMaxCount); - [DllImport(PresentationNativeDll, EntryPoint = "GetWindowTextLengthWrapper", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(PresentationNativeDll, EntryPoint = "GetWindowTextLengthWrapper", CharSet = CharSet.Auto, SetLastError = true)] public static extern int GetWindowTextLength(HandleRef hWnd); [DllImport(PresentationNativeDll, EntryPoint="MapWindowPointsWrapper", SetLastError = true, ExactSpelling=true, CharSet=CharSet.Auto)] diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsCLR.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsCLR.cs index 02796299c16..74bc8356fa1 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsCLR.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsCLR.cs @@ -1,10 +1,11 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.ComponentModel; using System.Runtime.InteropServices; using MS.Utility; +using Windows.Win32.Foundation; namespace MS.Win32 { @@ -119,7 +120,7 @@ internal static void GetClientRect(HandleRef hWnd, [In, Out] ref NativeMethods.R internal static NativeMethods.RECT GetClientRect(HandleRef hWnd) { var clientRect = default(NativeMethods.RECT); - SafeNativeMethods.GetClientRect(hWnd, ref clientRect); + GetClientRect(hWnd, ref clientRect); return clientRect; } @@ -368,13 +369,7 @@ public static bool IsCurrentSessionConnectStateWTSActive(int? SessionId = null, internal static NativeMethods.PROCESS_DPI_AWARENESS GetProcessDpiAwareness(HandleRef hProcess) { var ptrProcessDpiAwareness = IntPtr.Zero; - var hr = (int)SafeNativeMethodsPrivate.GetProcessDpiAwareness(hProcess, out ptrProcessDpiAwareness); - - if(hr != NativeMethods.S_OK) - { - Marshal.ThrowExceptionForHR(hr); - } - + SafeNativeMethodsPrivate.GetProcessDpiAwareness(hProcess, out ptrProcessDpiAwareness).ThrowOnFailure(); return (NativeMethods.PROCESS_DPI_AWARENESS)NativeMethods.IntPtrToInt32(ptrProcessDpiAwareness); } @@ -591,19 +586,19 @@ private partial class SafeNativeMethodsPrivate [return:MarshalAs(UnmanagedType.Bool)] public static extern bool ProcessIdToSessionId([In]int dwProcessId, [Out]out int pSessionId); - [DllImport(ExternDll.Kernel32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.Kernel32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern int GetCurrentThreadId(); [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern IntPtr GetCapture(); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool IsWindowVisible(HandleRef hWnd); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern int GetMessagePos(); - [DllImport(ExternDll.User32, EntryPoint = "ReleaseCapture", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, EntryPoint = "ReleaseCapture", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern bool IntReleaseCapture(); [DllImport(ExternDll.User32, EntryPoint = "GetWindowRect", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] @@ -612,7 +607,7 @@ private partial class SafeNativeMethodsPrivate [DllImport(ExternDll.User32, EntryPoint = "GetClientRect", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern bool IntGetClientRect(HandleRef hWnd, [In, Out] ref NativeMethods.RECT rect); - [DllImport(ExternDll.User32, EntryPoint = "AdjustWindowRectEx", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, EntryPoint = "AdjustWindowRectEx", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern bool IntAdjustWindowRectEx(ref NativeMethods.RECT lpRect, int dwStyle, bool bMenu, int dwExStyle); [DllImport(ExternDll.User32, ExactSpelling=true)] @@ -627,28 +622,28 @@ private partial class SafeNativeMethodsPrivate [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern IntPtr GetKeyboardLayout(int dwLayout); - [DllImport(ExternDll.User32, SetLastError = true, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, SetLastError = true, ExactSpelling=true, CharSet= CharSet.Auto)] public static extern IntPtr SetTimer(HandleRef hWnd, int nIDEvent, int uElapse, NativeMethods.TimerProc lpTimerFunc); - [DllImport(ExternDll.User32, EntryPoint="SetTimer", CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, EntryPoint="SetTimer", CharSet = CharSet.Auto)] public static extern IntPtr TrySetTimer(HandleRef hWnd, int nIDEvent, int uElapse, NativeMethods.TimerProc lpTimerFunc); - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling=true, CharSet= CharSet.Auto)] public static extern bool KillTimer(HandleRef hwnd, int idEvent); - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling=true, CharSet= CharSet.Auto)] public static extern bool IsWindowUnicode(HandleRef hWnd); [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern int GetDoubleClickTime(); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool IsWindowEnabled(HandleRef hWnd); - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling=true, CharSet= CharSet.Auto)] public static extern IntPtr GetCursor(); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern int ShowCursor(bool show); [DllImport(ExternDll.User32, EntryPoint = "GetMonitorInfo", CharSet = CharSet.Auto, SetLastError = true)] @@ -673,13 +668,13 @@ private partial class SafeNativeMethodsPrivate [DllImport(ExternDll.User32, ExactSpelling=true, SetLastError=true)] public static extern bool TrackMouseEvent(NativeMethods.TRACKMOUSEEVENT tme); - [DllImport(ExternDll.User32, CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, CharSet= CharSet.Auto, SetLastError = true)] public static extern NativeMethods.CursorHandle LoadCursor(HandleRef hInst, IntPtr iconId); #endif #if BASE_NATIVEMETHODS || CORE_NATIVEMETHODS || FRAMEWORK_NATIVEMETHODS - [DllImport(ExternDll.Kernel32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.Kernel32, ExactSpelling=true, CharSet= CharSet.Auto)] public static extern int GetTickCount(); #endif @@ -737,7 +732,7 @@ public static extern bool WTSQuerySessionInformation( /// - This function is supported on Windows 8.1 onwards. /// [DllImport(ExternDll.Shcore, CallingConvention = CallingConvention.Winapi)] - internal static extern uint GetProcessDpiAwareness([In] HandleRef hProcess, out IntPtr awareness); + internal static extern HRESULT GetProcessDpiAwareness([In] HandleRef hProcess, out IntPtr awareness); /// /// Calculates the required size of the window rectangle, based on the desired size of the diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsOther.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsOther.cs index bf956da9f38..9829bedaec1 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsOther.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/SafeNativeMethodsOther.cs @@ -1,6 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System.ComponentModel; using System.Runtime.InteropServices; @@ -9,9 +8,6 @@ namespace MS.Win32 { internal partial class SafeNativeMethods { - ////////////////////////////// - // from Framework - [Flags] internal enum PlaySoundFlags { @@ -29,28 +25,9 @@ internal enum PlaySoundFlags SND_RESOURCE = 0x00040000, /* name is resource name or atom */ } - internal static bool InSendMessage() - { - return SafeNativeMethodsPrivate.InSendMessage(); - } - - -#if never - public static int GetQueueStatus(uint flags) - { - return SafeNativeMethodsPrivate.GetQueueStatus(flags); - } - - internal static int GetInputState() - { - return SafeNativeMethodsPrivate.GetInputState(); - } -#endif - public static bool IsUxThemeActive() { return SafeNativeMethodsPrivate.IsThemeActive() != 0; } - - public static bool SetCaretPos(int x, int y) + public static bool SetCaretPos(int x, int y) { // To be consistent with our other PInvoke wrappers // we should "throw" a Win32Exception on error here. @@ -59,9 +36,8 @@ public static bool SetCaretPos(int x, int y) return SafeNativeMethodsPrivate.SetCaretPos(x,y); } - - public static bool DestroyCaret() + public static bool DestroyCaret() { // To be consistent with our other PInvoke wrappers // we should "throw" a Win32Exception on error here. @@ -114,10 +90,10 @@ public static bool GetStringTypeEx(uint locale, uint infoType, char[] sourceStri return win32Return; } - - public static int GetSysColor(int nIndex) + + public static int GetSysColor(int nIndex) { - return SafeNativeMethodsPrivate.GetSysColor(nIndex); + return SafeNativeMethodsPrivate.GetSysColor(nIndex); } public static bool IsClipboardFormatAvailable(int format) @@ -125,29 +101,15 @@ public static bool IsClipboardFormatAvailable(int format) return SafeNativeMethodsPrivate.IsClipboardFormatAvailable(format); } -#if never - [DllImport(ExternDll.User32, EntryPoint = "DestroyIcon", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] - private static extern bool IntDestroyIcon(NativeMethods.IconHandle hIcon); - internal static void DestroyIcon(NativeMethods.IconHandle hIcon) - { - if (IntDestroyIcon(hIcon) == false) - { - throw new Win32Exception(); - } - } -#endif - ///////////////////////////// // Used by BASE and FRAMEWORK #if FRAMEWORK_NATIVEMETHODS || BASE_NATIVEMETHODS - - - public static bool IsDebuggerPresent() { return SafeNativeMethodsPrivate.IsDebuggerPresent(); } + public static bool IsDebuggerPresent() { return SafeNativeMethodsPrivate.IsDebuggerPresent(); } #endif + #if BASE_NATIVEMETHODS - ///////////////////// - // used by BASE + // Used by BASE public static void QueryPerformanceCounter(out long lpPerformanceCount) { @@ -158,7 +120,7 @@ public static void QueryPerformanceCounter(out long lpPerformanceCount) } public static void QueryPerformanceFrequency(out long lpFrequency) - { + { if (!SafeNativeMethodsPrivate.QueryPerformanceFrequency(out lpFrequency)) { throw new Win32Exception(Marshal.GetLastWin32Error()); @@ -171,26 +133,17 @@ internal static int GetMessageTime() } #endif // BASE_NATIVEMETHODS - internal static Int32 GetWindowStyle(HandleRef hWnd, bool exStyle) { int nIndex = exStyle ? NativeMethods.GWL_EXSTYLE : NativeMethods.GWL_STYLE; return UnsafeNativeMethods.GetWindowLong(hWnd, nIndex); } + private static partial class SafeNativeMethodsPrivate { - [DllImport(ExternDll.User32, CharSet = CharSet.Auto)] - internal static extern bool InSendMessage(); - -// [DllImport(ExternDll.User32, ExactSpelling = true)] -// public static extern int GetQueueStatus(uint flags); - -// [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] -// internal static extern int GetInputState(); - [DllImport(ExternDll.Uxtheme, CharSet = CharSet.Unicode)] public static extern int IsThemeActive(); - + [DllImport(ExternDll.User32, SetLastError=true, CharSet=CharSet.Auto)] public static extern bool SetCaretPos(int x, int y); @@ -205,29 +158,27 @@ private static partial class SafeNativeMethodsPrivate public static extern bool GetStringTypeEx(uint locale, uint infoType, char[] sourceString, int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] UInt16[] charTypes); - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, CharSet = CharSet.Auto)] public static extern int GetSysColor(int nIndex); [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool IsClipboardFormatAvailable(int format); #if FRAMEWORK_NATIVEMETHODS || BASE_NATIVEMETHODS - [DllImport("kernel32.dll", ExactSpelling = true, CharSet = CharSet.Auto)] - internal static extern bool IsDebuggerPresent(); + internal static extern bool IsDebuggerPresent(); #endif + #if BASE_NATIVEMETHODS - [DllImport("kernel32.dll", SetLastError = true)] - public static extern bool QueryPerformanceCounter(out long lpPerformanceCount); - - [DllImport("kernel32.dll", SetLastError = true)] - public static extern bool QueryPerformanceFrequency(out long lpFrequency); - - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - internal static extern int GetMessageTime(); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool QueryPerformanceCounter(out long lpPerformanceCount); + + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool QueryPerformanceFrequency(out long lpFrequency); + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] + internal static extern int GetMessageTime(); #endif } + } } -} - diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsCLR.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsCLR.cs index de69465b110..19f30eae0d6 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsCLR.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsCLR.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,66 +9,52 @@ using System.Text; using System.Diagnostics; using System.ComponentModel; -#if !DRT && !UIAUTOMATIONTYPES +#if !UIAUTOMATIONTYPES using MS.Internal.Interop; using MS.Utility; #endif -// DRTs cannot access MS.Internal -#if !DRT && !UIAUTOMATIONTYPES -using HR = MS.Internal.Interop.HRESULT; -#endif - -//The SecurityHelper class differs between assemblies and could not actually be -// shared, so it is duplicated across namespaces to prevent name collision. #if WINDOWS_BASE using MS.Internal.WindowsBase; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; - -#elif PRESENTATION_CORE - using MS.Internal.PresentationCore; -#elif PRESENTATIONFRAMEWORK - using MS.Internal.PresentationFramework; +using Windows.Win32.Foundation; #elif UIAUTOMATIONTYPES - using MS.Internal.UIAutomationTypes; +using MS.Internal.UIAutomationTypes; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; - -#elif DRT - using MS.Internal.Drt; #else #error Attempt to use a class (duplicated across multiple namespaces) from an unknown assembly. #endif +using HRESULT = Windows.Win32.Foundation.HRESULT; + namespace MS.Win32 { internal partial class UnsafeNativeMethods { #if BASE_NATIVEMETHODS [DllImport(ExternDll.Ole32, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern int OleGetClipboard(ref IComDataObject data); + public static extern HRESULT OleGetClipboard(ref IComDataObject data); [DllImport(ExternDll.Ole32, ExactSpelling=true, CharSet=CharSet.Auto)] - public static extern int OleSetClipboard(IComDataObject pDataObj); + public static extern HRESULT OleSetClipboard(IComDataObject pDataObj); [DllImport(ExternDll.Ole32, ExactSpelling=true, CharSet=CharSet.Auto)] - public static extern int OleFlushClipboard(); + public static extern HRESULT OleFlushClipboard(); #endif + [DllImport(ExternDll.Uxtheme, CharSet = CharSet.Auto, BestFitMapping = false)] public static extern int GetCurrentThemeName(StringBuilder pszThemeFileName, int dwMaxNameChars, StringBuilder pszColorBuff, int dwMaxColorChars, StringBuilder pszSizeBuff, int cchMaxSizeChars); - [DllImport(ExternDll.Kernel32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - public static extern IntPtr GetCurrentThread(); - #if !DRT && !UIAUTOMATIONTYPES - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false)] + [DllImport(ExternDll.User32, CharSet = CharSet.Auto, BestFitMapping = false)] public static extern WindowMessage RegisterWindowMessage(string msg); #endif - [DllImport(ExternDll.User32, EntryPoint = "SetWindowPos", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, EntryPoint = "SetWindowPos", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern bool SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, int x, int y, int cx, int cy, int flags); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern IntPtr GetWindow(HandleRef hWnd, int uCmd); - [DllImport(ExternDll.Shcore, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.Shcore, CharSet = CharSet.Auto, SetLastError = true)] public static extern uint GetDpiForMonitor(HandleRef hMonitor, NativeMethods.MONITOR_DPI_TYPE dpiType, out uint dpiX, out uint dpiY); [DllImport(ExternDll.User32, EntryPoint = "IsProcessDPIAware", CharSet = CharSet.Auto, SetLastError = true)] @@ -80,10 +66,10 @@ internal partial class UnsafeNativeMethods { [DllImport(ExternDll.User32, EntryPoint = "EnableNonClientDpiScaling", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool EnableNonClientDpiScaling(HandleRef hWnd); - [DllImport(ExternDll.User32, SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false)] + [DllImport(ExternDll.User32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)] public static extern int GetClassName(HandleRef hwnd, StringBuilder lpClassName, int nMaxCount); - [DllImport(ExternDll.User32, SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false)] + [DllImport(ExternDll.User32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)] public static extern int MessageBox(HandleRef hWnd, string text, string caption, int type); [DllImport(ExternDll.Uxtheme, CharSet = CharSet.Auto, BestFitMapping = false, EntryPoint = "SetWindowTheme")] @@ -102,10 +88,10 @@ internal partial class UnsafeNativeMethods { [DllImport(ExternDll.User32, EntryPoint = "FillRect", SetLastError = true, CharSet = CharSet.Auto)] public static extern int CriticalFillRect(IntPtr hdc, ref NativeMethods.RECT rcFill, IntPtr brush); - [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern int GetBitmapBits(HandleRef hbmp, int cbBuffer, byte[] lpvBits); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool ShowWindow(HandleRef hWnd, int nCmdShow); public static void DeleteObject(HandleRef hObject) @@ -118,48 +104,28 @@ public static void DeleteObject(HandleRef hObject) } } - public static bool DeleteObjectNoThrow(HandleRef hObject) - { - HandleCollector.Remove((IntPtr)hObject, NativeMethods.CommonHandles.GDI); - - bool result = IntDeleteObject(hObject); - int error = Marshal.GetLastWin32Error(); - - if(!result) - { - Debug.WriteLine("DeleteObject failed. Error = " + error); - } - - return result; - } - - - [DllImport(ExternDll.Gdi32, SetLastError=true, ExactSpelling = true, EntryPoint="DeleteObject", CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.Gdi32, SetLastError=true, ExactSpelling = true, EntryPoint="DeleteObject", CharSet=CharSet.Auto)] public static extern bool IntDeleteObject(HandleRef hObject); - [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern IntPtr SelectObject(HandleRef hdc, IntPtr obj); - [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern IntPtr SelectObject(HandleRef hdc, NativeMethods.BitmapHandle obj); - [DllImport(ExternDll.Gdi32, EntryPoint="SelectObject", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern IntPtr CriticalSelectObject(HandleRef hdc, IntPtr obj); - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false, SetLastError = true)] + [DllImport(ExternDll.User32, CharSet = CharSet.Auto, BestFitMapping = false, SetLastError = true)] public static extern int GetClipboardFormatName(int format, StringBuilder lpString, int cchMax); - [DllImport(ExternDll.User32, SetLastError = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false)] + [DllImport(ExternDll.User32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)] public static extern int RegisterClipboardFormat(string format); - [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.Gdi32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool BitBlt(HandleRef hDC, int x, int y, int nWidth, int nHeight, HandleRef hSrcDC, int xSrc, int ySrc, int dwRop); - [DllImport(ExternDll.User32, EntryPoint="PrintWindow", SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, EntryPoint="PrintWindow", SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool CriticalPrintWindow(HandleRef hWnd, HandleRef hDC, int flags); - [DllImport(ExternDll.User32, EntryPoint="RedrawWindow", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, EntryPoint="RedrawWindow", ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool CriticalRedrawWindow(HandleRef hWnd, IntPtr lprcUpdate, IntPtr hrgnUpdate, int flags); [DllImport(ExternDll.Shell32, CharSet=CharSet.Auto, BestFitMapping = false)] @@ -213,6 +179,7 @@ internal enum ShellExecuteFlags public const int MB_COMPOSITE = 0x00000002; public const int MB_USEGLYPHCHARS = 0x00000004; public const int MB_ERR_INVALID_CHARS = 0x00000008; + [DllImport(ExternDll.Kernel32, ExactSpelling=true, CharSet=CharSet.Unicode, SetLastError=true)] public static extern int MultiByteToWideChar(int CodePage, int dwFlags, byte[] lpMultiByteStr, int cchMultiByte, [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWideCharStr, int cchWideChar); [DllImport(ExternDll.Kernel32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Unicode)] @@ -225,23 +192,6 @@ internal enum ShellExecuteFlags [DllImport(ExternDll.Kernel32, ExactSpelling=true, EntryPoint="RtlMoveMemory")] public static extern void CopyMemory(IntPtr pdst, byte[] psrc, int cb); -#if BASE_NATIVEMETHODS - [DllImport(ExternDll.User32, EntryPoint="GetKeyboardState", CharSet=CharSet.Auto, SetLastError=true)] - private static extern int IntGetKeyboardState(byte [] keystate); - public static void GetKeyboardState(byte [] keystate) - { - if(IntGetKeyboardState(keystate) == 0) - { - throw new Win32Exception(); - } - } -#endif - -#if DRT_NATIVEMETHODS - [DllImport(ExternDll.User32, ExactSpelling=true, EntryPoint="keybd_event", CharSet=CharSet.Auto)] - public static extern void Keybd_event(byte vk, byte scan, int flags, IntPtr extrainfo); -#endif - #if !DRT && !UIAUTOMATIONTYPES [DllImport(ExternDll.Kernel32, EntryPoint = "GetModuleFileName", CharSet=CharSet.Unicode, SetLastError = true)] private static extern int IntGetModuleFileName(HandleRef hModule, StringBuilder buffer, int length); @@ -288,36 +238,20 @@ internal static string GetModuleFileName(HandleRef hModule) public static extern IntPtr DispatchMessage([In] ref System.Windows.Interop.MSG msg); #endif -#if BASE_NATIVEMETHODS - [DllImport(ExternDll.User32, CharSet=CharSet.Auto, EntryPoint="PostThreadMessage", SetLastError=true)] - private static extern int IntPostThreadMessage(int id, int msg, IntPtr wparam, IntPtr lparam); - public static void PostThreadMessage(int id, int msg, IntPtr wparam, IntPtr lparam) - { - if(IntPostThreadMessage(id, msg, wparam, lparam) == 0) - { - throw new Win32Exception(); - } - } -#endif - [DllImport("oleacc.dll")] - internal static extern int ObjectFromLresult(IntPtr lResult, ref Guid iid, IntPtr wParam, [In, Out] ref IAccessible ppvObject); + internal static extern HRESULT ObjectFromLresult(IntPtr lResult, ref Guid iid, IntPtr wParam, [In, Out] ref IAccessible ppvObject); [DllImport("user32.dll")] internal static extern bool IsWinEventHookInstalled(int winevent); [DllImport(ExternDll.Ole32, EntryPoint="OleInitialize")] - private static extern int IntOleInitialize(IntPtr val); + private static extern HRESULT IntOleInitialize(IntPtr val); - public static int OleInitialize() + public static HRESULT OleInitialize() { return IntOleInitialize(IntPtr.Zero); } - [DllImport(ExternDll.Ole32)] - public static extern int CoRegisterPSClsid(ref Guid riid, ref Guid rclsid); - - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public extern static bool EnumThreadWindows(int dwThreadId, NativeMethods.EnumThreadWindowsCallback lpfn, HandleRef lParam); @@ -343,7 +277,7 @@ public static bool CloseHandleNoThrow(HandleRef handle) } [DllImport(ExternDll.Ole32, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern int CreateStreamOnHGlobal(IntPtr hGlobal, bool fDeleteOnRelease, ref System.Runtime.InteropServices.ComTypes.IStream istream); + public static extern HRESULT CreateStreamOnHGlobal(IntPtr hGlobal, bool fDeleteOnRelease, ref System.Runtime.InteropServices.ComTypes.IStream istream); #if BASE_NATIVEMETHODS [DllImport(ExternDll.Gdi32, SetLastError=true, EntryPoint="CreateCompatibleDC", CharSet=CharSet.Auto)] @@ -367,16 +301,7 @@ public static IntPtr CreateCompatibleDC(HandleRef hDC) [DllImport(ExternDll.Kernel32, EntryPoint="UnmapViewOfFile", CharSet=CharSet.Auto, SetLastError=true)] private static extern bool IntUnmapViewOfFile(HandleRef pvBaseAddress); - /* - public static void UnmapViewOfFile(HandleRef pvBaseAddress) - { - HandleCollector.Remove((IntPtr)pvBaseAddress, NativeMethods.CommonHandles.Kernel); - if(IntUnmapViewOfFile(pvBaseAddress) == 0) - { - throw new Win32Exception(); - } - } - */ + public static bool UnmapViewOfFileNoThrow(HandleRef pvBaseAddress) { HandleCollector.Remove((IntPtr)pvBaseAddress, NativeMethods.CommonHandles.Kernel); @@ -384,7 +309,7 @@ public static bool UnmapViewOfFileNoThrow(HandleRef pvBaseAddress) bool result = IntUnmapViewOfFile(pvBaseAddress); int error = Marshal.GetLastWin32Error(); - if(!result) + if (!result) { Debug.WriteLine("UnmapViewOfFile failed. Error = " + error); } @@ -447,7 +372,7 @@ internal static bool TryGetCursorPos(ref NativeMethods.POINT pt) // a secure screen saver may be running. if (returnValue == false) { - System.Diagnostics.Debug.WriteLine("GetCursorPos failed!"); + Debug.WriteLine("GetCursorPos failed!"); pt.x = 0; pt.y = 0; @@ -456,25 +381,22 @@ internal static bool TryGetCursorPos(ref NativeMethods.POINT pt) } #if BASE_NATIVEMETHODS || CORE_NATIVEMETHODS || FRAMEWORK_NATIVEMETHODS - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern int GetWindowThreadProcessId(HandleRef hWnd, out int lpdwProcessId); [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern short GetKeyState(int keyCode); - [DllImport(ExternDll.Ole32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto, PreserveSig = false)] + [DllImport(ExternDll.Ole32, ExactSpelling = true, CharSet = CharSet.Auto, PreserveSig = false)] public static extern void DoDragDrop(IComDataObject dataObject, UnsafeNativeMethods.IOleDropSource dropSource, int allowedEffects, int[] finalEffect); [DllImport(ExternDll.Ole32, ExactSpelling=true, CharSet=CharSet.Auto)] internal static extern void ReleaseStgMedium(ref STGMEDIUM medium); - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern bool InvalidateRect(HandleRef hWnd, IntPtr rect, bool erase); - - #endif - internal static int GetWindowText(HandleRef hWnd, [Out] StringBuilder lpString, int nMaxCount) { int returnValue = NativeMethodsSetLastError.GetWindowText(hWnd, lpString, nMaxCount); @@ -558,10 +480,6 @@ internal static int GetWindowTextLength(HandleRef hWnd) [DllImport(ExternDll.Imm32, CharSet = CharSet.Auto)] public static extern int ImmGetCompositionString(HandleRef hIMC, int dwIndex, byte[] lpBuf, int dwBufLen); - // ImmGetCompositionString for clause information - [DllImport(ExternDll.Imm32, CharSet = CharSet.Auto)] - public static extern int ImmGetCompositionString(HandleRef hIMC, int dwIndex, int[] lpBuf, int dwBufLen); - // ImmGetCompositionString for query information [DllImport(ExternDll.Imm32, CharSet = CharSet.Auto)] public static extern int ImmGetCompositionString(HandleRef hIMC, int dwIndex, IntPtr lpBuf, int dwBufLen); @@ -635,24 +553,12 @@ internal static IntPtr GetParent(HandleRef hWnd) [DllImport(ExternDll.User32, SetLastError = true, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern bool IsChild(HandleRef hWndParent, HandleRef hwnd); - - //***************** - // - // if you're thinking of enabling either of the functions below. - // you should first take a look at SafeSecurityHelper.TransformGlobalRectToLocal & TransformLocalRectToScreen - // they likely do what you typically use the function for - and it's safe to use. - // if you use the function below - you will get exceptions in partial trust. - // anyquestions - email avsee. - // - //****************** - - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern IntPtr SetParent(HandleRef hWnd, HandleRef hWndParent); - [DllImport(ExternDll.Kernel32, EntryPoint = "GetModuleHandle", CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true, SetLastError = true)] private static extern IntPtr IntGetModuleHandle(string modName); + internal static IntPtr GetModuleHandle(string modName) { IntPtr retVal = IntGetModuleHandle(modName); @@ -670,9 +576,6 @@ internal static IntPtr GetModuleHandle(string modName) public static extern IntPtr CallWindowProc(IntPtr wndProc, IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); - [DllImport(ExternDll.User32, CharSet = CharSet.Unicode, EntryPoint = "DefWindowProcW")] - public static extern IntPtr DefWindowProc(IntPtr hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam); - [DllImport(ExternDll.Kernel32, SetLastError=true, EntryPoint="GetProcAddress", CharSet=CharSet.Ansi, BestFitMapping=false)] public static extern IntPtr IntGetProcAddress(HandleRef hModule, string lpProcName); @@ -687,12 +590,12 @@ public static IntPtr GetProcAddress(HandleRef hModule, string lpProcName) return result; } - // GetProcAddress Note : The lpProcName parameter can identify the DLL function by specifying an ordinal value associated - // with the function in the EXPORTS statement. GetProcAddress verifies that the specified ordinal is in - // the range 1 through the highest ordinal value exported in the .def file. The function then uses the - // ordinal as an index to read the function's address from a function table. If the .def file does not number - // the functions consecutively from 1 to N (where N is the number of exported functions), an error can - // occur where GetProcAddress returns an invalid, non-NULL address, even though there is no function with the specified ordinal. + // GetProcAddress Note : The lpProcName parameter can identify the DLL function by specifying an ordinal value associated + // with the function in the EXPORTS statement. GetProcAddress verifies that the specified ordinal is in + // the range 1 through the highest ordinal value exported in the .def file. The function then uses the + // ordinal as an index to read the function's address from a function table. If the .def file does not number + // the functions consecutively from 1 to N (where N is the number of exported functions), an error can + // occur where GetProcAddress returns an invalid, non-NULL address, even though there is no function with the specified ordinal. [DllImport(ExternDll.Kernel32, EntryPoint="GetProcAddress", CharSet=CharSet.Ansi, BestFitMapping=false)] public static extern IntPtr GetProcAddressNoThrow(HandleRef hModule, string lpProcName); @@ -1019,21 +922,6 @@ public static int ReleaseDC(HandleRef hWnd, HandleRef hDC) { [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto)] public static extern bool SetForegroundWindow(HandleRef hWnd); - // Begin API Additions to support common dialog controls - [DllImport(ExternDll.Comdlg32, SetLastError = true, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] - internal static extern int CommDlgExtendedError(); - - [DllImport(ExternDll.Comdlg32, SetLastError = true, CharSet = CharSet.Unicode)] - internal static extern bool GetOpenFileName([In, Out] NativeMethods.OPENFILENAME_I ofn); - - [DllImport(ExternDll.Comdlg32, SetLastError = true, CharSet = CharSet.Unicode)] - internal static extern bool GetSaveFileName([In, Out] NativeMethods.OPENFILENAME_I ofn); - // End Common Dialog API Additions - - [return:MarshalAs(UnmanagedType.Bool)] - [DllImport(ExternDll.User32, ExactSpelling=true, CharSet=CharSet.Auto, SetLastError=true)] - public static extern bool SetLayeredWindowAttributes(HandleRef hwnd, int crKey, byte bAlpha, int dwFlags); - [return: MarshalAs(UnmanagedType.Bool)] [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] public static extern unsafe bool UpdateLayeredWindow(IntPtr hwnd, IntPtr hdcDst, NativeMethods.POINT* pptDst, NativeMethods.POINT* pSizeDst, IntPtr hdcSrc, NativeMethods.POINT* pptSrc, int crKey, ref NativeMethods.BLENDFUNCTION pBlend, int dwFlags); @@ -1056,7 +944,7 @@ public static bool DestroyCursor(IntPtr hCurs) { return IntDestroyCursor(hCurs); } - [DllImport(ExternDll.User32, EntryPoint="DestroyIcon", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] + [DllImport(ExternDll.User32, EntryPoint="DestroyIcon", CharSet=CharSet.Auto, SetLastError=true)] private static extern bool IntDestroyIcon(IntPtr hIcon); public static bool DestroyIcon(IntPtr hIcon) @@ -1077,7 +965,7 @@ public static bool DestroyIcon(IntPtr hIcon) return result; } - [DllImport(ExternDll.Gdi32, EntryPoint="DeleteObject", CharSet=System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] + [DllImport(ExternDll.Gdi32, EntryPoint="DeleteObject", CharSet=CharSet.Auto, SetLastError=true)] private static extern bool IntDeleteObject(IntPtr hObject); public static bool DeleteObject(IntPtr hObject) @@ -1136,23 +1024,6 @@ internal static NativeMethods.BitmapHandle CreateBitmap(int width, int height, i return hBitmap; } - [DllImport(ExternDll.User32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto, EntryPoint = "DestroyIcon")] - private static extern bool PrivateDestroyIcon(HandleRef handle); - internal static bool DestroyIcon(HandleRef handle) - { - HandleCollector.Remove((IntPtr)handle, NativeMethods.CommonHandles.Icon); - - bool result = PrivateDestroyIcon(handle); - int error = Marshal.GetLastWin32Error(); - - if ( !result ) - { - Debug.WriteLine("DestroyIcon failed. Error = " + error); - } - - return result; - } - [DllImport(ExternDll.User32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto, EntryPoint = "CreateIconIndirect")] private static extern NativeMethods.IconHandle PrivateCreateIconIndirect([In, MarshalAs(UnmanagedType.LPStruct)]NativeMethods.ICONINFO iconInfo); internal static NativeMethods.IconHandle CreateIconIndirect([In, MarshalAs(UnmanagedType.LPStruct)]NativeMethods.ICONINFO iconInfo) @@ -1264,50 +1135,17 @@ public static void DestroyWindow(HandleRef hWnd) throw new Win32Exception(); } } + [DllImport(ExternDll.User32)] internal static extern IntPtr SetWinEventHook(int eventMin, int eventMax, IntPtr hmodWinEventProc, NativeMethods.WinEventProcDef WinEventReentrancyFilter, uint idProcess, uint idThread, int dwFlags); [DllImport(ExternDll.User32)] internal static extern bool UnhookWinEvent(IntPtr winEventHook); - public delegate bool EnumChildrenCallback(IntPtr hwnd, IntPtr lParam); - - public static void EnumChildWindows(HandleRef hwndParent, EnumChildrenCallback lpEnumFunc, HandleRef lParam) - { - // http://msdn.microsoft.com/en-us/library/ms633494(VS.85).aspx - // Return value is not used - IntEnumChildWindows(hwndParent, lpEnumFunc, lParam); - } - - [DllImport(ExternDll.User32, EntryPoint = "EnumChildWindows", ExactSpelling = true)] - private static extern bool IntEnumChildWindows(HandleRef hwndParent, EnumChildrenCallback lpEnumFunc, HandleRef lParam); - - [DllImport(ExternDll.User32, SetLastError = true, CharSet = CharSet.Auto)] - public static extern int GetWindowRgn(HandleRef hWnd, HandleRef hRgn); - - [DllImport(ExternDll.User32, SetLastError = true, CharSet = CharSet.Auto)] - public static extern bool PtInRegion(HandleRef hRgn, int X, int Y); - - [DllImport("gdi32.dll", CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)] - public static extern IntPtr CreateRectRgn(int x1, int y1, int x2, int y2); - - // for GetUserNameEx - public enum EXTENDED_NAME_FORMAT { - NameUnknown = 0, - NameFullyQualifiedDN = 1, - NameSamCompatible = 2, - NameDisplay = 3, - NameUniqueId = 6, - NameCanonical = 7, - NameUserPrincipal = 8, - NameCanonicalEx = 9, - NameServicePrincipal = 10 - } - [ComImport(), Guid("00000122-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] public interface IOleDropTarget { [PreserveSig] - int OleDragEnter( + HRESULT OleDragEnter( [In, MarshalAs(UnmanagedType.Interface)] object pDataObj, [In, MarshalAs(UnmanagedType.U4)] @@ -1318,7 +1156,7 @@ int OleDragEnter( ref int pdwEffect); [PreserveSig] - int OleDragOver( + HRESULT OleDragOver( [In, MarshalAs(UnmanagedType.U4)] int grfKeyState, [In, MarshalAs(UnmanagedType.U8)] @@ -1327,10 +1165,10 @@ int OleDragOver( ref int pdwEffect); [PreserveSig] - int OleDragLeave(); + HRESULT OleDragLeave(); [PreserveSig] - int OleDrop( + HRESULT OleDrop( [In, MarshalAs(UnmanagedType.Interface)] object pDataObj, [In, MarshalAs(UnmanagedType.U4)] @@ -1344,13 +1182,13 @@ int OleDrop( [ComImport(), Guid("00000121-0000-0000-C000-000000000046"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] public interface IOleDropSource { [PreserveSig] - int OleQueryContinueDrag( + HRESULT OleQueryContinueDrag( int fEscapePressed, [In, MarshalAs(UnmanagedType.U4)] int grfKeyState); [PreserveSig] - int OleGiveFeedback( + HRESULT OleGiveFeedback( [In, MarshalAs(UnmanagedType.U4)] int dwEffect); } @@ -1724,33 +1562,25 @@ void ContextSensitiveHelp( } [ComImport(), - Guid("00000113-0000-0000-C000-000000000046"), - InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] - public interface IOleInPlaceObject { - [PreserveSig] - int GetWindow( [Out]out IntPtr hwnd ); - - - void ContextSensitiveHelp( - - int fEnterMode); - - - void InPlaceDeactivate(); - + Guid("00000113-0000-0000-C000-000000000046"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + public interface IOleInPlaceObject + { + [PreserveSig] + HRESULT GetWindow(out IntPtr hwnd); - [PreserveSig] - int UIDeactivate(); + void ContextSensitiveHelp(int fEnterMode); + void InPlaceDeactivate(); + [PreserveSig] + HRESULT UIDeactivate(); - void SetObjectRects( - [In] - NativeMethods.COMRECT lprcPosRect, - [In] - NativeMethods.COMRECT lprcClipRect); + void SetObjectRects( + [In] NativeMethods.COMRECT lprcPosRect, + [In] NativeMethods.COMRECT lprcClipRect); - void ReactivateAndUndo(); -} + void ReactivateAndUndo(); + } [ComImport(), Guid("00000112-0000-0000-C000-000000000046"), @@ -1870,11 +1700,8 @@ int Unadvise( [PreserveSig] int EnumAdvise(out IEnumSTATDATA e); - [PreserveSig] - int GetMiscStatus( - [In, MarshalAs(UnmanagedType.U4)] - int dwAspect, - out int misc); + [PreserveSig] + HRESULT GetMiscStatus(int dwAspect, out int misc); [PreserveSig] int SetColorScheme( @@ -2020,32 +1847,7 @@ int OnWindowMessage( [PreserveSig] int GetDropTarget( [Out, MarshalAs(UnmanagedType.Interface)] object ppDropTarget); -}; - - [ComImport(), - Guid("B196B288-BAB4-101A-B69C-00AA00341D07"), - InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] - public interface IOleControl { - [PreserveSig] - int GetControlInfo( - [Out] - NativeMethods.tagCONTROLINFO pCI); - - [PreserveSig] - int OnMnemonic( - [In] - ref System.Windows.Interop.MSG pMsg); - - [PreserveSig] - int OnAmbientPropertyChange( - - int dispID); - - [PreserveSig] - int FreezeEvents( - - int bFreeze); -} + }; [ComImport(), Guid("B196B286-BAB4-101A-B69C-00AA00341D07"), @@ -2238,7 +2040,7 @@ ITypeInfo GetTypeInfo( int lcid); [PreserveSig] - HR GetIDsOfNames( + HRESULT GetIDsOfNames( [In] ref Guid riid, [In, MarshalAs(UnmanagedType.LPArray)] @@ -2252,7 +2054,7 @@ HR GetIDsOfNames( [PreserveSig] - HR Invoke( + HRESULT Invoke( int dispIdMember, [In] @@ -2287,7 +2089,7 @@ public interface IDispatchEx : IDispatch { int lcid); [PreserveSig] - new HR GetIDsOfNames( + new HRESULT GetIDsOfNames( [In] ref Guid riid, [In, MarshalAs(UnmanagedType.LPArray)] @@ -2301,7 +2103,7 @@ public interface IDispatchEx : IDispatch { [PreserveSig] - new HR Invoke( + new HRESULT Invoke( int dispIdMember, [In] ref Guid riid, @@ -2321,13 +2123,13 @@ public interface IDispatchEx : IDispatch { #endregion [PreserveSig] - HR GetDispID( + HRESULT GetDispID( string name, int nameProperties, [Out] out int dispId); [PreserveSig] - HR InvokeEx( + HRESULT InvokeEx( int dispId, [MarshalAs(UnmanagedType.U4)] int lcid, [MarshalAs(UnmanagedType.U4)] int flags, @@ -2908,29 +2710,26 @@ public unsafe static IntPtr ArrayToVARIANTVector(object[] args) /// The length of the Variant vector to be cleared. public unsafe static void FreeVARIANTVector(IntPtr mem, int len) { - int hr = NativeMethods.S_OK; + HRESULT result = HRESULT.S_OK; byte* a = (byte*)(void*)mem; for (int i = 0; i < len; ++i) { - int hrcurrent = NativeMethods.S_OK; + HRESULT currentResult = HRESULT.S_OK; checked { - hrcurrent = UnsafeNativeMethods.VariantClear((IntPtr)(a + VariantSize * i)); + currentResult = VariantClear((IntPtr)(a + VariantSize * i)); } // save the first error and throw after we finish all VariantClear. - if (NativeMethods.Succeeded(hr) && NativeMethods.Failed(hrcurrent)) + if (result.Succeeded && currentResult.Failed) { - hr = hrcurrent; + result = currentResult; } } - Marshal.FreeCoTaskMem(mem); - if (NativeMethods.Failed(hr)) - { - Marshal.ThrowExceptionForHR(hr); - } + Marshal.FreeCoTaskMem(mem); + result.ThrowOnFailure(); } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -2944,8 +2743,8 @@ private struct FindSizeOfVariant private static readonly int VariantSize; } - [DllImport(ExternDll.Oleaut32, PreserveSig=true)] - private static extern int VariantClear(IntPtr pObject); + [DllImport(ExternDll.Oleaut32, PreserveSig = true)] + private static extern HRESULT VariantClear(IntPtr pObject); [ComImport(), Guid("7FD52380-4E07-101B-AE2D-08002B2EC713"), InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)] internal interface IPersistStreamInit @@ -2974,44 +2773,7 @@ void GetSizeMax( void InitNew(); } - [Flags] - internal enum BrowserNavConstants : uint - { - OpenInNewWindow = 0x00000001, - NoHistory = 0x00000002, - NoReadFromCache = 0x00000004, - NoWriteToCache = 0x00000008, - AllowAutosearch = 0x00000010, - BrowserBar = 0x00000020, - Hyperlink = 0x00000040, - EnforceRestricted = 0x00000080, - NewWindowsManaged = 0x00000100, - UntrustedForDownload = 0x00000200, - TrustedForActiveX = 0x00000400, - OpenInNewTab = 0x00000800, - OpenInBackgroundTab = 0x00001000, - KeepWordWheelText = 0x00002000 - } -#if never - // - // Used to control the webbrowser security - [ComVisible(true), ComImport(), Guid("79eac9ee-baf9-11ce-8c82-00aa004ba90b"), - InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown), CLSCompliant(false)] - public interface IInternetSecurityManager { - [PreserveSig] int SetSecuritySite(); - [PreserveSig] int GetSecuritySite(); - [PreserveSig] int MapUrlToZone(); - [PreserveSig] int GetSecurityId(); - [PreserveSig] int ProcessUrlAction(string url, int action, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] byte[] policy, - int cbPolicy, ref byte context, int cbContext, - int flags, int reserved); - [PreserveSig] int QueryCustomPolicy(); - [PreserveSig] int SetZoneMapping(); - [PreserveSig] int GetZoneMappings(); - } -#endif - #endregion WebBrowser Related Definitions + #endregion WebBrowser Related Definitions [DllImport(ExternDll.User32, SetLastError=true, CharSet=CharSet.Auto)] public static extern uint GetRawInputDeviceList( @@ -3026,19 +2788,6 @@ public static extern uint GetRawInputDeviceInfo( [In] ref NativeMethods.RID_DEVICE_INFO ridInfo, ref uint sizeInBytes); - /// - /// Retrieves a handle to the menu assigned to the specified window. - /// - /// A handle to the window whose menu handle is to be retrieved. - /// The return value is a handle to the menu. If the specified window has no menu, the return value is NULL. - /// If the window is a child window, the return value is undefined. - /// - /// GetMenu does not work on floating menu bars. Floating menu bars are custom controls that mimic - /// standard menus; they are not menus. To get the handle on a floating menu bar, use the Active Accessibility APIs. - /// - [DllImport(ExternDll.User32, CallingConvention = CallingConvention.Winapi)] - internal extern static IntPtr GetMenu([In] HandleRef hWnd); - #if !DRT && !UIAUTOMATIONTYPES /// @@ -3060,20 +2809,6 @@ public static extern uint GetRawInputDeviceInfo( [DllImport(ExternDll.User32, CallingConvention = CallingConvention.Winapi)] internal static extern DpiAwarenessContextHandle SetThreadDpiAwarenessContext(DpiAwarenessContextHandle dpiContext); - /// - /// Gets the DPI_AWARENESS_CONTEXT for the current thread. - /// - /// The current DPI_AWARENESS_CONTEXT for the thread. - /// - /// This method will return the latest DPI_AWARENESS_CONTEXT sent to SetThreadDpiAwarenessContext. - /// If SetThreadDpiAwarenessContext was never called for this thread, then the return value will equal - /// the default DPI_AWARENESS_CONTEXT for the process. - /// - /// Minimum supported client: Windows 10, version 1607 (RS1) - /// - [DllImport(ExternDll.User32, CallingConvention = CallingConvention.Winapi)] - internal static extern DpiAwarenessContextHandle GetThreadDpiAwarenessContext(); - #endif /// @@ -3149,6 +2884,6 @@ internal static extern bool EnumDisplayMonitors( /// On success, returns true if the Device Guard policy enforces .NET Dynamic Code policy; otherwise, returns false. /// This method returns S_OK if successful or a failure code otherwise. [DllImport(ExternDll.Wldp, CallingConvention = CallingConvention.Winapi, ExactSpelling = true)] - internal static extern int WldpIsDynamicCodePolicyEnabled([Out] out bool enabled); + internal static extern HRESULT WldpIsDynamicCodePolicyEnabled([Out] out bool enabled); } } diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsEventTrace.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsEventTrace.cs index 8499fd7c85b..f202dbbb162 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsEventTrace.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsEventTrace.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -97,7 +97,6 @@ internal static unsafe class ClassicEtw internal struct TRACE_GUID_REGISTRATION { internal unsafe Guid* Guid; - internal unsafe void* RegHandle; } @@ -143,9 +142,6 @@ internal enum WMIDPREQUESTCODE [DllImport("Advapi32.dll")] internal static extern byte GetTraceEnableLevel(ulong traceHandle); - [DllImport("Advapi32.dll")] - internal static extern long GetTraceLoggerHandle(WNODE_HEADER* data); - #region TraceEvent() // Structures for TraceEvent API. diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs index 103d6736ea3..255b910961e 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsOther.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,7 +8,8 @@ using Microsoft.Win32.SafeHandles; using MS.Internal; using MS.Internal.Interop; - +using Windows.Win32.Foundation; +using HRESULT = Windows.Win32.Foundation.HRESULT; using IComDataObject = System.Runtime.InteropServices.ComTypes.IDataObject; namespace MS.Win32 @@ -29,7 +30,7 @@ internal static uint GetTempFileName(string tmpPath, string prefix, uint uniqueI return result; } - [DllImport(ExternDll.Shell32, CharSet = System.Runtime.InteropServices.CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] + [DllImport(ExternDll.Shell32, CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] internal static extern int ExtractIconEx( string szExeFileName, int nIconIndex, @@ -37,9 +38,6 @@ internal static extern int ExtractIconEx( out NativeMethods.IconHandle phiconSmall, int nIcons); - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError=true)] - internal static extern NativeMethods.IconHandle CreateIcon(IntPtr hInstance, int nWidth, int nHeight, byte cPlanes, byte cBitsPixel, byte[] lpbANDbits, byte[] lpbXORbits); - [DllImport(ExternDll.User32, SetLastError = true)] public static extern bool CreateCaret(HandleRef hwnd, NativeMethods.BitmapHandle hbitmap, int width, int height); @@ -49,56 +47,33 @@ internal static extern int ExtractIconEx( [DllImport(ExternDll.User32, SetLastError = true)] public static extern bool HideCaret(HandleRef hwnd); - [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)] + [DllImport(ExternDll.User32, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern bool ShowWindowAsync(HandleRef hWnd, int nCmdShow); - [DllImport(ExternDll.User32, EntryPoint="LoadImage", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern NativeMethods.IconHandle LoadImageIcon(IntPtr hinst, string stName, int nType, int cxDesired, int cyDesired, int nFlags); - - [DllImport(ExternDll.User32, EntryPoint="LoadImage", CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] + [DllImport(ExternDll.User32, EntryPoint="LoadImage", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] internal static extern NativeMethods.CursorHandle LoadImageCursor(IntPtr hinst, string stName, int nType, int cxDesired, int cyDesired, int nFlags); - // uncomment this if you plan to use LoadImage to load anything other than Icons/Cursors. - /* - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern SafeHandle LoadImage( - IntPtr hinst, string stName, int nType, int cxDesired, int cyDesired, int nFlags); - */ - /* - [DllImport(ExternDll.User32, CharSet = System.Runtime.InteropServices.CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern NativeMethods.IconHandle LoadImage( - IntPtr hinst, string stName, int nType, int cxDesired, int cyDesired, int nFlags); - */ - - [DllImport( ExternDll.Urlmon, ExactSpelling=true)] - internal static extern int CoInternetIsFeatureEnabled( int featureEntry , int dwFlags ); - - [DllImport( ExternDll.Urlmon, ExactSpelling=true)] - internal static extern int CoInternetSetFeatureEnabled( int featureEntry , int dwFlags, bool fEnable ); - - [DllImport( ExternDll.Urlmon, ExactSpelling=true)] - internal static extern int CoInternetIsFeatureZoneElevationEnabled( - [MarshalAs(UnmanagedType.LPWStr)] string szFromURL, - [MarshalAs(UnmanagedType.LPWStr)] string szToURL, - UnsafeNativeMethods.IInternetSecurityManager secMgr, - int dwFlags - ); - - [DllImport(ExternDll.PresentationHostDll, EntryPoint = "ProcessUnhandledException")] - internal static extern void ProcessUnhandledException_DLL([MarshalAs(UnmanagedType.BStr)] string errMsg); + [DllImport(ExternDll.Urlmon, ExactSpelling = true)] + internal static extern HRESULT CoInternetIsFeatureEnabled(int featureEntry, int dwFlags); - [DllImport(ExternDll.Kernel32, CharSet=CharSet.Unicode)] - internal static extern bool GetVersionEx([In, Out] NativeMethods.OSVERSIONINFOEX ver); - [DllImport( ExternDll.Urlmon, ExactSpelling=true)] - internal static extern int CoInternetCreateSecurityManager( - [MarshalAs(UnmanagedType.Interface)] object pIServiceProvider, - [MarshalAs(UnmanagedType.Interface)] out object ppISecurityManager , - int dwReserved ) ; + [DllImport(ExternDll.Urlmon, ExactSpelling = true)] + internal static extern HRESULT CoInternetSetFeatureEnabled(int featureEntry, int dwFlags, bool fEnable); + [DllImport(ExternDll.Urlmon, ExactSpelling = true)] + internal static extern HRESULT CoInternetIsFeatureZoneElevationEnabled( + [MarshalAs(UnmanagedType.LPWStr)] string szFromURL, + [MarshalAs(UnmanagedType.LPWStr)] string szToURL, + UnsafeNativeMethods.IInternetSecurityManager secMgr, + int dwFlags); + [DllImport(ExternDll.Urlmon, ExactSpelling = true)] + internal static extern HRESULT CoInternetCreateSecurityManager( + [MarshalAs(UnmanagedType.Interface)] object pIServiceProvider, + [MarshalAs(UnmanagedType.Interface)] out object ppISecurityManager, + int dwReserved); - [ComImport, ComVisible(false), Guid("79eac9ee-baf9-11ce-8c82-00aa004ba90b"), System.Runtime.InteropServices.InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + [ComImport, ComVisible(false), Guid("79eac9ee-baf9-11ce-8c82-00aa004ba90b"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IInternetSecurityManager { void SetSecuritySite( NativeMethods.IInternetSecurityMgrSite pSite); @@ -140,28 +115,17 @@ unsafe void QueryCustomPolicy( unsafe void GetZoneMappings( /* [in] */ int dwZone, /* [out] */ /*IEnumString*/ void **ppenumString, /* [in] */ int dwFlags); } - /// - /// - /// - /// - /// - [DllImport(ExternDll.Kernel32, SetLastError = true)] - internal static extern IntPtr LocalFree(IntPtr hMem); - #if BASE_NATIVEMETHODS [DllImport(ExternDll.Kernel32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal unsafe static extern SafeFileHandle CreateFile( - string lpFileName, - uint dwDesiredAccess, - uint dwShareMode, - [In] NativeMethods.SECURITY_ATTRIBUTES lpSecurityAttributes, - int dwCreationDisposition, - int dwFlagsAndAttributes, - IntPtr hTemplateFile); -#endif - + internal static extern unsafe SafeFileHandle CreateFile( + string lpFileName, + uint dwDesiredAccess, + uint dwShareMode, + [In] NativeMethods.SECURITY_ATTRIBUTES lpSecurityAttributes, + int dwCreationDisposition, + int dwFlagsAndAttributes, + IntPtr hTemplateFile); -#if BASE_NATIVEMETHODS [DllImport(ExternDll.User32, CharSet = CharSet.Auto)] internal static extern IntPtr GetMessageExtraInfo(); @@ -178,7 +142,7 @@ internal unsafe static extern SafeFileHandle CreateFile( internal static int WaitForMultipleObjectsEx(int nCount, IntPtr[] pHandles, bool bWaitAll, int dwMilliseconds, bool bAlertable) { int result = IntWaitForMultipleObjectsEx(nCount, pHandles, bWaitAll, dwMilliseconds, bAlertable); - if(result == UnsafeNativeMethods.WAIT_FAILED) + if(result == WAIT_FAILED) { throw new Win32Exception(); } @@ -239,7 +203,7 @@ internal static void UnregisterClass(IntPtr atomString /*lpClassName*/ , IntPtr // Note that processes at or below SECURITY_MANDATORY_LOW_RID are not allowed to change the message filter. // If those processes call this function, it will fail and generate the extended error code, ERROR_ACCESS_DENIED. - internal static MS.Internal.Interop.HRESULT ChangeWindowMessageFilterEx(IntPtr hwnd, WindowMessage message, MSGFLT action, out MSGFLTINFO extStatus) + internal static HRESULT ChangeWindowMessageFilterEx(IntPtr hwnd, WindowMessage message, MSGFLT action, out MSGFLTINFO extStatus) { extStatus = MSGFLTINFO.NONE; @@ -247,7 +211,7 @@ internal static MS.Internal.Interop.HRESULT ChangeWindowMessageFilterEx(IntPtr h // If we're not on either, then this message filter isolation doesn't exist. if (!Utilities.IsOSVistaOrNewer) { - return MS.Internal.Interop.HRESULT.S_FALSE; + return HRESULT.S_FALSE; } // If we're on Vista rather than Win7 then we can't use the Ex version of this function. @@ -258,42 +222,43 @@ internal static MS.Internal.Interop.HRESULT ChangeWindowMessageFilterEx(IntPtr h // Note that the Win7 MSGFLT_ALLOW/DISALLOW enum values map to the Vista MSGFLT_ADD/REMOVE if (!IntChangeWindowMessageFilter(message, action)) { - return (MS.Internal.Interop.HRESULT)Win32Error.GetLastError(); + return (HRESULT)Marshal.GetHRForLastWin32Error(); } - return MS.Internal.Interop.HRESULT.S_OK; + + return HRESULT.S_OK; } var filterstruct = new CHANGEFILTERSTRUCT { cbSize = (uint)Marshal.SizeOf(typeof(CHANGEFILTERSTRUCT)) }; if (!IntChangeWindowMessageFilterEx(hwnd, message, action, ref filterstruct)) { - return (MS.Internal.Interop.HRESULT)Win32Error.GetLastError(); + return (HRESULT)Marshal.GetHRForLastWin32Error(); } extStatus = filterstruct.ExtStatus; - return MS.Internal.Interop.HRESULT.S_OK; + return HRESULT.S_OK; } - [DllImport(ExternDll.Urlmon, ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] - private static extern MS.Internal.Interop.HRESULT ObtainUserAgentString(int dwOption, StringBuilder userAgent, ref int length); + [DllImport(ExternDll.Urlmon, ExactSpelling = true, CharSet = CharSet.Ansi, BestFitMapping = false, ThrowOnUnmappableChar = true)] + private static extern HRESULT ObtainUserAgentString(int dwOption, StringBuilder userAgent, ref int length); internal static string ObtainUserAgentString() { - int length = MS.Win32.NativeMethods.MAX_PATH; + int length = NativeMethods.MAX_PATH; StringBuilder userAgentBuffer = new StringBuilder(length); - MS.Internal.Interop.HRESULT hr = ObtainUserAgentString(0 /*reserved. must be 0*/, userAgentBuffer, ref length); + HRESULT result = ObtainUserAgentString(0 /*reserved. must be 0*/, userAgentBuffer, ref length); // Installing .NET 4.0 adds two parts to the user agent string, i.e. // .NET4.0C and .NET4.0E, potentially causing the user agent string to overflow its // documented maximum length of MAX_PATH. Turns out ObtainUserAgentString can return // a longer string if asked to do so. Therefore we grow the string dynamically when // needed, accommodating for this failure condition. - if (hr == MS.Internal.Interop.HRESULT.E_OUTOFMEMORY) + if (result == HRESULT.E_OUTOFMEMORY) { userAgentBuffer = new StringBuilder(length); - hr = ObtainUserAgentString(0 /*reserved. must be 0*/, userAgentBuffer, ref length); + result = ObtainUserAgentString(0 /*reserved. must be 0*/, userAgentBuffer, ref length); } - hr.ThrowIfFailed(); + result.ThrowOnFailureUnwrapWin32(); return userAgentBuffer.ToString(); } @@ -315,22 +280,11 @@ internal static string ObtainUserAgentString() [DllImport(ExternDll.User32,EntryPoint="UnregisterPowerSettingNotification")] unsafe internal static extern IntPtr UnregisterPowerSettingNotification(IntPtr hPowerNotify); -/* - // - // SendMessage taking a SafeHandle for wParam. Needed by some Win32 messages. e.g. WM_PRINT - // - [DllImport(ExternDll.User32, CharSet = CharSet.Auto)] - internal static extern IntPtr SendMessage(HandleRef hWnd, WindowMessage msg, SafeHandle wParam, IntPtr lParam); -*/ - // private DllImport - that takes an IconHandle. [DllImport(ExternDll.User32, CharSet = CharSet.Auto, SetLastError = true)] internal static extern IntPtr SendMessage( HandleRef hWnd, WindowMessage msg, IntPtr wParam, NativeMethods.IconHandle iconHandle ); #endif - [DllImport(ExternDll.Kernel32, ExactSpelling = true, CharSet = CharSet.Auto)] - internal static extern void SetLastError(int dwErrorCode); - #if BASE_NATIVEMETHODS || CORE_NATIVEMETHODS || FRAMEWORK_NATIVEMETHODS /// /// Win32 GetLayeredWindowAttributes. @@ -343,6 +297,7 @@ internal static string ObtainUserAgentString() [DllImport("user32.dll")] public static extern bool GetLayeredWindowAttributes( HandleRef hwnd, IntPtr pcrKey, IntPtr pbAlpha, IntPtr pdwFlags); + internal sealed class SafeFileMappingHandle : SafeHandleZeroOrMinusOneIsInvalid { internal SafeFileMappingHandle(IntPtr handle) : base(false) @@ -367,6 +322,7 @@ protected override bool ReleaseHandle() return CloseHandleNoThrow(new HandleRef(null, handle)); } } + internal sealed class SafeViewOfFileHandle : SafeHandleZeroOrMinusOneIsInvalid { internal SafeViewOfFileHandle() : base(true) { } @@ -382,7 +338,7 @@ internal unsafe void* Memory override protected bool ReleaseHandle() { - return UnsafeNativeMethods.UnmapViewOfFileNoThrow(new HandleRef(null, handle)); + return UnmapViewOfFileNoThrow(new HandleRef(null, handle)); } } @@ -589,19 +545,6 @@ internal static extern bool InternetGetCookieEx([In]string Url, [In]string cooki [DllImport(ExternDll.Kernel32, ExactSpelling = true, SetLastError = true)] internal static extern int FindNLSString(int locale, uint flags, [MarshalAs(UnmanagedType.LPWStr)]string sourceString, int sourceCount, [MarshalAs(UnmanagedType.LPWStr)]string findString, int findCount, out int found); - - //[DllImport(ExternDll.Psapi, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false)] - //public static extern int GetModuleFileNameEx(IntPtr hProcess, IntPtr hModule, StringBuilder buffer, int length); - - // - // OpenProcess - // - public const int PROCESS_VM_READ = 0x0010; - public const int PROCESS_QUERY_INFORMATION = 0x0400; - - //[DllImport(ExternDll.Kernel32, SetLastError = true, CharSet = CharSet.Auto)] - //public static extern IntPtr OpenProcess(int dwDesiredAccess, bool fInherit, int dwProcessId); - [DllImport(ExternDll.User32, EntryPoint = "SetWindowText", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false)] private static extern bool IntSetWindowText(HandleRef hWnd, string text); @@ -612,8 +555,8 @@ internal static void SetWindowText(HandleRef hWnd, string text) throw new Win32Exception(); } } - [DllImport(ExternDll.User32, EntryPoint = "GetIconInfo", CharSet = CharSet.Auto, SetLastError = true)] + [DllImport(ExternDll.User32, EntryPoint = "GetIconInfo", CharSet = CharSet.Auto, SetLastError = true)] private static extern bool GetIconInfoImpl(HandleRef hIcon, [Out] ICONINFO_IMPL piconinfo); [StructLayout(LayoutKind.Sequential)] @@ -665,17 +608,6 @@ internal static void GetIconInfo(HandleRef hIcon, out NativeMethods.ICONINFO pic } } -#if never - - [DllImport(ExternDll.User32, -#if WIN64 - EntryPoint="GetClassLongPtr", -#endif - CharSet = CharSet.Auto, SetLastError = true) - ] - internal static extern UInt32 GetClassLong(IntPtr hwnd, int nIndex); -#endif - [DllImport(ExternDll.User32, EntryPoint = "GetWindowPlacement", ExactSpelling = true, CharSet = CharSet.Auto, SetLastError = true)] private static extern bool IntGetWindowPlacement(HandleRef hWnd, ref NativeMethods.WINDOWPLACEMENT placement); @@ -701,13 +633,6 @@ internal static void SetWindowPlacement(HandleRef hWnd, [In] ref NativeMethods.W } } - //[DllImport("secur32.dll", CharSet = CharSet.Unicode, SetLastError = true, ExactSpelling = true)] - //internal static extern bool GetUserNameExW( - // [In] EXTENDED_NAME_FORMAT nameFormat, - // [MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpNameBuffer, - // [In, Out] ref ulong nSize); - - [DllImport(ExternDll.User32, CharSet = CharSet.Auto, BestFitMapping = false)] internal static extern bool SystemParametersInfo(int nAction, int nParam, [In, Out] NativeMethods.ANIMATIONINFO anim, int nUpdate); @@ -805,24 +730,9 @@ public static extern bool EndPanningFeedback( HandleRef hwnd, bool fAnimateBack); - /// - /// - /// - [DllImport(ExternDll.Kernel32, CharSet = CharSet.Auto, SetLastError = true)] - public static extern bool SetEvent(IntPtr hEvent); - [DllImport(ExternDll.Kernel32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] public static extern int SetEvent([In] SafeWaitHandle hHandle); - [DllImport(ExternDll.Kernel32, SetLastError = true, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern int WaitForSingleObject([In] SafeWaitHandle hHandle, [In] int dwMilliseconds); - - - //[DllImport(ExternDll.Kernel32, SetLastError = true)] - //internal static extern int GetFileSize(SafeFileHandle hFile, ref int lpFileSizeHigh); - - - ////////////////////////////////////// // Needed by BASE #if BASE_NATIVEMETHODS @@ -836,19 +746,6 @@ internal static extern int GetMouseMovePointsEx( uint resolution ); - [StructLayout(LayoutKind.Explicit)] - internal unsafe struct ULARGE_INTEGER - { - [FieldOffset(0)] - internal uint LowPart; - - [FieldOffset(4)] - internal uint HighPart; - - [FieldOffset(0)] - internal ulong QuadPart; - } - [StructLayout(LayoutKind.Explicit)] internal unsafe struct LARGE_INTEGER { @@ -872,13 +769,9 @@ ref LARGE_INTEGER lpFileSize /// Win32 constants internal static readonly IntPtr INVALID_HANDLE_VALUE = new IntPtr(-1); - /// Win32 constants - internal const int PAGE_NOACCESS = 0x01; /// Win32 constants internal const int PAGE_READONLY = 0x02; /// Win32 constants - internal const int PAGE_READWRITE = 0x04; - /// Win32 constants internal const int PAGE_WRITECOPY = 0x08; /// Win32 constants internal const int PAGE_EXECUTE = 0x10; @@ -915,10 +808,6 @@ ref LARGE_INTEGER lpFileSize /// Win32 constants internal const int MEM_WRITE_WATCH = 0x200000; /// Win32 constants - internal const int MEM_PHYSICAL = 0x400000; - /// Win32 constants - internal const int MEM_4MB_PAGES = unchecked((int)0x80000000); - /// Win32 constants internal const int SEC_FILE = 0x800000; /// Win32 constants internal const int SEC_IMAGE = 0x1000000; @@ -965,44 +854,6 @@ ref LARGE_INTEGER lpFileSize /// Win32 constants internal const int FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS; - /// - /// - /// - /// - /// - /// - /// - /// - [DllImport(ExternDll.Advapi32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern bool ConvertStringSecurityDescriptorToSecurityDescriptor( - string stringSecurityDescriptor, // security descriptor string - int stringSDRevision, // revision level - ref IntPtr securityDescriptor, // SD - IntPtr securityDescriptorSize // SD size - ); - - /// Win32 constants - internal const int SDDL_REVISION_1 = 1; - /// Win32 constants - internal const int SDDL_REVISION = SDDL_REVISION_1; - - - [DllImport(ExternDll.Kernel32, SetLastError = true, CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern SafeFileMappingHandle OpenFileMapping( - int dwDesiredAccess, - bool bInheritHandle, - string lpName - ); - - [DllImport(ExternDll.Kernel32, SetLastError = true)] - internal static extern IntPtr VirtualAlloc( - IntPtr lpAddress, - UIntPtr dwSize, - int flAllocationType, - int flProtect - ); - - // // RIT WM_MOUSEQUERY structure for DWM WM_MOUSEQUERY (see HwndMouseInputSource.cs) // @@ -1018,44 +869,14 @@ internal unsafe struct MOUSEQUERY } [DllImport(ExternDll.Ole32, ExactSpelling = true, CharSet = CharSet.Auto)] - public static extern int OleIsCurrentClipboard(IComDataObject pDataObj); + public static extern HRESULT OleIsCurrentClipboard(IComDataObject pDataObj); [DllImport(ExternDll.Kernel32, ExactSpelling = true, CharSet = CharSet.Auto)] internal static extern int GetOEMCP(); -#if never - [DllImport("user32.dll", CharSet = CharSet.Auto, BestFitMapping = false, ThrowOnUnmappableChar = true)] - internal static extern int ToUnicode(int nVirtKey, int nScanCode, byte[] keystate, StringBuilder text, int cch, int flags); -#endif - // WinEvent fired when new Avalon UI is created public const int EventObjectUIFragmentCreate = 0x6FFFFFFF; - - ////////////////////////////////// - // Needed by FontCache - - [DllImport("ntdll.dll")] - internal static extern int RtlNtStatusToDosError(int Status); - - internal static bool NtSuccess(int err) - { - return err >= STATUS_SUCCESS; - } - - internal static void NtCheck(int err) - { - if (!NtSuccess(err)) - { - int win32error = RtlNtStatusToDosError(err); - throw new System.ComponentModel.Win32Exception(win32error); - } - } - - internal const int STATUS_SUCCESS = 0; - internal const int STATUS_TIMEOUT = 0x00000102; - internal const int STATUS_BUFFER_TOO_SMALL = unchecked((int)0xC0000023); - #endif // BASE_NATIVEMETHODS // @@ -1156,55 +977,5 @@ public unsafe struct PROFILE [DllImport(ExternDll.User32)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsIconic(IntPtr hWnd); - - public enum HookType : int - { - WH_JOURNALRECORD = 0, - WH_JOURNALPLAYBACK = 1, - WH_KEYBOARD = 2, - WH_GETMESSAGE = 3, - WH_CALLWNDPROC = 4, - WH_CBT = 5, - WH_SYSMSGFILTER = 6, - WH_MOUSE = 7, - WH_HARDWARE = 8, - WH_DEBUG = 9, - WH_SHELL = 10, - WH_FOREGROUNDIDLE = 11, - WH_CALLWNDPROCRET = 12, - WH_KEYBOARD_LL = 13, - WH_MOUSE_LL = 14, - } - - [StructLayout(LayoutKind.Sequential)] - public struct MOUSEHOOKSTRUCT - { - public NativeMethods.POINT pt; - public IntPtr hwnd; - public uint wHitTestCode; - public IntPtr dwExtraInfo; - } - - public delegate IntPtr HookProc(int code, IntPtr wParam, IntPtr lParam); - - public static HandleRef SetWindowsHookEx(HookType idHook, HookProc lpfn, IntPtr hMod, int dwThreadId) - { - IntPtr result = IntSetWindowsHookEx(idHook, lpfn, hMod, dwThreadId); - if (result == IntPtr.Zero) - { - throw new Win32Exception(); - } - - return new HandleRef(lpfn, result); - } - - [DllImport(ExternDll.User32, EntryPoint = "SetWindowsHookExW", SetLastError = true)] - private static extern IntPtr IntSetWindowsHookEx(HookType idHook, HookProc lpfn, IntPtr hMod, int dwThreadId); - - [DllImport(ExternDll.User32, SetLastError = true)] - public static extern bool UnhookWindowsHookEx(HandleRef hhk); - - [DllImport(ExternDll.User32, SetLastError = true)] - public static extern IntPtr CallNextHookEx(HandleRef hhk, int nCode, IntPtr wParam, IntPtr lParam); } } diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsTextServices.cs b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsTextServices.cs index 7b333c760a1..10285fdaf5d 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsTextServices.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/MS/Win32/UnsafeNativeMethodsTextServices.cs @@ -1,734 +1,274 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Runtime.InteropServices; +using Windows.Win32.Foundation; namespace MS.Win32 { - internal partial class UnsafeNativeMethods { - //------------------------------------------------------ - // - // public Methods - // - //------------------------------------------------------ - - #region public Methods - + internal partial class UnsafeNativeMethods + { [DllImport("msctf.dll")] - internal static extern int TF_CreateThreadMgr(out ITfThreadMgr threadManager); + internal static extern HRESULT TF_CreateThreadMgr(out ITfThreadMgr threadManager); - /// [DllImport("msctf.dll")] - public static extern int TF_CreateInputProcessorProfiles(out ITfInputProcessorProfiles profiles); - - /// + public static extern HRESULT TF_CreateInputProcessorProfiles(out ITfInputProcessorProfiles profiles); [DllImport("msctf.dll")] - public static extern int TF_CreateDisplayAttributeMgr(out ITfDisplayAttributeMgr dam); + public static extern HRESULT TF_CreateDisplayAttributeMgr(out ITfDisplayAttributeMgr dam); - /// [DllImport("msctf.dll")] - public static extern int TF_CreateCategoryMgr(out ITfCategoryMgr catmgr); - - #endregion public Methods - - //------------------------------------------------------ - // - // Constants - // - //------------------------------------------------------ - - #region Constants + public static extern HRESULT TF_CreateCategoryMgr(out ITfCategoryMgr catmgr); - /// public const int TF_CLIENTID_NULL = 0; - /// - public const char TS_CHAR_EMBEDDED = (char)0xfffc; // unicode 2.1 object replacement character - - /// - public const char TS_CHAR_REGION = (char)0x0000; // region boundary - - /// - public const char TS_CHAR_REPLACEMENT = (char)0xfffd; // hidden text placeholder char, Unicode replacement character - - /// + public const char TS_CHAR_EMBEDDED = (char)0xfffc; // unicode 2.1 object replacement character + public const char TS_CHAR_REGION = (char)0x0000; // region boundary + public const char TS_CHAR_REPLACEMENT = (char)0xfffd; // hidden text placeholder char, Unicode replacement character public const int TS_DEFAULT_SELECTION = -1; - - /// - public const int TS_S_ASYNC = 0x00040300; - - /// + public const int TS_S_ASYNC = 0x00040300; public const int TS_E_NOSELECTION = unchecked((int)0x80040205); - - /// public const int TS_E_NOLAYOUT = unchecked((int)0x80040206); - - /// public const int TS_E_INVALIDPOINT = unchecked((int)0x80040207); - - /// public const int TS_E_SYNCHRONOUS = unchecked((int)0x80040208); - - /// public const int TS_E_READONLY = unchecked((int)0x80040209); - - /// public const int TS_E_FORMAT = unchecked((int)0x8004020a); - - /// public const int TF_INVALID_COOKIE = -1; + public const int TF_DICTATION_ON = 0x00000001; + public const int TF_COMMANDING_ON = 0x00000008; - /// - public const int TF_DICTATION_ON = 0x00000001; - - /// - public const int TF_COMMANDING_ON = 0x00000008; - - /// public static readonly Guid IID_ITextStoreACPSink = new Guid(0x22d44c94, 0xa419, 0x4542, 0xa2, 0x72, 0xae, 0x26, 0x09, 0x3e, 0xce, 0xcf); - - /// public static readonly Guid IID_ITfThreadFocusSink = new Guid(0xc0f1db0c, 0x3a20, 0x405c, 0xa3, 0x03, 0x96, 0xb6, 0x01, 0x0a, 0x88, 0x5f); - - /// public static readonly Guid IID_ITfTextEditSink = new Guid(0x8127d409, 0xccd3, 0x4683, 0x96, 0x7a, 0xb4, 0x3d, 0x5b, 0x48, 0x2b, 0xf7); - - /// public static readonly Guid IID_ITfLanguageProfileNotifySink = new Guid(0x43c9fe15, 0xf494, 0x4c17, 0x9d, 0xe2, 0xb8, 0xa4, 0xac, 0x35, 0x0a, 0xa8); - - /// public static readonly Guid IID_ITfCompartmentEventSink = new Guid(0x743abd5f, 0xf26d, 0x48df, 0x8c, 0xc5, 0x23, 0x84, 0x92, 0x41, 0x9b, 0x64); - - /// public static readonly Guid IID_ITfTransitoryExtensionSink = new Guid(0xa615096f, 0x1c57, 0x4813, 0x8a, 0x15, 0x55, 0xee, 0x6e, 0x5a, 0x83, 0x9c); - - /// public static readonly Guid GUID_TFCAT_TIP_KEYBOARD = new Guid(0x34745c63, 0xb2f0, 0x4784, 0x8b, 0x67, 0x5e, 0x12, 0xc8, 0x70, 0x1a, 0x31); -/* - /// - public static readonly Guid GUID_TFCAT_TIP_SPEECH = new Guid("b5a73cd1-8355-426b-a161-259808f26b14"); - - /// - public static readonly Guid GUID_TFCAT_TIP_HANDWRITING = new Guid("246ecb87-c2f2-4abe-905b-c8b38add2c43"); -*/ - - - /// public static readonly Guid GUID_PROP_ATTRIBUTE = new Guid(0x34b45670, 0x7526, 0x11d2, 0xa1, 0x47, 0x00, 0x10, 0x5a, 0x27, 0x99, 0xb5); - - /// - public static readonly Guid GUID_PROP_LANGID = new Guid(0x3280ce20, 0x8032, 0x11d2, 0xb6, 0x03, 0x00, 0x10, 0x5a, 0x27, 0x99, 0xb5); - - /// + public static readonly Guid GUID_PROP_LANGID = new Guid(0x3280ce20, 0x8032, 0x11d2, 0xb6, 0x03, 0x00, 0x10, 0x5a, 0x27, 0x99, 0xb5); public static readonly Guid GUID_PROP_READING = new Guid(0x5463f7c0, 0x8e31, 0x11d2, 0xbf, 0x46, 0x00, 0x10, 0x5a, 0x27, 0x99, 0xb5); - - - /// public static readonly Guid GUID_PROP_INPUTSCOPE = new Guid(0x1713dd5a, 0x68e7, 0x4a5b, 0x9a, 0xf6, 0x59, 0x2a, 0x59, 0x5c, 0x77, 0x8d); - - /// - public static readonly Guid GUID_COMPARTMENT_KEYBOARD_DISABLED = new Guid( 0x71a5b253, 0x1951, 0x466b, 0x9f, 0xbc, 0x9c, 0x88, 0x08, 0xfa, 0x84, 0xf2); - - /// - public static Guid GUID_COMPARTMENT_KEYBOARD_OPENCLOSE = new Guid( 0x58273aad, 0x01bb, 0x4164, 0x95, 0xc6, 0x75, 0x5b, 0xa0, 0xb5, 0x16, 0x2d); - - /// - public static readonly Guid GUID_COMPARTMENT_HANDWRITING_OPENCLOSE = new Guid( 0xf9ae2c6b, 0x1866, 0x4361, 0xaf, 0x72, 0x7a, 0xa3, 0x09, 0x48, 0x89, 0x0e); - - /// - public static readonly Guid GUID_COMPARTMENT_SPEECH_DISABLED = new Guid( 0x56c5c607, 0x0703, 0x4e59, 0x8e, 0x52, 0xcb, 0xc8, 0x4e, 0x8b, 0xbe, 0x35); - - /// - public static readonly Guid GUID_COMPARTMENT_SPEECH_OPENCLOSE = new Guid( 0x544d6a63, 0xe2e8, 0x4752, 0xbb, 0xd1, 0x00, 0x09, 0x60, 0xbc, 0xa0, 0x83); - - /// - public static readonly Guid GUID_COMPARTMENT_SPEECH_GLOBALSTATE = new Guid( 0x2a54fe8e, 0x0d08, 0x460c, 0xa7, 0x5d, 0x87, 0x03, 0x5f, 0xf4, 0x36, 0xc5); - - /// - public static readonly Guid GUID_COMPARTMENT_KEYBOARD_INPUTMODE_CONVERSION = new Guid( 0xccf05dd8, 0x4a87, 0x11d7, 0xa6, 0xe2, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); - - /// - public static readonly Guid GUID_COMPARTMENT_KEYBOARD_INPUTMODE_SENTENCE = new Guid( 0xccf05dd9, 0x4a87, 0x11d7, 0xa6, 0xe2, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); - - /// - public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION = new Guid( 0x8be347f5, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); - - /// - public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION_DOCUMENTMANAGER = new Guid( 0x8be347f7, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); - - /// - public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION_PARENT = new Guid( 0x8be347f8, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); - - /// + public static readonly Guid GUID_COMPARTMENT_KEYBOARD_DISABLED = new Guid(0x71a5b253, 0x1951, 0x466b, 0x9f, 0xbc, 0x9c, 0x88, 0x08, 0xfa, 0x84, 0xf2); + public static Guid GUID_COMPARTMENT_KEYBOARD_OPENCLOSE = new Guid(0x58273aad, 0x01bb, 0x4164, 0x95, 0xc6, 0x75, 0x5b, 0xa0, 0xb5, 0x16, 0x2d); + public static readonly Guid GUID_COMPARTMENT_HANDWRITING_OPENCLOSE = new Guid(0xf9ae2c6b, 0x1866, 0x4361, 0xaf, 0x72, 0x7a, 0xa3, 0x09, 0x48, 0x89, 0x0e); + public static readonly Guid GUID_COMPARTMENT_SPEECH_DISABLED = new Guid(0x56c5c607, 0x0703, 0x4e59, 0x8e, 0x52, 0xcb, 0xc8, 0x4e, 0x8b, 0xbe, 0x35); + public static readonly Guid GUID_COMPARTMENT_SPEECH_OPENCLOSE = new Guid(0x544d6a63, 0xe2e8, 0x4752, 0xbb, 0xd1, 0x00, 0x09, 0x60, 0xbc, 0xa0, 0x83); + public static readonly Guid GUID_COMPARTMENT_SPEECH_GLOBALSTATE = new Guid(0x2a54fe8e, 0x0d08, 0x460c, 0xa7, 0x5d, 0x87, 0x03, 0x5f, 0xf4, 0x36, 0xc5); + public static readonly Guid GUID_COMPARTMENT_KEYBOARD_INPUTMODE_CONVERSION = new Guid(0xccf05dd8, 0x4a87, 0x11d7, 0xa6, 0xe2, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); + public static readonly Guid GUID_COMPARTMENT_KEYBOARD_INPUTMODE_SENTENCE = new Guid(0xccf05dd9, 0x4a87, 0x11d7, 0xa6, 0xe2, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); + public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION = new Guid(0x8be347f5, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); + public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION_DOCUMENTMANAGER = new Guid(0x8be347f7, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); + public static readonly Guid GUID_COMPARTMENT_TRANSITORYEXTENSION_PARENT = new Guid(0x8be347f8, 0xc7a0, 0x11d7, 0xb4, 0x08, 0x00, 0x06, 0x5b, 0x84, 0x43, 0x5c); public static readonly Guid Clsid_SpeechTip = new Guid(0xdcbd6fa8, 0x032f, 0x11d3, 0xb5, 0xb1, 0x00, 0xc0, 0x4f, 0xc3, 0x24, 0xa1); - - /// - public static readonly Guid Guid_Null = new Guid(0,0,0,0,0,0,0,0,0,0,0); - - /// + public static readonly Guid Guid_Null = new Guid(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); public static readonly Guid IID_ITfFnCustomSpeechCommand = new Guid(0xfca6c349, 0xa12f, 0x43a3, 0x8d, 0xd6, 0x5a, 0x5a, 0x42, 0x82, 0x57, 0x7b); - - /// public static readonly Guid IID_ITfFnReconversion = new Guid("4cea93c0-0a58-11d3-8df0-00105a2799b5"); - - /// public static readonly Guid IID_ITfFnConfigure = new Guid(0x88f567c6, 0x1757, 0x49f8, 0xa1, 0xb2, 0x89, 0x23, 0x4c, 0x1e, 0xef, 0xf9); - - /// public static readonly Guid IID_ITfFnConfigureRegisterWord = new Guid(0xbb95808a, 0x6d8f, 0x4bca, 0x84, 0x00, 0x53, 0x90, 0xb5, 0x86, 0xae, 0xdf); - -/* - - /// - public static readonly Guid TSATTRID_OTHERS = new Guid(0xb3c32af9,0x57d0,0x46a9,0xbc,0xa8,0xda,0xc2,0x38,0xa1,0x30,0x57); - -*/ - -/* - /// - public static readonly Guid TSATTRID_Font = new Guid(0x573ea825,0x749b,0x4f8a,0x9c,0xfd,0x21,0xc3,0x60,0x5c,0xa8,0x28); -*/ - /// - public static readonly Guid TSATTRID_Font_FaceName = new Guid(0xb536aeb6,0x053b,0x4eb8,0xb6,0x5a,0x50,0xda,0x1e,0x81,0xe7,0x2e); - /// - public static readonly Guid TSATTRID_Font_SizePts = new Guid(0xc8493302,0xa5e9,0x456d,0xaf,0x04,0x80,0x05,0xe4,0x13,0x0f,0x03); -/* - /// - public static readonly Guid TSATTRID_Font_Style = new Guid(0x68b2a77f,0x6b0e,0x4f28,0x81,0x77,0x57,0x1c,0x2f,0x3a,0x42,0xb1); - /// - public static readonly Guid TSATTRID_Font_Style_Bold = new Guid(0x48813a43,0x8a20,0x4940,0x8e,0x58,0x97,0x82,0x3f,0x7b,0x26,0x8a); - /// - public static readonly Guid TSATTRID_Font_Style_Italic = new Guid(0x8740682a,0xa765,0x48e1,0xac,0xfc,0xd2,0x22,0x22,0xb2,0xf8,0x10); - /// - public static readonly Guid TSATTRID_Font_Style_SmallCaps = new Guid(0xfacb6bc6,0x9100,0x4cc6,0xb9,0x69,0x11,0xee,0xa4,0x5a,0x86,0xb4); - /// - public static readonly Guid TSATTRID_Font_Style_Capitalize = new Guid(0x7d85a3ba, 0xb4fd, 0x43b3, 0xbe, 0xfc, 0x6b, 0x98, 0x5c, 0x84, 0x31, 0x41); - /// - public static readonly Guid TSATTRID_Font_Style_Uppercase = new Guid(0x33a300e8, 0xe340, 0x4937, 0xb6, 0x97, 0x8f, 0x23, 0x40, 0x45, 0xcd, 0x9a); - /// - public static readonly Guid TSATTRID_Font_Style_Lowercase = new Guid(0x76d8ccb5, 0xca7b, 0x4498, 0x8e, 0xe9, 0xd5, 0xc4, 0xf6, 0xf7, 0x4c, 0x60); - /// - public static readonly Guid TSATTRID_Font_Style_Animation = new Guid(0xdcf73d22, 0xe029, 0x47b7, 0xbb, 0x36, 0xf2, 0x63, 0xa3, 0xd0, 0x04, 0xcc); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_LasVegasLights = new Guid(0xf40423d5, 0xf87, 0x4f8f, 0xba, 0xda, 0xe6, 0xd6, 0xc, 0x25, 0xe1, 0x52); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_BlinkingBackground = new Guid(0x86e5b104, 0x0104, 0x4b10, 0xb5, 0x85, 0x00, 0xf2, 0x52, 0x75, 0x22, 0xb5); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_SparkleText = new Guid(0x533aad20, 0x962c, 0x4e9f, 0x8c, 0x09, 0xb4, 0x2e, 0xa4, 0x74, 0x97, 0x11); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_MarchingBlackAnts = new Guid(0x7644e067, 0xf186, 0x4902, 0xbf, 0xc6, 0xec, 0x81, 0x5a, 0xa2, 0x0e, 0x9d); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_MarchingRedAnts = new Guid(0x78368dad, 0x50fb, 0x4c6f, 0x84, 0x0b, 0xd4, 0x86, 0xbb, 0x6c, 0xf7, 0x81); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_Shimmer = new Guid(0x2ce31b58, 0x5293, 0x4c36, 0x88, 0x09, 0xbf, 0x8b, 0xb5, 0x1a, 0x27, 0xb3); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_WipeDown = new Guid(0x5872e874, 0x367b, 0x4803, 0xb1, 0x60, 0xc9, 0x0f, 0xf6, 0x25, 0x69, 0xd0); - /// - public static readonly Guid TSATTRID_Font_Style_Animation_WipeRight = new Guid(0xb855cbe3, 0x3d2c, 0x4600, 0xb1, 0xe9, 0xe1, 0xc9, 0xce, 0x02, 0xf8, 0x42); - /// - public static readonly Guid TSATTRID_Font_Style_Emboss = new Guid(0xbd8ed742, 0x349e, 0x4e37, 0x82, 0xfb, 0x43, 0x79, 0x79, 0xcb, 0x53, 0xa7); - /// - public static readonly Guid TSATTRID_Font_Style_Engrave = new Guid(0x9c3371de, 0x8332, 0x4897, 0xbe, 0x5d, 0x89, 0x23, 0x32, 0x23, 0x17, 0x9a); - /// - public static readonly Guid TSATTRID_Font_Style_Hidden = new Guid(0xb1e28770, 0x881c, 0x475f, 0x86, 0x3f, 0x88, 0x7a, 0x64, 0x7b, 0x10, 0x90); - /// - public static readonly Guid TSATTRID_Font_Style_Kerning = new Guid(0xcc26e1b4, 0x2f9a, 0x47c8, 0x8b, 0xff, 0xbf, 0x1e, 0xb7, 0xcc, 0xe0, 0xdd); - /// - public static readonly Guid TSATTRID_Font_Style_Outlined = new Guid(0x10e6db31, 0xdb0d, 0x4ac6, 0xa7, 0xf5, 0x9c, 0x9c, 0xff, 0x6f, 0x2a, 0xb4); - /// - public static readonly Guid TSATTRID_Font_Style_Position = new Guid(0x15cd26ab, 0xf2fb, 0x4062, 0xb5, 0xa6, 0x9a, 0x49, 0xe1, 0xa5, 0xcc, 0x0b); - /// - public static readonly Guid TSATTRID_Font_Style_Protected = new Guid(0x1c557cb2, 0x14cf, 0x4554, 0xa5, 0x74, 0xec, 0xb2, 0xf7, 0xe7, 0xef, 0xd4); - /// - public static readonly Guid TSATTRID_Font_Style_Shadow = new Guid(0x5f686d2f, 0xc6cd, 0x4c56, 0x8a, 0x1a, 0x99, 0x4a, 0x4b, 0x97, 0x66, 0xbe); - /// - public static readonly Guid TSATTRID_Font_Style_Spacing = new Guid(0x98c1200d, 0x8f06, 0x409a, 0x8e, 0x49, 0x6a, 0x55, 0x4b, 0xf7, 0xc1, 0x53); - /// - public static readonly Guid TSATTRID_Font_Style_Weight = new Guid(0x12f3189c, 0x8bb0, 0x461b, 0xb1, 0xfa, 0xea, 0xf9, 0x07, 0x04, 0x7f, 0xe0); -*/ - /// + public static readonly Guid TSATTRID_Font_FaceName = new Guid(0xb536aeb6, 0x053b, 0x4eb8, 0xb6, 0x5a, 0x50, 0xda, 0x1e, 0x81, 0xe7, 0x2e); + public static readonly Guid TSATTRID_Font_SizePts = new Guid(0xc8493302, 0xa5e9, 0x456d, 0xaf, 0x04, 0x80, 0x05, 0xe4, 0x13, 0x0f, 0x03); public static readonly Guid TSATTRID_Font_Style_Height = new Guid(0x7e937477, 0x12e6, 0x458b, 0x92, 0x6a, 0x1f, 0xa4, 0x4e, 0xe8, 0xf3, 0x91); -/* - /// - public static readonly Guid TSATTRID_Font_Style_Underline = new Guid(0xc3c9c9f3,0x7902,0x444b,0x9a,0x7b,0x48,0xe7,0x0f,0x4b,0x50,0xf7); - /// - public static readonly Guid TSATTRID_Font_Style_Underline_Single = new Guid(0x1b6720e5,0x0f73,0x4951,0xa6,0xb3,0x6f,0x19,0xe4,0x3c,0x94,0x61); - /// - public static readonly Guid TSATTRID_Font_Style_Underline_Double = new Guid(0x74d24aa6, 0x1db3, 0x4c69, 0xa1, 0x76, 0x31, 0x12, 0x0e, 0x75, 0x86, 0xd5); - /// - public static readonly Guid TSATTRID_Font_Style_Strikethrough = new Guid(0x0c562193,0x2d08,0x4668,0x96,0x01,0xce,0xd4,0x13,0x09,0xd7,0xaf); - /// - public static readonly Guid TSATTRID_Font_Style_Strikethrough_Single = new Guid(0x75d736b6,0x3c8f,0x4b97,0xab,0x78,0x18,0x77,0xcb,0x99,0x0d,0x31); - /// - public static readonly Guid TSATTRID_Font_Style_Strikethrough_Double = new Guid(0x62489b31, 0xa3e7, 0x4f94, 0xac, 0x43, 0xeb, 0xaf, 0x8f, 0xcc, 0x7a, 0x9f); - /// - public static readonly Guid TSATTRID_Font_Style_Overline = new Guid(0xe3989f4a,0x992b,0x4301,0x8c,0xe1,0xa5,0xb7,0xc6,0xd1,0xf3,0xc8); - /// - public static readonly Guid TSATTRID_Font_Style_Overline_Single = new Guid(0x8440d94c,0x51ce,0x47b2,0x8d,0x4c,0x15,0x75,0x1e,0x5f,0x72,0x1b); - /// - public static readonly Guid TSATTRID_Font_Style_Overline_Double = new Guid(0xdc46063a, 0xe115, 0x46e3, 0xbc, 0xd8, 0xca, 0x67, 0x72, 0xaa, 0x95, 0xb4); - /// - public static readonly Guid TSATTRID_Font_Style_Blink = new Guid(0xbfb2c036, 0x7acf, 0x4532, 0xb7, 0x20, 0xb4, 0x16, 0xdd, 0x77, 0x65, 0xa8); - /// - public static readonly Guid TSATTRID_Font_Style_Subscript = new Guid(0x5774fb84,0x389b,0x43bc,0xa7,0x4b,0x15,0x68,0x34,0x7c,0xf0,0xf4); - /// - public static readonly Guid TSATTRID_Font_Style_Superscript = new Guid(0x2ea4993c,0x563c,0x49aa,0x93,0x72,0x0b,0xef,0x09,0xa9,0x25,0x5b); - /// - public static readonly Guid TSATTRID_Font_Style_Color = new Guid(0x857a7a37,0xb8af,0x4e9a,0x81,0xb4,0xac,0xf7,0x00,0xc8,0x41,0x1b); - /// - public static readonly Guid TSATTRID_Font_Style_BackgroundColor = new Guid(0xb50eaa4e, 0x3091, 0x4468, 0x81, 0xdb, 0xd7, 0x9e, 0xa1, 0x90, 0xc7, 0xc7); - - /// - public static readonly Guid TSATTRID_Text = new Guid(0x7edb8e68, 0x81f9, 0x449d, 0xa1, 0x5a, 0x87, 0xa8, 0x38, 0x8f, 0xaa, 0xc0); -*/ - /// - public static readonly Guid TSATTRID_Text_VerticalWriting = new Guid(0x6bba8195,0x046f,0x4ea9,0xb3,0x11,0x97,0xfd,0x66,0xc4,0x27,0x4b); -/* - /// - public static readonly Guid TSATTRID_Text_RightToLeft = new Guid(0xca666e71,0x1b08,0x453d,0xbf,0xdd,0x28,0xe0,0x8c,0x8a,0xaf,0x7a); -*/ - /// - public static readonly Guid TSATTRID_Text_Orientation = new Guid(0x6bab707f,0x8785,0x4c39,0x8b,0x52,0x96,0xf8,0x78,0x30,0x3f,0xfb); -/* - /// - public static readonly Guid TSATTRID_Text_Language = new Guid(0xd8c04ef1,0x5753,0x4c25,0x88,0x87,0x85,0x44,0x3f,0xe5,0xf8,0x19); -*/ - /// - public static readonly Guid TSATTRID_Text_ReadOnly = new Guid(0x85836617,0xde32,0x4afd,0xa5,0x0f,0xa2,0xdb,0x11,0x0e,0x6e,0x4d); -/* - /// - public static readonly Guid TSATTRID_Text_EmbeddedObject = new Guid(0x7edb8e68, 0x81f9, 0x449d, 0xa1, 0x5a, 0x87, 0xa8, 0x38, 0x8f, 0xaa, 0xc0); - /// - public static readonly Guid TSATTRID_Text_Alignment = new Guid(0x139941e6, 0x1767, 0x456d, 0x93, 0x8e, 0x35, 0xba, 0x56, 0x8b, 0x5c, 0xd4); - /// - public static readonly Guid TSATTRID_Text_Alignment_Left = new Guid(0x16ae95d3, 0x6361, 0x43a2, 0x84, 0x95, 0xd0, 0x0f, 0x39, 0x7f, 0x16, 0x93); - /// - public static readonly Guid TSATTRID_Text_Alignment_Right = new Guid(0xb36f0f98, 0x1b9e, 0x4360, 0x86, 0x16, 0x03, 0xfb, 0x08, 0xa7, 0x84, 0x56); - /// - public static readonly Guid TSATTRID_Text_Alignment_Center = new Guid(0xa4a95c16, 0x53bf, 0x4d55, 0x8b, 0x87, 0x4b, 0xdd, 0x8d, 0x42, 0x75, 0xfc); - /// - public static readonly Guid TSATTRID_Text_Alignment_Justify = new Guid(0xed350740, 0xa0f7, 0x42d3, 0x8e, 0xa8, 0xf8, 0x1b, 0x64, 0x88, 0xfa, 0xf0); - /// - public static readonly Guid TSATTRID_Text_Link = new Guid(0x47cd9051, 0x3722, 0x4cd8, 0xb7, 0xc8, 0x4e, 0x17, 0xca, 0x17, 0x59, 0xf5); - /// - public static readonly Guid TSATTRID_Text_Hyphenation = new Guid(0xdadf4525, 0x618e, 0x49eb, 0xb1, 0xa8, 0x3b, 0x68, 0xbd, 0x76, 0x48, 0xe3); - /// - public static readonly Guid TSATTRID_Text_Para = new Guid(0x5edc5822, 0x99dc, 0x4dd6, 0xae, 0xc3, 0xb6, 0x2b, 0xaa, 0x5b, 0x2e, 0x7c); - /// - public static readonly Guid TSATTRID_Text_Para_FirstLineIndent = new Guid(0x07c97a13, 0x7472, 0x4dd8, 0x90, 0xa9, 0x91, 0xe3, 0xd7, 0xe4, 0xf2, 0x9c); - /// - public static readonly Guid TSATTRID_Text_Para_LeftIndent = new Guid(0xfb2848e9, 0x7471, 0x41c9, 0xb6, 0xb3, 0x8a, 0x14, 0x50, 0xe0, 0x18, 0x97); - /// - public static readonly Guid TSATTRID_Text_Para_RightIndent = new Guid(0x2c7f26f9, 0xa5e2, 0x48da, 0xb9, 0x8a, 0x52, 0x0c, 0xb1, 0x65, 0x13, 0xbf); - /// - public static readonly Guid TSATTRID_Text_Para_SpaceAfter = new Guid(0x7b0a3f55, 0x22dc, 0x425f, 0xa4, 0x11, 0x93, 0xda, 0x1d, 0x8f, 0x9b, 0xaa); - /// - public static readonly Guid TSATTRID_Text_Para_SpaceBefore = new Guid(0x8df98589, 0x194a, 0x4601, 0xb2, 0x51, 0x98, 0x65, 0xa3, 0xe9, 0x06, 0xdd); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing = new Guid(0x699b380d, 0x7f8c, 0x46d6, 0xa7, 0x3b, 0xdf, 0xe3, 0xd1, 0x53, 0x8d, 0xf3); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_Single = new Guid(0xed350740, 0xa0f7, 0x42d3, 0x8e, 0xa8, 0xf8, 0x1b, 0x64, 0x88, 0xfa, 0xf0); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_OnePtFive = new Guid(0x0428a021, 0x0397, 0x4b57, 0x9a, 0x17, 0x07, 0x95, 0x99, 0x4c, 0xd3, 0xc5); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_Double = new Guid(0x82fb1805, 0xa6c4, 0x4231, 0xac, 0x12, 0x62, 0x60, 0xaf, 0x2a, 0xba, 0x28); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_AtLeast = new Guid(0xadfedf31, 0x2d44, 0x4434, 0xa5, 0xff, 0x7f, 0x4c, 0x49, 0x90, 0xa9, 0x05); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_Exactly = new Guid(0x3d45ad40, 0x23de, 0x48d7, 0xa6, 0xb3, 0x76, 0x54, 0x20, 0xc6, 0x20, 0xcc); - /// - public static readonly Guid TSATTRID_Text_Para_LineSpacing_Multiple = new Guid(0x910f1e3c, 0xd6d0, 0x4f65, 0x8a, 0x3c, 0x42, 0xb4, 0xb3, 0x18, 0x68, 0xc5); - - /// - public static readonly Guid TSATTRID_List = new Guid(0x436d673b, 0x26f1, 0x4aee, 0x9e, 0x65, 0x8f, 0x83, 0xa4, 0xed, 0x48, 0x84); - /// - public static readonly Guid TSATTRID_List_LevelIndel = new Guid(0x7f7cc899, 0x311f, 0x487b, 0xad, 0x5d, 0xe2, 0xa4, 0x59, 0xe1, 0x2d, 0x42); - /// - public static readonly Guid TSATTRID_List_Type = new Guid(0xae3e665e, 0x4bce, 0x49e3, 0xa0, 0xfe, 0x2d, 0xb4, 0x7d, 0x3a, 0x17, 0xae); - /// - public static readonly Guid TSATTRID_List_Type_Bullet = new Guid(0xbccd77c5, 0x4c4d, 0x4ce2, 0xb1, 0x02, 0x55, 0x9f, 0x3b, 0x2b, 0xfc, 0xea); - /// - public static readonly Guid TSATTRID_List_Type_Arabic = new Guid(0x1338c5d6, 0x98a3, 0x4fa3, 0x9b, 0xd1, 0x7a, 0x60, 0xee, 0xf8, 0xe9, 0xe0); - /// - public static readonly Guid TSATTRID_List_Type_LowerLetter = new Guid(0x96372285, 0xf3cf, 0x491e, 0xa9, 0x25, 0x38, 0x32, 0x34, 0x7f, 0xd2, 0x37); - /// - public static readonly Guid TSATTRID_List_Type_UpperLetter = new Guid(0x7987b7cd, 0xce52, 0x428b, 0x9b, 0x95, 0xa3, 0x57, 0xf6, 0xf1, 0x0c, 0x45); - /// - public static readonly Guid TSATTRID_List_Type_LowerRoman = new Guid(0x90466262, 0x3980, 0x4b8e, 0x93, 0x68, 0x91, 0x8b, 0xd1, 0x21, 0x8a, 0x41); - /// - public static readonly Guid TSATTRID_List_Type_UpperRoman = new Guid(0x0f6ab552, 0x4a80, 0x467f, 0xb2, 0xf1, 0x12, 0x7e, 0x2a, 0xa3, 0xba, 0x9e); - - /// - public static readonly Guid TSATTRID_App = new Guid(0xa80f77df,0x4237,0x40e5,0x84,0x9c,0xb5,0xfa,0x51,0xc1,0x3a,0xc7); - /// - public static readonly Guid TSATTRID_App_IncorrectSpelling = new Guid(0xf42de43c,0xef12,0x430d,0x94,0x4c,0x9a,0x08,0x97,0x0a,0x25,0xd2); - /// - public static readonly Guid TSATTRID_App_IncorrectGrammar = new Guid(0xbd54e398,0xad03,0x4b74,0xb6,0xb3,0x5e,0xdb,0x19,0x99,0x63,0x88); -*/ + public static readonly Guid TSATTRID_Text_VerticalWriting = new Guid(0x6bba8195, 0x046f, 0x4ea9, 0xb3, 0x11, 0x97, 0xfd, 0x66, 0xc4, 0x27, 0x4b); + public static readonly Guid TSATTRID_Text_Orientation = new Guid(0x6bab707f, 0x8785, 0x4c39, 0x8b, 0x52, 0x96, 0xf8, 0x78, 0x30, 0x3f, 0xfb); + public static readonly Guid TSATTRID_Text_ReadOnly = new Guid(0x85836617, 0xde32, 0x4afd, 0xa5, 0x0f, 0xa2, 0xdb, 0x11, 0x0e, 0x6e, 0x4d); public static readonly Guid GUID_SYSTEM_FUNCTIONPROVIDER = new Guid("9a698bb0-0f21-11d3-8df1-00105a2799b5"); - #endregion Constants - - //------------------------------------------------------ - // - // Enums - // - //------------------------------------------------------ - - #region Enums - - /// [Flags] public enum PopFlags { - /// TF_POPF_ALL = 0x0001, } - /// [Flags] public enum CreateContextFlags { // TF_PLAINTEXTTSI is undocumented } - /// - public enum TsGravity - { - /// - TS_GR_BACKWARD = 0, - /// - TS_GR_FORWARD = 1, - }; - - /// - public enum TsShiftDir - { - /// - TS_SD_BACKWARD = 0, - /// - TS_SD_FORWARD = 1, - }; - - /// [Flags] public enum SetTextFlags { - /// - TS_ST_CORRECTION = 0x1, + TS_ST_CORRECTION = 0x1, } - /// [Flags] public enum InsertEmbeddedFlags { - /// - TS_IE_CORRECTION = 0x1, + TS_IE_CORRECTION = 0x1, } - /// [Flags] public enum InsertAtSelectionFlags { - /// - TS_IAS_NOQUERY = 0x1, - /// - TS_IAS_QUERYONLY = 0x2, + TS_IAS_NOQUERY = 0x1, + TS_IAS_QUERYONLY = 0x2, } - /// [Flags] public enum AdviseFlags { - /// - TS_AS_TEXT_CHANGE = 0x01, - /// - TS_AS_SEL_CHANGE = 0x02, - /// - TS_AS_LAYOUT_CHANGE = 0x04, - /// - TS_AS_ATTR_CHANGE = 0x08, - /// - TS_AS_STATUS_CHANGE = 0x10, + TS_AS_TEXT_CHANGE = 0x01, + TS_AS_SEL_CHANGE = 0x02, + TS_AS_LAYOUT_CHANGE = 0x04, + TS_AS_ATTR_CHANGE = 0x08, + TS_AS_STATUS_CHANGE = 0x10, } - /// [Flags] public enum LockFlags { - /// - TS_LF_SYNC = 0x1, - /// - TS_LF_READ = 0x2, - /// - TS_LF_WRITE = 0x4, - /// - TS_LF_READWRITE = 0x6, + TS_LF_SYNC = 0x1, + TS_LF_READ = 0x2, + TS_LF_WRITE = 0x4, + TS_LF_READWRITE = 0x6, } - /// [Flags] public enum DynamicStatusFlags { - /// - TS_SD_READONLY = 0x001, - /// - TS_SD_LOADING = 0x002, + TS_SD_READONLY = 0x001, + TS_SD_LOADING = 0x002, } - /// [Flags] public enum StaticStatusFlags { - /// - TS_SS_DISJOINTSEL = 0x001, - /// - TS_SS_REGIONS = 0x002, - /// - TS_SS_TRANSITORY = 0x004, - /// - TS_SS_NOHIDDENTEXT = 0x008, + TS_SS_DISJOINTSEL = 0x001, + TS_SS_REGIONS = 0x002, + TS_SS_TRANSITORY = 0x004, + TS_SS_NOHIDDENTEXT = 0x008, } - /// [Flags] public enum AttributeFlags { - /// - TS_ATTR_FIND_BACKWARDS = 0x0001, - /// - TS_ATTR_FIND_WANT_OFFSET = 0x0002, - /// - TS_ATTR_FIND_UPDATESTART = 0x0004, - /// - TS_ATTR_FIND_WANT_VALUE = 0x0008, - /// - TS_ATTR_FIND_WANT_END = 0x0010, - /// - TS_ATTR_FIND_HIDDEN = 0x0020, - } - - /// + TS_ATTR_FIND_BACKWARDS = 0x0001, + TS_ATTR_FIND_WANT_OFFSET = 0x0002, + TS_ATTR_FIND_UPDATESTART = 0x0004, + TS_ATTR_FIND_WANT_VALUE = 0x0008, + TS_ATTR_FIND_WANT_END = 0x0010, + TS_ATTR_FIND_HIDDEN = 0x0020, + } + [Flags] public enum GetPositionFromPointFlags { - /// GXFPF_ROUND_NEAREST = 0x1, - /// - GXFPF_NEAREST = 0x2, + GXFPF_NEAREST = 0x2, } - /// public enum TsActiveSelEnd { - /// TS_AE_NONE = 0, - /// TS_AE_START = 1, - /// TS_AE_END = 2, } - /// public enum TsRunType { - /// TS_RT_PLAIN = 0, - /// TS_RT_HIDDEN = 1, - /// TS_RT_OPAQUE = 2, } - /// [Flags] public enum OnTextChangeFlags { - /// - TS_TC_CORRECTION = 0x1, + TS_TC_CORRECTION = 0x1, } - /// public enum TsLayoutCode - { - /// + { TS_LC_CREATE = 0, - /// TS_LC_CHANGE = 1, - /// TS_LC_DESTROY = 2 } - /// public enum TfGravity { - /// TF_GR_BACKWARD = 0, - /// TF_GR_FORWARD = 1, }; - /// public enum TfShiftDir { - /// TF_SD_BACKWARD = 0, - /// TF_SD_FORWARD = 1, }; - /// public enum TfAnchor { - /// TF_ANCHOR_START = 0, - /// TF_ANCHOR_END = 1, } - /// public enum TF_DA_COLORTYPE { - /// - TF_CT_NONE = 0, - /// + TF_CT_NONE = 0, TF_CT_SYSCOLOR = 1, - /// TF_CT_COLORREF = 2 } - /// public enum TF_DA_LINESTYLE { - /// - TF_LS_NONE = 0, - /// - TF_LS_SOLID = 1, - /// - TF_LS_DOT = 2, - /// - TF_LS_DASH = 3, - /// + TF_LS_NONE = 0, + TF_LS_SOLID = 1, + TF_LS_DOT = 2, + TF_LS_DASH = 3, TF_LS_SQUIGGLE = 4 } - - /// + public enum TF_DA_ATTR_INFO { - /// - TF_ATTR_INPUT = 0, - /// - TF_ATTR_TARGET_CONVERTED = 1, - /// - TF_ATTR_CONVERTED = 2, - /// - TF_ATTR_TARGET_NOTCONVERTED = 3, - /// - TF_ATTR_INPUT_ERROR = 4, - /// - TF_ATTR_FIXEDCONVERTED = 5, - /// - TF_ATTR_OTHER = -1 - } - - /// - [Flags] - public enum GetRenderingMarkupFlags - { - /// - TF_GRM_INCLUDE_PROPERTY = 1 + TF_ATTR_INPUT = 0, + TF_ATTR_TARGET_CONVERTED = 1, + TF_ATTR_CONVERTED = 2, + TF_ATTR_TARGET_NOTCONVERTED = 3, + TF_ATTR_INPUT_ERROR = 4, + TF_ATTR_FIXEDCONVERTED = 5, + TF_ATTR_OTHER = -1 } - /// [Flags] - public enum FindRenderingMarkupFlags + public enum ConversionModeFlags { - /// - TF_FRM_INCLUDE_PROPERTY = 0x1, - /// - TF_FRM_BACKWARD = 0x2, - /// - TF_FRM_NO_CONTAINED = 0x4, - /// - TF_FRM_NO_RANGE = 0x8 + TF_CONVERSIONMODE_ALPHANUMERIC = 0x0000, + TF_CONVERSIONMODE_NATIVE = 0x0001, + TF_CONVERSIONMODE_KATAKANA = 0x0002, + TF_CONVERSIONMODE_FULLSHAPE = 0x0008, + TF_CONVERSIONMODE_ROMAN = 0x0010, + TF_CONVERSIONMODE_CHARCODE = 0x0020, + TF_CONVERSIONMODE_NOCONVERSION = 0x0100, + TF_CONVERSIONMODE_EUDC = 0x0200, + TF_CONVERSIONMODE_SYMBOL = 0x0400, + TF_CONVERSIONMODE_FIXED = 0x0800, } - /// - [Flags] - public enum ConversionModeFlags - { - /// - TF_CONVERSIONMODE_ALPHANUMERIC = 0x0000, - /// - TF_CONVERSIONMODE_NATIVE = 0x0001, - /// - TF_CONVERSIONMODE_KATAKANA = 0x0002, - /// - TF_CONVERSIONMODE_FULLSHAPE = 0x0008, - /// - TF_CONVERSIONMODE_ROMAN = 0x0010, - /// - TF_CONVERSIONMODE_CHARCODE = 0x0020, - /// - TF_CONVERSIONMODE_NOCONVERSION = 0x0100, - /// - TF_CONVERSIONMODE_EUDC = 0x0200, - /// - TF_CONVERSIONMODE_SYMBOL = 0x0400, - /// - TF_CONVERSIONMODE_FIXED = 0x0800, - } - - /// [Flags] public enum SentenceModeFlags { - /// - TF_SENTENCEMODE_NONE = 0x0000, - /// - TF_SENTENCEMODE_PLAURALCLAUSE = 0x0001, - /// - TF_SENTENCEMODE_SINGLECONVERT = 0x0002, - /// - TF_SENTENCEMODE_AUTOMATIC = 0x0004, - /// - TF_SENTENCEMODE_PHRASEPREDICT = 0x0008, - /// - TF_SENTENCEMODE_CONVERSATION = 0x0010, + TF_SENTENCEMODE_NONE = 0x0000, + TF_SENTENCEMODE_PLAURALCLAUSE = 0x0001, + TF_SENTENCEMODE_SINGLECONVERT = 0x0002, + TF_SENTENCEMODE_AUTOMATIC = 0x0004, + TF_SENTENCEMODE_PHRASEPREDICT = 0x0008, + TF_SENTENCEMODE_CONVERSATION = 0x0010, } - /// - public enum TfCandidateResult + public enum TfCandidateResult { CAND_FINALIZED = 0x0, - CAND_SELECTED = 0x1, - CAND_CANCELED = 0x2, + CAND_SELECTED = 0x1, + CAND_CANCELED = 0x2, } - #endregion Enums - - //------------------------------------------------------ - // - // Structs - // - //------------------------------------------------------ - #region Structs - - /// [StructLayout(LayoutKind.Sequential)] public struct POINT { - /// - /// - /// public int x; - /// - /// - /// public int y; public POINT(int x, int y) @@ -738,161 +278,99 @@ public POINT(int x, int y) } } - /// [StructLayout(LayoutKind.Sequential)] - public struct RECT + public struct RECT { - /// public int left; - /// public int top; - /// public int right; - /// public int bottom; - -/* - /// - public static RECT FromXYWH(int x, int y, int width, int height) - { - return new RECT(x, y, x + width, y + height); - } - - /// - public bool IsEmpty - { - get - { - return left >= right || top >= bottom; - } - } -*/ } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_STATUS { - /// public DynamicStatusFlags dynamicFlags; - /// public StaticStatusFlags staticFlags; } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_SELECTIONSTYLE { - /// public TsActiveSelEnd ase; - /// - [MarshalAs(UnmanagedType.Bool)] + [MarshalAs(UnmanagedType.Bool)] public bool interimChar; } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_SELECTION_ACP { - /// public int start; - /// public int end; - /// public TS_SELECTIONSTYLE style; } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_RUNINFO { - /// public int count; - /// public TsRunType type; } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_TEXTCHANGE { - /// public int start; - /// public int oldEnd; - /// public int newEnd; } - /// [StructLayout(LayoutKind.Sequential)] public struct TS_ATTRVAL { - /// public Guid attributeId; - - /// public Int32 overlappedId; // Let val's offset 0x18. Though default pack is 8... - /// - public Int32 reserved; + public Int32 reserved; - /// [MarshalAs(UnmanagedType.Struct)] public NativeMethods.VARIANT val; } - /// [StructLayout(LayoutKind.Sequential)] public struct TF_PRESERVEDKEY { - /// public int vKey; - /// public int modifiers; } - /// [StructLayout(LayoutKind.Sequential)] public struct TF_DA_COLOR { - /// public TF_DA_COLORTYPE type; - /// public Int32 indexOrColorRef; // TF_CT_SYSCOLOR/TF_CT_COLORREF union } - - /// + [StructLayout(LayoutKind.Sequential)] public struct TF_DISPLAYATTRIBUTE { - /// - public TF_DA_COLOR crText; - /// - public TF_DA_COLOR crBk; - /// + public TF_DA_COLOR crText; + public TF_DA_COLOR crBk; public TF_DA_LINESTYLE lsStyle; - /// [MarshalAs(UnmanagedType.Bool)] - public bool fBoldLine; - /// - public TF_DA_COLOR crLine; - /// - public TF_DA_ATTR_INFO bAttr; + public bool fBoldLine; + public TF_DA_COLOR crLine; + public TF_DA_ATTR_INFO bAttr; } - /// [StructLayout(LayoutKind.Sequential)] public struct TF_RENDERINGMARKUP { - /// public ITfRange range; - /// public TF_DISPLAYATTRIBUTE tfDisplayAttr; } - /// [StructLayout(LayoutKind.Sequential)] internal struct TF_LANGUAGEPROFILE { @@ -904,15 +382,6 @@ internal struct TF_LANGUAGEPROFILE internal Guid guidProfile; // profile description } - - #endregion Structs - - //------------------------------------------------------ - // - // Interfaces - // - //------------------------------------------------------ - #region Interfaces [ComImport] @@ -926,7 +395,6 @@ internal interface ITfMessagePump // [in] UINT wMsgFilterMax, // [in] UINT wRemoveMsg, // [out] BOOL *pfResult); - /// void PeekMessageA(ref System.Windows.Interop.MSG msg, IntPtr hwnd, int msgFilterMin, @@ -939,7 +407,6 @@ void PeekMessageA(ref System.Windows.Interop.MSG msg, // [in] UINT wMsgFilterMin, // [in] UINT wMsgFilterMax, // [out] BOOL *pfResult); - /// void GetMessageA(ref System.Windows.Interop.MSG msg, IntPtr hwnd, int msgFilterMin, @@ -952,7 +419,6 @@ void GetMessageA(ref System.Windows.Interop.MSG msg, // [in] UINT wMsgFilterMax, // [in] UINT wRemoveMsg, // [out] BOOL *pfResult); - /// void PeekMessageW(ref System.Windows.Interop.MSG msg, IntPtr hwnd, int msgFilterMin, @@ -965,7 +431,6 @@ void PeekMessageW(ref System.Windows.Interop.MSG msg, // [in] UINT wMsgFilterMin, // [in] UINT wMsgFilterMax, // [out] BOOL *pfResult); - /// void GetMessageW(ref System.Windows.Interop.MSG msg, IntPtr hwnd, int msgFilterMin, @@ -973,59 +438,49 @@ void GetMessageW(ref System.Windows.Interop.MSG msg, out int result); }; - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("e2449660-9542-11d2-bf46-00105a2799b5")] public interface ITfProperty /* : ITfReadOnlyProperty */ { - /// //HRESULT GetType([out] GUID *pguid); void GetType(out Guid type); - /// //HRESULT EnumRanges([in] TfEditCookie ec, // [out] IEnumTfRanges **ppEnum, // [in] ITfRange *pTargetRange); [PreserveSig] int EnumRanges(int editcookie, out IEnumTfRanges ranges, ITfRange targetRange); - /// //HRESULT GetValue([in] TfEditCookie ec, // [in] ITfRange *pRange, // [out] VARIANT *pvarValue); void GetValue(int editCookie, ITfRange range, out object value); - /// //HRESULT GetContext([out] ITfContext **ppContext); void GetContext(out ITfContext context); - /// //HRESULT FindRange([in] TfEditCookie ec, // [in] ITfRange *pRange, // [out] ITfRange **ppRange, // [in] TfAnchor aPos); void FindRange(int editCookie, ITfRange inRange, out ITfRange outRange, TfAnchor position); - /// //HRESULT SetValueStore([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] ITfPropertyStore *pPropStore); void stub_SetValueStore(); - /// //HRESULT SetValue([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] const VARIANT *pvarValue); void SetValue(int editCookie, ITfRange range, object value); - /// //HRESULT Clear([in] TfEditCookie ec, // [in] ITfRange *pRange); void Clear(int editCookie, ITfRange range); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e7fd-2021-11d2-93e0-0060b067b86e")] @@ -1037,14 +492,14 @@ public interface ITfContext //const DWORD TF_ES_READWRITE = 0x6; //const DWORD TF_ES_ASYNC = 0x8; - /// + //HRESULT RequestEditSession([in] TfClientId tid, // [in] ITfEditSession *pes, // [in] DWORD dwFlags, // [out] HRESULT *phrSession); int stub_RequestEditSession(); - /// + //HRESULT InWriteSession([in] TfClientId tid, // [out] BOOL *pfWriteSession); void InWriteSession(int clientId, [MarshalAs(UnmanagedType.Bool)] out bool inWriteSession); @@ -1065,7 +520,7 @@ public interface ITfContext //const ULONG TF_DEFAULT_SELECTION = TS_DEFAULT_SELECTION; - /// + //HRESULT GetSelection([in] TfEditCookie ec, // [in] ULONG ulIndex, // [in] ULONG ulCount, @@ -1073,7 +528,7 @@ public interface ITfContext // [out] ULONG *pcFetched); void stub_GetSelection(); - /// + //HRESULT SetSelection([in] TfEditCookie ec, // [in] ULONG ulCount, // [in, size_is(ulCount)] const TF_SELECTION *pSelection); @@ -1081,10 +536,10 @@ public interface ITfContext //HRESULT GetStart([in] TfEditCookie ec, // [out] ITfRange **ppStart); - /// + void GetStart(int ec, out ITfRange range); - /// + //HRESULT GetEnd([in] TfEditCookie ec, // [out] ITfRange **ppEnd); void stub_GetEnd(); @@ -1099,15 +554,15 @@ public interface ITfContext //typedef [uuid(bc7d979a-846a-444d-afef-0a9bfa82b961)] TS_STATUS TF_STATUS; - /// + //HRESULT GetActiveView([out] ITfContextView **ppView); void stub_GetActiveView(); - /// + //HRESULT EnumViews([out] IEnumTfContextViews **ppEnum); void stub_EnumViews(); - - /// + + //HRESULT GetStatus([out] TF_STATUS *pdcs); void stub_GetStatus(); @@ -1115,12 +570,12 @@ public interface ITfContext // [out] ITfProperty **ppProp); void GetProperty(ref Guid guid, out ITfProperty property); - /// + //HRESULT GetAppProperty([in] REFGUID guidProp, // [out] ITfReadOnlyProperty **ppProp); void stub_GetAppProperty(); - /// + //HRESULT TrackProperties([in, size_is(cProp)] const GUID **prgProp, // [in] ULONG cProp, // [in, size_is(cAppProp)] const GUID **prgAppProp, @@ -1128,28 +583,26 @@ public interface ITfContext // [out] ITfReadOnlyProperty **ppProperty); void stub_TrackProperties(); - /// + //HRESULT EnumProperties([out] IEnumTfProperties **ppEnum); void stub_EnumProperties(); - /// + //HRESULT GetDocumentMgr([out] ITfDocumentMgr **ppDm); void stub_GetDocumentMgr(); - /// + //HRESULT CreateRangeBackup([in] TfEditCookie ec, // [in] ITfRange *pRange, // [out] ITfRangeBackup **ppBackup); void stub_CreateRangeBackup(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e7f4-2021-11d2-93e0-0060b067b86e")] public interface ITfDocumentMgr { - // //HRESULT CreateContext([in] TfClientId tidOwner, // [in] DWORD dwFlags, // [in, unique] IUnknown *punk, @@ -1157,28 +610,22 @@ public interface ITfDocumentMgr // [out] TfEditCookie *pecTextStore); void CreateContext(int clientId, CreateContextFlags flags, [MarshalAs(UnmanagedType.Interface)] object obj, out ITfContext context, out int editCookie); - // //HRESULT Push([in] ITfContext *pic); void Push(ITfContext context); - // //HRESULT Pop([in] DWORD dwFlags); void Pop(PopFlags flags); - /// //HRESULT GetTop([out] ITfContext **ppic); void GetTop(out ITfContext context); //HRESULT GetBase([out] ITfContext **ppic); - /// void GetBase(out ITfContext context); - /// //HRESULT EnumContexts([out] IEnumTfContexts **ppEnum); void EnumContexts([MarshalAs(UnmanagedType.Interface)] out /*IEnumTfContexts*/ object enumContexts); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e808-2021-11d2-93e0-0060b067b86e")] @@ -1186,123 +633,93 @@ public interface IEnumTfDocumentMgrs { } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("101d6610-0990-11d3-8df0-00105a2799b5")] public interface ITfFunctionProvider { - /// + //HRESULT GetType([out] GUID *pguid); void GetType(out Guid guid); - /// + //HRESULT GetDescription([out] BSTR *pbstrDesc); void GetDescription([MarshalAs(UnmanagedType.BStr)] out string desc); // HRESULT GetFunction([in] REFGUID rguid, // [in] REFIID riid, // [out, iid_is(riid)] IUnknown **ppunk); - /// + [PreserveSig] int GetFunction(ref Guid guid, ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out object obj); } - /// - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("db593490-098f-11d3-8df0-00105a2799b5")] - public interface ITfFunction - { - /// - //HRESULT GetDisplayName([out] BSTR *pbstrName); - void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName ); - } - - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("581f317e-fd9d-443f-b972-ed00467c5d40")] public interface ITfCandidateString { // HRESULT GetString([out] BSTR *pbstr); - /// - void GetString([MarshalAs(UnmanagedType.BStr)] out string funcName ); + void GetString([MarshalAs(UnmanagedType.BStr)] out string funcName); - /// // HRESULT GetIndex([out] ULONG *pnIndex); - void GetIndex(out int nIndex ); + void GetIndex(out int nIndex); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("a3ad50fb-9bdb-49e3-a843-6c76520fbf5d")] public interface ITfCandidateList { - /// // HRESULT EnumCandidates([out] IEnumTfCandidates **ppEnum); void EnumCandidates(out object enumCand); // HRESULT GetCandidate([in] ULONG nIndex, // [out] ITfCandidateString **ppCand); - /// void GetCandidate(int nIndex, out ITfCandidateString candstring); // HRESULT GetCandidateNum([out] ULONG *pnCnt); - /// void GetCandidateNum(out int nCount); - // HRESULT SetResult([in] ULONG nIndex, // [in] TfCandidateResult imcr); - /// void SetResult(int nIndex, TfCandidateResult result); } - - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("4cea93c0-0a58-11d3-8df0-00105a2799b5")] public interface ITfFnReconversion { - /// // HRESULT GetDisplayName([out] BSTR *pbstrName); - void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName ); + void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName); // HRESULT QueryRange([in] ITfRange *pRange, // [in, out, unique] ITfRange **ppNewRange, // [out] BOOL *pfConvertable); - /// [PreserveSig] - int QueryRange(ITfRange range, - out ITfRange newRange, + int QueryRange(ITfRange range, + out ITfRange newRange, [MarshalAs(UnmanagedType.Bool)] out bool isConvertable); // HRESULT GetReconversion([in] ITfRange *pRange, // [out] ITfCandidateList **ppCandList); - /// [PreserveSig] int GetReconversion(ITfRange range, out ITfCandidateList candList); - /// /// HRESULT Reconvert([in] ITfRange *pRange); [PreserveSig] int Reconvert(ITfRange range); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("88f567c6-1757-49f8-a1b2-89234c1eeff9")] public interface ITfFnConfigure { - /// // HRESULT GetDisplayName([out] BSTR *pbstrName); - void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName ); + void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName); - /// // HRESULT Show([in] HWND hwndParent, // [in] LANGID langid, // [in] REFGUID rguidProfile); @@ -1310,99 +727,25 @@ public interface ITfFnConfigure int Show(IntPtr hwndParent, short langid, ref Guid guidProfile); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("bb95808a-6d8f-4bca-8400-5390b586aedf")] public interface ITfFnConfigureRegisterWord { - /// // HRESULT GetDisplayName([out] BSTR *pbstrName); - void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName ); + void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName); - /// // HRESULT Show([in] HWND hwndParent, // [in] LANGID langid, // [in] REFGUID rguidProfile, // [in, unique] BSTR bstrRegistered); [PreserveSig] - int Show(IntPtr hwndParent, - short langid, + int Show(IntPtr hwndParent, + short langid, ref Guid guidProfile, - [MarshalAs(UnmanagedType.BStr)] string bstrRegistered ); + [MarshalAs(UnmanagedType.BStr)] string bstrRegistered); } - - #region SpeechCommands - -#if UNUSED - /// - // - // Speech command provider and related interfaces - // - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("8c5dac4f-083c-4b85-a4c9-71746048adca")] - public interface IEnumSpeechCommands - { - /// - //HRESULT Clone([out] IEnumSpeechCommands **ppEnum); - void Clone([MarshalAs(UnmanagedType.Interface)] out object obj); - - /// - //HRESULT Next([in] ULONG ulCount, - // [out, size_is(ulCount), length_is(*pcFetched)] WCHAR **pSpCmds, - // [out] ULONG *pcFetched); - [PreserveSig] - int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] string [] spCmds, out int fetched); - - /// - //HRESULT Reset(); - void Reset(); - - /// - //HRESULT Skip(ULONG ulCount); - [PreserveSig] - int Skip(int count); - } - - /// - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("38e09d4c-586d-435a-b592-c8a86691dec6")] - public interface ISpeechCommandProvider - { - /// - //HRESULT EnumSpeechCommands([in] LANGID langid, [out] IEnumSpeechCommands **ppEnum); - void EnumSpeechCommands(short langid, [MarshalAs(UnmanagedType.Interface)] out object obj); - - /// - //HRESULT ProcessCommand([in, size_is(cch)] const WCHAR *pszCommand, - // [in] ULONG cch, - // [in] LANGID langid); - void ProcessCommand([In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] char []command, int cch, short langid); - } - - /// - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("fca6c349-a12f-43a3-8dd6-5a5a4282577b")] - public interface ITfFnCustomSpeechCommand - { - /// - // ITfFunction method - void GetDisplayName([MarshalAs(UnmanagedType.BStr)] out string funcName ); - - /// - //HRESULT SetSpeechCommandProvider([in] ISpeechCommandProvider *pspcmdProvider); - void SetSpeechCommandProvider([MarshalAs(UnmanagedType.Interface)] object obj /*ISpeechCommandProvider spcmdProvider*/); - } - -#endif // UNUSED - - #endregion SpeechCommands - - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("e4b24db0-0990-11d3-8df0-00105a2799b5")] @@ -1410,34 +753,28 @@ public interface IEnumTfFunctionProviders { } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("bb08f7a9-607a-4384-8623-056892b64371")] public interface ITfCompartment { - // //HRESULT SetValue([in] TfClientId tid, // [in] const VARIANT *pvarValue); [PreserveSig] int SetValue(int tid, ref object varValue); - - /// + void GetValue(out object varValue); } - - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("743abd5f-f26d-48df-8cc5-238492419b64")] public interface ITfCompartmentEventSink { - /// //HRESULT OnChange([in] REFGUID rguid); void OnChange(ref Guid rguid); } - - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("7dcf57ac-18ad-438b-824d-979bffb74b7c")] @@ -1448,97 +785,79 @@ public interface ITfCompartmentMgr // [out] ITfCompartment **ppcomp); void GetCompartment(ref Guid guid, out ITfCompartment comp); - /// //HRESULT ClearCompartment([in] TfClientId tid, // [in] REFGUID rguid); void ClearCompartment(int tid, Guid guid); - /// //HRESULT EnumCompartments([out] IEnumGUID **ppEnum); void EnumCompartments(out object /*IEnumGUID*/ enumGuid); } - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e801-2021-11d2-93e0-0060b067b86e")] internal interface ITfThreadMgr { - // //HRESULT Activate([out] TfClientId *ptid); void Activate(out int clientId); - // //HRESULT Deactivate(); void Deactivate(); - // //HRESULT CreateDocumentMgr([out] ITfDocumentMgr **ppdim); void CreateDocumentMgr(out ITfDocumentMgr docMgr); - /// //HRESULT EnumDocumentMgrs([out] IEnumTfDocumentMgrs **ppEnum); void EnumDocumentMgrs(out IEnumTfDocumentMgrs enumDocMgrs); - /// //HRESULT GetFocus([out] ITfDocumentMgr **ppdimFocus); void GetFocus(out ITfDocumentMgr docMgr); - // //HRESULT SetFocus([in] ITfDocumentMgr *pdimFocus); void SetFocus(ITfDocumentMgr docMgr); - /// //HRESULT AssociateFocus([in] HWND hwnd, // [in, unique] ITfDocumentMgr *pdimNew, // [out] ITfDocumentMgr **ppdimPrev); void AssociateFocus(IntPtr hwnd, ITfDocumentMgr newDocMgr, out ITfDocumentMgr prevDocMgr); - /// //HRESULT IsThreadFocus([out] BOOL *pfThreadFocus); void IsThreadFocus([MarshalAs(UnmanagedType.Bool)] out bool isFocus); //HRESULT GetFunctionProvider([in] REFCLSID clsid, // [out] ITfFunctionProvider **ppFuncProv); - /// [PreserveSig] int GetFunctionProvider(ref Guid classId, out ITfFunctionProvider funcProvider); - /// //HRESULT EnumFunctionProviders([out] IEnumTfFunctionProviders **ppEnum); void EnumFunctionProviders(out IEnumTfFunctionProviders enumProviders); //HRESULT GetGlobalCompartment([out] ITfCompartmentMgr **ppCompMgr); - /// void GetGlobalCompartment(out ITfCompartmentMgr compartmentMgr); } - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("28888fe3-c2a0-483a-a3ea-8cb1ce51ff3d")] public interface ITextStoreACP { - /// //HRESULT AdviseSink([in] REFIID riid, // [in, iid_is(riid)] IUnknown *punk, // [in] DWORD dwMask); void AdviseSink(ref Guid riid, [MarshalAs(UnmanagedType.Interface)] object obj, AdviseFlags flags); - /// //HRESULT UnadviseSink([in] IUnknown *punk); void UnadviseSink([MarshalAs(UnmanagedType.Interface)] object obj); - - /// + //HRESULT RequestLock([in] DWORD dwLockFlags, // [out] HRESULT *phrSession); void RequestLock(LockFlags flags, out int hrSession); - /// //HRESULT GetStatus([out] TS_STATUS *pdcs); void GetStatus(out TS_STATUS status); - /// //HRESULT QueryInsert([in] LONG acpTestStart, // [in] LONG acpTestEnd, // [in] ULONG cch, @@ -1546,19 +865,16 @@ public interface ITextStoreACP // [out] LONG *pacpResultEnd); void QueryInsert(int start, int end, int cch, out int startResult, out int endResult); - /// //HRESULT GetSelection([in] ULONG ulIndex, // [in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetched)] TS_SELECTION_ACP *pSelection, // [out] ULONG *pcFetched); - void GetSelection(int index, int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] TS_SELECTION_ACP []selection, out int fetched); + void GetSelection(int index, int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] TS_SELECTION_ACP[] selection, out int fetched); - /// //HRESULT SetSelection([in] ULONG ulCount, // [in, size_is(ulCount)] const TS_SELECTION_ACP *pSelection); - void SetSelection(int count, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] TS_SELECTION_ACP []selection); + void SetSelection(int count, [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] TS_SELECTION_ACP[] selection); - /// //HRESULT GetText([in] LONG acpStart, // [in] LONG acpEnd, // [out, size_is(cchPlainReq), length_is(*pcchPlainRet)] WCHAR *pchPlain, @@ -1569,13 +885,12 @@ public interface ITextStoreACP // [out] ULONG *pcRunInfoRet, // [out] LONG *pacpNext); void GetText(int start, int end, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char []text, - int cchReq, out int charsCopied, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=6)] TS_RUNINFO []runInfo, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] text, + int cchReq, out int charsCopied, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 6)] TS_RUNINFO[] runInfo, int cRunInfoReq, out int cRunInfoRcv, out int nextCp); - /// //HRESULT SetText([in] DWORD dwFlags, // [in] LONG acpStart, // [in] LONG acpEnd, @@ -1583,29 +898,25 @@ void GetText(int start, int end, // [in] ULONG cch, // [out] TS_TEXTCHANGE *pChange); void SetText(SetTextFlags flags, int start, int end, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=4)] char []text, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)] char[] text, int cch, out TS_TEXTCHANGE change); - /// //HRESULT GetFormattedText([in] LONG acpStart, // [in] LONG acpEnd, // [out] IDataObject **ppDataObject); void GetFormattedText(int start, int end, [MarshalAs(UnmanagedType.Interface)] out object obj); - /// //HRESULT GetEmbedded([in] LONG acpPos, // [in] REFGUID rguidService, // [in] REFIID riid, // [out, iid_is(riid)] IUnknown **ppunk); void GetEmbedded(int position, ref Guid guidService, ref Guid riid, [MarshalAs(UnmanagedType.Interface)] out object obj); - /// //HRESULT QueryInsertEmbedded([in] const GUID *pguidService, // [in] const FORMATETC *pFormatEtc, // [out] BOOL *pfInsertable); void QueryInsertEmbedded(ref Guid guidService, IntPtr /*ref Win32.FORMATETC*/ formatEtc, [MarshalAs(UnmanagedType.Bool)] out bool insertable); - /// //HRESULT InsertEmbedded([in] DWORD dwFlags, // [in] LONG acpStart, // [in] LONG acpEnd, @@ -1613,7 +924,6 @@ void SetText(SetTextFlags flags, int start, int end, // [out] TS_TEXTCHANGE *pChange); void InsertEmbedded(InsertEmbeddedFlags flags, int start, int end, [MarshalAs(UnmanagedType.Interface)] object obj, out TS_TEXTCHANGE change); - /// //HRESULT InsertTextAtSelection([in] DWORD dwFlags, // [in, size_is(cch)] const WCHAR *pchText, // [in] ULONG cch, @@ -1621,11 +931,10 @@ void SetText(SetTextFlags flags, int start, int end, // [out] LONG *pacpEnd, // [out] TS_TEXTCHANGE *pChange); void InsertTextAtSelection(InsertAtSelectionFlags flags, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] char []text, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] char[] text, int cch, out int start, out int end, out TS_TEXTCHANGE change); - /// //HRESULT InsertEmbeddedAtSelection([in] DWORD dwFlags, // [in] IDataObject *pDataObject, // [out] LONG *pacpStart, @@ -1634,34 +943,30 @@ void InsertTextAtSelection(InsertAtSelectionFlags flags, void InsertEmbeddedAtSelection(InsertAtSelectionFlags flags, [MarshalAs(UnmanagedType.Interface)] object obj, out int start, out int end, out TS_TEXTCHANGE change); - /// //HRESULT RequestSupportedAttrs([in] DWORD dwFlags, // [in] ULONG cFilterAttrs, // [in, size_is(cFilterAttrs), unique] const TS_ATTRID *paFilterAttrs); [PreserveSig] int RequestSupportedAttrs(AttributeFlags flags, int count, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] Guid []filterAttributes); + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] filterAttributes); - /// //HRESULT RequestAttrsAtPosition([in] LONG acpPos, // [in] ULONG cFilterAttrs, // [in, size_is(cFilterAttrs), unique] const TS_ATTRID *paFilterAttrs, // [in] DWORD dwFlags); [PreserveSig] int RequestAttrsAtPosition(int position, int count, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] Guid []filterAttributes, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] filterAttributes, AttributeFlags flags); - /// //HRESULT RequestAttrsTransitioningAtPosition([in] LONG acpPos, // [in] ULONG cFilterAttrs, // [in, size_is(cFilterAttrs), unique] const TS_ATTRID *paFilterAttrs, // [in] DWORD dwFlags); void RequestAttrsTransitioningAtPosition(int position, int count, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=1)] Guid []filterAttributes, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 1)] Guid[] filterAttributes, AttributeFlags flags); - /// //HRESULT FindNextAttrTransition([in] LONG acpStart, // [in] LONG acpHalt, // [in] ULONG cFilterAttrs, @@ -1671,32 +976,27 @@ void RequestAttrsTransitioningAtPosition(int position, int count, // [out] BOOL *pfFound, // [out] LONG *plFoundOffset); void FindNextAttrTransition(int start, int halt, int count, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] Guid []filterAttributes, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] Guid[] filterAttributes, AttributeFlags flags, out int acpNext, [MarshalAs(UnmanagedType.Bool)] out bool found, out int foundOffset); - /// //HRESULT RetrieveRequestedAttrs([in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetched)] TS_ATTRVAL *paAttrVals, // [out] ULONG *pcFetched); void RetrieveRequestedAttrs(int count, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=0)] TS_ATTRVAL []attributeVals, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] TS_ATTRVAL[] attributeVals, out int countFetched); - /// //HRESULT GetEnd([out] LONG *pacp); void GetEnd(out int end); - /// //HRESULT GetActiveView([out] TsViewCookie *pvcView); void GetActiveView(out int viewCookie); - /// //HRESULT GetACPFromPoint([in] TsViewCookie vcView, // [in] const POINT *ptScreen, // [in] DWORD dwFlags, [out] LONG *pacp); void GetACPFromPoint(int viewCookie, ref POINT point, GetPositionFromPointFlags flags, out int position); - /// //HRESULT GetTextExt([in] TsViewCookie vcView, // [in] LONG acpStart, // [in] LONG acpEnd, @@ -1704,345 +1004,279 @@ void RetrieveRequestedAttrs(int count, // [out] BOOL *pfClipped); void GetTextExt(int viewCookie, int start, int end, out RECT rect, [MarshalAs(UnmanagedType.Bool)] out bool clipped); - /// //HRESULT GetScreenExt([in] TsViewCookie vcView, // [out] RECT *prc); void GetScreenExt(int viewCookie, out RECT rect); - /// //HRESULT GetWnd([in] TsViewCookie vcView, // [out] HWND *phwnd); void GetWnd(int viewCookie, out IntPtr hwnd); }; - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("22d44c94-a419-4542-a272-ae26093ececf")] public interface ITextStoreACPSink { - /// + //HRESULT OnTextChange([in] DWORD dwFlags, // [in] const TS_TEXTCHANGE *pChange); void OnTextChange(OnTextChangeFlags flags, ref TS_TEXTCHANGE change); - /// //HRESULT OnSelectionChange(); void OnSelectionChange(); - /// //HRESULT OnLayoutChange([in] TsLayoutCode lcode, [in] TsViewCookie vcView); void OnLayoutChange(TsLayoutCode lcode, int viewCookie); - /// //HRESULT OnStatusChange([in] DWORD dwFlags); void OnStatusChange(DynamicStatusFlags flags); - /// //HRESULT OnAttrsChange([in] LONG acpStart, // [in] LONG acpEnd, // [in] ULONG cAttrs, // [in, size_is(cAttrs)] const TS_ATTRID *paAttrs); void OnAttrsChange(int start, int end, int count, Guid[] attributes); - /// //HRESULT OnLockGranted([in] DWORD dwLockFlags); [PreserveSig] int OnLockGranted(LockFlags flags); - /// //HRESULT OnStartEditTransaction(); void OnStartEditTransaction(); - /// //HRESULT OnEndEditTransaction(); void OnEndEditTransaction(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("c0f1db0c-3a20-405c-a303-96b6010a885f")] public interface ITfThreadFocusSink { - /// //HRESULT OnSetThreadFocus(); void OnSetThreadFocus(); - /// //HRESULT OnKillThreadFocus(); void OnKillThreadFocus(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("4ea48a35-60ae-446f-8fd6-e6a8d82459f7")] public interface ITfSource { - // //HRESULT AdviseSink([in] REFIID riid, // [in, iid_is(riid)] IUnknown *punk, // [out] DWORD *pdwCookie); void AdviseSink(ref Guid riid, [MarshalAs(UnmanagedType.Interface)] object obj, out int cookie); //HRESULT UnadviseSink([in] DWORD dwCookie); - /// void UnadviseSink(int cookie); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e7f0-2021-11d2-93e0-0060b067b86e")] public interface ITfKeystrokeMgr { - /// //HRESULT AdviseKeyEventSink([in] TfClientId tid, // [in] ITfKeyEventSink *pSink, // [in] BOOL fForeground); void AdviseKeyEventSink(int clientId, [MarshalAs(UnmanagedType.Interface)] object obj/*ITfKeyEventSink sink*/, [MarshalAs(UnmanagedType.Bool)] bool fForeground); - /// //HRESULT UnadviseKeyEventSink([in] TfClientId tid); void UnadviseKeyEventSink(int clientId); - /// //HRESULT GetForeground([out] CLSID *pclsid); void GetForeground(out Guid clsid); - // //HRESULT TestKeyDown([in] WPARAM wParam, // [in] LPARAM lParam, // [out] BOOL *pfEaten); // int should be ok here, bit fields are well defined for this call as 32 bit, no pointers void TestKeyDown(int wParam, int lParam, [MarshalAs(UnmanagedType.Bool)] out bool eaten); - // //HRESULT TestKeyUp([in] WPARAM wParam, // [in] LPARAM lParam, // [out] BOOL *pfEaten); // int should be ok here, bit fields are well defined for this call as 32 bit, no pointers void TestKeyUp(int wParam, int lParam, [MarshalAs(UnmanagedType.Bool)] out bool eaten); - // //HRESULT KeyDown([in] WPARAM wParam, // [in] LPARAM lParam, // [out] BOOL *pfEaten); // int should be ok here, bit fields are well defined for this call as 32 bit, no pointers void KeyDown(int wParam, int lParam, [MarshalAs(UnmanagedType.Bool)] out bool eaten); - // //HRESULT KeyUp([in] WPARAM wParam, // [in] LPARAM lParam, // [out] BOOL *pfEaten); // int should be ok here, bit fields are well defined for this call as 32 bit, no pointers void KeyUp(int wParam, int lParam, [MarshalAs(UnmanagedType.Bool)] out bool eaten); - /// //HRESULT GetPreservedKey([in] ITfContext *pic, // [in] const TF_PRESERVEDKEY *pprekey, // [out] GUID *pguid); void GetPreservedKey(ITfContext context, ref TF_PRESERVEDKEY key, out Guid guid); - /// //HRESULT IsPreservedKey([in] REFGUID rguid, // [in] const TF_PRESERVEDKEY *pprekey, // [out] BOOL *pfRegistered); void IsPreservedKey(ref Guid guid, ref TF_PRESERVEDKEY key, [MarshalAs(UnmanagedType.Bool)] out bool registered); - /// //HRESULT PreserveKey([in] TfClientId tid, // [in] REFGUID rguid, // [in] const TF_PRESERVEDKEY *prekey, // [in, size_is(cchDesc)] const WCHAR *pchDesc, // [in] ULONG cchDesc); void PreserveKey(int clientId, ref Guid guid, ref TF_PRESERVEDKEY key, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=4)] char []desc, int descCount); + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 4)] char[] desc, int descCount); - /// //HRESULT UnpreserveKey([in] REFGUID rguid, // [in] const TF_PRESERVEDKEY *pprekey); void UnpreserveKey(ref Guid guid, ref TF_PRESERVEDKEY key); - /// //HRESULT SetPreservedKeyDescription([in] REFGUID rguid, // [in, size_is(cchDesc)] const WCHAR *pchDesc, // [in] ULONG cchDesc); void SetPreservedKeyDescription(ref Guid guid, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] char []desc, int descCount); + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] char[] desc, int descCount); - /// //HRESULT GetPreservedKeyDescription([in] REFGUID rguid, // [out] BSTR *pbstrDesc); void GetPreservedKeyDescription(ref Guid guid, [MarshalAs(UnmanagedType.BStr)] out string desc); - /// //HRESULT SimulatePreservedKey([in] ITfContext *pic, // [in] REFGUID rguid, // [out] BOOL *pfEaten); void SimulatePreservedKey(ITfContext context, ref Guid guid, [MarshalAs(UnmanagedType.Bool)] out bool eaten); }; - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e7ff-2021-11d2-93e0-0060b067b86e")] public interface ITfRange { - //const DWORD TF_HF_OBJECT = 1; // halt shift for TF_CHAR_EMBEDDED - //const DWORD TF_TF_MOVESTART = 1; // update start anchor - //const DWORD TF_TF_IGNOREEND = 2; // ignore the end anchor - //const DWORD TF_ST_CORRECTION = 1; // the replacement is a transform of existing content (correction), not new content - //const DWORD TF_IE_CORRECTION = 1; - - //typedef [uuid(49930d51-7d93-448c-a48c-fea5dac192b1)] struct TF_HALTCOND - //{ - // ITfRange *pHaltRange; // halt shift if anchor encountered - // TfAnchor aHaltPos; // ignored if pHaltRange == NULL - // DWORD dwFlags; // TF_HF_* - //} TF_HALTCOND; - //HRESULT GetText([in] TfEditCookie ec, // [in] DWORD dwFlags, // [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText, // [in] ULONG cchMax, // [out] ULONG *pcch); - /// void GetText(int ec, /*GetTextFlags*/int flags, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char []text, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] text, int countMax, out int count); //HRESULT SetText([in] TfEditCookie ec, // [in] DWORD dwFlags, // [in, size_is(cch), unique] const WCHAR *pchText, // [in] LONG cch); - /// void SetText(int ec, /*SetTextFlags*/ int flags, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char []text, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] text, int count); //HRESULT GetFormattedText([in] TfEditCookie ec, // [out] IDataObject **ppDataObject); - /// void GetFormattedText(int ec, [MarshalAs(UnmanagedType.Interface)] out object data); //HRESULT GetEmbedded([in] TfEditCookie ec, // [in] REFGUID rguidService, // [in] REFIID riid, // [out, iid_is(riid)] IUnknown **ppunk); - /// void GetEmbedded(int ec, ref Guid guidService, ref Guid iid, [MarshalAs(UnmanagedType.Interface)] out object obj); //HRESULT InsertEmbedded([in] TfEditCookie ec, // [in] DWORD dwFlags, // [in] IDataObject *pDataObject); - /// void InsertEmbedded(int ec, int flags, [MarshalAs(UnmanagedType.Interface)] object data); //HRESULT ShiftStart([in] TfEditCookie ec, // [in] LONG cchReq, // [out] LONG *pcch, // [in, unique] const TF_HALTCOND *pHalt); - /// void ShiftStart(int ec, int count, out int result, IntPtr pHalt); //HRESULT ShiftEnd([in] TfEditCookie ec, // [in] LONG cchReq, // [out] LONG *pcch, // [in, unique] const TF_HALTCOND *pHalt); - /// void ShiftEnd(int ec, int count, out int result, IntPtr pHalt); //HRESULT ShiftStartToRange([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] TfAnchor aPos); - /// void ShiftStartToRange(int ec, ITfRange range, TfAnchor position); //HRESULT ShiftEndToRange([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] TfAnchor aPos); - /// void ShiftEndToRange(int ec, ITfRange range, TfAnchor position); //HRESULT ShiftStartRegion([in] TfEditCookie ec, // [in] TfShiftDir dir, // [out] BOOL *pfNoRegion); - /// void ShiftStartRegion(int ec, TfShiftDir dir, [MarshalAs(UnmanagedType.Bool)] out bool noRegion); //HRESULT ShiftEndRegion([in] TfEditCookie ec, // [in] TfShiftDir dir, // [out] BOOL *pfNoRegion); - /// void ShiftEndRegion(int ec, TfShiftDir dir, [MarshalAs(UnmanagedType.Bool)] out bool noRegion); //HRESULT IsEmpty([in] TfEditCookie ec, // [out] BOOL *pfEmpty); - /// void IsEmpty(int ec, [MarshalAs(UnmanagedType.Bool)] out bool empty); //HRESULT Collapse([in] TfEditCookie ec, // [in] TfAnchor aPos); - /// void Collapse(int ec, TfAnchor position); //HRESULT IsEqualStart([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] BOOL *pfEqual); - /// void IsEqualStart(int ec, ITfRange with, TfAnchor position, [MarshalAs(UnmanagedType.Bool)] out bool equal); //HRESULT IsEqualEnd([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] BOOL *pfEqual); - /// void IsEqualEnd(int ec, ITfRange with, TfAnchor position, [MarshalAs(UnmanagedType.Bool)] out bool equal); //HRESULT CompareStart([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] LONG *plResult); - /// void CompareStart(int ec, ITfRange with, TfAnchor position, out int result); //HRESULT CompareEnd([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] LONG *plResult); - /// void CompareEnd(int ec, ITfRange with, TfAnchor position, out int result); //HRESULT AdjustForInsert([in] TfEditCookie ec, // [in] ULONG cchInsert, // [out] BOOL *pfInsertOk); - /// void AdjustForInsert(int ec, int count, [MarshalAs(UnmanagedType.Bool)] out bool insertOk); //HRESULT GetGravity([out] TfGravity *pgStart, // [out] TfGravity *pgEnd); - /// void GetGravity(out TfGravity start, out TfGravity end); //HRESULT SetGravity([in] TfEditCookie ec, // [in] TfGravity gStart, // [in] TfGravity gEnd); - /// void SetGravity(int ec, TfGravity start, TfGravity end); //HRESULT Clone([out] ITfRange **ppClone); - /// void Clone(out ITfRange clone); //HRESULT GetContext([out] ITfContext **ppContext); - /// void GetContext(out ITfContext context); }; - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("057a6296-029b-4154-b79a-0d461d4ea94c")] @@ -2053,210 +1287,176 @@ public interface ITfRangeACP /*: ITfRange*/ // derivation isn't working, calls t // [out, size_is(cchMax), length_is(*pcch)] WCHAR *pchText, // [in] ULONG cchMax, // [out] ULONG *pcch); - /// void GetText(int ec, /*GetTextFlags*/int flags, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char []text, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] text, int countMax, out int count); //HRESULT SetText([in] TfEditCookie ec, // [in] DWORD dwFlags, // [in, size_is(cch), unique] const WCHAR *pchText, // [in] LONG cch); - /// void SetText(int ec, /*SetTextFlags*/ int flags, - [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=3)] char []text, + [In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] char[] text, int count); //HRESULT GetFormattedText([in] TfEditCookie ec, // [out] IDataObject **ppDataObject); - /// void GetFormattedText(int ec, [MarshalAs(UnmanagedType.Interface)] out object data); //HRESULT GetEmbedded([in] TfEditCookie ec, // [in] REFGUID rguidService, // [in] REFIID riid, // [out, iid_is(riid)] IUnknown **ppunk); - /// void GetEmbedded(int ec, ref Guid guidService, ref Guid iid, [MarshalAs(UnmanagedType.Interface)] out object obj); //HRESULT InsertEmbedded([in] TfEditCookie ec, // [in] DWORD dwFlags, // [in] IDataObject *pDataObject); - /// void InsertEmbedded(int ec, int flags, [MarshalAs(UnmanagedType.Interface)] object data); //HRESULT ShiftStart([in] TfEditCookie ec, // [in] LONG cchReq, // [out] LONG *pcch, // [in, unique] const TF_HALTCOND *pHalt); - /// void ShiftStart(int ec, int count, out int result, IntPtr pHalt); //HRESULT ShiftEnd([in] TfEditCookie ec, // [in] LONG cchReq, // [out] LONG *pcch, // [in, unique] const TF_HALTCOND *pHalt); - /// void ShiftEnd(int ec, int count, out int result, IntPtr pHalt); //HRESULT ShiftStartToRange([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] TfAnchor aPos); - /// void ShiftStartToRange(int ec, ITfRange range, TfAnchor position); //HRESULT ShiftEndToRange([in] TfEditCookie ec, // [in] ITfRange *pRange, // [in] TfAnchor aPos); - /// void ShiftEndToRange(int ec, ITfRange range, TfAnchor position); //HRESULT ShiftStartRegion([in] TfEditCookie ec, // [in] TfShiftDir dir, // [out] BOOL *pfNoRegion); - /// void ShiftStartRegion(int ec, TfShiftDir dir, [MarshalAs(UnmanagedType.Bool)] out bool noRegion); //HRESULT ShiftEndRegion([in] TfEditCookie ec, // [in] TfShiftDir dir, // [out] BOOL *pfNoRegion); - /// void ShiftEndRegion(int ec, TfShiftDir dir, [MarshalAs(UnmanagedType.Bool)] out bool noRegion); //HRESULT IsEmpty([in] TfEditCookie ec, // [out] BOOL *pfEmpty); - /// void IsEmpty(int ec, [MarshalAs(UnmanagedType.Bool)] out bool empty); //HRESULT Collapse([in] TfEditCookie ec, // [in] TfAnchor aPos); - /// void Collapse(int ec, TfAnchor position); //HRESULT IsEqualStart([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] BOOL *pfEqual); - /// void IsEqualStart(int ec, ITfRange with, TfAnchor position, [MarshalAs(UnmanagedType.Bool)] out bool equal); //HRESULT IsEqualEnd([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] BOOL *pfEqual); - /// void IsEqualEnd(int ec, ITfRange with, TfAnchor position, [MarshalAs(UnmanagedType.Bool)] out bool equal); //HRESULT CompareStart([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] LONG *plResult); - /// void CompareStart(int ec, ITfRange with, TfAnchor position, out int result); //HRESULT CompareEnd([in] TfEditCookie ec, // [in] ITfRange *pWith, // [in] TfAnchor aPos, // [out] LONG *plResult); - /// void CompareEnd(int ec, ITfRange with, TfAnchor position, out int result); //HRESULT AdjustForInsert([in] TfEditCookie ec, // [in] ULONG cchInsert, // [out] BOOL *pfInsertOk); - /// void AdjustForInsert(int ec, int count, [MarshalAs(UnmanagedType.Bool)] out bool insertOk); //HRESULT GetGravity([out] TfGravity *pgStart, // [out] TfGravity *pgEnd); - /// void GetGravity(out TfGravity start, out TfGravity end); //HRESULT SetGravity([in] TfEditCookie ec, // [in] TfGravity gStart, // [in] TfGravity gEnd); - /// void SetGravity(int ec, TfGravity start, TfGravity end); //HRESULT Clone([out] ITfRange **ppClone); - /// void Clone(out ITfRange clone); //HRESULT GetContext([out] ITfContext **ppContext); - /// void GetContext(out ITfContext context); //HRESULT GetExtent([out] LONG *pacpAnchor, // [out] LONG *pcch); - /// void GetExtent(out int start, out int count); //HRESULT SetExtent([in] LONG acpAnchor, // [in] LONG cch); - /// void SetExtent(int start, int count); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("D7540241-F9A1-4364-BEFC-DBCD2C4395B7")] public interface ITfCompositionView { //HRESULT GetOwnerClsid([out] CLSID *pclsid); - /// void GetOwnerClsid(out Guid clsid); //HRESULT GetRange([out] ITfRange **ppRange); - /// void GetRange(out ITfRange range); }; - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("5F20AA40-B57A-4F34-96AB-3576F377CC79")] public interface ITfContextOwnerCompositionSink { - /// //HRESULT OnStartComposition([in] ITfCompositionView *pComposition, // [out] BOOL *pfOk); void OnStartComposition(ITfCompositionView view, [MarshalAs(UnmanagedType.Bool)] out bool ok); - /// //HRESULT OnUpdateComposition([in] ITfCompositionView *pComposition, // [in] ITfRange *pRangeNew); void OnUpdateComposition(ITfCompositionView view, ITfRange rangeNew); - /// //HRESULT OnEndComposition([in] ITfCompositionView *pComposition); void OnEndComposition(ITfCompositionView view); }; - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("D40C8AAE-AC92-4FC7-9A11-0EE0E23AA39B")] public interface ITfContextComposition { - /// //HRESULT StartComposition([in] TfEditCookie ecWrite, // [in] ITfRange *pCompositionRange, // [in] ITfCompositionSink *pSink, // [out] ITfComposition **ppComposition); void StartComposition(int ecWrite, ITfRange range, [MarshalAs(UnmanagedType.Interface)] object /*ITfCompositionSink */sink, [MarshalAs(UnmanagedType.Interface)] out object /*ITfComposition */composition); - /// //HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum); void EnumCompositions([MarshalAs(UnmanagedType.Interface)] out IEnumITfCompositionView enumView); - /// //HRESULT FindComposition([in] TfEditCookie ecRead, // [in] ITfRange *pTestRange, // [out] IEnumITfCompositionView **ppEnum); void FindComposition(int ecRead, ITfRange testRange, [MarshalAs(UnmanagedType.Interface)] out object /*IEnumITfCompositionView*/ enumView); - /// //HRESULT TakeOwnership([in] TfEditCookie ecWrite, // [in] ITfCompositionView *pComposition, // [in] ITfCompositionSink *pSink, @@ -2265,30 +1465,25 @@ void TakeOwnership(int ecWrite, ITfCompositionView view, [MarshalAs(UnmanagedTyp [MarshalAs(UnmanagedType.Interface)] out object /*ITfComposition*/ composition); }; - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("86462810-593B-4916-9764-19C08E9CE110")] public interface ITfContextOwnerCompositionServices /*: ITfContextComposition*/ { - /// //HRESULT StartComposition([in] TfEditCookie ecWrite, // [in] ITfRange *pCompositionRange, // [in] ITfCompositionSink *pSink, // [out] ITfComposition **ppComposition); void StartComposition(int ecWrite, ITfRange range, [MarshalAs(UnmanagedType.Interface)] object /*ITfCompositionSink */sink, [MarshalAs(UnmanagedType.Interface)] out object /*ITfComposition */composition); - /// //HRESULT EnumCompositions([out] IEnumITfCompositionView **ppEnum); void EnumCompositions([MarshalAs(UnmanagedType.Interface)] out object /*IEnumITfCompositionView*/ enumView); - /// //HRESULT FindComposition([in] TfEditCookie ecRead, // [in] ITfRange *pTestRange, // [out] IEnumITfCompositionView **ppEnum); void FindComposition(int ecRead, ITfRange testRange, [MarshalAs(UnmanagedType.Interface)] out object /*IEnumITfCompositionView*/ enumView); - /// //HRESULT TakeOwnership([in] TfEditCookie ecWrite, // [in] ITfCompositionView *pComposition, // [in] ITfCompositionSink *pSink, @@ -2296,80 +1491,63 @@ public interface ITfContextOwnerCompositionServices /*: ITfContextComposition*/ void TakeOwnership(int ecWrite, ITfCompositionView view, [MarshalAs(UnmanagedType.Interface)] object /*ITfCompositionSink */ sink, [MarshalAs(UnmanagedType.Interface)] out object /*ITfComposition*/ composition); - /// //HRESULT TerminateComposition([in] ITfCompositionView *pComposition); [PreserveSig] int TerminateComposition(ITfCompositionView view); }; - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("5EFD22BA-7838-46CB-88E2-CADB14124F8F")] internal interface IEnumITfCompositionView { - /// //HRESULT Clone([out] IEnumTfRanges **ppEnum); void Clone(out IEnumTfRanges ranges); - /// //HRESULT Next([in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange, // [out] ULONG *pcFetched); [PreserveSig] - unsafe int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] ITfCompositionView []compositionview, out int fetched); + unsafe int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] ITfCompositionView[] compositionview, out int fetched); - /// //HRESULT Reset(); void Reset(); - /// //HRESULT Skip(ULONG ulCount); [PreserveSig] int Skip(int count); } - /// - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("f99d3f40-8e32-11d2-bf46-00105a2799b5")] public interface IEnumTfRanges { //HRESULT Clone([out] IEnumTfRanges **ppEnum); - /// void Clone(out IEnumTfRanges ranges); //HRESULT Next([in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetched)] ITfRange **ppRange, // [out] ULONG *pcFetched); - /// [PreserveSig] - unsafe int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] ITfRange []ranges, out int fetched); + unsafe int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] ITfRange[] ranges, out int fetched); //HRESULT Reset(); - /// void Reset(); //HRESULT Skip(ULONG ulCount); - /// [PreserveSig] int Skip(int count); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("42d4d099-7c1a-4a89-b836-6c6f22160df0")] public interface ITfEditRecord { - //const DWORD TF_GTP_INCL_TEXT = 0x1; - - /// //HRESULT GetSelectionStatus([out] BOOL *pfChanged); void GetSelectionStatus([MarshalAs(UnmanagedType.Bool)] out bool selectionChanged); - /// //HRESULT GetTextAndPropertyUpdates([in] DWORD dwFlags, // [in, size_is(cProperties)] const GUID **prgProperties, // [in] ULONG cProperties, @@ -2378,89 +1556,52 @@ public interface ITfEditRecord // // Use "ref IntPtr" Temporarily. // See the comment in InputMethodProperty.GetPropertyUpdate(). - // unsafe void GetTextAndPropertyUpdates(int flags, /*[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)]*/ /*Guid ** */ ref IntPtr properties, int count, out IEnumTfRanges ranges); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("8127d409-ccd3-4683-967a-b43d5b482bf7")] public interface ITfTextEditSink { - /// //HRESULT OnEndEdit([in] ITfContext *pic, [in] TfEditCookie ecReadOnly, [in] ITfEditRecord *pEditRecord); void OnEndEdit(ITfContext context, int ecReadOnly, ITfEditRecord editRecord); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("8c03d21b-95a7-4ba0-ae1b-7fce12a72930")] public interface IEnumTfRenderingMarkup { - /// //HRESULT Clone([out] IEnumTfRenderingMarkup **ppClone); void Clone(out IEnumTfRenderingMarkup clone); - /// //HRESULT Next([in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetched)] TF_RENDERINGMARKUP *rgMarkup, // [out] ULONG *pcFetched); [PreserveSig] - int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] TF_RENDERINGMARKUP []markup, out int fetched); + int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] TF_RENDERINGMARKUP[] markup, out int fetched); - /// //HRESULT Reset(); void Reset(); - /// //HRESULT Skip([in] ULONG ulCount); [PreserveSig] int Skip(int count); } - /// - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("a305b1c0-c776-4523-bda0-7c5a2e0fef10")] - public interface ITfContextRenderingMarkup - { - /// - //HRESULT GetRenderingMarkup([in] TfEditCookie ec, - // [in] DWORD dwFlags, - // [in] ITfRange *pRangeCover, - // [out] IEnumTfRenderingMarkup **ppEnum); - void GetRenderingMarkup(int editCookie, GetRenderingMarkupFlags flags, ITfRange range, out IEnumTfRenderingMarkup enumMarkup); - - /// - //HRESULT FindNextRenderingMarkup([in] TfEditCookie ec, - // [in] DWORD dwFlags, - // [in] ITfRange *pRangeQuery, - // [in] TfAnchor tfAnchorQuery, - // [out] ITfRange **ppRangeFound, - // [out] TF_RENDERINGMARKUP *ptfRenderingMarkup); - void FindNextRenderingMarkup(int editCookie, FindRenderingMarkupFlags flags, - ITfRange queryRange, TfAnchor queryAnchor, - out ITfRange foundRange, out TF_RENDERINGMARKUP foundMarkup); - } - - /// - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("1F02B6C5-7842-4EE6-8A0B-9A24183A95CA")] public interface ITfInputProcessorProfiles { // HRESULT Register([in] REFCLSID rclsid); - /// void stub_Register(); // HRESULT Unregister([in] REFCLSID rclsid); - /// void stub_Unregister(); // HRESULT AddLanguageProfile([in] REFCLSID rclsid, @@ -2471,71 +1612,59 @@ public interface ITfInputProcessorProfiles // [in, size_is(cchFile)] const WCHAR *pchIconFile, // [in] ULONG cchFile, // [in] ULONG uIconIndex); - /// void stub_AddLanguageProfile(); // HRESULT RemoveLanguageProfile([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfile); - /// void stub_RemoveLanguageProfile(); // HRESULT EnumInputProcessorInfo([out] IEnumGUID **ppEnum); - /// void stub_EnumInputProcessorInfo(); // HRESULT GetDefaultLanguageProfile([in] LANGID langid, // [in] REFGUID catid, // [out] CLSID *pclsid, // [out] GUID *pguidProfile); - /// void stub_GetDefaultLanguageProfile(); // HRESULT SetDefaultLanguageProfile([in] LANGID langid, // [in] REFCLSID rclsid, // [in] REFGUID guidProfiles); - /// void stub_SetDefaultLanguageProfile(); // HRESULT ActivateLanguageProfile([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfiles); - /// void ActivateLanguageProfile(ref Guid clsid, short langid, ref Guid guidProfile); // HRESULT GetActiveLanguageProfile([in] REFCLSID rclsid, // [out] LANGID *plangid, // [out] GUID *pguidProfile); - /// [PreserveSig] int GetActiveLanguageProfile(ref Guid clsid, out short langid, out Guid profile); - + // HRESULT GetLanguageProfileDescription([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfile, // [out] BSTR *pbstrProfile); - /// void stub_GetLanguageProfileDescription(); // HRESULT GetCurrentLanguage([out] LANGID *plangid); - /// void GetCurrentLanguage(out short langid); // HRESULT ChangeCurrentLanguage([in] LANGID langid); - /// [PreserveSig] int ChangeCurrentLanguage(short langid); - + // HRESULT GetLanguageList([out] LANGID **ppLangId, // [out] ULONG *pulCount); - /// [PreserveSig] int GetLanguageList(out IntPtr langids, out int count); - + // HRESULT EnumLanguageProfiles([in] LANGID langid, // [out] IEnumTfLanguageProfiles **ppEnum); - /// void EnumLanguageProfiles(short langid, out IEnumTfLanguageProfiles enumIPP); @@ -2543,123 +1672,100 @@ public interface ITfInputProcessorProfiles // [in] LANGID langid, // [in] REFGUID guidProfile, // [in] BOOL fEnable); - /// void stub_EnableLanguageProfile(); // HRESULT IsEnabledLanguageProfile([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfile, // [out] BOOL *pfEnable); - /// void stub_IsEnabledLanguageProfile(); // HRESULT EnableLanguageProfileByDefault([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfile, // [in] BOOL fEnable); - /// void stub_EnableLanguageProfileByDefault(); // HRESULT SubstituteKeyboardLayout([in] REFCLSID rclsid, // [in] LANGID langid, // [in] REFGUID guidProfile, // [in] HKL hKL); - /// void stub_SubstituteKeyboardLayout(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("3d61bf11-ac5f-42c8-a4cb-931bcc28c744")] internal interface IEnumTfLanguageProfiles { - /// // HRESULT Clone([out] IEnumTfLanguageProfiles **ppEnum); void Clone(out IEnumTfLanguageProfiles enumIPP); - /// // HRESULT Next([in] ULONG ulCount, // [out, size_is(ulCount), length_is(*pcFetch)] TF_LANGUAGEPROFILE *pProfile, // [out] ULONG *pcFetch); [PreserveSig] - int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex=2)] TF_LANGUAGEPROFILE []profiles, out int fetched); + int Next(int count, [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] TF_LANGUAGEPROFILE[] profiles, out int fetched); - /// // HRESULT Reset(); void Reset(); - /// // HRESULT Skip([in] ULONG ulCount); void Skip(int count); } - /// + [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("43c9fe15-f494-4c17-9de2-b8a4ac350aa8")] public interface ITfLanguageProfileNotifySink { - /// // HRESULT OnLanguageChange([in] LANGID langid, // [out] BOOL *pfAccept); void OnLanguageChange(short langid, [MarshalAs(UnmanagedType.Bool)] out bool bAccept); - /// // HRESULT OnLanguageChanged(); void OnLanguageChanged(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("8ded7393-5db1-475c-9e71-a39111b0ff67")] public interface ITfDisplayAttributeMgr { // HRESULT OnUpdateInfo(); - // - /// void OnUpdateInfo(); // HRESULT EnumDisplayAttributeInfo([out] IEnumTfDisplayAttributeInfo **ppEnum); - /// void stub_EnumDisplayAttributeInfo(); // HRESULT GetDisplayAttributeInfo([in] REFGUID guid, // [out] ITfDisplayAttributeInfo **ppInfo, // [out] CLSID *pclsidOwner); - /// void GetDisplayAttributeInfo(ref Guid guid, out ITfDisplayAttributeInfo info, out Guid clsid); -} + } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("70528852-2f26-4aea-8c96-215150578932")] public interface ITfDisplayAttributeInfo { // HRESULT GetGUID([out] GUID *pguid); - /// void stub_GetGUID(); // HRESULT GetDescription([out] BSTR *pbstrDesc); - /// void stub_GetDescription(); // HRESULT GetAttributeInfo([out] TF_DISPLAYATTRIBUTE *pda); - /// void GetAttributeInfo(out TF_DISPLAYATTRIBUTE attr); // HRESULT SetAttributeInfo([in] const TF_DISPLAYATTRIBUTE *pda); - /// void stub_SetAttributeInfo(); // HRESULT Reset(); - /// void stub_Reset(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("c3acefb5-f69d-4905-938f-fcadcf4be830")] @@ -2668,170 +1774,104 @@ public interface ITfCategoryMgr // HRESULT RegisterCategory([in] REFCLSID rclsid, // [in] REFGUID rcatid, // [in] REFGUID rguid); - /// void stub_RegisterCategory(); // HRESULT UnregisterCategory([in] REFCLSID rclsid, // [in] REFGUID rcatid, // [in] REFGUID rguid); - /// void stub_UnregisterCategory(); // HRESULT EnumCategoriesInItem([in] REFGUID rguid, // [out] IEnumGUID **ppEnum); - /// void stub_EnumCategoriesInItem(); // HRESULT EnumItemsInCategory([in] REFGUID rcatid, // [out] IEnumGUID **ppEnum); - /// void stub_EnumItemsInCategory(); // HRESULT FindClosestCategory([in] REFGUID rguid, // [out] GUID *pcatid, // [in, size_is(ulCount)] const GUID **ppcatidList, // [in] ULONG ulCount); - /// void stub_FindClosestCategory(); // HRESULT RegisterGUIDDescription([in] REFCLSID rclsid, // [in] REFGUID rguid, // [in, size_is(cch)] const WCHAR *pchDesc, // [in] ULONG cch); - /// void stub_RegisterGUIDDescription(); // HRESULT UnregisterGUIDDescription([in] REFCLSID rclsid, // [in] REFGUID rguid); - /// void stub_UnregisterGUIDDescription(); // HRESULT GetGUIDDescription([in] REFGUID rguid, // [out] BSTR *pbstrDesc); - /// void stub_GetGUIDDescription(); // HRESULT RegisterGUIDDWORD([in] REFCLSID rclsid, // [in] REFGUID rguid, // [in] DWORD dw); - /// void stub_RegisterGUIDDWORD(); // HRESULT UnregisterGUIDDWORD([in] REFCLSID rclsid, // [in] REFGUID rguid); - /// void stub_UnregisterGUIDDWORD(); // HRESULT GetGUIDDWORD([in] REFGUID rguid, // [out] DWORD *pdw); - /// void stub_GetGUIDDWORD(); // HRESULT RegisterGUID([in] REFGUID rguid, // [out] TfGuidAtom *pguidatom); - /// void stub_RegisterGUID(); // HRESULT GetGUID([in] TfGuidAtom guidatom, // [out] GUID *pguid); - /// [PreserveSig] int GetGUID(Int32 guidatom, out Guid guid); // HRESULT IsEqualTfGuidAtom([in] TfGuidAtom guidatom, // [in] REFGUID rguid, // [out] BOOL *pfEqual); - /// void stub_IsEqualTfGuidAtom(); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("aa80e80c-2021-11d2-93e0-0060b067b86e")] public interface ITfContextOwner { - /// // HRESULT GetACPFromPoint([in] const POINT *ptScreen, // [in] DWORD dwFlags, // [out] LONG *pacp); void GetACPFromPoint(ref POINT point, GetPositionFromPointFlags flags, out int position); - /// // HRESULT GetTextExt([in] LONG acpStart, // [in] LONG acpEnd, // [out] RECT *prc, // [out] BOOL *pfClipped); void GetTextExt(int start, int end, out RECT rect, [MarshalAs(UnmanagedType.Bool)] out bool clipped); - /// // HRESULT GetScreenExt([out] RECT *prc); void GetScreenExt(out RECT rect); - /// // HRESULT GetStatus([out] TF_STATUS *pdcs); void GetStatus(out TS_STATUS status); - /// // HRESULT GetWnd([out] HWND *phwnd); void GetWnd(out IntPtr hwnd); - /// // HRESULT GetAttribute([in] REFGUID rguidAttribute, [out] VARIANT *pvarValue); void GetValue(ref Guid guidAttribute, out object varValue); } - - /// - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("b23eb630-3e1c-11d3-a745-0050040ab407")] - public interface ITfContextOwnerServices - { - /// - // HRESULT OnLayoutChange(); - void stub_OnLayoutChange(); - - /// - // HRESULT OnStatusChange([in] DWORD dwFlags); - void stub_OnStatusChange(); - - /// - // HRESULT OnAttributeChange([in] REFGUID rguidAttribute); - void stub_OnAttributeChange(); - - /// - // HRESULT Serialize([in] ITfProperty *pProp, - // [in] ITfRange *pRange, - // [out] TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, - // [in] IStream *pStream); - void stub_Serialize(); - - /// - // HRESULT Unserialize([in] ITfProperty *pProp, - // [in] const TF_PERSISTENT_PROPERTY_HEADER_ACP *pHdr, - // [in] IStream *pStream, - // [in] ITfPersistentPropertyLoaderACP *pLoader); - void stub_Unserialize(); - - /// - // HRESULT ForceLoadProperty([in] ITfProperty *pProp); - void stub_ForceLoadProperty(); - - /// - // HRESULT CreateRange([in] LONG acpStart, - // [in] LONG acpEnd, - // [out] ITfRangeACP **ppRange); - void CreateRange(Int32 acpStart, Int32 acpEnd, out ITfRangeACP range); - } - - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("a615096f-1c57-4813-8a15-55ee6e5a839c")] public interface ITfTransitoryExtensionSink { - /// + // HRESULT OnTransitoryExtensionUpdated([in] ITfContext *pic, // [in] TfEditCookie ecReadOnly, // [in] ITfRange *pResultRange, @@ -2840,60 +1880,49 @@ public interface ITfTransitoryExtensionSink void OnTransitoryExtensionUpdated(ITfContext context, int ecReadOnly, ITfRange rangeResult, ITfRange rangeComposition, [MarshalAs(UnmanagedType.Bool)] out bool fDeleteResultRange); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("fde1eaee-6924-4cdf-91e7-da38cff5559d")] public interface ITfInputScope { - /// // HRESULT GetInputScopes([out] InputScope **pprgInputScopes, // [out] UINT *pcCount); void GetInputScopes(out IntPtr ppinputscopes, out int count); - /// // HRESULT GetPhrase([out] BSTR **ppbstrPhrases, // [out] UINT *pcCount); [PreserveSig] int GetPhrase(out IntPtr ppbstrPhrases, out int count); - - /// + // HRESULT GetRegularExpression([out] BSTR *pbstrRegExp); [PreserveSig] int GetRegularExpression([Out, MarshalAs(UnmanagedType.BStr)] out string desc); - /// // HRESULT GetSRGS([out] BSTR *pbstrSRGS); [PreserveSig] int GetSRGC([Out, MarshalAs(UnmanagedType.BStr)] out string desc); - /// // HRESULT GetXML([out] BSTR *pbstrXML); [PreserveSig] int GetXML([Out, MarshalAs(UnmanagedType.BStr)] out string desc); } - - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("3bdd78e2-c16e-47fd-b883-ce6facc1a208")] public interface ITfMouseTrackerACP { - /// // HRESULT AdviseMouseSink([in] ITfRangeACP *range, // [in] ITfMouseSink *pSink, // [out] DWORD *pdwCookie); [PreserveSig] int AdviceMouseSink(ITfRangeACP range, ITfMouseSink sink, out int dwCookie); - /// // HRESULT UnadviseMouseSink([in] DWORD dwCookie); [PreserveSig] int UnadviceMouseSink(int dwCookie); } - /// [ComImport] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [Guid("a1adaaa2-3a24-449d-ac96-5183e7f5c217")] @@ -2903,7 +1932,7 @@ public interface ITfMouseSink // [in] ULONG uQuadrant, // [in] DWORD dwBtnStatus, // [out] BOOL *pfEaten); - /// + [PreserveSig] int OnMouseEvent(int edge, int quadrant, int btnStatus, [MarshalAs(UnmanagedType.Bool)] out bool eaten); } diff --git a/src/Microsoft.DotNet.Wpf/src/Shared/RefAssemblyAttrs.cs b/src/Microsoft.DotNet.Wpf/src/Shared/RefAssemblyAttrs.cs index 0e2505fbb3e..85e35e9025a 100644 --- a/src/Microsoft.DotNet.Wpf/src/Shared/RefAssemblyAttrs.cs +++ b/src/Microsoft.DotNet.Wpf/src/Shared/RefAssemblyAttrs.cs @@ -35,6 +35,11 @@ internal static class BuildInfo // ECMA PublicKeyToken internal const string DEVDIV_PUBLIC_KEY_TOKEN = "b77a5c561934e089"; + /// + /// The open key. The token is cc7b13ffcd2ddd51. + /// + public const string OpenPublicKey = "00240000048000009400000006020000002400005253413100040000010001004b86c4cb78549b34bab61a3b1800e23bfeb5b3ec390074041536a7e3cbd97f5f04cf0f857155a8928eaa29ebfd11cfbbad3ba70efea7bda3226c6a8d370a4cd303f714486b6ebc225985a638471e6ef571cc92a4613c00b8fa65d61ccee0cbe5f36330c9a01f4183559f1bef24cc2917c6d913e3a541333a1d05d9bed22b38cb"; + // Constants to prevent hardcoding in InternalsVisibleTo attribute internal const string DirectWriteForwarder = $"DirectWriteForwarder, PublicKey={WCP_PUBLIC_KEY_STRING}"; internal const string PresentationCore = $"PresentationCore, PublicKey={WCP_PUBLIC_KEY_STRING}"; diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/AssemblyInfo.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/AssemblyInfo.cs index 09ee8d39c8f..6b60d7486ca 100644 --- a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/AssemblyInfo.cs +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/AssemblyInfo.cs @@ -22,3 +22,6 @@ [assembly: InternalsVisibleTo($"UIAutomationTypes, PublicKey={PublicKeys.MicrosoftShared}")] [assembly: InternalsVisibleTo($"WindowsBase, PublicKey={PublicKeys.MicrosoftShared}")] [assembly: InternalsVisibleTo($"WindowsFormsIntegration, PublicKey={PublicKeys.MicrosoftShared}")] + +[assembly: InternalsVisibleTo($"System.Windows.Primitives.Tests, PublicKey={PublicKeys.Open}")] +[assembly: InternalsVisibleTo($"PresentationCore.Tests, PublicKey={PublicKeys.Open}")] diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/GlobalUsings.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/GlobalUsings.cs new file mode 100644 index 00000000000..896c292cf1f --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/GlobalUsings.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +global using System; +global using System.Diagnostics; +global using System.Diagnostics.CodeAnalysis; diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.cs new file mode 100644 index 00000000000..12945915c55 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.cs @@ -0,0 +1,20 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Globalization; +using System.Runtime.CompilerServices; + +namespace System.Windows.Primitives.Resources; + +internal static partial class SR +{ + // The rest of this class is auto-generated. Normally, the following should also be generated, but it + // currently isn't. This may be related to building with the .NET Framework msbuild. + + [AllowNull] + internal static CultureInfo Culture { get; set; } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static string? GetResourceString(string resourceKey, string? defaultValue = null) => + ResourceManager.GetString(resourceKey, Culture); +} diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.resx b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.resx new file mode 100644 index 00000000000..bf2ec77b805 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/SR.resx @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + Back buffer's device is not valid. + + + Back buffer's pool does not meet the requirements for the resource type. + + + Back buffer's usage does not meet the requirements for the resource type. + + + Back buffer's size is too large. + + + Arithmetic error found while trying to perform this operation. + + + The bitmap specified does not have the correct dimensions. + + + The image has corrupted metadata header. + + + The stream is corrupted. + + + Codec added more than once. + + + No imaging component suitable to complete this operation was found. + + + The image decoder cannot decode the image. The image might be corrupted. + + + The system display state is not valid. + + + Duplicate copies of metadata present. + + + The image is missing a frame. + + + The image cannot be decoded. The image header might be corrupted. + + + Buffer size is not sufficient. + + + An error occurred. + + + Bitmap color context is not valid. + + + Character is not valid in metadata query request. + + + Metadata query request is not valid. + + + Windows Media Player version 10 or later is required. + + + The specified image does not contain a palette. + + + Bitmap does not contain thumbnail. + + + The image data generated an overflow during processing. + + + Property cannot be found. + + + This codec does not support the specified property. + + + Property is corrupted. + + + Unexpected property type or value. + + + The metadata query is valid only at the root of the metadata hierarchy. + + + Cannot invert singular matrix. + + + The image dimensions are out of the range supported by this codec. + + + Metadata stream is not available for this operation. + + + Cannot read from the stream. + + + Cannot write to the stream. + + + The bitmap has too many scanlines for the specified encoder. + + + Commit unsuccessful because too much metadata changed. + + + Unexpected type of metadata. + + + The image format is unrecognized. + + + Operation not supported. + + + Pixel format not supported. + + + Operation caused an invalid state. + + + Media file download failed. + + + Installed codecs do not support the media file format. + + + Cannot find the media file. + + + Display driver must support video acceleration for video or audio playback. + + + There are insufficient video resources available for video or audio playback. + + + Value does not fall within the expected range. + + + Access was denied on the media file. + + + No operations are valid on a closed media player except open and close. + + + Unrecognized playlist file format. + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + Object must be initialized before operation can be performed. + + diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.cs.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.cs.xlf new file mode 100644 index 00000000000..d986f8c4487 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.cs.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.de.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.de.xlf new file mode 100644 index 00000000000..930bf6b7594 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.de.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.es.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.es.xlf new file mode 100644 index 00000000000..d571e845f2f --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.es.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.fr.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.fr.xlf new file mode 100644 index 00000000000..95db89ca733 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.fr.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.it.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.it.xlf new file mode 100644 index 00000000000..46809340772 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.it.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ja.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ja.xlf new file mode 100644 index 00000000000..1d303e6ccde --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ja.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ko.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ko.xlf new file mode 100644 index 00000000000..f5261a66b19 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ko.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pl.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pl.xlf new file mode 100644 index 00000000000..9a209be7e00 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pl.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pt-BR.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pt-BR.xlf new file mode 100644 index 00000000000..6904e618174 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.pt-BR.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ru.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ru.xlf new file mode 100644 index 00000000000..d4134f860e4 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.ru.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.tr.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.tr.xlf new file mode 100644 index 00000000000..165aa900974 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.tr.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hans.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hans.xlf new file mode 100644 index 00000000000..b6916fe7dcd --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hans.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hant.xlf b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hant.xlf new file mode 100644 index 00000000000..473e3e0e823 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Resources/xlf/SR.zh-Hant.xlf @@ -0,0 +1,272 @@ + + + + + + An antialiased back buffer requires a IDirect3DDevice9Ex device. + An antialiased back buffer requires a IDirect3DDevice9Ex device. + + + + Back buffer's device is not valid. + Back buffer's device is not valid. + + + + Back buffer's pool does not meet the requirements for the resource type. + Back buffer's pool does not meet the requirements for the resource type. + + + + Back buffer's usage does not meet the requirements for the resource type. + Back buffer's usage does not meet the requirements for the resource type. + + + + Back buffer's size is too large. + Back buffer's size is too large. + + + + Arithmetic error found while trying to perform this operation. + Arithmetic error found while trying to perform this operation. + + + + The bitmap specified does not have the correct dimensions. + The bitmap specified does not have the correct dimensions. + + + + The image has corrupted metadata header. + The image has corrupted metadata header. + + + + The stream is corrupted. + The stream is corrupted. + + + + Codec added more than once. + Codec added more than once. + + + + No imaging component suitable to complete this operation was found. + No imaging component suitable to complete this operation was found. + + + + The image decoder cannot decode the image. The image might be corrupted. + The image decoder cannot decode the image. The image might be corrupted. + + + + The system display state is not valid. + The system display state is not valid. + + + + Duplicate copies of metadata present. + Duplicate copies of metadata present. + + + + The image is missing a frame. + The image is missing a frame. + + + + The image cannot be decoded. The image header might be corrupted. + The image cannot be decoded. The image header might be corrupted. + + + + Buffer size is not sufficient. + Buffer size is not sufficient. + + + + An error occurred. + An error occurred. + + + + Bitmap color context is not valid. + Bitmap color context is not valid. + + + + Character is not valid in metadata query request. + Character is not valid in metadata query request. + + + + Metadata query request is not valid. + Metadata query request is not valid. + + + + The specified image does not contain a palette. + The specified image does not contain a palette. + + + + Bitmap does not contain thumbnail. + Bitmap does not contain thumbnail. + + + + The image data generated an overflow during processing. + The image data generated an overflow during processing. + + + + Property cannot be found. + Property cannot be found. + + + + This codec does not support the specified property. + This codec does not support the specified property. + + + + Property is corrupted. + Property is corrupted. + + + + Unexpected property type or value. + Unexpected property type or value. + + + + The metadata query is valid only at the root of the metadata hierarchy. + The metadata query is valid only at the root of the metadata hierarchy. + + + + Cannot invert singular matrix. + Cannot invert singular matrix. + + + + The image dimensions are out of the range supported by this codec. + The image dimensions are out of the range supported by this codec. + + + + Metadata stream is not available for this operation. + Metadata stream is not available for this operation. + + + + Cannot read from the stream. + Cannot read from the stream. + + + + Cannot write to the stream. + Cannot write to the stream. + + + + The bitmap has too many scanlines for the specified encoder. + The bitmap has too many scanlines for the specified encoder. + + + + Commit unsuccessful because too much metadata changed. + Commit unsuccessful because too much metadata changed. + + + + Unexpected type of metadata. + Unexpected type of metadata. + + + + The image format is unrecognized. + The image format is unrecognized. + + + + Operation not supported. + Operation not supported. + + + + Pixel format not supported. + Pixel format not supported. + + + + Operation caused an invalid state. + Operation caused an invalid state. + + + + Media file download failed. + Media file download failed. + + + + Installed codecs do not support the media file format. + Installed codecs do not support the media file format. + + + + Cannot find the media file. + Cannot find the media file. + + + + Display driver must support video acceleration for video or audio playback. + Display driver must support video acceleration for video or audio playback. + + + + There are insufficient video resources available for video or audio playback. + There are insufficient video resources available for video or audio playback. + + + + Value does not fall within the expected range. + Value does not fall within the expected range. + + + + Windows Media Player version 10 or later is required. + Windows Media Player version 10 or later is required. + + + + Access was denied on the media file. + Access was denied on the media file. + + + + No operations are valid on a closed media player except open and close. + No operations are valid on a closed media player except open and close. + + + + Unrecognized playlist file format. + Unrecognized playlist file format. + + + + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + Mismatched versions of PresentationCore.dll, Milcore.dll, WindowsCodecs.dll, or D3d9.dll. Check that these DLLs come from the same source. + + + + Object must be initialized before operation can be performed. + Object must be initialized before operation can be performed. + + + + + \ No newline at end of file diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/System.Windows.Primitives.csproj b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/System.Windows.Primitives.csproj index b84ce21ef1b..dd9cbdbb13d 100644 --- a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/System.Windows.Primitives.csproj +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/System.Windows.Primitives.csproj @@ -1,4 +1,4 @@ - + System.Windows.Primitives @@ -22,6 +22,16 @@ true + + + System.Windows.Primitives.Resources.SR + + System.Windows.Primitives.Resources.SR + true + + + + @@ -29,6 +39,7 @@ + false diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/D3dErrors.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/D3dErrors.cs new file mode 100644 index 00000000000..ba20033ff0a --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/D3dErrors.cs @@ -0,0 +1,40 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Windows.Win32.System.Diagnostics.Debug; + +namespace Windows.Win32.Foundation; + +#pragma warning disable IDE1006 // Naming Styles +#pragma warning disable format + +internal static class D3dErrors +{ + // DirectX 9 specific defines aren't exposed in the Windows metadata (too old). + // Manually defining all of the codes that actually get used in the WPF codebase. + + // https://learn.microsoft.com/windows/win32/direct3d9/d3derr + + // Copied from d3d9.h + + private const int _FACD3D = 0x876; + + internal const FACILITY_CODE FacilityCode = (FACILITY_CODE)_FACD3D; + + // MAKE_HRESULT definition: + // + // ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) + private const int ErrorCode = unchecked((int)(((ulong)1 << 31) | ((ulong)(_FACD3D) << 16))); + + internal static readonly HRESULT D3DERR_DEVICEHUNG = (HRESULT)(ErrorCode | 2164); + internal static readonly HRESULT D3DERR_DEVICELOST = (HRESULT)(ErrorCode | 2152); + internal static readonly HRESULT D3DERR_DEVICEREMOVED = (HRESULT)(ErrorCode | 2160); + internal static readonly HRESULT D3DERR_DRIVERINTERNALERROR = (HRESULT)(ErrorCode | 2087); + internal static readonly HRESULT D3DERR_INVALIDCALL = (HRESULT)(ErrorCode | 2156); + internal static readonly HRESULT D3DERR_NOTAVAILABLE = (HRESULT)(ErrorCode | 2154); + internal static readonly HRESULT D3DERR_OUTOFVIDEOMEMORY = (HRESULT)(ErrorCode | 380); + internal static readonly HRESULT D3DERR_WRONGTEXTUREFORMAT = (HRESULT)(ErrorCode | 2072); +} + +#pragma warning restore IDE1006 // Naming Styles +#pragma warning restore format diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/MilErrors.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/MilErrors.cs new file mode 100644 index 00000000000..2f4bc2f2afb --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/MilErrors.cs @@ -0,0 +1,201 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using Windows.Win32.System.Diagnostics.Debug; + +namespace Windows.Win32.Foundation; + +#pragma warning disable IDE1006 // Naming Styles +#pragma warning disable format + +/// +/// MIL error codes. Note that these codes use the same facility code as WIC. +/// +internal static class MilErrors +{ + // Copied from wgx_err.h + + private const int FACILITY_WGX = (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM; + + // MAKE_HRESULT definition: + // + // ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) + private const int SuccessCode = (int)(((ulong)0 << 31) | ((ulong)(FACILITY_WGX) << 16)); + private const int ErrorCode = unchecked((int)(((ulong)1 << 31) | ((ulong)(FACILITY_WGX) << 16))); + + + internal static readonly HRESULT WGXHR_CLIPPEDTOEMPTY = (HRESULT)(SuccessCode | 1); + internal static readonly HRESULT WGXHR_EMPTYFILL = (HRESULT)(SuccessCode | 2); + internal static readonly HRESULT WGXHR_INTERNALTEMPORARYSUCCESS = (HRESULT)(SuccessCode | 3); + internal static readonly HRESULT WGXHR_RESETSHAREDHANDLEMANAGER = (HRESULT)(SuccessCode | 4); + + + // Unique MIL error codes // Value: 0x8898xxxx -200330nnnn + internal static readonly HRESULT WGXERR_OBJECTBUSY = (HRESULT)(ErrorCode | 0x001); // 4447 + internal static readonly HRESULT WGXERR_INSUFFICIENTBUFFER = (HRESULT)(ErrorCode | 0x002); // 4446 + internal static readonly HRESULT WGXERR_WIN32ERROR = (HRESULT)(ErrorCode | 0x003); // 4445 + internal static readonly HRESULT WGXERR_SCANNER_FAILED = (HRESULT)(ErrorCode | 0x004); // 4444 + internal static readonly HRESULT WGXERR_SCREENACCESSDENIED = (HRESULT)(ErrorCode | 0x005); // 4443 + internal static readonly HRESULT WGXERR_DISPLAYSTATEINVALID = (HRESULT)(ErrorCode | 0x006); // 4442 + internal static readonly HRESULT WGXERR_NONINVERTIBLEMATRIX = (HRESULT)(ErrorCode | 0x007); // 4441 + internal static readonly HRESULT WGXERR_ZEROVECTOR = (HRESULT)(ErrorCode | 0x008); // 4440 + internal static readonly HRESULT WGXERR_TERMINATED = (HRESULT)(ErrorCode | 0x009); // 4439 + internal static readonly HRESULT WGXERR_BADNUMBER = (HRESULT)(ErrorCode | 0x00A); // 4438 + internal static readonly HRESULT WGXERR_UNSUPPORTEDTEXTURESIZE = (HRESULT)(ErrorCode | 0x00B); // 4437 + + // An internal error (MIL bug) occurred. On checked builds, we would assert. + internal static readonly HRESULT WGXERR_INTERNALERROR = (HRESULT)(ErrorCode | 0x080); // 4320 + + // This is a presentation error that is recoverable. The caller needs + // to reattempt present. + // Known cause for this is another process calling PrintWindow on our hwnd + // when we call UpdateLayeredWindow. + internal static readonly HRESULT WGXERR_NEED_REATTEMPT_PRESENT = (HRESULT)(ErrorCode | 0x083); // 4317 + + // The display format we need to render is not supported by the + // hardware device. + internal static readonly HRESULT WGXERR_DISPLAYFORMATNOTSUPPORTED = (HRESULT)(ErrorCode | 0x084); // 4316 + + // A call to this method is invalid. + internal static readonly HRESULT WGXERR_INVALIDCALL = (HRESULT)(ErrorCode | 0x085); // 4315 + + // Lock attempted on an already locked object. + internal static readonly HRESULT WGXERR_ALREADYLOCKED = (HRESULT)(ErrorCode | 0x086); // 4314 + + // Unlock attempted on an unlocked object. + internal static readonly HRESULT WGXERR_NOTLOCKED = (HRESULT)(ErrorCode | 0x087); // 4313 + + // No algorithm avaliable to render text with this device + internal static readonly HRESULT WGXERR_DEVICECANNOTRENDERTEXT = (HRESULT)(ErrorCode | 0x088); // 4312 + + // Some glyph bitmaps, required for glyph run rendering, are not + // contained in glyph cache. + internal static readonly HRESULT WGXERR_GLYPHBITMAPMISSED = (HRESULT)(ErrorCode | 0x089); // 4311 + + // Some glyph bitmaps in glyph cache are unexpectedly big. + internal static readonly HRESULT WGXERR_MALFORMEDGLYPHCACHE = (HRESULT)(ErrorCode | 0x08A); // 4310 + + // Marker error for known Win32 errors that are currently being ignored + // by the compositor. This is to avoid returning S_OK when an error has occurred, + // but still unwind the stack in the correct location + internal static readonly HRESULT WGXERR_GENERIC_IGNORE = (HRESULT)(ErrorCode | 0x08B); // 4309 + + // Guideline coordinates are not sorted properly or contain NaNs. + internal static readonly HRESULT WGXERR_MALFORMED_GUIDELINE_DATA = (HRESULT)(ErrorCode | 0x08C); // 4308 + + // No HW rendering device is available for this operation + internal static readonly HRESULT WGXERR_NO_HARDWARE_DEVICE = (HRESULT)(ErrorCode | 0x08D); // 4307 + + // There has been a presentation error that may be recoverable. The caller + // needs to recreate, rerender the entire frame, and reattempt present. + // There are two known case for this: + // 1) D3D Driver Internal error - should be investigated by DXG/IHV + // 2) D3D E_FAIL + // a) Unknown root cause - should be investigated by DXG + // b) When resizing too quickly for DWM and D3D stay in sync + internal static readonly HRESULT WGXERR_NEED_RECREATE_AND_PRESENT = (HRESULT)(ErrorCode | 0x08E); // 4306 + + // The object has already been initialized + internal static readonly HRESULT WGXERR_ALREADY_INITIALIZED = (HRESULT)(ErrorCode | 0x08F); // 4305 + + // The size of the object does not match the expected size + internal static readonly HRESULT WGXERR_MISMATCHED_SIZE = (HRESULT)(ErrorCode | 0x090); // 4304 + + // No Redirection surface avaiable + internal static readonly HRESULT WGXERR_NO_REDIRECTION_SURFACE_AVAILABLE = (HRESULT)(ErrorCode | 0x091); //4303 + + // Remoting of this content is not supported + internal static readonly HRESULT WGXERR_REMOTING_NOT_SUPPORTED = (HRESULT)(ErrorCode | 0x092); // 4302 + + // Queued Presents are not being used + internal static readonly HRESULT WGXERR_QUEUED_PRESENT_NOT_SUPPORTED = (HRESULT)(ErrorCode | 0x093); // 4301 + + // Queued Presents are not being used + internal static readonly HRESULT WGXERR_NOT_QUEUING_PRESENTS = (HRESULT)(ErrorCode | 0x094); // 4300 + + // No redirection surface was available retry the call + internal static readonly HRESULT WGXERR_NO_REDIRECTION_SURFACE_RETRY_LATER = (HRESULT)(ErrorCode | 0x095); // 4299 + + // Shader construction failed because it was too complex + internal static readonly HRESULT WGXERR_TOOMANYSHADERELEMNTS = (HRESULT)(ErrorCode | 0x096); // 4298 + + // AVAILABLE = (HRESULT)(ErrorCode | 0x097) // 4297 + // AVAILABLE = (HRESULT)(ErrorCode | 0x098) // 4296 + + // Shader compilation failed + internal static readonly HRESULT WGXERR_SHADER_COMPILE_FAILED = (HRESULT)(ErrorCode | 0x099); // 4295 + + // Requested DX redirection surface size exceeded maximum texture size + internal static readonly HRESULT WGXERR_MAX_TEXTURE_SIZE_EXCEEDED = (HRESULT)(ErrorCode | 0x09A); // 4294 + + // AVAILABLE = (HRESULT)(ErrorCode | 0x09B) // 4293 + + // Caps don't meet min WPF requirement for hw rendering + internal static readonly HRESULT WGXERR_INSUFFICIENT_GPU_CAPS = (HRESULT)(ErrorCode | 0x09C); // 4292 + + // Composition engine errors + + + internal static readonly HRESULT WGXERR_UCE_INVALIDPACKETHEADER = (HRESULT)(ErrorCode | 0x400); // 3424 + internal static readonly HRESULT WGXERR_UCE_UNKNOWNPACKET = (HRESULT)(ErrorCode | 0x401); // 3423 + internal static readonly HRESULT WGXERR_UCE_ILLEGALPACKET = (HRESULT)(ErrorCode | 0x402); // 3422 + internal static readonly HRESULT WGXERR_UCE_MALFORMEDPACKET = (HRESULT)(ErrorCode | 0x403); // 3421 + internal static readonly HRESULT WGXERR_UCE_ILLEGALHANDLE = (HRESULT)(ErrorCode | 0x404); // 3420 + internal static readonly HRESULT WGXERR_UCE_HANDLELOOKUPFAILED = (HRESULT)(ErrorCode | 0x405); // 3419 + internal static readonly HRESULT WGXERR_UCE_RENDERTHREADFAILURE = (HRESULT)(ErrorCode | 0x406); // 3418 + internal static readonly HRESULT WGXERR_UCE_CTXSTACKFRSTTARGETNULL = (HRESULT)(ErrorCode | 0x407); // 3417 + internal static readonly HRESULT WGXERR_UCE_CONNECTIONIDLOOKUPFAILED = (HRESULT)(ErrorCode | 0x408); // 3416 + internal static readonly HRESULT WGXERR_UCE_BLOCKSFULL = (HRESULT)(ErrorCode | 0x409); // 3415 + internal static readonly HRESULT WGXERR_UCE_MEMORYFAILURE = (HRESULT)(ErrorCode | 0x40A); // 3414 + internal static readonly HRESULT WGXERR_UCE_PACKETRECORDOUTOFRANGE = (HRESULT)(ErrorCode | 0x40B); // 3413 + internal static readonly HRESULT WGXERR_UCE_ILLEGALRECORDTYPE = (HRESULT)(ErrorCode | 0x40C); // 3412 + internal static readonly HRESULT WGXERR_UCE_OUTOFHANDLES = (HRESULT)(ErrorCode | 0x40D); // 3411 + internal static readonly HRESULT WGXERR_UCE_UNCHANGABLE_UPDATE_ATTEMPTED = (HRESULT)(ErrorCode | 0x40E); // 3410 + internal static readonly HRESULT WGXERR_UCE_NO_MULTIPLE_WORKER_THREADS = (HRESULT)(ErrorCode | 0x40F); // 3409 + internal static readonly HRESULT WGXERR_UCE_REMOTINGNOTSUPPORTED = (HRESULT)(ErrorCode | 0x410); // 3408 + internal static readonly HRESULT WGXERR_UCE_MISSINGENDCOMMAND = (HRESULT)(ErrorCode | 0x411); // 3407 + internal static readonly HRESULT WGXERR_UCE_MISSINGBEGINCOMMAND = (HRESULT)(ErrorCode | 0x412); // 3406 + internal static readonly HRESULT WGXERR_UCE_CHANNELSYNCTIMEDOUT = (HRESULT)(ErrorCode | 0x413); // 3405 + internal static readonly HRESULT WGXERR_UCE_CHANNELSYNCABANDONED = (HRESULT)(ErrorCode | 0x414); // 3404 + internal static readonly HRESULT WGXERR_UCE_UNSUPPORTEDTRANSPORTVERSION = (HRESULT)(ErrorCode | 0x415); // 3403 + internal static readonly HRESULT WGXERR_UCE_TRANSPORTUNAVAILABLE = (HRESULT)(ErrorCode | 0x416); // 3402 + internal static readonly HRESULT WGXERR_UCE_FEEDBACK_UNSUPPORTED = (HRESULT)(ErrorCode | 0x417); // 3401 + internal static readonly HRESULT WGXERR_UCE_COMMANDTRANSPORTDENIED = (HRESULT)(ErrorCode | 0x418); // 3400 + internal static readonly HRESULT WGXERR_UCE_GRAPHICSSTREAMUNAVAILABLE = (HRESULT)(ErrorCode | 0x419); // 3399 + internal static readonly HRESULT WGXERR_UCE_GRAPHICSSTREAMALREADYOPEN = (HRESULT)(ErrorCode | 0x420); // 3398 + internal static readonly HRESULT WGXERR_UCE_TRANSPORTDISCONNECTED = (HRESULT)(ErrorCode | 0x421); // 3397 + internal static readonly HRESULT WGXERR_UCE_TRANSPORTOVERLOADED = (HRESULT)(ErrorCode | 0x422); // 3396 + internal static readonly HRESULT WGXERR_UCE_PARTITION_ZOMBIED = (HRESULT)(ErrorCode | 0x423); // 3395 + + + + // MIL AV Specific errors + + internal static readonly HRESULT WGXERR_AV_NOCLOCK = (HRESULT)(ErrorCode | 0x500); + internal static readonly HRESULT WGXERR_AV_NOMEDIATYPE = (HRESULT)(ErrorCode | 0x501); + internal static readonly HRESULT WGXERR_AV_NOVIDEOMIXER = (HRESULT)(ErrorCode | 0x502); + internal static readonly HRESULT WGXERR_AV_NOVIDEOPRESENTER = (HRESULT)(ErrorCode | 0x503); + internal static readonly HRESULT WGXERR_AV_NOREADYFRAMES = (HRESULT)(ErrorCode | 0x504); + internal static readonly HRESULT WGXERR_AV_MODULENOTLOADED = (HRESULT)(ErrorCode | 0x505); + internal static readonly HRESULT WGXERR_AV_WMPFACTORYNOTREGISTERED = (HRESULT)(ErrorCode | 0x506); + internal static readonly HRESULT WGXERR_AV_INVALIDWMPVERSION = (HRESULT)(ErrorCode | 0x507); + internal static readonly HRESULT WGXERR_AV_INSUFFICIENTVIDEORESOURCES = (HRESULT)(ErrorCode | 0x508); + internal static readonly HRESULT WGXERR_AV_VIDEOACCELERATIONNOTAVAILABLE = (HRESULT)(ErrorCode | 0x509); + internal static readonly HRESULT WGXERR_AV_REQUESTEDTEXTURETOOBIG = (HRESULT)(ErrorCode | 0x50A); + internal static readonly HRESULT WGXERR_AV_SEEKFAILED = (HRESULT)(ErrorCode | 0x50B); + internal static readonly HRESULT WGXERR_AV_UNEXPECTEDWMPFAILURE = (HRESULT)(ErrorCode | 0x50C); + internal static readonly HRESULT WGXERR_AV_MEDIAPLAYERCLOSED = (HRESULT)(ErrorCode | 0x50D); + internal static readonly HRESULT WGXERR_AV_UNKNOWNHARDWAREERROR = (HRESULT)(ErrorCode | 0x50E); + + // Unused 0x60E - 0x61b + + // D3DImage specific errors + internal static readonly HRESULT WGXERR_D3DI_INVALIDSURFACEUSAGE = (HRESULT)(ErrorCode | 0x800); + internal static readonly HRESULT WGXERR_D3DI_INVALIDSURFACESIZE = (HRESULT)(ErrorCode | 0x801); + internal static readonly HRESULT WGXERR_D3DI_INVALIDSURFACEPOOL = (HRESULT)(ErrorCode | 0x802); + internal static readonly HRESULT WGXERR_D3DI_INVALIDSURFACEDEVICE = (HRESULT)(ErrorCode | 0x803); + internal static readonly HRESULT WGXERR_D3DI_INVALIDANTIALIASINGSETTINGS = (HRESULT)(ErrorCode | 0x804); +} + +#pragma warning restore IDE1006 // Naming Styles +#pragma warning restore format diff --git a/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/PrimitivesHResultExtensions.cs b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/PrimitivesHResultExtensions.cs new file mode 100644 index 00000000000..45d7db65f06 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/src/System.Windows.Primitives/Windows/Win32/Foundation/PrimitivesHResultExtensions.cs @@ -0,0 +1,85 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using Windows.Win32.System.Diagnostics.Debug; + +namespace Windows.Win32.Foundation; + +internal static class PrimitivesHResultExtensions +{ + // Can't find these defined or documented anywhere + private const int COMPONENT_MASK = 0b_11100000_00000000; + private const int COMPONENT_WINCODEC_ERROR = 0b_00100000_00000000; + + /// + /// if the HRESULT represents a Windows Imaging Component (WIC) error. + /// + internal static bool IsWindowsCodecError(this HRESULT result) => + result.Facility == FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + && ((result.Value & COMPONENT_MASK) == COMPONENT_WINCODEC_ERROR); + + /// + /// if the represents an code. + /// + internal static bool IsNtStatus(this HRESULT result) => + (result.Value & (int)FACILITY_CODE.FACILITY_NT_BIT) == (int)FACILITY_CODE.FACILITY_NT_BIT; + + /// + /// Extracts the code. Check before calling this method. + /// + internal static NTSTATUS ToNtStatus(this HRESULT result) + { + Debug.Assert(result.IsNtStatus()); + return new NTSTATUS(result.Value & ~(int)FACILITY_CODE.FACILITY_NT_BIT); + } + + /// + /// Throws an exception if the represents a failure. If the error would normally result + /// in a and the result is a Win32 error, a is thrown + /// instead. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static HRESULT ThrowOnFailureUnwrapWin32(this HRESULT result) + { + if (result.Failed) + { + Throw(result); + } + + return result; + + [MethodImpl(MethodImplOptions.NoInlining)] + static void Throw(HRESULT result) + { + throw result.GetExceptionUnwrapWin32() + ?? new InvalidOperationException() { HResult = result }; + } + } + + /// + /// Gets an exception if the represents a failure. If the error would normally result + /// in a and the result is a Win32 error, a is thrown + /// instead. + /// + /// + /// The exception, or if the result is a success code. + /// + internal static Exception? GetExceptionUnwrapWin32(this HRESULT result) + { + if (result.Succeeded) + { + return null; + } + + // Pasing in -1 prevents thread IErrorInfo from trumping what we're trying to raise. + Exception? e = Marshal.GetExceptionForHR(result, -1); + Debug.Assert(e is not null); + + return e is COMException && result.Facility == FACILITY_CODE.FACILITY_WIN32 + ? new Win32Exception(result.Code) + : e; + } +} diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/MS/Internal/Automation/FocusTracker.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/MS/Internal/Automation/FocusTracker.cs index 4e538718bc4..6d520fdbef8 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/MS/Internal/Automation/FocusTracker.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClient/MS/Internal/Automation/FocusTracker.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -172,7 +172,7 @@ private AutomationElement GetFocusedElementFromWinEvent(IntPtr hwnd, int idObjec // use that instead. This is here to get the subset link in the listview but could be usefull // for listview subitems as well. IRawElementProviderSimple realFocus = fragment.GetFocus(); - if(realFocus != null && !Object.ReferenceEquals(realFocus, provider)) + if(realFocus != null && !ReferenceEquals(realFocus, provider)) { provider = realFocus; } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/Accessible.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/Accessible.cs index 84284eb9995..09a15f36c42 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/Accessible.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/Accessible.cs @@ -1,11 +1,8 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. // Description: Wraps some of IAccessible to support getting basic properties // and default action -// - // PRESHARP: In order to avoid generating warnings about unkown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 @@ -18,6 +15,8 @@ using Accessibility; using System.Runtime.InteropServices; using MS.Win32; +using Windows.Win32.Foundation; +using Windows.Win32.System.Diagnostics.Debug; namespace MS.Internal.AutomationProxies { @@ -172,7 +171,7 @@ internal static Accessible CreateNativeFromEvent(IntPtr hwnd, int idObject, int // unwrap the pointer that was returned IAccessible acc = null; - int hr = NativeMethods.S_FALSE; + int hr = HRESULT.S_FALSE; try { @@ -212,14 +211,14 @@ internal static Accessible CreateNativeFromEvent(IntPtr hwnd, int idObject, int // !Marshal.IsComObject()) - that only protects us from managed IAccessibles we get back directly; we could // still hit the above issue if we get back a remote unmanaged impl that then returns a maanged impl via // navigation (Media Center does this). So we now use AOFW all the time. - if(hr == NativeMethods.S_OK && acc != null) + if(hr == HRESULT.S_OK && acc != null) { object obj = null; hr = UnsafeNativeMethods.AccessibleObjectFromWindow(hwnd, idObject, ref UnsafeNativeMethods.IID_IUnknown, ref obj); acc = obj as IAccessible; } - if (hr != NativeMethods.S_OK || acc == null) + if (hr != HRESULT.S_OK || acc == null) { return null; } @@ -312,7 +311,7 @@ internal Accessible LastChild { get { - return _idChild == NativeMethods.CHILD_SELF ? GetChildAt(_acc, null, Accessible.GetChildCount(_acc) - 1) : null; + return _idChild == NativeMethods.CHILD_SELF ? GetChildAt(_acc, null, GetChildCount(_acc) - 1) : null; } } @@ -335,7 +334,7 @@ internal Accessible NextSibling(Accessible parent) } Accessible rval = null; - if (_accessibleChildrenIndex + 1 < Accessible.GetChildCount(parent._acc)) + if (_accessibleChildrenIndex + 1 < GetChildCount(parent._acc)) { rval = GetChildAt(parent._acc, children, _accessibleChildrenIndex + 1); } @@ -436,7 +435,7 @@ internal bool IsAvailableToUser // We're not dealing with menus [in this version of NativeMsaaProxy] so won't worry about them // here. To "clean up" the tree we'll skip over IAccessibles that have the above states. // May revisit per user feedback. - if (Accessible.HasState(state, AccessibleState.Invisible) && !Accessible.HasState(state, AccessibleState.Offscreen)) + if (HasState(state, AccessibleState.Invisible) && !HasState(state, AccessibleState.Offscreen)) return false; return true; @@ -563,8 +562,8 @@ internal Rect Location internal static Accessible GetFullAccessibleChildByIndex(Accessible accParent, int index) { - int childCount = 0; - object[] accChildren = Accessible.GetAccessibleChildren(accParent.IAccessible, out childCount); + int childCount = 0; + object[] accChildren = GetAccessibleChildren(accParent.IAccessible, out childCount); if (accChildren != null && 0 <= index && index < accChildren.Length) { @@ -572,12 +571,12 @@ internal static Accessible GetFullAccessibleChildByIndex(Accessible accParent, i IAccessible accChild = child as IAccessible; if (accChild != null) { - return Accessible.Wrap(accChild); + return Wrap(accChild); } else if (child is int) { int idChild = (int)child; - return Accessible.Wrap(accParent.IAccessible, idChild); + return Wrap(accParent.IAccessible, idChild); } } @@ -861,7 +860,7 @@ internal IntPtr Window try { int result = UnsafeNativeMethods.WindowFromAccessibleObject(_acc, ref _hwnd); - if ( result != NativeMethods.S_OK) + if ( result != HRESULT.S_OK) { _hwnd = IntPtr.Zero; } @@ -900,12 +899,12 @@ internal static int AccessibleObjectFromWindow(IntPtr hwnd, int idObject, ref Ac accObject = obj as IAccessible; - if (hr != NativeMethods.S_OK || accObject == null) + if (hr != HRESULT.S_OK || accObject == null) { - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } - acc = Accessible.Wrap(accObject); + acc = Wrap(accObject); return hr; } catch (Exception e) @@ -915,7 +914,7 @@ internal static int AccessibleObjectFromWindow(IntPtr hwnd, int idObject, ref Ac throw; } - return NativeMethods.S_FALSE; + return HRESULT.S_FALSE; } } @@ -937,9 +936,9 @@ internal static object[] GetAccessibleChildren(IAccessible accessibleObject, out aChildren = new object[childCount]; // Get the raw children because accNavigate doesn't work - if (UnsafeNativeMethods.AccessibleChildren(accessibleObject, 0, childCount, aChildren, out childrenReturned) == NativeMethods.E_INVALIDARG) + if (UnsafeNativeMethods.AccessibleChildren(accessibleObject, 0, childCount, aChildren, out childrenReturned) == HRESULT.E_INVALIDARG) { - System.Diagnostics.Debug.Assert(false, "Call to AccessibleChildren() returned E_INVALIDARG."); + Debug.Assert(false, "Call to AccessibleChildren() returned E_INVALIDARG."); throw new ElementNotAvailableException(); } } @@ -1306,7 +1305,7 @@ internal static NativeMethods.Win32Rect GetLocation(IAccessible acc, int idChild rect.bottom += rect.top; // convert height to bottom return rect; } - + // converts the exception into a more appropriate one and throws it, // or returns false indicating the caller should assume a default result // or returns true indicating the caller should rethrow the exception. @@ -1349,45 +1348,72 @@ private static bool HandleIAccessibleException(Exception e) // holding pointers to them, like when Trident navigates to a new page. int errorCode = comException.ErrorCode; + HRESULT result = (HRESULT)errorCode; + if (result.Facility == FACILITY_CODE.FACILITY_WIN32) + { + switch ((WIN32_ERROR)result.Code) + { + case WIN32_ERROR.ERROR_OUTOFMEMORY: + // Some OLEACC proxies produce out-of-memory for non-critical reasons: + // notably, the treeview proxy will raise this if the target HWND no longer exists, + // GetWindowThreadProcessID fails and it therefore won't be able to allocate shared + // memory in the target process, so it incorrectly assumes OOM. + throw new ElementNotAvailableException(e); + case WIN32_ERROR.ERROR_ACCESS_DENIED: + // This is returned when you call get_accValue to get the value of a password control. + throw new UnauthorizedAccessException(); + }; + } + + if (result == HRESULT.E_FAIL || result == HRESULT.E_NOTIMPL) + { + // An unknown or generic error occurred; treat as a not-impl. (Other methods on the object + // may still work, so don't treat as ElementNotAvailable.) + throw new ArgumentException(SR.InvalidParameter); + } + else if (result == HRESULT.E_INVALIDARG) + { + // One or more arguments were invalid. This error occurs when the caller attempts to identify + // a child object using an identifier that the server does not recognize. This error also results + // when a client attempts to identify a child object within an object that has no children. + throw new ArgumentException(SR.InvalidParameter); + } + else if (result == HRESULT.DISP_E_MEMBERNOTFOUND) + { + // The object does not support the requested property or action. For example, + // a push button returns this value if you request its Value property, since + // it does not have a Value property. + return false; + } + + // All of these can be updated to use defines from System.Private.Windows.Core when available. + // See inline comments for more. switch (errorCode) { + // 2 HRESULT defines pending System.Private.Windows.Core update (FACILITY_RPC) case NativeMethods.RPC_E_SERVERFAULT: // The server threw an exception. case NativeMethods.RPC_E_DISCONNECTED: // The object invoked has disconnected from its clients. + + // WIN32_ERROR wrapped RPC_STATUS.RPC_S_SERVER_UNAVAILABLE case NativeMethods.RPC_E_UNAVAILABLE: // The server has disappeared + + // HRESULT define pending System.Private.Windows.Core update case NativeMethods.DISP_E_BADINDEX: // Index out of Range (Usually means Children have disappeared) + + // WIN32_ERROR wrapped RPC_STATUS.RPC_S_UNKNOWN_IF case NativeMethods.E_INTERFACEUNKNOWN: // The interface is unknown, usually because things have changed. + + // Not a publicly defined HRESULT. FACILITY_CONTROL facility codes are VB specific errors. + // Ultimately this comes from Visual Basic VB_E_NOTOBJECT or "Object required". + // It is thrown by VBA when an object has been collected or a VARIANT is not an IDispatch + // or IUnkown object. + // + // https://learn.microsoft.com/office/vba/language/reference/user-interface-help/object-required-error-424 case NativeMethods.E_UNKNOWNWORDERROR: // An unknown Error code thrown by Word being closed while a search is running - case NativeMethods.RPC_E_SYS_CALL_FAILED: // System call failed during RPC. - throw new ElementNotAvailableException(e); - case NativeMethods.E_FAIL: - // An unknown or generic error occurred; treat as a not-impl. (Other methods on the object - // may still work, so don't treat as ElementNotAvailable.) - case NativeMethods.E_MEMBERNOTFOUND: - // The object does not support the requested property or action. For example, - // a push button returns this value if you request its Value property, since - // it does not have a Value property. - case NativeMethods.E_NOTIMPL: - // just return on E_NOTIMPL errors - return false; - - case NativeMethods.E_OUTOFMEMORY: - // Some OLEACC proxies produce out-of-memory for non-critical reasons: - // notably, the treeview proxy will raise this if the target HWND no longer exists, - // GetWindowThreadProcessID fails and it therefore won't be able to allocate shared - // memory in the target process, so it incorrectly assumes OOM. + // 2 HRESULT defines pending System.Private.Windows.Core update (FACILITY_RPC) + case NativeMethods.RPC_E_SYS_CALL_FAILED: // System call failed during RPC. throw new ElementNotAvailableException(e); - - case NativeMethods.E_INVALIDARG: - // One or more arguments were invalid. This error occurs when the caller attempts to identify - // a child object using an identifier that the server does not recognize. This error also results - // when a client attempts to identify a child object within an object that has no children. - throw new ArgumentException(SR.InvalidParameter); - - case NativeMethods.E_ACCESSDENIED: - // This is returned when you call get_accValue to get the value of a password control. - throw new UnauthorizedAccessException(); - case NativeMethods.E_UNEXPECTED: // An IAccessible server has been released unexpectedly but still has pending events. // If the current execution context is inside one of these event handlers it must be @@ -1396,7 +1422,7 @@ private static bool HandleIAccessibleException(Exception e) default: // we want to know when we get an exception we haven't seen before - Debug.Assert(false, string.Format(CultureInfo.CurrentCulture, "MsaaNativeProvider: IAccessible threw a COMException: {0}", e.Message)); + Debug.Fail($"MsaaNativeProvider: IAccessible threw a COMException: {e.Message}"); break; } } @@ -1442,7 +1468,7 @@ static IAccessible WashPartialTrustWinformsAccessible(IAccessible old) int childCount; - object[] rawChildren = Accessible.GetAccessibleChildren(accParent, out childCount); + object[] rawChildren = GetAccessibleChildren(accParent, out childCount); for (int i = 0; i < childCount; i++) { diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/ProxySimple.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/ProxySimple.cs index 5c9371593d7..31b8e71a0ee 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/ProxySimple.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/ProxySimple.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -37,6 +37,7 @@ using Accessibility; using System.Windows; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -152,7 +153,7 @@ internal int[] MakeRuntimeId() int[] id = new int[idLen]; // Base runtime id is the number indicating Win32Provider + hwnd - id[0] = ProxySimple.Win32ProviderRuntimeIdBase; + id[0] = Win32ProviderRuntimeIdBase; id[1] = _hwnd.ToInt32(); // Append part id to make this unique @@ -642,7 +643,7 @@ internal virtual IAccessible AccessibleObject { Accessible acc = null; // We need to go search for it - _IAccessible = Accessible.AccessibleObjectFromWindow(_hwnd, NativeMethods.OBJID_CLIENT, ref acc) == NativeMethods.S_OK ? acc.IAccessible : null; + _IAccessible = Accessible.AccessibleObjectFromWindow(_hwnd, NativeMethods.OBJID_CLIENT, ref acc) == HRESULT.S_OK ? acc.IAccessible : null; } return _IAccessible; diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/SafeThemeHandle.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/SafeThemeHandle.cs index cfd44a69144..330a1bd0277 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/SafeThemeHandle.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/SafeThemeHandle.cs @@ -1,12 +1,10 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. using System; using System.Runtime.InteropServices; -//using System.Runtime.CompilerServices; using Microsoft.Win32.SafeHandles; -using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -28,7 +26,7 @@ protected override bool ReleaseHandle() { // MustRun methods may only call other MustRun methods, // must not allocate along paths that must succeed, etc. - return !IsInvalid ? CloseThemeData(handle) == (IntPtr)NativeMethods.S_OK : true; + return !IsInvalid ? CloseThemeData(handle) == (IntPtr)HRESULT.S_OK : true; } [DllImport("UxTheme.dll", CharSet = CharSet.Auto)/**/] diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WinFormsSpinner.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WinFormsSpinner.cs index 9afd74b2cb5..39996f0f60c 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WinFormsSpinner.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WinFormsSpinner.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System.Windows.Automation.Provider; using System.Windows; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -178,7 +179,7 @@ internal static IRawElementProviderSimple Create(IntPtr hwnd, int idChild) // Use IAccessible implementation to confirm the spinner & children Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwndSpin, NativeMethods.OBJID_CLIENT, ref acc) != NativeMethods.S_OK || acc == null) + if (Accessible.AccessibleObjectFromWindow(hwndSpin, NativeMethods.OBJID_CLIENT, ref acc) != HRESULT.S_OK || acc == null) { return null; } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsButton.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsButton.cs index 51976c9c4c3..233dc30c296 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsButton.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsButton.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,6 +8,7 @@ using System.Windows.Automation; using System.Windows.Automation.Provider; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -319,7 +320,7 @@ IRawElementProviderSimple[] ISelectionProvider.GetSelection() IntPtr hwndRadioButton = GetSelection(); if (hwndRadioButton == IntPtr.Zero || - Accessible.AccessibleObjectFromWindow(hwndRadioButton, NativeMethods.OBJID_CLIENT, ref accRadioButton) != NativeMethods.S_OK || + Accessible.AccessibleObjectFromWindow(hwndRadioButton, NativeMethods.OBJID_CLIENT, ref accRadioButton) != HRESULT.S_OK || accRadioButton == null) { // framework will handle this one correctly @@ -394,7 +395,7 @@ IRawElementProviderSimple ISelectionItemProvider.SelectionContainer if (hwndParent != IntPtr.Zero && WindowsFormsHelper.IsWindowsFormsControl(hwndParent)) { Accessible accParent = null; - if (Accessible.AccessibleObjectFromWindow(hwndParent, NativeMethods.OBJID_CLIENT, ref accParent) != NativeMethods.S_OK || accParent == null) + if (Accessible.AccessibleObjectFromWindow(hwndParent, NativeMethods.OBJID_CLIENT, ref accParent) != HRESULT.S_OK || accParent == null) { return null; } @@ -680,7 +681,7 @@ unsafe private bool FindRadioButtonChild(IntPtr hwnd, void* lParam) } Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == NativeMethods.S_OK && + if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == HRESULT.S_OK && acc != null && acc.Role == AccessibleRole.RadioButton) { @@ -720,7 +721,7 @@ private unsafe bool FindSelectedRadioButtonChild(IntPtr hwnd, void* lParam) } Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == NativeMethods.S_OK && + if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == HRESULT.S_OK && acc != null && acc.Role == AccessibleRole.RadioButton && acc.HasState(AccessibleState.Checked)) diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsFormsHelpers.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsFormsHelpers.cs index edf275b38e5..cde5fcd74cc 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsFormsHelpers.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsFormsHelpers.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -11,6 +11,7 @@ using System; using System.Windows.Automation.Provider; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -28,7 +29,7 @@ internal static IRawElementProviderSimple Create(IntPtr hwnd, int idChild, int i // return a Native IAccessble and not a OleAcc implementaion. Winforms does provide a Native IAccessible. Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwnd, idObject, ref acc) != NativeMethods.S_OK || acc == null) + if (Accessible.AccessibleObjectFromWindow(hwnd, idObject, ref acc) != HRESULT.S_OK || acc == null) { return null; } @@ -74,7 +75,7 @@ internal static IRawElementProviderSimple CreateButton(IntPtr hwnd) // return a Native IAccessble and not a OleAcc implementaion. Winforms does provide a Native IAccessible. Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) != NativeMethods.S_OK || acc == null) + if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) != HRESULT.S_OK || acc == null) { return null; } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsRichEdit.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsRichEdit.cs index 2c121b48c32..eeaaf7a5d47 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsRichEdit.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsRichEdit.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -12,6 +12,7 @@ using System.Windows.Automation.Provider; using Accessibility; using MS.Win32; +using Windows.Win32.Foundation; using NativeMethodsSetLastError = MS.Internal.UIAutomationClientSideProviders.NativeMethodsSetLastError; namespace MS.Internal.AutomationProxies @@ -481,7 +482,11 @@ private void EnsureTextDocument() { object obj = null; - if (UnsafeNativeMethods.AccessibleObjectFromWindow(WindowHandle, NativeMethods.OBJID_NATIVEOM, ref UnsafeNativeMethods.IID_IDispatch, ref obj) != NativeMethods.S_OK) + if (UnsafeNativeMethods.AccessibleObjectFromWindow( + WindowHandle, + NativeMethods.OBJID_NATIVEOM, + ref UnsafeNativeMethods.IID_IDispatch, + ref obj) != HRESULT.S_OK) { throw new System.NotImplementedException(SR.NoITextDocumentFromRichEdit); } @@ -532,7 +537,7 @@ private string GetValue() { sbText.Append(text.Substring(start, embeddedObjectOffset - start)); range.SetRange(embeddedObjectOffset, end); - if (range.GetEmbeddedObject(out embeddedObject) == NativeMethods.S_OK && embeddedObject != null) + if (range.GetEmbeddedObject(out embeddedObject) == HRESULT.S_OK && embeddedObject != null) { GetEmbeddedObjectText(embeddedObject, sbText); } @@ -580,7 +585,7 @@ private void GetEmbeddedObjectText(object embeddedObject, StringBuilder sbText) // Didn't get IAccessible (or didn't get a name from it). // Try the IDataObject technique instead... - int hr = NativeMethods.S_FALSE; + int hr = HRESULT.S_FALSE; IDataObject dataObject = null; IOleObject oleObject = embeddedObject as IOleObject; if (oleObject != null) @@ -590,7 +595,7 @@ private void GetEmbeddedObjectText(object embeddedObject, StringBuilder sbText) } // If that didn't work, try the embeddedObject as a IDataObject instead... - if (hr != NativeMethods.S_OK) + if (hr != HRESULT.S_OK) { dataObject = embeddedObject as IDataObject; } @@ -618,7 +623,7 @@ private void GetEmbeddedObjectText(object embeddedObject, StringBuilder sbText) hr = dataObject.GetData(ref fetc, ref med); - if (hr != NativeMethods.S_OK || med.hGlobal == IntPtr.Zero) + if (hr != HRESULT.S_OK || med.hGlobal == IntPtr.Zero) { // If we didn't get Unicode, try for ANSI instead... fGotUnicode = false; @@ -628,7 +633,7 @@ private void GetEmbeddedObjectText(object embeddedObject, StringBuilder sbText) } // Did we get anything? - if (hr != NativeMethods.S_OK || med.hGlobal == IntPtr.Zero) + if (hr != HRESULT.S_OK || med.hGlobal == IntPtr.Zero) { return; } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatic.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatic.cs index e90bca4368b..cdd697ad99e 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatic.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatic.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -8,6 +8,7 @@ using System.Windows.Automation; using System.Windows.Automation.Provider; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -172,7 +173,7 @@ private static bool IsLinkLabel(IntPtr hwnd) // could be a label or a linklabel // we differentiate based on whether the item has children or not Accessible acc = null; - return Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == NativeMethods.S_OK && acc != null && acc.ChildCount > 0; + return Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) == HRESULT.S_OK && acc != null && acc.ChildCount > 0; } private static StaticType GetStaticTypeFromStyle(int style) diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatusBar.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatusBar.cs index a98ccd35d31..3682c1db64f 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatusBar.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsStatusBar.cs @@ -1,6 +1,5 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. // Description: Windows Status Proxy @@ -10,6 +9,7 @@ using System.Windows; using System.Globalization; using MS.Win32; +using Windows.Win32.Foundation; namespace MS.Internal.AutomationProxies { @@ -562,7 +562,7 @@ static internal Rect GetBoundingRectangle (IntPtr hwnd, int item) else { Accessible acc = null; - if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) != NativeMethods.S_OK || acc == null) + if (Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc) != HRESULT.S_OK || acc == null) { return Rect.Empty; } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsUpDown.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsUpDown.cs index 2e2a9886647..1273226e9d3 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsUpDown.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Internal/AutomationProxies/WindowsUpDown.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -9,6 +9,7 @@ using System.Windows.Automation; using System.Windows.Automation.Provider; using MS.Win32; +using Windows.Win32.Foundation; using NativeMethodsSetLastError = MS.Internal.UIAutomationClientSideProviders.NativeMethodsSetLastError; namespace MS.Internal.AutomationProxies @@ -308,7 +309,7 @@ internal static bool IsWinformUpdown (IntPtr hwnd) int hr = Accessible.AccessibleObjectFromWindow(hwnd, NativeMethods.OBJID_CLIENT, ref acc); // Verify the role - return hr == NativeMethods.S_OK && acc != null ? acc.Role == AccessibleRole.SpinButton : false; + return hr == HRESULT.S_OK && acc != null ? acc.Role == AccessibleRole.SpinButton : false; } #endregion @@ -577,7 +578,7 @@ static internal Rect GetBoundingRectangle(IntPtr hwnd, WindowsUpDown.SpinItem it switch (item) { - case WindowsUpDown.SpinItem.DownArrow: + case SpinItem.DownArrow: if (fHorz) { int width = (updownRect.right - updownRect.left); @@ -591,7 +592,7 @@ static internal Rect GetBoundingRectangle(IntPtr hwnd, WindowsUpDown.SpinItem it // Don't need to normalize, GetWindowRect returns screen coordinates. return updownRect.ToRect(false); - case WindowsUpDown.SpinItem.UpArrow: + case SpinItem.UpArrow: if (fHorz) { int width = (updownRect.right - updownRect.left); diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Win32/NativeMethods.cs b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Win32/NativeMethods.cs index baf3c151c61..dd11ab77cb1 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Win32/NativeMethods.cs +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationClientSideProviders/MS/Win32/NativeMethods.cs @@ -1,4 +1,4 @@ -// Licensed to the .NET Foundation under one or more agreements. +// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -1183,10 +1183,10 @@ internal Win32Rect (int left, int top, int right, int bottom) internal Win32Rect (Rect rc) { - this.left = (int)rc.Left; - this.top = (int)rc.Top; - this.right = (int)rc.Right; - this.bottom = (int)rc.Bottom; + left = (int)rc.Left; + top = (int)rc.Top; + right = (int)rc.Right; + bottom = (int)rc.Bottom; } internal bool IsEmpty @@ -1231,9 +1231,9 @@ internal void Normalize(bool isRtoL) // Invert the left and right values for right-to-left windows if (isRtoL) { - int temp = this.left; - this.left = this.right; - this.right = temp; + int temp = left; + left = right; + right = temp; } } } diff --git a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/UIAutomationTypes.csproj b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/UIAutomationTypes.csproj index 42827702f21..d81c32706bd 100644 --- a/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/UIAutomationTypes.csproj +++ b/src/Microsoft.DotNet.Wpf/src/UIAutomation/UIAutomationTypes/UIAutomationTypes.csproj @@ -85,9 +85,11 @@ false + + diff --git a/src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Interop/ErrorCodes.cs b/src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Interop/ErrorCodes.cs deleted file mode 100644 index a0f56983a74..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/Interop/ErrorCodes.cs +++ /dev/null @@ -1,456 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.ComponentModel; -using System.Globalization; -using System.Reflection; -using System.Runtime.InteropServices; - -namespace MS.Internal.Interop -{ - /// - /// Wrapper for common Win32 status codes. - /// - [StructLayout(LayoutKind.Explicit)] - internal struct Win32Error - { - [FieldOffset(0)] - private readonly int _value; - - // NOTE: These public static field declarations are automatically - // picked up by (HRESULT's) ToString through reflection. - - /// The operation completed successfully. - public static readonly Win32Error ERROR_SUCCESS = new Win32Error(0); - /// Incorrect function. - public static readonly Win32Error ERROR_INVALID_FUNCTION = new Win32Error(1); - /// The system cannot find the file specified. - public static readonly Win32Error ERROR_FILE_NOT_FOUND = new Win32Error(2); - /// The system cannot find the path specified. - public static readonly Win32Error ERROR_PATH_NOT_FOUND = new Win32Error(3); - /// The system cannot open the file. - public static readonly Win32Error ERROR_TOO_MANY_OPEN_FILES = new Win32Error(4); - /// Access is denied. - public static readonly Win32Error ERROR_ACCESS_DENIED = new Win32Error(5); - /// The handle is invalid. - public static readonly Win32Error ERROR_INVALID_HANDLE = new Win32Error(6); - /// Not enough storage is available to complete this operation. - public static readonly Win32Error ERROR_OUTOFMEMORY = new Win32Error(14); - /// There are no more files. - public static readonly Win32Error ERROR_NO_MORE_FILES = new Win32Error(18); - /// The process cannot access the file because it is being used by another process. - public static readonly Win32Error ERROR_SHARING_VIOLATION = new Win32Error(32); - /// The parameter is incorrect. - public static readonly Win32Error ERROR_INVALID_PARAMETER = new Win32Error(87); - /// The data area passed to a system call is too small. - public static readonly Win32Error ERROR_INSUFFICIENT_BUFFER = new Win32Error(122); - /// Cannot nest calls to LoadModule. - public static readonly Win32Error ERROR_NESTING_NOT_ALLOWED = new Win32Error(215); - /// Illegal operation attempted on a registry key that has been marked for deletion. - public static readonly Win32Error ERROR_KEY_DELETED = new Win32Error(1018); - /// There was no match for the specified key in the index. - public static readonly Win32Error ERROR_NO_MATCH = new Win32Error(1169); - /// An invalid device was specified. - public static readonly Win32Error ERROR_BAD_DEVICE = new Win32Error(1200); - /// The operation was canceled by the user. - public static readonly Win32Error ERROR_CANCELLED = new Win32Error(1223); - /// Invalid window handle. - public static readonly Win32Error ERROR_INVALID_WINDOW_HANDLE = new Win32Error(1400); - /// This operation returned because the timeout period expired. - public static readonly Win32Error ERROR_TIMEOUT = new Win32Error(1460); - /// The specified datatype is invalid. - public static readonly Win32Error ERROR_INVALID_DATATYPE = new Win32Error(1804); - - /// - /// Create a new Win32 error. - /// - /// The integer value of the error. - public Win32Error(int i) - { - _value = i; - } - - /// Performs HRESULT_FROM_WIN32 conversion. - /// The Win32 error being converted to an HRESULT. - /// The equivilent HRESULT value. - public static explicit operator HRESULT(Win32Error error) - { - // #define __HRESULT_FROM_WIN32(x) - // ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000))) - if (error._value <= 0) - { - return new HRESULT((uint)error._value); - } - return HRESULT.Make(true, Facility.Win32, error._value & 0x0000FFFF); - } - - // Method version of the cast operator. - /// Performs HRESULT_FROM_WIN32 conversion. - /// The Win32 error being converted to an HRESULT. - /// The equivilent HRESULT value. - public HRESULT ToHRESULT() - { - return (HRESULT)this; - } - - /// Performs the equivalent of Win32's GetLastError() - /// A Win32Error instance with the result of the native GetLastError - public static Win32Error GetLastError() - { - return new Win32Error(Marshal.GetLastWin32Error()); - } - - public override bool Equals(object obj) - { - try - { - return ((Win32Error)obj)._value == _value; - } - catch (InvalidCastException) - { - return false; - } - } - - public override int GetHashCode() - { - return _value.GetHashCode(); - } - - /// - /// Compare two Win32 error codes for equality. - /// - /// The first error code to compare. - /// The second error code to compare. - /// Whether the two error codes are the same. - public static bool operator ==(Win32Error errLeft, Win32Error errRight) - { - return errLeft._value == errRight._value; - } - - /// - /// Compare two Win32 error codes for inequality. - /// - /// The first error code to compare. - /// The second error code to compare. - /// Whether the two error codes are not the same. - public static bool operator !=(Win32Error errLeft, Win32Error errRight) - { - return !(errLeft == errRight); - } - } - - internal enum Facility - { - /// FACILITY_NULL - Null = 0, - /// FACILITY_RPC - Rpc = 1, - /// FACILITY_DISPATCH - Dispatch = 2, - /// FACILITY_STORAGE - Storage = 3, - /// FACILITY_ITF - Itf = 4, - /// FACILITY_WIN32 - Win32 = 7, - /// FACILITY_WINDOWS - Windows = 8, - /// FACILITY_CONTROL - Control = 10, - /// MSDN doced facility code for ESE errors. - Ese = 0xE5E, - } - - /// Wrapper for HRESULT status codes. - [StructLayout(LayoutKind.Explicit)] - internal struct HRESULT - { - [FieldOffset(0)] - private readonly uint _value; - - // NOTE: These public static field declarations are automatically - // picked up by ToString through reflection. - /// S_OK - public static readonly HRESULT S_OK = new HRESULT(0x00000000); - /// S_FALSE - public static readonly HRESULT S_FALSE = new HRESULT(0x00000001); - /// E_NOTIMPL - public static readonly HRESULT E_NOTIMPL = new HRESULT(0x80004001); - /// E_NOINTERFACE - public static readonly HRESULT E_NOINTERFACE = new HRESULT(0x80004002); - /// E_POINTER - public static readonly HRESULT E_POINTER = new HRESULT(0x80004003); - /// E_ABORT - public static readonly HRESULT E_ABORT = new HRESULT(0x80004004); - /// E_FAIL - public static readonly HRESULT E_FAIL = new HRESULT(0x80004005); - /// E_UNEXPECTED - public static readonly HRESULT E_UNEXPECTED = new HRESULT(0x8000FFFF); - /// DISP_E_MEMBERNOTFOUND - public static readonly HRESULT DISP_E_MEMBERNOTFOUND = new HRESULT(0x80020003); - /// DISP_E_TYPEMISMATCH - public static readonly HRESULT DISP_E_TYPEMISMATCH = new HRESULT(0x80020005); - /// DISP_E_UNKNOWNNAME - public static readonly HRESULT DISP_E_UNKNOWNNAME = new HRESULT(0x80020006); - /// DISP_E_EXCEPTION - public static readonly HRESULT DISP_E_EXCEPTION = new HRESULT(0x80020009); - /// DISP_E_OVERFLOW - public static readonly HRESULT DISP_E_OVERFLOW = new HRESULT(0x8002000A); - /// DISP_E_BADINDEX - public static readonly HRESULT DISP_E_BADINDEX = new HRESULT(0x8002000B); - /// DISP_E_BADPARAMCOUNT - public static readonly HRESULT DISP_E_BADPARAMCOUNT = new HRESULT(0x8002000E); - /// DISP_E_PARAMNOTOPTIONAL - public static readonly HRESULT DISP_E_PARAMNOTOPTIONAL = new HRESULT(0x8002000F); - /// SCRIPT_E_REPORTED - public static readonly HRESULT SCRIPT_E_REPORTED = new HRESULT(0x80020101); - /// STG_E_INVALIDFUNCTION - public static readonly HRESULT STG_E_INVALIDFUNCTION = new HRESULT(0x80030001); - /// DESTS_E_NO_MATCHING_ASSOC_HANDLER. - /// - /// Win7 error code for Jump Lists. There is no associated handler for the given item registered by the specified application. - /// - public static readonly HRESULT DESTS_E_NO_MATCHING_ASSOC_HANDLER = new HRESULT(0x80040F03); - /// E_ACCESSDENIED - public static readonly HRESULT E_ACCESSDENIED = new HRESULT(0x80070005); - /// E_OUTOFMEMORY - public static readonly HRESULT E_OUTOFMEMORY = new HRESULT(0x8007000E); - /// E_INVALIDARG - public static readonly HRESULT E_INVALIDARG = new HRESULT(0x80070057); - /// COR_E_OBJECTDISPOSED - public static readonly HRESULT COR_E_OBJECTDISPOSED = new HRESULT(0x80131622); - /// WC_E_GREATERTHAN - public static readonly HRESULT WC_E_GREATERTHAN = new HRESULT(0xC00CEE23); - /// WC_E_SYNTAX - public static readonly HRESULT WC_E_SYNTAX = new HRESULT(0xC00CEE2D); - - /// - /// Create an HRESULT from an integer value. - /// - /// - public HRESULT(uint i) - { - _value = i; - } - - public static HRESULT Make(bool severe, Facility facility, int code) - { - //#define MAKE_HRESULT(sev,fac,code) \ - // ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) ) - return new HRESULT((uint)((severe ? (1 << 31) : 0) | ((int)facility << 16) | code)); - } - - /// - /// retrieve HRESULT_FACILITY - /// - public Facility Facility - { - get - { - return GetFacility((int)_value); - } - } - - public static Facility GetFacility(int errorCode) - { - // #define HRESULT_FACILITY(hr) (((hr) >> 16) & 0x1fff) - return (Facility)((errorCode >> 16) & 0x1fff); - } - - /// - /// retrieve HRESULT_CODE - /// - public int Code - { - get - { - return GetCode((int)_value); - } - } - - public static int GetCode(int error) - { - // #define HRESULT_CODE(hr) ((hr) & 0xFFFF) - return (int)(error & 0xFFFF); - } - - #region Object class override members - - /// - /// Get a string representation of this HRESULT. - /// - /// - public override string ToString() - { - // Use reflection to try to name this HRESULT. - // This is expensive, but if someone's ever printing HRESULT strings then - // I think it's a fair guess that they're not in a performance critical area - // (e.g. printing exception strings). - // This is less error prone than trying to keep the list in the function. - // To properly add an HRESULT's name to the ToString table, just add the HRESULT - // like all the others above. - // - // CONSIDER: This data is static. It could be cached - // after first usage for fast lookup since the keys are unique. - // - foreach (FieldInfo publicStaticField in typeof(HRESULT).GetFields(BindingFlags.Static | BindingFlags.Public)) - { - if (publicStaticField.FieldType == typeof(HRESULT)) - { - var hr = (HRESULT)publicStaticField.GetValue(null); - if (hr == this) - { - return publicStaticField.Name; - } - } - } - - // Try Win32 error codes also - if (Facility == Facility.Win32) - { - foreach (FieldInfo publicStaticField in typeof(Win32Error).GetFields(BindingFlags.Static | BindingFlags.Public)) - { - if (publicStaticField.FieldType == typeof(Win32Error)) - { - var error = (Win32Error)publicStaticField.GetValue(null); - if ((HRESULT)error == this) - { - return "HRESULT_FROM_WIN32(" + publicStaticField.Name + ")"; - } - } - } - } - - // If there's no good name for this HRESULT, - // return the string as readable hex (0x########) format. - return string.Format(CultureInfo.InvariantCulture, "0x{0:X8}", _value); - } - - public override bool Equals(object obj) - { - try - { - return ((HRESULT)obj)._value == _value; - } - catch (InvalidCastException) - { - return false; - } - } - - public override int GetHashCode() - { - return _value.GetHashCode(); - } - - #endregion - - public static bool operator ==(HRESULT hrLeft, HRESULT hrRight) - { - return hrLeft._value == hrRight._value; - } - - public static bool operator !=(HRESULT hrLeft, HRESULT hrRight) - { - return !(hrLeft == hrRight); - } - - public bool Succeeded - { - get { return (int)_value >= 0; } - } - - public bool Failed - { - get { return (int)_value < 0; } - } - - public void ThrowIfFailed() - { - ThrowIfFailed(null); - } - - public void ThrowIfFailed(string message) - { - Exception e = GetException(message); - - if (e != null) - { - throw e; - } - } - - public Exception GetException() - { - return GetException(null); - } - - public Exception GetException(string message) - { - if (!Failed) - { - return null; - } - - // If you're throwing an exception I assume it's OK for me to take some time to give it back. - // I want to convert the HRESULT to a more appropriate exception type than COMException. - // Marshal.ThrowExceptionForHR does this for me, but the general call uses GetErrorInfo - // if it's set, and then ignores the HRESULT that I've provided. This makes it so this - // call works the first time but you get burned on the second. To avoid this, I use - // the overload that explicitly ignores the IErrorInfo. - // In addition, the function doesn't allow me to set the Message unless I go through - // the process of implementing an IErrorInfo and then use that. There's no stock - // implementations of IErrorInfo available and I don't think it's worth the maintenance - // overhead of doing it, nor would it have significant value over this approach. - Exception e = Marshal.GetExceptionForHR((int)_value, new IntPtr(-1)); - Debug.Assert(e != null); - // ArgumentNullException doesn't have the right constructor parameters, - // (nor does Win32Exception...) - // but E_POINTER gets mapped to NullReferenceException, - // so I don't think it will ever matter. - Debug.Assert(!(e is ArgumentNullException)); - - // If we're not getting anything better than a COMException from Marshal, - // then at least check the facility and attempt to do better ourselves. - if (e.GetType() == typeof(COMException)) - { - switch (Facility) - { - case Facility.Win32: - // Win32Exception generates default messages based on the error type. - // Don't override this behavior if the caller didn't explicitly - // specify something more appropriate. - if (string.IsNullOrEmpty(message)) - { - e = new Win32Exception(Code); - } - else - { - e = new Win32Exception(Code, message); - } - break; - default: - e = new COMException(message ?? e.Message, (int)_value); - break; - } - } - else - { - // Replace the message if we have something better. - if (!string.IsNullOrEmpty(message)) - { - ConstructorInfo cons = e.GetType().GetConstructor(new[] { typeof(string) }); - if (null != cons) - { - e = cons.Invoke(new object[] { message }) as Exception; - Debug.Assert(e != null); - } - } - } - - return e; - } - } -} diff --git a/src/Microsoft.DotNet.Wpf/src/WindowsBase/WindowsBase.csproj b/src/Microsoft.DotNet.Wpf/src/WindowsBase/WindowsBase.csproj index 9910284e9b2..954d63e0d06 100644 --- a/src/Microsoft.DotNet.Wpf/src/WindowsBase/WindowsBase.csproj +++ b/src/Microsoft.DotNet.Wpf/src/WindowsBase/WindowsBase.csproj @@ -97,7 +97,6 @@ - diff --git a/src/Microsoft.DotNet.Wpf/src/WpfGfx/include/wgx_error.cs b/src/Microsoft.DotNet.Wpf/src/WpfGfx/include/wgx_error.cs deleted file mode 100644 index 34591bae8fa..00000000000 --- a/src/Microsoft.DotNet.Wpf/src/WpfGfx/include/wgx_error.cs +++ /dev/null @@ -1,177 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - - -//------------------------------------------------------------------------------ -// - -// -//------------------------------------------------------------------------------ - -namespace MS.Internal -{ - #region Enumeration Types - - internal enum WinCodecErrors - { - // Range 0x?8982000 - 0x?8982FFF - WINCODEC_ERR_GENERIC_ERROR = unchecked((int) 0x80004005), - WINCODEC_ERR_INVALIDPARAMETER = unchecked((int) 0x80000003), - WINCODEC_ERR_OUTOFMEMORY = unchecked((int) 0x80000002), - WINCODEC_ERR_NOTIMPLEMENTED = unchecked((int) 0x80000001), - WINCODEC_ERR_ABORTED = unchecked((int) 0x80004004), - WINCODEC_ERR_ACCESSDENIED = unchecked((int) 0x80070005), - WINCODEC_ERR_VALUEOVERFLOW = unchecked((int) 0x80070216), - WINCODEC_ERR_WRONGSTATE = unchecked((int) 0x88982f04), - WINCODEC_ERR_VALUEOUTOFRANGE = unchecked((int) 0x88982f05), - WINCODEC_ERR_UNKNOWNIMAGEFORMAT = unchecked((int) 0x88982f07), - WINCODEC_ERR_UNSUPPORTEDVERSION = unchecked((int) 0x88982f0B), - WINCODEC_ERR_NOTINITIALIZED = unchecked((int) 0x88982f0C), - WINCODEC_ERR_ALREADYLOCKED = unchecked((int) 0x88982f0D), - WINCODEC_ERR_PROPERTYNOTFOUND = unchecked((int) 0x88982f40), - WINCODEC_ERR_PROPERTYNOTSUPPORTED = unchecked((int) 0x88982f41), - WINCODEC_ERR_PROPERTYSIZE = unchecked((int) 0x88982f42), - WINCODEC_ERR_CODECPRESENT = unchecked((int) 0x88982f43), - WINCODEC_ERR_CODECNOTHUMBNAIL = unchecked((int) 0x88982f44), - WINCODEC_ERR_PALETTEUNAVAILABLE = unchecked((int) 0x88982f45), - WINCODEC_ERR_CODECTOOMANYSCANLINES = unchecked((int) 0x88982f46), - WINCODEC_ERR_INTERNALERROR = unchecked((int) 0x88982f48), - WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS = unchecked((int) 0x88982f49), - WINCODEC_ERR_COMPONENTNOTFOUND = unchecked((int) 0x88982f50), - WINCODEC_ERR_IMAGESIZEOUTOFRANGE = unchecked((int) 0x88982f51), - WINCODEC_ERR_TOOMUCHMETADATA = unchecked((int) 0x88982f52), - WINCODEC_ERR_BADIMAGE = unchecked((int) 0x88982f60), - WINCODEC_ERR_BADHEADER = unchecked((int) 0x88982f61), - WINCODEC_ERR_FRAMEMISSING = unchecked((int) 0x88982f62), - WINCODEC_ERR_BADMETADATAHEADER = unchecked((int) 0x88982f63), - WINCODEC_ERR_BADSTREAMDATA = unchecked((int) 0x88982f70), - WINCODEC_ERR_STREAMWRITE = unchecked((int) 0x88982f71), - WINCODEC_ERR_STREAMREAD = unchecked((int) 0x88982f72), - WINCODEC_ERR_STREAMNOTAVAILABLE = unchecked((int) 0x88982f73), - WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT = unchecked((int) 0x88982f80), - WINCODEC_ERR_UNSUPPORTEDOPERATION = unchecked((int) 0x88982f81), - WINCODEC_ERR_INVALIDREGISTRATION = unchecked((int) 0x88982f8A), - WINCODEC_ERR_COMPONENTINITIALIZEFAILURE = unchecked((int) 0x88982f8B), - WINCODEC_ERR_INSUFFICIENTBUFFER = unchecked((int) 0x88982f8C), - WINCODEC_ERR_DUPLICATEMETADATAPRESENT = unchecked((int) 0x88982f8D), - WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE = unchecked((int) 0x88982f8E), - WINCODEC_ERR_UNEXPECTEDSIZE = unchecked((int) 0x88982f8F), - WINCODEC_ERR_INVALIDQUERYREQUEST = unchecked((int) 0x88982f90), - WINCODEC_ERR_UNEXPECTEDMETADATATYPE = unchecked((int) 0x88982f91), - WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT = unchecked((int) 0x88982f92), - WINCODEC_ERR_INVALIDQUERYCHARACTER = unchecked((int) 0x88982f93), - }; - - internal enum MILErrors - { - // Range 0x?8980000 - 0x?8980FFF - WGXHR_CLIPPEDTOEMPTY = unchecked((int) 0x8980001), - WGXHR_EMPTYFILL = unchecked((int) 0x8980002), - WGXHR_INTERNALTEMPORARYSUCCESS = unchecked((int) 0x8980003), - WGXHR_RESETSHAREDHANDLEMANAGER = unchecked((int) 0x8980004), - WGXERR_GENERIC_ERROR = unchecked((int) 0x80004005), - WGXERR_INVALIDPARAMETER = unchecked((int) 0x80000003), - WGXERR_OUTOFMEMORY = unchecked((int) 0x80000002), - WGXERR_NOTIMPLEMENTED = unchecked((int) 0x80000001), - WGXERR_ABORTED = unchecked((int) 0x80004004), - WGXERR_ACCESSDENIED = unchecked((int) 0x80070005), - WGXERR_VALUEOVERFLOW = unchecked((int) 0x80070216), - WGXERR_WRONGSTATE = WinCodecErrors.WINCODEC_ERR_WRONGSTATE, - WGXERR_UNSUPPORTEDVERSION = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDVERSION, - WGXERR_NOTINITIALIZED = WinCodecErrors.WINCODEC_ERR_NOTINITIALIZED, - WGXERR_UNSUPPORTEDPIXELFORMAT = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT, - WGXERR_UNSUPPORTED_OPERATION = WinCodecErrors.WINCODEC_ERR_UNSUPPORTEDOPERATION, - WGXERR_PALETTEUNAVAILABLE = WinCodecErrors.WINCODEC_ERR_PALETTEUNAVAILABLE, - WGXERR_OBJECTBUSY = unchecked((int) 0x88980001), - WGXERR_INSUFFICIENTBUFFER = unchecked((int) 0x88980002), - WGXERR_WIN32ERROR = unchecked((int) 0x88980003), - WGXERR_SCANNER_FAILED = unchecked((int) 0x88980004), - WGXERR_SCREENACCESSDENIED = unchecked((int) 0x88980005), - WGXERR_DISPLAYSTATEINVALID = unchecked((int) 0x88980006), - WGXERR_NONINVERTIBLEMATRIX = unchecked((int) 0x88980007), - WGXERR_ZEROVECTOR = unchecked((int) 0x88980008), - WGXERR_TERMINATED = unchecked((int) 0x88980009), - WGXERR_BADNUMBER = unchecked((int) 0x8898000A), - WGXERR_INTERNALERROR = unchecked((int) 0x88980080), - WGXERR_DISPLAYFORMATNOTSUPPORTED = unchecked((int) 0x88980084), - WGXERR_INVALIDCALL = unchecked((int) 0x88980085), - WGXERR_ALREADYLOCKED = unchecked((int) 0x88980086), - WGXERR_NOTLOCKED = unchecked((int) 0x88980087), - WGXERR_DEVICECANNOTRENDERTEXT = unchecked((int) 0x88980088), - WGXERR_GLYPHBITMAPMISSED = unchecked((int) 0x88980089), - WGXERR_MALFORMEDGLYPHCACHE = unchecked((int) 0x8898008A), - WGXERR_GENERIC_IGNORE = unchecked((int) 0x8898008B), - WGXERR_MALFORMED_GUIDELINE_DATA = unchecked((int) 0x8898008C), - WGXERR_NO_HARDWARE_DEVICE = unchecked((int) 0x8898008D), - WGXERR_NEED_RECREATE_AND_PRESENT = unchecked((int) 0x8898008E), - WGXERR_ALREADY_INITIALIZED = unchecked((int) 0x8898008F), - WGXERR_MISMATCHED_SIZE = unchecked((int) 0x88980090), - WGXERR_NO_REDIRECTION_SURFACE_AVAILABLE = unchecked((int) 0x88980091), - WGXERR_REMOTING_NOT_SUPPORTED = unchecked((int) 0x88980092), - WGXERR_QUEUED_PRESENT_NOT_SUPPORTED = unchecked((int) 0x88980093), - WGXERR_NOT_QUEUING_PRESENTS = unchecked((int) 0x88980094), - WGXERR_NO_REDIRECTION_SURFACE_RETRY_LATER = unchecked((int) 0x88980095), - WGXERR_TOOMANYSHADERELEMNTS = unchecked((int) 0x88980096), - // AVAILABLE = unchecked((int) 0x88980097), - // AVAILABLE = unchecked((int) 0x88980098), - WGXERR_SHADER_COMPILE_FAILED = unchecked((int) 0x88980099), - WGXERR_MAX_TEXTURE_SIZE_EXCEEDED = unchecked((int) 0x8898009A), - // AVAILABLE = unchecked((int) 0x8898009B), - WGXERR_UCE_INVALIDPACKETHEADER = unchecked((int) 0x88980400), - WGXERR_UCE_UNKNOWNPACKET = unchecked((int) 0x88980401), - WGXERR_UCE_ILLEGALPACKET = unchecked((int) 0x88980402), - WGXERR_UCE_MALFORMEDPACKET = unchecked((int) 0x88980403), - WGXERR_UCE_ILLEGALHANDLE = unchecked((int) 0x88980404), - WGXERR_UCE_HANDLELOOKUPFAILED = unchecked((int) 0x88980405), - WGXERR_UCE_RENDERTHREADFAILURE = unchecked((int) 0x88980406), - WGXERR_UCE_CTXSTACKFRSTTARGETNULL = unchecked((int) 0x88980407), - WGXERR_UCE_CONNECTIONIDLOOKUPFAILED = unchecked((int) 0x88980408), - WGXERR_UCE_BLOCKSFULL = unchecked((int) 0x88980409), - WGXERR_UCE_MEMORYFAILURE = unchecked((int) 0x8898040A), - WGXERR_UCE_PACKETRECORDOUTOFRANGE = unchecked((int) 0x8898040B), - WGXERR_UCE_ILLEGALRECORDTYPE = unchecked((int) 0x8898040C), - WGXERR_UCE_OUTOFHANDLES = unchecked((int) 0x8898040D), - WGXERR_UCE_UNCHANGABLE_UPDATE_ATTEMPTED = unchecked((int) 0x8898040E), - WGXERR_UCE_NO_MULTIPLE_WORKER_THREADS = unchecked((int) 0x8898040F), - WGXERR_UCE_REMOTINGNOTSUPPORTED = unchecked((int) 0x88980410), - WGXERR_UCE_MISSINGENDCOMMAND = unchecked((int) 0x88980411), - WGXERR_UCE_MISSINGBEGINCOMMAND = unchecked((int) 0x88980412), - WGXERR_UCE_CHANNELSYNCTIMEDOUT = unchecked((int) 0x88980413), - WGXERR_UCE_CHANNELSYNCABANDONED = unchecked((int) 0x88980414), - WGXERR_UCE_UNSUPPORTEDTRANSPORTVERSION = unchecked((int) 0x88980415), - WGXERR_UCE_TRANSPORTUNAVAILABLE = unchecked((int) 0x88980416), - WGXERR_UCE_FEEDBACK_UNSUPPORTED = unchecked((int) 0x88980417), - WGXERR_UCE_COMMANDTRANSPORTDENIED = unchecked((int) 0x88980418), - WGXERR_UCE_GRAPHICSSTREAMUNAVAILABLE = unchecked((int) 0x88980419), - WGXERR_UCE_GRAPHICSSTREAMALREADYOPEN = unchecked((int) 0x88980420), - WGXERR_UCE_TRANSPORTDISCONNECTED = unchecked((int) 0x88980421), - WGXERR_UCE_TRANSPORTOVERLOADED = unchecked((int) 0x88980422), - WGXERR_UCE_PARTITION_ZOMBIED = unchecked((int) 0x88980423), - WGXERR_UCE_USER_SHADEREFFECT_ERROR = unchecked((int) 0x88980424), - WGXERR_AV_NOCLOCK = unchecked((int) 0x88980500), - WGXERR_AV_NOMEDIATYPE = unchecked((int) 0x88980501), - WGXERR_AV_NOVIDEOMIXER = unchecked((int) 0x88980502), - WGXERR_AV_NOVIDEOPRESENTER = unchecked((int) 0x88980503), - WGXERR_AV_NOREADYFRAMES = unchecked((int) 0x88980504), - WGXERR_AV_MODULENOTLOADED = unchecked((int) 0x88980505), - WGXERR_AV_WMPFACTORYNOTREGISTERED = unchecked((int) 0x88980506), - WGXERR_AV_INVALIDWMPVERSION = unchecked((int) 0x88980507), - WGXERR_AV_INSUFFICIENTVIDEORESOURCES = unchecked((int) 0x88980508), - WGXERR_AV_VIDEOACCELERATIONNOTAVAILABLE = unchecked((int) 0x88980509), - WGXERR_AV_REQUESTEDTEXTURETOOBIG = unchecked((int) 0x8898050A), - WGXERR_AV_SEEKFAILED = unchecked((int) 0x8898050B), - WGXERR_AV_UNEXPECTEDWMPFAILURE = unchecked((int) 0x8898050C), - WGXERR_AV_MEDIAPLAYERCLOSED = unchecked((int) 0x8898050D), - WGXERR_AV_UNKNOWNHARDWAREERROR = unchecked((int) 0x8898050E), - WGXERR_D3DI_INVALIDSURFACEUSAGE = unchecked((int) 0x88980800), - WGXERR_D3DI_INVALIDSURFACESIZE = unchecked((int) 0x88980801), - WGXERR_D3DI_INVALIDSURFACEPOOL = unchecked((int) 0x88980802), - WGXERR_D3DI_INVALIDSURFACEDEVICE = unchecked((int) 0x88980803), - WGXERR_D3DI_INVALIDANTIALIASINGSETTINGS = unchecked((int) 0x88980804) - }; - - #endregion -} - - diff --git a/src/Microsoft.DotNet.Wpf/tests/Directory.Build.props b/src/Microsoft.DotNet.Wpf/tests/Directory.Build.props index 797955552c5..31cfb0cd4a3 100644 --- a/src/Microsoft.DotNet.Wpf/tests/Directory.Build.props +++ b/src/Microsoft.DotNet.Wpf/tests/Directory.Build.props @@ -5,5 +5,6 @@ false true true + Open diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/PresentationCore.Tests.csproj b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/PresentationCore.Tests.csproj index 22b66899765..f5eaaae2319 100644 --- a/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/PresentationCore.Tests.csproj +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/PresentationCore.Tests.csproj @@ -19,9 +19,11 @@ + + @@ -32,4 +34,8 @@ + + + + diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/Windows/Win32/Foundation/HResultTests.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/Windows/Win32/Foundation/HResultTests.cs new file mode 100644 index 00000000000..f3e662411df --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/PresentationCore.Tests/Windows/Win32/Foundation/HResultTests.cs @@ -0,0 +1,27 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Windows.Media; +using static Windows.Win32.Foundation.HResultExtensions; + +namespace Windows.Win32.Foundation; + +public class HResultTests +{ + [Theory] + [MemberData(nameof(HResultTestData))] + public void HResult_GetExtendedException(int result, Type expectedType) + { + Exception? e = ((HRESULT)result).GetExtendedException(); + e.Should().BeOfType(expectedType); + } + + public static TheoryData HResultTestData => new() + { + { HRESULT.FromWin32(WIN32_ERROR.ERROR_ARITHMETIC_OVERFLOW), typeof(OverflowException) }, + { HRESULT.FromWin32(WIN32_ERROR.ERROR_INVALID_PARAMETER), typeof(ArgumentException) }, + { MilErrors.WGXERR_AV_INVALIDWMPVERSION, typeof(InvalidWmpVersionException) }, + { MediaPlayerErrors.NS_E_WMP_CANNOT_FIND_FILE, typeof(FileNotFoundException) }, + { HRESULT.WINCODEC_ERR_UNSUPPORTEDVERSION, typeof(FileLoadException) } + }; +} diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/GlobalUsings.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/GlobalUsings.cs new file mode 100644 index 00000000000..836fe4797a2 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/GlobalUsings.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +global using System; +global using Xunit; +global using FluentAssertions; diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/System.Windows.Primitives.Tests.csproj b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/System.Windows.Primitives.Tests.csproj new file mode 100644 index 00000000000..da928c407b1 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/System.Windows.Primitives.Tests.csproj @@ -0,0 +1,25 @@ + + + true + enable + x64;x86;arm64 + + $(TargetFramework)-windows + true + + + + + + + + + + + + + + + + + diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/D3dErrorsTests.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/D3dErrorsTests.cs new file mode 100644 index 00000000000..01f240ea1d6 --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/D3dErrorsTests.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Windows.Win32.Foundation; + +public class D3dErrorsTests +{ + [Theory] + [MemberData(nameof(D3dErrorTestData))] + public void D3dErrors_ValidateDefines(int result, int expected) + { + result.Should().Be(expected); + } + + public static TheoryData D3dErrorTestData => new() + { + // Check a few to see that we've copied the pattern correctly + { (int)D3dErrors.D3DERR_DEVICEHUNG, unchecked((int)0x88760874) }, + { (int)D3dErrors.D3DERR_OUTOFVIDEOMEMORY, unchecked((int)0x8876017C) } + }; +} diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/HResultTests.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/HResultTests.cs new file mode 100644 index 00000000000..fab6faa6c7c --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/HResultTests.cs @@ -0,0 +1,184 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.ComponentModel; +using Windows.Win32.System.Diagnostics.Debug; + +namespace Windows.Win32.Foundation; + +public class HResultTests +{ + [Theory] + [MemberData(nameof(HResultTestData))] + public void HResult_GetExceptionUnwrapWin32(int result, Type expectedType) + { + Exception? e = ((HRESULT)result).GetExceptionUnwrapWin32(); + e.Should().BeOfType(expectedType); + } + + public static TheoryData HResultTestData => new() + { + { HRESULT.FromWin32(WIN32_ERROR.ERROR_ACCESS_DENIED), typeof(UnauthorizedAccessException) }, + { HRESULT.COR_E_ARGUMENT, typeof(ArgumentException) }, + { HRESULT.FromWin32(WIN32_ERROR.ERROR_INVALID_HANDLE), typeof(Win32Exception) } + }; + + [Theory] + [MemberData(nameof(WicFacilityTestData))] + public void WicFacilityCode(int result, int expectedFacility) + { + FACILITY_CODE code = ((HRESULT)result).Facility; + code.Should().Be((FACILITY_CODE)expectedFacility); + } + + public static TheoryData WicFacilityTestData => new() + { + { + (int)HRESULT.WINCODEC_ERR_WRONGSTATE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_VALUEOUTOFRANGE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + // #define INTSAFE_E_ARITHMETIC_OVERFLOW ((HRESULT)0x80070216L) // 0x216 = 534 = ERROR_ARITHMETIC_OVERFLOW + //{ (int)HRESULT.WINCODEC_ERR_VALUEOVERFLOW, (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM }, + { + (int)HRESULT.WINCODEC_ERR_UNKNOWNIMAGEFORMAT, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_UNSUPPORTEDVERSION, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_NOTINITIALIZED, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_PROPERTYNOTFOUND, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_PROPERTYNOTSUPPORTED, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_PROPERTYSIZE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_CODECPRESENT, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_CODECNOTHUMBNAIL, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_PALETTEUNAVAILABLE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_CODECTOOMANYSCANLINES, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_INTERNALERROR, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_SOURCERECTDOESNOTMATCHDIMENSIONS, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_COMPONENTINITIALIZEFAILURE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_COMPONENTNOTFOUND, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_UNEXPECTEDSIZE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_BADIMAGE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_BADHEADER, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_FRAMEMISSING, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_BADMETADATAHEADER, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_BADSTREAMDATA, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_STREAMWRITE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_UNSUPPORTEDOPERATION, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_IMAGESIZEOUTOFRANGE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_STREAMREAD, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_INVALIDQUERYREQUEST, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_UNEXPECTEDMETADATATYPE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_REQUESTONLYVALIDATMETADATAROOT, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_INVALIDQUERYCHARACTER, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_DUPLICATEMETADATAPRESENT, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_PROPERTYUNEXPECTEDTYPE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_TOOMUCHMETADATA, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_STREAMNOTAVAILABLE, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + { + (int)HRESULT.WINCODEC_ERR_INSUFFICIENTBUFFER, + (int)FACILITY_CODE.FACILITY_WINCODEC_DWRITE_DWM + }, + }; + +} diff --git a/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/MilErrorsTests.cs b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/MilErrorsTests.cs new file mode 100644 index 00000000000..53b373d5c5c --- /dev/null +++ b/src/Microsoft.DotNet.Wpf/tests/UnitTests/System.Windows.Primitives.Tests/Windows/Win32/Foundation/MilErrorsTests.cs @@ -0,0 +1,23 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Windows.Win32.Foundation; + +public class MilErrorsTests +{ + [Theory] + [MemberData(nameof(MilErrorTestData))] + public void MilErrors_ValidateDefines(int result, int expected) + { + result.Should().Be(expected); + } + + public static TheoryData MilErrorTestData => new() + { + // Check a few to see that we've copied the pattern correctly + { (int)MilErrors.WGXHR_CLIPPEDTOEMPTY, 0x8980001 }, + { (int)MilErrors.WGXERR_OBJECTBUSY, unchecked((int)0x88980001) }, + { (int)MilErrors.WGXERR_UCE_UNSUPPORTEDTRANSPORTVERSION, unchecked((int)0x88980415) }, + { (int)MilErrors.WGXERR_AV_UNKNOWNHARDWAREERROR, unchecked((int)0x8898050E) }, + }; +} diff --git a/start-vs.cmd b/start-vs.cmd index fd1f22fa298..515d4dd0b57 100644 --- a/start-vs.cmd +++ b/start-vs.cmd @@ -3,19 +3,21 @@ setlocal enabledelayedexpansion :: This command launches a Visual Studio solution with environment variables required to use a local version of the .NET Core SDK. +set _localDotNet=%~dp0.dotnet + :: This tells .NET Core to use the same dotnet.exe that build scripts use -set DOTNET_ROOT=%~dp0.dotnet -set DOTNET_ROOT(x86)=%~dp0.dotnet\x86 +set DOTNET_ROOT=%_localDotNet% +set DOTNET_ROOT(x86)=%_localDotNet%\x86 :: This tells .NET Core not to go looking for .NET Core in other places -set DOTNET_MULTILEVEL_LOOKUP=0 +:: set DOTNET_MULTILEVEL_LOOKUP=0 :: Put our local dotnet.exe on PATH first so Visual Studio knows which one to use -set PATH=%DOTNET_ROOT%;%PATH% +set PATH=%_localDotNet%;%PATH% call restore.cmd -if not exist "%DOTNET_ROOT%\dotnet.exe" ( +if not exist "%_localDotNet%\dotnet.exe" ( echo [ERROR] .NET Core has not yet been installed. Run `%~dp0restore.cmd` to install tools exit /b 1 )