BlueTooth BtRez.dll not found
This is a message I managed to get twice (the second time, after I had diagnosed the problem, solved it, and resolved never to fall for it ever again).
The main reason for this error is that WIDCOMM way of saving licensing information is seriously brain damaged, and vulnerable to whoever can whip up Registry Monitor or SysInternals' ProcMon. I can't quite understand you guys: if you sell *dongles*, by all means, why protect the *software*? It's not like I can copy a physical *dongle*, for Scott's sake. And if you sell the *software*, you sure as hell ain't gonna sell it to *me*, you'll sell it in bulk lots to some OEM. Why don't you just code the BlueTooth device ID family for that lot into that lot's software? Easier for support, too.
And even so, if you *really* need to save licensing information in a fake *extension* Class in the Registry, please, oh pretty please with a cherry on top, *do* register it properly. Fully. The whole kit and caboodle.
Because if you don't, that extension is seen as **unused**.
And if it is unused, most "Computer Registry Analyzer Procedures" (CRAPs) will blithely expunge that key. It is unused, right?
And on the next boot, BLAM!, the system will malfunction - but not just saying "You deleted the license key, you ninny!". Oh noes, a cryptic remark pops up blaming a DLL which *is* there and does not even have unresolved dependencies (which leads to another interesting story, DLL exists and is not found).
Solution. Heh. If you're lucky you have System Restore activated and it's not too late. Run the Restore (it will uninstall the CRAP you just ran, and you'll need to install it again). Done.
If you have done several more modifications and aren't sure to remember them all, things get hairy.
* Grab hold of the invaluable Registry Recovery (WRR) utility by MiTec * Navigate to C:\System Volume Information * Find the restore point RPxxxx more likely to be the one you want * Open the _SOFTWARE hive in the "snapshot" directory * Select "Raw Data" view in WRR * Navigate to .wid (if you don't see it, it's the wrong snapshot, one where .wid has already been deleted) * Export to Registry format (e.g. widcomm_restore.reg). * Close WRR, doubleclick on the .REG file, and reboot.
To prevent this from happening again:
* If you can, tell your CRAP to leave HKLM_CLASSES_ROOT\.wid alone. * Otherwise, create a test.wid file on the desktop, doubleclick, and when asked, instruct the system to open it with Notepad and describe the file as "WIDCOMM license". This will fully register the extension and prevent it from looking "orphan" and fair game.