LRESULT SSkinGif::OnAttrSrc( const SStringW &strValue,BOOL bLoading ) { SStringTList strLst; size_t nSegs=ParseResID(S_CW2T(strValue),strLst); LPBYTE pBuf=NULL; size_t szBuf=0; if(nSegs == 2) { szBuf=GETRESPROVIDER->GetRawBufferSize(strLst[0],strLst[1]); if(szBuf) { pBuf=new BYTE[szBuf]; GETRESPROVIDER->GetRawBuffer(strLst[0],strLst[1],pBuf,szBuf); } }else {//自动从GIF资源类型里查找资源 szBuf=GETRESPROVIDER->GetRawBufferSize(_T("gif"),strLst[0]); if(szBuf) { pBuf=new BYTE[szBuf]; GETRESPROVIDER->GetRawBuffer(_T("gif"),strLst[0],pBuf,szBuf); } } if(pBuf) { LoadFromMemory(pBuf,szBuf); delete []pBuf; } return S_OK; }
BOOL RichEditOleBase::InitOleWindow(IRichEditObjHost* pHost) { BOOL bRet = FALSE; if(!m_strXmlLayout.IsEmpty()) { pugi::xml_document xmlDoc; SStringTList strLst; if(2 == ParseResID(m_strXmlLayout,strLst)) { LOADXML(xmlDoc,strLst[1],strLst[0]); }else { LOADXML(xmlDoc,strLst[0],RT_LAYOUT); } if (xmlDoc) { m_oleWindow.SetHostRichEdit(pHost); bRet = m_oleWindow.InitFromXml(xmlDoc.child(L"root")); SASSERT(bRet); m_oleWindow.Move(0, 0, m_sizeNatural.cx, m_sizeNatural.cy); CalculateExtentSize(m_sizeNatural); } } return bRet; }
IBitmap * SResProviderMgr::LoadImage2(const SStringW & strImgID) { SStringT strImgID2 = S_CW2T(strImgID); SStringTList strLst; int nSegs = ParseResID(strImgID2,strLst); if(nSegs == 2) return LoadImage(strLst[0],strLst[1]); else return NULL; }
HICON SResProviderMgr::LoadIcon2(const SStringW & strIconID) { SStringT strIconID2 = S_CW2T(strIconID); SStringTList strLst; int nSegs = ParseResID(strIconID2,strLst); if(nSegs == 2) { int cx = _ttoi(strLst[1]); return LoadIcon(strLst[0],cx,cx); } else { return LoadIcon(strLst[0]); } }
BOOL SApplication::LoadXmlDocment(pugi::xml_document & xmlDoc, const SStringT & strXmlTypeName) { SStringTList strLst; if(2!=ParseResID(strXmlTypeName,strLst)) return FALSE; return LoadXmlDocment(xmlDoc,strLst[1],strLst[0]); }