Example #1
0
        internal static void StaticDispose(ref EventProxyDescriptor pEPD)
        {
            Debug.Assert(((IntPtr)pEPD.m_handle) != IntPtr.Zero, "If this asserts fires: Why is it firing? It might be legal in future.");
            EventProxyWrapper epw = (EventProxyWrapper)(pEPD.m_handle.Target);

            ((System.Runtime.InteropServices.GCHandle)(pEPD.m_handle)).Free();
        }
Example #2
0
        internal static int RaiseEvent(ref EventProxyDescriptor pEPD, byte[] buffer, uint cb)
        {
            EventProxyWrapper target = EventProxyWrapper.FromEPD(ref pEPD);

            if (target != null)
            {
                return(target.RaiseEvent(buffer, cb));
            }
            else
            {
                return(NativeMethods.E_HANDLE);
            }
        }
Example #3
0
        internal static SafeMILHandle CreateEventProxyWrapper(IInvokable invokable)
        {
            if (invokable == null)
            {
                throw new System.ArgumentNullException("invokable");
            }

            SafeMILHandle eventProxy = null;

            EventProxyWrapper    epw = new EventProxyWrapper(invokable);
            EventProxyDescriptor epd = new EventProxyDescriptor();

            epd.pfnDispose    = EventProxyStaticPtrs.pfnDispose;
            epd.pfnRaiseEvent = EventProxyStaticPtrs.pfnRaiseEvent;

            epd.m_handle = System.Runtime.InteropServices.GCHandle.Alloc(epw, System.Runtime.InteropServices.GCHandleType.Normal);

            HRESULT.Check(MILCreateEventProxy(ref epd, out eventProxy));

            return(eventProxy);
        }
 internal static void StaticDispose(ref EventProxyDescriptor pEPD)
 {
     Debug.Assert(((IntPtr)pEPD.m_handle) != IntPtr.Zero, "If this asserts fires: Why is it firing? It might be legal in future.");
     EventProxyWrapper epw = (EventProxyWrapper)(pEPD.m_handle.Target);
     ((System.Runtime.InteropServices.GCHandle)(pEPD.m_handle)).Free();
 }
 private extern static int /* HRESULT */ MILCreateEventProxy(ref EventProxyDescriptor pEPD, out SafeMILHandle ppEventProxy);
        internal static SafeMILHandle CreateEventProxyWrapper(IInvokable invokable)
        {
            if (invokable == null)
            {
                throw new System.ArgumentNullException("invokable");
            }

            SafeMILHandle eventProxy = null;

            EventProxyWrapper epw = new EventProxyWrapper(invokable);
            EventProxyDescriptor epd = new EventProxyDescriptor();

            epd.pfnDispose = EventProxyStaticPtrs.pfnDispose;
            epd.pfnRaiseEvent = EventProxyStaticPtrs.pfnRaiseEvent;

            epd.m_handle = System.Runtime.InteropServices.GCHandle.Alloc(epw, System.Runtime.InteropServices.GCHandleType.Normal);

            HRESULT.Check(MILCreateEventProxy(ref epd, out eventProxy));

            return eventProxy;
        }
 internal static int RaiseEvent(ref EventProxyDescriptor pEPD, byte[] buffer, uint cb)
 {
     EventProxyWrapper target = EventProxyWrapper.FromEPD(ref pEPD);
     if (target != null)
     {
         return target.RaiseEvent(buffer, cb);
     }
     else
     {
         return NativeMethods.E_HANDLE;
     }
 }
 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);
 }
Example #9
0
 private extern static int /* HRESULT */ MILCreateEventProxy(ref EventProxyDescriptor pEPD, out SafeMILHandle ppEventProxy);
Example #10
0
 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));
 }