|
10 | 10 | #include <shobjidl_core.h>
|
11 | 11 | #include <winrt/Microsoft.UI.Interop.h>
|
12 | 12 | #include "TerminalVelocityFeatures-StoragePickers.h"
|
13 |
| -#include "TerminalVelocityFeatures-StoragePickers2.h" |
14 | 13 | #include "PickerCommon.h"
|
15 | 14 | #include "PickFileResult.h"
|
16 | 15 | #include "PickerLocalization.h"
|
@@ -50,46 +49,17 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
|
50 | 49 | PickerCommon::ValidateStringNoEmbeddedNulls(value);
|
51 | 50 | m_commitButtonText = value;
|
52 | 51 | }
|
53 |
| - winrt::Windows::Foundation::Collections::IMap<winrt::hstring, winrt::Windows::Foundation::Collections::IVector<winrt::hstring>> FileOpenPicker::FileTypeChoices() |
54 |
| - { |
55 |
| - THROW_HR_IF(E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled()); |
56 |
| - return m_fileTypeChoices; |
57 |
| - } |
58 |
| - winrt::Windows::Foundation::Collections::IVector<winrt::hstring> FileOpenPicker::FileTypeFilter() |
| 52 | + winrt::Windows::Foundation::Collections::IVector<hstring> FileOpenPicker::FileTypeFilter() |
59 | 53 | {
|
60 | 54 | return m_fileTypeFilter;
|
61 | 55 | }
|
62 |
| - winrt::hstring FileOpenPicker::SuggestedFolder() |
63 |
| - { |
64 |
| - THROW_HR_IF(E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled()); |
65 |
| - return m_suggestedFolder; |
66 |
| - } |
67 |
| - void FileOpenPicker::SuggestedFolder(winrt::hstring const& value) |
68 |
| - { |
69 |
| - THROW_HR_IF(E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled()); |
70 |
| - PickerCommon::ValidateFolderPath(value, "SuggestedFolder"); |
71 |
| - m_suggestedFolder = value; |
72 |
| - } |
73 |
| - winrt::hstring FileOpenPicker::SuggestedStartFolder() |
74 |
| - { |
75 |
| - THROW_HR_IF(E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled()); |
76 |
| - return m_suggestedStartFolder; |
77 |
| - } |
78 |
| - void FileOpenPicker::SuggestedStartFolder(winrt::hstring const& value) |
79 |
| - { |
80 |
| - THROW_HR_IF(E_NOTIMPL, !::Microsoft::Windows::Storage::Pickers::Feature_StoragePickers2::IsEnabled()); |
81 |
| - PickerCommon::ValidateFolderPath(value, "SuggestedStartFolder"); |
82 |
| - m_suggestedStartFolder = value; |
83 |
| - } |
84 | 56 |
|
85 | 57 | void FileOpenPicker::CaptureParameters(PickerCommon::PickerParameters& parameters)
|
86 | 58 | {
|
87 | 59 | parameters.HWnd = winrt::Microsoft::UI::GetWindowFromWindowId(m_windowId);
|
88 | 60 | parameters.CommitButtonText = m_commitButtonText;
|
89 |
| - parameters.SuggestedFolder = m_suggestedFolder; |
90 |
| - parameters.SuggestedStartLocation = m_suggestedStartLocation; |
91 |
| - parameters.SuggestedStartFolder = m_suggestedStartFolder; |
92 |
| - parameters.CaptureFilterSpecData(m_fileTypeFilter.GetView(), m_fileTypeChoices.GetView()); |
| 61 | + parameters.PickerLocationId = m_suggestedStartLocation; |
| 62 | + parameters.CaptureFilterSpec(m_fileTypeFilter.GetView()); |
93 | 63 | }
|
94 | 64 |
|
95 | 65 | winrt::Windows::Foundation::IAsyncOperation<winrt::Microsoft::Windows::Storage::Pickers::PickFileResult> FileOpenPicker::PickSingleFileAsync()
|
@@ -117,6 +87,7 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
|
117 | 87 | auto dialog = create_instance<IFileOpenDialog>(CLSID_FileOpenDialog, CLSCTX_INPROC_SERVER);
|
118 | 88 |
|
119 | 89 | parameters.ConfigureDialog(dialog);
|
| 90 | + check_hresult(dialog->SetFileTypeIndex(parameters.FileTypeFilterPara.size())); |
120 | 91 |
|
121 | 92 | {
|
122 | 93 | auto hr = dialog->Show(parameters.HWnd);
|
@@ -171,6 +142,7 @@ namespace winrt::Microsoft::Windows::Storage::Pickers::implementation
|
171 | 142 | auto dialog = create_instance<IFileOpenDialog>(CLSID_FileOpenDialog, CLSCTX_INPROC_SERVER);
|
172 | 143 |
|
173 | 144 | parameters.ConfigureDialog(dialog);
|
| 145 | + check_hresult(dialog->SetFileTypeIndex(parameters.FileTypeFilterPara.size())); |
174 | 146 |
|
175 | 147 | FILEOPENDIALOGOPTIONS dialogOptions;
|
176 | 148 | check_hresult(dialog->GetOptions(&dialogOptions));
|
|
0 commit comments