почему этот IXSLTemplate :: putref_stylesheet компилируется, когда передан аргумент IXMLDOMDocument - PullRequest
1 голос
/ 07 сентября 2010

Я впервые играю с XSLT с MSXML2. И, конечно, это не работает :-) У меня есть ошибка, которую я не могу решить.

Чтобы исправить ошибку, я пытаюсь понять все вокруг: и что-то шокирует меня.

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 в их код! Пример первый Пример два

1 Ответ

1 голос
/ 07 сентября 2010

IXMLDOMDocument получено из IXMLDOMNode в соответствии с MSDN .Следовательно, это то же самое, что передать указатель производного класса в класс, ожидающий указатель базового класса.Следовательно, он компилируется.

...