@@ -46,17 +46,34 @@ export const DestroyMenu: koffi.KoffiFunc<(
46
46
hMenu : HMENU
47
47
) => number > = user32 ( 'DestroyMenu' , cBOOL , [ cHMENU ] )
48
48
49
+
50
+ const AppendMenuInternalN : koffi . KoffiFunc < (
51
+ hMenu : HMENU ,
52
+ uFlags : MF_ | number ,
53
+ uIDNewItem : number ,
54
+ lpNewItem : string | null
55
+ ) => number > = user32 ( 'AppendMenuW' , cBOOL , [ cHMENU , cUINT , cUINT , cLPCWSTR ] ) ;
56
+
57
+ const AppendMenuInternalH : koffi . KoffiFunc < (
58
+ hMenu : HMENU ,
59
+ uFlags : MF_ | number ,
60
+ uIDNewItem : HMENU ,
61
+ lpNewItem : string | null
62
+ ) => number > = user32 ( 'AppendMenuW' , cBOOL , [ cHMENU , cUINT , cHMENU , cLPCWSTR ] ) ;
49
63
/**
50
64
* Appends a new item to the end of the specified menu bar, drop-down menu, submenu, or shortcut menu.
51
65
*
52
66
* https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-appendmenuw
53
67
*/
54
- export const AppendMenu : koffi . KoffiFunc < (
68
+ export const AppendMenu = (
55
69
hMenu : HMENU ,
56
70
uFlags : MF_ | number ,
57
- uIDNewItem : number ,
71
+ uIDNewItem : number | HMENU ,
58
72
lpNewItem : string | null
59
- ) => number > = user32 ( 'AppendMenuW' , cBOOL , [ cHMENU , cUINT , cUINT , cLPCWSTR ] )
73
+ ) => {
74
+ if ( typeof uIDNewItem === 'number' ) return AppendMenuInternalN ( hMenu , uFlags , uIDNewItem , lpNewItem ) ;
75
+ return AppendMenuInternalH ( hMenu , uFlags , uIDNewItem , lpNewItem ) ;
76
+ }
60
77
61
78
/**
62
79
* Sets the checked state of a menu item.
0 commit comments