WEB开发网
开发学院软件开发VC 标准MFC WinSock ActiveX控件开发实例 阅读

标准MFC WinSock ActiveX控件开发实例

 2009-05-04 20:06:26 来源:WEB开发网   
核心提示: 三,提供控件接口和事件在MFCWinSockCtl.cpp加入如下代码:#ifndefWM_MYWINSOCK#defineWM_MYWINSOCKWM_USER+1888#endifView->ClassWizard->Automation->Add Method&he

三,提供控件接口和事件

在MFCWinSockCtl.cpp加入如下代码:

#ifndef WM_MYWINSOCK 
#define WM_MYWINSOCK WM_USER+1888
#endif
   

View->ClassWizard->Automation->Add Method…如下图:

标准MFC WinSock ActiveX控件开发实例

图片看不清楚?请点击这里查看原图(大图)。

图三 创建接口

这个时候,我们为这个控件添加了一个Connect()的接口,出于通用性,安全性和扩展性的考虑,我们采用了VARIANT类型的参数,

很多人可能都不太了解该类型,又或者有接触过,但被吓怕了,那么我们来看清它的本来面目:

struct tagVARIANT
  {
  union 
    {
    struct __tagVARIANT
      {
      VARTYPE vt;
      WORD wReserved1;
      WORD wReserved2;
      WORD wReserved3;
      union 
        {
        LONG lVal;
        BYTE bVal;
        SHORT iVal;
        FLOAT fltVal;
        DOUBLE dblVal;
        VARIANT_BOOL boolVal;
        _VARIANT_BOOL bool;
        SCODE scode;
        CY cyVal;
        DATE date;
        BSTR bstrVal;
        IUnknown __RPC_FAR *punkVal;
        IDispatch __RPC_FAR *pdispVal;
        SAFEARRAY __RPC_FAR *parray;
        BYTE __RPC_FAR *pbVal;
        SHORT __RPC_FAR *piVal;
        LONG __RPC_FAR *plVal;
        FLOAT __RPC_FAR *pfltVal;
        DOUBLE __RPC_FAR *pdblVal;
        VARIANT_BOOL __RPC_FAR *pboolVal;
        _VARIANT_BOOL __RPC_FAR *pbool;
        SCODE __RPC_FAR *pscode;
        CY __RPC_FAR *pcyVal;
        DATE __RPC_FAR *pdate;
        BSTR __RPC_FAR *pbstrVal;
        IUnknown __RPC_FAR *__RPC_FAR *ppunkVal;
        IDispatch __RPC_FAR *__RPC_FAR *ppdispVal;
        SAFEARRAY __RPC_FAR *__RPC_FAR *pparray;
        VARIANT __RPC_FAR *pvarVal;
        PVOID byref;
        CHAR cVal;
        USHORT uiVal;
        ULONG ulVal;
        INT intVal;
        UINT uintVal;
        DECIMAL __RPC_FAR *pdecVal;
        CHAR __RPC_FAR *pcVal;
        USHORT __RPC_FAR *puiVal;
        ULONG __RPC_FAR *pulVal;
        INT __RPC_FAR *pintVal;
        UINT __RPC_FAR *puintVal;
        struct __tagBRECORD
          {
          PVOID pvRecord;
          IRecordInfo __RPC_FAR *pRecInfo;
          }
__VARIANT_NAME_4;
        }
__VARIANT_NAME_3;
      }
__VARIANT_NAME_2;
    DECIMAL decVal;
    }
__VARIANT_NAME_1;
  };
   
它先是一个结构体,里面有一个重要成员VARTYPE vt;vt即是指明当前的数据类型,比如整型或者字符型,当指明vt后,

上一页  1 2 3 4 5  下一页

Tags:标准 MFC WinSock

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接