diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d4d7fbfe..ac6352ff 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,19 +7,19 @@ on: branches: [ master ] env: - DOTNET_VERSION: 9.0.x + DOTNET_VERSION: 10.0.x jobs: build: if: ${{ !github.event.pull_request.draft }} runs-on: windows-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: submodules: true - name: Use .NET ${{ env.DOTNET_VERSION }} - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@baa11fbfe1d6520db94683bd5c7a3818018e4309 # v5.1.0 with: dotnet-version: ${{ env.DOTNET_VERSION }} diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e1840e70..61c06a61 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,24 +5,24 @@ on: tags: [ v* ] env: - DOTNET_VERSION: 9.0.x + DOTNET_VERSION: 10.0.x BUNDLE_PLATFORMS: x64|arm64 jobs: publish: runs-on: windows-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: submodules: true - name: Use .NET ${{ env.DOTNET_VERSION }} - uses: actions/setup-dotnet@v5 + uses: actions/setup-dotnet@baa11fbfe1d6520db94683bd5c7a3818018e4309 # v5.1.0 with: dotnet-version: ${{ env.DOTNET_VERSION }} - name: Use MSBuild - uses: microsoft/setup-msbuild@v2 + uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2 - name: Setup Version id: setup_version @@ -54,7 +54,7 @@ jobs: /verbosity:minimal - name: Upload MSIX - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0 with: name: msix path: packed\*.msixupload diff --git a/Directory.Build.props b/Directory.Build.props index eb17d495..91c29e5e 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - net9.0-windows10.0.26100.0 + net10.0-windows10.0.26100.0 x64;arm64 enable nullable diff --git a/WinQuickLook.App/WinQuickLook.App.csproj b/WinQuickLook.App/WinQuickLook.App.csproj index a2f2f0cb..bf84718a 100644 --- a/WinQuickLook.App/WinQuickLook.App.csproj +++ b/WinQuickLook.App/WinQuickLook.App.csproj @@ -18,7 +18,7 @@ - + diff --git a/WinQuickLook.App/packages.lock.json b/WinQuickLook.App/packages.lock.json index ba291d18..b9072a74 100644 --- a/WinQuickLook.App/packages.lock.json +++ b/WinQuickLook.App/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net9.0-windows10.0.26100": { + "net10.0-windows10.0.26100": { "Hardcodet.NotifyIcon.Wpf": { "type": "Direct", "requested": "[2.0.1, )", @@ -10,11 +10,11 @@ }, "Microsoft.Extensions.DependencyInjection": { "type": "Direct", - "requested": "[9.0.9, )", - "resolved": "9.0.9", - "contentHash": "zQV2WOSP+3z1EuK91ULxfGgo2Y75bTRnmJHp08+w/YXAyekZutX/qCd88/HOMNh35MDW9mJJJxPpMPS+1Rww8A==", + "requested": "[10.0.2, )", + "resolved": "10.0.2", + "contentHash": "J/Zmp6fY93JbaiZ11ckWvcyxMPjD6XVwIHQXBjryTBgn7O6O20HYg9uVLFcZlNfgH78MnreE/7EH+hjfzn7VyA==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.9" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2" } }, "AvalonEdit": { @@ -29,26 +29,26 @@ }, "Markdig": { "type": "Transitive", - "resolved": "0.42.0", - "contentHash": "tINdftVfbTujqfPXrQOSl9/6XCS2Y4Zwz+i7UPBgxRNnDtI1CjyQ5UA/5sKoSOmfECyWkTztY/vbcc/u1DA8nA==" + "resolved": "0.44.0", + "contentHash": "X+CYMjcUnh/yO24wOSQxVFLiGqWrrtXJ5M7toHiM1Zk4Fg9UMLN5fkaq6FSOWH+mIprsHHgDMlq3MJhmrXalhg==" }, "Microsoft.Extensions.DependencyInjection.Abstractions": { "type": "Transitive", - "resolved": "9.0.9", - "contentHash": "/hymojfWbE9AlDOa0mczR44m00Jj+T3+HZO0ZnVTI032fVycI0ZbNOVFP6kqZMcXiLSYXzR2ilcwaRi6dzeGyA==" + "resolved": "10.0.2", + "contentHash": "zOIurr59+kUf9vNcsUkCvKWZv+fPosUZXURZesYkJCvl0EzTc9F7maAO4Cd2WEV7ZJJ0AZrFQvuH6Npph9wdBw==" }, "Microsoft.Web.WebView2": { "type": "Transitive", - "resolved": "1.0.3537.50", - "contentHash": "6RQRMIcc/xnhDCdBmyc+YoPxPlYHjmg/mfVpQb4iYWr+K/cs28dTxCyOYFZjUFtiwupXN9nCqxOSMumn2ZKAIg==" + "resolved": "1.0.3719.77", + "contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA==" }, "winquicklook.core": { "type": "Project", "dependencies": { "AvalonEdit": "[6.3.1.120, )", "Cylinder.WPF": "[1.0.0-preview.2, )", - "Markdig": "[0.42.0, )", - "Microsoft.Web.WebView2": "[1.0.3537.50, )", + "Markdig": "[0.44.0, )", + "Microsoft.Web.WebView2": "[1.0.3719.77, )", "WinQuickLook.CsWin32": "[1.0.0, )" } }, @@ -56,18 +56,18 @@ "type": "Project" } }, - "net9.0-windows10.0.26100/win-arm64": { + "net10.0-windows10.0.26100/win-arm64": { "Microsoft.Web.WebView2": { "type": "Transitive", - "resolved": "1.0.3537.50", - "contentHash": "6RQRMIcc/xnhDCdBmyc+YoPxPlYHjmg/mfVpQb4iYWr+K/cs28dTxCyOYFZjUFtiwupXN9nCqxOSMumn2ZKAIg==" + "resolved": "1.0.3719.77", + "contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA==" } }, - "net9.0-windows10.0.26100/win-x64": { + "net10.0-windows10.0.26100/win-x64": { "Microsoft.Web.WebView2": { "type": "Transitive", - "resolved": "1.0.3537.50", - "contentHash": "6RQRMIcc/xnhDCdBmyc+YoPxPlYHjmg/mfVpQb4iYWr+K/cs28dTxCyOYFZjUFtiwupXN9nCqxOSMumn2ZKAIg==" + "resolved": "1.0.3719.77", + "contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA==" } } } diff --git a/WinQuickLook.Core.Tests/WinQuickLook.Core.Tests.csproj b/WinQuickLook.Core.Tests/WinQuickLook.Core.Tests.csproj index 6828db44..1ed670b6 100644 --- a/WinQuickLook.Core.Tests/WinQuickLook.Core.Tests.csproj +++ b/WinQuickLook.Core.Tests/WinQuickLook.Core.Tests.csproj @@ -16,7 +16,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive @@ -27,7 +27,7 @@ all - + diff --git a/WinQuickLook.Core.Tests/packages.lock.json b/WinQuickLook.Core.Tests/packages.lock.json index 38870d10..b3d2ca17 100644 --- a/WinQuickLook.Core.Tests/packages.lock.json +++ b/WinQuickLook.Core.Tests/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net9.0-windows10.0.26100": { + "net10.0-windows10.0.26100": { "coverlet.collector": { "type": "Direct", "requested": "[6.0.4, )", @@ -10,12 +10,12 @@ }, "Microsoft.NET.Test.Sdk": { "type": "Direct", - "requested": "[18.0.0, )", - "resolved": "18.0.0", - "contentHash": "bvxj2Asb7nT+tqOFFerrhQeEjUYLwx0Poi0Rznu63WbqN+A4uDn1t5NWXfAOOQsF6lpmK6N2v+Vvgso7KWZS7g==", + "requested": "[18.0.1, )", + "resolved": "18.0.1", + "contentHash": "WNpu6vI2rA0pXY4r7NKxCN16XRWl5uHu6qjuyVLoDo6oYEggIQefrMjkRuibQHm/NslIUNCcKftvoWAN80MSAg==", "dependencies": { - "Microsoft.CodeCoverage": "18.0.0", - "Microsoft.TestPlatform.TestHost": "18.0.0" + "Microsoft.CodeCoverage": "18.0.1", + "Microsoft.TestPlatform.TestHost": "18.0.1" } }, "Moq": { @@ -44,13 +44,11 @@ }, "xunit.v3": { "type": "Direct", - "requested": "[3.1.0, )", - "resolved": "3.1.0", - "contentHash": "fyPBoHfdFr3udiylMo7Soo8j6HO0yHhthZkHT4hlszhXBJPRoSzXesqD8PcGkhnASiOxgjh8jOmJPKBTMItoyA==", + "requested": "[3.2.2, )", + "resolved": "3.2.2", + "contentHash": "L+4/4y0Uqcg8/d6hfnxhnwh4j9FaeULvefTwrk30rr1o4n/vdPfyUQ8k0yzH8VJx7bmFEkDdcRfbtbjEHlaYcA==", "dependencies": { - "xunit.analyzers": "1.24.0", - "xunit.v3.assert": "[3.1.0]", - "xunit.v3.core": "[3.1.0]" + "xunit.v3.mtp-v1": "[3.2.2]" } }, "AvalonEdit": { @@ -73,8 +71,13 @@ }, "Markdig": { "type": "Transitive", - "resolved": "0.42.0", - "contentHash": "tINdftVfbTujqfPXrQOSl9/6XCS2Y4Zwz+i7UPBgxRNnDtI1CjyQ5UA/5sKoSOmfECyWkTztY/vbcc/u1DA8nA==" + "resolved": "0.44.0", + "contentHash": "X+CYMjcUnh/yO24wOSQxVFLiGqWrrtXJ5M7toHiM1Zk4Fg9UMLN5fkaq6FSOWH+mIprsHHgDMlq3MJhmrXalhg==" + }, + "Microsoft.ApplicationInsights": { + "type": "Transitive", + "resolved": "2.23.0", + "contentHash": "nWArUZTdU7iqZLycLKWe0TDms48KKGE6pONH2terYNa8REXiqixrMOkf1sk5DHGMaUTqONU2YkS4SAXBhLStgw==" }, "Microsoft.Bcl.AsyncInterfaces": { "type": "Transitive", @@ -83,157 +86,138 @@ }, "Microsoft.CodeCoverage": { "type": "Transitive", - "resolved": "18.0.0", - "contentHash": "DFPhMrsIofgJ1DDU3ModqqRArDm15/bNl4ecmcuBspZkZ4ONYnCC0R8U27WzK7cYv6r8l6Q/fRmvg7cb+I/dJA==" + "resolved": "18.0.1", + "contentHash": "O+utSr97NAJowIQT/OVp3Lh9QgW/wALVTP4RG1m2AfFP4IyJmJz0ZBmFJUsRQiAPgq6IRC0t8AAzsiPIsaUDEA==" }, - "Microsoft.NETCore.Platforms": { + "Microsoft.Testing.Extensions.Telemetry": { "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==" + "resolved": "1.9.1", + "contentHash": "No5AudZMmSb+uNXjlgL2y3/stHD2IT4uxqc5yHwkE+/nNux9jbKcaJMvcp9SwgP4DVD8L9/P3OUz8mmmcvEIdQ==", + "dependencies": { + "Microsoft.ApplicationInsights": "2.23.0", + "Microsoft.Testing.Platform": "1.9.1" + } }, "Microsoft.Testing.Extensions.TrxReport.Abstractions": { "type": "Transitive", - "resolved": "1.8.4", - "contentHash": "jDGV5d9K5zeQG6I5ZHZrrXd0sO9up/XLpb5qI5W+FPGJx5JXx5yEiwkw0MIEykH9ydeMASPOmjbY/7jS++gYwA==", + "resolved": "1.9.1", + "contentHash": "AL46Xe1WBi85Ntd4mNPvat5ZSsZ2uejiVqoKCypr8J3wK0elA5xJ3AN4G/Q4GIwzUFnggZoH/DBjnr9J18IO/g==", "dependencies": { - "Microsoft.Testing.Platform": "1.8.4" + "Microsoft.Testing.Platform": "1.9.1" } }, "Microsoft.Testing.Platform": { "type": "Transitive", - "resolved": "1.8.4", - "contentHash": "MpYE6A13G9zLZjkDmy2Fm/R0MRkjBR75P0F8B1yLaUshaATixPlk2S2OE6u/rlqtqMkbEyM7F6wxc332gZpBpA==" + "resolved": "1.9.1", + "contentHash": "QafNtNSmEI0zazdebnsIkDKmFtTSpmx/5PLOjURWwozcPb3tvRxzosQSL8xwYNM1iPhhKiBksXZyRSE2COisrA==" }, "Microsoft.Testing.Platform.MSBuild": { "type": "Transitive", - "resolved": "1.8.4", - "contentHash": "RnS7G0eXAopdIf/XPGFNW8HUwZxRq5iGX34rVYhyDUbLS7sF513yosd4P50GtjBKqOay4qb+WHYr4NkWjtUWzQ==", + "resolved": "1.9.1", + "contentHash": "oTUtyR4X/s9ytuiNA29FGsNCCH0rNmY5Wdm14NCKLjTM1cT9edVSlA+rGS/mVmusPqcP0l/x9qOnMXg16v87RQ==", "dependencies": { - "Microsoft.Testing.Platform": "1.8.4" + "Microsoft.Testing.Platform": "1.9.1" } }, "Microsoft.TestPlatform.ObjectModel": { "type": "Transitive", - "resolved": "18.0.0", - "contentHash": "Al/a99ymb8UdEEh6DKNiaoFn5i8fvX5PdM9LfU9Z/Q8NJrlyHHzF+LRHLbR+t89gRsJ2fFMpwYxgEn3eH1BQwA==", - "dependencies": { - "System.Reflection.Metadata": "8.0.0" - } + "resolved": "18.0.1", + "contentHash": "qT/mwMcLF9BieRkzOBPL2qCopl8hQu6A1P7JWAoj/FMu5i9vds/7cjbJ/LLtaiwWevWLAeD5v5wjQJ/l6jvhWQ==" }, "Microsoft.TestPlatform.TestHost": { "type": "Transitive", - "resolved": "18.0.0", - "contentHash": "aAxE8Thr9ZHGrljOYaDeLJqitQi75iE4xeEFn6CEGFirlHSn1KwpKPniuEn6zCLZ90Z3XqNlrC3ZJTuvBov45w==", + "resolved": "18.0.1", + "contentHash": "uDJKAEjFTaa2wHdWlfo6ektyoh+WD4/Eesrwb4FpBFKsLGehhACVnwwTI4qD3FrIlIEPlxdXg3SyrYRIcO+RRQ==", "dependencies": { - "Microsoft.TestPlatform.ObjectModel": "18.0.0", + "Microsoft.TestPlatform.ObjectModel": "18.0.1", "Newtonsoft.Json": "13.0.3" } }, "Microsoft.Web.WebView2": { "type": "Transitive", - "resolved": "1.0.3537.50", - "contentHash": "6RQRMIcc/xnhDCdBmyc+YoPxPlYHjmg/mfVpQb4iYWr+K/cs28dTxCyOYFZjUFtiwupXN9nCqxOSMumn2ZKAIg==" + "resolved": "1.0.3719.77", + "contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA==" }, "Microsoft.Win32.Registry": { "type": "Transitive", "resolved": "5.0.0", - "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", - "dependencies": { - "System.Security.AccessControl": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } + "contentHash": "dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==" }, "Newtonsoft.Json": { "type": "Transitive", "resolved": "13.0.3", "contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==" }, - "System.Collections.Immutable": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==" - }, "System.Diagnostics.EventLog": { "type": "Transitive", "resolved": "6.0.0", "contentHash": "lcyUiXTsETK2ALsZrX+nWuHSIQeazhqPphLfaRxzdGaG93+0kELqpgEHtwWOlQe7+jSFnKwaCAgL4kjeZCQJnw==" }, - "System.Reflection.Metadata": { - "type": "Transitive", - "resolved": "8.0.0", - "contentHash": "ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", - "dependencies": { - "System.Collections.Immutable": "8.0.0" - } - }, - "System.Security.AccessControl": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", - "dependencies": { - "Microsoft.NETCore.Platforms": "5.0.0", - "System.Security.Principal.Windows": "5.0.0" - } - }, - "System.Security.Principal.Windows": { - "type": "Transitive", - "resolved": "5.0.0", - "contentHash": "t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==" - }, "xunit.analyzers": { "type": "Transitive", - "resolved": "1.24.0", - "contentHash": "kxaoMFFZcQ+mJudaKKlt3gCqV6M6Gjbka0NEs8JFDrxn52O7w5OOnYfSYVfqusk8p7pxrGdjgaQHlGINsNZHAQ==" + "resolved": "1.27.0", + "contentHash": "y/pxIQaLvk/kxAoDkZW9GnHLCEqzwl5TW0vtX3pweyQpjizB9y3DXhb9pkw2dGeUqhLjsxvvJM1k89JowU6z3g==" }, "xunit.v3.assert": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "tSNOA4DC5toh9zv8todoQSxp6YBMER2VaH5Ll+FYotqxRei16HLQo7G4KDHNFaqUjnaSGpEcfeYMab+bFI/1kQ==" + "resolved": "3.2.2", + "contentHash": "BPciBghgEEaJN/JG00QfCYDfEfnLgQhfnYEy+j1izoeHVNYd5+3Wm8GJ6JgYysOhpBPYGE+sbf75JtrRc7jrdA==" }, "xunit.v3.common": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "3rSyFF6L2wxYKu0MfdDzTD0nVBtNs9oi32ucmU415UTJ6nJ5DzlZAGmmoP7/w0C/vHFNgk/GjUsCyPUlL3/99g==", + "resolved": "3.2.2", + "contentHash": "Hj775PEH6GTbbg0wfKRvG2hNspDCvTH9irXhH4qIWgdrOSV1sQlqPie+DOvFeigsFg2fxSM3ZAaaCDQs+KreFA==", "dependencies": { "Microsoft.Bcl.AsyncInterfaces": "6.0.0" } }, - "xunit.v3.core": { + "xunit.v3.core.mtp-v1": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "YYO0+i0QJtcf1f5bPxCX5EQeb3yDypCEbS27Qcgm7Lx7yuXpn5tJOqMRv16PX61g9hBE8c4sc7hmkNS84IO/mA==", + "resolved": "3.2.2", + "contentHash": "Ga5aA2Ca9ktz+5k3g5ukzwfexwoqwDUpV6z7atSEUvqtd6JuybU1XopHqg1oFd78QdTfZgZE9h5sHpO4qYIi5w==", "dependencies": { - "Microsoft.Testing.Platform.MSBuild": "1.8.4", - "xunit.v3.extensibility.core": "[3.1.0]", - "xunit.v3.runner.inproc.console": "[3.1.0]" + "Microsoft.Testing.Extensions.Telemetry": "1.9.1", + "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.9.1", + "Microsoft.Testing.Platform": "1.9.1", + "Microsoft.Testing.Platform.MSBuild": "1.9.1", + "xunit.v3.extensibility.core": "[3.2.2]", + "xunit.v3.runner.inproc.console": "[3.2.2]" } }, "xunit.v3.extensibility.core": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "oGehqTol13t6pBLS17299+KTTVUarJGt4y3lCpVToEH+o2B8dna3admYoqc2XZRQrNZSOe1ZvWBkjokbI1dVUA==", + "resolved": "3.2.2", + "contentHash": "srY8z/oMPvh/t8axtO2DwrHajhFMH7tnqKildvYrVQIfICi8fOn3yIBWkVPAcrKmHMwvXRJ/XsQM3VMR6DOYfQ==", + "dependencies": { + "xunit.v3.common": "[3.2.2]" + } + }, + "xunit.v3.mtp-v1": { + "type": "Transitive", + "resolved": "3.2.2", + "contentHash": "O41aAzYKBT5PWqATa1oEWVNCyEUypFQ4va6K0kz37dduV3EKzXNMaV2UnEhufzU4Cce1I33gg0oldS8tGL5I0A==", "dependencies": { - "xunit.v3.common": "[3.1.0]" + "xunit.analyzers": "1.27.0", + "xunit.v3.assert": "[3.2.2]", + "xunit.v3.core.mtp-v1": "[3.2.2]" } }, "xunit.v3.runner.common": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "8ezzVVYpsrNUWVNfh1uECbgreATn2SOINkNU5H6y6439JLEWdYx3YYJc/jAWrgmOM6bn9l/nM3vxtD398gqQBQ==", + "resolved": "3.2.2", + "contentHash": "/hkHkQCzGrugelOAehprm7RIWdsUFVmIVaD6jDH/8DNGCymTlKKPTbGokD5czbAfqfex47mBP0sb0zbHYwrO/g==", "dependencies": { "Microsoft.Win32.Registry": "[5.0.0]", - "xunit.v3.common": "[3.1.0]" + "xunit.v3.common": "[3.2.2]" } }, "xunit.v3.runner.inproc.console": { "type": "Transitive", - "resolved": "3.1.0", - "contentHash": "xoa7bjOv2KwYKwfkJGGrkboZr5GitlQaX3/9FlIz7BFt/rwAVFShZpCcIHj281Vqpo9RNfnG4mwvbhApJykIiw==", + "resolved": "3.2.2", + "contentHash": "ulWOdSvCk+bPXijJZ73bth9NyoOHsAs1ZOvamYbCkD4DNLX/Bd29Ve2ZNUwBbK0MqfIYWXHZViy/HKrdEC/izw==", "dependencies": { - "Microsoft.Testing.Extensions.TrxReport.Abstractions": "1.8.4", - "Microsoft.Testing.Platform": "1.8.4", - "xunit.v3.extensibility.core": "[3.1.0]", - "xunit.v3.runner.common": "[3.1.0]" + "xunit.v3.extensibility.core": "[3.2.2]", + "xunit.v3.runner.common": "[3.2.2]" } }, "winquicklook.core": { @@ -241,8 +225,8 @@ "dependencies": { "AvalonEdit": "[6.3.1.120, )", "Cylinder.WPF": "[1.0.0-preview.2, )", - "Markdig": "[0.42.0, )", - "Microsoft.Web.WebView2": "[1.0.3537.50, )", + "Markdig": "[0.44.0, )", + "Microsoft.Web.WebView2": "[1.0.3719.77, )", "WinQuickLook.CsWin32": "[1.0.0, )" } }, diff --git a/WinQuickLook.Core/Controls/ShellFileControl.cs b/WinQuickLook.Core/Controls/ShellFileControl.cs index 26426a9b..9bbfb03b 100644 --- a/WinQuickLook.Core/Controls/ShellFileControl.cs +++ b/WinQuickLook.Core/Controls/ShellFileControl.cs @@ -32,7 +32,7 @@ protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo) protected override HandleRef BuildWindowCore(HandleRef hwndParent) { - var hwndHost = PInvoke.CreateWindowEx(0, + var hwndHost = PInvoke.CreateWindowEx2(0, "static", "", WINDOW_STYLE.WS_CHILD | WINDOW_STYLE.WS_VISIBLE | WINDOW_STYLE.WS_CLIPCHILDREN, 0, 0, diff --git a/WinQuickLook.Core/Extensions/PropertyStoreExtensions.cs b/WinQuickLook.Core/Extensions/PropertyStoreExtensions.cs index e89e4dd6..6618c9b0 100644 --- a/WinQuickLook.Core/Extensions/PropertyStoreExtensions.cs +++ b/WinQuickLook.Core/Extensions/PropertyStoreExtensions.cs @@ -3,6 +3,7 @@ using System.Runtime.InteropServices; using Windows.Win32; +using Windows.Win32.Foundation; using Windows.Win32.UI.Shell.PropertiesSystem; namespace WinQuickLook.Extensions; diff --git a/WinQuickLook.Core/Providers/ShellAssociationProvider.cs b/WinQuickLook.Core/Providers/ShellAssociationProvider.cs index 6b79eccf..882bbc38 100644 --- a/WinQuickLook.Core/Providers/ShellAssociationProvider.cs +++ b/WinQuickLook.Core/Providers/ShellAssociationProvider.cs @@ -10,6 +10,7 @@ using Windows.Win32; using Windows.Win32.UI.Shell; +using Windows.Win32.UI.WindowsAndMessaging; using WinQuickLook.Extensions; @@ -180,11 +181,13 @@ public void Invoke(string appName, FileInfo fileInfo) private static BitmapSource? GetIconFromResource(string path, int iconIndex) { - PInvoke.ExtractIconEx(path, iconIndex, out var iconLarge, out var iconSmall, 1); + Span iconSmall = new HICON[1]; + + PInvoke.ExtractIconEx(path, iconIndex, phiconSmall: iconSmall); try { - return Imaging.CreateBitmapSourceFromHIcon(iconSmall.DangerousGetHandle(), Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()) + return Imaging.CreateBitmapSourceFromHIcon(iconSmall[0], Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()) .AsFreeze(); } catch @@ -193,8 +196,7 @@ public void Invoke(string appName, FileInfo fileInfo) } finally { - iconLarge.Close(); - iconSmall.Close(); + PInvoke.DestroyIcon(iconSmall[0]); } } diff --git a/WinQuickLook.Core/WinQuickLook.Core.csproj b/WinQuickLook.Core/WinQuickLook.Core.csproj index 4f958bba..d8ebb987 100644 --- a/WinQuickLook.Core/WinQuickLook.Core.csproj +++ b/WinQuickLook.Core/WinQuickLook.Core.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/WinQuickLook.Core/packages.lock.json b/WinQuickLook.Core/packages.lock.json index 12b85f1d..732ac194 100644 --- a/WinQuickLook.Core/packages.lock.json +++ b/WinQuickLook.Core/packages.lock.json @@ -1,7 +1,7 @@ { "version": 1, "dependencies": { - "net9.0-windows10.0.26100": { + "net10.0-windows10.0.26100": { "AvalonEdit": { "type": "Direct", "requested": "[6.3.1.120, )", @@ -16,15 +16,15 @@ }, "Markdig": { "type": "Direct", - "requested": "[0.42.0, )", - "resolved": "0.42.0", - "contentHash": "tINdftVfbTujqfPXrQOSl9/6XCS2Y4Zwz+i7UPBgxRNnDtI1CjyQ5UA/5sKoSOmfECyWkTztY/vbcc/u1DA8nA==" + "requested": "[0.44.0, )", + "resolved": "0.44.0", + "contentHash": "X+CYMjcUnh/yO24wOSQxVFLiGqWrrtXJ5M7toHiM1Zk4Fg9UMLN5fkaq6FSOWH+mIprsHHgDMlq3MJhmrXalhg==" }, "Microsoft.Web.WebView2": { "type": "Direct", - "requested": "[1.0.3537.50, )", - "resolved": "1.0.3537.50", - "contentHash": "6RQRMIcc/xnhDCdBmyc+YoPxPlYHjmg/mfVpQb4iYWr+K/cs28dTxCyOYFZjUFtiwupXN9nCqxOSMumn2ZKAIg==" + "requested": "[1.0.3719.77, )", + "resolved": "1.0.3719.77", + "contentHash": "t+ucyKw5NTwMjsUrDF6R9Lk40lpcKQD1/HgyGFxl49tdA4h9dKlsj6FYGEmDRpFNfnTpENuTypMcdbrlkqBdDA==" }, "winquicklook.cswin32": { "type": "Project" diff --git a/WinQuickLook.CsWin32/FriendlyOverloadExtensions.cs b/WinQuickLook.CsWin32/FriendlyOverloadExtensions.cs index 28e715bf..29fb9908 100644 --- a/WinQuickLook.CsWin32/FriendlyOverloadExtensions.cs +++ b/WinQuickLook.CsWin32/FriendlyOverloadExtensions.cs @@ -72,12 +72,4 @@ public static unsafe HRESULT FindWindowSW(this IShellWindows shellWindows, in return hr; } } - - public static unsafe HRESULT Next(this IEnumAssocHandlers enumAssocHandlers, IAssocHandler[] rgelt, out uint pceltFetched) - { - fixed (uint* pceltFetchedLocal = &pceltFetched) - { - return enumAssocHandlers.Next(rgelt, pceltFetchedLocal); - } - } } diff --git a/WinQuickLook.CsWin32/IPropertyStore.cs b/WinQuickLook.CsWin32/IPropertyStore.cs index 148c7673..b7def3d9 100644 --- a/WinQuickLook.CsWin32/IPropertyStore.cs +++ b/WinQuickLook.CsWin32/IPropertyStore.cs @@ -1,6 +1,8 @@ using System; using System.Runtime.InteropServices; +using Windows.Win32.Foundation; + // ReSharper disable once CheckNamespace namespace Windows.Win32.UI.Shell.PropertiesSystem; diff --git a/WinQuickLook.CsWin32/NativeMethods.json b/WinQuickLook.CsWin32/NativeMethods.json index 37dfc932..49393796 100644 --- a/WinQuickLook.CsWin32/NativeMethods.json +++ b/WinQuickLook.CsWin32/NativeMethods.json @@ -4,6 +4,11 @@ "comInterop": { "preserveSigMethods": [ "*" ] }, + "friendlyOverloads": { + "enabled": true, + "includePointerOverloads": false + }, + "useSafeHandles": true, "public": true, "wideCharOnly": true } diff --git a/WinQuickLook.CsWin32/PInvoke.cs b/WinQuickLook.CsWin32/PInvoke.cs index 9428b5da..331ae0d6 100644 --- a/WinQuickLook.CsWin32/PInvoke.cs +++ b/WinQuickLook.CsWin32/PInvoke.cs @@ -5,7 +5,6 @@ using Windows.Win32.Foundation; using Windows.Win32.Media.MediaFoundation; -using Windows.Win32.UI.Shell; using Windows.Win32.UI.Shell.Common; using Windows.Win32.UI.Shell.PropertiesSystem; using Windows.Win32.UI.WindowsAndMessaging; @@ -34,7 +33,7 @@ public static HRESULT SHGetPropertyStoreFromParsingName(string pszPath, Syste return hr; } - public static unsafe HWND CreateWindowEx(WINDOW_EX_STYLE dwExStyle, string lpClassName, string lpWindowName, WINDOW_STYLE dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, SafeHandle? hMenu, SafeHandle? hInstance) + public static unsafe HWND CreateWindowEx2(WINDOW_EX_STYLE dwExStyle, string lpClassName, string lpWindowName, WINDOW_STYLE dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, SafeHandle? hMenu, SafeHandle? hInstance) { return CreateWindowEx(dwExStyle, lpClassName, lpWindowName, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, null); } @@ -50,8 +49,6 @@ public static unsafe HRESULT StrRetToBuf(ref STRRET pstr, nint pidl, Span } } - public static unsafe uint GetWindowThreadProcessId(HWND hWnd) => GetWindowThreadProcessId(hWnd, null); - public static unsafe HRESULT DwmSetWindowAttribute(HWND hwnd, Graphics.Dwm.DWMWINDOWATTRIBUTE dwAttribute, ref T pvAttribute) where T : unmanaged { fixed (T* pvAttributeLocal = &pvAttribute) @@ -60,17 +57,6 @@ public static unsafe HRESULT DwmSetWindowAttribute(HWND hwnd, Graphics.Dwm.DW } } - public static unsafe nuint SHGetFileInfo(string pszPath, Storage.FileSystem.FILE_FLAGS_AND_ATTRIBUTES dwFileAttributes, ref SHFILEINFOW psfi, SHGFI_FLAGS uFlags) - { - fixed (char* pszPathLocal = pszPath) - { - fixed (SHFILEINFOW* psfiLocal = &psfi) - { - return SHGetFileInfo(pszPathLocal, dwFileAttributes, psfiLocal, (uint)Marshal.SizeOf(), uFlags); - } - } - } - [DllImport("Ole32", ExactSpelling = true)] [DefaultDllImportSearchPaths(DllImportSearchPath.System32)] public static extern HRESULT PropVariantClear(ref PROPVARIANT pvar); diff --git a/WinQuickLook.CsWin32/WinQuickLook.CsWin32.csproj b/WinQuickLook.CsWin32/WinQuickLook.CsWin32.csproj index 1a04ad61..5470a988 100644 --- a/WinQuickLook.CsWin32/WinQuickLook.CsWin32.csproj +++ b/WinQuickLook.CsWin32/WinQuickLook.CsWin32.csproj @@ -6,7 +6,7 @@ - + all diff --git a/WinQuickLook.CsWin32/packages.lock.json b/WinQuickLook.CsWin32/packages.lock.json index da4a201a..8a2aa755 100644 --- a/WinQuickLook.CsWin32/packages.lock.json +++ b/WinQuickLook.CsWin32/packages.lock.json @@ -1,16 +1,16 @@ { "version": 1, "dependencies": { - "net9.0-windows10.0.26100": { + "net10.0-windows10.0.26100": { "Microsoft.Windows.CsWin32": { "type": "Direct", - "requested": "[0.3.205, )", - "resolved": "0.3.205", - "contentHash": "U5wGAnyKd7/I2YMd43nogm81VMtjiKzZ9dsLMVI4eAB7jtv5IEj0gprj0q/F3iRmAIaGv5omOf8iSYx2+nE6BQ==", + "requested": "[0.3.269, )", + "resolved": "0.3.269", + "contentHash": "O4GVJ0ymxcoFRGS07VcoEClj7A9PIciHIjWDrPymzonhYlOfM7V0ZqGBUK19cUH3BPca9MfSOH0KLK/9JzQ8+Q==", "dependencies": { "Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha", - "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview", - "Microsoft.Windows.WDK.Win32Metadata": "0.12.8-experimental" + "Microsoft.Windows.SDK.Win32Metadata": "69.0.7-preview", + "Microsoft.Windows.WDK.Win32Metadata": "0.13.25-experimental" } }, "Microsoft.Windows.SDK.Win32Docs": { @@ -20,15 +20,15 @@ }, "Microsoft.Windows.SDK.Win32Metadata": { "type": "Transitive", - "resolved": "61.0.15-preview", - "contentHash": "cysex3dazKtCPALCluC2XX3f5Aedy9H2pw5jb+TW5uas2rkem1Z7FRnbUrg2vKx0pk0Qz+4EJNr37HdYTEcvEQ==" + "resolved": "69.0.7-preview", + "contentHash": "RJoNjQJVCIDNLPbvYuaygCFknTyAxOUE45of1voj0jjOgJa9MB2m1/G8L8F3IYc+2EFG5aqa/9y8PEx7Tk2tLQ==" }, "Microsoft.Windows.WDK.Win32Metadata": { "type": "Transitive", - "resolved": "0.12.8-experimental", - "contentHash": "3n8R44/Z96Ly+ty4eYVJfESqbzvpw96lRLs3zOzyDmr1x1Kw7FNn5CyE416q+bZQV3e1HRuMUvyegMeRE/WedA==", + "resolved": "0.13.25-experimental", + "contentHash": "IM50tb/+UIwBr9FMr6ZKcZjCMW+Axo6NjGqKxgjUfyCY8dRnYUfrJEXxAaXoWtYP4X8EmASmC1Jtwh4XucseZg==", "dependencies": { - "Microsoft.Windows.SDK.Win32Metadata": "61.0.15-preview" + "Microsoft.Windows.SDK.Win32Metadata": "63.0.31-preview" } } }