Самое простое, что можно сделать, это, вероятно, просто перебрать возвращаемые строки напрямую. (Нет необходимости создавать отдельный массив.) Код будет выглядеть примерно так (проверка ошибок опущена):
GetOpenFileName( &ofn );
LPSTR pszFileName = ofn.lpstrFile;
while( *pszFileName != 0 )
{
// do stuff...
pszFileName += strlen( pszFileName ) + 1;
}
Кроме того, не забывайте, что если пользователь выбирает несколько файлов, первой записью будет имя папки.