fantong,闻一下这个问题,看看有没有技术的味道?

ji_hui 2002-03-15 12:57:23
用ATL做的控件,如何实现一个DataSource属性,最好可以检测到ADODC之流的控件。
...全文
45 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ji_hui 2002-03-20
  • 打赏
  • 举报
回复
你还好,我现在每天都在用VB。没时间看VC++,真是痛苦。
有空联系。
我的EMAIL:JI_HUI@EYOU.COM.

谢谢两位。
ji_hui 2002-03-18
  • 打赏
  • 举报
回复
好!好!
两位果然是高手!
真希望以后多看到这类贴子。
大家继续。
gxh 2002-03-18
  • 打赏
  • 举报
回复
MSDN中有一個例子﹐叫ComplexDB,應該可以解決你的問題。在vcoledb\consumer\里。
fantong 2002-03-18
  • 打赏
  • 举报
回复
to:
gxh(我是一只菜菜菜菜鳥)
是啊,是啊,我得到了一个叫DataSource的属性,有什么用?
它不干活啊
就像偶今天刚写了一个程序叫windows.exe
我真的写了一个windows,和微软的那个一摸一样
fantong 2002-03-18
  • 打赏
  • 举报
回复
to:ji_hui(阿辉) 有例子了,自己看看吧
偶最近天天在看C++,最基本的那种,没时间试验拉
就是什么继承啊,多态啊
有什么用,有屁用
但是跳槽面式要啊
gxh 2002-03-17
  • 打赏
  • 举报
回复
這個問題太簡單﹐使用下面的IDL,就能得到DataSource屬性﹕
[propget, id(1), helpstring("property DataSource")]
HRESULT DataSource([out, retval] DataSource** ppDataSource);
[propputref, id(1), helpstring("property DataSource")]
HRESULT DataSource([in] DataSource* pDataSource);
gxh 2002-03-17
  • 打赏
  • 举报
回复
這個問題太簡單,使用下面的IDL聲明﹐就能得到一個DataSource屬性﹕
[propget, id(1), helpstring("property DataSource")]
HRESULT DataSource([out, retval] DataSource** ppDataSource);
[propputref, id(1), helpstring("property DataSource")]
HRESULT DataSource([in] DataSource* pDataSource);
fantong 2002-03-15
  • 打赏
  • 举报
回复
有兴趣的女同志and男同志可以研究一下说说结果
fantong 2002-03-15
  • 打赏
  • 举报
回复
这个问题有点意思,以前我也式过,但是没有成功

我原来的想法是手动创建一个ado recordset,再将它设置成一个datagrid的datasource,两个控件都是手动创建的


分析datagrid和adodc的关系我想就可以解决你的问题
1.先来看看datagrid
如果用add project 的方法,用向导产生的类
察看datagrid的声明
LPUNKNOWN GetDataSource();
void SetRefDataSource(LPUNKNOWN newValue);
是个万金油
用#import "c:\WINNT\system32\MSDATGRD.OCX" ???????
不行!!
这个datagrid有交叉引用
必须用
#import "C:\WINNT\System32\msstdfmt.dll"
using namespace StdFormat;
#import "C:\WINNT\System32\msdatsrc.tlb"
using namespace MSDATASRC;

#import "c:\WINNT\system32\MSDATGRD.OCX"
using namespace MSDataGridLib;
顺序不能错!而且不能用no_namespace 来引到同一namespace
可以看到 IDataGrid 有一成员变量MSDATASRC::DataSourcePtr DataSource;
(当然是import生成的假象,实际上是两个函数)
再看DataSourcePtr 它是IDataSource的指针,在msdatsrc.tlh中申明的
也就是说DataGrid要求一个IDataSource的指针
2.看看AdoDc
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" \
no_namespace rename("EOF", "EndOfFile")

#import "C:\WINNT\system32\MSADODC.OCX"
adodc与Ado没有继承关系,只是封装了recordset

不知道它是怎样在adodc上实现IDataSoure的
当时时间紧迫,被迫改用vb了
所以没有深究下去

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧