void MsgPackage::PackageMsgData(char* &r_lpCharMsg){
			if (0!=_lpCharReturnPackaged){
				r_lpCharMsg=_lpCharReturnPackaged;
			}
			else{
				this->_lpCharReturnPackaged=new char[_usPackageTotalLength];
				//char* _lpTempPackaged=new char[_usPackageTotalLength];
				int intPos=ConstInt_Length_Of_PackageHead;
				int vLength=_vMsgData.size();
				for(int i=0;i<vLength;i++){
					char lpCharContent[256];
					int len=PackageData(_vMsgData[i],lpCharContent);
					//USHORT j=_vMsgData[i]->action;
					memcpy(_lpCharReturnPackaged+intPos,lpCharContent,len);
					intPos+=len;
				}
				r_lpCharMsg=_lpCharReturnPackaged;
			}
		}
void PackageList::showData(const String& pattern) {
	// clear
	packages.clear();
	// find matching packages
	vector<PackagedP> matching;
	{
		PROFILER(_("find matching packages"));
		package_manager.findMatching(pattern, matching);
	}
	FOR_EACH(p, matching) {
		// open image
		PROFILER(_("load package image"));
		InputStreamP stream = p->openIconFile();
		Image img;
		Bitmap bmp;
		if (stream && img.LoadFile(*stream)) {
			bmp = Bitmap(img);
		}
		// add to list
		packages.push_back(PackageData(p, bmp));
	}