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 ); }
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 ); }