But I have some design differences.
...
I save two strings per list entry. One is the menu entry, the other is the data (file with path for example).
I use the full file path, with a question mark if the drive is the same as the executable's drive:
?:\Masm32\MasmBasic\BugTests\DotOneC.asc <<< on drive J:, like the executable
C:\Masm32\MasmBasic\AscUser\SimpleMRU.asc <<< this one on drive C:
?:\Masm32\MasmBasic\BugTests\DotOneB.asc <<< on drive J:, like the executable
This makes sure that when you move to the other machine where all your docs are on J: instead of D:, you can still see your files.
The ini text file is loaded into an array (see Recall above), and its elements are directly used to open files. For the menu display, however, only the last folder and the file name are being displayed. For example, your project's ini file would be displayed as
WSDIMenu4\WSDIMenu4.iniOver time, this has proven to be a very reliable feature. For PellesC project, you might include the last two folders, if you often open files in subfolders and debug\foo.x is not descriptive enough.