您的位置:首页 > 编程语言

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

2004-07-28 19:56 393 查看
当欲向接口中定义方法如下: [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 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<?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 Files/Common Files/System/ADO/MSADO15.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;        }; };
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息