AiDataTaskRuner/DllFilseSelctDialog/DllFilseSelctDialog/dllmain.cpp
2026-03-25 18:07:19 -05:00

53 lines
No EOL
1.7 KiB
C++

// dllmain.cpp : Define el punto de entrada de la aplicación DLL.
#include "pch.h"
//+------------------------------------------------------------------+
//| Punto base de entrada no aqui no haremos nada aun |
//+------------------------------------------------------------------+
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
/*
#define OFN_FILEMUSTEXIST 0x1000 // File debe e exisitr
#define OFN_PATHMUSTEXIST 0x800 // Path a file debe de existir)
#define OFN_NOCHANGEDIR 0x8 // no cambiar de dir (sandbox)
*/
extern "C" __declspec(dllexport)
bool __stdcall FileSelectDialogComplete(
wchar_t* out_selected_path, // solo un file
int max_len_out_str, // maximo len de salida
const wchar_t* caption, // caoption
const wchar_t* filter, // Filtros
const wchar_t* init_dir, // Initial dir
const DWORD flags) // Banderas parecido a FSD
{
OPENFILENAMEW ofn = {};
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = out_selected_path;
ofn.nMaxFile = max_len_out_str;
ofn.lpstrFilter = filter;
ofn.lpstrTitle = caption;
ofn.lpstrInitialDir = init_dir;
// Siempre explorar| No archivos de solo lecutra (posibles erroes con permiiso en mql5)
// tambien el de solo lecutra (necesitamos permidsos complets)
ofn.Flags = OFN_EXPLORER | OFN_NOREADONLYRETURN | OFN_HIDEREADONLY | flags;
return GetOpenFileNameW(&ofn) == TRUE;
}