OCX内怎样导出enum,或宏?谢谢了!

解决方案 »

  1.   

    枚举可以直接在IDL中定义,可以导出
    IDL中不能定义宏,不能导出
      

  2.   

     
    MapInfos这种是怎么实现的呢?
    #ifndef __MAPX_H__
    #define __MAPX_H__#ifdef UNDER_CE
    #define HELP_FINDER       0x000b
    #endif#pragma warning( disable: 4100)// event dispids
    #define MAPX_DISPID_SELECTION_CHANGED 0x1
    #define MAPX_DISPID_RESOLVEDATABIND 0x2
    #define MAPX_DISPID_TOOLUSED 0x3
    #define MAPX_DISPID_REQUESTDATA 0x4
    #define MAPX_DISPID_DATAMISMATCH 0x5
    #define MAPX_DISPID_MAPVIEWCHANGED 0x6
    #define MAPX_DISPID_ANNOTATIONADDED 0x7
    #define MAPX_DISPID_ANNOTATIONCHANGED 0x8
    #define MAPX_DISPID_THEMEMODIFYREQUESTED 0x9
    #define MAPX_DISPID_DRAWUSERLAYER 0x0a
    #define MAPX_DISPID_POLYTOOLUSED 0x0b
    #define MAPX_DISPID_MOUSEWHEEL 0x0c
    #define MAPX_DISPID_MAPINITIALIZED 0x0d
    #define MAPX_DISPID_RESOLVEDATABINDEX 0xe
    #define MAPX_DISPID_MAPDRAW 0xf// dispatch id definitions for ole stock events are
    // defined in <olectl.h>
    // they are included here for reference
    //#define DISPID_CLICK                    (-600)
    //#define DISPID_DBLCLICK                 (-601)
    //#define DISPID_KEYDOWN                  (-602)
    //#define DISPID_KEYPRESS                 (-603)
    //#define DISPID_KEYUP                    (-604)
    //#define DISPID_MOUSEDOWN                (-605)
    //#define DISPID_MOUSEMOVE                (-606)
    //#define DISPID_MOUSEUP                  (-607)
    //#define DISPID_ERROREVENT               (-608)// enum definitions to match typelibenum ToolConstants
    {
    miArrowTool = 1000,
    miPanTool = 1001,
    miCenterTool = 1002,
    miZoomInTool = 1003,
    miZoomOutTool = 1004,
    miSymbolTool = 1005,
    miTextTool = 1006,
    miSelectTool = 1007,
    miRadiusSelectTool = 1008,
    miRectSelectTool = 1009,
    miPolygonSelectTool = 1010,
    miLabelTool = 1011,
    miAddLineTool = 1012,
    miAddPolylineTool = 1013,
    miAddRegionTool = 1014,
    miAddPointTool = 1015
    };
      

  3.   

    直接在IDL文件中定义enum,然后在需要用的地方#import "*.ocx"(还有一些参数),enum结构定义就会出现在生成的.tlh文件中
      

  4.   

    把你的enum在IDL文件中定义就可以了。
      

  5.   

    idl中也支持 enum的
    所以只要在idl写enum
    自然会导出
      

  6.   

    是想在类外导出enum,在类内上述的方法是可以实现,
    我试了,在内外的话不能导出,
    就像4楼的格式。