Chinaunix首页 | 论坛 | 博客
  • 博客访问: 627775
  • 博文数量: 138
  • 博客积分: 3067
  • 博客等级: 中校
  • 技术积分: 1565
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-21 12:44
文章分类

全部博文(138)

文章存档

2016年(5)

2014年(4)

2012年(1)

2011年(2)

2010年(10)

2009年(19)

2008年(97)

我的朋友

分类: WINDOWS

2008-08-19 17:02:39

Use IMAPI burn ISO file

IMAPI 1.0
needed: 
  • Platform Software Development Kit

IMAPI 2.0
nedded:
  • Windows SDK for Windows Server 2008 and .NET Framework 3.5
  • WindowsXP-KB932716-v2-x86-CHS.exe [ for XP ]

Note:
1.
::CoInitialize(0) ;

2. read iso file into istream
SHCreateStreamOnFileEx(fileName, STGM_READ, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_SEQUENTIAL_SCAN,FALSE, NULL, &dataStream );

3. blank CD
IMAPI 1.0
    IDiscRecorder->Erase(bFullErase)
IMAPI 2.0
    CComPtr discFormatErase;
    CoCreateInstance(__uuidof(MsftDiscFormat2Erase), NULL, CLSCTX_INPROC_SERVER,
            __uuidof(IDiscFormat2Erase), (void**)&discFormatErase);
    discFormatErase->put_Recorder(pRecorder);
    discFormatErase->put_ClientName(clientName);
    discFormatErase->EraseMedia();

4. CString --> LPWCSTR
    CString clientName = CLIENT_NAME;
    BSTR bstrText = clientName.AllocSysString();
    SysFreeString(bstrText);

5. burn
IMAPI 1.0
    CComQIPtr dm;
    dm.CoCreateInstance(CLSID_MSDiscMasterObj,NULL,
            CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER);
    dm->Open();

    CComQIPtr dr;
    dm->SetActiveDiscRecorder(dr);
    CComQIPtr jdm(dm);
    jdm->AddData(storage, FALSE);
    dm->RecordDisc(FALSE, FALSE);
IMAPI 2.0
    CComBSTR DriveUnqueID;
    discMaster->get_Item( DriveIndex, &DriveUnqueID );
    CComPtr recorder;
    recorder.CoCreateInstance(__uuidof(MsftDiscRecorder2));
    recorder->InitializeDiscRecorder( DriveUnqueID );

    CComPtr discFormat2Data;
    discFormat2Data.CoCreateInstance(__uuidof(MsftDiscFormat2Data));
    discFormat2Data->put_Recorder( recorder );
    discFormat2Data->put_ClientName( L"VistaCDWriterTest" );
    discFormat2Data->Write( StreamOut );
阅读(2342) | 评论(0) | 转发(0) |
0

上一篇:列车停了

下一篇:PPPoE

给主人留下些什么吧!~~