Module database

Module database 

Source
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.
  • MsiRecordIsNull is treated differently from an empty string, because the scanner needs to preserve that distinction when normalizing rows.

Structsยง

MsiDatabase ๐Ÿ”’
MsiHandle ๐Ÿ”’
RAII owner for MSIHANDLE values.

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 ๐Ÿ”’