掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ISAXXMLReader::Parse (ID:102514)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
魔界の仮面弁士さん、回答ありがとうございます。 載せて頂きましたコードでバッチリです。 > ADODB.Stream QueryInterfaceを呼び出して、IStreamを取り出さなくてもいいのですね。 (IDispatchとIStreamを実装したオブジェクトでないとダメと言う意味なのか、 IUnknown型だとvtメンバがきちんと指定されないのかとも思いました) 何か色々、脱帽です。 しっかりと勉強させて頂きます。 Abyssさん、回答ありがとうございます。 こちらでは、 > rdr.Parse doc おなじみの実行時エラーになります。 実行時エラー '-1072898019 (c00ce01d)': XPとWindows 7では動作の振る舞いに違いがあると認識しました。 > 上記のidlにてTlbファイルを作って参照設定してみました。 お手数掛けます。 //importlib("stdole2.tlb"); importlib("msxml6.dll"); とすると参照設定するのと変わらなかったので あらためて自前でISAXXMLReaderを定義したのですが、 結局、私の考え違いでした。 > しかし、 Set rdr = New hoge.SAXXMLReader60 > > の直後、msgbox typename(rdr) > で確認したら、ISAXXMLReaderではなく、「IVBSAXXMLReader」 > インターフェイスですね。 確認不足で失礼しました。 > Set rdr = CreateObject("MSXML2.SAXXMLReader") 'New SAXXMLReader60 XPにはもう随分、まともに触れていないのでよく分かりませんが、 XPのCreateObject関数では、上位のバージョンから参照されるのでしょうか。 これは何故かと言うと今回、Parseメソッドが それぞれ参照してるライブラリのバージョンによってちょっとずつ、 違うエラーメッセージを返して来ることから分かりました。 (こちらでは下位のバージョンが参照されています) 私が載せたコード中で、 > Set wrt = CreateObject("MSXML2.MXXMLWriter.6.0") などとしてるのもきちんと意味があります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.