Thank you very much! This is exactly what I wanted! 

However now I'm having trouble trying to get public properties from the MSI
because of string conversions. I'm so lost. 

Here's a snippet of my code:

{
                   ....
                DWORD lengthOfGettingStuff;
        LPWSTR gettingStuff = L"";

        MsiGetProperty (hInstall, TEXT("TESTPROPERTY"), gettingStuff,
&lengthOfGettingStuff);
                
                ...

        LPCSTR test = CW2A(gettingStuff);
        string test2 = test;
        test2 =
"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fswiss\\fcharset0
Arial;}}\\viewkind4\\uc1\\pard\\f0\\fs20 "+test2+"\\par}";
        
        LPCSTR test5 = test2.c_str();
        ret = MsiRecordSetStringA(hRecord, 10, test5); 
               
                ...
}

The property was set to a value of 1
The text box looks really messed up. It looks something like this:

ýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ


Chesong Lee wrote:
> 
> 
> Here is a code snippet in my ReplaceEula Custom Action.
> This is not a part of the full working code but you may understand the
> logic to change text in ScrollableText. This custom action is an immediate
> custom action and sequenced before the main dialog.
> 
> I hope this helps for your needs.
> 
> Regards,
> 
> Chesong Lee
> 
> 
> UINT __stdcall
> ReplaceEula(MSIHANDLE hInstall)
> {
>       //
>       // Fill lpEula in RTF format as you wish
>       //
>       // EULA File Content is MBCS (RTF) not Unicode
>       //
>       XTL::AutoProcessHeapPtr<CHAR> lpEula = pReadEulaFromFile(hInstall);
>       if (NULL == (LPSTR) lpEula)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: ReadEulaFromFile failed, error=0x%X"), 
>                       GetLastError());
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       //
>       // Replacing EULA text control in the database
>       //
>       PMSIHANDLE hDatabase = MsiGetActiveDatabase(hInstall);
> 
>       if (0 == hDatabase)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiGetActiveDatabase failed, error=0x%X"), 
>                       GetLastError());
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       PMSIHANDLE hView;
>       LPCTSTR query = _T("SELECT * FROM `Control` ")
>               _T(" WHERE `Dialog_` = 'LicenseAgreement' AND `Control` = 
> 'Memo' ");
>       UINT ret = MsiDatabaseOpenView(hDatabase, query, &hView);
> 
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiDatabaseOpenView failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       ret = MsiViewExecute(hView, 0);
> 
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiViewExecute failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       PMSIHANDLE hRecord;
>       ret = MsiViewFetch(hView, &hRecord);
> 
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiViewFetch failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       ret = MsiViewModify(hView, MSIMODIFY_DELETE, hRecord);
> 
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiViewModify failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       //
>       // 10th field is the Text column
>       //
>       // Dialog_, Control, Type, X, Y, 
>       // Width, Height, Attributes, Property, Text
>       // Control_Next, Help
>       //
>       ret = MsiRecordSetStringA(hRecord, 10, lpEula);
>       
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiRecordSetString failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       //
>       // Commit the changes temporarily
>       //
>       ret = MsiViewModify(hView, MSIMODIFY_INSERT_TEMPORARY, hRecord);
>       
>       if (ERROR_SUCCESS != ret)
>       {
>               pMsiLogMessage(
>                       hInstall, 
>                       _T("EULACA: MsiViewModify failed, error=0x%X"), 
>                       ret);
> 
>               return ERROR_INSTALL_FAILURE;
>       }
> 
>       pMsiLogMessage(
>               hInstall,
>               _T("EULACA: EULA is replaced successfully."));
> 
>       return ERROR_SUCCESS;
> }
> 
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of JosephMM
> Sent: Monday, August 21, 2006 3:00 PM
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] WcaAddTempRecord with ScrollableText
> 
> 
> Since the Text attribute does not accept properties I was hoping to use a
> Custom Action to adjust the text based on the value of a bunch of public
> properties. I was looking through the Wix
> Tutorial(http://www.tramontana.co.hu) and found a Custom Action that was
> changing some Text of a
> ListBox(http://www.tramontana.co.hu/wix/lesson10.php). 
> 
> Right now I'm starting simple. I was just trying to figure out how to set
> the Text attribute of the ScrollableText Control with WcaAddTempRecord()
> instead of a ListBox like in lesson 10. Is it possible to use
> WcaAddTempRecord() to change the Text attribute? If so, then how? If not,
> then are there any alternatives?
> 
> I am using Wix 2.0 and I linked the DLL I made with the WiX *.lib files
> and
> the msi.lib file
> 
> Here is my broken code:
> 
> extern "C" UINT __stdcall FillListbox (MSIHANDLE hInstall) {
>   HRESULT hResult = WcaInitialize (hInstall, "testText");
>   if (FAILED (hResult)) return ERROR_INSTALL_FAILURE;
> 
>   MSIHANDLE hTable = NULL;
>   MSIHANDLE hColumns = NULL;
> 
>   hResult = WcaAddTempRecord (&hTable, &hColumns, L"ScrollableText", 0, 2,
>    
> L"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fswiss\fcharset0
> Arial;}}
>     \viewkind4\uc1\pard\f0\fs20 My Text\par}");
> 
>   if (hTable)
>     MsiCloseHandle (hTable);
>   if (hColumns)
>     MsiCloseHandle (hColumns);
>   return WcaFinalize (hResult);
> }
> 
> and here is my Dialog from my .wxs file:
> ...
>     <UI>
>       <Dialog Id="WelcomeDialog" Width="370" Height="270"
> Title="[ProductName] 
>          [Setup]" NoMinimize="yes">
> 
>         <Control Id="Exit" Type="PushButton"
>           X="236" Y="243" Width="56" Height="17"
>           Disabled="no"
>           Default="yes" Text="Exit">
>           <Publish Event="EndDialog" Value="Exit" >1</Publish>
>         </Control>
> 
>         <Control Id="FilledListbox" Type="ListBox" 
>           Sorted="yes" Property="LISTBOXVALUES" 
>           X="10" Y="50" 
>           Width="200" Height="130" />
> 
>         <Control Id="testText" Type="ScrollableText" Text="1"
>           X="10" Y="10"
>           Sunken ="yes" Disabled="no" 
>           Width="300" Height="200">
>         </Control>
> 
>       </Dialog>
>     </UI>
> ...
> 
> and here is the error i recieved in the log file:
> testText:  Error 0x8007064f: failed to open view on database
> testText:  Error 0x8007064f: failed to openexecute temp view with query
> SELECT * FROM `ScrollableText`
> 
> I appreciate any information you can give me on how to use the
> WcaAddTempRecord. Thank you!
> -- 
> View this message in context:
> http://www.nabble.com/WcaAddTempRecord-with-ScrollableText-tf2142018.html#a5912684
> Sent from the wix-users forum at Nabble.com.
> 
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 
> -------------------------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services, security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier
> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> WiX-users mailing list
> WiX-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/wix-users
> 
> 

-- 
View this message in context: 
http://www.nabble.com/WcaAddTempRecord-with-ScrollableText-tf2142018.html#a5970286
Sent from the wix-users forum at Nabble.com.


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to