Tag: COM接口

错误处理
Win32 开发基础

常见的错误处理方法

COM 组件中使用 HRESULT 类型的值表示方法或者函数调用的结果成功与否。各种各样的 SDK 在头文件中定义了很多不同的 HRESULT 类型的常量。

Read More »
编码实践
Win32 开发基础

COM 编码实践

本篇文章主要介绍了在使用 COM 组件中常见的一些问题,包括 __uuidof 运算符,IID_PPV_ARGS 宏的使用,以及如何安全的释放 COM 组件。

Read More »
内存分配
Win32 开发基础

COM 组件的内存分配

有时候需要通过一些方法在堆上分配内存缓冲区,并将缓冲区的地址返回给调用者。为此 COM 定义了一组用来在堆上申请释放内存的函数。

Read More »
接口查询
Win32 开发基础

查询COM组件接口

我们已经知道了一个对象可以实现一个或多个接口,在上面对话框的案例中,Common Item Dialog 对象实现了 IFileOpenDialog 接口,这个接口定义显示和获取选择文件的基本方法。

Read More »
生命周期
Win32 开发基础

管理对象的生命周期

COM 接口 还有一个规则在上面的信息中没有提及,这就是每个 COM 接口都必须直接的或者间接的继承一个叫做 IUnknown 的接口类。这个接口为 COM 组件提供一些底层的功能支持。

Read More »
对话框
Win32 开发基础

打开一个对话框

Windows 操作系统内部提供了大量的 COM 接口,为了在程序中打开一对话框,可以使用一个叫做 Common Item Dialog 的 COM 组件。

Read More »
COM 组件对象
Win32 开发基础

创建 COM 组件对象

当在线程内初始化 COM 组件 库之后就可以安全的调用 COM 接口了。如果想要使用 COM 接口,你的程序首先创建一个实现该接口的对象。

Read More »
COM 组件错误
Win32 开发基础

COM 组件中的错误码

COM 组件 中的函数一般返回值都是 HRESULT 类型,该值代表着 COM 接口 调用的结果正确与否。HRESULT是一个32位的整型值。其中最高位代表着成功还是失败。0 表示成功,1 表示失败。

Read More »
COM 组件初始化
Win32 开发基础

初始化 COM 组件库

任何 Windows 程序在使用 COM 组件 前都必须调用 CoInitializeEx 函数初始化。使用 COM 接口 的每个线程都需要执行这个初始化步骤, CoInitializeEx 函数的声明如下。

Read More »
COM 组件
Win32 开发基础

什么是 COM 接口?

如果你了解 C# 或者 Java 语言,接口就会是一个非常熟悉的概念。接口是一个对象上一组操作的集合,不涉及任何实现的细节,接口标志着方法和实现的分离。计算机中这种现象叫做解耦(decoupled)。

Read More »