我正在开发一个用于创建预览处理程序的visual c ++应用程序。 出于某种原因我需要为IXMLDOMDocument * pDomDoc执行CoCreateInstance()时出现问题;在静态功能内(注意这里)。 语法如下 -
//this CreateHtmlPreview is declared static somewhere in my code
HRESULT AMEPreviewHandler:: CreateHtmlPreview(AMEPreviewHandler* instance)
{
IStream *m_FinalHTMLStream;
ULONG pcbWritten;
HRESULT hrs = CreateStreamOnHGlobal(NULL, TRUE, &m_FinalHTMLStream);
HRESULT hrp = m_FinalHTMLStream->Write(&(instance->m_HtmlFileContents),(instance->m_SizeOfFile)-1, &pcbWritten);
IXMLDOMDocument *pDomDoc;
HRESULT hr = CoCreateInstance(__uuidof(DOMDocument60), NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pDomDoc));
//the problem is here that this hr on debugging gives EFAIL
if (SUCCEEDED(hr))
{
................Something..something.......
}
}
这是由于函数的静态声明。如果没有?那么这个EFAIL的原因可能是什么?
答案 0 :(得分:2)
对CoCreateInstance
的调用不知道它是否来自static
函数。您从static
函数调用的事实不是问题。从任何类型的函数调用CoCreateInstance
都是完美的。