Hi people
I need a little help with GetOpenFileName.
I want it to return just the path without the file name,
or should I say, I want to select a directory and not the file.
So that the function would return the directory path without the need to define a file name.
One posibilitie is to set up a hook, but is there any other option.
Thanks
Peace
Mostek
I need a little help with GetOpenFileName.
I want it to return just the path without the file name,
or should I say, I want to select a directory and not the file.
So that the function would return the directory path without the need to define a file name.
One posibilitie is to set up a hook, but is there any other option.
Thanks
Peace
Mostek
If you want to select a file and only get it's path, just scan the filename string backwards until you find the first backslash. Place a 0 byte after it and you'll have the file's path.
Or use the nFileOffset member of the OPENFILENAME struct. This member is a zero-based index in the filename of the file part.
However if your goal is to let the user select a directory only (not necessarily a file), you probably need some hook. An alternative is to use the masm32 lib function BrowseForFolder, which will show a common dialog with a folder list and return the path of the folder selected by the user.
Thomas
Or use the nFileOffset member of the OPENFILENAME struct. This member is a zero-based index in the filename of the file part.
However if your goal is to let the user select a directory only (not necessarily a file), you probably need some hook. An alternative is to use the masm32 lib function BrowseForFolder, which will show a common dialog with a folder list and return the path of the folder selected by the user.
Thomas
As I'm currently working on ida2sice plugIn (c/c++) I can't import masm library functions. :(
Well THE hook it is.
I just wanted to know if there are some specials options that I don't know about.
Anyway thanks a lot. And MAN must I say you are faaasssttt. :)
Thanks
Mostek
Well THE hook it is.
I just wanted to know if there are some specials options that I don't know about.
Anyway thanks a lot. And MAN must I say you are faaasssttt. :)
Thanks
Mostek
As I'm currently working on ida2sice plugIn (c/c++) I can't import masm library functions. :(
Why not?
// assuming you are using C++
extern "C" bool __stdcall BrowseForFolder(HWND hParent, char *lpBuffer, char *lpTitle, char *lpString);
Or use the C version:
// lpTitle not implemented
bool browseForFolder(HWND hParent, char *lpBuffer, char *lpString)
{
LPITEMIDLIST lpIDList;
BROWSEINFO bi;
bool retval;
lpBuffer[0]=0;
bi.hwndOwner = hParent;
bi.pidlRoot = 0;
bi.pszDisplayName = 0;
bi.lpszTitle = lpString;
bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_DONTGOBELOWDOMAIN;
bi.lpfn = NULL;
bi.iImage = 0;
if (lpIDList = SHBrowseForFolder(&bi))
{
SHGetPathFromIDList(lpIDList, lpBuffer);
retval = true;
}
else
{
retval = false;
}
CoTaskMemFree(lpIDList);
return retval;
}
I don't know why, but I always thought that MASM has some special libraries that can be read only by masm.
Well as I'm TASM programer I didn't go to deep on that.
I'm thinking to start using MASM for quite some time, but I never got to it. :(
That's why you are "Mad Wizard, programmer" and I'm only a "Code Warrior".
You are programming and I'm still fighting with the code. ;)
Thanks
Peace
Mostek
Well as I'm TASM programer I didn't go to deep on that.
I'm thinking to start using MASM for quite some time, but I never got to it. :(
That's why you are "Mad Wizard, programmer" and I'm only a "Code Warrior".
You are programming and I'm still fighting with the code. ;)
Thanks
Peace
Mostek