Today's Smalltalk Daily looks at interfacing to a simple COM api in Windows - specifically, the speech API. The code to get the dispatch driver is a little involved, so the #setupDriver method in the video is included below - to skip to the video, click here
setupDriver
"set up the COM driver"
| ref descs ifc guid refs |
refs := COMRegistryInterface extTypeLibraryIDMap
select: [:each | each name notNil].
ref := refs
detect: [:each |
'Microsoft Speech Object Library*' match: each name]
ifNone: [nil].
ref ifNil: [^nil].
descs := ref containedTypeDescriptions.
ifc := descs
detect: [:each | 'SpVoice' match: each name]
ifNone: [nil].
ifc ifNil: [^nil].
guid := ifc guid.
driver := AdvancedDispatchDriver
on: (IClassFactory
createInstance: guid
iid: External.COMConstants.IID_IDispatch
context: External.COMConstants.CLSCTX_SERVER).
^driver
To watch now, use the viewer below:
If you have trouble viewing that directly, you can click here to download the video directly. If you need the video in a Windows Media format, then download that here.
You can also watch it on YouTube:
Technorati Tags:
windows, com, speech, smalltalk