This is working code for a list that already has an item. LONG insert_index = index; for each (const std::wstring& name in names) { // the first record is inserted at index 2, there's at least one default item in the view MsiHandle hRec(MsiCreateRecord(4)); CHECK_WIN32_DWORD(MsiRecordSetString(hRec, 1, listbox.c_str()), L"MsiRecordSetString(1) failed"); // Column1: Property tied to the entry CHECK_WIN32_DWORD(MsiRecordSetInteger(hRec, 2, insert_index), "MsiRecordSetInteger(2) failed"); // Column2: Display order of the item CHECK_WIN32_DWORD(MsiRecordSetString(hRec, 3, name.c_str()), "MsiRecordSetString(3) failed"); //Column3: Value to set property to CHECK_WIN32_DWORD(MsiRecordSetString(hRec, 4, name.c_str()), L"MsiRecordSetString(4) failed"); //Column4: Display text for item CHECK_WIN32_DWORD(MsiViewModify(msiView, MSIMODIFY_INSERT_TEMPORARY, hRec), "MsiViewModify failed"); insert_index ++; }
>From http://msiext.codeplex.com, look for SQLDMO_ListAvailableSQLServers. dB. @ dblock.org Moscow|Geneva|Seattle|New York -----Original Message----- From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] Sent: Tuesday, November 10, 2009 9:56 AM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Question on Listbox Hi wix-users, I want to use Listbox control to show some items on dialog. So I tried the sample in WiX Tutorial 10.1 I changed the sample a little bit for passing build: Add <Property Id="LISTBOXVALUES" Value="1"/> To sampleListbox.wxs. Otherwise there is always error in verbose log that control needs a property link to it. And MSIDBERROR error; hResult = WcaAddTempRecord (&hTable, &hColumns, L"ListBox", &error, 0, 3, L"LISTBOXVALUES", 1, L"Item 1"); hResult = WcaAddTempRecord (&hTable, &hColumns, L"ListBox", &error, 0, 3, L"LISTBOXVALUES", 2, L"Item 2"); hResult = WcaAddTempRecord (&hTable, &hColumns, L"ListBox", &error, 0, 3, L"LISTBOXVALUES", 3, L"Item 3"); In the sample, there is no "&error" parameter. However, when I run the sample.msi, the listbox is empty. The hResult has the type HRESULT. I want to show hResult value in a messagebox. So I add code: wchar_t buffer[10]; swprintf_s( buffer, 10, L"%s", hResult ); ShowMessage.Append(buffer); ::MessageBoxW(NULL, ShowMessage, L"Fill Listbox", MB_OK); And at last, the message shows (null). What is wrong with WcaAddTempRecord ? How to add item to listbox control? Best regards, Chunyan ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users