// 以下内容是在调用你的methods之前要做的。
CByteArray b; // 在这个里写入你的二进制数据。参考MSDN
.....
COleVariant v(b); // 将这个作为参数传过去。数据类型为VARIANTYourControl.method(v);
// 以下内容在你的method里。
// v是你的参数。
assert(v.vt == (VT_UI1 | VT_ARRAY));
assert(SafeArrayGetDim(v.parray) == 1);
long UBound, LBound;
if (SafeArrayGetUBound(v.parray, 1, &UBound) == S_OK
&& SafeArrayGetLBound(v.parray, 1, &LBound) == S_OK ) {
int n = UBound - LBound + 1; // Blob的大小
const char* p = v.parray->pvData; // Blob的内容。.............}
CByteArray b; // 在这个里写入你的二进制数据。参考MSDN
.....
COleVariant v(b); // 将这个作为参数传过去。数据类型为VARIANTYourControl.method(v);
// 以下内容在你的method里。
// v是你的参数。
assert(v.vt == (VT_UI1 | VT_ARRAY));
assert(SafeArrayGetDim(v.parray) == 1);
long UBound, LBound;
if (SafeArrayGetUBound(v.parray, 1, &UBound) == S_OK
&& SafeArrayGetLBound(v.parray, 1, &LBound) == S_OK ) {
int n = UBound - LBound + 1; // Blob的大小
const char* p = v.parray->pvData; // Blob的内容。.............}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货