STDMETHOD (转)

摘要:
STDMETHOD_是一个宏,它定义了指定返回类型的接口方法,包括虚拟关键字#defineTSTMETHOD_VirtualtypeSTDMETHALLTYPPresentation示例:STDMETH_()展开后,virtualULONGSTDMETHIODCALLTYPERElease()STDMETHEODCALLTYPE宏展开为__stdcall。#defineSTDMETHOD_virtualHRESULTSTDMETHID_CALLTYPEmethod#defineSTdMETHOD_CALLTTYPE__ Stdcall,以便在编写函数STDMETHED时,它变为:virtualHRESULT__stdcallop1;这定义了一个虚拟函数op1。所以STDMETHOD宏用于定义接口。它在头文件中使用。

STDMETHOD_是一个宏,用于定义指定返回类型的接口方法,包含virtual关键字。可用于定义方法声明。 #define STDMETHOD_(type,menthod) virtual type STDMETHODCALLTYPE menthod 例如: STDMETHOD_ (ULONG, release)()展开后就是 virtual ULONG STDMETHODCALLTYPE release()   STDMETHODCALLTYPE 宏展开是 __stdcall。

#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
#define STDMETHODCALLTYPE __stdcall

这样当写一个函数STDMETHOD(op1(int i))
展开后成为: virtual HRESULT __stdcall op1(int i);

这样就这义了一个虚函数op1。当然了这个虚函数只能放在接口定义中了。
所以STDMETHOD宏是用于定义接口用的。放在头文件中用。

当要在CPP中实现这个方法时就用到另一个宏STDMETHOD
#define STDMETHODIMP HRESULT STDMETHODCALLTYPE
#define STDMETHODCALLTYPE __stdcall
这样CPP文件中,STDMETHODIMP(op1(int i))就展开为:

HRESULT __stdcall op1(int i);

其实用这些宏只不过为了省了一些打字的时间而已。

免责声明:文章转载自《STDMETHOD (转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇三、搞定Service接口和实现类###《程序员的自我修养》下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

es6 let

1.变量 var  function let const class import    定义变量的关键字 备注     不能忽略函数的形参      函数的私有变量 var     定义变量 var 定义变量能够提升但是不能定义  给window添加一个对应的属性 function    即可以提前声明     同时还定义了 定义:所谓的定义  就是给这...

使用函数指针调用C++虚函数

基本概念:   1. 函数指针,一个地址指针变量,其值指向代码区的某个函数首地址。   2. 虚函数,可以被子类覆写的C++成员函数。由虚函数表实现。   3. 虚函数表指针(vpt),指向虚函数表首地址的指针,一般放在类实例的首4字节(x86系统)。通过它能找的虚函数表,进而能找的某个虚函数。 函数调用:   1. C++函数的普通调用方式:      ...

《游戏引擎架构》笔记三

C++基础复习 面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。而多态则是为了实现接口重用。 封装 它是指对象只对外提供有限的接口,隐藏对象内部状态和实现细节。 继承 它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承...

js之预解析

一、所谓的预解析就是:在当前作用域中,JavaScript代码执行之前,浏览器首先会默认的把所有带var和function声明的变量进行提前的声明或者定义。 1)var声明的变量在预解析的时候只是提前的声明, 2)function声明的函数在预解析的时候会提前声明并且会同时定义。 二、预解析只发生在当前的作用域下 程序最开始的时候,只对window下的...

DELPHI中函数、过程变量的声明与应用

Procedure型变量:  在DELPHI中,函数、过程的地址可以赋给一个特殊类型的变量,变量可用如下方式声明:  var p : procedure(num:integer); //过程  或:  var f : function(num:integer):integer; //函数  也可定义一个过程(或函数)类型,再定义该类型的变量,如:  typ...

从零开始学习jQuery(剧场版) 你必须知道的javascript

一.摘要 本文是jQuery系列教程的剧场版, 即和jQuery这条主线无关, 主要介绍大家平时会忽略的一些javascript细节.  适合希望巩固javascript理论知识和基础知识的开发人员阅读. 二.前言 最近面试过一些人, 发现即使经验丰富的开发人员, 对于一些基础的理论和细节也常常会模糊. 写本文是因为就我自己而言第一次学习下面的内容时发现自...