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

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

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

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

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

    importlib("C:Program FilesCommon FilesSystemADOMSADO15.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<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />32A7D72-12D4-11D5-AC09-00A0247A8577),

       version(1.0),

       helpstring("FindCust 1.0 Type Library")

]

library FINDCUSTLib    //Library给手动提前了

{

       importlib("stdole32.tlb");

       importlib("stdole2.tlb");

//MODIFY HERE

    importlib("C:Program FilesCommon FilesSystemADOMSADO15.DLL");

       [

              object,

              uuid(B32A7D7F-12D4-11D5-AC09-00A0247A8577),

              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(B32A7D81-12D4-11D5-AC09-00A0247A8577),

              helpstring("_ISearchEvents Interface")

       ]

       dispinterface _ISearchEvents

       {

              properties:

              methods:

       };

 

       [

              uuid(B32A7D80-12D4-11D5-AC09-00A0247A8577),

              helpstring("Search Class")

       ]

       coclass Search

       {

              [default] interface ISearch;

              [default, source] dispinterface _ISearchEvents;

       };

};

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: VC和VC++
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭