IMAPI2 一张光盘多次刻录问题

时间:2022-01-03 16:44:17
网上找了很多关于一张光盘多次刻录,但是均不能解决我的问题啊,不知都是否有人能帮助我一下。
我使用了IDiscFormat2Data接口刻录。大概的流程:



discFormat2Data->get_MultisessionInterfaces(&pSafeArrayMulSession);

if(pSafeArrayMulSession->rgsabound[0].cElements > 0)
{
IMultisession *pMultisession = NULL; 
VARIANT *pV = NULL;
SafeArrayAccessData(pSafeArrayMulSession,(void**)&pV);
pMultisession = (IMultisession*)pV[0].pdispVal;
if(pMultisession)
{
hrTemp = pMultisession->put_InUse(VARIANT_TRUE);
}
}

discFormat2Data->get_MediaHeuristicallyBlank(vbBlank);

if(vbBlank == VARIANT_TRUE)
{
     image->put_FileSystemsToCreate((FsiFileSystems)(FsiFileSystemJoliet|FsiFileSystemISO9660));
image->put_VolumeName(pThis->m_volumeLabel.AllocSysString()); 
image->ChooseImageDefaultsForMediaType(mediaType);
}
else
{
hr = image->put_MultisessionInterfaces(pSafeArrayMulSession);
hr = image->ChooseImageDefaultsForMediaType(mediaType);
if(SUCCEEDED(hr))
{
FsiFileSystems fileSystems ;
hr = image->ImportFileSystem(&fileSystems);
                        // fileSystems = FsiFileSystemJoliet|FsiFileSystemISO9660; // 当返回错误时
  if(SUCCEEDED(hr))
{
hr = image->put_FileSystemsToCreate(fileSystems); 
}
                 }
}



第一次每次肯定都是刻录成功的,第二次刻录的时候,hr = image->ImportFileSystem(&fileSystems);返回错误,错误代码是:IMAPI_E_NO_SUPPORTED_FILE_SYSTEM,然后刻录自然不成功了。当程序返回错误时,我手动将fileSystems手动赋值,结果刻录成功了,但是在光盘中看不见我新增刻录的文件了,不知道是否有高手能帮助我下。。。。

11 个解决方案

#1


不知道是否有高手能帮助我下。。。。

我不是高手,所以不会。

帮你顶帖子吧

#2


else
{
        hr = image->put_MultisessionInterfaces(pSafeArrayMulSession);
        hr = image->ChooseImageDefaultsForMediaType(mediaType);
        if(SUCCEEDED(hr))
        {
            FsiFileSystems fileSystems ;
            hr = image->ImportFileSystem(&fileSystems);
                        // fileSystems = FsiFileSystemJoliet|FsiFileSystemISO9660; // 当返回错误时
             if(SUCCEEDED(hr))
            {
                hr = image->put_FileSystemsToCreate(fileSystems); 
            }
                 }
}

我将其中的 
             if(SUCCEEDED(hr))
            {
                hr = image->put_FileSystemsToCreate(fileSystems); 
            }
删除掉,结果发现:可以刻录CD光盘,但是无法刻录DVD光盘。。。。。悲哀啊,我恰恰只要刻录DVD光盘的。。。。。。。


帮帮忙吧,高手们

#3


哎,看来是没人回复了,不过我自己弄好了,等过段时间我上传一个我写的Demo刻录程序,感兴趣的朋友可以下载参考下。

记得微软官方网站有篇文章,大大影响了我写刻录程序,不过最新的API貌似已经修复了这个问题,文章地址: http://support.microsoft.com/kb/888622

如果大家对刻录这块有什么问题的话,欢迎同我一起探讨啊,也许我不一定能帮上什么忙,呵呵。

再次感谢那些回贴的同胞们.....

#4


楼主可不可以给小弟发一个demo.
jzljr@sina.com

#5


楼主 能发个demo吗,最近正在做这个
在获取光盘的总大小,可用大小上面老是不能解决
ynj@sinodata.com.cn
谢谢楼主了啊

#6


楼主能回个demo吗,我的程序也是一直返回IMAPI_E_NO_SUPPORTED_FILE_SYSTEM,好久都没解决,我的邮箱为caolei3470@126.com ,非常感谢,我希望我们能多多交流

#7


楼主你上传个demo供大家学习吗?
刻录的资料确实很少。
楼主要是怕给别人源码,那能不能给点思路 步骤之类的
以免大家走弯路

#8


楼主,能否发个demo给小弟,我邮箱:853255884@qq.com,谢谢啦。。

#9


http://download.csdn.net/detail/zhangby629/2922346

#10


您好,我也遇到DVD不能多次刻录的问题,我使用Nero就可以对DVD+RW进行多次写入,我使用了在您帖子最后一个链接的例子的代码进行了测试,发现能进行CD的多次刻录,但DVD不行,恳请的你的帮助,我的邮箱是13817698901@139.com,感谢。

#11


您好,我也遇到DVD不能多次刻录的问题,我使用Nero就可以对DVD+RW进行多次写入,我使用了在您帖子最后一个链接的例子的代码进行了测试,发现能进行CD的多次刻录,但DVD不行,恳请的你的帮助,我的邮箱是13817698901@139.com,感谢。

#1


不知道是否有高手能帮助我下。。。。

我不是高手,所以不会。

帮你顶帖子吧

#2


else
{
        hr = image->put_MultisessionInterfaces(pSafeArrayMulSession);
        hr = image->ChooseImageDefaultsForMediaType(mediaType);
        if(SUCCEEDED(hr))
        {
            FsiFileSystems fileSystems ;
            hr = image->ImportFileSystem(&fileSystems);
                        // fileSystems = FsiFileSystemJoliet|FsiFileSystemISO9660; // 当返回错误时
             if(SUCCEEDED(hr))
            {
                hr = image->put_FileSystemsToCreate(fileSystems); 
            }
                 }
}

我将其中的 
             if(SUCCEEDED(hr))
            {
                hr = image->put_FileSystemsToCreate(fileSystems); 
            }
删除掉,结果发现:可以刻录CD光盘,但是无法刻录DVD光盘。。。。。悲哀啊,我恰恰只要刻录DVD光盘的。。。。。。。


帮帮忙吧,高手们

#3


哎,看来是没人回复了,不过我自己弄好了,等过段时间我上传一个我写的Demo刻录程序,感兴趣的朋友可以下载参考下。

记得微软官方网站有篇文章,大大影响了我写刻录程序,不过最新的API貌似已经修复了这个问题,文章地址: http://support.microsoft.com/kb/888622

如果大家对刻录这块有什么问题的话,欢迎同我一起探讨啊,也许我不一定能帮上什么忙,呵呵。

再次感谢那些回贴的同胞们.....

#4


楼主可不可以给小弟发一个demo.
jzljr@sina.com

#5


楼主 能发个demo吗,最近正在做这个
在获取光盘的总大小,可用大小上面老是不能解决
ynj@sinodata.com.cn
谢谢楼主了啊

#6


楼主能回个demo吗,我的程序也是一直返回IMAPI_E_NO_SUPPORTED_FILE_SYSTEM,好久都没解决,我的邮箱为caolei3470@126.com ,非常感谢,我希望我们能多多交流

#7


楼主你上传个demo供大家学习吗?
刻录的资料确实很少。
楼主要是怕给别人源码,那能不能给点思路 步骤之类的
以免大家走弯路

#8


楼主,能否发个demo给小弟,我邮箱:853255884@qq.com,谢谢啦。。

#9


http://download.csdn.net/detail/zhangby629/2922346

#10


您好,我也遇到DVD不能多次刻录的问题,我使用Nero就可以对DVD+RW进行多次写入,我使用了在您帖子最后一个链接的例子的代码进行了测试,发现能进行CD的多次刻录,但DVD不行,恳请的你的帮助,我的邮箱是13817698901@139.com,感谢。

#11


您好,我也遇到DVD不能多次刻录的问题,我使用Nero就可以对DVD+RW进行多次写入,我使用了在您帖子最后一个链接的例子的代码进行了测试,发现能进行CD的多次刻录,但DVD不行,恳请的你的帮助,我的邮箱是13817698901@139.com,感谢。