Я пытаюсь преобразовать 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 дает исключение нарушения доступа.
Может кто-нибудь подскажите, пожалуйста, как мне решить эту проблему.
Благодаря.