News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change

Main Menu

FileDialog Library

Started by fearless, August 09, 2024, 08:35:54 AM

Previous topic - Next topic

fearless

FileDialog Library - a library written in assembler (for x86 and x64) which consists of functions that wrap the COM implementation of the common item dialog used with IFileOpenDialog and IFileSaveDialog objects. Thus the FileDialog Library functions hide the complexities of interacting with the COM objects, and provide easy to use functions with support for both Ansi and Wide/Unicode.

  • Open File Dialog Functions: FileOpenDialogA & FileOpenDialogW
  • Save File Dialog Functions: FileSaveDialogA & FileSaveDialogW
  • Folder Select Dialog Functions: FolderSelectDialogA & FolderSelectDialogW

https://github.com/mrfearless/FileDialog-Library

I also added some test radasm projects for x86 and x64.

Probably will fold them into the UASM64 library as well at some point, to compliment the existing System Dialog functions that are in the MASM32 library.

There is a readthedocs page for the functions as well.

Biterider

Hi fearless
I have tested your new library. It works perfectly.  :thumbsup:
It's a really good addition for beginners who don't want to deal with COM yet.

Regards, Biterider

fearless

Thanks for testing it out.

I learnt a good bit more about COM whilst developing it, and wanted to replace the older OpenFileName usage I was using in a few projects, especially for multiple file handling, which with the old way you kinda have to allocate the memory before you know how many files you will receive. With the COM IFileDialog versions you can iterate over the returned files, which meant I could create the null terminated list/array of filenames for that usage. Plus handling Ansi and Wide versions for convenience - mainly for myself - but for others that use the library as well.

Still a few areas of COM that I need to figure out, so could be there is some issues or memory leaks. From my own testing I didnt notice anything, but these things are easily missed, so maybe there is a few there somewhere - hopefully not ;-)