int main()

{

    HRESULT hr;

    string str;


    CLSID clsid;

    IUnknown* punk;

    IDispatch* pdisp = (IDispatch*)NULL;

    DISPID dispid;

    DISPPARAMS dispparamsNoArgs = { NULL, NULL, 0, 0 };

    DWORD class_reg;


    //CoInitializeEx(nullptr, COINIT_MULTITHREADED);

    hr = OleInitialize(NULL);



    hr = CLSIDFromProgIDEx(OLESTR("KHOPENAPI.KHOpenAPICtrl.1"), &clsid);



    _DKHOpenAPI* pApp = nullptr;

    hr = CoCreateInstance(clsid, nullptr, CLSCTX_INPROC_SERVER, __uuidof(_DKHOpenAPI), reinterpret_cast<LPVOID*>(&pApp));



    hr = pApp->QueryInterface(IID_IDispatch, (void**)&pdisp);



    LPOLESTR olestr = const_cast <wchar_t*>(L"CommConnect");

    //OLECHAR* szMember = L"CommConnect";

    hr = pdisp->GetIDsOfNames(IID_NULL, &olestr, 1, LOCALE_USER_DEFAULT, &dispid);


    hr = pdisp->Invoke(

        dispid,

        IID_NULL,

        LOCALE_USER_DEFAULT,

        DISPATCH_METHOD,

        &dispparamsNoArgs, NULL, NULL, NULL);


    cin.get();

    cin.get();

    OleUninitialize();

    //CoUninitialize();

    return 0;

}