how do I get localized string in immediate Custom Action?

B

Bob K

I find that I sometimes need to get a localized string during the UI phase
of setup, in a Custom Action. For instance, if I need to fill a combo box
with some static text entries. There doesn't seem to be any easy way to
access the string table.

My solution is to write a routine that does the following:

1. Get the current language (MsiGetLanguage)
2. Open Database (MsiGetActiveDatabase)
3. Open a view and select the record (MsiDatabaseOpenView)
4. Execute the query (MsiViewExecute)
5. Get the record (MsiViewFetch)

Seems pretty straightforward, except I can't get past step 3. I am creating
a query that looks like this:

SELECT * FROM ISString WHERE (ISString.ISString='ID_STRING1') AND
(ISString.ISLanguage_='1033')

MsiDatabaseOpenView returns ERROR_BAD_QUERY_SYNTAX.

The string table is defined as:

<table name="ISString">
<col key="yes" def="s255">ISString</col>
<col key="yes" def="s50">ISLanguage_</col>
<col def="S0">Value</col>
<col def="I2">Encoded</col>
<col def="S0">Comment</col>
<col def="I4">TimeStamp</col>

Thanks for any ideas,

Bob
 
S

Stefan Krueger [MVP]

Why don't you use a localizavble property (in Property Manager)?
Did you check your .msi file to see if the ISString table is in it? I don't
think it will be.

--
Stefan Krueger
Microsoft Windows Installer MVP

Please post your questions in the newsgroup or vist one of these web sites:

Windows Installer FAQ
http://www.msifaq.com - http://www.msifaq.de

InstallSite - Resources for Setup Developers
http://www.installsite.org
http://www.installsite.de (GERMAN)
 
B

Bob K

You know, I KNEW there was a simple way to do this. A localizable property
is exactly what I need.

Thanks,
Bob
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top