/// <summary> /// Creates a service named <paramref name="serviceName"/> and creates an item in Miranda IM contact list. /// </summary> /// <param name="serviceName">Unique name of service to be created.</param> /// <param name="menuItemText">Text of menu item.</param> /// <param name="action">Method to be called when user selects menu item.</param> public ContactListMenuItem(string serviceName, string menuItemText, Action action) { _action = action; _service = Service; Plugin.m_CreateServiceFunction(serviceName, _service); var cListMenuItem = new CListMenuItem { position = -0x7FFFFFFF, flags = 0, name = menuItemText, service = serviceName }; using (var pCListMenuItem = new AutoPtr(Marshal.AllocHGlobal(Marshal.SizeOf(typeof (CListMenuItem))))) { Marshal.StructureToPtr(cListMenuItem, pCListMenuItem, false); Plugin.m_CallService("CList/AddMainMenuItem", IntPtr.Zero, pCListMenuItem); } }
/// <summary> /// Plugin object constructor. /// </summary> public TestPlugin() { menuCommand = PluginMenuCommand; }
internal static extern IntPtr m_CreateServiceFunction(string name, MirandaService serviceProc);
protected IntPtr CreateServiceFunction(string name, MirandaService serviceProc) { return Plugin.m_CreateServiceFunction(name, serviceProc); }