Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cherche doc et liens pour gravure de CDs

32 réponses
Avatar
Michaël Delva
Bonsoir à tous,

j'ai cherché pas de temps là dessus, et mis à part des liens de la MSDN sur
IMAPI, j'ai rien trouvé d'autre...

Je voudrais permettre la gravure de CDs depuis mon soft, et de préférence
grâce aux ASPI, parce qu'IMAPI est réservé à Windows XP si j'ai bien saisi.

Mais rien à me mettre sous la dent...

Si vous avez du code source de logiciels qui font ça, c'est encore mieux
;-)

Merci d'avance

10 réponses

1 2 3 4
Avatar
Michel Leunen
Michaël Delva wrote:

Je voudrais permettre la gravure de CDs depuis mon soft, et de préférence
grâce aux ASPI, parce qu'IMAPI est réservé à Windows XP si j'ai bien saisi.



Tu peux trouver un SDK sur le site de Nero:
http://www.nero.com/en/631927526314911.html

Michel
--
----------------------------------------
Michel Leunen
mailto: see my homepage.
C++Builder, C++BuilderX, BCC5.5.1 Web site:
http://www.leunen.com/
----------------------------------------
Avatar
Michaël Delva
Michel Leunen wrote in
news:403b1166$0$7040$:

Michaël Delva wrote:

Je voudrais permettre la gravure de CDs depuis mon soft, et de
préférence grâce aux ASPI, parce qu'IMAPI est réservé à Windows XP si
j'ai bien saisi.



Tu peux trouver un SDK sur le site de Nero:
http://www.nero.com/en/631927526314911.html

Michel



J'ai déjà vu ça, mais je ne voudrais pas imposer à l'utilisateur de mon
logiciel d'avoir NERO d'installé sur sa machine...

Merci quand même!!
Avatar
Christian ASTOR
Michaël Delva a écrit:

j'ai cherché pas de temps là dessus, et mis à part des liens de la MSDN sur
IMAPI, j'ai rien trouvé d'autre...

Je voudrais permettre la gravure de CDs depuis mon soft, et de préférence
grâce aux ASPI, parce qu'IMAPI est réservé à Windows XP si j'ai bien saisi.



Un peu bordélique :
http://www.hochfeiler.it/alvise/cd-r.htm
Avatar
Michaël Delva
Christian ASTOR wrote in news:403b41ab$0$5916
$:

http://www.hochfeiler.it/alvise/cd-r.htm



Effectivement, c'est loin d'être clair...

Je pense que je vais me tourner vers IMAPI, comme de toute façon le soft va
tourner sur XP...

Mais bon, c'est dommage qu'il n'y ait pas plus de doc sur les ASPI :-(
Avatar
Vincent Burel
"Michaël Delva" wrote in message
news:
Christian ASTOR wrote in news:403b41ab$0$5916
$:

> http://www.hochfeiler.it/alvise/cd-r.htm

Effectivement, c'est loin d'être clair...

Je pense que je vais me tourner vers IMAPI, comme de toute façon le soft


va
tourner sur XP...

Mais bon, c'est dommage qu'il n'y ait pas plus de doc sur les ASPI :-(



je viens de faire une implémentation en 'C' de IMAPI pour XP, et c'est un
composant qui marche bien.
juste un conseil : faites une couche qui interface l'objet COM dans un autre
thread parce que
-1- la fonction burnCD est blocante.
-2- tous les appels aux composants IDiscMaster et associés doivent se faire
dans le même thread (sinon ca marche pas : par exemple si vous faite votre
préparation CD dans le Thread primaire et que vous décidez d'appeler BurnCD
dans un Thread secondaire pour ne pas bloquer votre interface, ben ca ne
marche pas).

voila, sinon, faire une interface IDiscMasterProgressEvents en "C"... ca
c'est amusant ! :-)

A+
VB
Avatar
FERNANDES Jean
Salut,

tu peux utiliser les commandes MMC pour piloter les graveurs.
On dira que c'est de la programmation bas niveau.

A+

Jean.


"Michaël Delva" a écrit dans le message de
news:
Bonsoir à tous,

j'ai cherché pas de temps là dessus, et mis à part des liens de la MSDN


sur
IMAPI, j'ai rien trouvé d'autre...

Je voudrais permettre la gravure de CDs depuis mon soft, et de préférence
grâce aux ASPI, parce qu'IMAPI est réservé à Windows XP si j'ai bien


saisi.

Mais rien à me mettre sous la dent...

Si vous avez du code source de logiciels qui font ça, c'est encore mieux
;-)

Merci d'avance


Avatar
Michaël Delva
"Vincent Burel" wrote in
news:c1fl6k$btc$:
je viens de faire une implémentation en 'C' de IMAPI pour XP, et
c'est un composant qui marche bien.
juste un conseil : faites une couche qui interface l'objet COM dans un
autre thread parce que
-1- la fonction burnCD est blocante.
-2- tous les appels aux composants IDiscMaster et associés doivent se
faire dans le même thread (sinon ca marche pas : par exemple si vous
faite votre préparation CD dans le Thread primaire et que vous décidez
d'appeler BurnCD dans un Thread secondaire pour ne pas bloquer votre
interface, ben ca ne marche pas).

voila, sinon, faire une interface IDiscMasterProgressEvents en "C"...
ca c'est amusant ! :-)

A+
VB




Je me suis aussi renseigné sur IMAPI, mais j'ai un problème avec Borland
C++ Builder

En effet, la commande suivante ne fonctionne pas:

IDiscMaster *pDM;

HRESULT hr = CoCreateInstance(
CLSID_MSDiscMasterObj,
NULL,
CLSCTX_SERVER,
IID_IDiscMaster,
(void **) &pDM);
if (FAILED(hr))
{
ShowMessage("Impossible d'initialiser pDM");
CoUninitialize();
return;
}

C'est une erreur du lieur:
[Lieur Erreur] Unresolved external '_CLSID_MSDiscMasterObj' referenced from
E:BORLANDCBUILDER6PROJECTSTEST GRAVUREUNIT1.OBJ

Il ne me reconnait pas CLSID_MSDiscMasterObj...

J'ai cru comprendre que ça peut être du à ma version de uuid.lib qui n'est
pas à jour. Pourtant j'ai bien la dernière version...

Sinon j'ai essayé cette autre solution, mais là c'est l'instanciation de
pDM qui merde:

CLSID Uuid;

hr = IIDFromString(StringToOleStr("{520CCA63-51A5-11D3-9144-
00104BA11C5E}"),&Uuid);
if (FAILED(hr))
{
ShowMessage("Impossible d'initialiser Uuid");
CoUninitialize();
return;
}

hr = CoCreateInstance(
Uuid,
NULL,
CLSCTX_SERVER,
IID_IDiscMaster,
(void **) &pDM);
if (FAILED(hr))
{
ShowMessage("Impossible d'initialiser pDM");
CoUninitialize();
return;
}

Donc j'arrive pas à instancier pDM. Ca n'apparait pas, mais j'ai bien fait
le CoInitialize(); avant...

Si jamais tu peux me filer un coup de main pour ça, ça serait bien
plaisant...
Avatar
Vincent Burel
"Michaël Delva" wrote in message
news:
"Vincent Burel" wrote in
news:c1fl6k$btc$:
> je viens de faire une implémentation en 'C' de IMAPI pour XP, et
> c'est un composant qui marche bien.
> juste un conseil : faites une couche qui interface l'objet COM dans un
> autre thread parce que
> -1- la fonction burnCD est blocante.
> -2- tous les appels aux composants IDiscMaster et associés doivent se
> faire dans le même thread (sinon ca marche pas : par exemple si vous
> faite votre préparation CD dans le Thread primaire et que vous décidez
> d'appeler BurnCD dans un Thread secondaire pour ne pas bloquer votre
> interface, ben ca ne marche pas).
>
> voila, sinon, faire une interface IDiscMasterProgressEvents en "C"...
> ca c'est amusant ! :-)
>
> A+
> VB
>

Je me suis aussi renseigné sur IMAPI, mais j'ai un problème avec Borland
C++ Builder

En effet, la commande suivante ne fonctionne pas:

IDiscMaster *pDM;

HRESULT hr = CoCreateInstance(
CLSID_MSDiscMasterObj,
NULL,
CLSCTX_SERVER,
IID_IDiscMaster,
(void **) &pDM);
if (FAILED(hr))
{
ShowMessage("Impossible d'initialiser pDM");
CoUninitialize();
return;
}

C'est une erreur du lieur:
[Lieur Erreur] Unresolved external '_CLSID_MSDiscMasterObj' referenced


from
E:BORLANDCBUILDER6PROJECTSTEST GRAVUREUNIT1.OBJ



ouaip, je te rassure , ca peut faire la même chose avec VC++ :-)
c'est simplement que ton linker ne trouve pas ce truc :
CLSID_MSDiscMasterObj
c'est donc qu'il te manque une lib qqc part ... mais bon quand on fait du
COM on s'en fout de ça.

si tu veux pas t'emmerder, récupère les GUID dans les header d'interface et
déclare les toi même dans ton source. Comme ca t'as pas besoin d'une lib
spécifique et ton source compilera aussi bien sur un autre IDE...

exemple :

static GUID myCLSID_MSDiscMasterObj
={0x520CCA63,0x51A5,0x11D3,0x91,0x44,0x00,0x10,0x4B,0xA1,0x1C,0x5E};


VB
Avatar
Thierry
Bonjour,

Vincent Burel a écrit :

ouaip, je te rassure , ca peut faire la même chose avec VC++ :-)



#import facilite quand même la vie.

--
« Willy, j'ai mangé le chat. »
Avatar
Christian ASTOR
Michaël Delva a écrit:


Mais bon, c'est dommage qu'il n'y ait pas plus de doc sur les ASPI :-(



Il y a la doc technique qui est qd même assez détaillée.
http://www.google.fr/search?qÊche:WJ-41jH9AVUJ:850gs.ath.cx/pub/windows/system/exploit/CDROM/ASPI/ASPI32.DOC+specification++sendaspi32command&hl=fr&ie=UTF-8
Mais utilise IMAPI.
1 2 3 4