private static bool IDLIsFolder(IDLWrapper idlw, out IDLWrapper idlwLinkTarget) { idlwLinkTarget = null; if(!idlw.IsLink) { return idlw.IsFolder; } if(idlw.HasPath) { idlwLinkTarget = new IDLWrapper(ShellMethods.GetLinkTargetPath(idlw.Path)); if(idlwLinkTarget.Available && idlwLinkTarget.IsFolder) { return true; } idlwLinkTarget.Dispose(); idlwLinkTarget = null; } return false; }
internal IDLWrapper GetCurrentPIDL() { IDLWrapper wrapper = ShellBrowser.GetShellPath(); if(!wrapper.Available) { wrapper.Dispose(); wrapper = new IDLWrapper(ShellMethods.ShellGetPath2(ExplorerHandle)); if(!wrapper.Available) { wrapper.Dispose(); wrapper = new IDLWrapper(lastCompletedBrowseObjectIDL); } } return wrapper; }