Click here to Skip to main content
Click here to Skip to main content

The Complete Idiot's Guide to Writing Shell Extensions - Index

By , 1 Jun 2002
 

Since the Idiot's Guide series has become quite large, here is an index of all the articles that gives a quick blurb about each one, so you can quickly find the articles that interest you.

Some other dedicated folks are writing translations of the Guide. Here are the published translations:


Part I - A step-by-step tutorial on writing shell extensions

 [Part 1 screen shot - 9K]

Part I is a simple overview of shell extensions, and discusses how to debug them. The sample extension illustrates adding items to the context menu for text files.

Part II - A tutorial on writing a shell extension that operates on multiple files at once

 [Part 2 screen shot - 5K]

Part II demonstrates how to write a context menu extension that operates on all of the selected files at once. The sample project is a utility that adds registration and unregistration commands to the context menus for DLLs.

Part III - A tutorial on writing a shell extension that shows pop-up info for files

 [Part 3 screen shot - 6K]

Part III demonstrates the QueryInfo extension that customizes the infotip for text files. It also explains how to use MFC in a shell extension.

Part IV - A tutorial on writing a shell extension that provides custom drag and drop functionality

 [Part 4 screen shot - 12K]

Part IV shows how to add items to the menu displayed when the user drags and drops with the right mouse button in Explorer. The sample project is a utility that makes hard links for files. (Note: the extension is functional only on Windows 2000, but you can still compile and run the extension on previous versions of Windows. See the article for instructions.)

Part V - A tutorial on writing a shell extension that adds pages to the properties dialog of files

 [Part 5 screen shot - 23K]

Part V demonstrates how to add new pages to Explorer's Properties dialog. The sample project adds a page on which you can edit the created, modified, and last accessed times of files.

Part VI - A tutorial on writing a shell extension that can be used on the Send To menu

 [Part 6 screen shot - 9K]

Part VI discusses a drop handler extension that gets added to the SendTo menu. The sample project is a clone of the Send To Any Folder power toy.

Part VII - A tutorial on using owner-drawn menus in a context menu shell extensions, and on making a context menu extension that responds to a right-click in a directory background

 [Part 7 screen shot - 6K]

Part VII tackles two topics suggested by readers: owner-drawn menu items and the context menu for the background of directory windows. The sample project contains two extensions: a bitmap viewer (pictured above) that puts a thumbnail of BMP files in the context menu, and a simple extension that adds items to the context menu of directory backgrounds.

Part VIII - A tutorial on adding columns to Explorer's details view via a column handler shell extension

 [Part 8 screen shot - 6K]

Part VIII demonstrates how to add columns to the details view of Explorer on Windows 2000. The sample project adds a few columns that show ID3v1 tag data in MP3 files.. (This extension works only on Windows 2000.)

Part IX - A tutorial on writing an extension to customize the icons displayed for a file type.

 [Part 9 screen shot - 24K]

Part IX shows how to customize file icons on a file-by-file basis. The demo project is an extension that shows 4 different icons for text files, depending on the size of the file.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Michael Dunn
Software Developer (Senior) VMware
United States United States
Member
Michael lives in sunny Mountain View, California. He started programming with an Apple //e in 4th grade, graduated from UCLA with a math degree in 1994, and immediately landed a job as a QA engineer at Symantec, working on the Norton AntiVirus team. He pretty much taught himself Windows and MFC programming, and in 1999 he designed and coded a new interface for Norton AntiVirus 2000.
Mike has been a a developer at Napster and at his own lil' startup, Zabersoft, a development company he co-founded with offices in Los Angeles and Odense, Denmark. Mike is now a senior engineer at VMware.

He also enjoys his hobbies of playing pinball, bike riding, photography, and Domion on Friday nights (current favorite combo: Village + double Pirate Ship). He would get his own snooker table too if they weren't so darn big! He is also sad that he's forgotten the languages he's studied: French, Mandarin Chinese, and Japanese.
 
Mike was a VC MVP from 2005 to 2009.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
QuestionIs it possible that the explorer load my extension dll after windows startupmemberdkuser6 May '13 - 0:34 
It has an Explorer process(It's title "Program Manager") after windows startup. But the explorer don't load my ContextMenuHandlers extension dll.
How to do it?
Thanks
GeneralMy vote of 5memberPraveen P N14 Apr '13 - 3:46 
complete information is provided
QuestionShell Extension instantiated twice when Explorer Tree is right clicked.memberMember 42776548 Jun '12 - 23:12 
Thank you for the great tutorials. They've been very helpful.
 
I have a shell extension that is registered to "AllFileObjects" and "Directory\Background" registry keys. The problem occurs when a folder in the Explorer Tree View is right clicked. The shell instantiates my shell extension twice, once with the folder name supplied in the pDataObj argument to Initialize, and once with the folder name supplied in the pidlFolder argument. This results in my menu items being added twice. Not good.
 
By implementing the registrations one at a time I have determined that (as I expected) the call passing the folder in the pDataObj is coming from the "AllFileObjects" registration and the call passing the folder in the pidlFolder argument is coming from the "Directory\Background" registration.
 
I need both registrations to be able to provide proper functionality from the Explorer file view pane but don't want two sets of menu items if the user selects in the tree view.
 
I've been trying to figure a way to identify when the call to Initialize and/or QueryContextMenu is from one of the Tree View entries so I can ensure only one set of menu items is added to the context menu. I've been evaluating the flag values passed through the fifth argument to QueryContextMenu.
 
I've noted that the 0x00020000 bit is set in the flag when the call is coming from the Explorer file view (even the background) and from any Desktop interaction. This bit is NOT set when the call is coming from the Exporer tree view. However I can't find any documentation about this bit (it is listed as one of the CMF_RESERVED bits in Microsoft documentation so I am reluctant to rely on it.
 
When a Folder or File is clicked in the Tree view or Desktop the 0x00000080 bit is set. This bit is not set for background clickes in either of these items and it is never set for clicks to the Tree view.
 
The other item I've been looking at is the registry key passed into IShellExtInit::Initialize as the third argument. I haven't been able to identify what key is actually being passed in. The documentation I've found is pretty vague saying that it is "the registry key for the file object or folder type". I have not been able to figure out what I might be able to do with this to differentiate the call.
 
I am actually hoping that there is something that I'm overlooking...
 
I am developing with VS2010 targeting Windows 7 64 bit.
 
If you or anyone can shed some light on my predicament it would be greatly appreciated.
 
Thanks in advance!
QuestionPart 1 is 404memberCuchullain1 Dec '11 - 3:59 
Can someone restore it, please?
QuestionHow I can insert a menu item to the context menu(pop-up menu) when no file(s)/dir(s) selected for the explorer?memberzhoufanglong12 Aug '10 - 20:30 
The title says all.
GeneralAdd button to Windows Explorer's existing toolbarmemberJahangirRazaShah18 Jun '10 - 2:34 
Peace to all, i have been wanting to add a couple of buttons to Windows Explorer's existing toolbar. but i cant seem to find any starting point. All i know is that it has to be a shell extension. Please point me in the right direction. thnx
GeneralRe: Add button to Windows Explorer's existing toolbarmemberzhoufanglong12 Aug '10 - 20:40 
http://msdn.microsoft.com/en-us/library/cc144099(VS.85).aspx[^]
QuestionCan we Implement "Show in Groups"membergurjant singh7 Oct '09 - 20:02 
Can we implement "show in groups" using the shell namespace extension?
QuestionNew Image File Type Showing Thumbnails?membersilentbutdeadly6 Apr '09 - 18:40 
I've written a new kind of image file format. It's not a wrapper around BMP or JPG or any other popular image type. It's an entirely new file structure, but of course Windows doesn't show a thumbnail because it doesn't understand my layout. Now, I'm new to C++, I'm a C# guy. I don't know how to do pictures in a standard C++ app, nevertheless a shell extension, but I really want to be able to show a thumbnail image for my files. Can somebody walk me slowly through what I need to do for both creating an image in C++ from the file as well as how to make it load the image in explorer with a shell extension?
QuestionCan we split the browsermemberJaved Akhtar Ansari21 Sep '08 - 19:06 
Hi I want to show some meta data of a file selected in the list view in a separate viewing area similar to list view or tree view.
In other words I want to split the browser so the it has one more viewing area other than already existing list view and tree view. Can anybody comment how is this possible?
 
Thanks,
 
Javed A Ansari
Software Developer
Hyderabad, India

AnswerRe: Can we split the browsermemberTimo Kunze18 Oct '08 - 6:52 
This can be done with an explorer bar shell extension.
 
TiKu
 
--
www.TimoSoft-Software.de

QuestionRe: Can we split the browsermemberJaved Akhtar Ansari20 Oct '08 - 20:19 
Thanks,Can you point me to some existing example. how to do this?
 
Javed A Ansari
Software Developer
Hyderabad, India

GeneralShell exec to run sort.exememberMember 45577020 Jan '08 - 22:05 
How can i make a call to execute sort.exe such as:-
 
"sort.exe input.txt > output.txt"
 
SO far ShellExec is very restrictive - only accepts certain type of file operations.
GeneralIssue with InsertMenumemberJeffrey Walton12 Jul '07 - 16:30 
Hi Michael,
 
Sorry to beat a dead horse. I'm down to a base case which demonstrates the problem: Create 2 different menu Dlls which do nothing other than implements the minimum:
 
* IShellExtInit::Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
* IContextMenu::InvokeCommand(LPCMINVOKECOMMANDINFO);
* IContextMenu::GetCommandString(UINT, UINT, UINT*, LPSTR, UINT);
* IContextMenu::QueryContextMenu(HMENU, UINT, UINT, UINT, UINT);
 
InsertMenu always return TRUE, and GetLastError() always returns ERROR_SUCCESS.
 
Only one of the Dlls will be present in the Context Menu. However, both will respond to GetCommandString() (per SysInternal's DbgView).
 
The problem exists on Windows XP and Windows Vista. However, it is not present on Windows 2000. I did not test on Windows 2003 Server since I know I can duplicate on XP and Vista.
 
At this point, I have not been able to debug further - WinDbg locks my machine when I attach to Explorer.exe. Hindsight being 20/20, this makes sense...
 
Jeff

Questionwindows file dialog?membermadfiddlerchris6 Jul '07 - 2:18 
Hi - first off thanks for the series of articles they have been very useful.
 
However, I have a context menu item showing a dialog from which I want to access the Windows File Open common dialog.
 
I can;t work out how to do this or if indeed it is possible. I started looking at CfileDialog but cannot include afxwin.h into the project becasue Windows.h is already included (via atlbase.h)
 
any ideas how I could achieve this?
 
thasnk in advance.
AnswerRe: windows file dialog?mvpMichael Dunn6 Jul '07 - 6:37 
When you use the AppWizard to start an ATL project, there's a checkbox for adding MFC support. If you make a dummy ATL+MFC project, you can see what changes are necessary to add MFC support, then make those changes in your current project. You can call also just GetOpenFileName() directly.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ

GeneralShell extension for "system Task" of "My computer" itemsmemberpada4412 Apr '07 - 13:45 

Hello,
I was wondering if anybody knows how to replace the action performed by the items
in the "System Task" of the "My Computer". More specifically I would like to replace the windows Eject with my own eject for the CD/DVD.
I know how to this for the right click Eject, but not from the system task.
 
Thanks for your help
 
pada
QuestionVista Shell - How to set "Tags:" and "Rating:" programatically for ImagesmemberQuint King22 Nov '06 - 10:27 
In the new Vista RTM release, when you browse to a folder with JPEGs at the bottom of the shell frame there's a thumbnail, image name, image type, date taken, dimensions, and size fields that are non-editable.
 
There are also two editable fields - “Tags:” and “Rating:”. I'm interested in the get/set of these fields from C++. Poking around the new Vista SDK I'm seeing IPropertyStoreCache - is this the animal?
 
Here's a link to the MSDN section of possible interest:
 
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/programmersguide/shell_new_vista/buildingpropertyhandlers/properties.asp[^]
AnswerRe: Vista Shell - How to set "Tags:" and "Rating:" programatically for ImagessitebuilderMichael Dunn26 Dec '06 - 16:11 
I've only looked at the property system briefly, but check out Ben Karas's[^] blog[^] - he talks about the system and provides some sample code in C++.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
 
Ford, what's this fish doing in my ear?

QuestionAnd what's about folders?:)memberKir0s20 Nov '06 - 4:01 
I've found one question about using SE on folders but is has no answersFrown | :(
 
Kirill
GeneralAsk about Shell: change icon & handling eventsmembernamphvn15 Sep '06 - 13:33 
1. I want to change icon for drives which meet a specific condition (such as which contains a specified file).
Until now I know there are 2 ways:
 
a. Operate with "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons" key in Registry.
(refer to http://msdn.microsoft.com/library/d...ending/icon.asp)
But: After calling SHUpdateImage function, the icon was not refreshed automatically. I had to press F5 button to refresh manually.
Could we overcome this disadvantage?
 
b. Operate with "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons" key in Registry.
(refer to http://web6.codeproject.com/win32/n....asp?print=true)
But: This method updates icon of all drives which have the same type (hard disk, removable disk...) and it can not change icon of a specific drive.
 
2. When I insert a USB, floppy disk, CD…I want to change it’s icon. If I use Autorun.inf file to change icon, only WinXP support this feature. Could we solve this problem by Shell Extension?
 
Thanks in advance
QuestionF2 HandlermemberMor FTP16 Aug '06 - 15:55 
Is there a way to customize F2 renaming or menu rename function by shell extensions. I actually want to hide extension of files except renaming. I also try to select only filename but not the extension while renaming.

GeneralEnglish PDFmemberpjd100125 Apr '06 - 20:00 
I note there's a complete PDF in Italian - is there a complete PDF English
GeneralExplorer Crashes!memberMohammadAmiry2 Sep '05 - 1:28 
Hi
I used your code to make a shell estension that adds two items to the context menu (for all files and folders). When any
of these two items are selected, a temp file is created (in %APPDATA%). Then an exe file should run given this temp file
as its command line argument.
The code compiles and has no problem and anything goes fine, except for when I use the ShellExecute API. When I use this
API, the desired files runs with the correct commandline sent to it, but soon the explorer crashes and the file stops running.
Could you please explain Why? This is my code, the code that I have added is in Bold and the code that makes the
explorer crash is in Italic Bold. (if I comment this code, everything runs fine...)
 
HRESULT CMyShellExtention::InvokeCommand(LPCMINVOKECOMMANDINFO pCmdInfo)
{
    
	USES_CONVERSION;
	// If lpVerb really points to a string, ignore this function call and bail out    
	if (0 != HIWORD(pCmdInfo->lpVerb))
        return E_INVALIDARG;
 
    // Get the command index - the only valid commands are 0 and 1
	WORD wCmd = LOWORD(pCmdInfo->lpVerb);
	if (wCmd > 1)
		return E_INVALIDARG;
 
	string_list::const_iterator it, itEnd;
	tchar_string clipBuffer;
	tchar_string name;
 
	it = m_lsFiles.begin();
	itEnd = m_lsFiles.end();
 
	clipBuffer = it->c_str();
	
    while (++it != itEnd)
	{
		clipBuffer += '\n';//"\n";
		clipBuffer += it->c_str();
		
	}
	
	TCHAR a[MAX_PATH];
	SHGetSpecialFolderPath(NULL, (LPTSTR) a,CSIDL_APPDATA,false);		
	wsprintf(a, _T("%s\\MyFileTemp.tmp"), a);	
 
	FILE *f;	
	f= fopen(T2CA(a),"w");	
	fprintf(f, (char *) T2CA( clipBuffer.c_str() ));
	fclose(f);
 
	TCHAR* ss;	
	switch (wCmd)
		{
		case 0:
			wsprintf(ss, _T("/s \"%s\""), a);				
			break;
		case 1:		
    		wsprintf(ss, _T("/m /s \"%s\""), a);			
			break;
		}				
//MessageBox(NULL, ss ,NULL,MB_OK);

		ShellExecuteW(pCmdInfo->hwnd,_T("Open"),
			_T("F:\\EasyPC Source\\MyFile.exe"),
			ss,
			_T("F:\\EasyPC Source"), 1);


	return S_OK;
}
 

-- modified at 7:30 Friday 2nd September, 2005
GeneralRe: Explorer Crashes!sitebuilderMichael Dunn2 Sep '05 - 6:06 
You're using an uninitialized pointer (ss) and passing that around as a buffer.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | 1ClickPicGrabber | NEW~! CP SearchBar v3.0 | C++ Forum FAQ
"That probably would've sounded more commanding if I wasn't wearing my yummy sushi pajamas."
  -- Buffy

GeneralRe: Explorer Crashes!memberMohammadAmiry2 Sep '05 - 19:19 
Thank you for your great tutorial and quick reply.
D'Oh! | :doh: and sorry for asking such a stupid question! Yes you were right! and my compiler also generated a warning that I didn't care to.
By the way, could you please introduce some documents on string conversions in C++!
I found that there are a bunch of string types and structures that they were hard for me (as a VB programmer that also has a limitted knowledge of C++) to convert to each other.
Thanks again
GeneralRe: Explorer Crashes!sitebuilderMichael Dunn2 Sep '05 - 22:24 
The Complete Guide to C++ Strings, Part I - Win32 Character Encodings[^]
 
The Complete Guide to C++ Strings, Part II - String Wrapper Classes[^]
 
Cool | :cool:
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | 1ClickPicGrabber | NEW~! CP SearchBar v3.0 | C++ Forum FAQ
Laugh it up, fuzzball.
GeneralRe: Explorer Crashes!memberMohammadAmiry4 Sep '05 - 0:44 
Thanks again.
GeneralWin_32sussAnonymous6 Jul '05 - 14:04 
Why does evrything has to be writen in MFC i guess most are to laizy to write.
Could you do a tutorial in win32 without the mfc wraper clasess.
 
I'm trying to figure out how to do this in non-MFC classes.
It is just to anoying trying to strip it down.

GeneralRe: Win_32sitebuilderMichael Dunn6 Jul '05 - 15:05 
Um, not all of the articles use MFC. Part I doesn't, for example.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD

GeneralUninstalling shell extension DLL without reboot.memberKalliMan31 May '05 - 22:20 
Is it possible? I found many tutorials about Shell extensions, but each of them requere restart when uninstall. Is it possible to uninstall and delete my shell extension dll without restart? What do WinRar and WinZip? They doesn't requere restart duaring the uninstall.
 
Thanks.
KalliMan

 
a
GeneralRe: Uninstalling shell extension DLL without reboot.sitebuilderMichael Dunn1 Jun '05 - 20:18 
My guess is those apps register their shell extension DLL(s) to be deleted on the next reboot, using MoveFileEx().
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD

GeneralRe: Uninstalling shell extension DLL without reboot.membermmsguru6 Apr '06 - 22:14 
That is what many installers do automatically as soon as they fail to remove the files in question (cause they were "in use").
 
It seems however that the recent Microsoft installer (MSI) has a way to uninstall a dumb (non self-un/registering) shell extension dll without restarting the system/explorer.
Upon deinstallation, the Microsoft System will not ask to restart the explorer even if it has linked the shell extension at that moment. It will however ask for shutting down other applications that may have linked it (e.g. Outlook cause you had file attachments visible that where supported by the extension).
I still am wondering how MSI is doing that as i need to remodel that exact behaviour using a different installer system.

GeneralRe: Uninstalling shell extension DLL without reboot.sitebuilderMichael Dunn8 Apr '06 - 13:04 
mmsguru wrote:
I still am wondering how MSI is doing that as i need to remodel that exact behaviour using a different installer system.

 
I know zilch about MSI, ask around on the MS newsgroups, you'll have a better chance of getting an answer there.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | NEW!! PimpFish | CP SearchBar v3.0 | C++ Forum FAQ
QuestionHow lnk files are handled.membercondoman21 Apr '05 - 2:54 
I am new to this forum and am trying to learn a context menu extension that I already have. I found this com dll at a site and it provides just what I need except now there is an issue. I don't think the problem is with this but an explorer issue.
 
If I select a group of files and execute my process, as expected my registry key is populated with the list of files and my executable called.
 
If I select a group of .lnk items my registry key is not populated because each .lnk points to the same file with different parameters and my executable is launched with the real file name once. This is not what I want because I need to process the actual shortcuts.
 
Here is the kicker, If I put a folder in the same parent as the .lnk files and select a group of .lnk files and the folder, as expected my registry key is populated with the list of .lnk files plus the folder and my executable called.
 
In the source provided with the dll I can see DragQueryFile is called to get the list of files. Has anyone ever encountered this behavior?
AnswerRe: How lnk files are handled.sitebuilderMichael Dunn21 Apr '05 - 5:48 
I looked at this a long time ago, so my memory may not be totally accurate here, but if you register your ctx menu handler under HKCR\lnkfile you should get the names of the lnk files themselves.
 
--Mike--
Visual C++ MVP Cool | :cool:
LINKS~! Ericahist | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD

GeneralRe: How lnk files are handled.membercondoman21 Apr '05 - 7:09 
Right you are. Thanks.
 
Also, I enjoyed reading the articles you authored. They are elegantly done and full of information.
 
I have always been a big fan of context menus and until recently not coded my own utilities. Someone passed me a link to a dll that lets you make your own custom utility without having to create the dll. The creating company gave up on a project and set the code free in the wild. It has proven to be very helpful to “roll your own”.
 
Thanks again

GeneralDialog Boxes and AfxResourceInstancememberBryanD23 Feb '05 - 8:27 
I'm in the process of writing a namespace extension and I've come across a problem. I want to launch dialog boxes from within the DLL and there is something wrong. I believe the problem revolves around afx resources and instances, an area which I am woefully unfamiliar with. In DllMain - the initialization for the DLL - i have included the line :

AfxSetResourceHandle(g_hInstance);

 
Also as the first line in the function that generates the dialog box resource - which is stored in the same DLL - I have placed the line:

AFX_MANAGE_STATE(AfxGetStaticModuleState());

The current behavior is that on the first attempt to open the dialog box I recieve assertions on AfxGetInstanceHandle twice then the dialog opens; but it does not contain any of the controls that I had programmed. On subsequent attempts to open the dialog box I receive one assertion error on AfxGetInstanceHandle and then the dialog opens and appears to function exactly as I had programmed it. All the controls appear and functionally the dialog is fine. Anyone have any clue what would be causing this behavior?
 
I am compiling with Visual C++ 7.1.3088. Thanks for the help.
 

 
-Bryan
GeneralChomp, chomp, chomp...memberBassam Abdul-Baki16 Feb '05 - 9:23 
Hi Michael,
 
Is there a way to extend the folders so that when a folder is dropped on a file, the file is automatically moved/copied into the folder (hence the chomping Smile | :) ). I basically was wondering if the same action that happens when a file is dropped on a folder can be reversed?
 
"For that one fraction of a second, you were open to options you would never have considered. That is the exploration that awaits you. Not mapping stars and studying nebula, but charting the unknown possibilities of existence." - Q (Star Trek: The Next Generation) ^ Blog
GeneralRe: Chomp, chomp, chomp...sitebuilderMichael Dunn17 Feb '05 - 11:02 
Your idea would essentially entail registering a drop handler for all file types, but I don't know if the shell will look for drop handlers in the HKCR\*\ShellEx\DropHandler key, you could try it and find out Wink | ;)
 
--Mike--
LINKS~! Ericahist updated! | 1ClickPicGrabber | CP SearchBar v2.0.2 | C++ Forum FAQ
Strange things are afoot at the U+004B U+20DD

GeneralFoldersmemberHockey18 May '04 - 3:12 
This question has probably been asked a hundred times, so I should probably search the boards first, but CP is really boggin down right now, so instead i'll just ask away Smile | :)
 
Which of your articles disscusses dealing with multiple files AND folders...i've read the one for multiple files, but there doesn't seem to be anything disscussing dealing with folders too...
 
Can I just test for a folder and assume it part of the file system and use normal file find functions to traverse folder structures and retreieve files that way? (all I need is their location so i can remove some based on a filter).
 
I can't find that article you made reference to about cleaning compiler temp files...?
 
Also using extensions can I create a icon on the desktop like the recycling bin which handles files as they are dropped? How could I position this icon just under the recycling bin programmatically?
 
Thansk again for the articles...
 
Cheers Smile | :)
 
How do I print my voice mail?
GeneralAdding a Toolbar Buttonmemberclayton0427 Jan '04 - 20:18 
Hi,
 
I was thinking of adding my own custom toolbar button in windows explorer. is it possible? if so, can i ask for a complete project that does this?
 
your help is greatly appreciated.
ty very much. Smile | :)
GeneralRe: Adding a Toolbar Buttonmember[Anders]9 Feb '04 - 12:04 
/me wants this 2
GeneralRe: Adding a Toolbar ButtonsitebuilderMichael Dunn9 Feb '04 - 12:27 
clayton04 wrote:
I was thinking of adding my own custom toolbar button in windows explorer

AFAIK, you can't add buttons to the file system mode of Explorer, only IE mode. You can get control of the Explorer toolbar only if you build a namespace extension.
 
--Mike--
Personal stuff:: Ericahist Updated Feb 6! | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ

You cannot stop me with paramecium alone!
GeneralRe: Adding a Toolbar Buttonmemberclayton0418 Feb '04 - 21:02 
Ty for the info. But how can i change the explorer to IE mode? Ty again. Smile | :)
 
Michael Dunn wrote:
AFAIK, you can't add buttons to the file system mode of Explorer, only IE mode. You can get control of the Explorer toolbar only if you build a namespace extension.
 

GeneralRe: Adding a Toolbar ButtonsitebuilderMichael Dunn19 Feb '04 - 4:21 
You can't, the user is in control of that.
 
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ

Laugh it up, fuzzball.
QuestionHow can the virtiual fold be accessible from the File Open Dialog or File Save Dialogmembertellzj14 Sep '03 - 22:44 
I've try the demo1, it works fine.
But When I click the "File Open" in Word,the dialog doesn't show the virtual folder.
How can I do to make the virtual folder accessible in such Dialog?
QuestionHow to implement multiple file property page?sussAnonymous8 Aug '03 - 1:21 
There are lots of 'solutions' for single file property page.
But multiple file properties are not available.
 
How can I implement this?
I've tried fullpath1+'\0'+fullpath2+'\0'+'\0'.
But it always shows first one(fullpath1)'s property.
 
Frown | :(
QuestionHow to write a service like "zipped folders" in windowsmemberArtur Sharipov2 Aug '03 - 6:12 
I want to write a service that will treat a file as a folder in windows explorer. The file will have a specific format and so on.
I suppose that it is connected with shell programming but have no ideas how to implement it.
Please help.
AnswerRe: How to write a service like "zipped folders" in windowssitebuilderMichael Dunn2 Aug '03 - 9:36 
You can do that by writing a namespace extension, and having Explorer invoke it when you try to "run" one of your files. Similar to how ZIP files appear in XP. I've never written this type of extension, however if you can find Dino Esposito's shell programming book, he covers this subject.
 
--Mike--
Ericahist | Homepage | RightClick-Encrypt | 1ClickPicGrabber
Latest art~!@#2rDFA#@(#*%$Rfa39f3fqwf--=
NO CARRIER

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130516.1 | Last Updated 2 Jun 2002
Article Copyright 2000 by Michael Dunn
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid