如下代码:const IID IID_IBeepObj =
 {0x89547ECD,0x36F1,0x11D2,{0x85,0xDA,0xD7,0x43,0xB2,0x32,0x69,0x28}};
const CLSID CLSID_BeepObj = 
 {0x89547ECE,0x36F1,0x11D2,{0x85,0xDA,0xD7,0x43,0xB2,0x32,0x69,0x28}};int main(int argc, char* argv[])
{
    HRESULT hr;                       // COM error code
    IBeepObj *IBeep;                  // pointer to interface    hr = CoInitialize(0);             // initialize COM
    if (SUCCEEDED(hr))                // macro to check for success
    {
        hr = CoCreateInstance( 
                CLSID_BeepObj,        // COM class id
                NULL,                 // outer unknown
                CLSCTX_INPROC_SERVER, // server INFO
                IID_IBeepObj,         // interface id
                (void**)&IBeep );     // pointer to interface        if (SUCCEEDED(hr))  //为何总是返回错误(负值)???
        {
            
            hr = IBeep->Beep(800);    // call method
            hr = IBeep->Release();    // release interface
        }
    }
    CoUninitialize();                 // close COM
    return 0;
}BeepObj已经安装好了。

解决方案 »

  1.   

    CoCreateInstance的参数CLSCTX_INPROC_SERVER改成CLSCTX_ALL试试
      

  2.   

    to: cheng_young(古道西风瘦马)不行啊!
      

  3.   

    IID_IBeepObj CLSID_BeepObj的植是否正确?
    可用VB或脚本语言测试一下是不是控件本身的原因
      

  4.   

    CoCreateInstance 总是返回负值
      

  5.   

    我摸索出的一点经验,希望对你有用,不过看样子是你的组件没有注册成功,或组件本身有问题
    http://expert.csdn.net/Expert/topic/1335/1335357.xml?temp=.1832086