我认为 COM 自动化对象在释放最后一个接口时会自行关闭。
但是,此代码打开然后释放 MS Word 的接口使 WINWORD.EXE 进程运行。我已经追踪了它,我知道它iUnkn->Release()
正在被调用。
我在这里做错了什么?
if (SUCCEEDED(CoInitialize(NULL)))
{
CLSID clsid;
if (SUCCEEDED(CLSIDFromProgID(OLESTR("Word.Application"), &clsid)))
{
IUnknown* iUnkn = NULL;
if (SUCCEEDED(CoCreateInstance(clsid, NULL, CLSCTX_SERVER, Word::IID__Application, (void**) &iUnkn)) && iUnkn)
{
iUnkn->Release();
}
}
CoUninitialize();
}