public unsafe static void ts3plugin_initMenus(PluginMenuItem ***menuItems, char **menuIcon) { int menuItemCount = 8; int n = 0; *menuItems = (PluginMenuItem **)Marshal.AllocHGlobal(sizeof(PluginMenuItem *) * menuItemCount); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemAbout, "About", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemJoin, "Join", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemLeave, "Leave", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemLink, "Link to channel", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemConnect, "Connect", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, MenuItems.MenuItemDisconnect, "Disconnect", ""); (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_CHANNEL, MenuItems.MenuItemConnectionInfo, "Connection info", ""); (*menuItems)[n++] = null; *menuIcon = (char *)Marshal.AllocHGlobal(256 * sizeof(char)); IntPtr ptr = Marshal.StringToHGlobalAnsi("logo.png"); void * strPtr = ptr.ToPointer(); char * cptr = (char *)strPtr; my_strcpy(*menuIcon, 256, cptr); }
public unsafe static void ts3plugin_initMenus(PluginMenuItem ***menuItems, char **menuIcon) { int x = 1; int sz = x + 1; int n = 0; * menuItems = (PluginMenuItem **)Marshal.AllocHGlobal((sizeof(PluginMenuItem *) * sz)); string name = "Test"; string icon = "2.png"; (*menuItems)[n++] = createMenuItem(PluginMenuType.PLUGIN_MENU_TYPE_GLOBAL, 1, name, icon); (*menuItems)[n++] = null; //Debug.Assert(n == sz); *menuIcon = (char *)Marshal.AllocHGlobal(128 * sizeof(char)); IntPtr ptr = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("t.png"); void * strPtr = ptr.ToPointer(); char * cptr = (char *)strPtr; my_strcpy(*menuIcon, 128, cptr); }