Anyone have any clue on the MRUListEx API from Microsoft?

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
I'm playing around with the MRU lists in the registry... and there seems to be no standard way anyone does it - aside from the OLD MRUList API from comctl32.dll - which is sparingly documented these days.

That's all fine and dandy, but as the MRUList "API" says "this may change without notice". Well, I noticed it has. Windows XP, particularly the shell "Explorer" stores a lot of it's MRU information using a "new" API called MRUListEx. Unfortunately, it suffers the same fate as the old MRUList API - it's undocumented. Worse yet - it's very well hidden. Obviously it's obfuscated by ordinal, and I'm fairly certain it's hiding in SHELL32.dll or SHLWAPI.dll - as both seem to contain a great deal of registry functions (Why do they duplicate base API functionality so many times?) The one thing I'm sure of is that they DON'T use comctl32.dll anymore - dependencies show that.

Now sure, I could just read the registry values here, but I noticed that MRUListEx is quite a bit more extensive than just a new version of MRUList. It makes use of subkeys and nodes now. I'm kind of curious as to what these new features are. They seem for the most part limited to Explorer, but they're of interest to me. Anyone have any ideas?
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
The person on CodeProject wrote his own parser and is simply pulling in the registry keys and manually parsing them. That's not to say that Microsoft didn't do that - but based on the naming convention "MRUListEx" and the fact that comctl32.dll has exports for CreateMRUListA, CreateMRUListW, etc., and that they normally name enhancement revisions with the "Ex" nomenclature, there has to be an API somewhere.
 

bsobel

Moderator Emeritus<br>Elite Member
Dec 9, 2001
13,346
0
0
Originally posted by: SunnyD
I gave up and am just writing my own parser.

That was the correct answer. If its undoc, don't rely on it (especially when it's trivial to recreate)
Bill
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
Originally posted by: bsobel
Originally posted by: SunnyD
I gave up and am just writing my own parser.

That was the correct answer. If its undoc, don't rely on it (especially when it's trivial to recreate)
Bill

It's not exactly trivial. I have to make assumptions on what it's putting into the registry in the first place. My gut would say it's a double null terminated array with three entries: (0) - The name of the original file in Unicode, (1) - The name of the original file in ANSI, and (2) - The .lnk file that was created in the Recent Docs folder. But again, that's an assumption that's being made because the format is undocumented as well.
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
Well, I've asked on MSDN - we'll see if anyone is willing to reply. I noticed that the data in the keys for MRUListEx has changed in Vista as well. THIS is why I need the API.
 

SunnyD

Belgian Waffler
Jan 2, 2001
32,674
146
106
www.neftastic.com
I've figured enough of the structure of the data out now to actually use it. Not that anyone (aside from me and my employer) cares. :)
 

BRcr

Junior Member
Feb 14, 2013
12
0
0
I've figured enough of the structure of the data out now to actually use it. Not that anyone (aside from me and my employer) cares. :)
Hi :)
I wonder if you could help me out with this MRUListEx. I'm trying to understand how explorer keeps it's settings for taskbar auto-hiding from screen in registry. I took a few regshots to capture differencies appearing after a change made to this feature and found changes here: Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU\MRUListEx. It seems to be some bit field or structure and I couldn't be able to find any info on it to my shame... any clues for me?
 

BRcr

Junior Member
Feb 14, 2013
12
0
0
No help? At least you could tell me if I got this wrong and these API you've been talking about are not related to my searches at all...
 

Jeraden

Platinum Member
Oct 9, 1999
2,518
1
76
You realize the thread you are responding to is like 5 years old? I'm sure the OP isn't actively reading it anymore to answer the question. :p
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
No help? At least you could tell me if I got this wrong and these API you've been talking about are not related to my searches at all...

As Jeraden notes, the original discussion is long out of date. It's not necessarily bad to continue an old thread when it relates directly to your question, but you are still essentially starting a new conversation. Give it a few days.
 

BRcr

Junior Member
Feb 14, 2013
12
0
0
Don't be hasty, you say...:D
I understand of course that it's an old topic, but I just thought there might be some notification system on replies for thread you posted in on this forum. Seems like I was wrong; a few days it is then...:)
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Don't be hasty, you say...:D
I understand of course that it's an old topic, but I just thought there might be some notification system on replies for thread you posted in on this forum. Seems like I was wrong; a few days it is then...:)

Click 'Thread Tools' at the top of the page, then click 'Subscribe to this thread.'