with // an E_NOINTERFACE error, a NULL smart pointer is constructed. explicit _com_ptr_t( const CLSID& clsid, IUnknown* pOuter = NULL, DWORD dwClsContext = CLSCTX_ALL );关键是你必须传递coclass的CLSID,你传递的是接口的IID。这就是__uuidof(简单)有效的原因。