You want to burn a CD out of your Delphi application easily? Read on!
Based on an article of Bernd Ua and the JWA-translation of the IMAPI Headers, we developed an unit for using the Image Mastering API (IMAPI) in a kind way. You can get it from of the JEDI API Subversion repository or as a zip with binary (Download). (The in-develop-version can be found in the svn of TheUnknownOnes.net)
At the moment it supports only data/Joliet-Discs. But in the next spare time we will also add the audio/Redbook functions.
After installing the component (TDiscmaster) and dropping it into your application, only a few things are needed to do.
Firstly get the list of available discrecorders.
The next step is, to say the discmaster, which recorder should be used. (Be aware: This starts an new image. Every data, added to the previous image, will be deleted).
The following steps are just fun:
Thats all. Normally you’ll get a burned disc now.
Your task for now, is to play around with the control (for example with the Discrecorder.Prop['WriteSpeed']). Take a look at the MSDN and get in touch with this way to burn discs. Feel free to ask if something isn’t clear to you. (I’ve mentioned only the important things. )
11 Responses
bilm
11|Sep|2009 1Benjamin,
I wrestled with IMAPI several years ago so I appreciate your efforts.
Good show! And Delphi needs an API for this. No one has done it
that I know of.
That being said, you are working on IMAPI v1 which for the most part
is obsolete and very different from the new IMAPI v2
(available to all XP users not just Vista and above).
Download IMAPI v2 for XP SP2 or SP3 at
http://support.microsoft.com/kb/932716
V1 could only burn CDs.
V2 can burn CDs & DVDs (including Blu-Ray) and supports UDF as well as ISO 9660 with the Joliet extension for both single-session and multi-session.
V1 was a “service” with all the difficulties that come with it.
V2 is not a service. It is straight-forward DLL based.
I hope you consider changing your API translation efforts over to IMAPI2. It would be a great contribution.
Cheers,
bilm
Benjamin
11|Sep|2009 2Hi bilm!
Thanks for your comment and for the hints about version 2. Maybe some spare time will come and give me the chance to work on it. Hopefully.
Benjamin
bilm
11|Sep|2009 3Yeah spare time … hard to find these days.
Here’s some stuff from my notes on V2.
IMAPI v2 documentation is at
http://msdn2.microsoft.com/en-us/library/aa366450.aspx
http://msdn.microsoft.com/en-us/library/aa366450(VS.85).aspx
C/C++, VB & VB Script examples
http://msdn.microsoft.com/en-us/library/aa366454(VS.85).aspx
full project examples – C/C++ of course
http://www.codeproject.com/KB/winsdk/IMAPI2.aspx
http://www.codeproject.com/KB/miscctrl/ISOImage.aspx
you have to be a member (easy & it’s free) to DL sources & bins
So far I have found no pascal examples for V2.
IMAPI v2 headers are in the Vista SDK
i.e. MS SDK v6.0 “Update for Windows Vista”
imapi.h
imapi2.h
imapi2error.h
imapi2fs.h
imapi2fserror.h
imapierror.h
hope this saves you some googling,
bilm
Chaosben
13|Sep|2009 4Thats the kind of support i really love. Thank you very much!
Yuvaraj
21|Oct|2010 5Hi,
I’m trying to write a file to CD from my Delphi Application. i think the above solution is good. but i cant find the TDiskMaster component. so please help me to get it.
Thanls in Advance
Yuvaraj
Chaosben
21|Oct|2010 6You may check it out via svn from here
nuclearping
04|Apr|2011 7I know this article is quite old. But is there any support / solution / example for creating Audio CDs with IMAPI 1 or 2 available?
IRedbookDiscMaster is declared and utilized in the uDiscBurner.pas but calls like CreateAudioTrack, AddAudioTrack and others are missing.
I’m searching since days and all I find are outdated solutions which do not work / compile with Delphi 2009.
Chaosben
05|Apr|2011 8Hi!
I’m sorry, but we havent worked on this unit since i wrote this article.
One solution can be the use of the original imapi-unit of the JWAPI. The advantage is that you are independent from TUO and it will compile with D2009.
bilm
05|May|2011 9Hello Benjamin and any others who might be interested in IMAPI Version 2.
Since my last post back in Sept 2009 I have revised my opinion
of IMAPI ver. 2 … upwardly.
I’ve waited this past year 1/2 for someone else to show us how to implement IMAPI2 into a Delphi app but have waited in vain.
So I took the bull-by-the-horns a month ago and have been playing with it. I had no prior COM programming experience but I picked up enough to work with it.
I really think any Delphi programmer who wants to add CD/DVD support to their app for backing up a database or whatever should strongly consider IMAPI2.
I’m not ordinarily a proponent of MS stuff. But the good, reliable packages for adding this kind of support to your app start at $400 USD. I’ve come to believe after working with it this past month that you can do just as well using IMAPI2.
IMAPI2 supports all DVD types including Blu-Ray (BD). It offers Burn Verification and some other nice features. It’s native to Win7 & Vista and works on XP by installing some updates.
I’ve made a demo that shows how to implement IMAPI2.
Benjamin, if you and theunknownones would like to test out the demo and, if there is enough interest, possibly host it as a project, let me know. I’m willing to contribute it along with my expertise in the SCSI Multi-Media Command Set.
cheers,
bilm
Chaosben
06|May|2011 10Dear bilm,
thank you for telling us this good news. And i’m interested in your demo.
Please send it to chaosben (a) theunknownones (d) net.
I’ll take a look at it and try to guess, how much work has to be done, to implement the headers into JWAPI.
Thank you for your work and patience.
Benjamin
oldbitman
09|Sep|2011 11blim,
I would be very interested in your code.
gary at linear-systems.com
Thanks
Leave a reply
You must be logged in to post a comment.
Search
Paypal donation (EUR)
Download Win 7 Search Provider
Categories
Archives
Tags
Recent Posts
Recent Comments
Blogroll
JEDI Sites
Pages
A design creation of Design Disease
Copyright © 2007 - JEDI Windows API - is proudly powered by WordPress
InSense 1.0 Theme by Design Disease brought to you by HostGator Web Hosting.