У меня есть знания по C ++ и C #, но COM для меня - Чужой. У меня есть VC ++ COM DLL, в которой реализованы все методы интерфейса ISAXContentHandler (из msxml6.DLL), такие как startElement (), endElement, processingInstructions (), characters () и т. Д. Т.е. этим интерфейсным методам дано внедрение в VC ++ COM DLL. Я хочу преобразовать эту VC ++ COM DLL в C # DLL, чтобы я мог вызвать эту преобразованную C # DLL из моего приложения C #.
Я не понимаю, откуда эти методы взаимодействия вызываются. Потому что внутри моей DLL-библиотеки VC ++ COM не производится «оператор вызова функции».
Например: ----- один из методов интерфейса, реализованных в COM DLL VC ++, запускается следующим образом: ->
**HRESULT STDMETHODCALLTYPE ContentHandler_SAX::startElement(
/* [in] */ wchar_t __RPC_FAR *pwchNamespaceUri,
/* [in] */ int cchNamespaceUri,
/* [in] */ wchar_t __RPC_FAR *pwchLocalName,
/* [in] */ int cchLocalName,
/* [in] */ wchar_t __RPC_FAR *pwchRawName,
/* [in] */ int cchRawName,
/* [in] */ ISAXAttributes __RPC_FAR *pAttributes)**
В clas реализован интерфейс ISAXContentHAndler из msxml6.dll.
Я просто знаю, что SAXContentHandler - это анализатор XML. Я не знаю, каковы эти параметры для этой функции, а также они используют ключевое слово _RPC вместе с именем параметра d. И я не понимаю, откуда эти функции вызываются.