#If VBA7 Then
Declare
PtrSafe
Function
IsClipboardFormatAvailable
Lib
"user32"
(
ByVal
wFormat
As
Integer
)
As
LongPtr
Declare
PtrSafe
Function
OpenClipboard
Lib
"user32"
(
ByVal
hwnd
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GetClipboardData
Lib
"user32"
(
ByVal
wFormat
As
Integer
)
As
LongPtr
Declare
PtrSafe
Function
CloseClipboard
Lib
"user32"
()
As
LongPtr
Declare
PtrSafe
Function
CopyImage
Lib
"user32"
(
ByVal
Handle
As
LongPtr,
ByVal
un1
As
LongPtr,
ByVal
n1
As
LongPtr,
ByVal
n2
As
LongPtr,
ByVal
un2
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipCreateBitmapFromHBITMAP
Lib
"GDIPlus"
(
ByVal
hbm
As
LongPtr,
ByVal
hPal
As
LongPtr, Bitmap
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipSaveImageToFile
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr,
ByVal
FileName
As
LongPtr, clsidEncoder
As
GUID, encoderParams
As
Any)
As
LongPtr
Declare
PtrSafe
Function
CLSIDFromString
Lib
"ole32"
(
ByVal
str
As
LongPtr, id
As
GUID)
As
LongPtr
Declare
PtrSafe
Function
GdiplusStartup
Lib
"GDIPlus"
(Token
As
LongPtr, inputbuf
As
GdiplusStartupInput,
Optional
ByVal
outputbuf
As
LongPtr = 0)
As
GpStatus
Declare
PtrSafe
Function
GdipCreateBitmapFromFile
Lib
"GDIPlus"
(
ByVal
FileName
As
LongPtr, Bitmap
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
GdipCreateHBITMAPFromBitmap
Lib
"GDIPlus"
(
ByVal
Bitmap
As
LongPtr, hbmReturn
As
LongPtr,
ByVal
background
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
GdipDisposeImage
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
GdiplusShutdown
Lib
"GDIPlus"
(
ByVal
Token
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
OleCreatePictureIndirect
Lib
"olepro32.dll"
(PicDesc
As
PICTDESC, RefIID
As
GUID,
ByVal
fPictureOwnsHandle
As
LongPtr, IPic
As
IPicture)
As
LongPtr
Declare
PtrSafe
Function
GdipGetImageDimension
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr, Width
As
Single
, Height
As
Single
)
As
GpStatus
Declare
PtrSafe
Function
GdipGetImageWidth
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr, Width
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
GdipGetImageHeight
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr, Height
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
GdipGetImageHorizontalResolution
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr, resolution
As
Single
)
As
GpStatus
Declare
PtrSafe
Function
GdipGetImageVerticalResolution
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr, resolution
As
Single
)
As
GpStatus
Declare
PtrSafe
Function
GdipGetImageThumbnail
Lib
"GDIPlus"
(
ByVal
Image
As
LongPtr,
ByVal
thumbWidth
As
LongPtr,
ByVal
thumbHeight
As
LongPtr, thumbImage
As
LongPtr, _
Optional
ByVal
callback
As
LongPtr = 0,
Optional
ByVal
callbackData
As
LongPtr = 0)
As
GpStatus
Declare
PtrSafe
Function
GdipLoadImageFromFile
Lib
"GDIPlus"
(
ByVal
FileName
As
String
, Image
As
LongPtr)
As
GpStatus
Declare
PtrSafe
Function
SHCreateDirectoryEx
Lib
"shell32"
Alias
"SHCreateDirectoryExA"
(
ByVal
hwnd
As
LongPtr,
ByVal
pszPath
As
String
,
ByVal
psa
As
Any)
As
LongPtr
Declare
PtrSafe
Function
CreateCompatibleDC
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
CreateCompatibleBitmap
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr,
ByVal
nWidth
As
LongPtr,
ByVal
nHeight
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GetDeviceCaps
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr,
ByVal
nIndex
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
PatBlt
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr,
ByVal
X
As
LongPtr,
ByVal
Y
As
LongPtr,
ByVal
nWidth
As
LongPtr,
ByVal
nHeight
As
LongPtr,
ByVal
dwRop
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
CreateBitmap
Lib
"gdi32"
(
ByVal
nWidth
As
LongPtr,
ByVal
nHeight
As
LongPtr,
ByVal
nPlanes
As
LongPtr,
ByVal
nBitCount
As
LongPtr, lpBits
As
Any)
As
LongPtr
Declare
PtrSafe
Function
SelectObject
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr,
ByVal
hObject
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
CreateSolidBrush
Lib
"gdi32"
(
ByVal
crColor
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
DeleteObject
Lib
"gdi32"
(
ByVal
hObject
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
DeleteDC
Lib
"gdi32"
(
ByVal
hDC
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipCreateFromHDC
Lib
"gdiplus.dll"
(
ByVal
hDC
As
LongPtr, GpGraphics
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipSetInterpolationMode
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
LongPtr,
ByVal
InterMode
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipDrawImageRectI
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
LongPtr,
ByVal
Img
As
LongPtr,
ByVal
X
As
LongPtr,
ByVal
Y
As
LongPtr,
ByVal
Width
As
LongPtr,
ByVal
Height
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipDeleteGraphics
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
LongPtr)
As
LongPtr
Declare
PtrSafe
Function
GdipDrawImageRectRectI
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
LongPtr,
ByVal
GpImage
As
LongPtr,
ByVal
dstx
As
LongPtr,
ByVal
dsty
As
LongPtr,
ByVal
dstwidth
As
LongPtr,
ByVal
dstheight
As
LongPtr,
ByVal
srcx
As
LongPtr,
ByVal
srcy
As
LongPtr,
ByVal
srcwidth
As
LongPtr,
ByVal
srcheight
As
LongPtr,
ByVal
srcUnit
As
LongPtr,
ByVal
imageAttributes
As
LongPtr,
ByVal
callback
As
LongPtr,
ByVal
callbackData
As
LongPtr)
As
LongPtr
Type GUID: Data1
As
LongPtr: Data2
As
Integer
: Data3
As
Integer
: Data4(0
To
7)
As
Byte
:
End
Type
Type PICTDESC: size
As
LongPtr: Type
As
LongPtr: hPic
As
LongPtr: hPal
As
LongPtr:
End
Type
Type GdiplusStartupInput: GdiplusVersion
As
LongPtr: DebugEventCallback
As
LongPtr: SuppressBackgroundThread
As
LongPtr: SuppressExternalCodecs
As
LongPtr:
End
Type
Type EncoderParameter: GUID
As
GUID: NumberOfValues
As
LongPtr: Type
As
LongPtr: Value
As
LongPtr:
End
Type
Type EncoderParameters: Count
As
LongPtr: Parameter
As
EncoderParameter:
End
Type
Enum
GpStatus
Status_OK = 0: Status_GenericError = 1: Status_InvalidParameter = 2: Status_OutOfMemory = 3: Status_ObjectBusy = 4: Status_InsufficientBuffer = 5
Status_NotImplemented = 6: Status_Win32Error = 7: Status_WrongState = 8: Status_Aborted = 9: Status_FileNotFound = 10: Status_ValueOverflow = 11
Status_AccessDenied = 12: Status_UnknownImageFormat = 13: Status_FontFamilyNotFound = 14: Status_FontStyleNotFound = 15: Status_NotTrueTypeFont = 16
Status_UnsupportedGdiplusVersion = 17: Status_GdiplusNotInitialized = 18: Status_PropertyNotFound = 19: Status_PropertyNotSupported = 20
End
Enum
#Else
Declare
Function
IsClipboardFormatAvailable
Lib
"user32"
(
ByVal
wFormat
As
Integer
)
As
Long
Declare
Function
OpenClipboard
Lib
"user32"
(
ByVal
hwnd
As
Long
)
As
Long
Declare
Function
GetClipboardData
Lib
"user32"
(
ByVal
wFormat
As
Integer
)
As
Long
Declare
Function
CloseClipboard
Lib
"user32"
()
As
Long
Declare
Function
CopyImage
Lib
"user32"
(
ByVal
Handle
As
Long
,
ByVal
un1
As
Long
,
ByVal
n1
As
Long
,
ByVal
n2
As
Long
,
ByVal
un2
As
Long
)
As
Long
Declare
Function
GdipCreateBitmapFromHBITMAP
Lib
"GDIPlus"
(
ByVal
hbm
As
Long
,
ByVal
hPal
As
Long
, Bitmap
As
Long
)
As
Long
Declare
Function
GdipSaveImageToFile
Lib
"GDIPlus"
(
ByVal
Image
As
Long
,
ByVal
FileName
As
Long
, clsidEncoder
As
GUID, encoderParams
As
Any)
As
Long
Declare
Function
CLSIDFromString
Lib
"ole32"
(
ByVal
str
As
Long
, id
As
GUID)
As
Long
Declare
Function
GdiplusStartup
Lib
"GDIPlus"
(Token
As
Long
, inputbuf
As
GdiplusStartupInput,
Optional
ByVal
outputbuf
As
Long
= 0)
As
GpStatus
Declare
Function
GdipCreateBitmapFromFile
Lib
"GDIPlus"
(
ByVal
FileName
As
Long
, Bitmap
As
Long
)
As
GpStatus
Declare
Function
GdipCreateHBITMAPFromBitmap
Lib
"GDIPlus"
(
ByVal
Bitmap
As
Long
, hbmReturn
As
Long
,
ByVal
background
As
Long
)
As
GpStatus
Declare
Function
GdipDisposeImage
Lib
"GDIPlus"
(
ByVal
Image
As
Long
)
As
GpStatus
Declare
Function
GdiplusShutdown
Lib
"GDIPlus"
(
ByVal
Token
As
Long
)
As
Long
Declare
Function
OleCreatePictureIndirect
Lib
"olepro32.dll"
(PicDesc
As
PICTDESC, RefIID
As
GUID,
ByVal
fPictureOwnsHandle
As
Long
, IPic
As
IPicture)
As
Long
Declare
Function
GdipGetImageDimension
Lib
"GDIPlus"
(
ByVal
Image
As
Long
, Width
As
Single
, Height
As
Single
)
As
GpStatus
Declare
Function
GdipGetImageWidth
Lib
"GDIPlus"
(
ByVal
Image
As
Long
, Width
As
Long
)
As
GpStatus
Declare
Function
GdipGetImageHeight
Lib
"GDIPlus"
(
ByVal
Image
As
Long
, Height
As
Long
)
As
GpStatus
Declare
Function
GdipGetImageHorizontalResolution
Lib
"GDIPlus"
(
ByVal
Image
As
Long
, resolution
As
Single
)
As
GpStatus
Declare
Function
GdipGetImageVerticalResolution
Lib
"GDIPlus"
(
ByVal
Image
As
Long
, resolution
As
Single
)
As
GpStatus
Declare
Function
GdipGetImageThumbnail
Lib
"GDIPlus"
(
ByVal
Image
As
Long
,
ByVal
thumbWidth
As
Long
,
ByVal
thumbHeight
As
Long
, thumbImage
As
Long
, _
Optional
ByVal
callback
As
Long
= 0,
Optional
ByVal
callbackData
As
Long
= 0)
As
GpStatus
Declare
Function
GdipLoadImageFromFile
Lib
"GDIPlus"
(
ByVal
FileName
As
String
, Image
As
Long
)
As
GpStatus
Declare
Function
SHCreateDirectoryEx
Lib
"shell32"
Alias
"SHCreateDirectoryExA"
(
ByVal
hwnd
As
Long
,
ByVal
pszPath
As
String
,
ByVal
psa
As
Any)
As
Long
Declare
Function
CreateCompatibleDC
Lib
"gdi32"
(
ByVal
hDC
As
Long
)
As
Long
Declare
Function
CreateCompatibleBitmap
Lib
"gdi32"
(
ByVal
hDC
As
Long
,
ByVal
nWidth
As
Long
,
ByVal
nHeight
As
Long
)
As
Long
Declare
Function
GetDeviceCaps
Lib
"gdi32"
(
ByVal
hDC
As
Long
,
ByVal
nIndex
As
Long
)
As
Long
Declare
Function
PatBlt
Lib
"gdi32"
(
ByVal
hDC
As
Long
,
ByVal
X
As
Long
,
ByVal
Y
As
Long
,
ByVal
nWidth
As
Long
,
ByVal
nHeight
As
Long
,
ByVal
dwRop
As
Long
)
As
Long
Declare
Function
CreateBitmap
Lib
"gdi32"
(
ByVal
nWidth
As
Long
,
ByVal
nHeight
As
Long
,
ByVal
nPlanes
As
Long
,
ByVal
nBitCount
As
Long
, lpBits
As
Any)
As
Long
Declare
Function
SelectObject
Lib
"gdi32"
(
ByVal
hDC
As
Long
,
ByVal
hObject
As
Long
)
As
Long
Declare
Function
CreateSolidBrush
Lib
"gdi32"
(
ByVal
crColor
As
Long
)
As
Long
Declare
Function
DeleteObject
Lib
"gdi32"
(
ByVal
hObject
As
Long
)
As
Long
Declare
Function
DeleteDC
Lib
"gdi32"
(
ByVal
hDC
As
Long
)
As
Long
Declare
Function
GdipCreateFromHDC
Lib
"gdiplus.dll"
(
ByVal
hDC
As
Long
, GpGraphics
As
Long
)
As
Long
Declare
Function
GdipSetInterpolationMode
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
Long
,
ByVal
InterMode
As
Long
)
As
Long
Declare
Function
GdipDrawImageRectI
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
Long
,
ByVal
Img
As
Long
,
ByVal
X
As
Long
,
ByVal
Y
As
Long
,
ByVal
Width
As
Long
,
ByVal
Height
As
Long
)
As
Long
Declare
Function
GdipDeleteGraphics
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
Long
)
As
Long
Declare
Function
GdipDrawImageRectRectI
Lib
"gdiplus.dll"
(
ByVal
Graphics
As
Long
,
ByVal
GpImage
As
Long
,
ByVal
dstx
As
Long
,
ByVal
dsty
As
Long
,
ByVal
dstwidth
As
Long
,
ByVal
dstheight
As
Long
,
ByVal
srcx
As
Long
,
ByVal
srcy
As
Long
,
ByVal
srcwidth
As
Long
,
ByVal
srcheight
As
Long
,
ByVal
srcUnit
As
Long
,
ByVal
imageAttributes
As
Long
,
ByVal
callback
As
Long
,
ByVal
callbackData
As
Long
)
As
Long
Type GUID: Data1
As
Long
: Data2
As
Integer
: Data3
As
Integer
: Data4(0
To
7)
As
Byte
:
End
Type
Type PICTDESC: size
As
Long
: Type
As
Long
: hPic
As
Long
: hPal
As
Long
:
End
Type
Type GdiplusStartupInput: GdiplusVersion
As
Long
: DebugEventCallback
As
Long
: SuppressBackgroundThread
As
Long
: SuppressExternalCodecs
As
Long
:
End
Type
Type EncoderParameter: GUID
As
GUID: NumberOfValues
As
Long
: Type
As
Long
: Value
As
Long
:
End
Type
Type EncoderParameters: Count
As
Long
: Parameter
As
EncoderParameter:
End
Type
Enum
GpStatus
Status_OK = 0: Status_GenericError = 1: Status_InvalidParameter = 2: Status_OutOfMemory = 3: Status_ObjectBusy = 4: Status_InsufficientBuffer = 5
Status_NotImplemented = 6: Status_Win32Error = 7: Status_WrongState = 8: Status_Aborted = 9: Status_FileNotFound = 10: Status_ValueOverflow = 11
Status_AccessDenied = 12: Status_UnknownImageFormat = 13: Status_FontFamilyNotFound = 14: Status_FontStyleNotFound = 15: Status_NotTrueTypeFont = 16
Status_UnsupportedGdiplusVersion = 17: Status_GdiplusNotInitialized = 18: Status_PropertyNotFound = 19: Status_PropertyNotSupported = 20
End
Enum
#End If
Type PWMFRect16: Left
As
Integer
: Top
As
Integer
: Right
As
Integer
: Bottom
As
Integer
:
End
Type
Public
Const
CF_BITMAP = 2, IMAGE_BITMAP = 0, LR_COPYRETURNORG = &H4, CF_ENHMETAFILE
As
Long
= 14
Public
Const
PLANES = 14, BITSPIXEL = 12, PATCOPY = &HF00021, InterpolationModeHighQualityBicubic = 7