SKYENGINE API  参考手册返回目录  

 
int32 mr_platEx

(int32 code = 106,
uint8* input,
int32 input_len,
uint8** output,
int32* output_len,
MR_PLAT_EX_CB* cb
)



Description
获得手机菜单树x18x。
Parameters

Name Description
input 输入参数的起始地址
input_len 输入参数大小(字节数)
output 输出参数的起始地址
output_len 输出参数大小(字节数)
cb 回调函数,由移植层返回给应用,如果应用层发现这个返回值为非空,那么需要在使用完返回数据后调用这个cb函数来释放移植层分配的资源。

Return Value

MR_SUCCESS                成功
MR_FAILED                   失败
MR_IGNORE                  不支持该功能

Remarks

Mythroad透明调用这个接口。APP层上的对应命令将会透明调用至移植层,移植层的返回值也将透明返回至APP层。该扩展接口可用于特殊的平台命令/操作。cb的输出参数是资源清理回调函数,函数的类型定义如下:
typedef void (*MR_PLAT_EX_CB)(uint8* output, int32 output_len);
若移植层需要在mr_platEx函数返回后进行清理工作(比如output的内存是移植层动态申请的,需要VM层使用完后释放),可以给cb赋值,VM层在使用过output后,会调用cb。

Example

/*mrp code*/

int32 re;
U8* pTree = NULL;
int32 len = 0;
MR_PLAT_EX_CB cb = 0;
char* tree = NULL;
 
re = mrc_platEx( 106, NULL, 0, (uint8**)&pTree, &len, &cb );
if ( MR_SUCCESS == re)
{
     tree = (char*)malloc( len );
     str_convert_endian( (char*)pTree );   //大小端转换
     wstr2str((PCWSTR)pTree, (PSTR)tree, len ); //unicode to string.
     mrc_printf( logbuf, "menu tree: %s", tree );
     cb( (uint8*)pTree, len );//free resource
     free( tree );
     tree = NULL
;
}

See Also

 


Copyright ?2005-20010 SKY-MOBI

返回目录