COM.MoveMemory(pvarChildren + 8, new int[] { childID + 1 }, 4);
COM.MoveMemory(pvarChildren + 8, new int[] { childIDToOs(childID) }, 4);
	int get_accSelection(int pvarChildren) {		if (iaccessible == null) return COM.CO_E_OBJNOTCONNECTED;		/* Get the default selection from the OS. */		int osChild = ACC.CHILDID_NONE;		int code = iaccessible.get_accSelection(pvarChildren);		if (accessibleControlListeners.size() == 0) return code;		if (code == COM.S_OK) {			short[] pvt = new short[1];			COM.MoveMemory(pvt, pvarChildren, 2);			if (pvt[0] == COM.VT_I4) {				int[] pChild = new int[1];				COM.MoveMemory(pChild, pvarChildren + 8, 4);				osChild = (pChild[0] == COM.CHILDID_SELF) ? ACC.CHILDID_SELF : pChild[0] - 1;			} else if (pvt[0] == COM.VT_UNKNOWN) {				osChild = ACC.CHILDID_MULTIPLE;				/* Should get IEnumVARIANT from punkVal field... need better API here... */			}		}		AccessibleControlEvent event = new AccessibleControlEvent(this);		event.childID = osChild;		for (int i = 0; i < accessibleControlListeners.size(); i++) {			AccessibleControlListener listener = (AccessibleControlListener) accessibleControlListeners.elementAt(i);			listener.getSelection(event);		}		Accessible accessible = event.accessible;		if (accessible != null) {			COM.MoveMemory(pvarChildren, new short[] { COM.VT_DISPATCH }, 2);			COM.MoveMemory(pvarChildren + 8, new int[] { accessible.objIAccessible.getAddress() }, 4);			return COM.S_OK;		}		int childID = event.childID;		if (childID == ACC.CHILDID_NONE) {			COM.MoveMemory(pvarChildren, new short[] { COM.VT_EMPTY }, 2);			return COM.S_FALSE;		}		if (childID == ACC.CHILDID_MULTIPLE) {			COM.MoveMemory(pvarChildren, new short[] { COM.VT_UNKNOWN }, 2);			/* Should return an IEnumVARIANT for this... so the next line is wrong... need better API here... */			COM.MoveMemory(pvarChildren + 8, new int[] { objIAccessible.getAddress() }, 4);			return COM.S_OK;		}		if (childID == ACC.CHILDID_SELF) {			COM.MoveMemory(pvarChildren, new short[] { COM.VT_DISPATCH }, 2);			COM.MoveMemory(pvarChildren + 8, new int[] { objIAccessible.getAddress() }, 4);			return COM.S_OK;		}		COM.MoveMemory(pvarChildren, new short[] { COM.VT_I4 }, 2);		COM.MoveMemory(pvarChildren + 8, new int[] { childID + 1 }, 4);		return COM.S_OK;	}