/* ***************************************************************************** * Function : dump_control * Syntax : void dump_control(const control_t *ctrl) * Input : * ctrl - Control resource descriptor * Output : * Description : * Remarks : ***************************************************************************** */ static void dump_control(const control_t *ctrl) { printf("Control {\n\tClass: %s\n", get_nameid_str(ctrl->ctlclass)); printf("\tText: "); get_nameid_str(ctrl->title); printf("\n"); printf("\tId: %d\n", ctrl->id); printf("\tx, y, w, h: %d, %d, %d, %d\n", ctrl->x, ctrl->y, ctrl->width, ctrl->height); if(ctrl->gotstyle) { assert(ctrl->style != NULL); assert(ctrl->style->and_mask == 0); printf("\tStyle: %08x\n", ctrl->style->or_mask); } if(ctrl->gotexstyle) { assert(ctrl->exstyle != NULL); assert(ctrl->exstyle->and_mask == 0); printf("\tExStyle: %08x\n", ctrl->exstyle->or_mask); } if(ctrl->gothelpid) printf("\tHelpid: %d\n", ctrl->helpid); if(ctrl->extra) { printf("\t"); dump_raw_data(ctrl->extra); } printf("}\n"); }
/* ***************************************************************************** * Function : dump_user * Syntax : void dump_user(const user_t *usr) * Input : * usr - User resource descriptor * Output : nop * Description : * Remarks : ***************************************************************************** */ static void dump_user(const user_t *usr) { dump_memopt(usr->memopt); dump_lvc(&(usr->data->lvc)); printf("Class %s\n", get_nameid_str(usr->type)); dump_raw_data(usr->data); }
/* ***************************************************************************** * Function : dump_dialogex * Syntax : void dump_dialogex(const dialogex_t *dlgex) * Input : * dlgex - DialogEx resource descriptor * Output : * Description : * Remarks : ***************************************************************************** */ static void dump_dialogex(const dialogex_t *dlgex) { const control_t *c = dlgex->controls; dump_memopt(dlgex->memopt); dump_lvc(&(dlgex->lvc)); printf("x, y, w, h: %d, %d, %d, %d\n", dlgex->x, dlgex->y, dlgex->width, dlgex->height); if(dlgex->gotstyle) { assert(dlgex->style != NULL); assert(dlgex->style->and_mask == 0); printf("Style: %08lx\n", dlgex->style->or_mask); } if(dlgex->gotexstyle) { assert(dlgex->exstyle != NULL); assert(dlgex->exstyle->and_mask == 0); printf("ExStyle: %08lx\n", dlgex->exstyle->or_mask); } if(dlgex->gothelpid) printf("Helpid: %ld\n", dlgex->helpid); printf("Menu: %s\n", get_nameid_str(dlgex->menu)); printf("Class: %s\n", get_nameid_str(dlgex->dlgclass)); printf("Title: "); print_string(dlgex->title); printf("\n"); printf("Font: "); if(!dlgex->font) printf("<none>\n"); else { printf("%d, ", dlgex->font->size); print_string(dlgex->font->name); printf(", %d, %d\n", dlgex->font->weight, dlgex->font->italic); } while(c) { dump_control(c); c = c->next; } }
/* ***************************************************************************** * Function : dump_resources * Syntax : void dump_resources(const resource_t *top) * Input : * top - Top of the resource tree * Output : * nop * Description : Dump the parsed resource-tree to stdout * Remarks : ***************************************************************************** */ void dump_resources(const resource_t *top) { printf("Internal resource-tree dump:\n"); while(top) { printf("Resource: %s\nId: %s\n", get_typename(top), get_nameid_str(top->name)); switch(top->type) { case res_acc: dump_accelerator(top->res.acc); break; case res_bmp: dump_bitmap(top->res.bmp); break; case res_cur: dump_cursor(top->res.cur); break; case res_curg: dump_cursor_group(top->res.curg); break; case res_dlg: dump_dialog(top->res.dlg); break; case res_dlgex: dump_dialogex(top->res.dlgex); break; case res_fnt: dump_font(top->res.fnt); break; case res_icog: dump_icon_group(top->res.icog); break; case res_ico: dump_icon(top->res.ico); break; case res_men: dump_menu(top->res.men); break; case res_menex: dump_menuex(top->res.menex); break; case res_rdt: dump_rcdata(top->res.rdt); break; case res_stt: dump_stringtable(top->res.stt); break; case res_usr: dump_user(top->res.usr); break; case res_msg: dump_messagetable(top->res.msg); break; case res_ver: dump_versioninfo(top->res.ver); break; case res_dlginit: dump_dlginit(top->res.dlgi); break; case res_toolbar: dump_toolbar(top->res.tbt); break; case res_anicur: case res_aniico: dump_ani_curico(top->res.ani); break; default: printf("Report this: Unknown resource type parsed %08x\n", top->type); } printf("\n"); top = top->next; } }