All wrappers around MSI functions raise MsiError; the string inside the exception will contain more detail.