C++操作HTML TABLE元素

BOOL TableInsertRow(IHTMLTable* TableElement, LONG nRow, IHTMLTableRow* &RowElement)
{
	BOOL IsOk;
	IDispatch *DispRow;

	IsOk = FALSE;
	if (SUCCEEDED(TableElement->insertRow(nRow, &DispRow)))
	{
		IsOk = (SUCCEEDED(DispRow->QueryInterface(IID_IHTMLTableRow, (PVOID*)&RowElement)));
		DispRow->Release();
	}
	return IsOk;
}

BOOL TableGetRow(IHTMLTable* TableElement, LONG nRow, IHTMLTableRow* &Row)
{
	BOOL IsOk;
	IHTMLElementCollection *RowElements;

	IsOk = FALSE;
	if (SUCCEEDED(TableElement->get_rows(&RowElements)))
	{
		VARIANT vName, vIndex;
		IDispatch *DispRowElement;

		VariantInit(&vName);
		VariantInit(&vIndex);
		vName.vt = VT_I4;
		vName.lVal = nRow;
		if (SUCCEEDED(RowElements->item(vName, vIndex, &DispRowElement)))
		{
			IsOk = SUCCEEDED(DispRowElement->QueryInterface(IID_IHTMLTableRow, (PVOID*)&Row));
			DispRowElement->Release();
		}
		RowElements->Release();
	}
	return IsOk;
}

BOOL TableInsertCell(IHTMLTableRow* RowElement, LONG nCell, IHTMLElement* &Cell)
{
	BOOL IsOk;
	IDispatch *DispCell;

	IsOk = FALSE;
	if (SUCCEEDED(RowElement->insertCell(nCell, &DispCell)))
	{
		IsOk = SUCCEEDED(SUCCEEDED(DispCell->QueryInterface(IID_IHTMLElement, (PVOID*)&Cell)));
		DispCell->Release();
	}
	return IsOk;
}

BOOL TableGetCell(IHTMLTableRow* RowElement, LONG nCell, IHTMLElement* &Cell)
{
	BOOL IsOk;
	IHTMLElementCollection *Cells;

	IsOk = FALSE;
	if (SUCCEEDED(RowElement->get_cells(&Cells)))
	{
		VARIANT vName, vIndex;
		IDispatch *DispCellElement;

		VariantInit(&vName);
		VariantInit(&vIndex);
		vName.vt = VT_I4;
		vName.lVal = nCell;
		if (SUCCEEDED(Cells->item(vName, vIndex, &DispCellElement)))
		{
			IsOk = SUCCEEDED(DispCellElement->QueryInterface(IID_IHTMLElement, (PVOID*)&Cell));
			DispCellElement->Release();
		}
		Cells->Release();
	}
	return IsOk;
}

BOOL TableDeleteRow(IHTMLTable* TableElement, LONG nRow)
{
	return SUCCEEDED(TableElement->deleteRow(nRow));
}

BOOL TableGetCell(IHTMLTable* TableElement, LONG nRow, LONG nCell, IHTMLElement* &Cell)
{
	BOOL IsOk;
	IHTMLTableRow *RowElement;

	IsOk = FALSE;
	if (TableGetRow(TableElement, nRow, RowElement))
	{
		IsOk = TableGetCell(RowElement, nCell, Cell);
		RowElement->Release();
	}
	return IsOk;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值