Проблемы Com & Multithreading

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

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  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. hitesh
    Ответов:
    3
    Просмотров:
    58
  2. Hackerelite
    Ответов:
    24
    Просмотров:
    237
  3. phreakerrazdva
    Ответов:
    9
    Просмотров:
    124
  4. nikos
    Ответов:
    63
    Просмотров:
    1.080
  5. Bohdan
    Ответов:
    6
    Просмотров:
    178
Статус темы:
Закрыта.

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