用SAFEARRAY封装POST数据(BHO编程)

     

使用SAFEARRAY 封装数据进行POST.

 

 

     SAFEARRAY * psa;    //定义safearray
     
     SAFEARRAYBOUND rgsabound[1];     //根据数组的维数来定义几个数组元素,本例是一个一维数组
     rgsabound[0].cElements = postLen; //数组的元素个数
     rgsabound[0].lLbound = 0;    //数组起始下标
 
     psa = SafeArrayCreate(VT_UI1, 1, rgsabound);  // 定义一维数组。
     //psa = SafeArrayCreateVector(VT_UI1, 0, postLen); //和上一命令行功能相同。
     if(!psa)
      return E_FAIL;

 

     BSTR HUGEP * pbstr;
     HRESULT hr = SafeArrayAccessData(psa, (void HUGEP* *)&pbstr); //访问数组内容,获取数组元素的起始地址存入变量pbstr中。//lock
     if (FAILED(hr))
      return E_FAIL;


     memcpy(pbstr, postStr, postLen);  //给数组赋值。
     

     SafeArrayUnaccessData(psa);//unlock

 

     VARIANT postData;
     postData.vt = VT_ARRAY | VT_UI1;
     postData.parray = psa;


     CComBSTR bstrUrl = "http://cn.yahoo.com";
    
     VARIANT headers;
     headers.vt = VT_BSTR;
     headers.bstrVal = BSTR(L"Content-Type: application/x-www-form-urlencoded/r/n");

    //定义header信息,必须发送。

 

   mWebBrowser2->Navigate(bstrUrl, NULL, NULL, &postData, &headers);  //发送数据

 

 

 

以上数据在VC 6.0下编译通过,摘自我做的BHO的部分代码。

 

有问题可以发送邮箱至zzgang_2008@yahoo.com.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值