ATLServer class CSoapSocketClientT cannot handle greater than 2048 bytes in response

UPDATE: Replace ATLServer with WWSAPI!  Windows Web Services API Client code walkthrough

Using the following code:

CoInitialize (NULL);
CServiceT <CSoapSocketClientT<>> * myclient = new CServiceT<CSoapSocketClientT<>>; //socket client

BSTR results;
HRESULT hr = myclient->BigString(1024*32,&results);

 The hr value was E_FAIL.

 

This is because the Socket Based class cannot handle a return buffer bigger than 2K.

The solution is to use one of the following derivations:

CServiceT <CSoapWininetClient> * myclient =

new CServiceT<CSoapWininetClient>; //wininet client

CServiceT <CSoapMSXMLInetClient> * myclient =

new CServiceT<CSoapMSXMLInetClient>; //winhttp client

Neither of these have the 2K limit