|
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace CSharpIleCDyeYazma
{
public class CDYaz
{
private IMAPI_CDBurner.ICDBurn objBurner; ;//CD Yazma islemini yapacak nesneyi tanımlıyoruz.
private bool cdYaziciVarmi = false;
private string cdYazici = "";
private StringBuilder cdyeYazilacakAlan = new StringBuilder(1024);
[DllImport("shell32.dll")]
public static extern Int32 SHGetFolderPath
(IntPtr hwndOwner, Int32 nFolder, IntPtr hToken,
UInt32 dwFlags, StringBuilder pszPath);
const int CSIDL_CDBURN_AREA = 0x03b;
//CD Yazıcı olup olmadıgını kontrol edecegimiz property
public bool CdYaziciVarmi
{
get
{
return cdYaziciVarmi;
}
}
// CD Yazıcımızın path'ni tutacak property
public string CdYazici
{
get
{
return cdYazici;
}
}
// CD'ye yazmamız için dosyaları kopyalayacagımız path(tampon bölge)
public string CdyeYazilacakAlan
{
get
{
return cdyeYazilacakAlan.ToString();
}
}
// Classımızın Constructor'ını tanımlıyoruz
public CDYaz()
{
objBurner = new IMAPI_CDBurner.CDBurnClass();//Burner Nesnesinin instance'ni alıyoruz.
int i = 0;
objBurner.HasRecordableDrive(out i);
cdYaziciVarmi = i > 0;
string drive = "???";
objBurner.GetRecorderDriveLetter(drive, 4); // CD Yazıcının sürücü adını burner nesnesi aracılıgı ile alıyoruz
cdYazici = drive;
SHGetFolderPath((IntPtr)0, CSIDL_CDBURN_AREA, (IntPtr)0, 0, cdyeYazilacakAlan); // Bu metod ile cdYeYazilacak olan tampon bilgisi cdyeYazilacakAlan propertysine set ediliyor
}
public void YazmaIsleminiBaslat (IntPtr h) // Bu metod ile CD Yazma islemi gerçeklestiriliyor.
{
objBurner.Burn((uint)h);
}
}
} |