OK. I made a version of RibbonSample_vc60 that will crash but not in quite
in the same way. I compiled with VC6 SP3.
http://forum.codejock.com/uploads/20070115_153442_RibbonSample2.zip - uploads/20070115_153442_RibbonSample2.zip
This sample starts 4 threads that each own a modeless CDialog (in this sample, these threads leak but that is ok).
All 4 modeless diaogs are on top of each other so move them so you see all of them.
On the ribbon, use the "Skin Test" group to rapidly change between the various skins (click between them quickly). You will get the crash within 20 clicks. Also, notice that the 10 progress bars on each of the modeless dialog bars are not painting correctly if using a skin (paint fine if no skin).
Stack dump:
memcpy(unsigned char * 0xfeeefeee, unsigned char * 0x01cbd909, unsigned long 57) line 242 png_combine_row(png_struct_def * 0x01cbd4d8, unsigned char * 0xfeeefeee, int 255) line 2258 + 114 bytes png_read_row(png_struct_def * 0x01cbd4d8, unsigned char * 0xfeeefeee, unsigned char * 0x00000000) line 778 + 18 bytes png_read_image(png_struct_def * 0x01cbd4d8, unsigned char * * 0x01cbdd90) line 890 + 17 bytes PngLoadImage(CFile * 0x0298f398 {pos=350 size=366}, unsigned char * * 0x0298f334, unsigned long * 0x0298f330, unsigned long * 0x0298f32c, int * 0x0298f328, png_color_struct * 0x00000000) line 201 + 16 bytes CXTPGraphicBitmapPng::LoadFromFile(CFile * 0x0298f398 {pos=350 size=366}) line 341 + 29 bytes CXTPGraphicBitmapPng::LoadFromResource(HINSTANCE__ * 0x10000000, HRSRC__ * 0x100024f0) line 325 + 12 bytes CXTPImageManagerIcon::LoadBitmapFromResource(HINSTANCE__ * 0x10000000, const char * 0x01cbcf5c, int * 0x0298f578) line 741 + 16 bytes XTPSkinFrameworkLoadBitmap(HINSTANCE__ * 0x10000000, const char * 0x01cbcf5c, int & 0) line 442 + 17 bytes CXTPSkinImage::LoadFile(HINSTANCE__ * 0x10000000, const char * 0x01cbcf5c) line 206 + 17 bytes CXTPSkinManagerResourceFile::LoadImageA(CString {"BLUE_PROGRESSTRACK_BMP"}) line 211 + 26 bytes CXTPSkinImages::LoadFile(CXTPSkinManagerResourceFile * 0x003360f8, const char * 0x01cbcef4) line 515 + 29 bytes CXTPSkinManagerSchemaDefault::DrawThemeBackground(CDC * 0x0298f984 {hDC=??? attrib=???}, CXTPSkinManagerClass * 0x01cba2d0, int 1, int 0, const tagRECT * 0x0298f9b4 {top=0 bottom=23 left=0 right=258}) line 754 + 36 bytes CXTPSkinManagerClass::DrawThemeBackground(CDC * 0x0298f984 {hDC=??? attrib=???}, int 1, int 0, const tagRECT * 0x0298f9b4 {top=0 bottom=23 left=0 right=258}) line 792 + 47 bytes CXTPSkinObjectProgress::OnPaint() line 119 CWnd::OnWndMsg(unsigned int 15, unsigned int 0, long 0, long * 0x0298fc8c) line 1825 CXTPSkinObject::OnHookMessage(unsigned int 15, unsigned int & 0, long & 0, long & 0) line 278 + 36 bytes CXTPSkinObjectFrame::OnHookMessage(unsigned int 15, unsigned int & 0, long & 0, long & 0) line 850 CXTPSkinManager::HookWndProc(HWND__ * 0x00370c22, unsigned int 15, unsigned int 0, long 0) line 576 + 32 bytes USER32! 77d48734() USER32! 77d48816() USER32! 77d4b4c0() USER32! 77d4b50c() NTDLL! 7c90eae3() USER32! 77d496c7() CWinThread::PumpMessage() line 846 CWinThread::Run() line 480 + 11 bytes _AfxThreadEntry(void * 0x0012eb50) line 125 + 11 bytes _threadstartex(void * 0x01d25f20) line 212 + 13 bytes CXTPSkinManagerApiHook::ThreadProcHook(void * 0x01d71d58) line 775 + 9 bytes KERNEL32! 7c80b683()
|