Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
When we last left off in this process to componentize Winamp Lite, we had created a component with file resources, registry resources and component dependencies. We had also added the Group and Repository object dependencies as well.
Now the component is ready to be imported into the Dependency Database and added to a configuration to see if it actually works.
What I did in my initial testing was add it to a Winlogon runtime with TCP so I could have network access if i needed additional tools to troubleshoot. I created a 100MB runtime and made no attempt to trim it at this point of the test. I didn’t expect it to be fully functional on my first try and I wasn’t disappointed, it failed.
Actually, by failed I mean I tried to play an mp3 and a wav yet I heard nothing from the speakers. Checking the obvious first like speakers turned on and plugged in I concluded that something was missing in the runtime. This is because the progress bar showing the current ‘position’ in the song never moved, so Winamp was failing silently with no AV, no errors, etc…
Next step was to try to determine what’s missing from the runtime, it’s going to be either files or registry keys or both. I installed Filemon from Sysinternals from IE within the runtime by navigating to the web site. If you’re not familiar with Filemon, this ”monitoring tool lets you see all file system activity in real-time”. So if there’s a missing file Winamp is trying to load when I play the mp3 filemon will show me the name of the missing file and I can rebuild the configuration by adding the respective component that owns the file. (NOTE: Regmon is another tool you can’t live without). Leverage their freeware tools like these but buy their stuff, too!
With filemon running I tried the mp3 again but the filemon log indicated that dsound.dll was trying to be loaded by Winamp.exe but wasn't found on the system. Also, there were no other file errors being reported, dsound.dll was it. So I hacked in dsound.dll to the live runtime by copying it from the SP2 XPe repository on the network to the runtime’s system32 folder then tried Winamp again.
It worked! I didn’t need to register it or hack in any reg keys, it just worked.
A little additional testing on smaller Minlogon runtimes was done but no real footprint analysis of WMP9 vs. Winamp…yet.
You can download the component here (zipped to 20KB). The files you need to collect were called out in one of the earlier steps of this 6 part process, but I’m listing them below again. Place them into the rep folder from the zipped folders and you’re ready to import the package to your database. Of course the 'uninstall*' files can be removed from the component and the rep if you want.
demo.mp3
gen_hotkeys.dll
gen_jumpex.dll
gen_tray.dll
in_cdda.dll
in_mp3.dll
in_wave.dll
out_ds.dll
out_wave.dll
Uninstall Winamp.lnk
UninstWA.exe
vis_nsfs.dll
What's New.lnk
whatsnew.txt
winamp.exe
winamp.ini
winamp.lks
Winamp.lnk
winamp.m3u
Winamp.q1
winampa.exe
winampmb.htm
windows_winamp.ini
If you have problems or questions with the package please send mail to wecrt @ Microsoft.com.
- Andy
Comments
- Anonymous
September 02, 2005
Over the Spring of '05, I posted a series of blog posts on the end to end process to componentize 3rd... - Anonymous
May 29, 2008
A few years back, Andy wrote a series of articles describing how to componentize a 3rd party application.