HRESULT Create(VARTYPE vt, DWORD dwDims, SAFEARRAYBOUND* rgsabound = NULL);
其中,vt 参数表示数组元素的类型(VARTYPE),dwDims 参数表示数组的维度数,rgsabound 参数是一个指向 SAFEARRAYBOUND 结构数组的指针,用于指定每个维度的边界。
以下是一个简单的示例代码,演示如何使用 Create 方法:
COleSafeArray sa;
VARTYPE vt = VT_I4; // 例如,表示数组元素是 4 字节的长整型
DWORD dwDims = 2; // 例如,表示创建一个二维数组
// 定义数组每个维度的边界
SAFEARRAYBOUND rgsabound[2];
rgsabound[0].cElements = 3; // 维度 1 有 3 个元素
rgsabound[0].lLbound = 0; // 维度 1 的下限
rgsabound[1].cElements = 4; // 维度 2 有 4 个元素
rgsabound[1].lLbound = 0; // 维度 2 的下限
HRESULT hr = sa.Create(vt, dwDims, rgsabound);
if (SUCCEEDED(hr)) {
// 创建成功,现在可以向数组存储数据了
// ... 在这里进行数据存储操作 ...
} else {
// 处理错误
}
在调用 Create 方法后,可以通过其他成员函数如 PutElement、PutAt 等来向数组存储数据。最后,记得在不再需要数组或程序退出时调用 Release 方法来释放分配的资源。
需要注意的是,具体的函数声明和用法可能因不同的 MFC 版本而有所不同,建议查阅相关文档或参考相应版本的 MFC 源码。
转载请注明出处:http://www.zyzy.cn/article/detail/21493/MFC/COleSafeArray