*    <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
 * </ul>
 */
public void remove (int [] indices) {
	checkWidget ();
	if (indices == null) SWT.error (SWT.ERROR_NULL_ARGUMENT);
	if (indices.length == 0) return;
	int [] newIndices = new int [indices.length];
	System.arraycopy (indices, 0, newIndices, 0, indices.length);
	sortDescent (newIndices);
	int start = newIndices [newIndices.length - 1], end = newIndices [0];
	if (!(0 <= start && start <= end && end < itemsCount)) {
		SWT.error (SWT.ERROR_INVALID_RANGE);
	}
	int lastRemovedIndex = -1;
	int[] eventData = new int[5];
	for (int i = 0; i < newIndices.length; i++) {
		if (newIndices [i] != lastRemovedIndex) {
			items [newIndices [i]].dispose ();
			eventData[0] = ACC.DELETE;
			eventData[1] = newIndices[i];
			eventData[2] = 1;
			eventData[3] = 0;
			eventData[4] = 0;
			getAccessible().sendEvent(ACC.EVENT_TABLE_CHANGED, eventData);
			lastRemovedIndex = newIndices [i];
		}
	}
}