I admit, I really do want that Logo saying “Compatible with Windows 7″ for Behold.
Why? Well for one thing, there are very few genealogy programs (are there any?) that have it. The reason is probably that most genealogy programs are older, use legacy code, and just have too many non-standard hooks in them, making the work involved to get them compatible just not worth it.
Second, well I always did like a challenge. And believe me, no one makes it tougher to comply than Microsoft and the hoops they make you go through. And because of that, having the logo is to those in the know an impressive accomplishment.
I had looked at this in detail over the last few years (search this Blog for “logo”) but the bottom line was that I couldn’t get the Windows compatibility certification until Behold was out of beta. They do not certify beta software. Well now! Version 1 is finally ready and will be launched in a few days.
So what is this procedure you ask? I’ll try to keep it less than a million words. It’s actually rather interesting.
First, I have to install the “Windows 7 Client Software Logo Toolkit” (which is quite a mouthful). My development machine is Vista, and it won’t install there. So I open up a Windows 7 session on Microsoft Virtual PC 2007 which is running on my Vista desktop. Windows 7 running under Vista almost sounds impossible, but it isn’t and it works.
Then I copy the Behold setup program over to the Windows 7 machine. I start the Logo Toolkit.
Step 1 in the Toolkit is the Pre Install Phase. I have to switch users on the Windows 7 machine, and login to another user who also has admin rights on the same Windows 7 machine. In that other user’s session, I start the Toolkit’s Multi-user Session Server. Then I switch users back to my original admin user’s account. That is actually really neat. They will be testing my application running in one session with a program running in a second session. I didn’t even know you could do that on a PC. Back on my original user, it does a scan of the system and records the state prior to installation.
Step 2 is to Install my Application. Then it scans the system for changes and validates for compatibility. While it is doing that, I see Behold pop up in the background for a few seconds and then close. Then that happens a second time. I presume this is the process running under the other user that starts Behold from that session to ensure it can be done. I’m impressed!
Step 3 is to Launch my Application. While Behold is running, it gathers yet more system information.
Step 4 is to Uninstall my Application. First I must switch users. Turn off the Multi-user Session Server (which confirms in its window that it did indeed run Behold), switch back and do the uninstall. Then it does one last scan of the system for changes and creates the Test Result Report.
That may sound easy. But it took a couple of days to track all this stuff down, read through all the material, and figure out how to get it all going. Also, it took about a dozen attempts before I got the above procedure correct, and each attempt took about a half an hour. Along the way, I had to make some changes to Behold and to Behold’s setup program to get rid of most of the warnings listed in the Test Results.
The best I could do is get it to fully pass 6 tests, but have 3 tests that it could only “Pass with Warnings”. They included:
1. “Application failed to run under a higher Windows version”. It says I perform Windows version checks for equality, but as far as I know, neither Behold nor its install script do such a thing. I searched the web and other people got that as well but no real answers or ideas for me to fix it.
2. “Following files have requested an elevated run level, or not manifested”. The following file listed was my behold.exe program.
In my earlier runs, I knew a Windows manifest file was required. That is a file that contains information about what level of access to the Windows Operating System the program needs. Their desire is that most programs should not need administrative rights but should be able to run simply at the “asInvoker” level. I researched into how to set up the manifest file (it’s XML) and then how to embed it as a resource in Behold as required. So the problem must have been the request of an elevated run level, but it doesn’t say what part of the program was requesting the elevated run level.
3. “Application did not pass multiuser session compliance check”. Here it says that Behold is writing to a registry key which is not user specific (in the HKEY_CURRENT_USER area). Maybe this is the elevated level it is talking about. There are a few things I do in Behold that read other parts of the Registry, which should be allowed. But as far as I know, Behold is not writing anywhere in the registry that is not in the HKEY_CURRENT_USER area. So I don’t know what they’re talking about.
With those as far as I could take them, I thought I’d attempt to submit Behold. It says to submit your application at: https://winqual.microsoft.com. Now I have to get the special VeriSign $99 US code signing certificate - just so I can sign up on the WinQual site. This was a sticky point I had a while back. But I’ve got no choice. I delayed it until I got Version 1 out, hoping that they’d change the policy, but that didn’t happen. Oh well.
So I went to the $99 Verisign form and see it’s for companies only. Behold does not officially have a company, and there is no company phone number. It is all still personally under my name. I called Verisign and they checked and said Winqual will accept a Certificate under my personal name. Unfortunately that certificate does not have the $99 special price and costs $499. But I should call Versign customer service during working hours and see if they can reduce it a bit. Aaaarrrgghh!
So I go to the Winqual FAQ to double check, and what do I find?
[Question] When I try to submit my results file in Winqual, I get an error message that says “* The submission package is invalid as this was generated using 32 bit toolset architecture. This website accepts submissions from 64 bit toolset architecture only.” How can I submit my file?
[Answer]: Official submissions for the Compatible with Windows 7 logo requires validation results produced by the 64-bit version of the logo toolkit. Submission packages created by the 32-bit version of the toolkit will not be accepted in Winqual.
My installation of Windows 7 on my Virtual PC was 32-bit. Double Aaaarrrgghh!!
Now isn’t this fun?