[FONT=Times New Roman][FONT=Times New Roman].text:7E2C5D9D ; [/FONT]
[FONT=Times New Roman].text:7E2C5D9D push eax[/FONT]
[FONT=Times New Roman].text:7E2C5D9E lea eax, [ebx+0Ch][/FONT]
[FONT=Times New Roman].text:7E2C5DA1 push eax[/FONT]
[FONT=Times New Roman].text:7E2C5DA2 call CDispContainer::New(CDispClient *,ulong)[/FONT]
[/FONT]
[FONT=Times New Roman][FONT=Times New Roman].text:7E2B5D2A[/FONT][FONT=宋体] [/FONT][FONT=Times New Roman]CDispContainer::New[/FONT]
[FONT=宋体]..........................................................[/FONT]
[FONT=宋体].text:7E291CF0 movzx esi, ds:uchar const * const CDispNode::_extraSizeTable[ebx][/FONT]
[FONT=宋体].text:7E291CF7 shl esi, 2[/FONT]
[FONT=宋体].text:7E291CFA push edi[/FONT]
[FONT=宋体].text:7E291CFB add eax, esi[/FONT]
[FONT=宋体].text:7E291CFD push eax ; dwBytes[/FONT]
[FONT=宋体].text:7E291CFE call _MemAllocClear(x)[/FONT]
[FONT=宋体].text:7E291D03 mov edi, eax[/FONT]
[FONT=宋体].text:7E291D05 test edi, edi[/FONT]
[FONT=宋体].text:7E291D07 jz short loc_7E291D17[/FONT]
[FONT=宋体].text:7E291D09 add edi, esi[/FONT]
[FONT=宋体].text:7E291D0B test bl, 40h[/FONT]
[FONT=宋体].text:7E291D0E mov [edi+4], ebx <-------这里保存[/FONT][FONT=Times New Roman]CliprectInfo_size[/FONT][FONT=宋体]的大小[/FONT]
[/FONT]
[FONT=Times New Roman][FONT=Times New Roman]CHtmParse::ParseText[/FONT]
[FONT=Times New Roman]|[/FONT]
[FONT=Times New Roman] CHtmlParseClass *phpc;[/FONT]
[FONT=Times New Roman] phpc = HpcFromEtag(etag);[/FONT]
[FONT=Times New Roman] if (phpc->_atagProhibitedContainers)[/FONT]
[FONT=Times New Roman] {[/FONT]
[FONT=Times New Roman] hr=THR(CloseAllContainers(phpc->_atagProhibitedContainers, [/FONT][FONT=Times New Roman]phpc->_atagBeginContainers));[/FONT]
[FONT=Times New Roman] if (hr)[/FONT]
[FONT=Times New Roman] goto Cleanup;[/FONT]
[FONT=Times New Roman] }[/FONT]
[FONT=Times New Roman] hr = THR(OpenContainer(etag));[/FONT]
[/FONT]
[FONT=Times New Roman][FONT=Times New Roman]CHtmParse::OpenContainer[/FONT]
[FONT=Times New Roman]|[/FONT]
[FONT=Times New Roman]此时etagItem=0x62表示ETAG_TC,这时将创建一个CTableCaption对象[/FONT]
[FONT=Times New Roman]hr = THR(CreateElement(etagItem, &pel, _pDoc, _pMarkup, TRUE, &_fDie));[/FONT]
[FONT=Times New Roman]CreateElement函数根据etagItem=0x62去索引hash表g_atagdesc,查表[/FONT][FONT=宋体]得[/FONT][FONT=Times New Roman]具体的对象的[/FONT][FONT=Times New Roman]CreateElement函数接着CTableCaption::CreateElement函数将被调用[/FONT]
[/FONT]
[FONT=Times New Roman][FONT=Times New Roman]CTableCell::EnterTree[/FONT]
[FONT=Times New Roman]|[/FONT]
[FONT=Times New Roman]hr = pTableLayout->AddCaption(pCaption);导致 pTableLayout对象中存在标题[/FONT]
[/FONT]