ATL ActiveX 控件的方法或事件中使用枚举常量
2008-02-18 09:29
495 查看
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;
};
};
可以在控件的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;
};
};
相关文章推荐
- ATL ActiveX 控件的方法或事件中使用枚举常量 (补遗)
- ListView使用自定义适配器的情况下实现适配器的控件点击事件执行Activity界面中的方法
- 常用界面控件种类和使用方法、常用控件的事件响应方法、常用内置视图种类和使用方法
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 不使用ASP.NET服务器端控件(包括form表单不加runat="server")来触发.cs里的事件(方法),(适用于有代码洁癖者)。
- jeasyui控件事件和方法的使用方法
- Android 控件使用Animator动画后,点击事件失效解决方法
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- ListView使用自定义适配器的情况下实现适配器的文本和图标控件点击事件执行Activity界面中的方法
- vbscript使用ocx控件的方法及事件
- 【WPF开发备忘】使用MVVM模式开发中列表控件内的按钮事件无法触发解决方法
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- 使用代码创建的控件对象,设置的事件监听方法不执行的问题
- 使用layout方法实现控件的移动并且不影响点击事件
- ASP.NET2.0中的GRIDVIEW控件在使用TemplateField中的LinkButton时如何在RowCommand事件中找到当前行index的方法
- android常用控件的使用方法
- 使用系统方法自定义一些系统控件的方法
- C# 自定义事件并使用自定义事件参数方法