C# 使用“CoCreateInstance”函数创建一个COM对象

本文介绍了如何在C#中使用WINAPI函数CoCreateInstance创建COM对象,而不是通常使用的Activator::CreateInstance。文章详细讲解了CoCreateInstance函数,并提供了C#示例代码,强调了必须在单线程STA环境下创建COM对象的重要性。
摘要由CSDN通过智能技术生成

在正常情况下我们在C#中需要创建一个COM对象通常会选择 Activator::CreateInstance 实现

object ppvObject = Activator.CreateInstance(Type.GetTypeFromCLSID(CLSID_InternetExplorer));

不过我们也可以选择另外几种方法 不过在这里我只提供一种较为常规的方法。

WINAPI CoCreateInstance 函数:


首先我先介绍所需要的一些WINAPI函数包括示意 顺便给大家普及下

该方面WINAPI函数的一些知识 说不定哪天你可能会遇见C++的项目

 // 在STA线程上创建COM对象

HRESULT CoInitialize(

In_opt_ LPVOID pvReserved // 保留参数,且必须为NULL

);

// 销毁线程上的COM对象

VOID CoUninitialize();

// 用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象

HRESULT CoCreateInstance( 

REFCLSID rclsid, // 欲创建的COM对象的类标识符(CLSID) 

LPUNKNOWN pUnkOuter, // 指向接口IUnknown的指针(NULL)

DWORD dwClsContext, // 运行可执行代码的上下文(NULL)

REFIID riid, // 创建的Com对象的接口标识符 

LPVOID * ppv // 用于接受指定C
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值