Site icon EfmSoft

What does HRESULT 0x80110428 (COMADMIN_E_COMPFILE_BADTLB) mean?

 
Previous Next
COMADMIN_E_COMPFILE_CLASSNOTAVAIL COMADMIN_E_COMPFILE_NOTINSTALLABLE

COMADMIN_E_COMPFILE_BADTLB

COMADMIN_E_COMPFILE_BADTLB is the failure HRESULT 0x80110428 (signed decimal -2146368472, unsigned decimal 2148598824). Its severity bit is 1, facility is 17 (FACILITY_ITF), and the facility-specific code field is 0x0428.

Exact meaning

AllStat describes this condition as “The TypeLib could not be loaded.” COM+ has progressed beyond locating the component and is attempting to obtain type information needed to describe its classes, interfaces, and methods. The associated type library—embedded in the component or supplied as a separate file—cannot be opened and interpreted as a usable COM type library.

The HRESULT does not by itself say whether the metadata is missing, corrupt, incompatible with the selected component, or inaccessible. It also does not prove that the component DLL cannot be loaded or that DllGetClassObject is unavailable; those are separate inspection boundaries with their own COMADMIN results.

How COM+ receives type information

ICOMAdminCatalog::InstallComponent takes a DLL path and optional type-library path. Microsoft specifies that the type-library argument is empty when the metadata is embedded in the DLL. A nonempty argument selects an external type library. Therefore diagnostics must first establish which source COM+ was expected to use; testing an unrelated registered type library can conceal the packaging error.

COM+ needs type metadata for interface, method, marshaling, and catalog information. A file may be a valid PE image and still fail this stage because its embedded resource is absent or malformed, or because the external .tlb belongs to another build.

Evidence to preserve

Failure patterns

Diagnostic sequence

Practical scenario

A release pipeline rebuilds a COM+ DLL but copies an older external Accounting.tlb into the package. The DLL exists and can be opened, yet the supplied type-library file is damaged during packaging and LoadTypeLibEx cannot parse it. Re-registering the old LIBID may change registry state but does not repair the artifact COM+ was asked to inspect.

Retry and recovery

Do not retry unchanged metadata. A meaningful retry follows replacement of the missing or invalid type library, correction of the external path, restoration of access, or rebuilding the DLL with a valid embedded resource. Use hashes to prove that the retried component/type-library pair is the corrected pair rather than another copy of the failed release.

Distinguishing nearby COMADMIN results

Telemetry and build guidance

Record component and type-library paths separately, whether metadata was embedded, both hashes, LIBID/version/LCID, the exact LoadTypeLibEx result, resource inventory, package build number, and signing timestamp. Build validation should load the final packaged artifact—not only an intermediate output—and compare its type information with the generated interface definitions before deployment reaches COM+.

Official Microsoft references


Looking for a different code? Search another status or error code.

Exit mobile version