Discussion:
What files should I distribute (SAPI 5.3)?
(too old to reply)
fred
2009-05-31 01:44:54 UTC
Permalink
Hello,
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what to
do with it:
Sp5TTIntXP.Msm

Please advise,
Fred
mayayana
2009-05-31 02:52:52 UTC
Permalink
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what to
Sp5TTIntXP.Msm
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything. I don't know about SAPI 5.3, but there's
a 5.1 installer here:

http://products.timehouse.fi/ss_speechserver.asp?con=1

It's about 10 MB. It can actually be whittled
down to more like 6 MB, but you're on your own
if you want to do it. Microsoft only released the
files as an MSM, which is a Windows Installer
merge module. Windows Installer is a nightmare
with no good tools available for building installations.
So your options are:

1) Take a giant sidetrack to learn how to make an
MSI file for your install.

2) Use something like the linked installer. (I have
no idea about legality there. It seems to be linked
to some product that they're selling. But maybe you
can find a legal 3rd-party TTS installer.)

3) Sort out the requirements for installing the support
files and install them yourself.

If you decide on #3, see here:
www.jsware.net/jsware/msicode.php5

Download the MSI/MSM HTA extractor utility and see
the extra project files in the download. The story there
is as follows: Several years ago I wanted to install SAPI 5
support on a WinME machine. I discovered that my options
were limited to an MSI or installing the whole SDK. So I
decided to learn how to make an MSI. When I looked into
that I found that the Windows Installer system was a
breathtakingly overproduced mess of gratuitous complexity
and abstruseness. It seemed to me to be entirely unusable,
and certainly not worth spending weeks or months on, just
to install my software! That's how the MSI extractor was
born. I wrote it to extract all files and Registry settings
from an MSI or MSM file, so that I would never have to be
limited or restricted by the monstrosity that is Windows
Installer . The extra files in the download include a tool
that auto-generates a list of files and Registry settings
needed for any specific component in an MSI. The sample
script project to demonstrate that is for the SAPI 5 TTS
support. Those files provide the basic info. needed to build
your own TTS installer.
Ed
2009-05-31 23:07:17 UTC
Permalink
Post by mayayana
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything.
Sure about that? When I first ran XP I remember having to install SAPI
4.1 back then otherwise I wouldn't hear any voice.
mayayana
2009-06-01 02:12:07 UTC
Permalink
Post by Ed
Post by mayayana
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything.
Sure about that? When I first ran XP I remember having to install SAPI
4.1 back then otherwise I wouldn't hear any voice.
Pretty sure. According to this, SAPI 5.1
ships with XP and 5.3 ships with Vista:
http://en.wikipedia.org/wiki/Speech_Application_Programming_Interface

But SAPI 4 is entirely different. It makes
sense that you'd have to install that on
XP.
fred
2009-06-01 05:08:46 UTC
Permalink
Thnk you very much for your help
Your replies are extremely helpful.
XP+ plus is my most interest so I will put the distribution on the back
burner for now and concentrate on the code.
I appreciate Your help,
Fred
Post by mayayana
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
to
Post by fred
Sp5TTIntXP.Msm
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything. I don't know about SAPI 5.3, but there's
http://products.timehouse.fi/ss_speechserver.asp?con=1
It's about 10 MB. It can actually be whittled
down to more like 6 MB, but you're on your own
if you want to do it. Microsoft only released the
files as an MSM, which is a Windows Installer
merge module. Windows Installer is a nightmare
with no good tools available for building installations.
1) Take a giant sidetrack to learn how to make an
MSI file for your install.
2) Use something like the linked installer. (I have
no idea about legality there. It seems to be linked
to some product that they're selling. But maybe you
can find a legal 3rd-party TTS installer.)
3) Sort out the requirements for installing the support
files and install them yourself.
www.jsware.net/jsware/msicode.php5
Download the MSI/MSM HTA extractor utility and see
the extra project files in the download. The story there
is as follows: Several years ago I wanted to install SAPI 5
support on a WinME machine. I discovered that my options
were limited to an MSI or installing the whole SDK. So I
decided to learn how to make an MSI. When I looked into
that I found that the Windows Installer system was a
breathtakingly overproduced mess of gratuitous complexity
and abstruseness. It seemed to me to be entirely unusable,
and certainly not worth spending weeks or months on, just
to install my software! That's how the MSI extractor was
born. I wrote it to extract all files and Registry settings
from an MSI or MSM file, so that I would never have to be
limited or restricted by the monstrosity that is Windows
Installer . The extra files in the download include a tool
that auto-generates a list of files and Registry settings
needed for any specific component in an MSI. The sample
script project to demonstrate that is for the SAPI 5 TTS
support. Those files provide the basic info. needed to build
your own TTS installer.
fred
2009-06-04 18:28:35 UTC
Permalink
Do you know some unpacker (viewer) for the installation executable created
by WISE installation program?
Thanks,
Fred
Post by fred
Thnk you very much for your help
Your replies are extremely helpful.
XP+ plus is my most interest so I will put the distribution on the back
burner for now and concentrate on the code.
I appreciate Your help,
Fred
Post by mayayana
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
to
Post by fred
Sp5TTIntXP.Msm
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything. I don't know about SAPI 5.3, but there's
http://products.timehouse.fi/ss_speechserver.asp?con=1
It's about 10 MB. It can actually be whittled
down to more like 6 MB, but you're on your own
if you want to do it. Microsoft only released the
files as an MSM, which is a Windows Installer
merge module. Windows Installer is a nightmare
with no good tools available for building installations.
1) Take a giant sidetrack to learn how to make an
MSI file for your install.
2) Use something like the linked installer. (I have
no idea about legality there. It seems to be linked
to some product that they're selling. But maybe you
can find a legal 3rd-party TTS installer.)
3) Sort out the requirements for installing the support
files and install them yourself.
www.jsware.net/jsware/msicode.php5
Download the MSI/MSM HTA extractor utility and see
the extra project files in the download. The story there
is as follows: Several years ago I wanted to install SAPI 5
support on a WinME machine. I discovered that my options
were limited to an MSI or installing the whole SDK. So I
decided to learn how to make an MSI. When I looked into
that I found that the Windows Installer system was a
breathtakingly overproduced mess of gratuitous complexity
and abstruseness. It seemed to me to be entirely unusable,
and certainly not worth spending weeks or months on, just
to install my software! That's how the MSI extractor was
born. I wrote it to extract all files and Registry settings
from an MSI or MSM file, so that I would never have to be
limited or restricted by the monstrosity that is Windows
Installer . The extra files in the download include a tool
that auto-generates a list of files and Registry settings
needed for any specific component in an MSI. The sample
script project to demonstrate that is for the SAPI 5 TTS
support. Those files provide the basic info. needed to build
your own TTS installer.
fred
2009-06-04 18:59:46 UTC
Permalink
I found hwun.exe. heuristic unpacker but it does not unpack for me.
Fred
Post by fred
Do you know some unpacker (viewer) for the installation executable created
by WISE installation program?
Thanks,
Fred
Post by fred
Thnk you very much for your help
Your replies are extremely helpful.
XP+ plus is my most interest so I will put the distribution on the back
burner for now and concentrate on the code.
I appreciate Your help,
Fred
Post by mayayana
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
to
Post by fred
Sp5TTIntXP.Msm
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything. I don't know about SAPI 5.3, but there's
http://products.timehouse.fi/ss_speechserver.asp?con=1
It's about 10 MB. It can actually be whittled
down to more like 6 MB, but you're on your own
if you want to do it. Microsoft only released the
files as an MSM, which is a Windows Installer
merge module. Windows Installer is a nightmare
with no good tools available for building installations.
1) Take a giant sidetrack to learn how to make an
MSI file for your install.
2) Use something like the linked installer. (I have
no idea about legality there. It seems to be linked
to some product that they're selling. But maybe you
can find a legal 3rd-party TTS installer.)
3) Sort out the requirements for installing the support
files and install them yourself.
www.jsware.net/jsware/msicode.php5
Download the MSI/MSM HTA extractor utility and see
the extra project files in the download. The story there
is as follows: Several years ago I wanted to install SAPI 5
support on a WinME machine. I discovered that my options
were limited to an MSI or installing the whole SDK. So I
decided to learn how to make an MSI. When I looked into
that I found that the Windows Installer system was a
breathtakingly overproduced mess of gratuitous complexity
and abstruseness. It seemed to me to be entirely unusable,
and certainly not worth spending weeks or months on, just
to install my software! That's how the MSI extractor was
born. I wrote it to extract all files and Registry settings
from an MSI or MSM file, so that I would never have to be
limited or restricted by the monstrosity that is Windows
Installer . The extra files in the download include a tool
that auto-generates a list of files and Registry settings
needed for any specific component in an MSI. The sample
script project to demonstrate that is for the SAPI 5 TTS
support. Those files provide the basic info. needed to build
your own TTS installer.
fred
2009-06-04 17:36:26 UTC
Permalink
I am studying your unpacker now.
Nicely done, but I need to learn more to understand it.
And of course more questions pop up :)
1.
Why the samples are written in w.script?
Can I use vbasic or it must be w.script?
2.
What are these CLSID numbers?
Are they always the same?
Thanks,
Fred
Post by mayayana
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
to
Post by fred
Sp5TTIntXP.Msm
That issue is a pain. As I said before, if you
only need to support XP+ you don't need to install
anything. I don't know about SAPI 5.3, but there's
http://products.timehouse.fi/ss_speechserver.asp?con=1
It's about 10 MB. It can actually be whittled
down to more like 6 MB, but you're on your own
if you want to do it. Microsoft only released the
files as an MSM, which is a Windows Installer
merge module. Windows Installer is a nightmare
with no good tools available for building installations.
1) Take a giant sidetrack to learn how to make an
MSI file for your install.
2) Use something like the linked installer. (I have
no idea about legality there. It seems to be linked
to some product that they're selling. But maybe you
can find a legal 3rd-party TTS installer.)
3) Sort out the requirements for installing the support
files and install them yourself.
www.jsware.net/jsware/msicode.php5
Download the MSI/MSM HTA extractor utility and see
the extra project files in the download. The story there
is as follows: Several years ago I wanted to install SAPI 5
support on a WinME machine. I discovered that my options
were limited to an MSI or installing the whole SDK. So I
decided to learn how to make an MSI. When I looked into
that I found that the Windows Installer system was a
breathtakingly overproduced mess of gratuitous complexity
and abstruseness. It seemed to me to be entirely unusable,
and certainly not worth spending weeks or months on, just
to install my software! That's how the MSI extractor was
born. I wrote it to extract all files and Registry settings
from an MSI or MSM file, so that I would never have to be
limited or restricted by the monstrosity that is Windows
Installer . The extra files in the download include a tool
that auto-generates a list of files and Registry settings
needed for any specific component in an MSI. The sample
script project to demonstrate that is for the SAPI 5 TTS
support. Those files provide the basic info. needed to build
your own TTS installer.
mayayana
2009-06-05 01:03:38 UTC
Permalink
On the Wise installer... I don't know.
I haven't seen that. There's Universal
Extractor, which is somewhat handy, but
it's really just a front-end for a collection
of different unpackers. I'm not sure whether
Wise is one of the unpackables.
There used to be an unpacker here, but I
haven't checked for some time:
http://www-user.tu-cottbus.de/~kannegv

The other link I posted above, for a 3rd-party
TTS installer, is an InstallShield package with an
MSI inside. (It's amazing how often wrap an MSI
in a superfluous EXE installer.) The Wise package
could be the same. If so you should be able to get
the MSI by starting the install, leaving it at the
opening window, then fishing the MSI from the
TEMP folder. (But of course that just brings you
back to square 1. :)
Post by fred
I am studying your unpacker now.
Nicely done, but I need to learn more to understand it.
There's more info. in the help file for the unpacker
itself. The functionality is a bit spread around
because the sheer volume of Registry data can often
be too much to list in the unpacker.
Post by fred
And of course more questions pop up :)
1.
Why the samples are written in w.script?
Can I use vbasic or it must be w.script?
Yes. No problem there. It's all powered by the
WindowsInstaller.Installer object. I just used script
because it was easier than writing a VB program,
and if I remember correctly, the WindowsInstaller.Installer
object is late-bound only. If you use VB it can be done
faster. Since I used script I used the FileSystemObject
to move and copy files, and to write the CAB to disk.
FSO is notoriously slow. On large MSIs like a several
hundred MB SDK it can take 20-30 minutes to unpack.
(Most things unpack in a few seconds, though.)

Also, at the same webpage I have a script-based
MSI class that provides basic MSI functions, translating
the syntactically tedious SQL calls into simple API
calls. If, like me, you dislike building SQL strings then
you might find that useful -- whether you go with VBS
or VB.
Post by fred
2.
What are these CLSID numbers?
Are they always the same? No.
In most installers the COM objects get registered when
installed. With MSIs there are general Registry settings
and also COM settings. It seems to do all of the
Registration settings "manually" rather than having something
like RegSvr do it. So what you're seeing is the reconstituted
Registry settings from the MSI, the bulk of which are COM
registration settings. If you look at the pattern of the lines
in InstallTTS1.vbs.txt and InstallTTS2.vbs.txt you'll see
that it's registering a large number of classes/objects. Each
class typically has keys like:
HKCR\[classname]\
HKCR\CLSID\[GUID]\
HKCR\CLSID\[GUID]\InProcServer32\
HKCR\CLSID\[GUID]\TypeLib\
etc.
HKCR\Typelib\[GUID]\ .....etc.

Each class has usually has a ProgID (HKCR\[classname]\).
and a CLSID (GUID). Then the typelib entry for that class
has a GUID. It adds up. :) You might be able to just call
RegSvr on the COM DLLs and limit your Registry fiddling to
the basic settings like the voice config. settings in
HKEY_LOCAL_MACHINE\Software\Microsoft\Speech\
I haven't tried that.
fred
2009-06-05 06:49:24 UTC
Permalink
Thank you very much for your help.
I managed (almost) to do all what I wanted.
The last question remaining is:
Is it possible after unpacking msi file to edit it and to create msi file
again?
How to proceed with that problem?
Thanks,
Fred
Post by mayayana
On the Wise installer... I don't know.
I haven't seen that. There's Universal
Extractor, which is somewhat handy, but
it's really just a front-end for a collection
of different unpackers. I'm not sure whether
Wise is one of the unpackables.
There used to be an unpacker here, but I
http://www-user.tu-cottbus.de/~kannegv
The other link I posted above, for a 3rd-party
TTS installer, is an InstallShield package with an
MSI inside. (It's amazing how often wrap an MSI
in a superfluous EXE installer.) The Wise package
could be the same. If so you should be able to get
the MSI by starting the install, leaving it at the
opening window, then fishing the MSI from the
TEMP folder. (But of course that just brings you
back to square 1. :)
Post by fred
I am studying your unpacker now.
Nicely done, but I need to learn more to understand it.
There's more info. in the help file for the unpacker
itself. The functionality is a bit spread around
because the sheer volume of Registry data can often
be too much to list in the unpacker.
Post by fred
And of course more questions pop up :)
1.
Why the samples are written in w.script?
Can I use vbasic or it must be w.script?
Yes. No problem there. It's all powered by the
WindowsInstaller.Installer object. I just used script
because it was easier than writing a VB program,
and if I remember correctly, the WindowsInstaller.Installer
object is late-bound only. If you use VB it can be done
faster. Since I used script I used the FileSystemObject
to move and copy files, and to write the CAB to disk.
FSO is notoriously slow. On large MSIs like a several
hundred MB SDK it can take 20-30 minutes to unpack.
(Most things unpack in a few seconds, though.)
Also, at the same webpage I have a script-based
MSI class that provides basic MSI functions, translating
the syntactically tedious SQL calls into simple API
calls. If, like me, you dislike building SQL strings then
you might find that useful -- whether you go with VBS
or VB.
Post by fred
2.
What are these CLSID numbers?
Are they always the same? No.
In most installers the COM objects get registered when
installed. With MSIs there are general Registry settings
and also COM settings. It seems to do all of the
Registration settings "manually" rather than having something
like RegSvr do it. So what you're seeing is the reconstituted
Registry settings from the MSI, the bulk of which are COM
registration settings. If you look at the pattern of the lines
in InstallTTS1.vbs.txt and InstallTTS2.vbs.txt you'll see
that it's registering a large number of classes/objects. Each
HKCR\[classname]\
HKCR\CLSID\[GUID]\
HKCR\CLSID\[GUID]\InProcServer32\
HKCR\CLSID\[GUID]\TypeLib\
etc.
HKCR\Typelib\[GUID]\ .....etc.
Each class has usually has a ProgID (HKCR\[classname]\).
and a CLSID (GUID). Then the typelib entry for that class
has a GUID. It adds up. :) You might be able to just call
RegSvr on the COM DLLs and limit your Registry fiddling to
the basic settings like the voice config. settings in
HKEY_LOCAL_MACHINE\Software\Microsoft\Speech\
I haven't tried that.
mayayana
2009-06-05 13:08:30 UTC
Permalink
Post by fred
Is it possible after unpacking msi file to edit it
and to create msi file
again?
How to proceed with that problem?
That gets back to the original issue: You can
use an MSI to install but they're very complex
and tedious, with no good tools available.
...But you can do it if you want to. An MSI is
actually a minimal-functionality SQL database,
with the actual program CAB usually stored as
a byte stream in one of the database tables.
The MSI is entirely accessible through
WindowsInstaller.Installer. You can change
anything you like. You can also create a new
MSI blank file and start from scratch. (There's
a sample of that at my website, where I used an
MSI to create a zipcode/city reference utility, using
an MSI file as a database and using Windows
Installer for the functionality.)

For editors, there's Orca from Microsoft, but they
no longer have a public download for that. You have
to get the whole Win32 SDK. There's also an editor
at my site, in the form of an HTA, that's roughly the
same thing as Orca. And the editor that Nobody
linked -- InstEdit -- looks like it might be usable.
(That one's NT-only and I'm on Win98, so I haven't
tried it.)

The most popular tool other than Wise and I.S.
wrappers seems to be the open source Wix. I've
downloaded that a couple of times and never
managed to make sense of it. :) Presumably it works,
but it doesn't seem to have any civilized amenities,
like a GUI.

If you go with an MSI you could also download
the MSMs and go that route, "merging" the MSMs
into you installer. SAPI5 seems to be an unusual
case, though. While MSI components are supposed
to be clearly delineated within an install, the SAPI5
components seem to overlap. And Microsoft's way seems
to involve shipping unnecessary files with the TTS.
(I think the Chinese language files go with it by default!)
Which highlights one of the many problems with MSIs:
In many cases it's difficult for even the programmer
himself/herself to know what's being shipped!

I guess there's a question, too, about "copyright"
with the MSI you have. (I don't know how someone can
copyright an installer built to MS specs, but some
people seem to think they can copyright anything.)
When you think about it, if you change the name in
the Summary Information then the MSI you have is
probably identical to the one you will build. So....
fred
2009-06-07 04:34:15 UTC
Permalink
I run into strange problem.
I used universal extractor and extracted the files.
The setup executable was created by inno setup.
The main file to run is .msi file.
However when trying to run that file alone it only flashes and disapears.
When trying to run it from within the original inno script file there is an
error:
"Unable to execute file: ...
CreateProcess failed; code 193
%1 is not a valid Win32 application.
"
But, when I start the original executable the installation runs fine.
What can be wrong?
Thanks,
Fred
Post by mayayana
Post by fred
Is it possible after unpacking msi file to edit it
and to create msi file
again?
How to proceed with that problem?
That gets back to the original issue: You can
use an MSI to install but they're very complex
and tedious, with no good tools available.
...But you can do it if you want to. An MSI is
actually a minimal-functionality SQL database,
with the actual program CAB usually stored as
a byte stream in one of the database tables.
The MSI is entirely accessible through
WindowsInstaller.Installer. You can change
anything you like. You can also create a new
MSI blank file and start from scratch. (There's
a sample of that at my website, where I used an
MSI to create a zipcode/city reference utility, using
an MSI file as a database and using Windows
Installer for the functionality.)
For editors, there's Orca from Microsoft, but they
no longer have a public download for that. You have
to get the whole Win32 SDK. There's also an editor
at my site, in the form of an HTA, that's roughly the
same thing as Orca. And the editor that Nobody
linked -- InstEdit -- looks like it might be usable.
(That one's NT-only and I'm on Win98, so I haven't
tried it.)
The most popular tool other than Wise and I.S.
wrappers seems to be the open source Wix. I've
downloaded that a couple of times and never
managed to make sense of it. :) Presumably it works,
but it doesn't seem to have any civilized amenities,
like a GUI.
If you go with an MSI you could also download
the MSMs and go that route, "merging" the MSMs
into you installer. SAPI5 seems to be an unusual
case, though. While MSI components are supposed
to be clearly delineated within an install, the SAPI5
components seem to overlap. And Microsoft's way seems
to involve shipping unnecessary files with the TTS.
(I think the Chinese language files go with it by default!)
In many cases it's difficult for even the programmer
himself/herself to know what's being shipped!
I guess there's a question, too, about "copyright"
with the MSI you have. (I don't know how someone can
copyright an installer built to MS specs, but some
people seem to think they can copyright anything.)
When you think about it, if you change the name in
the Summary Information then the MSI you have is
probably identical to the one you will build. So....
mayayana
2009-06-07 15:01:53 UTC
Permalink
Sorry, but I don't understand what you're
talking about. I'm not familiar with Inno.
The MSI is inside an Inno EXE? What does
it mean to "run it from within the original
Inno script file? Or are you talking about
trouble with your own setup, done with Inno?

Offhand it sounds like you...or Inno...or
someone... is trying to shell the MSI when
you need to be calling msiexec with a command
line if you want to install the MSI programmatically.
Post by fred
I run into strange problem.
I used universal extractor and extracted the files.
The setup executable was created by inno setup.
The main file to run is .msi file.
However when trying to run that file alone it only flashes and disapears.
When trying to run it from within the original inno script file there is an
"Unable to execute file: ...
CreateProcess failed; code 193
%1 is not a valid Win32 application.
"
But, when I start the original executable the installation runs fine.
What can be wrong?
Thanks,
Fred
Post by mayayana
Post by fred
Is it possible after unpacking msi file to edit it
and to create msi file
again?
How to proceed with that problem?
That gets back to the original issue: You can
use an MSI to install but they're very complex
and tedious, with no good tools available.
...But you can do it if you want to. An MSI is
actually a minimal-functionality SQL database,
with the actual program CAB usually stored as
a byte stream in one of the database tables.
The MSI is entirely accessible through
WindowsInstaller.Installer. You can change
anything you like. You can also create a new
MSI blank file and start from scratch. (There's
a sample of that at my website, where I used an
MSI to create a zipcode/city reference utility, using
an MSI file as a database and using Windows
Installer for the functionality.)
For editors, there's Orca from Microsoft, but they
no longer have a public download for that. You have
to get the whole Win32 SDK. There's also an editor
at my site, in the form of an HTA, that's roughly the
same thing as Orca. And the editor that Nobody
linked -- InstEdit -- looks like it might be usable.
(That one's NT-only and I'm on Win98, so I haven't
tried it.)
The most popular tool other than Wise and I.S.
wrappers seems to be the open source Wix. I've
downloaded that a couple of times and never
managed to make sense of it. :) Presumably it works,
but it doesn't seem to have any civilized amenities,
like a GUI.
If you go with an MSI you could also download
the MSMs and go that route, "merging" the MSMs
into you installer. SAPI5 seems to be an unusual
case, though. While MSI components are supposed
to be clearly delineated within an install, the SAPI5
components seem to overlap. And Microsoft's way seems
to involve shipping unnecessary files with the TTS.
(I think the Chinese language files go with it by default!)
In many cases it's difficult for even the programmer
himself/herself to know what's being shipped!
I guess there's a question, too, about "copyright"
with the MSI you have. (I don't know how someone can
copyright an installer built to MS specs, but some
people seem to think they can copyright anything.)
When you think about it, if you change the name in
the Summary Information then the MSI you have is
probably identical to the one you will build. So....
fred
2009-06-07 16:22:17 UTC
Permalink
Inno setup is a quite good installation program (open source).
It allows you to create script and then compiler changes the script into
executable.
One of the commands used by inno script is Run command, and it executes the
embedded file whether it is .exe or msi file.

The problem I encountered is that extracted msi file from that inno setup
will not run on its own, but it will run only with the original inno
executable.
I am using Inno setup myself so I know how it works.
Even, if I create my own inno executable (using the same script as the other
party used) the program will not run (.msi refuses to run).
I know nothing about .msi files, but it lookes to me that the msi file was
modified somehow not to be run on its own but until some conditions are
met..
Where to look inside msi file to find such conditions?
Thanks,
Fred
Post by mayayana
Sorry, but I don't understand what you're
talking about. I'm not familiar with Inno.
The MSI is inside an Inno EXE? What does
it mean to "run it from within the original
Inno script file? Or are you talking about
trouble with your own setup, done with Inno?
Offhand it sounds like you...or Inno...or
someone... is trying to shell the MSI when
you need to be calling msiexec with a command
line if you want to install the MSI programmatically.
Post by fred
I run into strange problem.
I used universal extractor and extracted the files.
The setup executable was created by inno setup.
The main file to run is .msi file.
However when trying to run that file alone it only flashes and disapears.
When trying to run it from within the original inno script file there is
an
Post by fred
"Unable to execute file: ...
CreateProcess failed; code 193
%1 is not a valid Win32 application.
"
But, when I start the original executable the installation runs fine.
What can be wrong?
Thanks,
Fred
Post by mayayana
Post by fred
Is it possible after unpacking msi file to edit it
and to create msi file
again?
How to proceed with that problem?
That gets back to the original issue: You can
use an MSI to install but they're very complex
and tedious, with no good tools available.
...But you can do it if you want to. An MSI is
actually a minimal-functionality SQL database,
with the actual program CAB usually stored as
a byte stream in one of the database tables.
The MSI is entirely accessible through
WindowsInstaller.Installer. You can change
anything you like. You can also create a new
MSI blank file and start from scratch. (There's
a sample of that at my website, where I used an
MSI to create a zipcode/city reference utility, using
an MSI file as a database and using Windows
Installer for the functionality.)
For editors, there's Orca from Microsoft, but they
no longer have a public download for that. You have
to get the whole Win32 SDK. There's also an editor
at my site, in the form of an HTA, that's roughly the
same thing as Orca. And the editor that Nobody
linked -- InstEdit -- looks like it might be usable.
(That one's NT-only and I'm on Win98, so I haven't
tried it.)
The most popular tool other than Wise and I.S.
wrappers seems to be the open source Wix. I've
downloaded that a couple of times and never
managed to make sense of it. :) Presumably it works,
but it doesn't seem to have any civilized amenities,
like a GUI.
If you go with an MSI you could also download
the MSMs and go that route, "merging" the MSMs
into you installer. SAPI5 seems to be an unusual
case, though. While MSI components are supposed
to be clearly delineated within an install, the SAPI5
components seem to overlap. And Microsoft's way seems
to involve shipping unnecessary files with the TTS.
(I think the Chinese language files go with it by default!)
In many cases it's difficult for even the programmer
himself/herself to know what's being shipped!
I guess there's a question, too, about "copyright"
with the MSI you have. (I don't know how someone can
copyright an installer built to MS specs, but some
people seem to think they can copyright anything.)
When you think about it, if you change the name in
the Summary Information then the MSI you have is
probably identical to the one you will build. So....
Randem
2009-06-01 02:32:27 UTC
Permalink
Run your vbp thru this to see if this can give you a clue to what to
distribute http://www.randem.com/innoscript.html

What installer are you using?
--
Randem Systems
Your Installation Specialist
The Top Inno Setup Script Generator
http://www.randem.com/innoscript.html
Disk Read Error Press Ctl+Alt+Del to Restart
http://www.randem.com/discus/messages/9402/9406.html?1236319938
Post by fred
Hello,
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
Sp5TTIntXP.Msm
Please advise,
Fred
mayayana
2009-06-01 03:17:45 UTC
Permalink
Post by Randem
Run your vbp thru this to see if this can give you a clue to what to
distribute http://www.randem.com/innoscript.html
The VBP will list sapi.dll, with no dependencies.
But that's not much help. To install TTS for SAPI 5
it's also necessary to ship the related files. It's not
just a simple matter of dependencies. This is the list
for an English install:

CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\spttseng.dll
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\ltts1033.lxa
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\r1033tts.lxa
CommonFilesFolder\SpeechEngines\Microsoft\spcommon.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.dll
CommonFilesFolder\Microsoft Shared\Speech\sapisvr.exe
WindowsFolder\Help\speech.chm
WindowsFolder\Help\sapicpl.hlp
CommonFilesFolder\Microsoft Shared\Speech\1033\spcplui.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.cpl
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SDF

Then there are also quite a few Registry settings
that go with that.
Post by Randem
What installer are you using?
If you read the thread you'll see that that's
the issue in question. :) MS only officially provides
merge modules for Windows Installer MSIs, with
no other documented means to distribute the
necessary files.
fred
2009-06-01 05:12:57 UTC
Permalink
I have aready tried that.
I copied manually all that file as you listed plus I changed this registry:
However, I was unable to enumerate Mary and Mike voices.
What else should I do?
The registry change is shown below:
================
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B]
"ProductName"="Microsoft Mike and Mary TTS Engines 5.1"
"PackageCode"="2C4060A3A708BD11D88F0005D85D6B9B"
"Language"=dword:00000409
"Version"=dword:01000000
"Assignment"=dword:00000000
"AdvertiseFlags"=dword:00000184
"InstanceType"=dword:00000000
"AuthorizedLUAApp"=dword:00000000
"Clients"=hex(7):3a,00,00,00,00,00

[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList]
"PackageName"="SpeechXP.msi"
"LastUsedSource"=hex(2):6e,00,3b,00,31,00,3b,00,43,00,3a,00,5c,00,44,00,4f,00,\
43,00,55,00,4d,00,45,00,7e,00,31,00,5c,00,4a,00,61,00,63,00,65,00,6b,00,5c,\
00,4c,00,4f,00,43,00,41,00,4c,00,53,00,7e,00,31,00,5c,00,54,00,65,00,6d,00,\
70,00,5c,00,69,00,73,00,2d,00,50,00,4f,00,56,00,4f,00,33,00,2e,00,74,00,6d,\
00,70,00,5c,00,00,00

[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList\Media]
"DiskPrompt"="Microsoft Mike and Mary TTS Engines 5.1: [1]"
"1"="DISK_1;1"

[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList\Net]
"1"=hex(2):43,00,3a,00,5c,00,44,00,4f,00,43,00,55,00,4d,00,45,00,7e,00,31,00,\
5c,00,4a,00,61,00,63,00,65,00,6b,00,5c,00,4c,00,4f,00,43,00,41,00,4c,00,53,\
00,7e,00,31,00,5c,00,54,00,65,00,6d,00,70,00,5c,00,69,00,73,00,2d,00,50,00,\
4f,00,56,00,4f,00,33,00,2e,00,74,00,6d,00,70,00,5c,00,00,00


================
Thanks,
Fred
Post by mayayana
Post by Randem
Run your vbp thru this to see if this can give you a clue to what to
distribute http://www.randem.com/innoscript.html
The VBP will list sapi.dll, with no dependencies.
But that's not much help. To install TTS for SAPI 5
it's also necessary to ship the related files. It's not
just a simple matter of dependencies. This is the list
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\spttseng.dll
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\ltts1033.lxa
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\r1033tts.lxa
CommonFilesFolder\SpeechEngines\Microsoft\spcommon.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.dll
CommonFilesFolder\Microsoft Shared\Speech\sapisvr.exe
WindowsFolder\Help\speech.chm
WindowsFolder\Help\sapicpl.hlp
CommonFilesFolder\Microsoft Shared\Speech\1033\spcplui.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.cpl
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SDF
Then there are also quite a few Registry settings
that go with that.
Post by Randem
What installer are you using?
If you read the thread you'll see that that's
the issue in question. :) MS only officially provides
merge modules for Windows Installer MSIs, with
no other documented means to distribute the
necessary files.
mayayana
2009-06-01 13:45:03 UTC
Permalink
This post might be inappropriate. Click to display it.
fred
2009-06-01 16:31:48 UTC
Permalink
I have 3rd party two installation programs:
1.
Installs only Mary and Mike voices 3.5 MB
2.
Installs Sapi 5 run time files plus thes 2 voices.6.8 MB

Both files are single file executables:

I wonder. if there is some utilty allowing me to see what changes to the
registry are done during the installation?
Thanks,
Fred
Post by mayayana
Post by fred
I have aready tried that.
I copied manually all that file as you listed plus I changed this
However, I was unable to enumerate Mary and Mike voices.
What else should I do?
I don't understand what you did there. Are you
creating dummy MSI settings in the Registry to
simulate an MSI install? If so, that's not necessary
and won't have any effect. The files don't *have*
to be installed via an MSI inherently. That's just the
way Microsoft has presented it.
If you used an MSI it would install the files plus
a large number of Registry settings. A lot of the
settings are COM registration. Part of the package is
also a Control Panel .cpl for speech. What you seem to
be doing is just copying over the files and adding a
dummy MSI install listing. But that measns the COM
files are not registered.
In the MSI Unpacker
download I linked earlier there's a folder named "TTS
Sample". It shows how the included scripts can auto-
generate a VBScript installer from a given MSI component.
The TTS Sample files are such an installer. (With the
.vbs files renamed to .txt to prevent someone from
accidentally running them while exploring the download.)
Those files should give you the actual Registry settings
needed. It might take some experimenting, though. When
I created that package I needed to install SAPI5 TTS on
a single WinME box. It seemed to work OK. But I never
spent the time to turn the script utilities into a time-tested
tool. (I never ran into another occasion where I needed
to install something that was only available in MSMs.)
(The files in the Extra Ops folder are the scripts that
were created to auto-generate the install scripts.)
Post by fred
================
Windows Registry Editor Version 5.00
[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\
Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B]
Post by fred
"ProductName"="Microsoft Mike and Mary TTS Engines 5.1"
"PackageCode"="2C4060A3A708BD11D88F0005D85D6B9B"
"Language"=dword:00000409
"Version"=dword:01000000
"Assignment"=dword:00000000
"AdvertiseFlags"=dword:00000184
"InstanceType"=dword:00000000
"AuthorizedLUAApp"=dword:00000000
"Clients"=hex(7):3a,00,00,00,00,00
[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\
Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList]
Post by fred
"PackageName"="SpeechXP.msi"
"LastUsedSource"=hex(2):6e,00,3b,00,31,00,3b,00,43,00,3a,00,5c,00,44,00,4f,0
0,\
43,00,55,00,4d,00,45,00,7e,00,31,00,5c,00,4a,00,61,00,63,00,65,00,6b,00,5c,\
00,4c,00,4f,00,43,00,41,00,4c,00,53,00,7e,00,31,00,5c,00,54,00,65,00,6d,00,\
70,00,5c,00,69,00,73,00,2d,00,50,00,4f,00,56,00,4f,00,33,00,2e,00,74,00,6d,\
Post by fred
00,70,00,5c,00,00,00
[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\
Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList\Media]
Post by fred
"DiskPrompt"="Microsoft Mike and Mary TTS Engines 5.1: [1]"
"1"="DISK_1;1"
[HKEY_USERS\S-1-5-21-1935655697-492894223-854245398-1003\Software\Microsoft\
Installer\Products\2C4060A3A708BD11D88F0005D85D6B9B\SourceList\Net]
"1"=hex(2):43,00,3a,00,5c,00,44,00,4f,00,43,00,55,00,4d,00,45,00,7e,00,31,00
,\
5c,00,4a,00,61,00,63,00,65,00,6b,00,5c,00,4c,00,4f,00,43,00,41,00,4c,00,53,\
00,7e,00,31,00,5c,00,54,00,65,00,6d,00,70,00,5c,00,69,00,73,00,2d,00,50,00,\
Post by fred
4f,00,56,00,4f,00,33,00,2e,00,74,00,6d,00,70,00,5c,00,00,00
================
Thanks,
Fred
Post by mayayana
Post by Randem
Run your vbp thru this to see if this can give you a clue to what to
distribute http://www.randem.com/innoscript.html
The VBP will list sapi.dll, with no dependencies.
But that's not much help. To install TTS for SAPI 5
it's also necessary to ship the related files. It's not
just a simple matter of dependencies. This is the list
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\spttseng.dll
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\ltts1033.lxa
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\r1033tts.lxa
CommonFilesFolder\SpeechEngines\Microsoft\spcommon.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.dll
CommonFilesFolder\Microsoft Shared\Speech\sapisvr.exe
WindowsFolder\Help\speech.chm
WindowsFolder\Help\sapicpl.hlp
CommonFilesFolder\Microsoft Shared\Speech\1033\spcplui.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.cpl
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SDF
Then there are also quite a few Registry settings
that go with that.
Post by Randem
What installer are you using?
If you read the thread you'll see that that's
the issue in question. :) MS only officially provides
merge modules for Windows Installer MSIs, with
no other documented means to distribute the
necessary files.
mayayana
2009-06-01 23:26:30 UTC
Permalink
Post by fred
1.
Installs only Mary and Mike voices 3.5 MB
2.
Installs Sapi 5 run time files plus thes 2 voices.6.8 MB
So you don't need to create an installer, then.
#1 would be for XP and #2 would be for pre-XP
systems. The Registry changes are in the download
I linked, as mentioned earlier. But if you have a
ready-made installer then what difference does
it make?
Post by fred
I wonder. if there is some utilty allowing me to see what changes to the
registry are done during the installation?
Thanks,
Fred
fred
2009-06-02 05:20:37 UTC
Permalink
It does make differnce.
These files display the company name and logo during install.
I cannot just distribute those as my own.
Fred
Post by mayayana
Post by fred
1.
Installs only Mary and Mike voices 3.5 MB
2.
Installs Sapi 5 run time files plus thes 2 voices.6.8 MB
So you don't need to create an installer, then.
#1 would be for XP and #2 would be for pre-XP
systems. The Registry changes are in the download
I linked, as mentioned earlier. But if you have a
ready-made installer then what difference does
it make?
Post by fred
I wonder. if there is some utilty allowing me to see what changes to the
registry are done during the installation?
Thanks,
Fred
mayayana
2009-06-02 12:49:40 UTC
Permalink
Post by fred
It does make differnce.
These files display the company name and logo during install.
I cannot just distribute those as my own.
Fred
Oh, I see. I thought you meant that you had
solved the problem with those installers. You
can take a look at the script download I posted
a link for. I think there are also programs available
to record Registry changes, but I don't know
about that offhand.
Randem
2009-06-01 07:09:57 UTC
Permalink
Well if you already have the msi file for the installation what is the
issue. Won't that installation contain everything you need?
--
Randem Systems
Your Installation Specialist
The Top Inno Setup Script Generator
http://www.randem.com/innoscript.html
Disk Read Error Press Ctl+Alt+Del to Restart
http://www.randem.com/discus/messages/9402/9406.html?1236319938
Post by mayayana
Post by Randem
Run your vbp thru this to see if this can give you a clue to what to
distribute http://www.randem.com/innoscript.html
The VBP will list sapi.dll, with no dependencies.
But that's not much help. To install TTS for SAPI 5
it's also necessary to ship the related files. It's not
just a simple matter of dependencies. This is the list
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\spttseng.dll
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\ltts1033.lxa
CommonFilesFolder\SpeechEngines\Microsoft\Lexicon\1033\r1033tts.lxa
CommonFilesFolder\SpeechEngines\Microsoft\spcommon.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.dll
CommonFilesFolder\Microsoft Shared\Speech\sapisvr.exe
WindowsFolder\Help\speech.chm
WindowsFolder\Help\sapicpl.hlp
CommonFilesFolder\Microsoft Shared\Speech\1033\spcplui.dll
CommonFilesFolder\Microsoft Shared\Speech\sapi.cpl
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mary.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SDF
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Mike.SPD
CommonFilesFolder\SpeechEngines\Microsoft\TTS\1033\Sam.SDF
Then there are also quite a few Registry settings
that go with that.
Post by Randem
What installer are you using?
If you read the thread you'll see that that's
the issue in question. :) MS only officially provides
merge modules for Windows Installer MSIs, with
no other documented means to distribute the
necessary files.
mayayana
2009-06-01 13:28:21 UTC
Permalink
Post by Randem
Well if you already have the msi file for the installation what is the
issue. Won't that installation contain everything you need?
Microsoft doesn't offer an MSI file. They offer
an MSM file, a "merge module". My guess is that
they released SAPI5 around the time they came out
with Windows Installer, and SAPI5 became a guinea
pig of the MS marketing dept. Whatever the case,
they've avoided releasing a basic installer for TTS,
like the SFX CABs that they offer for most other
updates.

An MSM is a sort of MSI component file. It contains
files and/or settings to install a given "component",
which in W.I. is a technical term for a recognizable
grouping of files/settings.

The problem is that an MSM is "opaque". It's
designed to be used in conjunction with the creation
of an MSI installer file. While it's possible to unpack
and document the content of an MSM, it's not in
itself installable.

So in cases like SAPI5 MS is trying to force people
to switch to MSI installations. But if you've ever
looked into MSIs you'll know that that's a very big
undetaking. The installer is actually an 80+ - table
custom SQL database, with extensive cross-referencing
between columns of different tables. And there's
nothing noteworthy available to automate the build
process, short of buying an absurdly overpriced commercial
installer like I.S. or Wise that can produce an MSI. (I
suspect that may be connected to why MSIs are so difficult:
If MS had created a usable product in Windows Installer
they would have put I.S. and Wise out of business,
inviting more monopoly lawsuits.)

The idea with the merge modules was to have packages
of redistributables that could be "merged" into MSIs.
But that system -- the inherent opacity or secrecy around
MSM content -- means that the programmer is unlikely
to actually know what they're installing and has no direct
way to repackage the install to something other than
an MSI.
Randem
2009-06-01 19:43:14 UTC
Permalink
Yes that may be so, but you can create a MSI out of an MSM. Will that
suffice?
--
Randem Systems
Your Installation Specialist
The Top Inno Setup Script Generator
http://www.randem.com/innoscript.html
Disk Read Error Press Ctl+Alt+Del to Restart
http://www.randem.com/discus/messages/9402/9406.html?1236319938
Post by mayayana
Post by Randem
Well if you already have the msi file for the installation what is the
issue. Won't that installation contain everything you need?
Microsoft doesn't offer an MSI file. They offer
an MSM file, a "merge module". My guess is that
they released SAPI5 around the time they came out
with Windows Installer, and SAPI5 became a guinea
pig of the MS marketing dept. Whatever the case,
they've avoided releasing a basic installer for TTS,
like the SFX CABs that they offer for most other
updates.
An MSM is a sort of MSI component file. It contains
files and/or settings to install a given "component",
which in W.I. is a technical term for a recognizable
grouping of files/settings.
The problem is that an MSM is "opaque". It's
designed to be used in conjunction with the creation
of an MSI installer file. While it's possible to unpack
and document the content of an MSM, it's not in
itself installable.
So in cases like SAPI5 MS is trying to force people
to switch to MSI installations. But if you've ever
looked into MSIs you'll know that that's a very big
undetaking. The installer is actually an 80+ - table
custom SQL database, with extensive cross-referencing
between columns of different tables. And there's
nothing noteworthy available to automate the build
process, short of buying an absurdly overpriced commercial
installer like I.S. or Wise that can produce an MSI. (I
If MS had created a usable product in Windows Installer
they would have put I.S. and Wise out of business,
inviting more monopoly lawsuits.)
The idea with the merge modules was to have packages
of redistributables that could be "merged" into MSIs.
But that system -- the inherent opacity or secrecy around
MSM content -- means that the programmer is unlikely
to actually know what they're installing and has no direct
way to repackage the install to something other than
an MSI.
William DePalo [MVP VC++]
2009-06-02 13:50:50 UTC
Permalink
Post by fred
My app invokes TTS using SAPI 5.
What files should I distribute?
SAPI 5.3 is included on Vista and later. There is nothing to distribute
there. SAPI TTS capability (but not SR) is included on XP. If you are not
doing recognition you are good to go. 2000 and earlier have neither TTS nor
SR. The only SAPI components that you can legally redistribute are the
packages with the software and voices that you downloaded from MSDN. Note
that these are 5.1 not 5.3!
Post by fred
There is some package I downloaded from MSDN but I do not have idea what
to do with it: Sp5TTIntXP.Msm
That's a merge module.

http://msdn.microsoft.com/en-us/library/aa369820(VS.85).aspx

Regards,
Will
Nobody
2009-06-02 14:26:02 UTC
Permalink
Post by fred
Hello,
My app invokes TTS using SAPI 5.
What files should I distribute?
There is some package I downloaded from MSDN but I do not have idea what
Sp5TTIntXP.Msm
That file doesn't contain everything. It includes 4 files and their registry
entries. Here are the 4 files:

07/24/2001 12:18 AM 888 Mary.SDF
07/24/2001 12:18 AM 2,112,723 Mary.SPD
07/24/2001 12:18 AM 888 Mike.SDF
07/24/2001 12:19 AM 1,999,756 Mike.SPD

The MSM file came from here:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5e86ec97-40a7-453f-b0ee-6583171b4530

I used 7-Zip to extract the MSM file from "Sp5TTIntXP.exe", then I used
InstEd tool to extract the files inside the MSM. You can also export the
registry entries. See here:

http://en.wikipedia.org/wiki/Windows_Installer#Tools
http://www.instedit.com/

After you download the tool, select New, Package, then go to Tables-->Merge
Module, browse to the MSM file, and at the bottom, check "Extract files to".
You may get warnings, but the files will be extracted correctly.

What you need to redistribute is "SpeechSDK51MSM.exe". It contains several
languages and that's why it's big. The English US version is 50 MB. You can
make two installers, one with it, and one without it, or you can use Inno
Setup with a free third party tool to download the extra components when
needed. See here:

http://www.sherlocksoftware.org/page.php?id=50

See also:

http://www.jrsoftware.org/iskb.php?msi
http://www.jrsoftware.org/iskb.php?vb
Nobody
2009-06-02 14:39:06 UTC
Permalink
See also this article:

How to redistribute SAPI 5.1 core components
http://support.microsoft.com/kb/320207
mayayana
2009-06-03 01:40:40 UTC
Permalink
Post by Nobody
Post by fred
Sp5TTIntXP.Msm
That file doesn't contain everything. It includes 4 files and their registry
07/24/2001 12:18 AM 888 Mary.SDF
07/24/2001 12:18 AM 2,112,723 Mary.SPD
07/24/2001 12:18 AM 888 Mike.SDF
07/24/2001 12:19 AM 1,999,756 Mike.SPD
That's equivalent to the #1 EXE installer that he
said he had, in his last 6/1 post. It's for creating
an MSI to install the Mike and Mary voices on XP.
(XP already has everything else.)
Post by Nobody
After you download the tool, select New, Package, then go to
Tables-->Merge
Post by Nobody
Module, browse to the MSM file, and at the bottom, check "Extract files to".
You may get warnings, but the files will be extracted correctly.
He's already got the SDK, so he doesn't need to get
the files. They're part of the SDK.
Post by Nobody
What you need to redistribute is "SpeechSDK51MSM.exe".
It contains several
languages and that's why it's big.
That's the redistributables package, for people
who want the merge modules. It's not redistributed
as-is. It provides the merge modules for building
a redistribution MSI file. I think this is going in circles
here. He's got everything he needs in the SDK. And
the size he posted for the two EXE installers he has --
the voices for XP and the whole TTS for pre-XP --
are in accord with the size of what needs to be shipped.
At this point he has installers that are the minimum
size required, without needing to deal with MSIs. But
he wants to repackage those to avoid 3rd-party ads
during his install.
Loading...