using System;
using System.Runtime.InteropServices;
using System.Drawing;
namespace cards
{
public class cardsdll
{
[DllImport("cards.dll")]
private static extern bool cdtInit(ref int width, ref int height);
[DllImport("cards.dll")]
private static extern void cdtTerm ();
[DllImport("cards.dll")]
private static extern bool cdtDraw (IntPtr hdc, int x, int y, int card, int type, long color);
[DllImport("cards.dll")]
private static extern bool cdtDrawExt (IntPtr hdc, int x, int y, int dx, int dy, int card, int suit, long color);
[DllImport("cards.dll")]
private static extern bool cdtAnimate (IntPtr hdc, int cardback, int x, int y, int frame);
public cardsdll()
{
int width = 71, height = 95;
if (!cdtInit(ref width, ref height))
throw new Exception("could not load cards");
}
public void Dispose()
{
cdtTerm();
}
public bool drawanimatedcardback(IntPtr canvas, int x, int y, int design, int frame)
{
return cdtAnimate(canvas, design, x, y, frame);
}
public bool drawanimatedcardback(IntPtr canvas, Point p, int design, int frame)
{
return cdtAnimate(canvas, design, p.X, p.Y, frame);
}
public bool drawcardback(IntPtr canvas, int x, int y, int design)
{
return cdtDraw(canvas, x, y, design, 1, 0);
}
public bool drawcardback(IntPtr canvas, Point p, int design)
{
return cdtDraw(canvas, p.X, p.Y, design, 1, 0);
}
public bool drawcard(IntPtr canvas, int x, int y, int card)
{
return cdtDraw(canvas, x, y, card, 0, 0);
}
public bool drawcard(IntPtr canvas, Point p, int card)
{
return cdtDraw(canvas, p.X, p.Y, card, 0, 0);
}
public bool drawinvertedcard(IntPtr canvas, int x, int y, int card)
{
return cdtDraw(canvas, x, y, card, 2, 0);
}
public bool drawinvertedcard(IntPtr canvas, Point p, int card)
{
return cdtDraw(canvas, p.X, p.Y, card, 2, 0xffffff);
}
public bool drawemptycard(IntPtr canvas, int x, int y, int background)
{
return cdtDraw(canvas, x, y, 1, 3, background);
}
public bool drawemptycard(IntPtr canvas, Point p, int background)
{
return cdtDraw(canvas, p.X, p.Y, 1, 6, background);
}
public bool drawcard(IntPtr canvas, Point p, Size s, int card)
{
return cdtDrawExt(canvas, p.X, p.Y, s.Width, s.Height, card, 0, 0);
}
public bool drawcard(IntPtr canvas, int x, int y, int dx, int dy, int card)
{
return cdtDrawExt(canvas, x, y, dx, dy, card, 0, 0);
}
}
}
|