SDK: 32-bit legacy programs interoperating with the 64-bit client using COM
Update @ 2013-06-21: CU2 has been relreased and has a fix for the CPApplet issues. Please reference my latest post about this fix.
Update @ 2013-06-05: A fix for the CPApplet interfaces not being accessible from 32-bit processes will be released as part of Configuration Manager 2012 SP1 CU2. I'll write a full blog post once CU2 releases.
Update @ 2013-03-21: We are aware of an issue with CPApplet interfaces not being accessible from 32-bit processes. Once I have something to share regarding a solution for this I will post about it here.
Configuration Manager 2012 for the first time offers a 64-bit native client. This will create problems if you’re using a 32-bit native application that depends on COM interfaces defined by the older 32-bit client. The most likely issue would be your applications failing with a 0x80040154 (class not registered) error. Fortunately, you don’t need to despair or rebuild your programs for 64-bit (or “Any” if .NET).
We have shipped a set of compatibility shims as part of the program bundle that will allow 32-bit programs to invoke COM methods against the 64-bit client. You will need to install the 32BitCompat.msi that is part of the CD. It can be found under SMSSETUP\BIN\X64. You can even deploy this to your 64-bit clients as part of an application deployment. Make sure you scope this to run only on 64-bit systems as it will fail to install on 32-bit systems.
The following are shimmed out to allow 32-bit interoperability:
- ccmcca.dll
- ccmcisdk.dll
- ccmctm.dll
- ccmexec.exe
- ccmproxy.dll
- ciagent.dll
- contentaccess.dll
- cpapplet.dll
- dcmagent.dll
- execmgr.dll
- rebootcoord.dll
- rtconfig.dll
- scanagent.dll
- sched.dll
- smsclient.dll
- smssha.dll
- srcupdatemgr.dll
- srvwinmgr.dll
- statemessage.dll
- uiresource.dll
- updatesdeployment.dll
- updatesstore.dll
Note: This is only required if you’re using 32-bit native applications for COM interop. 64-bit native applications, or .NET applications compiled as “Any” do not require this to be installed.