MsiOpenDatabaseW documentation lists constants like MSIDBOPEN_CREATEDIRECT that can be passed in the LPCWSTR szPersist parameter, as an alternative to a file name. These constants don't seem to be included in the metadata yet, or at least I cannot find them in https://microsoft.github.io/windows-docs-rs/doc/bindings/Windows/Win32/System/ApplicationInstallationAndServicing/index.html. MsiOpenDatabaseW itself is there, though.
The tricky thing is that the five other constants are integers cast to LPCTSTR but MSIDBOPEN_PATCHFILE is intended to be added to them with pointer+integer addition, so the header file defines it as an integer whose value depends on sizeof(TCHAR). In projections then, it might be better to model this as enum+enum addition and only cast the result to a pointer type.
MsiOpenDatabaseW documentation lists constants like MSIDBOPEN_CREATEDIRECT that can be passed in the LPCWSTR szPersist parameter, as an alternative to a file name. These constants don't seem to be included in the metadata yet, or at least I cannot find them in https://microsoft.github.io/windows-docs-rs/doc/bindings/Windows/Win32/System/ApplicationInstallationAndServicing/index.html. MsiOpenDatabaseW itself is there, though.
The tricky thing is that the five other constants are integers cast to LPCTSTR but MSIDBOPEN_PATCHFILE is intended to be added to them with pointer+integer addition, so the header file defines it as an integer whose value depends on sizeof(TCHAR). In projections then, it might be better to model this as enum+enum addition and only cast the result to a pointer type.