source/SProxy/CodeTypeBuilder.cpp
HRESULT CCodeTypeBuilder::ProcessMessage_PID(
    CWSDLMessage *pMsg,
    CCodeFunction *pCodeFunc,
    DWORD dwFlags,
    DWORD dwCallFlags)
{
    ATLASSERT( pMsg != NULL );
    ATLASSERT( pCodeFunc != NULL );
    ATLASSERT( dwCallFlags & CODEFLAG_PID );

    // REVIEW (jasjitg): maybe ATLASSERT is too lenient here
    ATLASSERT( pMsg->GetNumParts() == 1 );

    dwCallFlags;

    POSITION pos = pMsg->GetFirstPart();
    if (pos != NULL)
    {
        CWSDLMessagePart *pPart = pMsg->GetNextPart(pos);
        if (pPart != NULL)
        {
            return ProcessMessagePart_PID(pPart, pCodeFunc, dwFlags, dwCallFlags);
        }
    }

    EmitError(IDS_SDL_INTERNAL);
    return E_FAIL;
}
//
// PID means ParametersInDocument
// structure of the referenced message and part is:
//
//   <message name="...">
//     <part name="parameters" element="s0:MyFunctionElement"/>
//   </message>
//
// where MyFunctionElement looks like:
//
//   <element name="MyFunctionElement">
//     <complexType>
//       <sequence> <!-- or "all" -->
//         <element name="..." type="qname"/>
//         <!-- ... etc. -->
//       </sequence>
//     </complexType>
//   </element>
//
// for the referenced message and part for input operation from the binding/port,
// each element of the complexType represents an in-parameter.
// for the referenced message and part for output operation from the binding/port,
// each element of the complexType represents an out-parameter.
// as a proxy-generating convention, two "parameters" that have the same in the
// input element and output element are considered the same parameter--that logic
// is in ProcessElement.  The wrapper element under <SOAP:Body> for the request,
// is the name of the referenced element for the input operation message part.
// The wrapper element under <SOAP:Body> for the response is the name of the
// referenced element for the output operation message part.
// See sections 2.3 and 3.5 in the WSDL 1.1 spec for more details.
//
PID means ParametersInDocument
structure of the referenced message and part is.







for the referenced message and part for input operation from the binding/port,
each element of the complexType represents an in-parameter.
for the referenced message and part for output operation from the binding/port,
each element of the complexType represents an out-parameter.
as a proxy-generating convention, two "parameters" that have the same in the
input element and output element are considered the same parameter--that logic
is in ProcessElement.  The wrapper element under  for the request,
is the name of the referenced element for the input operation message part.
The wrapper element under  for the response is the name of the
referenced element for the output operation message part.
PID means ParametersInDocument structure of the referenced message and part is . for the referenced message and part for input operation from the binding / port each element of the complexType represents an in - parameter . for the referenced message and part for output operation from the binding / port each element of the complexType represents an out - parameter . as a proxy - generating convention two " parameters " that have the same in the input element and output element are considered the same parameter -- that logic is in ProcessElement . The wrapper element under for the request is the name of the referenced element for the input operation message part . The wrapper element under for the response is the name of the referenced element for the output operation message part .
HRESULT CCodeTypeBuilder::ProcessMessage_PID(
    CWSDLMessage *pMsg,
    CCodeFunction *pCodeFunc,
    DWORD dwFlags,
    DWORD dwCallFlags)
{
    ATLASSERT( pMsg != NULL );
    ATLASSERT( pCodeFunc != NULL );
    ATLASSERT( dwCallFlags & CODEFLAG_PID );
    ATLASSERT( pMsg->GetNumParts() == 1 );
    dwCallFlags;
    POSITION pos = pMsg->GetFirstPart();
    if (pos != NULL)
    {
        CWSDLMessagePart *pPart = pMsg->GetNextPart(pos);
        if (pPart != NULL)
        {
            return ProcessMessagePart_PID(pPart, pCodeFunc, dwFlags, dwCallFlags);
        }
    }
    EmitError(IDS_SDL_INTERNAL);
    return E_FAIL;
}
HRESULT CCodeTypeBuilder :: ProcessMessage_PID ( CWSDLMessage * pMsg , CCodeFunction * pCodeFunc , DWORD dwFlags , DWORD dwCallFlags ) { ATLASSERT ( pMsg != NULL ) ; ATLASSERT ( pCodeFunc != NULL ) ; ATLASSERT ( dwCallFlags & CODEFLAG_PID ) ; ATLASSERT ( pMsg -> GetNumParts ( ) == 1 ) ; dwCallFlags ; POSITION pos = pMsg -> GetFirstPart ( ) ; if ( pos != NULL ) { CWSDLMessagePart * pPart = pMsg -> GetNextPart ( pos ) ; if ( pPart != NULL ) { return ProcessMessagePart_PID ( pPart , pCodeFunc , dwFlags , dwCallFlags ) ; } } EmitError ( IDS_SDL_INTERNAL ) ; return E_FAIL ; }
PID means ParametersInDocument
structure of the referenced message and part is:
PID means ParametersInDocument structure of the referenced message and part is :
// REVIEW (jasjitg): maybe ATLASSERT is too lenient here