Click here to Skip to main content
15,886,518 members
Articles / Desktop Programming / ATL

Temperature Convert:An XML Web service Using ATL Server and MFC Client

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
6 Mar 20073 min read 53.6K   707   20  
An XML Web Service using ATL Server and Called by MFC Client
// TempConvert.h : Defines the ATL Server request handler class
//
#pragma once

namespace TempConvertService
{
// all struct, enum, and typedefs for your webservice should go inside the namespace

// ITempConvertService - web service interface declaration
//
[
	uuid("0A38DB02-B685-403A-B302-12A8B393D74D"), 
	object
]
__interface ITempConvertService
{
	// declare a web service method and its in-parameters and out-parameters
    //Convert Fahrenheit to Celsius
	[id(1)] HRESULT ConTempFah2Cel(
     [in] double dFahrenheit,
     [out, retval] double* pdCelsius);
	//Convert Celsius to Fahrenheit
	[id(2)] HRESULT ConTempCel2Fah(
     [in] double dCelsius,
     [out, retval] double* pdFahrenheit);
};


// TempConvertService - web service implementation
//
[
	request_handler(name="Default", sdl="GenTempConvertWSDL"),
	soap_handler(
		name="TempConvertService", 
		namespace="urn:TempConvertService",
		protocol="soap"
	)
]
class CTempConvertService :
	public ITempConvertService
{
public:
	// This is a sample web service method that shows how to use the 
	// soap_method attribute to expose a method as a web method
	[ soap_method ]
	HRESULT ConTempFah2Cel(
    /* [in]*/ double dFahrenheit,
    /* [out, retval] */ double* pdCelsius)
	{
		if(!pdCelsius)
			return E_INVALIDARG;

		*pdCelsius=((dFahrenheit-32)*5)/9;
		return S_OK;
	}
	
	[ soap_method ]
	HRESULT ConTempCel2Fah(
    /* [in]*/ double dCelsius,
    /* [out, retval] */ double* pdFahrenheit)
	{
		if(!pdFahrenheit)
			return E_INVALIDARG;

		*pdFahrenheit=dCelsius*9/5+32;
		return S_OK;
	}
}; // class CTempConvertService

} // namespace TempConvertService

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 has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
China China
I am favor to use C\C++,MFC,ATL,COM and JavaScript to program, and interesting in network security as well.In my spare time,I like playingbasketball,Climbing.I now live in Beijing,China.It is nice to go along the red walls around the Forbitten City.

Comments and Discussions