Re: IS12: Как получить список выбранных компонентов?
От: Yarik11  
Дата: 06.11.07 10:07
Оценка:
В 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);
//.........................................................

endwhile;

MsiViewClose(hViewlist);
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.