ATL ActiveX 控件的方法或事件中使用枚举常量

这篇博客介绍了如何在ATL ActiveX控件的方法和事件中利用枚举常量。通过在控件的IDL文件中定义枚举类型,如HL_MSG_STYLE,并在方法(如A、B)和事件(如OnA)中使用这些枚举,以增强代码的可读性和功能。枚举类型包括HL_MSG_INFOMATION和HL_MSG_ERROR,用于区分不同类型的反馈信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ATL ActiveX控件一般在方法(包括属性)和事件反馈中使用枚举常量。

可以在控件的IDL文件中编写代码,见彩色部分代码。

import "oaidl.idl";
import "ocidl.idl";
[
 object,
 uuid(A0A2E087-0A96-4861-BED2-549F9A0AC2C2),
 dual,
 nonextensible,
 helpstring("IHLMessage Interface"),
 pointer_default(unique)
]
interface IHLMessage : IDispatch{

//在方法中使用枚举 

[id(1), helpstring("method A")] HRESULT A([in] enum HL_MSG_STYLE style);
 [id(2), helpstring("method B")] HRESULT B([in] LONG i);
 };
[
 uuid(5181C89F-A37F-4632-8241-92F152A8D426),
 version(1.0),
 helpstring("ActiveX for HuaLong Message Component 1.0")
]
library HuaLongALib
{

 importlib("stdole2.tlb");

//定义枚举
  enum HL_MSG_STYLE
 {  
  HL_MSG_INFOMATION = 0,
  HL_MSG_ERROR = 1
 } ;

 [
  uuid(D8EC72C0-6018-4572-88C2-AC9D2F3873AC),
  helpstring("_IHLMessage Event Interface")
 ]
 dispinterface _IHLMessageEvents
 {
  properties:
  methods:

//在事件中使用枚举 
  [id(1), helpstring("Event OnA")] HRESULT OnA([in] enum HL_MSG_STYLE style);
 };
 [
  uuid(414A7FDA-F1C4-438F-98D0-ABA598827D7F),
  helpstring("HLMessage Class")
 ]
 coclass HLMessage
 {
  [default] interface IHLMessage;
  [default, source] dispinterface _IHLMessageEvents;
 };
};
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值