Принципиальный молчун
Зарегистрирован: 28 November 2007
Сообщения: 1
Примеры кода: 0
|
MetafilePict |
24 February 2010 15:43 |
|
|
|
|
У меня в Clipboard есть данные в формате MetafilePict. Задача - извлечь оттуда картинку и сохранить в BMP. Я делал так:
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern bool OpenClipboard(IntPtr hWndNewOwner);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern bool CloseClipboard();
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetClipboardData(uint format);
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern bool IsClipboardFormatAvailable(uint format);
public const uint CF_METAFILEPICT = 3;
public const uint CF_ENHMETAFILE = 14;
private Metafile GetMetaFromClipboard()
{
Metafile metafile = null;
if (OpenClipboard(Handle))
{
if (IsClipboardFormatAvailable(CF_METAFILEPICT))
{
IntPtr ptr = GetClipboardData(CF_METAFILEPICT);
if (!ptr.Equals(new IntPtr(0)))
{
metafile = new Metafile(ptr, false);
}
}
CloseClipboard();
}
return metafile;
}
Но в этом случае на строке "metafile = new Metafile(ptr, false);" я получаю ошибку "A generic error occurred in GDI+". Подскажите, как быть?
|
|