[原创]运行时COM组件属性监视工具
你是否想过VC也可以像VB,或者.NET一样在运行时看到COM组件的属性信息呢,通过本人这段时间废寝忘食的工作,终于还是实现了,现在把工具发布出来,希望帮到有需要的人们,现在调试COM组件也可以可视化了,ADO等涉及到COM组件的开发调试就方便多了。
//CreateNewPropertiesWnd::创建新的属性监视窗口
//bModalWnd:是否以模态窗口的方式工作,若为FALSE,将不能在运行时添加或者修改监视
//lpDispatch:要监视的COM对象的IDispatch接口指针
//pDispatchDisplayName:要监视的COM对象的显示名称,通常传它的变量名,传NULL的话,将以地址为名称来显示
__declspec(dllimport) BOOL WINAPI CreateNewPropertiesWnd(BOOL bModalWnd, LPDISPATCH lpDispatch, LPWSTR pDispatchDisplayName);
支持动态添加监视:
示例代码:
void CASDQWFDQFQWDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//CComQIPtr<IDispatch> spCmdBtn1Disp=m_CmdBtn1.GetControlUnknown();
CComQIPtr<IDispatch> spOCX1Disp=m_OCX1.GetControlUnknown();
CComQIPtr<IDispatch> spExplorer1Disp=m_Explorer1.GetControlUnknown();
CreateNewPropertiesWnd(TRUE,spOCX1Disp,L"spOCX1Disp");
}

调用了CreateNewPropertiesWnd创建了属性监视窗口,已经带了一个COM组件对象(spOCX1Disp)的监视。
接下来再下面的空白行中编辑添加新的COM组件对象名称(这里是“spExplorer1Disp”)或者它的IDispatch接口地址后回车,就成功添加了新的监视。


示例程序在附件。
运行需要最新的VC2008运行时:
http://www.microsoft.com/en-us/download/details.aspx?id=26368
及较新的DBGHELP.DLL,请从最新操作系统或者windbg中拷贝。
修改记录:
20140502:增加了一些功能,增强了类型描述信息显示。
