COM DLL SimpleATLDLL.idl IDL语法一例

来源:互联网 发布:怎么阿里找淘宝同款 编辑:程序博客网 时间:2024/06/04 01:03

COM DLL SimpleATLDLL.idl   IDL语法一例


// SimpleATLDLL.idl : SimpleATLDLL 的 IDL 源
//


// 此文件将由 MIDL 工具处理以
// 产生类型库(SimpleATLDLL.tlb)和封送处理代码。


import "oaidl.idl";
import "ocidl.idl";
//---------------------xpGeometryType 枚举类型
//object,
//uuid(05643780-AF84-4073-9117-A033923F4BCB),
//pointer_default(unique)
typedef 
[
uuid(05643780-AF84-4073-9117-A033923F4BCB),
v1_enum, 
helpstring("xpGeometryType enum")
]
enum  EnumXpGeometryType{ 
        xpGeometryNull = 0,
        xpGeometryPoint = 1,
        xpGeometryMultipoint = 2,
        xpGeometryPolyline = 3,
        xpGeometryPolygon = 4,
        xpGeometryEnvelope = 5,
        xpGeometryPath = 6,
        xpGeometryAny = 7,
        xpGeometryMultiPatch = 9,
        xpGeometryRing = 11,
        xpGeometryLine = 13,
        xpGeometryCircularArc = 14,
        xpGeometryBezier3Curve = 15,
        xpGeometryEllipticArc = 16,
        xpGeometryBag = 17,
        xpGeometryTriangleStrip = 18,
        xpGeometryTriangleFan = 19,
        xpGeometryRay = 20,
        xpGeometrySphere = 21,
        xpGeometryTriangles = 22,
} enumxpGeometryType; 
//---------------------enum   test
typedef   
[   
  uuid(F42ABD57-ECE8-42BF-AABF-E43FB0EF3933),   
  v1_enum, 
  helpstring("enum   test")   
]   
enum EnumWorkdays{
[helpstring("Monday")]Monday=2,   
[helpstring("Tuesday")]Tuesday=3,   
[helpstring("Wednesday")]Wednesday=4,   
[helpstring("Thursday")]Thursday=5,   
[helpstring("Friday")]Friday=6
} enumWorkdays;  
//---------------------tagImageFMT
typedef   
  [   
  uuid(F1A3AFB8-EC53-4bc9-A0D7-5F91D65BCACB),     
  version(1.0),   
  helpstring("tagImageFMT   enum   Type")   
  ]   
enum   EnumImageFMT   
  {   
  [helpstring("TIF")]   IF_TIFF=0,   
  [helpstring("BMP")]   IF_BMP=1,   
  }ImageFMT;   
//----------------系统定义的接口ISimpleATLClass
[
object,
uuid(FDE36D69-0004-46B3-90A3-AC9681D9B289),
dual,
nonextensible,
helpstring("ISimpleATLClass 接口"),
pointer_default(unique)
]
interface ISimpleATLClass : IDispatch{  //IDispatch/IUnknown
//定义 加法方法
     HRESULT Add([in] long a,[in] long b,[out,retval] long *pnVal);
};
[
object,
uuid(6F4B7079-5E64-45AF-B127-231DC081716A),
dual,
nonextensible,
helpstring("ISecendATL 接口"),
pointer_default(unique)
]
interface ISecendATL:IDispatch //IUnknown
{
    //定义 加法方法
[id(1), helpstring("方法Add")] 
    HRESULT Add([in] long a,[in] long b,[out,retval] long *pnVal);
//-------------
[id(2), helpstring("方法Sub")] 
HRESULT Sub([in] long a,[in] long b,[out,retval] long *pnVal);
};
//----------------自定义接口IMathe
//[
//    object,
// uuid(CFA4D945-B4C7-46CE-88F6-7724F43A614A),
// dual,
// nonextensible,
// helpstring("IMathe 接口"),
// pointer_default(unique)
//]
//interface IMathe : IUnknown
//{
// [helpstring("method Add")] 
// HRESULT Add([in] long n1, [in] long n2, [out,retval] long *pnVal);
//};
//----------------
//---------------------------------------------
[
uuid(35B84547-5983-4781-8761-71D5EB474079),
version(1.0),
helpstring("SimpleATLDLL 2.0 类型库"),

]
library SimpleATLDLLLib
{
importlib("stdole2.tlb");
//----------------
/*[
uuid(666F0945-D7D2-4A74-A0E9-351E459A5910),
helpstring("xpGeometryType enum")
]
enum xpGeometryType
{
[default] enum xpGeometryType;
};*/
//--------------
[
uuid(958A3544-CD9D-408A-9859-3271F168C0A4),
helpstring("SimpleATLClass Class")
]
coclass SimpleATLClass
{
[default] interface ISimpleATLClass;
         interface ISecendATL; 
};
enum  EnumXpGeometryType;
enum EnumWorkdays;
enum   EnumImageFMT;
//--------------
};
//------------------------------

原创粉丝点击