@@ -49,17 +49,46 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
4949 PickerCommon::ValidateStringNoEmbeddedNulls (value);
5050 m_commitButtonText = value;
5151 }
52- winrt::Windows::Foundation::Collections::IVector<hstring> FileOpenPicker::FileTypeFilter ()
52+ winrt::Windows::Foundation::Collections::IMap<winrt::hstring, winrt::Windows::Foundation::Collections::IVector<winrt::hstring>> FileOpenPicker::FileTypeChoices ()
53+ {
54+ THROW_HR_IF (E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled ());
55+ return m_fileTypeChoices;
56+ }
57+ winrt::Windows::Foundation::Collections::IVector<winrt::hstring> FileOpenPicker::FileTypeFilter ()
5358 {
5459 return m_fileTypeFilter;
5560 }
61+ winrt::hstring FileOpenPicker::SuggestedFolder ()
62+ {
63+ THROW_HR_IF (E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled ());
64+ return m_suggestedFolder;
65+ }
66+ void FileOpenPicker::SuggestedFolder (winrt::hstring const & value)
67+ {
68+ THROW_HR_IF (E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled ());
69+ PickerCommon::ValidateFolderPath (value, " SuggestedFolder" );
70+ m_suggestedFolder = value;
71+ }
72+ winrt::hstring FileOpenPicker::SuggestedStartFolder ()
73+ {
74+ THROW_HR_IF (E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled ());
75+ return m_suggestedStartFolder;
76+ }
77+ void FileOpenPicker::SuggestedStartFolder (winrt::hstring const & value)
78+ {
79+ THROW_HR_IF (E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled ());
80+ PickerCommon::ValidateFolderPath (value, " SuggestedStartFolder" );
81+ m_suggestedStartFolder = value;
82+ }
5683
5784 void FileOpenPicker::CaptureParameters (PickerCommon::PickerParameters& parameters)
5885 {
5986 parameters.HWnd = winrt::Microsoft::UI::GetWindowFromWindowId (m_windowId);
6087 parameters.CommitButtonText = m_commitButtonText;
61- parameters.PickerLocationId = m_suggestedStartLocation;
62- parameters.CaptureFilterSpec (m_fileTypeFilter.GetView ());
88+ parameters.SuggestedFolder = m_suggestedFolder;
89+ parameters.SuggestedStartLocation = m_suggestedStartLocation;
90+ parameters.SuggestedStartFolder = m_suggestedStartFolder;
91+ parameters.CaptureFilterSpecData (m_fileTypeFilter.GetView (), m_fileTypeChoices.GetView ());
6392 }
6493
6594 winrt::Windows::Foundation::IAsyncOperation<winrt::Microsoft::Windows::Storage::Pickers::PickFileResult> FileOpenPicker::PickSingleFileAsync ()
@@ -87,7 +116,6 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
87116 auto dialog = create_instance<IFileOpenDialog>(CLSID_FileOpenDialog, CLSCTX_INPROC_SERVER);
88117
89118 parameters.ConfigureDialog (dialog);
90- check_hresult (dialog->SetFileTypeIndex (parameters.FileTypeFilterPara .size ()));
91119
92120 {
93121 auto hr = dialog->Show (parameters.HWnd );
@@ -142,7 +170,6 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
142170 auto dialog = create_instance<IFileOpenDialog>(CLSID_FileOpenDialog, CLSCTX_INPROC_SERVER);
143171
144172 parameters.ConfigureDialog (dialog);
145- check_hresult (dialog->SetFileTypeIndex (parameters.FileTypeFilterPara .size ()));
146173
147174 FILEOPENDIALOGOPTIONS dialogOptions;
148175 check_hresult (dialog->GetOptions (&dialogOptions));
0 commit comments