正規表現を使うのにVBScript.dllからidlファイルを作って、・・・としてたので、それならXML(MSXML)の時はどうだった?と自分にツッコミをいれて、その調査が今日の目的。
XMLの時はCComPtrからCLSID_XMLDocument(MSXML.h)を指定して、IXMLDocumentを生成。この辺りの宣言はすべてVisualStudio側のinclude/MSXML.hであらかじめ準備してある。
VBscript.dllのRegExpの場合は、ITypeInfo Viewerから*.idlを生成。この後、生成されたidlからmidl.exe を使い、ヘッダファイルを生成。CLSID_RegExp が 生成されるヘッダに宣言されている。
さて、この2つがどうつながるのかな?と思っていろいろ覗いていると、VisualStudioのincludeヘッダにMSXML.idlが・・・
ビンゴ!!!
idlファイルからmidl.exeを使い独自ヘッダもつくれるし、レジストリを覗いた時にみつけた値との整合性も取れているし、COM経由で作っていた時の説明もつながった。試しにMFCでRegExpを使ってみたら、COleDispatchDriverのサブクラスをウイザードで作って、COM+MSXMLと同じように使える事を確認。
よくやった>>オレ
XMLの時はCComPtrからCLSID_XMLDocument(MSXML.h)を指定して、IXMLDocumentを生成。この辺りの宣言はすべてVisualStudio側のinclude/MSXML.hであらかじめ準備してある。
VBscript.dllのRegExpの場合は、ITypeInfo Viewerから*.idlを生成。この後、生成されたidlからmidl.exe を使い、ヘッダファイルを生成。CLSID_RegExp が 生成されるヘッダに宣言されている。
さて、この2つがどうつながるのかな?と思っていろいろ覗いていると、VisualStudioのincludeヘッダにMSXML.idlが・・・
ビンゴ!!!
idlファイルからmidl.exeを使い独自ヘッダもつくれるし、レジストリを覗いた時にみつけた値との整合性も取れているし、COM経由で作っていた時の説明もつながった。試しにMFCでRegExpを使ってみたら、COleDispatchDriverのサブクラスをウイザードで作って、COM+MSXMLと同じように使える事を確認。
よくやった>>オレ