我想调用一个COM方法,它需要一个字符串SafeArray作为参考传递,然后用方法结果填充。这是VBA,它完美的作品代码: dimr RC as New RAS41.HECRASController
RC.Project_Open "c:\myProj.prj"
dim numMessages as Long
dim messages() as String
RC.Compute_Curr
我正在编写一个C++ dll来对从VBA传递过来的SAFEARRAY进行排序。 我没有使用任何OLE库,而是直接访问数组描述符和数据。 我对排序任何本机VBA类型的数组没有任何问题。例如,下面的代码片段排序BSTRs数组: long * p = (long*)pData;
std::sort(p, p + elems, comparestring);
...使用这种比较函数: bool c
我可以从缓冲存储器复制到安全数组如下 function GetVarArrayFromBuffer(ABuffer : pByte; ASizeInBytes: Cardinal) : OleVariant;
var
LVarArrayPtr: Pointer;
begin
Result := VarArrayCreate([0, ASizeInBytes