Solved

Tweak UI Desktop Folder Icons.

Posted on 1997-10-06
13
285 Views
Last Modified: 2013-12-29
Does anyone know how Tweak UI determines the list of Icons
that show up in the Desktop folders list? I assume that the Shell Namespace is enumerated somehow, but I don't know
exactly how it's done. What criteria is used to determine
which entries go into the list and which ones do not.
0
Comment
Question by:crhodes
  • 7
  • 4
  • 2
13 Comments
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
It uses the "shelliconcache". I'm studing that right now and get back with you with my extensive ( I hope) Findings.
Or you don't have to wait a day, you can still reject.
But it has to do with the shelliconcache.

0
 

Author Comment

by:crhodes
Comment Utility
Could you email specifics directly to me? If so, send
them to: Chris_Rhodes@classic.msn.com

Thanks.
Chris.

0
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
If you Delete the ShellIconCache file. This file is re-created automatically when you restart Windows 95. To delete this file, use the following steps:

http://premium.microsoft.com/support/kb/articles/q132/6/68.asp

So that's what tweakui does. I've verified this in the newsgroups and at http://www.microsoft.com/search/default.asp
where I typed shelliconcache as the searh phrase. There's a lot there to help you understand it. Too much to put here.

I hope that answers your question, it did for me. As I said I was on quest for that interaction when you popped up with the question. Good timing:)
0
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
If you Delete the ShellIconCache file. This file is re-created automatically when
you restart Windows 95. To delete this file, use the following steps:

http://premium.microsoft.com/support/kb/articles/q132/6/68.asp

So that's what tweakui does. I've verified this in the newsgroups and at
http://www.microsoft.com/search/default.asp
where I typed shelliconcache as the searh phrase. There's a lot there to help you
understand it. Too much to put here.

I hope that answers your question, it did for me. As I said I was on quest for that
interaction when you popped up with the question. Good timing:)
0
 

Author Comment

by:crhodes
Comment Utility
Sorry. I don't think you understood my question. I'm talking about the utility "Tweak UI" that comes with power toys. This
utility has a number of property pages, one of them is named
"Desktop". When you select this property page, it has a CListCtrl that shows a number of items like "Recycle Bin" "Internet Explorer", etc... How does this utility decide what itmes will go into this list? It must be enumerating the Shell's
Namespace somehow, using the IShellFolder interface and binding to Explorers IShellFolder interface and then enumerate the items. Again how does it decide which ones go into the list and which ones do not?

Chris.
 
0
 
LVL 9

Expert Comment

by:magigraf
Comment Utility
I'm shooting blind folded...
It's in the programming of the applet itself.  I don't think that you can modify these items (add or delete).  Also bear in mind that all CONFIRMED info regarding these toys are almost unavailable since it was released without warranty from MS.
If I did hit the target, let me know.
Regards
0
Want to promote your upcoming event?

Attending an event? Speaking at a conference? Or exhibiting at a tradeshow? Easily inform your contacts by using a promotional banner in your email signature. This will ensure your organization’s most important contacts are in the know.

 

Author Comment

by:crhodes
Comment Utility
Actually, this list changes dynamically. I've seen this on my own system. Tweak UI is building this list dynamically everytime
the utility loads.

Regards,
Chris.
0
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
The only person that can answer that, and will is Raymond Chen. He's the Author/programmer of tweakui.
raymondc@microsoft.com (Raymond Chen)
0
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
I'd say yes you're right. After looking and mu 'Namespace' in the registry and comparing them to what is marked in tweakui, the only one that is marked (recycle bin) is the only one that has a value of it's name, ie;
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\Desktop\NameSpace\{645FF040-5081-101B-9F08-00AA002F954E}]
@="Recycle Bin"
The rest do not have values.
If you gave it a value tweakui would pick that up.
I think that's what magigraf was trying to say.
it took me a little while to understand you question.
0
 

Author Comment

by:crhodes
Comment Utility
Thanks for the input. I'm suprised no one else can answer this.
Someone out there must know about the IShellFolder interface at
this level?

Chris.

0
 
LVL 14

Accepted Solution

by:
smeebud earned 100 total points
Comment Utility
If you really want to get and understand of how the
IShellFolder interface calls or retrieves information, too much to put here see:
http://www.microsoft.com/msdn/sdk/inetsdk/help/inet4725.htm
There are many hot links for futher understanding.
-----
IShellFolder


The IShellFolder interface is used to manage folders.

When to Implement

Implement this interface for objects that extend the shell's
namespace. Creating a separate namespace
that requires a rooted Explorer or installing a new namespace
directly within the hierarchy of the system
namespace are two examples. You are most familiar with the
contents of your namespace, so you are
responsible for implementing everything needed to access your
data.

When to Use

Use this interface when you need to display or perform an
operation on the contents of the shell's
namespace. Objects that support IShellFolder are usually
created by other shell folder objects, with the
root object (the Desktop shell folder) being returned
from the SHGetDesktopFolder function.

IShellFolder Methods
Description
BindToObject
Retrieves the IShellFolder interface for the specified subfolder.
BindToStorage
Returns the storage instance of a subfolder. Not currently implemented.
CompareIDs
Determines the relative order of two file objects or folders, given their item
identifier lists.
CreateViewObject
Creates a view object of the folder itself.
EnumObjects
Enumerates the objects in a folder.
GetAttributesOf
Retrieves the attributes of the specified file object or subfolder.
GetDisplayNameOf
Retreives the display name of a file object or subfolder.
GetUIObjectOf
Creates an OLE interface that can be used to carry out operations on a file
object or subfolder.
ParseDisplayName
Translates a display name into an item identifier list.
SetNameOf
Sets the display name of the specified file object or subfolder and changes its
identifier accordingly.
0
 
LVL 14

Expert Comment

by:smeebud
Comment Utility
You can got to:
http://premium.microsoft.com/msdn/library/sdkdoc/folder_21v7.htm
and register to allow yourself access to all the information available. Hope this helps.

Also the BindToObject is the main interface:
IShellFolder::BindToObject


HRESULT BindToObject(
LPCITEMIDLIST pidl,
LPBC pbcReserved,
REFIID riid,
LPVOID *ppvOut
);  

Retrieves an IShellFolder object for a subfolder.

Returns NOERROR if successful, or an OLE-defined error value otherwise.

pidl
Address of an ITEMIDLIST structure that identifies the subfolder relative to its
parent folder.
pbcReserved
Reserved. Callers should specify NULL for this parameter; those called
should ignore it.
riid
Identifier of the interface to return. This parameter must point to the
IID_IShellFolder interface identifier.
ppvOut
Address that receives the interface pointer. If an error occurs, a NULL pointer
is returned in this address.

Use this method to access the COM interface to the subfolder or subobject.
0
 
LVL 9

Expert Comment

by:magigraf
Comment Utility
Well, I guess I'll sit and watch since it's new for me...
I was under the impression that it does not since we do not have Tweal UI installed on our COBAI system. But you guys look like you have an update for me and it seems to be changing.
Regards
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Windows Mobile Barcode Scanning These days almost every product has a barcode in some way... amongst there are 1D barcodes en 2D barcodes.. From http://www.barcodeman.com/faq/2d.php I found some handy definitions and insights. 1D barcodes …
NTFS file system has been developed by Microsoft that is widely used by Windows NT operating system and its advanced versions. It is the mostly used over FAT file system as it provides superior features like reliability, security, storage, efficienc…
Windows 8 came with a dramatically different user interface known as Metro. Notably missing from that interface was a Start button and Start Menu. Microsoft responded to negative user feedback of the Metro interface, bringing back the Start button a…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now