GDI+ и GetThumbnailImage
От: Mephisto  
Дата: 13.08.02 16:23
Оценка:
Проблема: AbortThumbnail ни когда не вызывается, а по документации вроде как должна. Брал файлы по 20МБайт — ниразу не зашла в функцию, при этом картика отрисовывается без проблем. В чем ошибка? Может кто сталкивался с аналогичной проблемой? На всякий случай — версия GDIPlus.dll 5.1.3097.0

Упрошенный кусок исходника:

BOOL CALLBACK AbortThumbnail(void* callbackData)
{
    BOOL abort;
.
.
.
    if(abort) return TRUE;
    else return FALSE;
}

UINT MakeThumbnail(LPVOID lParam)
{
    CChildView *pWnd = (CChildView *)lParam;
    ASSERT(pWnd->IsKindOf(RUNTIME_CLASS(CChildView)));
    
    CDC* pDC = pWnd->GetDC();
    
    Graphics* graphics = new Graphics(pDC->m_hDC);
    Image* pImage = new Image(L"J:\\Samples\\Image 00001.bmp");

    UINT width = pImage->GetWidth();
    UINT height = pImage->GetHeight();

    Image* pThumbnail = pImage->GetThumbnailImage(width/20, height/20, AbortThumbnail, (void*)pWnd);
    graphics->DrawImage(pThumbnail, 0, 0, pThumbnail->GetWidth(), pThumbnail->GetHeight());

    delete pThumbnail;
    delete pImage;
    delete graphics;

    return 0;
}

void CChildView::CreateThumbnail() 
{
    m_pTThread = AfxBeginThread(MakeThumbnail, (LPVOID)this, THREAD_PRIORITY_LOWEST, 0, CREATE_SUSPENDED, NULL);
    m_pTThread->m_bAutoDelete = FALSE;
    m_pTThread->ResumeThread();
}


Заранее всем спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.