Большая часть потребностей SHOpoenFolderSelectedItems
будет обработана:
Для выбора файла в C# вы обычно используете: System.Windows.Forms.OpenFileDialog.
Для выбора папки в C# обычно используется: System.Windows.Forms.FolderBrowserDialog.
Вы установите соответствующий фильтр и сможете задать выбранный элемент изначально.
Возможно, это достаточно близко к тому, что вам нужно?
.Чек http://www.cnblogs.com/qiuyi21/archive/2009/06/24/1510592.html . В примере используется IShellLink для получения pidls из пути перед запуском SHOpenFolderAndSelectItems, вместо этого я бы использовал ILCreateFromPath.