Delphi 7 がリリースされたとき、MSXML 6.0 は存在しませんでした。古いバージョンの代わりに MSXML 6.0 を使用するように Delphi の TXML ドキュメントを構成することは可能ですか?
質問する
4196 次
2 に答える
10
以下のコードをユニット名 uMSXMLVersion または選択した名前に追加し、それをプロジェクトの使用に追加します
{----------------------------------------------------------------------------
Set Delphi's XMLDocument to use MSXML v6.0
Usage: Include unit in project "uses"-list and Delphi will automatically use
MSXML v6.0 for TXmlDocument.
-----------------------------------------------------------------------------}
unit uMSXMLVersion;
interface
implementation
uses ActiveX, MSXML, MSXMLDOM;
function CreateDOMDocumentEx: IXMLDOMDocument;
const
CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
begin
Result := nil;
if CoCreateInstance(CLASS_DOMDocument60, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IXMLDOMDocument, Result) <> S_OK then
Result := CreateDOMDocument; //call the default implementation
end;
initialization
MSXMLDOMDocumentCreate := CreateDOMDocumentEx;
end.
于 2011-09-09T20:59:40.230 に答える
8
ユニットは、カスタム ハンドラーを割り当てることができるmsxmldom.pas
パブリック フックを公開します。MSXMLDOMDocumentCreate
uses
..., msxmldom;
const
CLASS_DOMDocument60: TGUID = '{88D96A05-F192-11D4-A65F-0040963251E5}';
function CreateMSXML6Document: IXMLDOMDocument;
var
Disp: IDispatch;
begin
OleCheck(CoCreateInstance(CLASS_DOMDocument60, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, Disp));
Result := Disp as IXMLDOMDocument;
if not Assigned(Result) then
raise DOMException.Create('MSXML 6.0 Not Installed');
end;
initialization
msxmldom.MSXMLDOMDocumentCreate := CreateMSXML6Document;
于 2011-09-09T22:34:17.890 に答える