SDK: 32-bit legacy programs interoperating with the 64-bit client using COM
Published Oct 16 2018 05:04 PM 297 Views
First published on MSDN on Nov 28, 2012

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.

Version history
Last update:
‎Oct 16 2018 05:04 PM
Updated by: