发新话题
打印

webservice系列教学(13)-如何调用webservice(vc4)

webservice系列教学(13)-如何调用webservice(vc4)

  //////////////////////////////////////////////////////////////////////////////////////////////////
//  function: CMClientDlg::Execute()
//
//  parameters: No Parameters
//
//  description: Pass the parameters and invoke the operation, get the result and update the
//               parameters and the result value
//  returns: void
//
//////////////////////////////////////////////////////////////////////////////////////////////////
void CMClientDlg::Execute()
{
    USES_CONVERSION;

    DisableButtons();

    HTREEITEM                hItem;
    HTREEITEM                hPort;
    HTREEITEM                hService;

    DISPPARAMS                parms;
   
    VARIANT                    result;
    VARIANT                    vTempVariable;

    CComPtr<ISOAPClient>    pClient             =    NULL;
    HRESULT                 hr                 =    S_OK;

    BSTR                    bstrPort         =  0;
    BSTR                    bstrService      =  0;
    BSTR                    bstrWSDLFileName =  0;
    BSTR                    bstrWSMLFileName =  0;

    LVITEM                    Item;
    LVITEM                    Item1;

    int                        nNumParameters;
    int                        nCounter;
    int                        nCount;
   
    DISPID                    dispidFn;
   
    WCHAR                    *pstrFunctionName;

    char                     name[1024] ;

    EXCEPINFO               excepinfo;

    VARTYPE                 vt               =  VT_EMPTY;

    hItem                    =    m_TreeCtrl.GetSelectedItem();
       dispidFn                =    0;

    excepinfo.wCode               = 1001;
    excepinfo.wReserved           = 0;
    excepinfo.bstrSource          = 0;
    excepinfo.bstrDescription     = 0;
    excepinfo.bstrHelpFile        = 0;
    excepinfo.dwHelpContext       = 0;
    excepinfo.pvReserved          = 0;
    excepinfo.pfnDeferredFillIn   = 0;
    excepinfo.scode               = 0;
   
    VARIANT                 variantbstrtemp;
    VARIANT                    *pArg = 0;
    VARIANT                    *pRef = 0;

    smIsInputEnum           IsInput;

    nNumParameters          =   nCountParameter();

    if (nNumParameters != -1)
    {
        pArg = new VARIANT[nNumParameters];
        pRef = new VARIANT[nNumParameters];
    }
    else
        MSG("Could not get parameters from parameter list!");

    if ((!pArg) ||  (!pRef))
        MSG("There is no enough memory!");


    if (m_TreeCtrl.ItemHasChildren(hItem))
        MSG("Please select an operation!");

TOP

发新话题