• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Anyone have any clue on the MRUListEx API from Microsoft?

SunnyD

Belgian Waffler
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?
 
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.
 
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
 
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.
 
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.
 
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. 🙂
 
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?
 
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...
 
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. 😛
 
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.
 
Don't be hasty, you say...😀
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...🙂
 
Don't be hasty, you say...😀
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.'
 
Back
Top