zoukankan      html  css  js  c++  java
  • SAFEARRAY使用方法示例

    SAFEARRAY使用方法示例

     

    SAFEARRAY不是很好用,一些函数不太直观,一不小心就着了它的道。上次学习编写Google桌面插件时就遇到了麻烦,本来应该是vsa.vt = VT_ARRAY | VT_BSTR,结果写成了vsa.vt = VT_ARRAY,让我查了好久才找到原因。这里整理一下,作为备忘。

     

    l         创建

                                long i = 0;

                                VARIANT va = {0};

                                va.vt = VT_BSTR;

                               

                                SAFEARRAYBOUND bounds[1] = {0};

                                bounds[0].cElements = 5;

                                SAFEARRAY* psa = SafeArrayCreate(VT_VARIANT, 1, bounds);

     

    l         存入元素

                                for(i = 0; i < 5; i++)

                                {

                                         va.bstrVal = SysAllocString(L"test");

                                         SafeArrayPutElement(psa, &i, &va);

                                }

     

    l         获取元素

                                for(i = 0; i < 5; i++)

                                {

                                         va.bstrVal = SysAllocString(L"test");

                                         SafeArrayGetElement(psa, &i, &va);

                                         SysFreeString(va.bstrVal);

                                }

     

    l         销毁

                                SafeArrayDestroy(psa);

     

    l         生成VARIANT变量

                                VARIANT vsa = {0};

                                vsa.vt = VT_ARRAY | VT_BSTR;

                                vsa.parray = psa;

     

  • 相关阅读:
    html中的a标签
    dl,dt,dd标签的使用
    MySQL innodb中各种SQL语句加锁分析
    Js字符串与十六进制的相互转换 【转】
    亿级Web系统搭建:单机到分布式集群【转】
    pm2 设置开机启动
    spring cloud 项目相关集成简介
    spring boot下JedisCluster方式连接Redis集群的配置
    并发编程 – Concurrent 用户指南--转
    JDBC 事务和 JTA 事务
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167887.html
Copyright © 2011-2022 走看看