2 using System.Runtime.InteropServices;
7 /// Sniper InterOp class for getting application's screen-shot.
9 internal static partial class InterOp
11 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
12 public delegate void CallbackAddedRemoved(string appId, string instanceId);
13 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
14 public delegate void CallbackUpdated(string appId, string instanceId, string filename);
15 [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
16 public delegate int CallbackSkipUpdate(string appid, string instanceId, string filename);
18 [StructLayout(LayoutKind.Sequential)]
19 public struct SniperCallback
21 public CallbackAddedRemoved Added;
22 public CallbackAddedRemoved Removed;
23 public CallbackUpdated Updated;
24 public CallbackSkipUpdate SkipUpdate;
27 [DllImport("sniper", CharSet = CharSet.Ansi)]
28 internal static extern int sniper_init(IntPtr win, SniperCallback callbacks, string path, int w, int h);
30 [DllImport("sniper", CharSet = CharSet.Ansi)]
31 internal static extern int sniper_request_update(string instanceId);
33 [DllImport("sniper", CharSet = CharSet.Ansi)]
34 internal static extern int sniper_fini();