﻿#pragma once

#using <mscorlib.dll>
#using <System.dll>
#using <System.Xml.dll>
#using <System.Web.Services.dll>
#using <System.EnterpriseServices.dll>

using namespace System::Security::Permissions;
[assembly:SecurityPermissionAttribute(SecurityAction::RequestMinimum, SkipVerification=false)];
// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace localhost {
    using namespace System::Diagnostics;
    using namespace System::Web::Services;
    using namespace System::ComponentModel;
    using namespace System::Web::Services::Protocols;
    using namespace System;
    using namespace System::Xml::Serialization;
    
    using namespace System;
    ref class ConverterClass;
    ref class ConvertF2CCompletedEventArgs;
    ref class ConvertC2FCompletedEventArgs;
    
    
    /// <remarks/>
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"wsdl", L"2.0.50727.42")]
    public delegate System::Void ConvertF2CCompletedEventHandler(System::Object^  sender, localhost::ConvertF2CCompletedEventArgs^  e);
    
    /// <remarks/>
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"wsdl", L"2.0.50727.42")]
    public delegate System::Void ConvertC2FCompletedEventHandler(System::Object^  sender, localhost::ConvertC2FCompletedEventArgs^  e);
    
    /// <remarks/>
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"wsdl", L"2.0.50727.42"), 
    System::Diagnostics::DebuggerStepThroughAttribute, 
    System::ComponentModel::DesignerCategoryAttribute(L"code"), 
    System::Web::Services::WebServiceBindingAttribute(Name=L"ConverterClassSoap", Namespace=L"http://VCSBS/WebServices/")]
    public ref class ConverterClass : public System::Web::Services::Protocols::SoapHttpClientProtocol {
        
        private: System::Threading::SendOrPostCallback^  ConvertF2COperationCompleted;
        
        private: System::Threading::SendOrPostCallback^  ConvertC2FOperationCompleted;
        
        /// <remarks/>
        public: event localhost::ConvertF2CCompletedEventHandler^  ConvertF2CCompleted;
        
        /// <remarks/>
        public: event localhost::ConvertC2FCompletedEventHandler^  ConvertC2FCompleted;
        
        /// <remarks/>
        public: ConverterClass();
        /// <remarks/>
        public: [System::Web::Services::Protocols::SoapDocumentMethodAttribute(L"http://VCSBS/WebServices/ConvertF2C", RequestNamespace=L"http://VCSBS/WebServices/", 
            ResponseNamespace=L"http://VCSBS/WebServices/", Use=System::Web::Services::Description::SoapBindingUse::Literal, ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)]
        System::Double ConvertF2C(System::Double dFahrenheit);
        
        /// <remarks/>
        public: System::IAsyncResult^  BeginConvertF2C(System::Double dFahrenheit, System::AsyncCallback^  callback, System::Object^  asyncState);
        
        /// <remarks/>
        public: System::Double EndConvertF2C(System::IAsyncResult^  asyncResult);
        
        /// <remarks/>
        public: System::Void ConvertF2CAsync(System::Double dFahrenheit);
        
        /// <remarks/>
        public: System::Void ConvertF2CAsync(System::Double dFahrenheit, System::Object^  userState);
        
        private: System::Void OnConvertF2COperationCompleted(System::Object^  arg);
        
        /// <remarks/>
        public: [System::Web::Services::Protocols::SoapDocumentMethodAttribute(L"http://VCSBS/WebServices/ConvertC2F", RequestNamespace=L"http://VCSBS/WebServices/", 
            ResponseNamespace=L"http://VCSBS/WebServices/", Use=System::Web::Services::Description::SoapBindingUse::Literal, ParameterStyle=System::Web::Services::Protocols::SoapParameterStyle::Wrapped)]
        System::Double ConvertC2F(System::Double dCelsius);
        
        /// <remarks/>
        public: System::IAsyncResult^  BeginConvertC2F(System::Double dCelsius, System::AsyncCallback^  callback, System::Object^  asyncState);
        
        /// <remarks/>
        public: System::Double EndConvertC2F(System::IAsyncResult^  asyncResult);
        
        /// <remarks/>
        public: System::Void ConvertC2FAsync(System::Double dCelsius);
        
        /// <remarks/>
        public: System::Void ConvertC2FAsync(System::Double dCelsius, System::Object^  userState);
        
        private: System::Void OnConvertC2FOperationCompleted(System::Object^  arg);
        
        /// <remarks/>
        public: System::Void CancelAsync(System::Object^  userState) new;
    };
    
    /// <remarks/>
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"wsdl", L"2.0.50727.42"), 
    System::Diagnostics::DebuggerStepThroughAttribute, 
    System::ComponentModel::DesignerCategoryAttribute(L"code")]
    public ref class ConvertF2CCompletedEventArgs : public System::ComponentModel::AsyncCompletedEventArgs {
        
        private: cli::array< System::Object^  >^  results;
        
        internal: ConvertF2CCompletedEventArgs(cli::array< System::Object^  >^  results, System::Exception^  exception, System::Boolean cancelled, 
                    System::Object^  userState);
        /// <remarks/>
        public:  property System::Double Result {
            System::Double get();
        }
    };
    
    /// <remarks/>
    [System::CodeDom::Compiler::GeneratedCodeAttribute(L"wsdl", L"2.0.50727.42"), 
    System::Diagnostics::DebuggerStepThroughAttribute, 
    System::ComponentModel::DesignerCategoryAttribute(L"code")]
    public ref class ConvertC2FCompletedEventArgs : public System::ComponentModel::AsyncCompletedEventArgs {
        
        private: cli::array< System::Object^  >^  results;
        
        internal: ConvertC2FCompletedEventArgs(cli::array< System::Object^  >^  results, System::Exception^  exception, System::Boolean cancelled, 
                    System::Object^  userState);
        /// <remarks/>
        public:  property System::Double Result {
            System::Double get();
        }
    };
}
namespace localhost {
    
    
    inline ConverterClass::ConverterClass() {
        this->Url = L"http://localhost/Converter/Converter.asmx";
    }
    
    inline System::Double ConverterClass::ConvertF2C(System::Double dFahrenheit) {
        cli::array< System::Object^  >^  results = this->Invoke(L"ConvertF2C", gcnew cli::array< System::Object^  >(1) {dFahrenheit});
        return (*cli::safe_cast<System::Double^>(results[0]));
    }
    
    inline System::IAsyncResult^  ConverterClass::BeginConvertF2C(System::Double dFahrenheit, System::AsyncCallback^  callback, 
                System::Object^  asyncState) {
        return this->BeginInvoke(L"ConvertF2C", gcnew cli::array< System::Object^  >(1) {dFahrenheit}, callback, asyncState);
    }
    
    inline System::Double ConverterClass::EndConvertF2C(System::IAsyncResult^  asyncResult) {
        cli::array< System::Object^  >^  results = this->EndInvoke(asyncResult);
        return (*cli::safe_cast<System::Double^>(results[0]));
    }
    
    inline System::Void ConverterClass::ConvertF2CAsync(System::Double dFahrenheit) {
        this->ConvertF2CAsync(dFahrenheit, nullptr);
    }
    
    inline System::Void ConverterClass::ConvertF2CAsync(System::Double dFahrenheit, System::Object^  userState) {
        if (this->ConvertF2COperationCompleted == nullptr) {
            this->ConvertF2COperationCompleted = gcnew System::Threading::SendOrPostCallback(this, &localhost::ConverterClass::OnConvertF2COperationCompleted);
        }
        this->InvokeAsync(L"ConvertF2C", gcnew cli::array< System::Object^  >(1) {dFahrenheit}, this->ConvertF2COperationCompleted, 
            userState);
    }
    
    inline System::Void ConverterClass::OnConvertF2COperationCompleted(System::Object^  arg) {
        {
            System::Web::Services::Protocols::InvokeCompletedEventArgs^  invokeArgs = (cli::safe_cast<System::Web::Services::Protocols::InvokeCompletedEventArgs^  >(arg));
            this->ConvertF2CCompleted(this, (gcnew localhost::ConvertF2CCompletedEventArgs(invokeArgs->Results, invokeArgs->Error, 
                    invokeArgs->Cancelled, invokeArgs->UserState)));
        }
    }
    
    inline System::Double ConverterClass::ConvertC2F(System::Double dCelsius) {
        cli::array< System::Object^  >^  results = this->Invoke(L"ConvertC2F", gcnew cli::array< System::Object^  >(1) {dCelsius});
        return (*cli::safe_cast<System::Double^>(results[0]));
    }
    
    inline System::IAsyncResult^  ConverterClass::BeginConvertC2F(System::Double dCelsius, System::AsyncCallback^  callback, 
                System::Object^  asyncState) {
        return this->BeginInvoke(L"ConvertC2F", gcnew cli::array< System::Object^  >(1) {dCelsius}, callback, asyncState);
    }
    
    inline System::Double ConverterClass::EndConvertC2F(System::IAsyncResult^  asyncResult) {
        cli::array< System::Object^  >^  results = this->EndInvoke(asyncResult);
        return (*cli::safe_cast<System::Double^>(results[0]));
    }
    
    inline System::Void ConverterClass::ConvertC2FAsync(System::Double dCelsius) {
        this->ConvertC2FAsync(dCelsius, nullptr);
    }
    
    inline System::Void ConverterClass::ConvertC2FAsync(System::Double dCelsius, System::Object^  userState) {
        if (this->ConvertC2FOperationCompleted == nullptr) {
            this->ConvertC2FOperationCompleted = gcnew System::Threading::SendOrPostCallback(this, &localhost::ConverterClass::OnConvertC2FOperationCompleted);
        }
        this->InvokeAsync(L"ConvertC2F", gcnew cli::array< System::Object^  >(1) {dCelsius}, this->ConvertC2FOperationCompleted, 
            userState);
    }
    
    inline System::Void ConverterClass::OnConvertC2FOperationCompleted(System::Object^  arg) {
        {
            System::Web::Services::Protocols::InvokeCompletedEventArgs^  invokeArgs = (cli::safe_cast<System::Web::Services::Protocols::InvokeCompletedEventArgs^  >(arg));
            this->ConvertC2FCompleted(this, (gcnew localhost::ConvertC2FCompletedEventArgs(invokeArgs->Results, invokeArgs->Error, 
                    invokeArgs->Cancelled, invokeArgs->UserState)));
        }
    }
    
    inline System::Void ConverterClass::CancelAsync(System::Object^  userState) {
        __super::CancelAsync(userState);
    }
    
    
    inline ConvertF2CCompletedEventArgs::ConvertF2CCompletedEventArgs(cli::array< System::Object^  >^  results, System::Exception^  exception, 
                System::Boolean cancelled, System::Object^  userState) : 
            System::ComponentModel::AsyncCompletedEventArgs(exception, cancelled, userState) {
        this->results = results;
    }
    
    inline System::Double ConvertF2CCompletedEventArgs::Result::get() {
        this->RaiseExceptionIfNecessary();
        return (*cli::safe_cast<System::Double^>(this->results[0]));
    }
    
    
    inline ConvertC2FCompletedEventArgs::ConvertC2FCompletedEventArgs(cli::array< System::Object^  >^  results, System::Exception^  exception, 
                System::Boolean cancelled, System::Object^  userState) : 
            System::ComponentModel::AsyncCompletedEventArgs(exception, cancelled, userState) {
        this->results = results;
    }
    
    inline System::Double ConvertC2FCompletedEventArgs::Result::get() {
        this->RaiseExceptionIfNecessary();
        return (*cli::safe_cast<System::Double^>(this->results[0]));
    }
}
