Проблемы Com & Multithreading

Тема в разделе "MS Visual C++", создана пользователем -=Bright=-, 21 ноя 2006.

Статус темы:
Закрыта.
  1. -=Bright=-

    -=Bright=- Гость

    Здравствуйте!
    У меня следующая проблема: не могу подключиться к COM-серверу, если использую многопоточность.
    Упрощенно структура программы имеет такой вид:
    class CTerminalApp : public CWinApp
    {
    private:
    CForexServer server; // COM-сервер
    }

    Подключаемся к серверу:
    void CTerminalApp::OnLogindlg()
    {
    bool bSuccess=false;
    CLSID clsid;
    if (SUCCEEDED (CLSIDFromProgID (OLESTR ("ForexServer.Application"), &clsid)))
    {
    IUnknown* pUnknown;
    if (SUCCEEDED :):GetActiveObject(clsid, NULL, &pUnknown)))
    {
    IDispatch* pDispatch;
    if (SUCCEEDED (pUnknown->QueryInterface (IID_IDispatch, (void**) &pDispatch)))
    {
    pDispatch->Release();
    server.AttachDispatch(pDispatch);
    bSuccess=true;
    }
    }
    }

    if (!bSuccess)
    if (!server.CreateDispatch(_T ("ForexServer.Application")))
    {
    MessageBox(m_pMainWnd->m_hWnd,"Could not connect to the server! Please check connection and try again.","ERROR",MB_OK);
    return;
    }
    }

    По таймеру,запускаем новый поток, чтобы забрать с сервера новые данные:
    void CALLBACK EXPORT TimerProc(HWND hWnd, UINT nMsg, UINT nIDEvent, DWORD dwTime)
    {
    theApp.GetCurrentPrices();
    AfxBeginThread(CurrentPrices,&theApp);

    return;
    }

    UINT CurrentPrices(LPVOID pParam)
    {
    CTerminalApp *serv=(CTerminalApp*) pParam;
    serv->GetCurrentPrices();
    return 0;
    }

    При попытке выполнения метода CForexServer::GetCurrentPrices() программа выдает ошибку, даже если внутри самой функции CurrentPrices попытаться заново подключиться к серверу.
    Помогите пожалуйста кто знает в чем проблема!
    Заранее благодарен!
     
Загрузка...
Похожие Темы - Проблемы Com Multithreading
  1. aliaksandr89
    Ответов:
    3
    Просмотров:
    151
  2. Amfion
    Ответов:
    5
    Просмотров:
    146
  3. wowa
    Ответов:
    7
    Просмотров:
    402
  4. John_Tavarez
    Ответов:
    0
    Просмотров:
    343
  5. Валентин Амбер
    Ответов:
    11
    Просмотров:
    372
Статус темы:
Закрыта.

Поделиться этой страницей