Example #1
0
bool LoadXMLDoc(LPCWSTR file, BDADEVICES& d)
{
	IXMLDOMDocumentPtr Document;
	HRESULT hr;

	d.reset();
	hr = Document.CreateInstance(CLSID_DOMDocument30);
	if(hr==S_OK)
	{
		VARIANT_BOOL success;
		hr = Document->load(_variant_t(file),&success);
		if(hr==S_OK&&success==VARIANT_TRUE)
		{
			IXMLDOMElementPtr root;
			IXMLDOMElementPtr bda_source;
			IXMLDOMElementPtr bda_reciever;
			IXMLDOMNodePtr bda_source_node;
			IXMLDOMNodePtr bda_reciever_node;

			hr = Document->get_documentElement(&root);
			hr = root->selectSingleNode(_bstr_t(L"kscategory_bda_network_tuner"),&bda_source_node);
			hr = root->selectSingleNode(_bstr_t(L"kscategory_bda_receiver_component"),&bda_reciever_node);

			bda_source = bda_source_node;
			bda_reciever = bda_reciever_node;

			GetDeviceList(bda_source,d.bda_source);
			GetDeviceList(bda_reciever,d.bda_reciever);
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}

	return false;
}