Original message is below, the first attempt didn't seem to get through? Are
the lists shut down at weekends?
----- Original Message -----
From: "Paul Crowder" <pa...@pa...>
To: <gam...@li...>
Sent: Friday, February 15, 2002 11:01 PM
Subject: Mind numbing GetOpenFileName Problem
> All I want is an open file dialog box, but no, windows has to cause me
> problems. Ok, its probably a silly mistake but here goes.
> I'm compiling with both these flags set:
> #define _WIN32_WINNT 0x500
> #define WINVER 0x500
>
> to try and get various things (mousewheel, ...) to co-operate. The
problem
> comes when I try and open a file dialog. The code is below. The
>
> sticking point appears to be the ofn.lStructSize line. When set using the
> VERSION_400 flag is fails gracefully with CDERR_STRUCTSIZE. If I use
>
> sizeof( OPENFILENAME ) it just crashes in the kernel on GetOpenFileName.
> This should be really simple to get up and running, but I don't know how
>
> get out of this hole I seem to have dug. With no error message, useful or
> otherwise, I'm a bit stuck.
>
> (I apologise for the crap formatting but outlook express has decided to
put
> double carriage returns everywhere - go figure).
>
> cheers
>
> Paul
>
> char inputfile[256], outputfile[256], filename[256];
> char initdir[] = "d:\\Projects\\Clearday\\Data/0";
> char title[] = "Select file to process/0";
>
>
> OPENFILENAME ofn;
> ofn.lStructSize = sizeof( OPENFILENAME_SIZE_VERSION_400 ); // =
> izeof( OPENFILENAME );
> ofn.hwndOwner = hWnd;
> char *filter = "Max ASE files/0*.ASE/0/0";
> ofn.lpstrFilter = NULL;
> ofn.lpstrCustomFilter = NULL;
> ofn.lpstrFile = inputfile;
> ofn.nMaxFile = 256;
> ofn.lpstrFileTitle = filename;
> ofn.nMaxFileTitle = 256;
> ofn.lpstrInitialDir = NULL;
> ofn.lpstrTitle = NULL;
> ofn.Flags = ( OFN_ENABLESIZING | OFN_FILEMUSTEXIST );
>
> if( GetOpenFileName( &ofn )!=0 )
> {
> _world.PreProcess( type, inputfile, outputfile );
> }
> else
> {
> DWORD err = CommDlgExtendedError();
> if( err == CDERR_STRUCTSIZE )
> {
> int a = 1;
> }
> }
>
|