internal ComTypeDefInfo(TypeLibrary typeLib,
                                TYPEKIND typeKind,
                                int index) :
            base(typeLib, typeKind, index)
        {
            TYPEATTR typeAttr;
            IntPtr   typeAttrPtr;

            _typeInfo.GetTypeAttr(out typeAttrPtr);
            typeAttr =
                (TYPEATTR)Marshal.PtrToStructure(typeAttrPtr,
                                                 typeof(TYPEATTR));

            _infoType = "TypeDef";
            if (TraceUtil.If(this, TraceLevel.Verbose))
            {
                Trace.WriteLine("TypeDefInfo: " + _name);
            }
            _varComType =
                TypeLibUtil.TYPEDESCToString(typeLib,
                                             _typeInfo,
                                             typeAttr.tdescAlias,
                                             TypeLibUtil.COMTYPE);
            _varClrType =
                TypeLibUtil.TYPEDESCToString(typeLib,
                                             _typeInfo,
                                             typeAttr.tdescAlias,
                                             !TypeLibUtil.COMTYPE);
            _typeInfo.ReleaseTypeAttr(typeAttrPtr);

            // Add to the typelibrary for resolution
            typeLib.TypeDefHash.Add(_name, this);
        }