Click here to Skip to main content
15,885,244 members
Articles / Mobile Apps / Windows Mobile

Track your position using a Windows Mobile 6 device

Rate me:
Please Sign up or sign in to vote.
4.59/5 (23 votes)
29 Dec 2008CPOL5 min read 130.9K   3.2K   111  
Track your geographical position using a Windows Mobile 6 device and some Google Map programming.
//------------------------------------------------------------------------------
// <auto-generated>
//     Deze code is gegenereerd met een hulpprogramma.
//     Runtime-versie:2.0.50727.1433
//
//     Als u wijzigingen aanbrengt in dit bestand, kan dit onjuist gedrag veroorzaken wanneer
//     de code wordt gegenereerd.
// </auto-generated>
//------------------------------------------------------------------------------



[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public interface IPositionService
{
    
    bool SendPosition(double latitude, double longitude, string remarks);
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.Xml.Serialization.XmlRootAttribute(ElementName="SendPosition", Namespace="http://bruins/positionservice")]
public partial class SendPositionRequest
{
    
    [System.Xml.Serialization.XmlElementAttribute(Namespace="http://bruins/positionservice", Order=0)]
    public double latitude;
    
    [System.Xml.Serialization.XmlElementAttribute(Namespace="http://bruins/positionservice", Order=1)]
    public double longitude;
    
    [System.Xml.Serialization.XmlElementAttribute(IsNullable=true, Namespace="http://bruins/positionservice", Order=2)]
    public string remarks;
    
    public SendPositionRequest()
    {
    }
    
    public SendPositionRequest(double latitude, double longitude, string remarks)
    {
        this.latitude = latitude;
        this.longitude = longitude;
        this.remarks = remarks;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.Xml.Serialization.XmlRootAttribute(ElementName="SendPositionResponse", Namespace="http://bruins/positionservice")]
public partial class SendPositionResponse
{
    
    [System.Xml.Serialization.XmlElementAttribute(Namespace="http://bruins/positionservice", Order=0)]
    public bool SendPositionResult;
    
    public SendPositionResponse()
    {
    }
    
    public SendPositionResponse(bool SendPositionResult)
    {
        this.SendPositionResult = SendPositionResult;
    }
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class PositionServiceClient : Microsoft.Tools.ServiceModel.CFClientBase<IPositionService>, IPositionService
{
    
    public static System.ServiceModel.EndpointAddress EndpointAddress = new System.ServiceModel.EndpointAddress("");
    
    public PositionServiceClient() : 
            this(CreateDefaultBinding(), EndpointAddress)
    {
    }

    public PositionServiceClient(string endPointAddress) :
        this(CreateDefaultBinding(), new System.ServiceModel.EndpointAddress(endPointAddress))
    {
    }

    public PositionServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress)
    {
        addProtectionRequirements(binding);
    }
    
    private SendPositionResponse SendPosition(SendPositionRequest request)
    {
        CFInvokeInfo info = new CFInvokeInfo();
        info.Action = "http://bruins/positionservice/IPositionService/SendPosition";
        info.RequestIsWrapped = true;
        info.ReplyAction = "http://bruins/positionservice/IPositionService/SendPositionResponse";
        info.ResponseIsWrapped = true;
        SendPositionResponse retVal = base.Invoke<SendPositionRequest, SendPositionResponse>(info, request);
        return retVal;
    }
    
    public bool SendPosition(double latitude, double longitude, string remarks)
    {
        SendPositionRequest request = new SendPositionRequest(latitude, longitude, remarks);
        SendPositionResponse response = this.SendPosition(request);
        return response.SendPositionResult;
    }
    
    public static System.ServiceModel.Channels.Binding CreateDefaultBinding()
    {
        System.ServiceModel.Channels.CustomBinding binding = new System.ServiceModel.Channels.CustomBinding();
        binding.Elements.Add(new System.ServiceModel.Channels.TextMessageEncodingBindingElement(System.ServiceModel.Channels.MessageVersion.Soap11, System.Text.Encoding.UTF8));
        binding.Elements.Add(new System.ServiceModel.Channels.HttpTransportBindingElement());
        return binding;
    }
    
    private void addProtectionRequirements(System.ServiceModel.Channels.Binding binding)
    {
        if ((IsSecureMessageBinding(binding) == false))
        {
            return;
        }
        System.ServiceModel.Security.ChannelProtectionRequirements cpr = new System.ServiceModel.Security.ChannelProtectionRequirements();
        ApplyProtection("http://bruins/positionservice/IPositionService/SendPosition", cpr.IncomingSignatureParts, true);
        ApplyProtection("http://bruins/positionservice/IPositionService/SendPosition", cpr.IncomingEncryptionParts, true);
        if ((binding.MessageVersion.Addressing == System.ServiceModel.Channels.AddressingVersion.None))
        {
            ApplyProtection("*", cpr.OutgoingSignatureParts, true);
            ApplyProtection("*", cpr.OutgoingEncryptionParts, true);
        }
        else
        {
            ApplyProtection("http://bruins/positionservice/IPositionService/SendPositionResponse", cpr.OutgoingSignatureParts, true);
            ApplyProtection("http://bruins/positionservice/IPositionService/SendPositionResponse", cpr.OutgoingEncryptionParts, true);
        }
        this.Parameters.Add(cpr);
    }
}

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)
Netherlands Netherlands
I'm a software engineer, working in this field since May 1989. Currently doing C# .NET development and project management using SCRUM.

Comments and Discussions