Пример #1
0
int WResLoadResource( PHANDLE_INFO hinfo, UINT idType, UINT idResource,
                                        lpstr *lpszBuffer, size_t *bufferSize )
/*****************************************************************************/
{
    WResID              resource_type;
    WResID              resource_id;

    WResInitIDFromNum( idResource, &resource_id );
    WResInitIDFromNum( idType, &resource_type );

    return( WResLoadResource2( MainDir, hinfo, &resource_type, &resource_id, lpszBuffer, bufferSize ) );
}
Пример #2
0
extern int WResLoadResource2( WResDir            dir,
                                     PHANDLE_INFO       hInstance,
                                     UINT               idType,
                                     UINT               idResource,
                                     LPSTR              *lpszBuffer,
                                     int                *bufferSize )
/******************************************************************/
{
    int                 retcode;
    WResID              resource_type;
    WResID              resource_id;
    WResDirWindow       wind;
    WResLangInfo        *res;
    WResLangType        lang;
    char                *res_buffer;

    if( ( lpszBuffer == NULL ) || ( bufferSize == NULL ) ) {
        return( -1 );
    }

    lang.lang = DEF_LANG;
    lang.sublang = DEF_SUBLANG;
    WResInitIDFromNum( idResource, &resource_id );
    WResInitIDFromNum( (long)idType, &resource_type );

    wind = WResFindResource( &resource_type, &resource_id, dir, &lang );

    if( WResIsEmptyWindow( wind ) ) {
        retcode = -1;
    } else {
        res = WResGetLangInfo( wind );
        // lets make sure we dont perturb malloc into apoplectic fits
        if( res->Length >= INT_MAX ) {
            return( -1 );
        }
        res_buffer  = WRESALLOC( res->Length );
        *lpszBuffer = res_buffer;
        if( *lpszBuffer == NULL ) {
            return( -1 );
        }
        *bufferSize = (int)res->Length;
        retcode = GetResource( res, hInstance, res_buffer );
    }

    return( retcode );
}
Пример #3
0
WResID * WResIDFromNum( long newnum )
/***********************************/
/* allocate an ID and fill it in */
{
    WResID *    newid;

    if( (int_32)newnum < SHRT_MIN || ( newnum > 0 && newnum > USHRT_MAX ) ) {
        newid = NULL;
        WRES_ERROR( WRS_BAD_PARAMETER );
    } else {
        newid = WRESALLOC( sizeof( WResID ) );
        if( newid == NULL ) {
            WRES_ERROR( WRS_MALLOC_FAILED );
        } else {
            WResInitIDFromNum( newnum, newid );
        }
    }
    return( newid );
} /* WResIDFromNum */