Example #1
0
        internal static bool GetPInvokeDelegateData(RuntimeTypeHandle delegateType, out McgPInvokeDelegateData pinvokeDelegateData)
        {
            pinvokeDelegateData = default(McgPInvokeDelegateData);

            for (int i = 0; i < s_moduleCount; ++i)
            {
                if (s_modules[i].TryGetPInvokeDelegateData(delegateType, out pinvokeDelegateData))
                {
                    return(true);
                }
            }
            return(false);
        }
Example #2
0
        internal static bool GetPInvokeDelegateData(RuntimeTypeHandle delegateType, out McgPInvokeDelegateData pinvokeDelegateData)
        {
            pinvokeDelegateData = default(McgPInvokeDelegateData);

            for (int i = 0; i < s_moduleCount; ++i)
            {
                if (s_modules[i].TryGetPInvokeDelegateData(delegateType, out pinvokeDelegateData))
                {
                    return(true);
                }
            }
#if ENABLE_WINRT
            throw new MissingInteropDataException(SR.DelegateMarshalling_MissingInteropData, Type.GetTypeFromHandle(delegateType));
#else
            return(false);
#endif
        }
Example #3
0
        /// <summary>
        /// Retrieves delegate data for the specified delegate handle
        /// </summary>
        internal bool TryGetPInvokeDelegateData(RuntimeTypeHandle typeHandle, out McgPInvokeDelegateData pinvokeDelegateData)
        {
            if (m_pinvokeDelegateData != null)
            {
                for (int i = 0; i < m_pinvokeDelegateData.Length; i++)
                {
                    if (typeHandle.Equals(m_pinvokeDelegateData[i].Delegate))
                    {
                        pinvokeDelegateData = m_pinvokeDelegateData[i];
                        return(true);
                    }
                }
            }

            pinvokeDelegateData = default(McgPInvokeDelegateData);
            return(false);
        }