Я пытаюсь преобразовать IStream в HBITMAP, используя класс GDI+ Bitmap. Объект IStream заполняется с использованием данных из веб-службы. Я читаю данные по частям и добавляю их к объекту, который будет использоваться позже с классом Bitmap.
Вот соответствующая часть кода
char data1[] = "";
int offset = 0;
LPTSTR pszString = NULL;
LPSTREAM lpStream = NULL;
CreateStreamOnHGlobal(NULL, TRUE, &lpStream);
StreamStringCopy ((LPSTREAM)lpStream, (LPCTSTR)"");
while(of->pread(&data1,1023,offset) > 0){
LPCTSTR tempStr = data1;
StreamStringCat ((LPSTREAM)lpStream, tempStr);
offset = offset + strlen(data1);
}
Bitmap bm(lpStream,FALSE);
bm.GetHBITMAP(Color.Black, &ret);
StreamStringCat добавляет строку к объекту LPSTREAM, чтобы я мог получить один объект LPSTREAM.
Цикл работает нормально только в первый раз. При повторном входе в цикл while &data1 выдает исключение нарушения прав доступа.
Может кто-нибудь, пожалуйста, скажите мне, как я должен решить эту проблему. Спасибо.