Пример #1
0
        private List <FilterModuleDescription> GetSubFilter(ModuleDescriptionStructure module)
        {
            var result       = new List <FilterModuleDescription>();
            var filterModule = FilterModuleDescription.GetFilterModuleDescription(module);

            if (filterModule == null)
            {
                return(result);
            }
            result.Add(filterModule);
            if (module.NextModule != IntPtr.Zero)
            {
#if NET20 || NET35 || NET40 || NET45
                ModuleDescriptionStructure nextModule = (ModuleDescriptionStructure)Marshal.PtrToStructure(module.NextModule, typeof(ModuleDescriptionStructure));
#else
                ModuleDescriptionStructure nextModule = Marshal.PtrToStructure <ModuleDescriptionStructure>(module.NextModule);
#endif
                var data = GetSubFilter(nextModule);
                if (data.Count > 0)
                {
                    result.AddRange(data);
                }
            }
            return(result);
        }
Пример #2
0
        internal static FilterModuleDescription GetFilterModuleDescription(ModuleDescriptionStructure module)
        {
            if (module.Name == IntPtr.Zero)
            {
                return(null);
            }
            var result = new FilterModuleDescription
            {
                Name      = Utf8InteropStringConverter.Utf8InteropToString(module.Name),
                ShortName = Utf8InteropStringConverter.Utf8InteropToString(module.ShortName),
                LongName  = Utf8InteropStringConverter.Utf8InteropToString(module.LongName),
                Help      = Utf8InteropStringConverter.Utf8InteropToString(module.Help)
            };

            return(result);
        }