Win32 API 日本語リファレンス
ホームData.Xml.MsXml › IXMLDOMNode

IXMLDOMNode

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID2933bf80-7b36-11d2-b20e-00c04f983e60継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 36

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_nodeName(LPWSTR* name)
nameLPWSTR*outノード名を受け取る出力ポインタ(BSTR)である。
vtbl 8 HRESULT get_nodeValue(VARIANT* value)
valueVARIANT*outノード値を受け取る VARIANT 出力ポインタである。値を持たない型では空となる。
vtbl 9 HRESULT put_nodeValue(VARIANT value)
valueVARIANTinノードに設定する値を格納した VARIANT である。
vtbl 10 HRESULT get_nodeType(DOMNodeType* type)
typeDOMNodeType*outノード種別を DOMNodeType として受け取る出力ポインタである。
vtbl 11 HRESULT get_parentNode(IXMLDOMNode** parent)
parentIXMLDOMNode**out親ノードを受け取る出力ポインタである。親が無ければ NULL となる。
vtbl 12 HRESULT get_childNodes(IXMLDOMNodeList** childList)
childListIXMLDOMNodeList**out子ノードのリスト IXMLDOMNodeList を受け取る出力ポインタである。
vtbl 13 HRESULT get_firstChild(IXMLDOMNode** firstChild)
firstChildIXMLDOMNode**out最初の子ノードを受け取る出力ポインタである。無ければ NULL となる。
vtbl 14 HRESULT get_lastChild(IXMLDOMNode** lastChild)
lastChildIXMLDOMNode**out最後の子ノードを受け取る出力ポインタである。無ければ NULL となる。
vtbl 15 HRESULT get_previousSibling(IXMLDOMNode** previousSibling)
previousSiblingIXMLDOMNode**out直前の兄弟ノードを受け取る出力ポインタである。無ければ NULL となる。
vtbl 16 HRESULT get_nextSibling(IXMLDOMNode** nextSibling)
nextSiblingIXMLDOMNode**out直後の兄弟ノードを受け取る出力ポインタである。無ければ NULL となる。
vtbl 17 HRESULT get_attributes(IXMLDOMNamedNodeMap** attributeMap)
attributeMapIXMLDOMNamedNodeMap**out属性の名前付きマップ IXMLDOMNamedNodeMap を受け取る出力ポインタである。
vtbl 18 HRESULT insertBefore(IXMLDOMNode* newChild, VARIANT refChild, IXMLDOMNode** outNewChild)
newChildIXMLDOMNode*in挿入する新しい子ノードである。
refChildVARIANTinこの基準ノードの直前に挿入する。VARIANT が空なら末尾へ追加する。
outNewChildIXMLDOMNode**out挿入された子ノードを受け取る出力ポインタである。
vtbl 19 HRESULT replaceChild(IXMLDOMNode* newChild, IXMLDOMNode* oldChild, IXMLDOMNode** outOldChild)
newChildIXMLDOMNode*in置き換え後の新しい子ノードである。
oldChildIXMLDOMNode*in置き換え対象の既存子ノードである。
outOldChildIXMLDOMNode**out置き換えられた旧ノードを受け取る出力ポインタである。
vtbl 20 HRESULT removeChild(IXMLDOMNode* childNode, IXMLDOMNode** oldChild)
childNodeIXMLDOMNode*in削除する子ノードである。
oldChildIXMLDOMNode**out削除された子ノードを受け取る出力ポインタである。
vtbl 21 HRESULT appendChild(IXMLDOMNode* newChild, IXMLDOMNode** outNewChild)
newChildIXMLDOMNode*in末尾に追加する新しい子ノードである。
outNewChildIXMLDOMNode**out追加された子ノードを受け取る出力ポインタである。
vtbl 22 HRESULT hasChildNodes(VARIANT_BOOL* hasChild)
hasChildVARIANT_BOOL*out子ノードの有無を VARIANT_BOOL で受け取る出力ポインタである。
vtbl 23 HRESULT get_ownerDocument(IXMLDOMDocument** XMLDOMDocument)
XMLDOMDocumentIXMLDOMDocument**outこのノードを所有するドキュメントを受け取る出力ポインタである。
vtbl 24 HRESULT cloneNode(VARIANT_BOOL deep, IXMLDOMNode** cloneRoot)
deepVARIANT_BOOLinTRUE で子孫を含めて複製、FALSE で当該ノードのみ複製する。
cloneRootIXMLDOMNode**out複製されたノードを受け取る出力ポインタである。
vtbl 25 HRESULT get_nodeTypeString(LPWSTR* nodeType)
nodeTypeLPWSTR*outノード種別を表す文字列を受け取る出力ポインタである。
vtbl 26 HRESULT get_text(LPWSTR* text)
textLPWSTR*outノード以下のテキスト内容を受け取る出力ポインタ(BSTR)である。
vtbl 27 HRESULT put_text(LPWSTR text)
textLPWSTRinノードに設定するテキスト内容を示す文字列である。
vtbl 28 HRESULT get_specified(VARIANT_BOOL* isSpecified)
isSpecifiedVARIANT_BOOL*out属性が明示指定か既定値かを VARIANT_BOOL で受け取る出力ポインタである。
vtbl 29 HRESULT get_definition(IXMLDOMNode** definitionNode)
definitionNodeIXMLDOMNode**outDTD/スキーマ上の定義ノードを受け取る出力ポインタである。
vtbl 30 HRESULT get_nodeTypedValue(VARIANT* typedValue)
typedValueVARIANT*outデータ型に従った型付き値を VARIANT で受け取る出力ポインタである。
vtbl 31 HRESULT put_nodeTypedValue(VARIANT typedValue)
typedValueVARIANTin設定する型付き値を格納した VARIANT である。
vtbl 32 HRESULT get_dataType(VARIANT* dataTypeName)
dataTypeNameVARIANT*outノードのデータ型名を VARIANT で受け取る出力ポインタである。未指定なら NULL となる。
vtbl 33 HRESULT put_dataType(LPWSTR dataTypeName)
dataTypeNameLPWSTRin設定するデータ型名を示す文字列である。
vtbl 34 HRESULT get_xml(LPWSTR* xmlString)
xmlStringLPWSTR*outこのノード以下を表す XML 文字列を受け取る出力ポインタである。
vtbl 35 HRESULT transformNode(IXMLDOMNode* stylesheet, LPWSTR* xmlString)
stylesheetIXMLDOMNode*in適用する XSLT スタイルシートのノードである。
xmlStringLPWSTR*out変換結果の文字列を受け取る出力ポインタである。
vtbl 36 HRESULT selectNodes(LPWSTR queryString, IXMLDOMNodeList** resultList)
queryStringLPWSTRinノードを選択する XPath クエリ文字列である。
resultListIXMLDOMNodeList**out一致したノードのリストを受け取る出力ポインタである。
vtbl 37 HRESULT selectSingleNode(LPWSTR queryString, IXMLDOMNode** resultNode)
queryStringLPWSTRinノードを選択する XPath クエリ文字列である。
resultNodeIXMLDOMNode**out最初に一致したノードを受け取る出力ポインタである。無ければ NULL となる。
vtbl 38 HRESULT get_parsed(VARIANT_BOOL* isParsed)
isParsedVARIANT_BOOL*outこのノード以下が解析済みかを VARIANT_BOOL で受け取る出力ポインタである。
vtbl 39 HRESULT get_namespaceURI(LPWSTR* namespaceURI)
namespaceURILPWSTR*outノードの名前空間 URI を受け取る出力ポインタである。
vtbl 40 HRESULT get_prefix(LPWSTR* prefixString)
prefixStringLPWSTR*outノードの名前空間プレフィックスを受け取る出力ポインタである。
vtbl 41 HRESULT get_baseName(LPWSTR* nameString)
nameStringLPWSTR*outプレフィックスを除いたローカル名を受け取る出力ポインタである。
vtbl 42 HRESULT transformNodeToObject(IXMLDOMNode* stylesheet, VARIANT outputObject)
stylesheetIXMLDOMNode*in適用する XSLT スタイルシートのノードである。
outputObjectVARIANTin変換結果の出力先(ドキュメントやストリーム)を格納した VARIANT である。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IXMLDOMNode "{2933BF80-7B36-11D2-B20E-00C04F983E60}"
#usecom global IXMLDOMNode IID_IXMLDOMNode "{}"
#comfunc global IXMLDOMNode_get_nodeName           7 var
#comfunc global IXMLDOMNode_get_nodeValue          8 var
#comfunc global IXMLDOMNode_put_nodeValue          9 int
#comfunc global IXMLDOMNode_get_nodeType           10 var
#comfunc global IXMLDOMNode_get_parentNode         11 sptr
#comfunc global IXMLDOMNode_get_childNodes         12 sptr
#comfunc global IXMLDOMNode_get_firstChild         13 sptr
#comfunc global IXMLDOMNode_get_lastChild          14 sptr
#comfunc global IXMLDOMNode_get_previousSibling    15 sptr
#comfunc global IXMLDOMNode_get_nextSibling        16 sptr
#comfunc global IXMLDOMNode_get_attributes         17 sptr
#comfunc global IXMLDOMNode_insertBefore           18 sptr,int,sptr
#comfunc global IXMLDOMNode_replaceChild           19 sptr,sptr,sptr
#comfunc global IXMLDOMNode_removeChild            20 sptr,sptr
#comfunc global IXMLDOMNode_appendChild            21 sptr,sptr
#comfunc global IXMLDOMNode_hasChildNodes          22 var
#comfunc global IXMLDOMNode_get_ownerDocument      23 sptr
#comfunc global IXMLDOMNode_cloneNode              24 int,sptr
#comfunc global IXMLDOMNode_get_nodeTypeString     25 var
#comfunc global IXMLDOMNode_get_text               26 var
#comfunc global IXMLDOMNode_put_text               27 wstr
#comfunc global IXMLDOMNode_get_specified          28 var
#comfunc global IXMLDOMNode_get_definition         29 sptr
#comfunc global IXMLDOMNode_get_nodeTypedValue     30 var
#comfunc global IXMLDOMNode_put_nodeTypedValue     31 int
#comfunc global IXMLDOMNode_get_dataType           32 var
#comfunc global IXMLDOMNode_put_dataType           33 wstr
#comfunc global IXMLDOMNode_get_xml                34 var
#comfunc global IXMLDOMNode_transformNode          35 sptr,var
#comfunc global IXMLDOMNode_selectNodes            36 wstr,sptr
#comfunc global IXMLDOMNode_selectSingleNode       37 wstr,sptr
#comfunc global IXMLDOMNode_get_parsed             38 var
#comfunc global IXMLDOMNode_get_namespaceURI       39 var
#comfunc global IXMLDOMNode_get_prefix             40 var
#comfunc global IXMLDOMNode_get_baseName           41 var
#comfunc global IXMLDOMNode_transformNodeToObject  42 sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。