我要使用imapi中的开发光盘刻录软件,其中的对象包括MSDiscMasterObj等等,我用CoCreateInstance()无法创建该对象的接口啊,总是返回负值,代码如下:
IDiscMaster* pDiscMaster = NULL;
//获取MSDiscMasterObj的CLSID
CLSID CLSID_MSDiscMaster = {0x520CCA63,0x51A5,0x11D3,0x91,0x44,0x00,0x10,0x4B,0xA1,0x1C,0x5E}};
//获取该对象接口的IID
IID IID_IDiscMaster = {0x520CCA62,0x51A5,0x11D3,0x91,0x44,0x00,0x10,0x4B,0xA1,0x1C,0x5E}};
//创建接口实例
HRESULT hr = CoCreateInstance(CLSID_MSDiscMaster,NULL,CLSCTX_ALL,
IID_IDiscMaster,(LPVOID*)&pDiscMaster); 返回的hr不是定义好的标准值,而是负数,请问这是为什么啊?
IDiscMaster* pDiscMaster = NULL;
//获取MSDiscMasterObj的CLSID
CLSID CLSID_MSDiscMaster = {0x520CCA63,0x51A5,0x11D3,0x91,0x44,0x00,0x10,0x4B,0xA1,0x1C,0x5E}};
//获取该对象接口的IID
IID IID_IDiscMaster = {0x520CCA62,0x51A5,0x11D3,0x91,0x44,0x00,0x10,0x4B,0xA1,0x1C,0x5E}};
//创建接口实例
HRESULT hr = CoCreateInstance(CLSID_MSDiscMaster,NULL,CLSCTX_ALL,
IID_IDiscMaster,(LPVOID*)&pDiscMaster); 返回的hr不是定义好的标准值,而是负数,请问这是为什么啊?
hr>0为警告;hr<0为错误;hr ==0表示执行成功
这个32位值高第一位表示了错误的严程度 如果你用signed int输出得到一个负值的话 那说明返回了一个错误(最高位是11111111)
然后,我添加了一句"hr = CoInitialize(NULL);",可还是返回负值,再次lookup,得到的是错误是:“无法启动服务,原因可能是被禁用或与其相关联的设备没有启动”
我所用到的设备就是刻录机了,已经打开了,并工作正常啊。
还有可能是什么问题呢?
我用的这个com没有注册,不知道是不是这个问题