#define PICTYPE_BITMAP 1 #define CF_BITMAP 2 #define IID_IDispatch Chr(0x00)+Chr(0x04)+Chr(0x02)+Chr(0x00)+ ; Replicate(Chr(0x00), 4)+Chr(0xC0)+Replicate(Chr(0x00), 6)+Chr(0x46) Declare Long OpenClipboard In user32 Long hWnd Declare Long CloseClipboard In user32 Declare Long GetClipboardData In user32 Long uFormat Declare Long OleCreatePictureIndirect In oleaut32 ; String @ PicDesc, String @ RefIID, Long fPictureOwnsHandle, Object @ IPic If OpenClipboard(0) != 0 lhBmp = GetClipboardData(CF_BITMAP) If lhBmp = 0 MessageBox("No bitmap data in clipboard") Else * Create Picture object according to PICTDESC structure PictDesc = DWord(16) ; && Size of PICTDESC structure + DWord(PICTYPE_BITMAP) ; && Type of picture + DWord(lhBmp) ; && HBITMAP + DWord(0) && HPALETTE IPic = 0 iid = IID_IDispatch OleCreatePictureIndirect(@PictDesc, @iid, 0, @IPic) SavePicture(IPic, "clipbrd.bmp") EndIf CloseClipboard() EndIf