В Basic MSI проэктах эта функция не работает. Сам потратил много времени. Удалось решить эту проблему только следующим образом (напрямую читая из таблицы из MSI базы):
#include "Ifx.h"
export prototype GetAllFeatures(HWND);
function GetAllFeatures(hMSI)
HWND hDB, hViewlist;
HWND hViewprop, hRecordprop;
NUMBER nBuffer, nInstState, nActionState;
STRING svFeatureName, svPropvalue, AddLocal;
begin
hDB = MsiGetActiveDatabase(hMSI);
// open view into Feature table
MsiDatabaseOpenView(hDB,"SELECT * FROM `Feature`", hViewlist);
MsiViewExecute(hViewlist, NULL);
while (MsiViewFetch(hViewlist, hRecordprop) != ERROR_NO_MORE_ITEMS)
nBuffer = 256; // set size buffer
//в данном сучае svFeatureName отображает название фичи. дальше можно узнать action и т.д.
MsiRecordGetString(hRecordprop, 1, svFeatureName, nBuffer);
//.........................................................