Click here to Skip to main content
15,896,154 members
Articles / Hosted Services / Azure

Automating Windows Applications Using Azure AppFabric Service Bus

Rate me:
Please Sign up or sign in to vote.
4.93/5 (38 votes)
13 Nov 2010CPOL8 min read 46.9K   1.3K   49  
Unmanaged Windows GUI application with no exported program interface gets automated with injected code. A WCF aware injected component allows world-wide located clients to communicate with automated application via Azure AppFabric Service Bus despite firewalls and dynamic IP addresses
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace NotepadHandlerNET
{
    #region Register Command
    /// <summary>
    /// Class implementing Register command.
    /// </summary>
    public class register : ICommandImpl
    {
        public object DoCommand(string sender, object commandData)
        {
            new AddNotificationSubscriber(sender).Do();
            return "OK";
        }
    }
    #endregion

    #region CopyText Command
    /// <summary>
    /// Class implementing CopyText command.
    /// </summary>
    public class copytext : ICommandImpl
    {
        public object DoCommand(string sender, object commandData)
        {
            new NotifyAll("CopyText", Handler.sb.ToString()).Do();
            Handler.sb.Remove(0, Handler.sb.Length);
            return "OK";
        }   
    }
    #endregion

    #region FindDialog Command
    /// <summary>
    /// Class implementing FindDialog command.
    /// </summary>
    public class finddialog : ICommandImpl
    {
        [DllImport("NotepadPlugin.dll")]
        static extern int ActivateFindDialog();

        public object DoCommand(string sender, object commandData)
        {
            return (0 == ActivateFindDialog()) ? "OK" : "FAILURE";
        }   
    }
    #endregion

    #region AppendMenu Command
    /// <summary>
    /// Class implementing AppendMenu command.
    /// </summary>
    public class appendmenu : ICommandImpl
    {
        [DllImport("NotepadPlugin.dll")]
        static extern int AppendMainMenu([MarshalAs(UnmanagedType.BStr)] string menuName); 

        public object DoCommand(string sender, object commandData)
        {
            return (0 == AppendMainMenu((string)commandData)) ? "OK" : "FAILURE";
        }   
    }
    #endregion
}                       

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
Israel Israel


  • Nov 2010: Code Project Contests - Windows Azure Apps - Winner
  • Feb 2011: Code Project Contests - Windows Azure Apps - Grand Prize Winner



Comments and Discussions