[MMIXER] Fix additional data size initialization for different audio formats (#6753)
[reactos.git] / win32ss / include / callback.h
index 20ec95a..9fdf265 100644 (file)
@@ -1,23 +1,22 @@
-#ifndef __INCLUDE_USER32_CALLBACK_H
-#define __INCLUDE_USER32_CALLBACK_H
-
-#define USER32_CALLBACK_WINDOWPROC            (0)
-#define USER32_CALLBACK_SENDASYNCPROC         (1)
-#define USER32_CALLBACK_LOADSYSMENUTEMPLATE   (2)
-#define USER32_CALLBACK_LOADDEFAULTCURSORS    (3)
-#define USER32_CALLBACK_HOOKPROC              (4)
-#define USER32_CALLBACK_EVENTPROC             (5)
-#define USER32_CALLBACK_LOADMENU              (6)
-#define USER32_CALLBACK_CLIENTTHREADSTARTUP   (7)
-#define USER32_CALLBACK_CLIENTLOADLIBRARY     (8)
-#define USER32_CALLBACK_GETCHARSETINFO        (9)
-#define USER32_CALLBACK_COPYIMAGE             (10)
-#define USER32_CALLBACK_SETWNDICONS           (11)
-#define USER32_CALLBACK_DELIVERUSERAPC        (12)
-#define USER32_CALLBACK_DDEPOST               (13)
-#define USER32_CALLBACK_DDEGET                (14)
-#define USER32_CALLBACK_SETOBM                (15)
-#define USER32_CALLBACK_MAXIMUM               (15)
+/*
+ * PROJECT:     ReactOS Kernel
+ * LICENSE:     LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
+ * PURPOSE:     Defining kernel-to-user32 callbacks
+ * COPYRIGHT:   Copyright 2018 James Tabor <james.tabor@reactos.org>
+ *              Copyright 2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
+ */
+
+#pragma once
+
+#define DEFINE_USER32_CALLBACK(id, value, fn) id,
+
+typedef enum _USER32_CALLBACK
+{
+#include "u32cb.h"
+    USER32_CALLBACK_COUNT
+} USER32_CALLBACK;
+
+#undef DEFINE_USER32_CALLBACK
 
 typedef struct _WINDOWPROC_CALLBACK_ARGUMENTS
 {
@@ -59,6 +58,7 @@ typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
   ULONG_PTR offPfn;
   BOOLEAN Ansi;
   LRESULT Result;
+  UINT lParamSize;
   WCHAR ModuleName[512];
 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS;
 
@@ -70,6 +70,20 @@ typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
   /* WCHAR szClass[] */
 } HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS, *PHOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS;
 
+typedef struct tagCWP_Struct
+{
+   HOOKPROC_CALLBACK_ARGUMENTS hpca;
+   CWPSTRUCT cwps;
+   PBYTE Extra[4];
+} CWP_Struct, *PCWP_Struct;
+
+typedef struct tagCWPR_Struct
+{
+   HOOKPROC_CALLBACK_ARGUMENTS hpca;
+   CWPRETSTRUCT cwprs;
+   PBYTE Extra[4];
+} CWPR_Struct, *PCWPR_Struct;
+
 typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
 {
   HWINEVENTHOOK hook;
@@ -80,7 +94,7 @@ typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
   DWORD dwEventThread;
   DWORD dwmsEventTime;
   WINEVENTPROC Proc;
-  INT Mod;
+  INT_PTR Mod;
   ULONG_PTR offPfn;
 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS;
 
@@ -139,6 +153,38 @@ typedef struct _SETOBM_CALLBACK_ARGUMENTS
     struct tagOEMBITMAPINFO oembmi[93];   
 } SETOBM_CALLBACK_ARGUMENTS, *PSETOBM_CALLBACK_ARGUMENTS;
 
+typedef struct _LPK_CALLBACK_ARGUMENTS
+{
+    LPWSTR lpString;
+    HDC hdc;
+    INT x;
+    INT y;
+    UINT flags;
+    RECT rect;
+    UINT count;
+    BOOL bRect;
+} LPK_CALLBACK_ARGUMENTS, *PLPK_CALLBACK_ARGUMENTS;
+
+typedef struct _IMMPROCESSKEY_CALLBACK_ARGUMENTS
+{
+    HWND    hWnd;
+    HKL     hKL;
+    UINT    vKey;
+    LPARAM  lParam;
+    DWORD   dwHotKeyID;
+} IMMPROCESSKEY_CALLBACK_ARGUMENTS, *PIMMPROCESSKEY_CALLBACK_ARGUMENTS;
+
+typedef struct _IMMLOADLAYOUT_CALLBACK_ARGUMENTS
+{
+    HKL hKL;
+} IMMLOADLAYOUT_CALLBACK_ARGUMENTS, *PIMMLOADLAYOUT_CALLBACK_ARGUMENTS;
+
+typedef struct _IMMLOADLAYOUT_CALLBACK_OUTPUT
+{
+    BOOL ret;
+    IMEINFOEX iiex;
+} IMMLOADLAYOUT_CALLBACK_OUTPUT, *PIMMLOADLAYOUT_CALLBACK_OUTPUT;
+
 NTSTATUS WINAPI
 User32CallCopyImageFromKernel(PVOID Arguments, ULONG ArgumentLength);
 NTSTATUS WINAPI
@@ -171,4 +217,11 @@ NTSTATUS WINAPI
 User32CallDDEGetFromKernel(PVOID Arguments, ULONG ArgumentLength);
 NTSTATUS WINAPI
 User32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength);
-#endif /* __INCLUDE_USER32_CALLBACK_H */
+NTSTATUS WINAPI
+User32CallLPKFromKernel(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallUMPDFromKernel(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallImmProcessKeyFromKernel(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallImmLoadLayoutFromKernel(PVOID Arguments, ULONG ArgumentLength);