Re: C# Clipboard Paste event
От: yura_net  
Дата: 26.11.07 10:51
Оценка:
Всем спасибо, разобрался сам. Всего-то не сделал банальной вещи — открытия/закрытия буфера обменя.

Меняем функцию на вот такую:
[DllImport("user32.dll")]
public static extern int GetClipboardFormatName(uint format, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder formatName, int cchMaxCount);

[DllImport("user32.dll")]
public static extern bool OpenClipboard(IntPtr hwnd);

[DllImport("user32.dll")]
public static extern bool CloseClipboard();

[DllImport("user32.dll")]
public static extern bool EmptyClipboard();

public static void setEmptyFileToClipboard(Form form) {
    OpenClipboard(form.Handle);
    EmptyClipboard();
    SetClipboardData(CF_HDROP, IntPtr.Zero);
    CloseClipboard();
}


И дальше благополучно ловим сообщения WM_RENDERFORMAT и WM_RENDERALLFORMATS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.