Oh yeah, they do!
I went into the code(BC is open source), and it uses this GuiAdvancedSlot stuff. I'm going to try to explain it:
This appears to be the important part:
protected void mouseClicked(int i, int j, int k) {
super.mouseClicked(i, j, k);
int cornerX = (width - xSize) / 2;
int cornerY = (height - ySize) / 2;
int position = getSlotAtLocation(i - cornerX, j - cornerY);
IInventorySlot slot = null;
if (position != -1) {
slot = (IInventorySlot) slots[position];
}
if (slot != null) {
ItemStack playerStack = mc.thePlayer.inventory.getItemStack();
ItemStack newStack;
if (playerStack != null) {
newStack = playerStack.copy();
newStack.stackSize = 1;
} else {
newStack = null;
}
filterInventory.setInventorySlotContents(position, newStack);
if (CoreProxy.proxy.isRenderWorld(filterInventory.worldObj)) {
PacketSlotChange packet = new PacketSlotChange(PacketIds.EMERALD_PIPE_SELECT, filterInventory.xCoord, filterInventory.yCoord,
filterInventory.zCoord, position, newStack);
CoreProxy.proxy.sendToServer(packet.getPacket());
}
}
}
When the mouse is clicked in the GUI, it gets the slot at the location that was clicked(int i and int j seem to be the x and y of where they clicked). cornerX and cornerY I think are a thing to determine where the window is so it can know where it's clicked. Once it gets the slot where it's clicked, it checks if the slot number is not -1(I think that's the number that's returned if there's no slot where they clicked). If it isn't -1. it creates a new "slot" and sets it to the slot that was clicked. Then it gets the player's held item stack when they clicked, creates a copy of it, sets the stack size to one, and puts it in at the location.
The IInventorySlot is in the buildcraft.core.gui.GuiAdvancedInterface class; it extends the AdvancedSlot class. That class has this method:
public ItemStack getItemStack() {
return null;
}
This means that when the player tries to click and access the slot, it gives them nothing.
If you want to look at this code in more detail, check out Buildcraft's source code.