2010-09-07 64 views
1

我第一次使用帶有MSXML2的XSLT。當然它不起作用:-) 我有一個我無法解決的錯誤。爲什麼在傳遞IXMLDOMDocument參數時編譯IXSLTemplate :: putref_stylesheet

爲了解決這個問題,我嘗試瞭解周圍的一切:而且有些東西讓我震驚。

void xsltProcessing(IXMLDOMDocument* pXmlDoc, IXMLDOMDocument * pXslDoc) 
{ 
    CComPtr<IXSLTemplate> pTemplate; 
    pTemplate.CoCreateInstance(CLSID_XSLTemplate); 
    pTemplate->putref_stylesheet(pXslDoc); 
    //... 
} 

它編譯像微風,而這是putref_stylesheet

virtual HRESULT __stdcall putref_stylesheet (
    /*[in]*/ struct IXMLDOMNode * stylesheet) = 0; 

的定義,我還沒有找到願意接受的IXMLDOMDocument任何定義*作爲參數。

這怎麼可能編譯?這兩種類型根本不匹配!

任何幫助表示讚賞。

我發現這兩個環節也通過xmldocuments在他們的代碼: Example One Example Two

回答

1

IXMLDOMDocumentIXMLDOMNode根據MSDN的。因此,它與派生類指針傳遞給期望基類指針的類相同。因此它編譯。

+0

媽媽咪呀......這個重要的事實,我不知道。很高興我問了這個明顯的問題。謝謝。我不知道我用過多少次:: QueryInterface在兩者之間切換......我不敢想它。 – 2010-09-07 11:28:30

相關問題