Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / reactos / win32ss / user / ntuser / callproc.c
diff --git a/reactos/win32ss/user/ntuser/callproc.c b/reactos/win32ss/user/ntuser/callproc.c
deleted file mode 100644 (file)
index 1a80fdd..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * COPYRIGHT:        See COPYING in the top level directory
- * PROJECT:          ReactOS kernel
- * PURPOSE:          Callproc support
- * FILE:             win32ss/user/ntuser/callproc.c
- * PROGRAMER:        Thomas Weidenmueller <w3seek@reactos.com>
- */
-
-#include <win32k.h>
-DBG_DEFAULT_CHANNEL(UserClass);
-
-/* CALLPROC ******************************************************************/
-
-WNDPROC
-GetCallProcHandle(IN PCALLPROCDATA CallProc)
-{
-    /* FIXME: Check for 64 bit architectures... */
-    return (WNDPROC)((ULONG_PTR)UserHMGetHandle(CallProc) | 0xFFFF0000);
-}
-
-BOOLEAN
-DestroyCallProc(_Inout_ PVOID Object)
-{
-    UserDeleteObject(UserHMGetHandle((PCALLPROCDATA)Object), TYPE_CALLPROC);
-    return TRUE;
-}
-
-PCALLPROCDATA
-CreateCallProc(IN PDESKTOP Desktop,
-               IN WNDPROC WndProc,
-               IN BOOL Unicode,
-               IN PPROCESSINFO pi)
-{
-    PCALLPROCDATA NewCallProc;
-    HANDLE Handle;
-
-    /* We can send any thread pointer to the object manager here,
-     * What's important is the process info */
-    NewCallProc = (PCALLPROCDATA)UserCreateObject(gHandleTable,
-                                             Desktop,
-                                             pi->ptiList,
-                                             &Handle,
-                                             TYPE_CALLPROC,
-                                             sizeof(CALLPROCDATA));
-    if (NewCallProc != NULL)
-    {
-        NewCallProc->pfnClientPrevious = WndProc;
-        NewCallProc->wType |= Unicode ? UserGetCPDA2U : UserGetCPDU2A ;
-        NewCallProc->spcpdNext = NULL;
-
-        /* Release the extra reference (UserCreateObject added 2 references) */
-        UserDereferenceObject(NewCallProc);
-    }
-
-    return NewCallProc;
-}
-
-BOOL
-UserGetCallProcInfo(IN HANDLE hCallProc,
-                    OUT PWNDPROC_INFO wpInfo)
-{
-    PCALLPROCDATA CallProc;
-
-    CallProc = UserGetObject(gHandleTable,
-                             hCallProc,
-                             TYPE_CALLPROC);
-    if (CallProc == NULL)
-    {
-        return FALSE;
-    }
-
-/* Use Handle pEntry->ppi!
-    if (CallProc->pi != GetW32ProcessInfo())
-    {
-        return FALSE;
-    }*/
-
-    wpInfo->WindowProc = CallProc->pfnClientPrevious;
-    wpInfo->IsUnicode = !!(CallProc->wType & UserGetCPDA2U);
-
-    return TRUE;
-}
-
-/*
-   Based on UserFindCallProc.
- */
-PCALLPROCDATA
-FASTCALL
-UserSearchForCallProc(
-   PCALLPROCDATA pcpd,
-   WNDPROC WndProc,
-   GETCPD Type)
-{
-   while ( pcpd && (pcpd->pfnClientPrevious != WndProc || pcpd->wType != Type) )
-   {
-      pcpd = pcpd->spcpdNext;
-   }
-   return pcpd;
-}
-
-/*
-   Get Call Proc Data handle for the window proc being requested or create a
-   new Call Proc Data handle to be return for the requested window proc.
- */
-ULONG_PTR
-FASTCALL
-UserGetCPD(
-   PVOID pvClsWnd,
-   GETCPD Flags,
-   ULONG_PTR ProcIn)
-{
-   PCLS pCls;
-   PWND pWnd;
-   PDESKTOP pDesk;
-   PCALLPROCDATA CallProc = NULL;
-   PTHREADINFO pti;
-
-   pti = PsGetCurrentThreadWin32Thread();
-
-   if ( Flags & (UserGetCPDWindow|UserGetCPDDialog) ||
-        Flags & UserGetCPDWndtoCls)
-   {
-      pWnd = pvClsWnd;
-      pCls = pWnd->pcls;
-   }
-   else
-      pCls = pvClsWnd;
-
-   // Search Class call proc data list.
-   if (pCls->spcpdFirst)
-      CallProc = UserSearchForCallProc( pCls->spcpdFirst, (WNDPROC)ProcIn, Flags);
-
-   // No luck, create a new one for the requested proc.
-   if (!CallProc)
-   {
-      if (!pCls->rpdeskParent)
-      {
-         TRACE("Null DESKTOP Atom %u\n",pCls->atomClassName);
-         pDesk = pti->rpdesk;
-      }
-      else
-         pDesk = pCls->rpdeskParent;
-      CallProc = CreateCallProc( pDesk,
-                                 (WNDPROC)ProcIn,
-                                 !!(Flags & UserGetCPDA2U),
-                                 pti->ppi);
-      if (CallProc)
-      {
-          CallProc->spcpdNext = pCls->spcpdFirst;
-          (void)InterlockedExchangePointer((PVOID*)&pCls->spcpdFirst,
-                                                    CallProc);
-          CallProc->wType = Flags;
-      }
-   }
-   return (ULONG_PTR)(CallProc ? GetCallProcHandle(CallProc) : NULL);
-}
-
-/* SYSCALLS *****************************************************************/
-
-/*
-   Retrieve the WinProcA/W or CallProcData handle for Class, Dialog or Window.
-   This Function called from user space uses Window handle for class, window
-   and dialog procs only.
-
-   Note:
-      ProcIn is the default proc from pCls/pDlg/pWnd->lpfnXxyz, caller is
-      looking for another type of proc if the original lpfnXxyz proc is preset
-      to Ansi or Unicode.
-
-      Example:
-        If pWnd is created from Ansi and lpfnXxyz is assumed to be Ansi, caller
-        will ask for Unicode Proc return Proc or CallProcData handle.
-*/
-ULONG_PTR
-APIENTRY
-NtUserGetCPD(
-   HWND hWnd,
-   GETCPD Flags,
-   ULONG_PTR ProcIn)
-{
-   PWND Wnd;
-   ULONG_PTR Result = 0;
-
-   UserEnterExclusive();
-   if (!(Wnd = UserGetWindowObject(hWnd)))
-   {
-      goto Cleanup;
-   }
-
-   // Processing Window only from User space.
-   if ((Flags & ~(UserGetCPDU2A|UserGetCPDA2U)) != UserGetCPDClass)
-      Result = UserGetCPD(Wnd, Flags, ProcIn);
-
-Cleanup:
-   UserLeave();
-   return Result;
-}
-