示例#1
0
int WRRelinkDir( WResDir dest, WResDir src )
{
    WResLangType    lt;
    WResTypeNode    *dtnode;
    WResResNode     *drnode;
    WResLangNode    *dlnode;
    WResTypeNode    *stnode;
    WResResNode     *srnode;
    WResLangNode    *slnode;

    if( dest == NULL || src == NULL ) {
        return( FALSE );
    }

    if( dest->NumTypes != src->NumTypes || dest->NumResources != src->NumResources ) {
        return( FALSE );
    }

    dtnode = dest->Head;
    if( dtnode != NULL ) {
        stnode = WRFindTypeNodeFromWResID( src, &dtnode->Info.TypeName );
    }
    while( dtnode != NULL && stnode != NULL ) {
        drnode = dtnode->Head;
        if( drnode != NULL ) {
            srnode = WRFindResNodeFromWResID( stnode, &drnode->Info.ResName );
        }
        while( drnode != NULL && srnode != NULL ) {
            dlnode = drnode->Head;
            if( dlnode != NULL ) {
                lt = dlnode->Info.lang;
                slnode = WRFindLangNodeFromLangType( srnode, &lt );
            }
            while( dlnode != NULL && slnode != NULL ) {
                if( dlnode->data == NULL ) {
                    dlnode->Info.Offset = slnode->Info.Offset;
                }
                dlnode = dlnode->Next;
                if( dlnode != NULL ) {
                    lt = dlnode->Info.lang;
                    slnode = WRFindLangNodeFromLangType( srnode, &lt );
                }
            }
            drnode = drnode->Next;
            if( drnode != NULL ) {
                srnode = WRFindResNodeFromWResID( stnode, &drnode->Info.ResName );
            }
        }
        dtnode = dtnode->Next;
        if( dtnode != NULL ) {
            stnode = WRFindTypeNodeFromWResID( src, &dtnode->Info.TypeName );
        }
    }

    return( TRUE );
}
示例#2
0
int WRAPI WRDoesNameExist( WResDir dir, WResID *type, WResID *res )
{
    WResTypeNode        *type_node;
    WResResNode         *res_node;

    type_node = WRFindTypeNodeFromWResID( dir, type );
    if( type_node != NULL ) {
        res_node = WRFindResNodeFromWResID( type_node, res );
        if( res_node != NULL ) {
            return( TRUE );
        }
    }

    return( FALSE );
}