activex控件 InvokeHelper

2023-10-27

当你调用关于activex控件中的相关方法时,你要导入此控件到程序中,此时就会在工程中生成一个关于此控件调用的一个伪调用类,其中的cpp中调用每 个方法都是通过InvokeHelper调用其中的dwDispID值来定位方法的地址的!因此,可以将InvokeHelper调用理解为定位 activex控件中的相关方法的一种手段

invokehelper:   用于调用OLE   的IDispatch   接口方法的一个封装方法。

CWnd::InvokeHelper

Call this member function to invoke the ActiveX Control method or property specified by dwDispID , in the context specified by wFlags .

void AFX_CDECL InvokeHelper(
DISPID dwDispID,
WORD wFlags,
VARTYPE vtRet,
void* pvRet,
const BYTE* pbParamInfo,
...
);

Parameters

dwDispID
Identifies the method or property to be invoked.
wFlags
Flags describing the context of the call to IDispatch::Invoke . For possible wFlags values, see IDispatch::Invoke in the Platform SDK .
vtRet
Specifies the type of the return value. For possible values, see the Remarks section for COleDispatchDriver::InvokeHelper .
pvRet
Address of the variable that will that will receive the property value or return value. It must match the type specified by vtRet .
pbParamInfo
Pointer to a null-terminated string of bytes specifying the types of the parameters following pbParamInfo . For possible values, see the Remarks section for COleDispatchDriver::InvokeHelper .
...
Variable List of parameters, of types specified in pbParamInfo .

Remarks

The pbParamInfo parameter specifies the types of the parameters passed to the method or property. The variable list of arguments is represented by ... in the syntax declaration.

This function converts the parameters to VARIANTARG values, then invokes the IDispatch::Invoke method on the ActiveX control. If the call to IDispatch::Invoke fails, this function will throw an exception. If the SCODE (status code) returned by IDispatch::Invoke is DISP_E_EXCEPTION , this function throws a COleException object, otherwise it throws a COleDispatchException .

Note    This function should be called only on a CWnd object that represents an ActiveX control.

For more information about using this member function with ActiveX Control Containers, see the article ActiveX Control Containers: Programming ActiveX Controls in an ActiveX Control Container.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

activex控件 InvokeHelper 的相关文章

  • 从多线程程序中调用 system()

    我们正在开发一个用 C 编写的多线程内存消耗应用程序 我们必须执行大量的 shellscript linux 命令 并获取返回码 读完之后article http www linuxprogrammingblog com threads a
  • System.IO.IOException:由于意外>数据包格式,握手失败?

    有谁知道这意味着什么 System Net WebException 底层连接已关闭 发送时发生意外错误 gt System IO IOException 由于意外 握手失败 数据包格式 在 System Net Security SslS
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • C++中delete和delete[]的区别[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的删除与删除 运算符 https stackoverflow com questions 2425728 delete vs delete operators in c 我写了一个包含两个指针的
  • 在 C# Winforms 应用程序中嵌入 Windows XP 主题

    我有一个旧版 C Windows 窗体应用程序 其布局是根据 Windows XP 默认主题设计的 由于需要将其作为 Citrix 应用程序进行分发 该应用程序现在看起来像经典主题应用程序 因为 Citrix 不鼓励使用主题系统服务 所以
  • 从 C 结构生成 C# 结构

    我有几十个 C 结构 我需要在 C 中使用它们 典型的 C 结构如下所示 typedef struct UM EVENT ULONG32 Id ULONG32 Orgin ULONG32 OperationType ULONG32 Size
  • mprotect 之后 malloc 导致分段错误

    在使用 mprotect 保护内存区域后第一次调用 malloc 时 我遇到分段错误 这是执行内存分配和保护的代码片段 define PAGESIZE 4096 void paalloc int size Allocates and ali
  • SFINAE 如何使用省略号?

    过去 当使用 SFINAE 选择构造函数重载时 我通常使用以下内容 template
  • 如何使用MySqlCommand和prepare语句进行多行插入?(#C)

    Mysql 给出了如何使用准备语句和 NET 插入行的示例 http dev mysql com doc refman 5 5 en connector net programming prepared html http dev mysq
  • 获取尚未实例化的类的函数句柄

    我对 C 相当陌生 我想做的事情可能看起来很复杂 首先 我想获取一些函数的句柄以便稍后执行它们 我知道我可以通过以下方式实现这一目标 List
  • 带 If 的嵌套 For 循环的时间复杂度

    void f int n for int i 1 i lt n i if i int sqrt n 0 for int k 0 k lt pow i 3 k do something 我的思考过程 执行if语句的次数 sum i 1 to
  • 从 Code::Blocks 运行程序时出现空白控制台窗口 [重复]

    这个问题在这里已经有答案了 当我尝试在 Code Blocks 中构建并运行新程序时 控制台窗口弹出空白 我必须单击退出按钮才能停止它 它对我尝试过的任何新项目 包括 Hello world 都执行此操作 奇怪的是 它对于我拥有的任何旧项目
  • 2D morton 码编码/解码 64 位

    如何将给定 x y 的莫顿代码 z 顺序 编码 解码为 32 位无符号整数 生成 64 位莫顿代码 反之亦然 我确实有 xy2d 和 d2xy 但仅适用于 16 位宽的坐标 产生 32 位莫顿数 在网上查了很多 但没有找到 请帮忙 如果您可
  • C# 中的常量和只读? [复制]

    这个问题在这里已经有答案了 可能的重复 const 和 readonly 之间有什么区别 https stackoverflow com questions 55984 what is the difference between cons
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • WPF。如何从另一个窗口隐藏/显示主窗口

    我有两个窗口 MainWindow 和 Login 显示登录的按钮位于主窗口 this Hide Login li new Login li Show 登录窗口上有一个检查密码的按钮 如果密码正确 我如何显示主窗口 将参数传递给 MainW
  • 使用 HTMLAgilityPack 从节点的子节点中选择所有

    我有以下代码用于获取 html 页面 将网址设置为绝对 然后将链接设置为 rel nofollow 并在新窗口 选项卡中打开 我的问题是关于将属性添加到 a s string url http www mysite com string s
  • 如何显示 zsh 函数定义(如 bash“type myfunc”)?

    如何在 zsh 中显示函数的定义 type foo没有给出定义 在bash中 bash function foo echo hello bash foo hello bash type foo foo is a function foo e
  • Visual Studio 2017 完全支持 C99 吗?

    Visual Studio 的最新版本改进了对 C99 的支持 最新版本VS2017现在支持所有C99吗 如果没有 C99 还缺少哪些功能 No https learn microsoft com en us cpp visual cpp
  • C语言声明数组没有初始大小

    编写一个程序来操纵温度详细信息 如下所示 输入要计算的天数 主功能 输入摄氏度温度 输入功能 将温度从摄氏度转换为华氏度 独立功能 查找华氏度的平均温度 我怎样才能在没有数组初始大小的情况下制作这个程序 include

随机推荐

  • 在Windows下编译VLC并实现播放视频

    在Windows下编译VLC并实现播放视频 一 编译Win版的VLC真麻烦 二 获取VLC的SDK 1 下载VLC播放器 2 库文件 3 头文件 三 调用VLC实现播放视频 1 拷贝头文件和库文件 2 修改pro文件 3 封装播放器类VLC
  • 前端模块化!

    模块化 1 简介 模块化产生的背景 随着网站逐渐变成 互联网应用程序 嵌入网页的Javascript代码越来越庞大 越来越复杂 Javascript模块化编程 已经成为一个迫切的需求 理想情况下 开发者只需要实现核心的业务逻辑 其他都可以加
  • 基于微信小程序的电影院买票选座系统

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端工具 微信小程序工具 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • 借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题

    借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题 文章目录 借助EspExceptionDecoder工具分析定位esp8266或esp32异常问题 问题出现Exception stack EspEx
  • eclipse中文注释缩进问题

    1 问题 中文注释的缩进有问题 英文注释没有问题 2 查看当前字体 3 修改字体 改为宋体或其他字体 就没有该问题了 也可以选择系统字体
  • 【Markdown】 实现上角标和下角标的两种方法(详细讲解!!!)

    作者 MiTu 本帖内容著作权归作者所有 转载请务必保留本文链接 Markdown实现上下角标的两种方法 第一种 使用Markdown自带的代码格式 下标 内容 例 H2O H 2 O 上标 内容 例 210 2 10 第二种 使用 HTM
  • 又发现一个好玩的 Pycharm 插件,通过AI自动生成代码块注释

    经常在开发代码块的过程中都需要写大量的注释来完成对代码块的说明 作为一名程序猿可能经常在抱怨别人开发的代码块没有注释或是注释不清楚 但我们自己又不想把大量的时间花费在代码块注释的编写上面 今天要说的这款插件是Mintlify Doc Wri
  • Go工程化 - 依赖注入

    在微服务框架kratos v2的默认项目模板中kratos layout使用了google wire进行依赖注入 也建议开发者在维护项目时使用该工具 wire 乍看起来比较违反直觉 导致很多同学不理解为什么要用或不清楚如何用 也包括曾经的我
  • 利用react基础编写案例---【求和】

    案例图 redux方法 代码 index js import React from react import ReactDOM from react dom import App from App ReactDOM render
  • [vue3+ts]方法一:使用vuex的mapState和mapGetters

    src下新建hooks useState js import computed from vue import mapState useStore from vuex mapper是存在state中的数据 export function u
  • UDP协议的详细解析

    UDP数据报 一 UDP的概述 User Datagram Protocol 用户数据报协议 UDP是传输层的协议 功能即为在IP的数据报服务之上增加了最基本的服务 复用和分用以及差错检测 UDP提供不可靠服务 具有TCP所没有的优势 UD
  • 关于java.lang.NullPointerException报错的原因和解决方法

    空指针异常 某个对象为null 对该对象的访问就会抛出空指针异常 解决 需找到该异常位置并在处理或调用对象的时候需要判断是否为null 如 Long echostr null String str echostr toString 当ech
  • R语言中将hello打印10次的两种方法

    我们有两种方法来做这件事情 1 for结构 for循环重复的执行一个语句 直到某个变量的值不再包含在序列seq中为止 语法 for var in seq statement 例如 gt for i in 1 10 print Hello 1
  • lumen ”Cannot declare class Event“ 错误解决方法

    在安装php event扩展的服务器上运行lumen框架是会报错 ErrorException Cannot declare class Event because the name is already in use 详细错误信息如下图所
  • Flink 报错:写入数据到流加载失败

    近年来 随着大数据技术的飞速发展 Apache Flink 成为了一个广泛应用的流式处理框架 然而 在使用 Flink 进行数据处理时 有时候我们可能会遇到一些错误和异常 其中一种常见的问题是 Writing records to stre
  • mfc 一些杂七杂八的东西

    cstring CString Left int nCount const 从左边1开始获取前 nCount 个字符 CString Mid int nFirst const 从左边第 nCount 1 个字符开始 获取后面所有的字符 CS
  • Qt多个ui界面,如何建立联系

    https blog csdn net qq 41399894 article details 87460230 一 最简单的方法 无非就是你建了多个ui界面 然后你只需要new它 获得它的地址信息 就可以建立联系了 如下 在MainWin
  • 酒浓码浓 - React事件阻止浏览器默认行为/冒泡

    React事件行为 React中无法用return false去阻止事件的默认响应行为 必须用 event preventDefault 阻止浏览器默认行为 例如标签不跳转 注 IE不认 在IE下需要用window event return
  • java的图片背景透明及透明度处理

    如题 以下为通过java实现的针对图片的背景透明及透明度处理 供大家需要时参考 设置源图片为背景透明 并设置透明度 param srcFile 源图片 param desFile 目标文件 param alpha 透明度 param for
  • activex控件 InvokeHelper

    当你调用关于activex控件中的相关方法时 你要导入此控件到程序中 此时就会在工程中生成一个关于此控件调用的一个伪调用类 其中的cpp中调用每 个方法都是通过InvokeHelper调用其中的dwDispID值来定位方法的地址的 因此 可