[BROWSEUI] SHExplorerParseCmdLine: Fix parsing of /root (#6752)
[reactos.git] / win32ss / include / callback.h
index e145203..9fdf265 100644 (file)
@@ -1,17 +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_MAXIMUM               (9)
+/*
+ * 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
 {
@@ -49,7 +54,12 @@ typedef struct _HOOKPROC_CALLBACK_ARGUMENTS
   WPARAM wParam;
   LPARAM lParam;
   HOOKPROC Proc;
+  INT Mod;
+  ULONG_PTR offPfn;
   BOOLEAN Ansi;
+  LRESULT Result;
+  UINT lParamSize;
+  WCHAR ModuleName[512];
 } HOOKPROC_CALLBACK_ARGUMENTS, *PHOOKPROC_CALLBACK_ARGUMENTS;
 
 typedef struct _HOOKPROC_CBT_CREATEWND_EXTRA_ARGUMENTS
@@ -60,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;
@@ -70,14 +94,26 @@ typedef struct _EVENTPROC_CALLBACK_ARGUMENTS
   DWORD dwEventThread;
   DWORD dwmsEventTime;
   WINEVENTPROC Proc;
+  INT_PTR Mod;
+  ULONG_PTR offPfn;
 } EVENTPROC_CALLBACK_ARGUMENTS, *PEVENTPROC_CALLBACK_ARGUMENTS;
 
 typedef struct _LOADMENU_CALLBACK_ARGUMENTS
 {
   HINSTANCE hModule;
+  LPCWSTR InterSource;
   WCHAR MenuName[1];
 } LOADMENU_CALLBACK_ARGUMENTS, *PLOADMENU_CALLBACK_ARGUMENTS;
 
+typedef struct _COPYIMAGE_CALLBACK_ARGUMENTS
+{
+  HANDLE hImage;
+  UINT uType;
+  int cxDesired;
+  int cyDesired;
+  UINT fuFlags;
+} COPYIMAGE_CALLBACK_ARGUMENTS, *PCOPYIMAGE_CALLBACK_ARGUMENTS;
+
 typedef struct _CLIENT_LOAD_LIBRARY_ARGUMENTS
 {
     UNICODE_STRING strLibraryName;
@@ -92,6 +128,67 @@ typedef struct _GET_CHARSET_INFO
     CHARSETINFO Cs;
 } GET_CHARSET_INFO, *PGET_CHARSET_INFO;
 
+typedef struct _SETWNDICONS_CALLBACK_ARGUMENTS
+{
+    HICON hIconSample;
+    HICON hIconHand;
+    HICON hIconQuestion;
+    HICON hIconBang;
+    HICON hIconNote;
+    HICON hIconWindows;
+    HICON hIconSmWindows;
+} SETWNDICONS_CALLBACK_ARGUMENTS, *PSETWNDICONS_CALLBACK_ARGUMENTS;
+
+typedef struct _DDEPOSTGET_CALLBACK_ARGUMENTS
+{
+    INT Type;
+    MSG;
+    int size;
+    PVOID pvData;
+    BYTE buffer[1];
+} DDEPOSTGET_CALLBACK_ARGUMENTS, *PDDEPOSTGET_CALLBACK_ARGUMENTS;
+
+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
+User32CallSetWndIconsFromKernel(PVOID Arguments, ULONG ArgumentLength);
 NTSTATUS WINAPI
 User32CallWindowProcFromKernel(PVOID Arguments, ULONG ArgumentLength);
 NTSTATUS WINAPI
@@ -112,4 +209,19 @@ NTSTATUS WINAPI
 User32CallClientLoadLibraryFromKernel(PVOID Arguments, ULONG ArgumentLength);
 NTSTATUS WINAPI
 User32CallGetCharsetInfo(PVOID Arguments, ULONG ArgumentLength);
-#endif /* __INCLUDE_USER32_CALLBACK_H */
+NTSTATUS WINAPI
+User32DeliverUserAPC(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallDDEPostFromKernel(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallDDEGetFromKernel(PVOID Arguments, ULONG ArgumentLength);
+NTSTATUS WINAPI
+User32CallOBMFromKernel(PVOID Arguments, ULONG ArgumentLength);
+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);