Win32 Api: How create Open/"Save as" Dialog?

Marcone marcone at email.com
Sat Jan 11 12:22:25 UTC 2020


On Friday, 10 January 2020 at 14:48:49 UTC, Marcone wrote:
> How create "Open" and "Save as" Dialog using "Win32 Api" and 
> Dlang? Please send me a simple example code in Dlang. Thank you 
> very much.

Solution:

import std;
import core.sys.windows.windows;
pragma(lib, "comdlg32");

// Function askopenfilename()
string askopenfilename(const(wchar)* filter = ""){
     OPENFILENAME ofn;
     wchar[1024] szFileName = 0;
     ofn.lpstrFile = cast(LPWSTR) szFileName;
     ofn.lpstrFilter = filter;
     ofn.nMaxFile = MAX_PATH;
     ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | 
OFN_HIDEREADONLY;
     if (GetOpenFileNameW(&ofn)){
         return to!string(szFileName[0..szFileName.indexOf('\0')]);
     } else {
         return "";
     }
}

void main(){
     writeln(askopenfilename()); // Call without filter.
     writeln(askopenfilename("Text Files (*.txt)\0*.txt\0All Files 
(*.*)\0*.*\0")); // Cal using filter.
}


More information about the Digitalmars-d-learn mailing list