PROBLEM

Using ProgID instead of CLSID for calling a COM component can affect performance.

Last Published: April 25, 2020

Description

Using ProgID instead of CLSID for calling a COM component can affect performance.

COM CoClasses are identified by a globally unique identifier (GUID). There are two formats for the GUID for a CoClass: a CLSID (class identifier) and a ProgID (PROGrammatic Identifier).

The CLSID is a 128-bit number, in hex, within a pair of curly braces, whereas the ProgID is a text alias for a CLSID; it’s a string composed of the name of the project used to make the extension and the class name of the extension.
Refer this link for further details: IApplication.FindExtensionByCLSID Method

The following graphic shows the folder hierarchy for a registered COM component in the registry: 'esriSpatialAnalystUI.SAExtension' is a ProgID, and '{3C5059FE-9F15-401A-94ED-EED914D73E3E}' is a CLSID.
[O-Image]

Cause

There are two potential issues here:

1) Using ProgID instead of the CLSID for loading the COM component makes the path deeper (refer the graphic above), which could result in slow access, consequently affecting performance.

2) There may be two COM components with the same ProgID; but the CLSID is always unique.

Solution or Workaround

Use the CLSID, instead of the ProgID, whenever possible; one of the easiest ways to find the CLSID for a command is to search the system registry using the ProgID.

    Article ID:000011061

    Software:
    • ArcMap

    Get help from ArcGIS experts

    Contact technical support

    Download the Esri Support App

    Go to download options

    Discover more on this topic