DISP_FUNCTION

DISP_FUNCTION

 

DISP_FUNCTION( theClass, pszName, pfnMember, vtRetVal, vtsParams )

 

#include <afxdisp.h>

 

参数:

theClass 类的名字。

pszName 函数的外部名字。

pfnMember 成员函数的名字。

vtRetVal 指定了函数返回类型的值。

vtsParams 指定了函数参数表的一个或多个常量的用空格分隔的列表。

 

说明:

DISP_FUNCTION宏被在调度映射中使用,用来定义一个OLE自动化函数。

vtRetVal参数属于VARTYPE类型。这个参数的可能取值来自VARENUM枚举,如下:

符号 返回类型

VT_EMPTY void

VT_I2 short

VT_I4 long

VT_R4 float

VT_R8 double

VT_CY CY

VT_DATE DATE

VT_BSTR BSTR

VT_DISPATCH LPDISPATCH

VT_ERROR SCODE

VT_BOOL BOOL

VT_VARIANT VARIANT

VT_UNKNOWN LPUNKNOWN

 

vtsParams参数是VTS_ 常量中取值的用空格分隔的列表。有空格分隔的一个或多个取值的列表指定了函数的参数列表。例如:

VTS_I2 VTS_PI2

指定了包含一个短整数以及后面的短整数指针的列表。

VTS_ 常量及其含义如下:

符号 参数类型

VTS_I2 short

VTS_I4 long

VTS_R4 float

VTS_R8 double

VTS_CY Const CY or CY*

VTS_DATE DATE

VTS_BSTR LPCSTR

VTS_DISPATCH LPDISPATCH

VTS_SCODE SCODE

VTS_BOOL BOOL

VTS_VARIANT Const VARIANT* or VARIANT&

VTS_UNKNOWN LPUNKNOWN

VTS_PI2 short*

VTS_PI4 long*

VTS_PR4 float*

VTS_PR8 double*

VTS_PCY CY*

VTS_PDATE DATE*

VTS_PBSTR BSTR*

VTS_PDISPATCH LPDISPATCH*

VTS_PSCODE SCODE*

VTS_PBOOL BOOL*

VTS_PVARIANT VARIANT*

VTS_PUNKNOWN LPUNKNOWN*

DISP_FUNCTION

 

DISP_FUNCTION( theClass, pszName, pfnMember, vtRetVal, vtsParams )

 

#include <afxdisp.h>

 

参数:

theClass 类的名字。

pszName 函数的外部名字。

pfnMember 成员函数的名字。

vtRetVal 指定了函数返回类型的值。

vtsParams 指定了函数参数表的一个或多个常量的用空格分隔的列表。

 

说明:

DISP_FUNCTION宏被在调度映射中使用,用来定义一个OLE自动化函数。

vtRetVal参数属于VARTYPE类型。这个参数的可能取值来自VARENUM枚举,如下:

符号 返回类型

VT_EMPTY void

VT_I2 short

VT_I4 long

VT_R4 float

VT_R8 double

VT_CY CY

VT_DATE DATE

VT_BSTR BSTR

VT_DISPATCH LPDISPATCH

VT_ERROR SCODE

VT_BOOL BOOL

VT_VARIANT VARIANT

VT_UNKNOWN LPUNKNOWN

 

vtsParams参数是VTS_ 常量中取值的用空格分隔的列表。有空格分隔的一个或多个取值的列表指定了函数的参数列表。例如:

VTS_I2 VTS_PI2

指定了包含一个短整数以及后面的短整数指针的列表。

VTS_ 常量及其含义如下:

符号 参数类型

VTS_I2 short

VTS_I4 long

VTS_R4 float

VTS_R8 double

VTS_CY Const CY or CY*

VTS_DATE DATE

VTS_BSTR LPCSTR

VTS_DISPATCH LPDISPATCH

VTS_SCODE SCODE

VTS_BOOL BOOL

VTS_VARIANT Const VARIANT* or VARIANT&

VTS_UNKNOWN LPUNKNOWN

VTS_PI2 short*

VTS_PI4 long*

VTS_PR4 float*

VTS_PR8 double*

VTS_PCY CY*

VTS_PDATE DATE*

VTS_PBSTR BSTR*

VTS_PDISPATCH LPDISPATCH*

VTS_PSCODE SCODE*

VTS_PBOOL BOOL*

VTS_PVARIANT VARIANT*

VTS_PUNKNOWN LPUNKNOWN*

function bit get_next_disparity(bit [9:0] code, bit current_disparity); //function void get_next_disparity(bit [9:0] code, ref bit current_disparity); int count_ones=0; bit disparity_6b, disparity_4b; bit disp_error = 0; for(int k =0; k<6; k++) if(code[k+4] == 1) count_ones++; if((count_ones == 3 && code[9:4] == 6'b000111) || count_ones > 3) begin disparity_6b = 1; if ( (disparity_6b == current_disparity) && (count_ones > 3)) begin disp_error = 1; end if ( (disparity_6b != current_disparity) && (count_ones == 3 && code[9:4] == 6'b000111)) begin disp_error = 1; end end else if(count_ones < 3 || (count_ones == 3 && code[9:4] == 6'b111000)) begin disparity_6b = 0; if ((disparity_6b == current_disparity) && (count_ones < 3) ) begin disp_error = 1; end if ((disparity_6b != current_disparity) && (count_ones == 3 && code[9:4] == 6'b111000) ) begin disp_error = 1; end end else disparity_6b = current_disparity; count_ones = 0; for(int k=0; k<4; k++) if(code[k] == 1) count_ones++; if((count_ones == 2 && code[3:0] == 6'b0011) || count_ones > 2) begin disparity_4b = 1; if ((disparity_6b == disparity_4b) && (count_ones > 2)) begin disp_error = 1; end if ((disparity_6b != disparity_4b) && (count_ones == 2 && code[3:0] == 6'b0011)) begin disp_error = 1; end end else if(count_ones < 2 || (count_ones == 2 && code[3:0] == 6'b1100)) begin disparity_4b = 0; if ((disparity_6b == disparity_4b) && (count_ones < 2) ) begin disp_error = 1; end if ((disparity_6b != disparity_4b) && (count_ones == 2 && code[3:0] == 6'b1100) ) begin disp_error = 1; end end else disparity_4b = disparity_6b; return {disp_error, disparity_4b}; //current_disparity = disparity_4b; endfunction : get_next_disparity
最新发布
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值