Пример #1
0
        public object GetStruct(TypeCollection types)
        {
            UInt16     structTypeCrc = ValueNative.GetStructType(m_nativeInstance);
            StructType structType    = types.FindStructByCrc(structTypeCrc);

            if (structType == null || structType.ManagedType == null)
            {
                return(null);
            }

            if (ValueNative.GetStructSize(m_nativeInstance) != Marshal.SizeOf(structType.ManagedType))
            {
                return(null);
            }

            IntPtr structData = ValueNative.GetStructData(m_nativeInstance);

            return(Marshal.PtrToStructure(structData, structType.ManagedType));
        }