Ho provato!!! La finestra non si apre per la selezione del file e quindi ho subito degli errori sulle convalide. Ti posto il codice:
codice:
		
float * matrice;
FILE *inFile;
int i,j;
int width=0,height=0;

OPENFILENAME ofn;
char szFile[260];
HWND hwnd;
HANDLE hf;              

ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = hwnd;
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = '\0'; 		
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0";
ofn.nFilterIndex = 1; 		
ofn.lpstrFileTitle = NULL; 		
ofn.nMaxFileTitle = 0; 		
ofn.lpstrInitialDir = NULL; 		
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;  
		
// Display the Open dialog box.   		
if (GetOpenFileName(&ofn)==TRUE)  			

/*hf = CreateFile(ofn.lpstrFile,GENERIC_READ, 0, (LPSECURITY_ATTRIBUTES) NULL, 		OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,(HANDLE) NULL);*/

inFile = fopen(ofn.lpstrFile,"r");
if(inFile==NULL) 		
{ 			
         OpenSteer::OpenSteerDemo::errorExit("Impossibile aprire il File del plugin successivo per il caricamento dei dati :\n"); 		
}  		

if(fscanf(inFile,"%d %d",&height,&width)!=2)
{
	OpenSteer::OpenSteerDemo::errorExit("Impossibile leggere le dimensioni dell'array dal File.\n");
	fclose(inFile);
}

//alloca la memoria necessaria
matrice = (float*)malloc(sizeof(*matrice)*width*height);
if(matrice==NULL)
{
	OpenSteer::OpenSteerDemo::errorExit("Impossibile leggere le dimensioni dell'array dal File.\n");
         fclose(inFile);  
}

//leggi i valori della matrice considerandola come un vettore width height
for(i=0; i<width*height; i++)
{
	if(fscanf(inFile,"%f",&matrice[i])!=1)
	{
                OpenSteer::OpenSteerDemo::errorExit("Il File non contiene abbastanza dati.\n");
		free(matrice);
	        fclose(inFile);
	}
}
fclose(inFile);
La finestra per la selezione del file non viene aperta e quindi anche inFile risulta essere nullo penso.