On 05/20/2013 01:50 PM, ???? wrote:
I tried to take a screen shot by takecSreenShot(),,but everytime when i trys it, display->TakeScreenShot fails,,and VisualBox.exe crashes.... I am sure that I can get the correct width and height of the screen "printf("Width: %ul Height: %ul Bits Per Pixel: %ul. ", width,height,bpp);"......
my vbox and SDK version are the same 4.1.6....
please help me ...thank U!!
///////here is the code..........bellow
int testTakeScreenShot(ISession *session)
{
    IConsole *console = NULL;
    IDisplay *display = NULL;
    IFramebuffer* fb=NULL;
    unsigned long width, height, bpp;
    SIZE_T buffersize;
    BYTE* databuff;
    HRESULT rc;
    if (session == NULL)
      return 1;
  /* Get console object. */
    rc=session->get_Console(&console);
    rc=console->get_Display(&display);
display->GetScreenResolution(0,&width,&height,&bpp);
printf("Width: %ul Height: %ul Bits Per Pixel: %ul. ", width,height,bpp);
    buffersize = width*height*bpp/8;
    databuff= (BYTE*)CoTaskMemAlloc(buffersize);
    printf("%p\n", databuff);

  // Test databuffer
  if (databuff != NULL)
  {
   rc = display->TakeScreenShot(0,databuff,width,height);
   if (SUCCEEDED(rc))
   {
    printf("Took a screenshot! %d\n", rc);
   }
   else
   {
    printf("Error taking screen shot! rc = 0x%x\n", rc);
   }
   CoTaskMemFree(databuff);
  }
 return 0;
}


_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Hello,
just for interest,
what was the value of bpp (Bits Per Pixel) in your case?

--
Valery Portnyagin | VirtualBox Developer | (+7 812) 334 64 26
Oracle Development SPB
10th Krasnoarmeyskaya 22A, Saint-Petersburg, 190103, Russia

_______________________________________________
vbox-dev mailing list
[email protected]
https://www.virtualbox.org/mailman/listinfo/vbox-dev

Reply via email to