Sudip,

What ?...@#... is this? :)
ofn.lStructSize       = 76;

In BCC and in MinGW !!! .-

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

Sorry, it's a joke, remember that C don't initialize anything eg nil.

--
Xavi

Sudip Bhattacharyya escribió:
Hi All,

I use following code for Common Dialog boxes. When I call the functon
CSaveFile() or COpenFile() compiled with BCC, it gives error, but runs fine
when compiled with Mingw compiler.

#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

HB_FUNC( CSAVEFILE )
{
    OPENFILENAME ofn;

    char File[ MAX_PATH ] = "";
    char Filter[ MAX_PATH ] = "";

    if ( ISCHAR( 1 ) )
        lstrcpy( File, hb_parc( 1 ) );

    if ( ISCHAR( 2 ) )
       lstrcpy( Filter, hb_parc( 2 ) ) ;


    ofn.lStructSize       = 76;
    ofn.hwndOwner         = GetActiveWindow();
//    ofn.lpstrFilter       =
"Excel(*.xls,*.csv)\0*.xls;*.csv\0All(*.*)\0*.*\0";
   ofn.lpstrFilter       = Filter;
    ofn.lpstrCustomFilter = 0;
    ofn.nFilterIndex      = 1;
    ofn.lpstrFile         = File;
    ofn.nMaxFile          = MAX_PATH;
    ofn.lpstrFileTitle    = 0;
    //ofn.lpstrInitialDir   = 0;
    ofn.lpstrTitle        = "Save As";
    ofn.Flags             = OFN_HIDEREADONLY | OFN_NOCHANGEDIR |
OFN_SHAREAWARE |
OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST |
OFN_OVERWRITEPROMPT ;
    ofn.lpstrDefExt       = 0;

    if ( GetSaveFileName( &ofn ) )
        hb_retclen( File, lstrlen( File ) );
    else
        hb_retc( "" );

}



HB_FUNC( COPENFILE )
{
    OPENFILENAME ofn;

    char File[ MAX_PATH ] = "";
    char Filter[ MAX_PATH ] = "";

    if ( ISCHAR( 1 ) )
        lstrcpy( File, hb_parc( 1 ) );

    if ( ISCHAR( 2 ) )
       lstrcpy( Filter, hb_parc( 2 ) ) ;


    ofn.lStructSize       = 76;
    ofn.hwndOwner         = GetActiveWindow();
//    ofn.lpstrFilter       =
"Excel(*.xls,*.csv)\0*.xls;*.csv\0All(*.*)\0*.*\0";
   ofn.lpstrFilter       = Filter;
    ofn.lpstrCustomFilter = 0;
    ofn.nFilterIndex      = 1;
    ofn.lpstrFile         = File;
    ofn.nMaxFile          = MAX_PATH;
    ofn.lpstrFileTitle    = 0;
    //ofn.lpstrInitialDir   = 0;
    ofn.lpstrTitle        = "Open";
    ofn.Flags             = OFN_HIDEREADONLY | OFN_NOCHANGEDIR |
OFN_SHAREAWARE |
OFN_NODEREFERENCELINKS | OFN_NOTESTFILECREATE | OFN_PATHMUSTEXIST |
OFN_OVERWRITEPROMPT ;
    ofn.lpstrDefExt       = 0;

    if ( GetOpenFileName( &ofn ) )
        hb_retclen( File, lstrlen( File ) );
    else
        hb_retc( "" );

}

#pragma ENDDUMP


I shall be grateful for any explanation of this behavior. :-)

Regards.

Sudip


_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to