创建可排队组件

至少有一个可排队接口的组件是可排队组件。 若要使组件可由队列调用,必须将接口标记为可排队,并且必须将该组件安装在排队应用程序中。 但是,可排队组件可以是非排队应用程序的组件。

可排队接口必须仅包含在参数中 - 没有 out 参数,也没有返回值。 通过在组件安装期间分析类型信息来验证这些特征。 如果接口不可排队,则无法激活包含组件的应用程序的队列。

若要将 COM+ 接口指定为可排队,请使用以下步骤:

  1. 在组件服务管理工具的控制台树中,在“组件服务”下,打开与要管理的计算机关联的“COM+ 应用程序”文件夹。

  2. 打开要排队的 COM+ 应用程序的组件的“接口”文件夹。

  3. 右键单击要标记为可排队的接口,然后单击“属性”。

  4. 在“属性”对话框中选择“队列”选项卡。

  5. 激活标记为“已排队”的复选框。

    注意

    如果“已排队”复选框灰显,则接口不满足上述可排队约束。

     

  6. 单击“确定”。

    对于可排队的所有接口,通过将 QUEUEABLE 属性宏添加到接口定义语言 (IDL) 源文件的“接口”部分来标识可排队组件。

    #include "mtxattr.h"
    [ object, dual, uuid(), helpstring(IShiphip"), QUEUEABLE ]
    interface IShip:IDispatch{
       [propput, id(1)] HRESULT CustomerId ([in] long CustId);
       [propput, id(2)] HRESULT OrderId ([in] long OrderID);
       [id(3)] HRESULT LineItem ([in] long Qty);
       [id(4)] HRESULT Process ();
    }
    

创建组件队列

开发排队组件