internal static FilterModuleDescription GetFilterModuleDescription(ModuleDescriptionStructure module) { if (module.Name == IntPtr.Zero) return null; var result = new FilterModuleDescription(); #if NET20 result.Name = IntPtrExtensions.ToStringAnsi(module.Name); result.ShortName = IntPtrExtensions.ToStringAnsi(module.ShortName); result.LongName = IntPtrExtensions.ToStringAnsi(module.LongName); result.Help = IntPtrExtensions.ToStringAnsi(module.Help); #else result.Name = module.Name.ToStringAnsi(); result.ShortName = module.ShortName.ToStringAnsi(); result.LongName = module.LongName.ToStringAnsi(); result.Help = module.Help.ToStringAnsi(); #endif return result; }
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) { ModuleDescriptionStructure nextModule = (ModuleDescriptionStructure)Marshal.PtrToStructure(module.NextModule, typeof(ModuleDescriptionStructure)); var data = GetSubFilter(nextModule); if (data.Count > 0) result.AddRange(data); } return result; }