namespace Clipz.NativeMethods
{
using System;
using System.Runtime.InteropServices;
public static class User32
{
[DllImport("User32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr SetClipboardViewer(IntPtr hWnd);
[DllImport("User32.dll", CharSet=CharSet.Auto)]
public static extern bool ChangeClipboardChain(IntPtr hWndRemove, IntPtr hWndNewNext);
[DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam);
[DllImport("user32.dll")]
public static extern int RegisterWindowMessage(string msgName);
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
public static int ChangeModeMessage;
public static int ClearContents;
static User32()
{
ChangeModeMessage = RegisterWindowMessage("Clipz.ChangeModeMessage");
ClearContents = RegisterWindowMessage("Clipz.ClearContents");
}
public static bool SendMessage(string windowTitle, int msgId, IntPtr wParam, IntPtr lParam)
{
var window = FindWindow(null, windowTitle);
if (window == IntPtr.Zero) return false;
var result = SendMessage(window, msgId, wParam, lParam);
return result == IntPtr.Zero;
}
}
}