⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wmlelm.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:

	return FALSE;
}


BOOL WML_SetColumns	(pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppColumns)
{
	UINT8 iCol=0;

	/* Convert pColumns (text) to UINT8. The ELEMENTTYPE is removed
	   in the XML_ConvertToString function and the string is removed
	   in the ConvertNumber function. */
	WCHAR* pwchColumns=XML_ConvertToString(ppColumns,pDecStr);

	if (Convert_StringToUINT8(&pwchColumns,&iCol))
	{
		if (pElement->iType==Type_TABLE) 
		{
			((TABLEELEMENT*)(pElement))->iColumns=iCol;
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetContent	(pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppContent)
{
	if (pElement->iType==Type_META) 
	{
		if (((METAELEMENT*)(pElement))->pchContent==NULL) 
		{
			((METAELEMENT*)(pElement))->pchContent=XML_ConvertToString(ppContent,pDecStr);
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetDomain (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppDomain)
{
	if (pElement->iType==Type_ACCESS) 
	{
		if (((ACCESSELEMENT*)(pElement))->pchDomain==NULL) 
		{
			((ACCESSELEMENT*)(pElement))->pchDomain=XML_ConvertToString(ppDomain,pDecStr);
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetEmptyOK	(pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppEmptyOK, BOOL fEmptyOK)
{
	BOOL fResult=fEmptyOK;

	if (pElement->iType==Type_INPUT) 
	{
		if (*ppEmptyOK!=NULL)
		{	
			WCHAR* pwchTemp=XML_ConvertToString(ppEmptyOK,pDecStr);

			if (!Convert_StringToBool(&pwchTemp,&fResult))
			{
				/* Error in converion */
				return FALSE;
			}
		}

		((INPUTELEMENT*)(pElement))->fEmptyOK=fResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetEnctype	(pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppEnctype)
{
	/* The function returns FALSE if the document is not 1.2 or newer (greater) */
	if ((pElement->iType==Type_GO)&&(pDecStr->iVersion>=WML_VERSION_1_2))
	{
		WCHAR* pwchTemp=XML_ConvertToString(ppEnctype,pDecStr);

		((GOELEMENT*)(pElement))->iEnctype=WML_ConvertEnctype(&pwchTemp);
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetFormat (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppFormat)
{
	if (pElement->iType==Type_INPUT) 
	{
        if (*ppFormat != NULL)
        {
		    /* Remove old input format */
		    if (((INPUTELEMENT*)(pElement))->pchFormat!=NULL) 
		    {
			    DEALLOC(&(((INPUTELEMENT *)(pElement))->pchFormat));
		    }

		    ((INPUTELEMENT*)(pElement))->pchFormat=XML_ConvertToString(ppFormat,pDecStr);
        }
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetForua (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppForua, BOOL fForua)
{
	BOOL fResult=fForua;

	if (pElement->iType==Type_META) 
	{
		if (*ppForua!=NULL)
		{
			WCHAR* pwchTemp=XML_ConvertToString(ppForua,pDecStr);

			if (!Convert_StringToBool(&pwchTemp,&fResult))
			{
				/* Error in conversion */
				return FALSE;
			}
		}

		((METAELEMENT *)(pElement))->fForua=fResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetHeight (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHeight)
{
	UINT16 iHeight=0;
	BOOL fIsPercent=FALSE;

	/* Convert height (text) to UINT16. The ELEMENTTYPE is removed
	   in the XML_ConvertToString function and the string is removed
	   in the Convert_StringToUINT16percent function. */
	WCHAR* pwchHeight=XML_ConvertToString(ppHeight,pDecStr);

	if (Convert_StringToUINT16percent(&pwchHeight,&iHeight,&fIsPercent))
	{
		if (pElement->iType==Type_IMG)
		{	
			if (fIsPercent)
			{
				((IMGELEMENT *)(pElement))->iIsPercent|=HEIGHT_IS_PERCENT;
			}

			((IMGELEMENT *)(pElement))->iHeight=iHeight;
			return TRUE;
		} 
	}

	return FALSE;
}


BOOL WML_SetHSpace (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHSpace)
{
	UINT8 iHSpace=0;
	BOOL fIsPercent=FALSE;

	/* Convert hSpace (text) to UINT8. The ELEMENTTYPE is removed
	   in the XML_ConvertToString function and the string is removed
	   in the Convert_StringToUINT8percent function. */
	WCHAR* pwchHSpace=XML_ConvertToString(ppHSpace,pDecStr);

	if (Convert_StringToUINT8percent(&pwchHSpace,&iHSpace,&fIsPercent))
	{
		if (pElement->iType==Type_IMG)
		{	
			if (fIsPercent)
			{
				((IMGELEMENT *)(pElement))->iIsPercent|=HSPACE_IS_PERCENT;
			}

			((IMGELEMENT *)(pElement))->iHSpace=iHSpace;
			return TRUE;
		} 
	}

	return FALSE;
}


BOOL WML_SetHref (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHref)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_A) 
	{
		if (((AELEMENT*)(pElement))->pHref==NULL) 
		{
			((AELEMENT*)(pElement))->pHref=*ppHref;
			*ppHref=NULL;
			return TRUE;
		}
	} 
	else if (pElement->iType==Type_GO) 
	{
		if (((GOELEMENT*)(pElement))->pHref==NULL) 
		{
			((GOELEMENT*)(pElement))->pHref=*ppHref;
			*ppHref=NULL;
			return TRUE;
		}
	} 

	return FALSE;
}


BOOL WML_SetHttpEq (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppHttpEq)
{
	if (pElement->iType==Type_META) 
	{
		if (((METAELEMENT*)(pElement))->pchHttpEquiv==NULL) 
		{
			((METAELEMENT*)(pElement))->pchHttpEquiv=XML_ConvertToString(ppHttpEq,pDecStr);
			return TRUE;
		}
	} 

	return FALSE;
}

BOOL WML_SetId (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppId)
{
	if (pElement->iType==Type_CARD) 
	{
		if (((CARDELEMENT *)(pElement))->pchId==NULL) 
		{
			((CARDELEMENT *)(pElement))->pchId=XML_ConvertToString(ppId,pDecStr);
			return TRUE;
		}
	} 

	/* The attribute id is not used in other elements - delete */
	XML_DeleteElementList(ppId,pDecStr);
	return TRUE;
}


BOOL WML_SetIValue (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppIValue)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_SELECT) 
	{
		if (((SELECTELEMENT *)(pElement))->pIValue==NULL) 
		{
			((SELECTELEMENT *)(pElement))->pIValue=*ppIValue;
			*ppIValue=NULL;
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetIName (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppIName)
{
	if (pElement->iType==Type_SELECT) 
	{
		if (((SELECTELEMENT *)(pElement))->pchIName==NULL) 
		{
			((SELECTELEMENT *)(pElement))->pchIName=XML_ConvertToString(ppIName,pDecStr);
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetLabel (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLabel)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_DO) 
	{
		if (((DOELEMENT *)(pElement))->pLabel==NULL) 
		{
			((DOELEMENT *)(pElement))->pLabel=*ppLabel;
			*ppLabel=NULL;
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetLocalSrc (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLocalSrc)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_IMG) 
	{
		if (((IMGELEMENT *)(pElement))->pLocalSrc==NULL) 
		{
			((IMGELEMENT *)(pElement))->pLocalSrc=*ppLocalSrc;
			*ppLocalSrc=NULL;
			return TRUE;
		}
	} 

	return FALSE;
}


BOOL WML_SetMaxLength (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppLength)
{
	UINT32 iLength=0;

	/* Convert length (text) to UINT32. The ELEMENTTYPE is removed
	   in the XML_ConvertToString function and the string is removed
	   in the Convert_StringToUINT32 function. */
	WCHAR* pwchLength=XML_ConvertToString(ppLength,pDecStr);

	if (Convert_StringToUINT32(&pwchLength,&iLength))
	{
		if (pElement->iType==Type_INPUT) 
		{
			if (iLength>127) 
			{
				((INPUTELEMENT *)(pElement))->iMaxLength=-1;
			}
			else
			{
				((INPUTELEMENT *)(pElement))->iMaxLength=(INT8)iLength;
			}
			return TRUE;
		} 
	}
	return FALSE;
}


BOOL WML_SetMethod (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMethod, enum MethodType iMethod)
{
	enum MethodType iResult=iMethod;

	if (pElement->iType==Type_GO) 
	{
		if (*ppMethod!=NULL)
		{
			WCHAR* pwchTemp=XML_ConvertToString(ppMethod,pDecStr);

			iResult=WML_ConvertMethod(pwchTemp);
		}

		((GOELEMENT *)(pElement))->iMethod=iResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetMode (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMode, enum WrapMode iMode)
{
	enum WrapMode iResult=iMode;

	if (pElement->iType==Type_P) 
	{
		if (*ppMode!=NULL)
		{
			WCHAR* pwchTemp=XML_ConvertToString(ppMode,pDecStr);

			iResult=WML_ConvertMode(pwchTemp);
		}

		((PELEMENT *)(pElement))->iMode=iResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetMultiple (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppMultiple, BOOL fMultiple)
{
	BOOL fResult=fMultiple;

	if (pElement->iType==Type_SELECT) 
	{
		if (*ppMultiple!=NULL)
		{
			WCHAR* pwchTemp=XML_ConvertToString(ppMultiple,pDecStr);

			if (!Convert_StringToBool(&pwchTemp,&fResult))
			{
				/* Error in conversion */
				return FALSE;
			}
		}

		((SELECTELEMENT *)(pElement))->fMultiple=fResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetName (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppName)
{
	switch (pElement->iType)
	{
	case Type_DO:
		if (((DOELEMENT *)(pElement))->pchName==NULL) 
		{
			((DOELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
			return TRUE;
		}
		break;
	case Type_INPUT:
		if (((INPUTELEMENT *)(pElement))->pchName==NULL) 
		{
			((INPUTELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
			return TRUE;
		}
		break;
	case Type_META:
		if (((METAELEMENT *)(pElement))->pchName==NULL) 
		{
			((METAELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
			return TRUE;
		}
		break;
	case Type_POSTFIELD:
		if (((POSTFIELDELEMENT *)(pElement))->pName==NULL) 
		{
			((POSTFIELDELEMENT *)(pElement))->pName=*ppName;
			*ppName=NULL;
			return TRUE;
		}
		break;
	case Type_SELECT:
		if (((SELECTELEMENT *)(pElement))->pchName==NULL) 
		{
			((SELECTELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
			return TRUE;
		}
		break;
	case Type_SETVAR:
		if (((SETVARELEMENT *)(pElement))->pName==NULL) 
		{
			((SETVARELEMENT *)(pElement))->pName=*ppName;
			*ppName=NULL;
			return TRUE;
		}
		break;
	case Type_TIMER:
		if (((TIMERELEMENT *)(pElement))->pchName==NULL) 
		{
			((TIMERELEMENT *)(pElement))->pchName=XML_ConvertToString(ppName,pDecStr);
			return TRUE;
		}
		break;
	}
	return FALSE;
}


BOOL WML_SetNewContext (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppNewContext, BOOL fContext)
{
	BOOL fResult=fContext;

	if (pElement->iType==Type_CARD) 
	{
		if (*ppNewContext!=NULL)
		{
			WCHAR* pwchTemp=XML_ConvertToString(ppNewContext,pDecStr);

			if (!Convert_StringToBool(&pwchTemp,&fResult))
			{
				/* Error in conversion */
				return FALSE;
			}
		}

		((CARDELEMENT *)(pElement))->fNewContext=fResult;
		return TRUE;
	} 

	return FALSE;
}


BOOL WML_SetOnEntBack (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_CARD) 
	{
		if (((CARDELEMENT *)(pElement))->pOnEntBack==NULL) 
		{
			((CARDELEMENT *)(pElement))->pOnEntBack=*ppURL;

			/* ppURL MUST NOT be set to NULL here. The pointer is also 
			   used in the calling function. */
			return TRUE;
		}
	} 
	else if (pElement->iType==Type_TEMPLATE) 
	{
		if (((TEMPLATEELEMENT *)(pElement))->pOnEntBack==NULL) 
		{
			((TEMPLATEELEMENT *)(pElement))->pOnEntBack=*ppURL;

			/* ppURL MUST NOT be set to NULL here. The pointer is also 
			   used in the calling function. */
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetOnEntForw (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_CARD) 
	{
		if (((CARDELEMENT *)(pElement))->pOnEntForw==NULL) 
		{
			((CARDELEMENT *)(pElement))->pOnEntForw=*ppURL;

			/* ppURL MUST NOT be set to NULL here. The pointer is also 
			   used in the calling function. */
			return TRUE;
		}
	} 
	else if (pElement->iType==Type_TEMPLATE) 
	{
		if (((TEMPLATEELEMENT *)(pElement))->pOnEntForw==NULL) 
		{
			((TEMPLATEELEMENT *)(pElement))->pOnEntForw=*ppURL;

			/* ppURL MUST NOT be set to NULL here. The pointer is also 
			   used in the calling function. */
			return TRUE;
		}
	}

	return FALSE;
}


BOOL WML_SetOnPick (pDECSTR pDecStr, pELEMENTTYPE pElement, pELEMENTTYPE* ppURL)
{
	pDecStr=pDecStr;

	if (pElement->iType==Type_OPTION) 
	{
		if (((OPTIONELEMENT *)(pElement))->pOnpick==NULL) 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -