ADO编程中ATL所遇到的定义问题

当欲向接口中定义方法如下:

[id(1), helpstring("method SearchCust")] HRESULT SearchCust([in] BSTR bstrcustid,[out,retval] _Recordset **ptr);

 

由于用到_Recordset类型,所以必须

    importlib("C:/Program Files/Common Files/System/ADO/MSADO15.DLL");

 

于是整个idl文件应该改写为以下方式:

// FindCust.idl : IDL source for FindCust.dll

//

 

// This file will be processed by the MIDL tool to

// produce the type library (FindCust.tlb) and marshalling code.

 

import "oaidl.idl";

import "ocidl.idl";

 

[

       uuid(B 32A 7D72-12D4-11D5-AC09 -00A 0247A 8577),

       version(1.0),

       helpstring("FindCust 1.0 Type Library")

]

library FINDCUSTLib    //Library给手动提前了

{

       importlib("stdole32.tlb");

       importlib("stdole2.tlb");

//MODIFY HERE

    importlib("C:/Program Files/Common Files/System/ADO/MSADO15.DLL");

       [

              object,

              uuid(B 32A 7D 7F -12D4-11D5-AC09 -00A 0247A 8577),

              dual,

              helpstring("ISearch Interface"),

              pointer_default(unique)

       ]

       interface ISearch : IDispatch

       {

              [id(1), helpstring("method SearchCust")] HRESULT SearchCust([in] BSTR bstrcustid,[out,retval] _Recordset **ptr);

       };

 

 

       [

              uuid(B 32A 7D81-12D4-11D5-AC09 -00A 0247A 8577),

              helpstring("_ISearchEvents Interface")

       ]

       dispinterface _ISearchEvents

       {

              properties:

              methods:

       };

 

       [

              uuid(B 32A 7D80-12D4-11D5-AC09 -00A 0247A 8577),

              helpstring("Search Class")

       ]

       coclass Search

       {

              [default] interface ISearch;

              [default, source] dispinterface _ISearchEvents;

       };

};

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

smallmark

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值