Пример #1
0
/*
 * mmioClose - cover for mmsystem function mmioClose
 */
UINT PASCAL mmioClose( HMMIO hmmio, UINT flags )
{
    UINT                rc;
    LPMMINFOLIST        curr,prev;

    rc = __mmioClose( hmmio, flags );

    curr = mminfoListHead;
    prev = NULL;
    while( curr != NULL ) {
        if( curr->handle == hmmio ) {
            DPMIFreeHugeAlias( curr->alias, curr->size );
            if( prev == NULL ) {
                mminfoListHead = curr->next;
            } else {
                prev->next = curr->next;
            }
            free( curr );
            break;
        }
        prev = curr;
        curr = curr->next;
    }
    return( rc );

} /* mmioOpen */
Пример #2
0
/*
 * __GetBitmapBits - make sure to get alias right for bits
 */
LONG FAR PASCAL __GetBitmapBits( HBITMAP bm, DWORD dw, LPSTR bits )
{
    DWORD       alias;
    LONG        rc;

    DPMIGetHugeAlias( (DWORD) bits, &alias, dw );
    rc = GetBitmapBits( bm, dw, (LPSTR) alias );
    DPMIFreeHugeAlias( alias, dw );
    return( rc );

} /* __GetBitmapBits */
Пример #3
0
/*
 * mmioWrite - cover for mmsystem function mmioWrite
 */
LONG PASCAL mmioWrite( HMMIO hmmio, const char *pch, LONG cch )
{
    LONG        rc;
    DWORD       alias;

    DPMIGetHugeAlias( (DWORD) pch, &alias, cch );
    rc = __mmioWrite( hmmio, (HPSTR) alias, cch );
    DPMIFreeHugeAlias( alias, cch );
    return( rc );

} /* mmioWrite */
Пример #4
0
/*
 * mmioRead - cover for mmsystem function mmioRead
 */
LONG PASCAL mmioRead( HMMIO hmmio, HPSTR pch, LONG cch )
{
    LONG        rc;
    DWORD       alias;

    DPMIGetHugeAlias( (DWORD) pch, &alias, cch );
    rc = __mmioRead( hmmio, (HPSTR) alias, cch );
    DPMIFreeHugeAlias( alias, cch );
    return( rc );

} /* mmioRead */
Пример #5
0
/*
 * __CreateBitmap - cover for CreateBitmap, makes sure lpbits are ok
 */
HBITMAP FAR PASCAL __CreateBitmap(int height, int width, BYTE nplanes,
                        BYTE bitcount, DWORD lpbits )
{
    DWORD       alias,size;
    HBITMAP     rc;

    size = (DWORD)nplanes * (DWORD)height * (DWORD)width * (DWORD)bitcount;
    size = (size + 7) >> 3;
    DPMIGetHugeAlias( (DWORD) lpbits, &alias, size );
    rc = CreateBitmap( height, width, nplanes, bitcount, (LPVOID) alias );
    DPMIFreeHugeAlias( alias, size );
    return( rc );

} /* CreateBitmap */
Пример #6
0
/*
 * __GetDIBits - make sure the right alias gets in for lpbits
 */
int FAR PASCAL __GetDIBits(HDC hdc,HANDLE hbitmap,WORD start,WORD num,
                LPSTR lpbits ,LPBITMAPINFO bmi,WORD usage)
{
    DWORD       size;
    DWORD       alias;
    int         rc;

    size = (DWORD) num * getScanLineSize( &bmi->bmiHeader );
    DPMIGetHugeAlias( (DWORD) lpbits, &alias, size );
    rc = GetDIBits( hdc, hbitmap, start, num, (LPSTR) alias, bmi, usage );
    DPMIFreeHugeAlias( alias, size );
    return( rc );

} /* __GetDIBits */
Пример #7
0
/*
 * __SetDIBitsToDevice - make sure the right alias gets in for lpbits
 */
int FAR PASCAL __SetDIBitsToDevice(HDC hdc,WORD destx,WORD desty,
                                        WORD width,WORD height,
                                        WORD srcx,WORD srcy,WORD start,
                                        WORD num, LPSTR lpbits,
                                        LPBITMAPINFO bmi,WORD usage )
{
    DWORD       size;
    DWORD       alias;
    int         rc;

    size = (DWORD) num * getScanLineSize( &bmi->bmiHeader );
    DPMIGetHugeAlias( (DWORD) lpbits, &alias, size );
    rc = SetDIBitsToDevice( hdc, destx, desty, width, height, srcx, srcy,
                start, num, (LPSTR) alias, bmi, usage );
    DPMIFreeHugeAlias( alias, size );
    return( rc );

} /* __SetDIBitsToDevice */
Пример #8
0
/*
 * __StretchDIBits
 */
int FAR PASCAL __StretchDIBits( HDC hdc, WORD destx, WORD desty,
                  WORD destwidth, WORD destheight, WORD srcx, WORD srcy,
                  WORD srcwidth, WORD srcheight, DWORD lpbits,
                  LPBITMAPINFO lpbitsinfo, WORD usage, DWORD rop )
{
    DWORD       size;
    DWORD       alias;
    int         rc;

//    size = (DWORD) srcheight * getScanLineSize( &lpbitsinfo->bmiHeader );
    size = (DWORD) lpbitsinfo->bmiHeader.biHeight * getScanLineSize( &lpbitsinfo->bmiHeader );
    DPMIGetHugeAlias( (DWORD) lpbits, &alias, size );

    rc = StretchDIBits( hdc, destx, desty, destwidth, destheight, srcx,
          srcy, srcwidth, srcheight, (LPVOID) alias, lpbitsinfo, usage, rop );
    DPMIFreeHugeAlias( alias, size );
    return( rc );

} /* __StretchDIBits */
Пример #9
0
/*
 * __CreateBitmapIndirect - cover for CreateBitmapIndirect
 */
HBITMAP FAR PASCAL __CreateBitmapIndirect( LPBITMAP bm )
{
    HBITMAP     rc;
    DWORD       alias,size;
    LPSTR       old;

    size = (DWORD) bm->bmHeight * (DWORD) bm->bmWidthBytes;
    size *= (DWORD) bm->bmPlanes;
    DPMIGetHugeAlias( (DWORD) bm->bmBits, &alias, size );
    old = bm->bmBits;
    bm->bmBits = (LPSTR) alias;

    rc = CreateBitmapIndirect( bm );

    DPMIFreeHugeAlias( alias, size );
    bm->bmBits = old;

    return( rc );

} /* __CreateBitmapIndirect */
Пример #10
0
/*
 * __CreateDIBitmap - make sure to get alias right for lpInitBits
 */
HBITMAP FAR PASCAL __CreateDIBitmap( HDC hDC, LPBITMAPINFOHEADER lpInfoHeader,
                        DWORD dwUsage,DWORD lpInitBits,
                        LPBITMAPINFO lpInitInfo, WORD wUsage )
{
    DWORD       size;
    DWORD       alias;
    HBITMAP     rc;

    if( lpInitBits != 0L ) {
        size = (DWORD) lpInitInfo->bmiHeader.biHeight *
                        getScanLineSize( &lpInitInfo->bmiHeader );
        DPMIGetHugeAlias( (DWORD) lpInitBits, &alias, size );
    } else {
        alias = 0;
    }
    rc = CreateDIBitmap( hDC, lpInfoHeader, dwUsage,
                        (LPSTR) alias,
                        lpInitInfo, wUsage );
    if( alias != 0 ) {
        DPMIFreeHugeAlias( alias, size );
    }
    return( rc );

} /* __CreateDIBitmap */