public override void EnumerateSubtree(EnumHierarchyFlags flags, FolderRecWrapper root, FolderMap.EnumFolderCallback callback) { FolderMap.EnumFolderContext enumFolderContext = new FolderMap.EnumFolderContext(); enumFolderContext.Result = EnumHierarchyResult.Continue; foreach (KeyValuePair <byte[], FolderRecWrapper> keyValuePair in this.folders) { callback(keyValuePair.Value, enumFolderContext); } }
public virtual void EnumerateSubtree(EnumHierarchyFlags flags, FolderRecWrapper root, FolderMap.EnumFolderCallback callback) { FolderMap.EnumFolderContext ctx = new FolderMap.EnumFolderContext(); this.EnumSingleFolder(root, ctx, callback, flags); }
private void EnumSingleFolder(FolderRecWrapper folderRec, FolderMap.EnumFolderContext ctx, FolderMap.EnumFolderCallback callback, EnumHierarchyFlags flags) { ctx.Result = EnumHierarchyResult.Continue; if (folderRec.IsSpoolerQueue) { return; } if (FolderMap.IsValidFolderType(flags, folderRec)) { callback(folderRec, ctx); } if (ctx.Result == EnumHierarchyResult.Cancel || ctx.Result == EnumHierarchyResult.SkipSubtree) { return; } if (folderRec.Children != null) { foreach (FolderRecWrapper folderRec2 in folderRec.Children) { ctx.Result = EnumHierarchyResult.Continue; this.EnumSingleFolder(folderRec2, ctx, callback, flags); if (ctx.Result == EnumHierarchyResult.Cancel) { break; } } } }
public void EnumerateFolderHierarchy(EnumHierarchyFlags flags, FolderMap.EnumFolderCallback callback) { this.EnumerateSubtree(flags, this.RootRec, callback); }