Copiar imagem PIL / PILLOW para a área de transferência do Windows

eu tenho vistoessa questão e segui todas as etapas, alterando o código para atender aos meus requisitos, que são Python3, Pillow e ctypes. Quanto menos bibliotecas, melhor.

import ctypes
from PIL import ImageGrab, Image
from io import BytesIO

user32 = ctypes.windll.user32

img = ImageGrab.grab()
output = BytesIO()
img.convert("RGB").save(output, "BMP")
data = output.getvalue()[14:]
output.close()

user32.OpenClipboard()
user32.EmptyClipboard()
user32.SetClipboardData(user32.CF_DIB, data)
user32.CloseClipboard()

Esse é o código retirado do meu script que, eu acho, é o mesmo código na pergunta portada para meus requisitos. Quando executado, ele deve copiar a área de trabalho atual para a área de transferência. Eu recebo isso:

File "C:\Users\Gcq\Documents\python\Screen\Screen.py", line 132, in shot
    user32.OpenClipboard()
ValueError: Procedure probably called with not enough arguments (4 bytes missing)

Sinto muito, estou fazendo uma pergunta fácil (provavelmente) aqui, mas eu realmente não sei o que está falhando, e ctypes não é o meu problema.

questionAnswers(2)

yourAnswerToTheQuestion