Expand description
Low-level MSI database access and row loading.
This module is the only place that talks directly to the Windows Installer C API. It owns the handle lifecycle, the query/view execution flow, and the strict UTF-16 conversion used for MSI string fields.
Two implementation details are worth keeping visible here:
- MSI string extraction uses a probe call first, so the real buffer can be sized from the length reported by the API.
MsiRecordIsNullis treated differently from an empty string, because the scanner needs to preserve that distinction when normalizing rows.
Structsยง
- MsiDatabase ๐
- MsiHandle ๐
- RAII owner for
MSIHANDLEvalues.
Functionsยง
- collect_
rows ๐ - ensure_
msi_ ๐success - execute_
view ๐ - load_
component_ ๐rows - load_
directory_ ๐rows - load_
file_ ๐rows - load_
registry_ ๐rows - load_
shortcut_ ๐rows - open_
view ๐ - query_
optional_ ๐string - query_
required_ ๐string - record_
integer ๐ - record_
optional_ ๐string - record_
string ๐ - wide_
path ๐