加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

vc制作ocx控件DISP_FUNCTION指定函数参数类型说明

(2017-05-12 14:40:04)
分类: ActiveX控件

在制作ocx控件中在XXXctrl.cpp中 分派定义中函数参数与实际定义参数有差异所有在此解释下

BEGIN_DISPATCH_MAP(CVideoocxCtrl, COleControl)
 //{{AFX_DISPATCH_MAP(CVideoocxCtrl)
 DISP_FUNCTION(CVideoocxCtrl, "preView", preView, VT_EMPTY, VTS_NONE)
 DISP_FUNCTION(CVideoocxCtrl, "myTest", myTest, VT_EMPTY, VTS_NONE)
 DISP_FUNCTION(CVideoocxCtrl, "vInitApi", vInitApi, VT_I2, VTS_NONE)
 DISP_FUNCTION(CVideoocxCtrl, "vStartVideoPreviewApi", vStartVideoPreviewApi, VT_I2, VTS_I4)
 DISP_FUNCTION(CVideoocxCtrl, "vStopVideoPreviewApi", vStopVideoPreviewApi, VT_I2, VTS_I4)
 DISP_FUNCTION(CVideoocxCtrl, "vFreeVideoLibApi", vFreeVideoLibApi, VT_I2, VTS_NONE)
 DISP_FUNCTION(CVideoocxCtrl, "vCaptureImageJpgApi", vCaptureImageJpgApi, VT_I2, VTS_I4  VTS_BSTR VTS_I4)
 DISP_FUNCTION(CVideoocxCtrl, "vStartCaptureFileApi", vStartCaptureFileApi, VT_I2, VTS_I4 VTS_BSTR)
 DISP_FUNCTION(CVideoocxCtrl, "vStopCaptureFileApi", vStopCaptureFileApi, VT_I2, VTS_I4)
 //}}AFX_DISPATCH_MAP
 DISP_FUNCTION_ID(CVideoocxCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()

定义在计划映射到一个 OLE 自动化功能。

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

类的名称。

pszName

函数的外部名称。

pfnMember

成员函数的名称。

vtRetVal

指定函数的返回值类型。

vtsParams

空格分隔的指定函数的列出一个或多个常数参数列表。


vtRetVal argument is of type VARTYPE." xml:space="preserve">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 argument is a space-separated list of values from the VTS_ constants." xml:space="preserve">vtsParams 参数是空格分隔的列表从 VTS_ 常数的值。 空格分隔的一个或多个值 (不是逗号) 指定函数的参数列表。 

VTS_ 常数及其含义如下:

符号

参数类型

         VTS_I2

                    Short

         VTS_I4

                    Long

         VTS_R4

                   Float

         VTS_R8

                  double

         VTS_CY

            const CY 或 CY*

       VTS_DATE

                   DATE

       VTS_BSTR

                 LPCSTR

   VTS_DISPATCH

            LPDISPATCH

     VTS_SCODE

                  SCODE

      VTS_BOOL

                   BOOL

   VTS_VARIANT

const VARIANT* 或 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*

      VTS_NONE

                不带参数

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有