示例#1
0
WdeDialogBoxInfo *WdeGetItemDBI( WdeResDlgItem *ditem )
{
    WdeDialogBoxInfo    *dbi;
    WResID              *name;

    if( ditem == NULL ) {
        return( FALSE );
    }

    if( ditem->object != NULL ) {
        Forward( ditem->object, GET_OBJECT_INFO, NULL, &name );
        if( name != NULL ) {
            name = WdeCopyWResID( name );
            if( name != NULL ) {
                if( ditem->dialog_name != NULL ) {
                    WRMemFree( ditem->dialog_name );
                }
                ditem->dialog_name = name;
            }
        }
        dbi = WdeDBIFromObject( ditem->object );
        if( dbi != NULL ) {
            if( ditem->dialog_info != NULL ) {
                WdeFreeDialogBoxInfo( ditem->dialog_info );
            }
            ditem->dialog_info = dbi;
        } else {
            return( FALSE );
        }
    } else {
        dbi = ditem->dialog_info;
    }

    return( dbi );
}
示例#2
0
bool WdeSetObjectInfo( OBJPTR dlg, WdeResInfo **ri, WdeResDlgItem **di, WResID *id )
{
    WdeResInfo      *res_info;
    WdeResDlgItem   *item;
    WResID          *name;
    bool            ok;

    ok = (dlg != NULL && id != NULL && ri != NULL && di != NULL);

    if( ok ) {
        ok = ((res_info = WdeGetCurrentRes()) != NULL);
    }

    if( ok ) {
        ok = ((item = WdeAllocResDlgItem()) != NULL);
    }

    if( ok ) {
        ok = ((name = WdeCopyWResID( id )) != NULL);
    }

    if( ok ) {
        item->object = dlg;
        item->dialog_name = name;
        item->modified = true;
        item->is32bit = res_info->is32bit;
        WdeAddResDlgItemToResInfo( res_info, item );
        *ri = res_info;
        *di = item;
    } else {
        if( item != NULL ) {
            WdeFreeResDlgItem( &item, FALSE );
        }
        if( name != NULL ) {
            WResIDFree( name );
        }
    }

    return( ok );
}