IEAssociateThreadWithTab function

Associates a UI thread with a tab in Windows Internet Explorer.

Syntax

HRESULT IEAssociateThreadWithTab(
   DWORD dwTabThreadID,
   DWORD dwAssociatedThreadID
);

Parameters

  • dwTabThreadID
    The tab thread ID.

  • dwAssociatedThreadID
    The ID of the UI thread to associate.

Return value

Returns S_OK if successful, or E_FAIL if the thread could not be associated.

Remarks

Windows Internet Explorer suppresses dialog boxes and other UI elements if they are not associated with the current tab thread. This function provides a way for add-ons to associate a UI thread with the current tab.

In Internet Explorer, an add-on DLL is loaded once for each tab thread; therefore, calling GetCurrentThreadId in the main thread of the add-on is sufficient to return the current tab thread ID.

Examples

This example shows how to use LoadLibrary and GetProcAddress to load and call IEAssociateThreadWithTab.

typedef HRESULT (WINAPI * PFNIEASSOCIATETHREADWITHTAB)
    (__in DWORD dwTabThreadID, __in DWORD dwAssociatedThreadID);

HRESULT CMyActiveXControl::CreateThreadedBrowser()
{
    HRESULT hr = E_FAIL;

    DWORD dwThreadId = 0;
    HANDLE hThread = CreateThread(NULL, 0, BrowserThreadProc, (void*)this, 0, &dwThreadId);
    if (hThread != NULL)
    {
        HMODULE hModule = LoadLibrary(L"ieframe.dll");
        if (hModule != NULL)
        {
            PFNIEASSOCIATETHREADWITHTAB pfnIEAssociateThreadWithTab = 
                (PFNIEASSOCIATETHREADWITHTAB)GetProcAddress(hModule, "IEAssociateThreadWithTab");
            if (pfnIEAssociateThreadWithTab != NULL)
            {
                hr = pfnIEAssociateThreadWithTab(GetCurrentThreadId(), dwThreadId);
            }
        }
    }

    return hr;
} 

Requirements

Minimum supported client

Windows XP with SP2

Minimum supported server

Windows Server 2003

Header

N/A

DLL

Ieframe.dll

See also

IEDisassociateThreadWithTab