private static Cursor LoadCursorFromResource(string resourceName)
{
Cursor result;
try
{
var tempFile = Path.GetTempFileName();
using (Stream s =
Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName))
using (var resourceFile = new FileStream(tempFile, FileMode.Create))
{
if (s != null)
{
var b = new byte[s.Length + 1];
s.Read(b, 0, Convert.ToInt32(s.Length));
resourceFile.Write(b, 0, Convert.ToInt32(b.Length - 1));
}
resourceFile.Flush();
}
result = new Cursor(NativeMethods.LoadCursorFromFile(tempFile));
File.Delete(tempFile);
}
catch
{
result = Cursors.Cross;
}
return result;
}