The example in question is either incomplete, or has error. Must be the following:
OPENFILENAMEA open; char buffer[2048]; buffer[0] = '\0'; // ... open.lpstrFile = buffer; open.nMaxFile = 2048; // ... BOOL selected = GetOpenFileNameA(&open));