自动化兼容的数据类型(二) ∥引用类型 IDispatch **ppdisp val short VaRianT ' pvar Val ng IVal void nre "pb Val float pelt Val double pdb val VARIANT BOOL * pool SCODE oscoda CY DATE "pdate BSTR abstr Val IUnknown **ppunk Val
自动化兼容的数据类型 ( 二 ) // 引用类型 short *piVal; long *plVal; byte *pbVal; float *pfltVal; double *pdblVal; VARIANT_BOOL *pbool; SCODE *pscode; CY *pcyVal; DATE *pdate; BSTR *pbstrVal; IUnknown **ppunkVal; IDispatch **ppdispVal; VARIANT *pvarVal; void *byref; }; };
自动化兼容的数据类型(三) 布尔型 VARIANT BOOL typedef short VARIANT BOOL /*0=FALSE. -1= TRUE * 货币类型CY typedef struct tagCY unsigned long Lo on B CY 日期类型DATE 浮点数,整数部分表示自1899年12月30日以来的天数,小数 部分为时间值
自动化兼容的数据类型 ( 三 ) • 布尔型VARIANT_BOOL typedef short VARIANT_BOOL; /* 0 == FALSE, -1 == TRUE */ • 货币类型CY typedef struct tagCY { unsigned long Lo; long Hi; } CY; • 日期类型DATE – 浮点数,整数部分表示自1899 年12 月30日以来的天数,小数 部分为时间值
Basic字符串类型BSTR 4字节长度值字符串,其长度等于指定的值以0结尾 count LPTSTR DSZ OLE提供了一组AP函数处理BSTR: SysAllocstring、 SysAllocStringLen、 SysFreeString、 SysReAllocstring、 SysReAllocstringLen以及 SysStringLen等
Basic字符串类型BSTR • OLE提供了一组API函数处理BSTR: SysAllocString、SysAllocStringLen、 SysFreeString、SysReAllocString、 SysReAllocStringLen以及SysStringLen等 count …… \0 4 字节长度值 字符串,其长度等于指定的值 以 0 结尾 LPTSTR psz
SAFEARRAY类型 typedef struct tagSAFEARRaY USHORT cIms ∥数组维数 USHORT fFeatures ∥标志信息 uLONG cbElements ∥数组中每个元素的大小 ULONG CLocks ∥数组锁的次数 PVOID pVData; ∥指向数组的数据 SAFEARRAYBOUND rgsabound[J∥数组每一维的边界信息 ISAFEARRAY typedef struct tagSAFEARRAYBOUND ULONG cElements ∥该维的元素个数 LONG ABound ∥该维的下界 I SAFEARRAYBOUND OLE也提供了一套API函数用来处理 SAFEARRAY结构
SAFEARRAY类型 typedef struct tagSAFEARRAY { USHORT cDims; // 数组维数 USHORT fFeatures; // 标志信息 ULONG cbElements; // 数组中每个元素的大小 ULONG cLocks; // 数组锁的次数 PVOID pvData; // 指 向数组的数据 SAFEARRAYBOUND rgsabound[ ]; // 数组每一维的边界信息 }SAFEARRAY; typedef struct tagSAFEARRAYBOUND { ULONG cElements; // 该维的元素个数 LONG lLbound; // 该维的下界 } SAFEARRAYBOUND; • OLE也提供了一 套API函数用来处理SAFEARRAY结构