I am looking for 3.5 version on Signature application
which could run both on 3.1 and 3.5.   

I hava an application which I need to run on both os
3.1 and 3.5,  I need to save and retreive Bitmap.  

Following code I am using to save and display the Bmp.
Its works fine with 3.1 but with 3.5 it is displaying
the bmp with whole white color. I am using sdk 3.5.  


Thanks 
Nimesh.

//======= To Draw Bitmap ===============
WinDrawBitmap((BitmapPtr)blob, 38, 38);


/*===== To save  BMP ======
Checking the version of Os and setting the flag but
its not working with new BMP APIs and thats reason of 
commented
*/
static BitmapPtr PrvGetBitmap (WinHandle winH, UInt32
*sizeP,RectangleType* theBoundsPtr, Err *errorP)
{
        UInt16          width, height;
        UInt16          rowBytes;
        BitmapPtr       bitmapP;
        UInt8           depth;
        WindowType  *winP;

        *errorP = 0;
        *sizeP = 0;
        
        // can we use the new window functions?
        /*
        if (newAPI)
                {
                BitmapPtr winBmpP =
WinGetBitmap(WinGetDrawWindow());
                ColorTableType *clrTableP =
BmpGetColortable(winBmpP);
                UInt8 depth = winBmpP->pixelSize;
                WinHandle winH;
                
                // we create a bitmap and then make a window to it
so that we can 
                // create a bitmap whose depth does not match that
of the screen

                bitmapP = BmpCreate(theBoundsPtr->extent.x,
theBoundsPtr->extent.y, depth, clrTableP, errorP);      
                if (!*errorP)
                        {       
                        winH = WinCreateBitmapWindow(bitmapP,errorP);
                        }
                if (!*errorP)
                        {
                        // copy draw area into the bitmap
                        WinCopyRectangle (WinGetDrawWindow(), winH,
theBoundsPtr, 0, 0, winPaint);
                
                        WinDeleteWindow(winH,false);
        
                        // compress the bitmap 
                         *errorP =
BmpCompress(bitmapP,BitmapCompressionTypeScanLine);
                
                        // get the size of the bitmap
                        *sizeP = BmpSize(bitmapP);
                        }
                } 
        else
        */
                {
                        //if (newAPI ) {
                        //      BitmapPtr winBmpP =
WinGetBitmap(WinGetDrawWindow());
                        //      UInt8 depth = winBmpP->pixelSize;
                        //} else {
                                depth = 1; // assume one pixel depth
                        //}

                winP = WinGetWindowHandle(winH);

                width = winP->windowBounds.extent.x;
                height = winP->windowBounds.extent.y;
                
                        
                if ((width == 0) || (height == 0))
                {       *errorP = memErrNotEnoughSpace;
                        return NULL;
                }
                // Create a display buffer for the window.  Round
the line width
                // up to an even word boundary. 
                rowBytes = ((((width*depth)+15) >> 4) << 1);
                *sizeP = (rowBytes * height) + sizeof(BitmapType);
                // note that we do NOT output a color map here...
                
                bitmapP = (BitmapPtr) MemPtrNew(*sizeP);        
                if (! bitmapP)
                {       *errorP = memErrNotEnoughSpace;
                        return NULL;
                }
                        
                MemSet(bitmapP,*sizeP,0);  // erase it ...
                

                bitmapP->width = width;
                bitmapP->height = height;
                bitmapP->rowBytes = rowBytes;
                bitmapP->pixelSize = depth;
                bitmapP->version = 1;
                // copy the bitmap contents from the offscreen
window
                // The only way to do this on older ROMS is to
acesss the obsolete v20 field.
                MemMove(bitmapP+1,winP->displayAddrV20, rowBytes *
height);
                }
        return (bitmapP);
}



__________________________________________________
Do You Yahoo!?
Thousands of Stores.  Millions of Products.  All in one Place.
http://shopping.yahoo.com/


-- 
For information on using the ACCESS Developer Forums, or to unsubscribe, please 
see http://www.access-company.com/developers/forums/

Reply via email to