OPENFILENAME Abrir;
char *file = (char*)MALLOC(1024);
char *path = (char*)MALLOC(1024);
ZeroMemory(&Abrir, sizeof(OPENFILENAME));
Abrir.lStructSize = sizeof(OPENFILENAME);
Abrir.hwndOwner = NULL;
Abrir.nFilterIndex = 1;
Abrir.lpstrFile = path;
Abrir.nMaxFile = 1024;
Abrir.lpstrFileTitle = file;
Abrir.nMaxFileTitle = 1024;
Abrir.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
Abrir.lpstrFilter = "Texto\0*.txt\0Todos los archivos\0*.*\0";
Abrir.lpstrInitialDir = 0;
Abrir.lpstrTitle = "Selecciona un archivo\0\0";
DWORD Abierto = GetOpenFileName(&Abrir);
if (Abierto != 0) { MessageBox(0,path,path,0); } //aca esta el archivo que seleccionaron
free(file);
free(path);