SAFEARRAY使用方法示例
From: http://blog.csdn.net/absurd/article/details/786822
?
SAFEARRAY使用方法示例
?
SAFEARRAY不是很好用,一些函數(shù)不太直觀,一不小心就著了它的道。上次學(xué)習(xí)編寫Google桌面插件時就遇到了麻煩,本來應(yīng)該是vsa.vt = VT_ARRAY | VT_BSTR,結(jié)果寫成了vsa.vt = VT_ARRAY,讓我查了好久才找到原因。這里整理一下,作為備忘。
?
l???????? 創(chuàng)建
| ??????????????????????????? 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; |
?
總結(jié)
以上是生活随笔為你收集整理的SAFEARRAY使用方法示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win10 安装MASM32 遇到的问题
- 下一篇: “云计算+DevOps”的正确打开方式