PDA

View Full Version : IsRegSpy.exe not extracting COM information correctly



dimm037
11-18-2013, 10:47 PM
We already have a working installer build machine running on a 32-bit Windows Server 2008 virtual machine. However, we've been doing work to move to a 64-bit Windows Server 2008 R2 virtual machine. One of the things I've noticed is that on the 64-bit environment, not all COM information is extracted correctly during the build process. The differences are listed below, as extracted using RegSpyUI.exe:

On a 32-bit machine the RegSpyUI.exe extract is:
[HKEY_CLASSES_ROOT\Interface\{01BAC8E0-76B1-4538-8BF5-C822BD3238F2}\ProxyStubClsid]
@="{00020424-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\Interface\{01BAC8E0-76B1-4538-8BF5-C822BD3238F2}\ProxyStubClsid32]
@="{00020424-0000-0000-C000-000000000046}"

Yet, on the 64-bit machine the corresponding extract is:
[HKEY_CLASSES_ROOT\Interface\{01BAC8E0-76B1-4538-8BF5-C822BD3238F2}\ProxyStubClsid32]
@="{F0B85304-34DA-49C4-BE3F-8FEECDE503F7}"

I'm not worried about the ProxyStubClsid not being generated, I believe this is correct. The thing that's weird is that on the 64-bit machine the ProxyStubClsid32 points to {F0B85304-34DA-49C4-BE3F-8FEECDE503F7}, which is PSFactoryBuffer. Where as on the 32-bit machine ProxyStubClsid32 points to {00020424-0000-0000-C000-000000000046}, which is C:\Windows\system32\oleaut32.dll. The 32-bit machine's behaviour is what we want.

Has anyone else experienced a similar issue or have any ideas on how I could investigate further.

Additional information:

COM Extract at Build is set to Yes
Running regsvr32 on both 32-bit and 64-bit machines does register the DLL correctly (i.e. ProxyStubClsid[32] points to {00020424-0000-0000-C000-000000000046}

stevehoek
03-20-2014, 03:52 PM
For what it is worth, I'm having the same issue since moving to IS 2013. Another factor for me is that I moved my build environment from XP + IS 2012 to Win7x64 + IS 2013.

From my reading of the COM Extract whitepaper, the default method for extraction is different on Win7 than XP (kernel filter driver vs registry redirection). Unfortunately changing the UseAPIRegistryHooks values did not help.

This is preventing me from installing a working system, and I get lots of 0009 validation warnings when upgrading from previous versions of our install.

I'm having to mark certain components as self-reg now, which is a real bummer.

MarkusLatz
03-21-2014, 02:23 AM
I had a similar problem in the past when I moved from 32-bit host to 64-bit host machine.

This thread solved my problem:

http://community.flexerasoftware.com/showthread.php?192471-COM-extract-problem-32-bit-vs-64-bit-OS&highlight=OAPERUSERTLIBREG