在正常情况下我们在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