API solution VFP interchangeable graphics files and clipboard

In VFP, the graphics processing Whenever, in most cases, will be involved in the case of graphics files and clipboard exchange. The method given below using the API solution. This is the original plucked from the Internet, belongs to original author.
The basic process follows the code, you can apply to your code.

DECLARE INTEGER OpenClipboard               IN User32 INTEGER
DECLARE INTEGER CloseClipboard              IN User32
DECLARE INTEGER EmptyClipboard              IN User32
DECLARE INTEGER SetClipboardData            IN User32 INTEGER,INTEGER
DECLARE INTEGER LoadImage                   IN WIN32API INTEGER,String,INTEGER,INTEGER,INTEGER,INTEGER
DECLARE INTEGER GetClipboardData            IN User32 INTEGER
DECLARE INTEGER GdipCreateBitmapFromHBITMAP IN GdiPlus.dll INTEGER, INTEGER, INTEGER @
DECLARE INTEGER GdipSaveImageToFile         IN GdiPlus.dll INTEGER,String,String @,String @
DECLARE Long    GdipCreateHBITMAPFromBitmap IN GDIPLUS.DLL Long nativeImage, Long @, Long
DECLARE Long    GdipCreateBitmapFromFile    IN GDIPLUS.DLL String FileName, Long @nBitmap
DECLARE Long    CopyImage                   IN WIN32API Long hImage, Long, Long, Long , Long

#Define CF_BITMAP 2
#Define CF_DIB 8
#Define IMAGE_BITMAP 0
#Define LR_LOADFROMFILE 16

* 1. Save the graphics file to the clipboard
nBitmap = 0
HBM = 0
ImageFile = 'graphic file name'
GdipCreateBitmapFromFile (STRCONV (0h00,5 ImageFile +), @ nBitmap)
GdipCreateHBITMAPFromBitmap (nBitmap, HBM @, 0)
lhBmp = the CopyImage (HBM, 0, 0, 0, 0)
the IF OpenClipboard (0)! = 0
   the EmptyClipboard ()
   the SetClipboardData (CF_BITMAP, lhBmp)
   CloseClipboard ()
ENDIF

* 2 will save the clipboard to a local pattern
OpenClipboard (0)
hBitmap = GetClipboardData (CF_BITMAP)
hDib = GetClipboardData (CF_DIB)
CloseClipboard ()
uBitmap = 0
GdipCreateBitmapFromHBITMAP (hBitmap, 2, @ uBitmap)
lcOutputFile = STRCONV ( 'C: \ _Temp1.jpg '+ CHR (0),. 5)
*! * lqEncoderClsID_BMP = 0h00F47C55041AD3119A730000F81EF32E && BMP format
lqEncoderClsID_JPG = 0h01F47C55041AD3119A730000F81EF32E && JPG format
*! * lqEncoderClsID_GIF = 0h02F47C55041AD3119A730000F81EF32E && GIF format
*! * lqEncoderClsID_TIF = 0h05F47C55041AD3119A730000F81EF32E && TIF format
*! * lqEncoderClsID_PNG = 0h06F47C55041AD3119A730000F81EF32E && PNG format
GdipSaveImageToFile (uBitmap, lcOutputFile, lqEncoderClsID_JPG, NULL )

Guess you like

Origin www.cnblogs.com/hnllhq/p/12287595.html