Реферат: Работа с объектами большого объема в MS SQL и ADO
}
//Загружаем картинку из Stream-а
CComQIPtr<IStream> strm(stream);
if (strm){
hr = OleLoadPicture(strm,0,TRUE,IID_IPicture,(void**)pic);
if (FAILED(hr)){
ShowError();
return;
}
}
}
Для того чтобы подобный код работал, необходимо подключить заголовочный файл adoint.h. Можно было воспользоваться директивой import для генерирования удобных оберток над соответствующими объектами и методами ADO. Пример получился бы проще, но тогда вы могли упустить кое-какие детали.
В примере производится загрузка изображения из базы данных в объект, поддерживающий интерфейс IPicture. Этот интерфейс позволит вам в дальнейшем выводит (рендерить) изображение или сохранять его на диск в различных форматах. Вывод изображения на экран делается примерно так (обработчик WM_PAINT):
LRESULT CMainDlg::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { CPaintDC dc(m_hWnd); if (pic){ OLE_XSIZE_HIMETRIC SizeX; OLE_YSIZE_HIMETRIC SizeY; pic->get_Height(&SizeY); pic->get_Width(&SizeX); RECT rc; GetClientRect(&rc); //Собственно вывод pic->Render(dc,0,0,rc.right,rc.bottom,0,SizeY,SizeX,-SizeY,NULL); } return 0; } |
Загружать файл в базу на С++ примерно так же просто, как и получать:
К-во Просмотров: 668
Бесплатно скачать Реферат: Работа с объектами большого объема в MS SQL и ADO
|