前面介绍了,走进COM组件系列(二),在此基础上,我们构建参数在模块之间的传递。
其他内容请浏览COM+分类
首先修改idl文件,在接口方法中加入参数
interface IY : IUnknown { HRESULT Fy([in] int x, [out] int * y); };
对于标记为in的参数,MIDL将知道仅仅需要将此参数值从客户传递给组件,不需要任何返回值。
out 关键字告诉MIDL 相应的参数仅被用来从组件向客户传回有关的数据。
对于输出参数,MIDL要求它必须是一个指针。
当然,一个参数也可以同时由 in和out 修饰, 只不过其必须是指针类型。
编译该idl文件,生成的CB_h.h 略微有些变化
MIDL_INTERFACE("19900225-0700-0000-0000-000000000001") IY : public IUnknown { public: virtual HRESULT STDMETHODCALLTYPE Fy( /* [in] */ int x, /* [out] */ int *y) = 0; };
在具体实现中,仅仅在方法中改变其参数即可。
class CB: public IY, public IZ{ public: // IUnknown implementation virtual HRESULT __stdcall QueryInterface(const IID& iid, void** ppv); virtual ULONG __stdcall AddRef(); virtual ULONG __stdcall Release(); virtual HRESULT __stdcall Fy(int x, int *y); virtual HRESULT __stdcall Fz(); CB(); ~CB(); private: long m_cRef; };
HRESULT CB::Fy(int x, int *y) { *y = 10; std::cout << "Fy---x=" << x << std::endl; return S_OK; }
客户端 调用如下:
仅仅 多加了:
int a = 7, b = 9; iy->Fy(a, &b); cout << "b=" << b << endl;
运行效果如下:
相关推荐
在“走进COM组件系列(二)”这个主题中,我们将会深入探讨COM组件的核心概念、实现机制以及如何在实际开发中应用。 COM组件的主要目标是提供一种跨语言的接口标准,使得软件组件可以无缝地在不同的应用程序中重用。...
LCD显示驱动IC行业分析:LCD显示驱动IC是大尺寸显示面板的关键组件。在LCD驱动IC中,低温多晶硅(LTPS)TFT-LCD技术是目前主流的技术。 OLED显示驱动IC行业分析:OLED驱动IC作为中小尺寸平板显示的主流,目前正面临...
而驱动这些显示设备的关键组件——显示驱动芯片,是整个面板产业链的核心所在。本文将深入探讨显示驱动芯片,特别是国内面板国产化的关键环节,面板国产化最后1公里。 显示驱动芯片市场正面临着需求与供应的双重...
射频芯片的关键组件包括RF收发器、功率放大器、低噪声放大器、滤波器、射频开关、天线调谐开关等。 在4G通信技术中,一个典型的手机需要支持多达40个频段,每个频段均需对应的射频前端器件,例如滤波器、功率放大器...
在深入分析这份标题为“走进‘芯’时代系列深度之四十三‘显示驱动’:显示驱动芯—面板国产化最后1公里”的报告之前,我们需要先理解报告中所涉及的几个重要概念和知识点。 1. 显示驱动芯与面板国产化 显示驱动...
射频芯片作为移动通信设备中不可或缺的核心组件,近年来随着5G技术的不断推广和应用,其市场规模和战略意义愈发凸显。射频芯片是能够处理射频信号与数字信号转换的电子元件,主要用于无线通信设备中,涵盖了包括RF...
这篇“走进芯时代系列深度之六十九射频国产化——射频国产化迈向纵深,供应格局优化进行时”的报告,深入剖析了中国射频产业的发展现状与未来趋势。报告的36页内容可能涵盖了以下几个核心知识点: 1. 射频技术简介...
Access 2003是微软公司开发的一款关系型数据库管理系统,是Office 2003套件中的重要组件。这款软件以其用户友好的界面、强大的数据处理能力以及灵活的自定义功能,深受广大用户喜爱。在"走进Access 2003中文版"这本...
根据《走进“芯”时代系列深度之四十六“新能源芯”:乘碳中和之风,基础元件腾飞》报告,预计到2050年,新能源如光伏和风电将占国内发电总量的一半以上。这不仅意味着传统能源的比重下降,还预示着对电力电子设备,...
手册中硬件部分首先从CPU的物理构造着手,带领用户走进Q系列CPU的内部世界。这包括了详细阐述多核架构的设计理念,及其带来的并行处理优势。每个核心所配备的独立缓存系统,不仅能提升CPU的处理速度,还能在多任务...
Oracle服务是指在安装过程中创建的一系列服务组件,用于支持Oracle数据库的运行。主要包括: 1. **Oracle数据库服务**:负责管理数据库实例,提供数据存储和检索服务。 2. **监听器服务**:监听网络连接请求,转发...
总之,ASP.NET AJAX入门系列教程将带你走进AJAX的世界,通过一系列实例和讲解,让你掌握使用ASP.NET AJAX构建动态Web应用程序的技巧,为后续的Web开发打下坚实基础。无论是对于初学者还是有经验的开发者,这都是一个...
【走进J2ME移动开发】 J2ME,全称Java 2 Micro Edition,是Java平台的一个子集,专为资源有限的嵌入式设备和移动设备设计,如手机、PDA和数字电视等。J2ME由Java社区组织(JCP)制定一系列规范,包括Java ...
这个行业的核心在于光伏组件的制造,包括硅料提炼、硅片切割、电池片生产以及组件组装等环节。近年来,随着技术进步和成本降低,光伏产业在全球范围内得到了快速发展。 【政策影响】 政策是光伏产业发展的重要驱动...
### 走进FPGA SoC设计:京微雅格FPGA芯片及开发板使用剖析 #### 第一章 不可阻挡的SoC趋势 ##### 1.1 什么是SoC? System on Chip(SoC)是指将计算机系统的主要组件集成在一块芯片上的技术。它包含了中央处理器...
它包含了一系列预先设计并优化的容器(如vector、list、set等)、迭代器、算法和函数对象,这些组件可以无缝集成到C++程序中,提供高效且可复用的代码。STL的另一个关键特性是其跨平台兼容性,同一段STL代码在不同的...
射频前端主要包括发射端模组、接收端模组、滤波器、传导开关、天线开关和低噪声放大器等组件。发射端模组市场规模最大,预计达122亿美元,而接收端模组、滤波器等也有显著的市场份额。这些组件的数量和复杂性随着...
它包含了多个关键组件,如功率放大器(PA)、低噪声放大器(LNA)、混频器(Mixer)、滤波器(Filter)以及射频开关(RF Switch)等。这些组件共同协作,确保无线信号的高效传输和接收,实现清晰、稳定的通信质量。 ...
随着智能手机支持的通信频段的增多和下载速率的提升,手机天线已经从单一的功能性器件演变为由多个元器件和零组件构成的完整天线系统。天线数量的增加成为5G进程中的一个趋势。在4G时代,主流手机采用2天线设计,而...
3. **应用程序框架**:提供了一系列服务和API,如活动管理器、内容提供者、广播接收器等,开发者可以利用这些组件构建复杂的应用。 4. **应用程序**:用户可以直接交互的各类应用,如电话、短信、浏览器等,以及...