COM 引用计数始终为 2

COM Reference count is always 2

美好的一天。

我最近几天使用 COM,当我创建一个实例时,引用计数始终为 2。我阅读了一些关于这个主题的问题,并且常见的答案说明了一些关于线程的东西。所以我在创建任何线程之前将创建 COM 对象放在程序的开头,并且在创建后立即计数为 2。我不使用任何 QueryInterface

hr = CoCreateInstance(CLSID_EventViewer, NULL, CLSCTX_LOCAL_SERVER,
    IID_IEventViewer, (void**)&view);
int count = view->AddRef();

当您调用 CoCreateInstance 时,那个 returns 已经建立了引用计数的指针。 (您最终需要调用 Release 来释放它。)

当您调用 AddRef 时,您 增加了 引用计数(到 2)。为什么在创建对象后立即调用 AddRef