ironfede / openmcdf

Microsoft Compound File .net component - pure C# - netstandard 2.0
Mozilla Public License 2.0
306 stars 76 forks source link

Structured Storage Reference Implementation #165

Open jeremy-visionaid opened 3 hours ago

jeremy-visionaid commented 3 hours ago

If it's of interest, the current implementation of CFB I'm using is a dotnet wrapper of the Windows Structured Storage APIs: https://learn.microsoft.com/en-us/windows/win32/stg/structured-storage-start-page

It uses CsWin32 to provide COM interop for the relevant interfaces, so it could be leveraged in unit tests to ensure that the files serialized by OpenMcdf are valid/compliant.

I'm happy to share it, but it would mean that any tests written against it would require a platform specific TFM (e.g. net6.0-windows)

If we also wanted to use that for CI, it would require transitioning to windows-latest instead of ubuntu-latest

jeremy-visionaid commented 3 hours ago

@ironfede @Numpsy The reference implementation might also be useful for benchmarking purposes