diff options
Diffstat (limited to 'src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs')
-rw-r--r-- | src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs b/src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs new file mode 100644 index 0000000000..008ee3579b --- /dev/null +++ b/src/mscorlib/src/System/Runtime/InteropServices/ErrorWrapper.cs @@ -0,0 +1,53 @@ +// Copyright (c) Microsoft. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +/*============================================================================= +** +** +** +** Purpose: Wrapper that is converted to a variant with VT_ERROR. +** +** +=============================================================================*/ + +namespace System.Runtime.InteropServices { + + using System; + using System.Security.Permissions; + + [Serializable] +[System.Runtime.InteropServices.ComVisible(true)] + public sealed class ErrorWrapper + { + public ErrorWrapper(int errorCode) + { + m_ErrorCode = errorCode; + } + + public ErrorWrapper(Object errorCode) + { + if (!(errorCode is int)) + throw new ArgumentException(Environment.GetResourceString("Arg_MustBeInt32"), "errorCode"); + m_ErrorCode = (int)errorCode; + } + + [System.Security.SecuritySafeCritical] // auto-generated +#pragma warning disable 618 + [SecurityPermissionAttribute(SecurityAction.Demand, Flags=SecurityPermissionFlag.UnmanagedCode)] +#pragma warning restore 618 + public ErrorWrapper(Exception e) + { + m_ErrorCode = Marshal.GetHRForException(e); + } + + public int ErrorCode + { + get + { + return m_ErrorCode; + } + } + + private int m_ErrorCode; + } +} |