spudgun0 wrote: > Ok this is what I do in my WinMain (): > > ZeroMemory(&OfnSts, sizeof(OPENFILENAME)); > > OfnSts.lStructSize = sizeof(OPENFILENAME); > OfnSts.lpstrFile = (char *)malloc(MAX_FILENAME_LEN); > OfnSts.nMaxFile = MAX_FILENAME_LEN; > OfnSts.Flags = OFN_FILEMUSTEXIST | > OFN_PATHMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER /*| OFN_EXPLORER */ ; > OfnSts.hInstance = hMainInstance; > OfnSts.lpfnHook = NULL; > OfnSts.hwndOwner = GetActiveWindow(); > OfnSts.lpTemplateName = NULL; > OfnSts.lpstrFilter = filter; > OfnSts.lpstrInitialDir = NULL; > OfnSts.lpstrCustomFilter= NULL; > OfnSts.nFilterIndex = 1; > OfnSts.lpstrFileTitle = NULL; > OfnSts.lpstrDefExt = NULL; > > The structure OfnSts is declared as a global OPENFILENAME . > In a subsequent call to a DialogBox , I just call > > the GetOpenFileName (&ofnSts) . > > This call always fails with a CDERR_INITIALIZATION error, no matter > what parameters I set in OfnSts. > Any idea ? > thanx
From MSDN Library on 'lpstrFile': "Pointer to a buffer that contains a file name used to initialize the File Name edit control. The first character of this buffer must be NULL if initialization is not necessary." You got the first sentence correct. Not so hot on the second one. When reading MSDN Library, you have to _stare_ at it for hours on end to be absolutely certain you are doing it right before writing even one line of code...and not missing anything critical. Microsoft buries important information in multiple locations - cross-check each line with the documentation for proper use. When I'm messing with APIs, I have 30-40 browser windows open...and even then I can still miss something important. I always assume any example I see is wrong in some fashion. Also, the 'hInstance' parameter should be NULL - you aren't supplying a dialog box resource. Those are the only obvious things that stick out. You don't really need to be assigning NULLs everywhere,..you did a ZeroMemory() call, which is good enough. -- Thomas Hruska CubicleSoft President Ph: 517-803-4197 *NEW* VerifyMyPC 2.4 Change tracking and management tool. Reduce tech. support times from 2 hours to 5 minutes. http://www.CubicleSoft.com/VerifyMyPC/
