1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
/*=============================================================================
**
** Class: DispatchWrapper.
**
**
** Purpose: Wrapper that is converted to a variant with VT_DISPATCH.
**
**
=============================================================================*/
namespace System.Runtime.InteropServices {
using System;
using System.Security;
using System.Security.Permissions;
[Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DispatchWrapper
{
[System.Security.SecuritySafeCritical] // auto-generated
#pragma warning disable 618
[SecurityPermissionAttribute(SecurityAction.Demand,Flags=SecurityPermissionFlag.UnmanagedCode)]
#pragma warning restore 618
public DispatchWrapper(Object obj)
{
if (obj != null)
{
#if FULL_AOT_RUNTIME || MONOTOUCH
throw new PlatformNotSupportedException ();
#else
// Make sure this guy has an IDispatch
IntPtr pdisp = Marshal.GetIDispatchForObject(obj);
// If we got here without throwing an exception, the QI for IDispatch succeeded.
Marshal.Release(pdisp);
#endif
}
m_WrappedObject = obj;
}
public Object WrappedObject
{
get
{
return m_WrappedObject;
}
}
private Object m_WrappedObject;
}
}
|