• Sábado 28 de Septiembre de 2024, 19:27

Autor Tema:  Uso De La Funcion Getopenfilename() En C++  (Leído 1193 veces)

CPFDeveloper

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Uso De La Funcion Getopenfilename() En C++
« en: Martes 14 de Septiembre de 2004, 00:40 »
0
Hola !!! Soy de nuevo ingreso. Mi nombre es Pablo.

Tengo un problema muy extraño relacionado con el uso de la funcion GetOpenFileName().

Como saben a esta funcion se le pasa por parametro una objeto del tipo OPENFILENAME inicializado.

Al momento de invocar la funcion el cuadro de dialogo es desplegado y por lo tanto selecciono el archivo a utilizar y posteriormente doy un click en el boton de "oK" hasta aqui todo parece estar bien pero lo extraño de todo esto es que la funcion no regresa ningun codigo de retorno.

El llamado de la funcion esta dentro de un IF() en caso de que regrese TRUE realizo ciertas acciones al igual en caso de que regrese FALSE, pero lo extraño es que en ninguno de los 2 casos el codigo respectivo es ejecutado dando me a entender que algo esta pasando.

Tratando de entender cual es el problema implemente una rutina de manejo de errores invocando la funcion CommDlgExtendedError() pero esta nunca es ejecutada pues ninguna linea de codigo es ejecutada despues del llamado de la funcion getOpenFileName()


Este es part del codigo:

char filePath[256] = {0};

OPENFILENAME ofn;
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);

ofn.hwndOwner = handle();
ofn.lpstrFilter = "wwp Files (*.wwp)\0""*.wwp\0\0";
ofn.lpstrCustomFilter = NULL;
ofn.nMaxCustFilter = 0L;
ofn.nFilterIndex = 1;
ofn.lpstrFile = filePath; // out
ofn.nMaxFile = 256;
ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_EXPLORER ;
ofn.lpstrDefExt = "wwp";

   if ( GetOpenFileName(&ofn) )
      .......
   else
      .......


Pienso que posiblemente sea un erro en la inicializacion de la estructura OPENFILENAME pero no se que pueda ser, pues he realizado diferentes combinaciones y nada. Estoy utilizando XP.

Gracias y espero alguien puedea ayudarme, lo agradeceria infinitamente.
Saludos.