WCF provides a number of standard bindings, each targeting a specific usage scenario. WSHttpBinding is for the mainline Internet web services scenario. It uses the newer SOAP version 1.2 and WS-Addressing version 1.0 and enables a wide range of security settings over the public http/https transport. WWSAPI does not have an equivalence of the WSHttpBinding (or any of the WCF standard bindings), but since its default SOAP version, WS-Addressing version and encoding format match those in WSHttpBinding, interoperating between WWSAPI and WSHttpBinding is straightforward. For example, to use service proxy to talk to a WSHttpBinding endpoint without security, you only need to write the code like following snippet (variable declaration and heap/error creation omitted). Notice that no channel properties or security description is specified at WsCreateServiceProxy.

 

    // Create the proxy

    hr = WsCreateServiceProxy(

            WS_CHANNEL_TYPE_REQUEST,

            WS_HTTP_CHANNEL_BINDING,

            NULL, // security description

            NULL, // proxy properties

            0, // proxy property count

            NULL, // channel properties

            0, // channel property count

            &proxy,

            error);

    if (FAILED(hr))

    {

        goto Exit;

    }

   

    hr = WsOpenServiceProxy(

            proxy,

            &address,

            NULL,

            error);

    if (FAILED(hr))

    {

        goto Exit;

    }

 

    // make the call through the proxy

    hr = WSHttpBinding_ICalculator_Add(

            proxy,

            1,

            2,

            &result,

            heap,

            NULL,

            0,

            NULL,

            error);

    if (FAILED(hr))

    {

        goto Exit;

    }