![]() |
MCI32 Licence | |
| Home « Computers « DevBlog | ||
Back to: Development Blog Contents
MCI32.ocx says "Class is not licensed for use".
After building a new development PC I found that I didn't have MCI32.ocx installed. I found this out by trying to play an MP3 file in my Onyx MP3 tagging application. I presume the file was installed and registered as a part of Visual Studio 6.0 that I previously used for C++ development. On the new PC I didn't bother install Studio 6.0, as all of my work was now done using Visual Studio .NET 2003. I didn't want to install Studio 6.0, so I ran some searches and came upon these links:
INFO:
CAB Files Distributed with Visual Basic 6.0
Microsoft
Multimedia Control 6.0
I downloaded the CAB file from the second link and installed the INF file, but it did not register the file. I then manually copied MCI32.ocx to the System32 folder and ran regsvr32 mci32.dll. This correctly registered the control.
When I ran Onyx and tried to play an audio file I received the "Class is not licensed for use" message. More searches revealed that a special value was need in the registry. I search the registry on my previous PC, which luckily hadn't been dismantled yet, and found a dozen extra entries under the HCR\Licenses key that were not on my new PC. On the old PC I found this curious entry:
[HKEY_CLASSES_ROOT\Licenses] @="Licensing: Copying the keys may be a violation of established copyrights."
Overlooking this dire warning for the moment, I merged the old keys into the registry and tediously removed them one by one until the MCI32 control worked. Luckily again, it was the fourth one that I tried, this one:
[HKEY_CLASSES_ROOT\Licenses\B1EFCCF0-6AC1-11cf-8ADB-00AA00C00905] @="qqkjvqpqmqjjpqjjvpqqkqmqvkypoqjquoun"
I then cleaned-up by deleting the other dozen irrelevant keys from the old PC. Finally I had the old MCI32.ocx Microsoft Multimedia Control working again on my new PC. I have no idea why this control is licensed as a part of the VB6 runtime, but I needed it back again quickly so I could play audio files from my old application.
News (07-Mar-2007)
For years I was wondering how to play audio files in Windows apps without any dependency upon special controls or libraries. I finally found the answer in late 2006 thanks to http://www.mentalis.org who supply a free C# code library called Multimedia that shows how it's quite easy to use the Windows MCI API to play audio.
Back to: Development Blog Contents