Index: /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.cpp	(revision 54827)
+++ /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.cpp	(revision 54828)
@@ -337,5 +337,5 @@
 }
 
-STDMETHODIMP VBoxSDLFB::COMGETTER(PixelFormat) (ULONG *pixelFormat)
+STDMETHODIMP VBoxSDLFB::COMGETTER(PixelFormat) (BitmapFormat_T *pixelFormat)
 {
     if (!pixelFormat)
@@ -656,5 +656,5 @@
         ULONG ulBitsPerPixel = 0;
         ULONG ulBytesPerLine = 0;
-        ULONG ulPixelFormat = 0;
+        BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
         mpSourceBitmap->QueryBitmapInfo(&pAddress,
@@ -663,5 +663,5 @@
                                         &ulBitsPerPixel,
                                         &ulBytesPerLine,
-                                        &ulPixelFormat);
+                                        &bitmapFormat);
 
         if (   mGuestXRes    == ulWidth
Index: /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.h
===================================================================
--- /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.h	(revision 54827)
+++ /trunk/src/VBox/Frontends/VBoxSDL/Framebuffer.h	(revision 54828)
@@ -76,5 +76,5 @@
     STDMETHOD(COMGETTER(BitsPerPixel))(ULONG *bitsPerPixel);
     STDMETHOD(COMGETTER(BytesPerLine))(ULONG *bytesPerLine);
-    STDMETHOD(COMGETTER(PixelFormat)) (ULONG *pixelFormat);
+    STDMETHOD(COMGETTER(PixelFormat)) (BitmapFormat_T *pixelFormat);
     STDMETHOD(COMGETTER(HeightReduction)) (ULONG *heightReduction);
     STDMETHOD(COMGETTER(Overlay)) (IFramebufferOverlay **aOverlay);
Index: /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp	(revision 54827)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp	(revision 54828)
@@ -181,5 +181,5 @@
     STDMETHOD(COMGETTER(BitsPerPixel))(ULONG *puBitsPerPixel);
     STDMETHOD(COMGETTER(BytesPerLine))(ULONG *puBytesPerLine);
-    STDMETHOD(COMGETTER(PixelFormat))(ULONG *puPixelFormat);
+    STDMETHOD(COMGETTER(PixelFormat))(BitmapFormat_T *puPixelFormat);
     STDMETHOD(COMGETTER(HeightReduction))(ULONG *puHeightReduction);
     STDMETHOD(COMGETTER(Overlay))(IFramebufferOverlay **ppOverlay);
@@ -658,9 +658,9 @@
 }
 
-STDMETHODIMP UIFrameBufferPrivate::COMGETTER(PixelFormat)(ULONG *puPixelFormat)
+STDMETHODIMP UIFrameBufferPrivate::COMGETTER(PixelFormat)(BitmapFormat_T *puPixelFormat)
 {
     if (!puPixelFormat)
         return E_POINTER;
-    *puPixelFormat = pixelFormat();
+    *puPixelFormat = (BitmapFormat_T)pixelFormat();
     return S_OK;
 }
@@ -1181,5 +1181,5 @@
         ULONG ulBitsPerPixel = 0;
         ULONG ulBytesPerLine = 0;
-        ULONG ulPixelFormat = 0;
+        KBitmapFormat bitmapFormat = KBitmapFormat_Opaque;
         m_sourceBitmap.QueryBitmapInfo(pAddress,
                                        ulWidth,
@@ -1187,5 +1187,5 @@
                                        ulBitsPerPixel,
                                        ulBytesPerLine,
-                                       ulPixelFormat);
+                                       bitmapFormat);
         Assert(ulBitsPerPixel == 32);
 
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 54827)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 54828)
@@ -1330,5 +1330,5 @@
   <enum
     name="BitmapFormat"
-    uuid="2526302a-cd88-4491-8637-ae50b9804fbc"
+    uuid="afb2bf39-8b1e-4f9f-8948-d1b887f83eb0"
     >
     <desc>
@@ -1345,5 +1345,15 @@
     <const name="BGR"             value="0x20524742">
       <desc>
-        Generic BGR format. Pixel layout depends on the number of bits per pixel.
+        Generic BGR format without alpha channel.
+        Pixel layout depends on the number of bits per pixel:
+        <ul>
+          <li>
+            <b>32</b> - bits 31:24 undefined, bits 23:16 R, bits 15:8 G, bits 7:0 B.
+          </li>
+
+          <li>
+            <b>16</b> - bits 15:11 R, bits 10:5 G, bits 4:0 B.
+          </li>
+        </ul>
       </desc>
     </const>
@@ -1366,4 +1376,9 @@
       <desc>
         PNG image.
+      </desc>
+    </const>
+    <const name="JPEG"            value="0x4745504A">
+      <desc>
+        JPEG image.
       </desc>
     </const>
@@ -15506,5 +15521,5 @@
   <interface
     name="IDisplaySourceBitmap" extends="$unknown" wsmap="suppress"
-    uuid="b00907f7-d85e-4dce-b1a6-16a2d91b0269"
+    uuid="0b78daeb-f52f-43b9-99e8-4a3c226cbe2d"
     >
     <attribute name="screenId" type="unsigned long" readonly="yes"/>
@@ -15516,5 +15531,5 @@
       <param name="bitsPerPixel" type="unsigned long" dir="out"/>
       <param name="bytesPerLine" type="unsigned long" dir="out"/>
-      <param name="pixelFormat" type="unsigned long" dir="out"/>
+      <param name="bitmapFormat" type="BitmapFormat" dir="out"/>
     </method>
 
@@ -15550,5 +15565,5 @@
   <interface
     name="IFramebuffer" extends="$unknown"
-    uuid="735365aa-544d-415c-a25b-a5ea913d63f3"
+    uuid="dd07f843-be2e-4cae-83fe-8bf5d33c80e9"
     wsmap="managed"
     >
@@ -15573,5 +15588,5 @@
     </attribute>
 
-    <attribute name="pixelFormat" type="unsigned long" readonly="yes">
+    <attribute name="pixelFormat" type="BitmapFormat" readonly="yes">
       <desc>
         Frame buffer pixel format. It's one of the values defined by <link
Index: /trunk/src/VBox/Main/include/DisplayImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/DisplayImpl.h	(revision 54827)
+++ /trunk/src/VBox/Main/include/DisplayImpl.h	(revision 54828)
@@ -532,5 +532,5 @@
                                     ULONG *aBitsPerPixel,
                                     ULONG *aBytesPerLine,
-                                    ULONG *aPixelFormat);
+                                    BitmapFormat_T *aBitmapFormat);
 
     int initSourceBitmap(unsigned aScreenId, DISPLAYFBINFO *pFBInfo);
@@ -549,5 +549,5 @@
         ULONG ulBitsPerPixel;
         ULONG ulBytesPerLine;
-        ULONG ulPixelFormat;
+        BitmapFormat_T bitmapFormat;
     };
 
Index: /trunk/src/VBox/Main/src-client/ConsoleVRDPServer.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/ConsoleVRDPServer.cpp	(revision 54827)
+++ /trunk/src/VBox/Main/src-client/ConsoleVRDPServer.cpp	(revision 54828)
@@ -1097,5 +1097,5 @@
         ULONG ulBitsPerPixel = 0;
         ULONG ulBytesPerLine = 0;
-        ULONG ulPixelFormat = 0;
+        BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
         hr = server->maSourceBitmaps[uScreenId]->QueryBitmapInfo(&pAddress,
@@ -1104,5 +1104,5 @@
                                                                  &ulBitsPerPixel,
                                                                  &ulBytesPerLine,
-                                                                 &ulPixelFormat);
+                                                                 &bitmapFormat);
 
         if (SUCCEEDED(hr))
Index: /trunk/src/VBox/Main/src-client/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 54827)
+++ /trunk/src/VBox/Main/src-client/DisplayImpl.cpp	(revision 54828)
@@ -933,5 +933,5 @@
             ULONG ulBitsPerPixel = 0;
             ULONG ulBytesPerLine = 0;
-            ULONG ulPixelFormat = 0;
+            BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
             hr = pSourceBitmap->QueryBitmapInfo(&pAddress,
@@ -940,5 +940,5 @@
                                                 &ulBitsPerPixel,
                                                 &ulBytesPerLine,
-                                                &ulPixelFormat);
+                                                &bitmapFormat);
             if (SUCCEEDED(hr))
             {
@@ -2407,5 +2407,5 @@
                     ULONG ulBitsPerPixel = 0;
                     ULONG ulBytesPerLine = 0;
-                    ULONG ulPixelFormat = 0;
+                    BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
                     HRESULT hrc = pFBInfo->pSourceBitmap->QueryBitmapInfo(&pAddress,
@@ -2414,5 +2414,5 @@
                                                                           &ulBitsPerPixel,
                                                                           &ulBytesPerLine,
-                                                                          &ulPixelFormat);
+                                                                          &bitmapFormat);
                     if (SUCCEEDED(hrc))
                     {
@@ -2546,5 +2546,5 @@
                     ULONG ulBitsPerPixel = 0;
                     ULONG ulBytesPerLine = 0;
-                    ULONG ulPixelFormat = 0;
+                    BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
                     HRESULT hrc = pFBInfo->pSourceBitmap->QueryBitmapInfo(&pAddress,
@@ -2553,5 +2553,5 @@
                                                                           &ulBitsPerPixel,
                                                                           &ulBytesPerLine,
-                                                                          &ulPixelFormat);
+                                                                          &bitmapFormat);
                     if (SUCCEEDED(hrc))
                     {
@@ -2758,5 +2758,5 @@
                 ULONG ulBitsPerPixel = 0;
                 ULONG ulBytesPerLine = 0;
-                ULONG ulPixelFormat = 0;
+                BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
                 obj->QueryBitmapInfo(&pAddress,
@@ -2765,5 +2765,5 @@
                                      &ulBitsPerPixel,
                                      &ulBytesPerLine,
-                                     &ulPixelFormat);
+                                     &bitmapFormat);
 
                 mpDrv->IConnector.pu8Data    = pAddress;
@@ -3785,5 +3785,5 @@
             ULONG ulBitsPerPixel = 0;
             ULONG ulBytesPerLine = 0;
-            ULONG ulPixelFormat = 0;
+            BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
             HRESULT hrc = pFBInfo->pSourceBitmap->QueryBitmapInfo(&pAddress,
@@ -3792,5 +3792,5 @@
                                                                   &ulBitsPerPixel,
                                                                   &ulBytesPerLine,
-                                                                  &ulPixelFormat);
+                                                                  &bitmapFormat);
             if (SUCCEEDED(hrc))
             {
Index: /trunk/src/VBox/Main/src-client/DisplaySourceBitmapImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DisplaySourceBitmapImpl.cpp	(revision 54827)
+++ /trunk/src/VBox/Main/src-client/DisplaySourceBitmapImpl.cpp	(revision 54828)
@@ -58,5 +58,5 @@
     m.ulBitsPerPixel = 0;
     m.ulBytesPerLine = 0;
-    m.ulPixelFormat = 0;
+    m.bitmapFormat = BitmapFormat_Opaque;
 
     int rc = initSourceBitmap(uScreenId, pFBInfo);
@@ -100,5 +100,5 @@
                                              ULONG *aBitsPerPixel,
                                              ULONG *aBytesPerLine,
-                                             ULONG *aPixelFormat)
+                                             BitmapFormat_T *aBitmapFormat)
 {
     HRESULT hr = S_OK;
@@ -110,5 +110,5 @@
     *aBitsPerPixel = m.ulBitsPerPixel;
     *aBytesPerLine = m.ulBytesPerLine;
-    *aPixelFormat  = m.ulPixelFormat;
+    *aBitmapFormat  = m.bitmapFormat;
 
     return hr;
@@ -130,5 +130,5 @@
     ULONG ulBitsPerPixel = 0;
     ULONG ulBytesPerLine = 0;
-    ULONG ulPixelFormat = 0;
+    BitmapFormat_T bitmapFormat = BitmapFormat_Opaque;
 
     if (pFBInfo->pu8FramebufferVRAM && pFBInfo->u16BitsPerPixel == 32)
@@ -141,5 +141,5 @@
         ulBitsPerPixel = pFBInfo->u16BitsPerPixel;
         ulBytesPerLine = pFBInfo->u32LineSize;
-        ulPixelFormat  = 0;
+        bitmapFormat   = BitmapFormat_BGR;
         m.pu8Allocated = NULL;
     }
@@ -153,5 +153,5 @@
         ulBitsPerPixel = 32;
         ulBytesPerLine = ulWidth * 4;
-        ulPixelFormat  = 0;
+        bitmapFormat   = BitmapFormat_BGR;
 
         m.pu8Allocated = (uint8_t *)RTMemAlloc(ulBytesPerLine * ulHeight);
@@ -173,5 +173,5 @@
         m.ulBitsPerPixel = ulBitsPerPixel;
         m.ulBytesPerLine = ulBytesPerLine;
-        m.ulPixelFormat = ulPixelFormat;
+        m.bitmapFormat = bitmapFormat;
     }
 
