我正在开发一个OLEDB提供程序,目前它利用了由提供的“默认”连接对话框
IDBPromptInitialize::PromptDataSource()
this
。当我将我的提供者与某些客户端工具(如MS Excel或.udl文件)一起使用时,会出现相同的UI。我现在计划创建自己的UI。
在“提供程序”选项卡中选择不同的OLEDB提供程序时,我注意到,对于其中一些提供程序,连接选项卡看起来非常不同,例如。
SQL Server Native Client 11.0
因此,对其进行定制似乎在技术上是可行的。我的问题是:怎么做?
注意:我知道我可以把自己的UI放在一起,我可以随时弹出它。但这不会神奇地集成到数据链接属性对话框的连接选项卡中,是吗?
谢谢
编辑
ISpecifyPropertyPages::GetPages
OleCreatePropertyFrame
如回答中所述。
GetPages
成功调用了,但是只调用了我的ConnectionTab的构造函数(没有任何错误),然后选项卡立即消失(没有崩溃!)。不
IPropertyPage
方法,也没有调用任何其他内容。
知道问题出在哪里吗?
好的,我知道了。在我的AdvancedTab课程中,我错过了
COM_INTERFACE_ENTRY(IPersistPropertyBag)
在COM映射中。我把太多精力放在连接选项卡上,因为我想先让它工作。
放
#define _ATL_DEBUG_QI
之前
#include <atlcom.h>
QueryInterface
调用失败
IPersistPropertyBag
.