• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 关于Com本质论中的一个问题,请高手解答

关于Com本质论中的一个问题,请高手解答

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了com本质论,豆瓣 com本质论,7430com红高手论网站,社会主义本质论,c#本质论等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于Com本质论中的一个问题,请高手解答
描述:

#ifndef _INTTABLE_H
#define _INTTABLE_H
typedef HRESULT (STDAPICALLTYPE *INTERFACE_FINDER)(void *pThis, DWORD dwData, REFIID riid, void **ppv);
#define ENTRY_IS_OFFSET INTERFACE_FINDER(-1)
// basic table layout
typedef struct _INTERFACE_ENTRY
{
    const IID * pIID;           // the IID to match
    INTERFACE_FINDER pfnFinder; // finder function
    long        dwData;         // aux data for finder function
} INTERFACE_ENTRY;
// the routine that implements QueryInterface basd on the table
EXTERN_C HRESULT STDAPICALLTYPE InterfaceTableQueryInterface(void *pThis, const INTERFACE_ENTRY *pTable, REFIID riid, void **ppv);
#define BASE_OFFSET(ClassName, BaseName) \
    (DWORD(static_cast<BaseName*>(reinterpret_cast<ClassName*>(0x10000000))) - 0x10000000)
#define COMPOSITE_OFFSET(ClassName, BaseName, MemberType, MemberName) \
    (DWORD(static_cast<BaseName*>(reinterpret_cast<MemberType*>(0x10000000 + offsetof(ClassName, MemberName)))) - 0x10000000)
#define BEGIN_INTERFACE_TABLE(ClassName) \
typedef ClassName _InterfaceTableClassName;\
static const INTERFACE_ENTRY *GetInterfaceTable(void) \
{\
    static const INTERFACE_ENTRY table[] = {\
#define INTERFACE_TABLE_ENTRY(piid, pfn, dwData) \
        { piid, pfn, dwData },
#define IMPLEMENTS_INTERFACE(ItfName) \
        { &IID_##ItfName, ENTRY_IS_OFFSET,  BASE_OFFSET(_InterfaceTableClassName, ItfName) },
#define IMPLEMENTS_INTERFACE_AS(RequestedItfName, BaseClassName) \
        { &IID_##RequestedItfName, ENTRY_IS_OFFSET ,  BASE_OFFSET(_InterfaceTableClassName, BaseClassName)},
#define IMPLEMENTS_INTERFACE_WITH_COMPOSITE(RequestedItfName, DataMemberType, DataMemberName) \
        { &IID_##RequestedItfName, ENTRY_IS_OFFSET ,  COMPOSITE_OFFSET(_InterfaceTableClassName, RequestedItfName, DataMemberType, DataMemberName) },
#define END_INTERFACE_TABLE() \
        { 0, 0, 0 }\
    };\
    return table;\
}
#endif
其中 #define ENTRY_IS_OFFSET INTERFACE_FINDER(-1),这一句该如何理解?


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 哪里可以买到《com本质论》这本书呀?(北京)
  • 关于《com本质论》中的一些疑问(1)
  • com本质论中关于动态复合tearoff的疑问
  • 《COM本质论》的问题
  • 《Com本质论》的一个问题
  • 关于《COM本质论》中第一章例子程序的一点问题
  • 想下com本质论的书?
  • 20分请问,有谁知道潘爱民近期翻译的COM本质论是否上市了,在那儿能买到。
  • com本质论一书的问题
  • 关于本质论一书中ComChat源码的问题?

相关文章

  • 2017-06-04 IWebBrowser2自制浏览器控件问题
  • 2017-06-04 关于开发矢量图软件
  • 2017-06-04 如何动态地在网页中插入AtlActivex控件?来者有分!
  • 2017-06-05 回调函数在DLL中的应用,一个DEBUG和RELEASE的问题
  • 2017-06-04 [jiangsheng(蒋晟Net[MVP])]请进,帮忙,多谢
  • 2017-06-04 一个ActiveX插件实现截屏功能,嵌入到网页的时调用其方法运行时有时出现花屏的问题,请高手不吝指教!
  • 2017-06-04 com插件中怎么用ado连接数据库?
  • 2017-06-04 ATL写的类库如果打开一个窗口
  • 2017-06-05 问了半年了,来者有分,超级难题!!!
  • 2017-06-04 如何使ActiveX控件在编辑期间,大小不变(类似AdoCommand,DataSource

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 简单COM问题
    • 这样的问题是我写的组件的问题还是系统的问题呢?
    • 紧急求助:如何将OCX控件包装成JavaBean(不能用JActiveX)!!!
    • 插入系统进程的远程线程用WinExeC启动其他UI进程时,被启动的进程不显示UI……
    • 我在扩展MFC动态库中创建的对象列表,在activex控件中不能序列化,报错classnotfound,为什么?
    • 使用_com_util::ConvertBSTRToStringBSTR的奇怪问题(Releaselink报错)
    • atl实现连接点可以利用代理类自动创建,在dotnet里有所不同
    • OCX下的参数类型问题
    • 对ATL很感兴趣,但不知道从哪里入手
    • cystalreport释放连接

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有