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.
}

Reply via email to