示例#1
0
        /// <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);
            }
        }
示例#2
0
 /// <summary>
 /// Plugin object constructor.
 /// </summary>
 public TestPlugin()
 {
     menuCommand = PluginMenuCommand;
 }
示例#3
0
 internal static extern IntPtr m_CreateServiceFunction(string name, MirandaService serviceProc);
示例#4
0
 protected IntPtr CreateServiceFunction(string name, MirandaService serviceProc)
 {
     return Plugin.m_CreateServiceFunction(name, serviceProc);
 }