Здравствуйте, c-smile, Вы писали:
CS>Что такое "Данные из дампа:"?
Наша дампилка, которая позволяет расшифровать GDI объекты на манер WinDBG.
Могу выслать полный дамп WinDBG.
CS>Какая версия htmlayout?
Мы используем HTMLayout 3.3.1.43. На версии 3.3.2.1 ситуация аналогичная.
CS>В любом случае:
CS>Запускаем browse.exe, грузим в него тестовый документ.
CS>Запускаем Process Explorer, открываем tab Properties / Performance на browse.exe.
CS>И жмем F5 в browse.exe — документ перегружается. Наблюдаем GDI handles counter.
CS>Если при этом ты наблюдаешь рост GDI handles counter, то я хотел бы увидеть тот документ что ты загрузил.
Мы используем MFC, поэтому я взял mfc_browse.exe.
В документе прописаны виджеты, которые mfc_browse никак не обрабатывает, поэтому я немного изменил код:
int CLayoutView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
m_pStatic = new CStatic();
m_pStatic->Create( _T( "" ),
WS_CHILD | WS_VISIBLE | WS_BORDER,
CRect( 0, 0, 0, 0 ),
this );
return 0;
}
LRESULT CLayoutView::OnCreateControl( LPNMHL_CREATE_CONTROL nm)
{
if ( nm && m_pStatic )
{
nm->outControlHwnd = m_pStatic->m_hWnd;
}
return 0;
}
LRESULT CLayoutView::OnDestroyControl( LPNMHL_DESTROY_CONTROL nm)
{
if ( nm )
{
nm->inoutControlHwnd = NULL;
}
return 0;
}
При каждом открытии утекает 1 GDI объект (по количеству виджетов). Если загрузить документ несколько раз через mfc_browse без виджетов, утечки нет.
HTML документа:
<html>
<custom>
<Cells>
<Cell Number="0" ID="{8FD23C81-23A0-4F9B-8A48-AF5F10E57B55}"/>
</Cells>
</custom>
<head>
<title></title>
<style>
body { margin: 0px; padding: 0px }
table#layout { width:100%; height:100%; padding: 3px; margin: 0px; background-color: #000000; background-image:url(res:"IDB_BACKGROUND"); background-repeat:repeat }
table#layout > tr > td { overflow-x: hidden; border: 0px solid white; padding: 3px; margin: 0px; vertical-align: top; }
table#layout > tr > td:nth-child(1) { width: 100%; height: 100%; padding: 1px; }
</style>
</head>
<body>
<table #layout>
<tr>
<td>
<widget type="videownd" style="height:100%; width:100%" id="{8FD23C81-23A0-4F9B-8A48-AF5F10E57B55}"/>
</td>
</tr>
</table>
</body>
</html>