Exemple #1
0
/*
 * readInResourceFile
 */
static bool readInResourceFile( char *fullname )
{
    BYTE                *data;
    uint_32             dsize;
    WRInfo              *info;
    WRSelectImageInfo   *sii;
    WPI_PROC            cb;
    bool                ok;

    info = NULL;
    sii = NULL;
    data = NULL;
    ok = (fullname != NULL);

    if( ok ) {
        info = WRLoadResource( fullname, WR_DONT_KNOW );
        ok = (info != NULL);
    }

    if( ok ) {
        cb = _wpi_makeprocinstance( (WPI_PROC)IEHelpCallBack, Instance );
        sii = WRSelectImage( HMainWindow, info, cb );
        _wpi_freeprocinstance( cb );
        ok = (sii != NULL && sii->lnode != NULL);
    }

    if( ok ) {
        if( sii->type == (uint_16)(pointer_int)RT_BITMAP ) {
            imgType = BITMAP_IMG;
            data = WRCopyResData( info, sii->lnode );
            dsize = sii->lnode->Info.Length;
            ok = (data != NULL);
            if( ok ) {
                ok = WRAddBitmapFileHeader( &data, &dsize );
            }
        } else if( sii->type == (uint_16)(pointer_int)RT_GROUP_CURSOR ) {
            imgType = CURSOR_IMG;
            ok = WRCreateCursorData( info, sii->lnode, &data, &dsize );
        } else if( sii->type == (uint_16)(pointer_int)RT_GROUP_ICON ) {
            imgType = ICON_IMG;
            ok = WRCreateIconData( info, sii->lnode, &data, &dsize );
        } else {
            imgType = UNDEF_IMG;
            ok = false;
        }
    }

    if( ok ) {
        if( sii->type == (uint_16)(pointer_int)RT_BITMAP ) {
            ok = ReadBitmapFromData( data, fullname, info, sii->lnode );
        } else if( sii->type == (uint_16)(pointer_int)RT_GROUP_CURSOR ) {
            ok = ReadCursorFromData( data, fullname, info, sii->lnode );
        } else if( sii->type == (uint_16)(pointer_int)RT_GROUP_ICON ) {
            ok = ReadIconFromData( data, fullname, info, sii->lnode );
        }
    }

    if( sii != NULL ) {
        WRFreeSelectImageInfo( sii );
    }

    if( data != NULL ) {
        MemFree( data );
    }

    return( ok );

} /* readInResourceFile */
Exemple #2
0
/*
 * IEStartDDEEditSession
 */
BOOL IEStartDDEEditSession( void )
{
    char                *filename;
    HDDEDATA            hData;
    void                *data;
    DWORD               ret;
    uint_32             size;
    BOOL                ok;

    data = NULL;
    filename = NULL;
    ok = (EditFormat != DDENone);

    if( ok ) {
        hData = DdeClientTransaction( NULL, 0, IEClientConv, hFileItem,
                                      IEClipFormats[EditFormat].format,
                                      XTYP_REQUEST, TIME_OUT, &ret );
        ok = (hData != (HDDEDATA)NULL);
    }

    if( ok ) {
        ok = IEHData2Mem( hData, (void **)&filename, &size );
        DdeFreeDataHandle( hData );
    }

    if( ok ) {
        hData = DdeClientTransaction( NULL, 0, IEClientConv, hDataItem,
                                      IEClipFormats[EditFormat].format,
                                      XTYP_REQUEST, TIME_OUT, &ret );
    }

    if( ok ) {
        if( hData != (HDDEDATA)NULL ) {
            ok = IEHData2Mem( hData, &data, &size );
            DdeFreeDataHandle( hData );
        }
    }

    if( ok ) {
        switch( EditFormat ) {
        case DDEBitmap:
            if( data != NULL ) {
                ok = ReadBitmapFromData( data, filename, NULL, NULL );
            } else {
                ok = NewImage( BITMAP_IMG, NULL );
            }
            break;
        case DDECursor:
            if( data != NULL ) {
                ok = ReadCursorFromData( data, filename, NULL, NULL );
            } else {
                ok = NewImage( CURSOR_IMG, NULL );
            }
            break;
        case DDEIcon:
            if( data != NULL ) {
                ok = ReadIconFromData( data, filename, NULL, NULL );
            } else {
                ok = NewImage( ICON_IMG, NULL );
            }
            break;
        default:
            ok = false;
            break;
        }
    }

    if( filename != NULL ) {
        MemFree( filename );
    }

    if( data != NULL ) {
        MemFree( data );
    }

    return( ok );

} /* IEStartDDEEditSession */