Come già detto in altri due thread in precedenza ...
Ma scusa, cosa non ti è chiaro?
Se sviluppi con .NET usi la classe OpenFileDialog (ma con del codice del tutto diverso), se sviluppi con le API native (senza .NET) allora usi la GetOpenFileName ...
Devi decidere ... finchè mischierai i due tipi di codice, avrai errori.