public static extern int MsiViewFetch(SafeMsiHandle hView, out SafeMsiHandle hRecord);
public static extern int MsiViewExecute(SafeMsiHandle hView, SafeMsiHandle hRecord);
public static extern int MsiDatabaseOpenView(SafeMsiHandle hDatabase, string szQuery, out SafeMsiHandle hView);
public static extern int MsiOpenDatabase(string szDatabasePath, int szPersist, out SafeMsiHandle hDatabase);
public static extern int MsiFormatRecord(SafeMsiHandle hInstall, SafeMsiHandle hRecord, StringBuilder szValueBuf, ref int pcchValueBuf);
public static extern int MsiRecordGetString(SafeMsiHandle hRecord, int iField, StringBuilder szValueBuf, ref int pcchValueBuf);