Multithreading WTL, várias interfaces e bibliotecas

Eu tenho um segmento principal que exibe uma interface, dentro de outro segmento criado a partir do thread principal antes da interface principal é mostrada, cria várias outras janelas seqüencialmente: Eu crio a primeira janela:

    CWarningDlg warnDlg;
    warnDlg.Create(NULL);
    warnDlg.ShowWindow(SW_SHOW);
    warnDlg.BringWindowToTop();
    CMessageLoop _Loop ;

    if(_MyAppModule.AddMessageLoop(&_Loop))
    {
        nRet = _Loop.Run();
        _MyAppModule.RemoveMessageLoop();
    }
    warnDlg.DestroyWindow();
    if (nRet == SOME_VALUE)
    {
       doSomethingElse();
    }

Faça outra coisa:

 CActionDlg actDlg;
    actDlg.Create(NULL);
    actDlg.ShowWindow(SW_SHOW);
    actDlg.BringWindowToTop();
    CMessageLoop _Loop ;

    if(_MyAppModule.AddMessageLoop(&_Loop))
    {
        CreateAnObject(); //this also launches an object Specific Worker Thread
        nRet = _Loop.Run();
        _MyAppModule.RemoveMessageLoop();
    }

A função CreateAnObject chama algumas funções de um 'ComplexObject.DLL' que cria um objeto complexo que contém o ID de THREAD do segmento que chamou a função de criação, ele obtém com::GetCurrentThreadId(); , ao criar este objeto complexo, o GetCurrentThreadId () retorna o ID do SEGUNDO THREAD, que é GOOD. Agora, no meu CActionDialog recebo notificações desse objeto usind :: SendMessage (), a função SendMessage é chamada de dentro de um thread de trabalho é específico para o objeto complexo recém criado. Quando eu recebo essas notificações eu preciso acessar alguns dos valores desse objeto complexo, para que eu chame algumas outras funções de 'ComplexObject.DLL' que verificar usando a função :: GetCurrentThreadId () que o ID do segmento de chamada é o mesmo que o ID do encadeamento que criou esse objeto complexo. Essa verificação falha para mim, porque as funções são chamadas usando o ID de encadeamento do MAIN THREAD, que possui a GUI da interface principal. Por que é que? Eu não entendo! (Espero ter me explicado com sucesso).

questionAnswers(1)

yourAnswerToTheQuestion