<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Brenn - API]]></title><description><![CDATA[<p>Also ... brauch für ein momentanes Projekt von mir eine CD-Brenn-API ... hab mal kurz gesucht und die NeroAPI und die IMAPI gefunden. Für NeroAPI muss man eine rel. teure Lizenz von Ahead kaufen, damit das ohne Nero geht und man es in kommerziellen Projekten einsetzen darf und IMAPI ist nicht so das wahre ... letzteres kann aber auch an mir liegen und wenn mir jemand ein gutes Beispiel zeigt, dass das Gegenteil beweißt, bin ich dafür gerne offen.<br />
Kennt denn jemand noch eine andere lib die elementare Brennfunktionen bereitstellt?</p>
<p>Thx Deviloper</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183007/brenn-api</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 07:46:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183007.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 May 2007 14:12:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brenn - API on Thu, 31 May 2007 14:12:06 GMT]]></title><description><![CDATA[<p>Also ... brauch für ein momentanes Projekt von mir eine CD-Brenn-API ... hab mal kurz gesucht und die NeroAPI und die IMAPI gefunden. Für NeroAPI muss man eine rel. teure Lizenz von Ahead kaufen, damit das ohne Nero geht und man es in kommerziellen Projekten einsetzen darf und IMAPI ist nicht so das wahre ... letzteres kann aber auch an mir liegen und wenn mir jemand ein gutes Beispiel zeigt, dass das Gegenteil beweißt, bin ich dafür gerne offen.<br />
Kennt denn jemand noch eine andere lib die elementare Brennfunktionen bereitstellt?</p>
<p>Thx Deviloper</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296013</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 31 May 2007 14:12:06 GMT</pubDate></item><item><title><![CDATA[Reply to Brenn - API on Thu, 31 May 2007 14:50:38 GMT]]></title><description><![CDATA[<p>Naja, nicht ganz einfach, aber gehen tut es schon...<br />
<a href="http://www.codeproject.com/win32/CD_Burner.asp" rel="nofollow">http://www.codeproject.com/win32/CD_Burner.asp</a></p>
<p>musst Dich halt ein wenig mit IStorage auseinandersetzen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296068</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296068</guid><dc:creator><![CDATA[Jochen Kalmbach]]></dc:creator><pubDate>Thu, 31 May 2007 14:50:38 GMT</pubDate></item><item><title><![CDATA[Reply to Brenn - API on Thu, 31 May 2007 15:07:05 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Cdrtools" rel="nofollow">http://de.wikipedia.org/wiki/Cdrtools</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296085</guid><dc:creator><![CDATA[Cdrtools]]></dc:creator><pubDate>Thu, 31 May 2007 15:07:05 GMT</pubDate></item><item><title><![CDATA[Reply to Brenn - API on Thu, 31 May 2007 15:29:17 GMT]]></title><description><![CDATA[<p>Das Beispiel kannte ich schon ... find die Implementierung nur nicht sonderlich sauber ... naja werde nochmal gucken. Trotzdem danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296108</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 31 May 2007 15:29:17 GMT</pubDate></item><item><title><![CDATA[Reply to Brenn - API on Thu, 31 May 2007 17:24:38 GMT]]></title><description><![CDATA[<p>Hmm hab mir mal das IDiskMaster Interface gewrappt ... jetzt wird das Objekt aber nicht korrekt initialisiert. Bzw. der 1. Funktionsaufruf schlägt direkt fehl. Warum?</p>
<pre><code class="language-cpp">#if !defined(DISC_MASTER_H__INCLUDED)
#define DISC_MASTER_H__INCLUDED

#if (_MSC_VER &gt; 1000)
#pragma once
#endif // _MSC_VER &gt; 1000

class DiscMaster : public CComQIPtr&lt;IDiscMaster&gt;
{
public:
	DiscMaster()		{	ASSERT(SUCCEEDED(CoCreateInstance(CLSID_MSDiscMasterObj, NULL, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER)));	}
	~DiscMaster()		{	close(); progress_unadvise();		}

public:
	bool				open()															{	return SUCCEEDED((*this)-&gt;Open());					}
	bool				close()															{	return SUCCEEDED((*this)-&gt;Close());					}
	bool				record_disc(const bool sim = false, const bool eject = true)	{	return SUCCEEDED((*this)-&gt;RecordDisc(sim, eject));	}
	bool				clear_data()													{	return SUCCEEDED((*this)-&gt;ClearFormatContent());	}
	bool				progress_advise(IDiscMasterProgressEvents* pEvents)				{	return SUCCEEDED((*this)-&gt;ProgressAdvise(pEvents, &amp;m_nProgressID));	}
	bool				progress_advise(IDiscMasterProgressEvents* pEvents, UINT_PTR* id)	{	return SUCCEEDED((*this)-&gt;ProgressAdvise(pEvents, id));		}
	bool				progress_unadvise()												{	return SUCCEEDED((*this)-&gt;ProgressUnadvise(m_nProgressID));	}
	bool				progress_unadvise(const UINT_PTR id)							{	return SUCCEEDED((*this)-&gt;ProgressUnadvise(id));	}

public:
	bool				set_active_rec(IDiscRecorder* pRecorder)						{	return SUCCEEDED((*this)-&gt;SetActiveDiscRecorder(pRecorder));	}
	bool				get_active_rec(IDiscRecorder* pRecorder)						{	return SUCCEEDED((*this)-&gt;GetActiveDiscRecorder(&amp;pRecorder));	}

public:
	bool				enum_disc_rec(IEnumDiscRecorders* pEnum)						{	return SUCCEEDED((*this)-&gt;EnumDiscRecorders(&amp;pEnum));	}

public:
	enum format 
	{
		F_AUDIO = 0,
		F_DATA,
		F_NONE
	};

	bool				format_supported(const format&amp; form)										
	{	
		if (form == F_NONE)
			return true;

		IID		formats[2];  
		ULONG	tmp = 0;
		CComPtr&lt;IEnumDiscMasterFormats&gt; it;
		if (!SUCCEEDED((*this)-&gt;EnumDiscMasterFormats(&amp;it)))
			return false;

		if (!SUCCEEDED(it-&gt;Next(2, formats, &amp;tmp)))
			return false;

		IID		act = (form == F_AUDIO ? IID_IRedbookDiscMaster : IID_IJolietDiscMaster);
		return (tmp == 2 ? (formats[0] == act || formats[1] == act) : (tmp == 1 ? (formats[0] == act) : false));
	}	

	format				get_active_format()
	{
		IID iid = IID_NULL;
		if (!SUCCEEDED((*this)-&gt;GetActiveDiscMasterFormat(&amp;iid)))
			return F_NONE;

		return (iid == IID_IRedbookDiscMaster ? F_AUDIO : (iid == IID_IJolietDiscMaster ? F_DATA : F_NONE));
	}

	bool				set_active_format(const format&amp; form, void** pUnknown)
	{
		if (F_NONE == form)
			return false;

		return SUCCEEDED((*this)-&gt;SetActiveDiscMasterFormat((form == F_AUDIO ? IID_IRedbookDiscMaster : IID_IJolietDiscMaster), pUnknown));
	}

private:
	UINT_PTR	m_nProgressID;
};

#endif // DISC_MASTER_H__INCLUDED
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296167</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 31 May 2007 17:24:38 GMT</pubDate></item></channel></rss>