Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 1.25 KB

File metadata and controls

25 lines (19 loc) · 1.25 KB

Tips for debugging of COM marshaling problems

Symptoms

  • Unable to pass COM pointers across process boundaries
  • Unable to pass COM pointers between programming languages

Associated COM error codes

  • E_NOINTERFACE
  • REGDB_E_IIDNOTREG
  • Probably more...

Suggested steps

Open regedit.exe to check that the required registry entries are present:

  1. Ensure that the problematic COM interface is found on HKCR\Interface\{INTERFACE-GUID}
  2. Locate the associated TypeLib GUID in HKCR\Interface\{INTERFACE-GUID}\TypeLib
  3. Ensure that the TypeLib can be found on HKCR\TypeLib\{TYPELIB-GUID}
  4. Ensure that the TypeLib file specified in HKCR\TypeLib\{TYPELIB-GUID}\<VERSION>\0\win64 is present on the filesystem.
  5. Open the IDL file used to generate the TypeLib and ensure that the problematic interface is either mentioned explicitly in the library block, or indirectly accessible through interface(s) mentioned in the library block.

IMyServer example

com-interface-reg

typelib-reg

image