[GD-Windows] Fw: Mind numbing GetOpenFileName Problem
Brought to you by:
vexxed72
From: Paul C. <pa...@pa...> - 2002-02-18 16:17:40
|
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; > } > } > |