示例#1
0
Bool WClipMenuItem( WMenuEditInfo *einfo, Bool cut )
{
    HWND        lbox;
    LRESULT     index;
    void        *data;
    uint_32     dsize;
    WMenuEntry  *entry;
    Bool        ok;

    data = NULL;
    ok = (einfo != NULL);

    if( ok ) {
        lbox = GetDlgItem( einfo->edit_dlg, IDM_MENUEDLIST );
        ok = (lbox != (HWND)NULL);
    }

    if( ok ) {
        index = SendMessage( lbox, LB_GETCURSEL, 0, 0 );
        ok = (index != LB_ERR);
    }

    if( ok ) {
        entry = (WMenuEntry *)SendMessage( lbox, LB_GETITEMDATA, (WPARAM)index, 0 );
        ok = (entry != NULL);
    }

    if( ok ) {
        ok = WMakeClipDataFromMenuEntry( entry, &data, &dsize );
    }

    if( ok ) {
        ok = WCopyClipData( einfo->win, WItemClipbdFormat, data, dsize );
    }

    if( ok ) {
        if( cut ) {
            ok = WDeleteMenuEntry( einfo );
        }
    }

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

    return( ok );
}
示例#2
0
bool WClipAccelItem( WAccelEditInfo *einfo, bool cut )
{
    HWND        lbox;
    box_pos     pos;
    WAccelEntry *entry;
    void        *data;
    uint_32     dsize;
    bool        ok;

    data = NULL;
    ok = (einfo != NULL);

    if( ok ) {
        lbox = GetDlgItem( einfo->edit_dlg, IDM_ACCEDLIST );
        ok = (lbox != (HWND)NULL);
    }

    if( ok ) {
        pos = (box_pos)SendMessage( lbox, LB_GETCURSEL, 0, 0 );
        ok = (pos != LB_ERR);
    }

    if( ok ) {
        entry = (WAccelEntry *)SendMessage( lbox, LB_GETITEMDATA, pos, 0 );
        ok = (entry != NULL);
    }

    if( ok ) {
        ok = WMakeEntryClipData( entry, &data, &dsize );
    }

    if( ok ) {
        ok = WCopyClipData( einfo->win, WItemClipbdFormat, data, dsize );
    }

    if( ok ) {
        if( cut ) {
            ok = WDeleteAccelEntry( einfo );
        }
    }

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

    return( ok );
}