| from cffi import FFI | |
| ffi = FFI() | |
| ffi.cdef(''' | |
| typedef void * HANDLE; | |
| typedef HANDLE HWND; | |
| typedef int BOOL; | |
| typedef unsigned int UINT; | |
| typedef int SIZE_T; | |
| typedef char * LPTSTR; | |
| typedef HANDLE HGLOBAL; | |
| typedef HANDLE LPVOID; | |
| HWND GetConsoleWindow(void); | |
| LPVOID GlobalLock( HGLOBAL hMem ); | |
| BOOL GlobalUnlock( HGLOBAL hMem ); | |
| HGLOBAL GlobalAlloc(UINT uFlags, SIZE_T dwBytes); | |
| BOOL OpenClipboard(HWND hWndNewOwner); | |
| BOOL CloseClipboard(void); | |
| BOOL EmptyClipboard(void); | |
| HANDLE SetClipboardData(UINT uFormat, HANDLE hMem); | |
| #define CF_TEXT ... | |
| #define GMEM_MOVEABLE ... | |
| void * memcpy(void * s1, void * s2, int n); | |
| ''') | |
| ffi.set_source('_winclipboard_cffi', ''' | |
| #include <windows.h> | |
| ''', libraries=["user32"]) | |
| if __name__ == '__main__': | |
| ffi.compile() |