StretchDIBits返回值为0!显示不出图像。Help~该怎么处理

StretchDIBits返回值为0!!???显示不出图像。Help~~~ - C++ Builder / Windows SDK/API
在C++ Builder中,我利用StretchDIBits来显示解码后的264视频图像。同样的视频,同样的操作,大多数时间都能显示图像。但是,少数时间显示不出来图像该函数返回值为0。
代码如下:
  HDC hdc= ::GetDC(Form1->Panel1->Handle);

  ::SetStretchBltMode(hdc,STRETCH_DELETESCANS);

  BITMAPINFO bif ;
  memset(&bif, 0, sizeof(BITMAPINFOHEADER)+sizeof(RGBQUAD));
  bif.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
  bif.bmiHeader.biWidth = Imageinfo[1];//图像宽
  bif.bmiHeader.biHeight = Imageinfo[0];//图像高
  bif.bmiHeader.biPlanes = 1;
  bif.bmiHeader.biBitCount = 24;
  bif.bmiHeader.biCompression = BI_RGB;
  bif.bmiHeader.biSizeImage = Imagedata_size;//宽*高*3
  bif.bmiHeader.biXPelsPerMeter = 0;
  bif.bmiHeader.biYPelsPerMeter = 0;
  bif.bmiHeader.biClrUsed = 0;
  bif.bmiHeader.biClrImportant = 0;

  int i=::StretchDIBits(hdc,0,0,Imageinfo[1],Imageinfo[0],
  0,0,Imageinfo[1],Imageinfo[0],
  pImagedata/*图像数据*/,&bif,DIB_RGB_COLORS, SRCCOPY);  
  //有时不显示图像

  delete[] pImagedata;
  DeleteDC(hdc);

------解决方案--------------------
183的错误表示"当文件已存在时,无法创建该文件。" 好奇怪. 确认是StretchDIBits函数执行后的GetLastError吗?