BranchViewExtended wfx-plugin
Moderators: Hacker, petermad, Stefan2, white
BranchViewExtended wfx-plugin
BranchViewExtended is similar to standard Branch View but shows also all nested directories with their sizes.
Version 1.03
Branch View Extended 1.03 x86
Version 1.03 x64
Branch View Extended 1.03 x64
How to use:
You have to create button or start menu item with following parameters:
Command: cd
Parameters: \\\BranchViewEx\%p
Plugin works for current path, like standard Branch View.
Why to use:
I use it when I need to quick-free some disk space. In this case I set sorting method "Sort by size" and run this plugin. With this plugin I can find not only needless huge files but also needless huge directories containing a lot of small files (that is why I can't find them with standard Branch view) and buried deeply in file system (that's why I can't find them manually).
History
version 1.00 - First release
version 1.01
+ Show icons for directories
version 1.02
+ Temp panel plugin functionality
+ VERSION_INFO
version 1.03
+ Show icons for internal associations
+ Show icons for .exe, .lnk and .ico files
+ Plugin autoinstallation
Version 1.03
Branch View Extended 1.03 x86
Version 1.03 x64
Branch View Extended 1.03 x64
How to use:
You have to create button or start menu item with following parameters:
Command: cd
Parameters: \\\BranchViewEx\%p
Plugin works for current path, like standard Branch View.
Why to use:
I use it when I need to quick-free some disk space. In this case I set sorting method "Sort by size" and run this plugin. With this plugin I can find not only needless huge files but also needless huge directories containing a lot of small files (that is why I can't find them with standard Branch view) and buried deeply in file system (that's why I can't find them manually).
History
version 1.00 - First release
version 1.01
+ Show icons for directories
version 1.02
+ Temp panel plugin functionality
+ VERSION_INFO
version 1.03
+ Show icons for internal associations
+ Show icons for .exe, .lnk and .ico files
+ Plugin autoinstallation
Last edited by kotlomoy on 2013-04-14, 14:25 UTC, edited 12 times in total.
I've written this plugin for myself. It is first working version. It is untested and not very friendly. But it works for me fine.
Notes:
-- You cannot browse directories from this plugin.
-- You cannot start plugin directly from My Network Places.
-- This plugin shows directories as files with ./ extension (If you use color scheme for directories I recommend use this scheme for ./ files too).
-- This plugin doesn't follow symbolic links but shows them as directories (by the way you can browse them manually).
-- This plugin uses standard copying progress dialog to indicate progress.
Notes:
-- You cannot browse directories from this plugin.
-- You cannot start plugin directly from My Network Places.
-- This plugin shows directories as files with ./ extension (If you use color scheme for directories I recommend use this scheme for ./ files too).
-- This plugin doesn't follow symbolic links but shows them as directories (by the way you can browse them manually).
-- This plugin uses standard copying progress dialog to indicate progress.
#213083 Single user license
BranchViewExtended
BranchViewExtended
- Balderstrom
- Power Member
- Posts: 2148
- Joined: 2005-10-11, 10:10 UTC
- Balderstrom
- Power Member
- Posts: 2148
- Joined: 2005-10-11, 10:10 UTC
Yes, Branch View.Hacker wrote:kotlomoy,
Hm, Batch View? Branch View perhaps? Or am I missing something?
Roman


#213083 Single user license
BranchViewExtended
BranchViewExtended
I suggest to return special folder icon instead of default icon. This will help to distinguish folders and files.kotlomoy wrote:(If you use color scheme for directories I recommend use this scheme for ./ files too)
For me "cd \\\BatchViewEx\D:\Programs" works fine. You should specify correct plugin name that you see in Network Neighbor.ts4242 wrote:I also tryed cd \\\BranchViewEx\%p from command line but didn't work too.
Not applicable to ./ files thoughMVV wrote: I suggest to return special folder icon instead of default icon. This will help to distinguish folders and files.
Thanks for notice. Fixed now.ts4242 wrote:For me "cd \\\BatchViewEx\D:\Programs" works fine. You should specify correct plugin name that you see in Network Neighbor.
cd \\\BranchViewEx\%p
should work fine now
#213083 Single user license
BranchViewExtended
BranchViewExtended
I mean that you should return folder icon handle in function FsExtractCustomIcon when TC asks you an icon for files with ./ extension.kotlomoy wrote:Not applicable to ./ files thoughMVV wrote: I suggest to return special folder icon instead of default icon. This will help to distinguish folders and files.
Oh, I see. May be I'll try this, thanksMVV wrote:I mean that you should return folder icon handle in function FsExtractCustomIcon when TC asks you an icon for files with ./ extension.
#213083 Single user license
BranchViewExtended
BranchViewExtended
I made what you suggested:MVV wrote:I mean that you should return folder icon handle in function FsExtractCustomIcon when TC asks you an icon for files with ./ extension.
cid-9a15473c9a985119.skydrive.live.com/self.aspx/!work/BranchViewEx%5E_Icons%5E5nonstable!%5E6.wfx
BUT:
-- When there is a LOT of directories (thousands) TC doesn't draw all my icons. More importantly that TC itself gets problems with redrawing of windows, buttons, menu...

-- Now it takes more time to scan.
#213083 Single user license
BranchViewExtended
BranchViewExtended
This are changes I made:-- When there is a LOT of directories (thousands) TC doesn't draw all my icons. More importantly that TC itself gets problems with redrawing of windows, buttons, menu... Confused
Code: Select all
HINSTANCE theDll = NULL;
BOOL APIENTRY DllMain( HINSTANCE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
theDll = hModule;
return TRUE;
}
int __stdcall FsExtractCustomIcon(char* RemoteName,int ExtractFlags,HICON* TheIcon)
{
if ('/' == RemoteName[ strlen( RemoteName ) - 1 ])
{
if(ExtractFlags&FS_ICONFLAG_SMALL)
*TheIcon=(HICON)LoadImage(theDll,MAKEINTRESOURCE(IDI_ICON_FOLDER16),IMAGE_ICON,16,16,0);
else
*TheIcon=(HICON)LoadImage(theDll,MAKEINTRESOURCE(IDI_ICON_FOLDER32),IMAGE_ICON,32,32,0);
return FS_ICON_EXTRACTED;
}
return FS_ICON_USEDEFAULT;
}

#213083 Single user license
BranchViewExtended
BranchViewExtended
You should extract icon during loading plugin and to keep its handle in memory, e.g. in DllMain. Later, when TC will ask you for icon, you just return its handle with flag FS_ICON_EXTRACTED. So, you don't need to spend some time to extract icon every time you need it. And there will be no difference in scan time.
BTW, if you call LoadImage every time in FsExtractCustomIcon, you must use FS_ICON_EXTRACTED_DESTROY flag to tell TC that icon should be destroyed after using. If you just return FS_ICON_EXTRACTED, your plugin creates extra system graphics object in each FsExtractCustomIcon call - I think this may cause troubles with drawing, especially if your function is being called many times.
BTW, if you call LoadImage every time in FsExtractCustomIcon, you must use FS_ICON_EXTRACTED_DESTROY flag to tell TC that icon should be destroyed after using. If you just return FS_ICON_EXTRACTED, your plugin creates extra system graphics object in each FsExtractCustomIcon call - I think this may cause troubles with drawing, especially if your function is being called many times.