Remove no longer used PERQUEUEDATA structure and functions.

diff --git a/include/queue.h b/include/queue.h
index 591146e..b1eb20c 100644
--- a/include/queue.h
+++ b/include/queue.h
@@ -29,22 +29,6 @@
 
 #define WH_NB_HOOKS (WH_MAXHOOK-WH_MINHOOK+1)
 
-/* Per-queue data for the message queue
- * Note that we currently only store the current values for
- * Active, Capture and Focus windows currently.
- * It might be necessary to store a pointer to the system message queue
- * as well since windows 9x maintains per thread system message queues
- */
-typedef struct tagPERQUEUEDATA
-{
-  HWND    hWndFocus;              /* Focus window */
-  HWND    hWndActive;             /* Active window */
-  HWND    hWndCapture;            /* Capture window */
-  INT16     nCaptureHT;             /* Capture info (hit-test) */
-  ULONG     ulRefCount;             /* Reference count */
-  CRITICAL_SECTION cSection;        /* Critical section for thread safe access */
-} PERQUEUEDATA;
-
 struct received_message_info;
 
 /* Message queue */
@@ -68,23 +52,12 @@
 
   HANDLE16  hCurHook;               /* Current hook */
   HANDLE16  hooks[WH_NB_HOOKS];     /* Task hooks list */
-
-  PERQUEUEDATA *pQData;             /* pointer to (shared) PERQUEUEDATA structure */
-
 } MESSAGEQUEUE;
 
 
 #define QUEUE_MAGIC            0xD46E80AF
 #define MAX_SENDMSG_RECURSION  64
 
-/* Per queue data management methods */
-HWND PERQDATA_GetFocusWnd( PERQUEUEDATA *pQData );
-HWND PERQDATA_SetFocusWnd( PERQUEUEDATA *pQData, HWND hWndFocus );
-HWND PERQDATA_GetActiveWnd( PERQUEUEDATA *pQData );
-HWND PERQDATA_SetActiveWnd( PERQUEUEDATA *pQData, HWND hWndActive );
-HWND PERQDATA_GetCaptureWnd( INT *hittest );
-HWND PERQDATA_SetCaptureWnd( HWND hWndCapture, INT hittest );
-
 /* Message queue management methods */
 extern MESSAGEQUEUE *QUEUE_Current(void);
 extern MESSAGEQUEUE *QUEUE_Lock( HQUEUE16 hQueue );
diff --git a/windows/queue.c b/windows/queue.c
index 291c2cc..f6d5bb8 100644
--- a/windows/queue.c
+++ b/windows/queue.c
@@ -38,230 +38,6 @@
 WINE_DEFAULT_DEBUG_CHANNEL(msg);
 
 
-static PERQUEUEDATA *pQDataWin16 = NULL;  /* Global perQData for Win16 tasks */
-
-HQUEUE16 hActiveQueue = 0;
-
-
-/***********************************************************************
- *           PERQDATA_Addref
- *
- * Increment reference count for the PERQUEUEDATA instance
- * Returns reference count for debugging purposes
- */
-static void PERQDATA_Addref( PERQUEUEDATA *pQData )
-{
-    assert(pQData != 0 );
-    TRACE_(msg)("(): current refcount %lu ...\n", pQData->ulRefCount);
-
-    InterlockedIncrement( &pQData->ulRefCount );
-}
-
-
-/***********************************************************************
- *           PERQDATA_Release
- *
- * Release a reference to a PERQUEUEDATA instance.
- * Destroy the instance if no more references exist
- * Returns reference count for debugging purposes
- */
-static void PERQDATA_Release( PERQUEUEDATA *pQData )
-{
-    assert(pQData != 0 );
-    TRACE_(msg)("(): current refcount %lu ...\n",
-          (LONG)pQData->ulRefCount );
-
-    if (!InterlockedDecrement( &pQData->ulRefCount ))
-    {
-        DeleteCriticalSection( &pQData->cSection );
-
-        TRACE_(msg)("(): deleting PERQUEUEDATA instance ...\n" );
-
-        /* Deleting our global 16 bit perQData? */
-        if ( pQData == pQDataWin16 ) pQDataWin16 = 0;
-
-        /* Free the PERQUEUEDATA instance */
-        HeapFree( GetProcessHeap(), 0, pQData );
-    }
-}
-
-
-/***********************************************************************
- *           PERQDATA_CreateInstance
- *
- * Creates an instance of a reference counted PERQUEUEDATA element
- * for the message queue. perQData is stored globally for 16 bit tasks.
- *
- * Note: We don't implement perQdata exactly the same way Windows does.
- * Each perQData element is reference counted since it may be potentially
- * shared by multiple message Queues (via AttachThreadInput).
- * We only store the current values for Active, Capture and focus windows
- * currently.
- */
-static PERQUEUEDATA * PERQDATA_CreateInstance(void)
-{
-    PERQUEUEDATA *pQData;
-
-    BOOL16 bIsWin16 = 0;
-
-    TRACE_(msg)("()\n");
-
-    /* Share a single instance of perQData for all 16 bit tasks */
-    if ( ( bIsWin16 = !(NtCurrentTeb()->tibflags & TEBF_WIN32) ) )
-    {
-        /* If previously allocated, just bump up ref count */
-        if ( pQDataWin16 )
-        {
-            PERQDATA_Addref( pQDataWin16 );
-            return pQDataWin16;
-        }
-    }
-
-    /* Allocate PERQUEUEDATA from the system heap */
-    if (!( pQData = (PERQUEUEDATA *) HeapAlloc( GetProcessHeap(), 0,
-                                                    sizeof(PERQUEUEDATA) ) ))
-        return 0;
-
-    /* Initialize */
-    pQData->hWndCapture = pQData->hWndFocus = pQData->hWndActive = 0;
-    pQData->ulRefCount = 1;
-    pQData->nCaptureHT = HTCLIENT;
-
-    /* Note: We have an independent critical section for the per queue data
-     * since this may be shared by different threads. see AttachThreadInput()
-     */
-    InitializeCriticalSection( &pQData->cSection );
-    /* FIXME: not all per queue data critical sections should be global */
-    MakeCriticalSectionGlobal( &pQData->cSection );
-
-    /* Save perQData globally for 16 bit tasks */
-    if ( bIsWin16 )
-        pQDataWin16 = pQData;
-
-    return pQData;
-}
-
-
-/***********************************************************************
- *           PERQDATA_GetFocusWnd
- *
- * Get the focus hwnd member in a threadsafe manner
- */
-HWND PERQDATA_GetFocusWnd( PERQUEUEDATA *pQData )
-{
-    HWND hWndFocus;
-    assert(pQData != 0 );
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndFocus = pQData->hWndFocus;
-    LeaveCriticalSection( &pQData->cSection );
-
-    return hWndFocus;
-}
-
-
-/***********************************************************************
- *           PERQDATA_SetFocusWnd
- *
- * Set the focus hwnd member in a threadsafe manner
- */
-HWND PERQDATA_SetFocusWnd( PERQUEUEDATA *pQData, HWND hWndFocus )
-{
-    HWND hWndFocusPrv;
-    assert(pQData != 0 );
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndFocusPrv = pQData->hWndFocus;
-    pQData->hWndFocus = hWndFocus;
-    LeaveCriticalSection( &pQData->cSection );
-
-    return hWndFocusPrv;
-}
-
-
-/***********************************************************************
- *           PERQDATA_GetActiveWnd
- *
- * Get the active hwnd member in a threadsafe manner
- */
-HWND PERQDATA_GetActiveWnd( PERQUEUEDATA *pQData )
-{
-    HWND hWndActive;
-    assert(pQData != 0 );
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndActive = pQData->hWndActive;
-    LeaveCriticalSection( &pQData->cSection );
-
-    return hWndActive;
-}
-
-
-/***********************************************************************
- *           PERQDATA_SetActiveWnd
- *
- * Set the active focus hwnd member in a threadsafe manner
- */
-HWND PERQDATA_SetActiveWnd( PERQUEUEDATA *pQData, HWND hWndActive )
-{
-    HWND hWndActivePrv;
-    assert(pQData != 0 );
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndActivePrv = pQData->hWndActive;
-    pQData->hWndActive = hWndActive;
-    LeaveCriticalSection( &pQData->cSection );
-
-    return hWndActivePrv;
-}
-
-
-/***********************************************************************
- *           PERQDATA_GetCaptureWnd
- *
- * Get the capture hwnd member in a threadsafe manner
- */
-HWND PERQDATA_GetCaptureWnd( INT *hittest )
-{
-    MESSAGEQUEUE *queue;
-    PERQUEUEDATA *pQData;
-    HWND hWndCapture;
-
-    if (!(queue = QUEUE_Current())) return 0;
-    pQData = queue->pQData;
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndCapture = pQData->hWndCapture;
-    *hittest = pQData->nCaptureHT;
-    LeaveCriticalSection( &pQData->cSection );
-    return hWndCapture;
-}
-
-
-/***********************************************************************
- *           PERQDATA_SetCaptureWnd
- *
- * Set the capture hwnd member in a threadsafe manner
- */
-HWND PERQDATA_SetCaptureWnd( HWND hWndCapture, INT hittest )
-{
-    MESSAGEQUEUE *queue;
-    PERQUEUEDATA *pQData;
-    HWND hWndCapturePrv;
-
-    if (!(queue = QUEUE_Current())) return 0;
-    pQData = queue->pQData;
-
-    EnterCriticalSection( &pQData->cSection );
-    hWndCapturePrv = pQData->hWndCapture;
-    pQData->hWndCapture = hWndCapture;
-    pQData->nCaptureHT = hittest;
-    LeaveCriticalSection( &pQData->cSection );
-    return hWndCapturePrv;
-}
-
-
-
 /***********************************************************************
  *	     QUEUE_Lock
  *
@@ -378,10 +154,6 @@
     msgQueue->self = hQueue;
     msgQueue->lockCount = 1;
     msgQueue->magic = QUEUE_MAGIC;
-
-    /* Create and initialize our per queue data */
-    msgQueue->pQData = bCreatePerQData ? PERQDATA_CreateInstance() : NULL;
-
     return hQueue;
 }
 
@@ -410,21 +182,7 @@
     }
 
     msgQueue->magic = 0;
-
-    if( hActiveQueue == hQueue ) hActiveQueue = 0;
-
-    HeapLock( GetProcessHeap() );  /* FIXME: a bit overkill */
-
-    /* Release per queue data if present */
-    if ( msgQueue->pQData )
-    {
-        PERQDATA_Release( msgQueue->pQData );
-        msgQueue->pQData = 0;
-    }
-
     msgQueue->self = 0;
-
-    HeapUnlock( GetProcessHeap() );
     SetThreadQueue16( 0, 0 );
 
     /* free up resource used by MESSAGEQUEUE structure */