Imports
System.Runtime.InteropServices
Class
MetafileClipboard
Shared
Function
GetMetafile()
As
Imaging.Metafile
Const
CF_ENHMETAFILE
As
Integer
= 14
Dim
ip
As
IntPtr
Dim
metaFile
As
System.Drawing.Imaging.Metafile
Dim
bRet
As
Boolean
bRet = ClipboardAPI.OpenClipboard(My.Application.OpenForms(0).Handle)
If
bRet =
True
Then
bRet = ClipboardAPI.IsClipboardFormatAvailable(CF_ENHMETAFILE) <> 0
End
If
If
bRet =
True
Then
ip = ClipboardAPI.GetClipboardData(CF_ENHMETAFILE)
End
If
If
Not
IntPtr.Zero.Equals(ip)
Then
metaFile =
New
System.Drawing.Imaging.Metafile(ip,
True
)
ClipboardAPI.CloseClipboard()
Return
metaFile
Else
Return
Nothing
End
If
End
Function
End
Class
Class
ClipboardAPI
<DllImport(
"user32.dll"
, EntryPoint:=
"OpenClipboard"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
OpenClipboard(
ByVal
hWnd
As
IntPtr)
As
Boolean
End
Function
<DllImport(
"user32.dll"
, EntryPoint:=
"EmptyClipboard"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
EmptyClipboard()
As
Boolean
End
Function
<DllImport(
"user32.dll"
, EntryPoint:=
"SetClipboardData"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
SetClipboardData(
ByVal
uFormat
As
Integer
,
ByVal
ByValhWnd
As
IntPtr)
As
IntPtr()
End
Function
<DllImport(
"user32.dll"
, EntryPoint:=
"CloseClipboard"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
CloseClipboard()
As
Boolean
End
Function
<DllImport(
"user32.dll"
, EntryPoint:=
"GetClipboardData"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
GetClipboardData(
ByVal
uFormat
As
Integer
)
As
IntPtr
End
Function
<DllImport(
"user32.dll"
, EntryPoint:=
"IsClipboardFormatAvailable"
, SetLastError:=
True
, ExactSpelling:=
True
, CallingConvention:=CallingConvention.StdCall)> _
Public
Shared
Function
IsClipboardFormatAvailable(
ByVal
uFormat
As
Integer
)
As
Short
End
Function
End
Class