Changeset 12965


Ignore:
Timestamp:
Jan 9, 2000, 3:15:08 PM (25 years ago)
Author:
davidr
Message:

Updated TKIND_ALIAS handling

Location:
tags/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified tags/trunk/ChangeLog

    r12963 r12965  
    1  /* $Id: ChangeLog,v 1.624 2000-01-09 14:12:37 cbratschi Exp $ */
     1 /* $Id: ChangeLog,v 1.625 2000-01-09 14:15:08 davidr Exp $ */
     2
     3 2000-01-09: David Raison <djr@lemur.co.uk>
     4        - OLEAUT32: Typelib - Updated TKIND_ALIAS handling.
    25
    36 2000-01-09: Christoph Bratschi <cbratschi@datacomm.ch>
  • TabularUnified tags/trunk/src/oleaut32/typelib.cpp

    r12914 r12965  
    1 /* $Id: typelib.cpp,v 1.9 2000-01-05 19:44:34 sandervl Exp $ */
     1/* $Id: typelib.cpp,v 1.10 2000-01-09 14:12:19 davidr Exp $ */
    22/*
    33 * ITypelib interface
     
    10611061    pTypeInfo->TypeAttr.cImplTypes = pBase->cImplTypes;
    10621062    pTypeInfo->TypeAttr.cbSizeVft = pBase->cbSizeVft; // FIXME: this is only the non inherited part
    1063     if (pTypeInfo->TypeAttr.typekind  == TKIND_ALIAS)
    1064         GetTypedesc(pBase->datatype1, &pTypeInfo->TypeAttr.tdescAlias) ;
    10651063
    10661064    /*  FIXME: */
     
    10781076     */
    10791077
     1078    // ImplTypes {DR: not sure this is OK yet}
     1079    switch(pTypeInfo->TypeAttr.typekind)
     1080    {
     1081        case TKIND_ALIAS:
     1082            GetTypedesc(pBase->datatype1, &pTypeInfo->TypeAttr.tdescAlias) ;
     1083            break;
     1084
     1085        case TKIND_COCLASS:
     1086            ParseImplemented(pTypeInfo, pBase);
     1087            break;
     1088
     1089        case TKIND_DISPATCH:
     1090            break;
     1091
     1092        default:
     1093            if (pBase->datatype1 != 0xffffffff)
     1094            {
     1095                TLBRefType *    pNew = new TLBRefType;
     1096                memset(pNew, 0, sizeof(*pNew)); // Ensure that unset fields get nulled out.
     1097
     1098                ParseReference(pBase->datatype1, pNew);
     1099                pTypeInfo->pImplements.AddAtEnd(pNew);
     1100            }
     1101       
     1102    }
     1103
    10801104#if defined(DEBUG)         
    10811105    dprintfLine2();
     
    10841108                                                TypeKindAsString(pTypeInfo->TypeAttr.typekind)));
    10851109    char        guid[128];
     1110    char        buf[1024];
    10861111    WINE_StringFromCLSID(&pTypeInfo->TypeAttr.guid, guid);
    10871112    dprintf((LOG, "  .GUID:        %s", guid));
     
    10981123    dprintf((LOG, "  .cImplTypes:  %08x", pTypeInfo->TypeAttr.cImplTypes));
    10991124    dprintf((LOG, "  .cbSizeVft:   %08x", pTypeInfo->TypeAttr.cbSizeVft));
     1125    if (pTypeInfo->TypeAttr.typekind == TKIND_ALIAS)
     1126    {
     1127        sprintfTypeDesc(buf, &pTypeInfo->TypeAttr.tdescAlias);
     1128        dprintf((LOG, "  .tdesc        %s", buf));
     1129    }
     1130    dprintf((LOG, "  .DocString    %s", pTypeInfo->szDocString));
     1131    dprintf((LOG, "  .HelpStrCtx   %08x", pTypeInfo->lHelpStringContext));
     1132    dprintf((LOG, "  .HelpCtx      %08x", pTypeInfo->lHelpContext));
     1133
     1134    dprintf((LOG, "pBase"));
     1135    dprintf((LOG, "  .res2         %08x", pBase->res2));
     1136    dprintf((LOG, "  .res3         %08x", pBase->res3));
     1137    dprintf((LOG, "  .res4         %08x", pBase->res4));
     1138    dprintf((LOG, "  .res5         %08x", pBase->res5));
     1139    dprintf((LOG, "  .res7         %08x", pBase->res7));
     1140    dprintf((LOG, "  .res8         %08x", pBase->res8));
     1141    dprintf((LOG, "  .res9         %08x", pBase->res9));
     1142    dprintf((LOG, "  .resA         %08x", pBase->resA));
     1143    dprintf((LOG, "  .datatype1    %08x", pBase->datatype1));
     1144    dprintf((LOG, "  .datatype2    %08x", pBase->datatype2));
     1145    dprintf((LOG, "  .res18        %08x", pBase->res18));
     1146    dprintf((LOG, "  .res19        %08x", pBase->res19));
     1147
    11001148#endif
    11011149
     
    11031151    ParseMembers(pTypeInfo, pBase);
    11041152
    1105     // ImplTypes {DR: not sure this is OK yet}
    1106     if (pTypeInfo->TypeAttr.typekind == TKIND_COCLASS)
    1107         ParseImplemented(pTypeInfo, pBase);
    1108 
    1109     // RefTypes {DR: not sure this is OK yet}
    1110     else if (pTypeInfo->TypeAttr.typekind != TKIND_DISPATCH)
    1111     {
    1112         if (pBase->datatype1 != 0xffffffff)
    1113         {
    1114             TLBRefType *        pNew = new TLBRefType;
    1115             memset(pNew, 0, sizeof(*pNew));     // Ensure that unset fields get nulled out.
    1116 
    1117             dprintf((LOG, "Datatype1:      %08x", pBase->datatype1));
    1118             ParseReference(pBase->datatype1, pNew);
    1119             pTypeInfo->pImplements.AddAtEnd(pNew);
    1120         }
    1121     }
    11221153
    11231154    // Load Custom data
Note: See TracChangeset for help on using the changeset viewer.