Click here to Skip to main content
13,054,329 members (122,340 online)
Rate this:
Please Sign up or sign in to vote.
See more:
using System;
using System.Collections.Generic;
using System.Linq;
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
class CSburnD
    static extern int SHGetFolderPath(IntPtr hwndOwner, int nFolder,
                                      IntPtr hToken, int dwFlags,
                                      StringBuilder pszPath);
    const int CSIDL_CDBURN_AREA = 0x3B;
    const int SHGFP_TYPE_CURRENT = 0;
    public static void Main(string[] args)
        StringBuilder szPath = new StringBuilder(1024);
        if (SHGetFolderPath((IntPtr)0, CSIDL_CDBURN_AREA, (IntPtr)0,
            SHGFP_TYPE_CURRENT, szPath) != 0)
            Console.WriteLine("SHGetFolderPath() failure");
            Console.WriteLine("SHGetFolderPath return value = " + szPath);
        Guid CLSID_CDBurn = new Guid("fbeb8a05-beee-4442-804e-409d6c4515e9");
        Type t = Type.GetTypeFromCLSID(CLSID_CDBurn);
        if (t == null)
            Console.WriteLine("ICDBurn not supported by OS");
        ICDBurn iface = (ICDBurn)Activator.CreateInstance(t);
        if (iface == null)
            Console.WriteLine("Unable to obtain interface");
        bool hasRecorder = false;
        iface.HasRecordableDrive(ref hasRecorder);
        Console.WriteLine("HasRecordableDrive return value = " + hasRecorder);
        if (hasRecorder)
            StringBuilder driveLetter = new StringBuilder(4);
            iface.GetRecorderDriveLetter(driveLetter, 4);
            Console.WriteLine("GetRecorderDriveLetter return value = " +
public interface ICDBurn
    void GetRecorderDriveLetter([MarshalAs(UnmanagedType.LPWStr)]
                                StringBuilder pszDrive, uint cch);
    void Burn(IntPtr hwnd);
    void HasRecordableDrive(ref bool HasRecorder);

When I run the code, a black screen appears and I cannot see any errors.
Posted 8-Jan-13 20:33pm
Updated 8-Jan-13 21:10pm
Sandeep Mewara 9-Jan-13 2:43am
Run it and see by yourself?
Peter_in_2780 9-Jan-13 2:45am
Beat me to it
GeekBond 9-Jan-13 2:53am
Seeing the title, one would just be like, duh.... run the code.
pajju1992 9-Jan-13 2:45am
it gives some error so can u correct it..??
Mycroft Holmes 9-Jan-13 2:52am
That is your job, if you post the errors you may get some help, asking someone else to do your job is counterproductive!
GeekBond 9-Jan-13 2:54am
GeekBond 9-Jan-13 2:52am
What are the errors did it gave you? Can you please post it on here? :wink: we can't see your screen you know?

Plus, next time, click the reply button next to the comment of the person you want to reply to, the user gets a notification and that helps him/her to get to you faster.
pajju1992 9-Jan-13 3:06am
when i run that program that black screens appears and if i press enter it ill dis that i cant c the message what it shows.:(
GeekBond 9-Jan-13 3:10am
Okay, question updated.

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

I'm not sure if your code will work but take a look at this article on CP, might give you some more info on what you want to achieve.

Burning and Erasing CD/DVD/Blu-ray Media with C# and IMAPI2[^]

Other ways to burn files to CD[^]
pajju1992 9-Jan-13 5:20am
well i saw all those things.... it dint workout..:(

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170713.1 | Last Updated 9 Jan 2013
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100