The UserAccounts.CommonDialog ActiveX does not work anymore in Vista. You have two choices:
Either replace it with MSComDlg.CommonDialog. But the MSComDlg.CommonDialog ActiveX will only work if you have a design license for it (you'll have that when you have installed stuff like MSOffice, Visual Studio, VB, ...). So it usually will work, but it might not on all systems.
Or do
as Matty suggested and use the GetOpenFileName API.
(recommended method)