本文整理汇总了C++中CAutoRefPtr::Init方法的典型用法代码示例。如果您正苦于以下问题:C++ CAutoRefPtr::Init方法的具体用法?C++ CAutoRefPtr::Init怎么用?C++ CAutoRefPtr::Init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAutoRefPtr
的用法示例。
在下文中一共展示了CAutoRefPtr::Init方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: initSysResource
bool initSysResource()
{
//加载系统资源
if(hSysResource == 0) return false;
BOOL bLoaded = FALSE;
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
bLoaded = sysSesProvider->Init((WPARAM)hSysResource,0);
if(bLoaded == TRUE)
{
pSouiApp->LoadSystemNamedResource(sysSesProvider);
//采用hook绘制菜单的边框
CMenuWndHook::InstallHook(hInstance,_T("_skin.sys.menu.border"));
}
return (bLoaded == TRUE);
}
示例2: _tWinMain
//定义唯一的一个R,UIRES对象,ROBJ_IN_CPP是resource.h中定义的宏。
ROBJ_IN_CPP
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int /*nCmdShow*/)
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComMgr *pComMgr = new SComMgr;
HMODULE hSci = LoadLibrary(_T("SciLexer.dll"));
if(!hSci){
MessageBox(GetActiveWindow(),_T("Load SciLexer.dll failed! \nCopying third-part/SciLexer/bin/SciLexer.dll to the running folder should resolve the problem!!"),_T("error"),MB_OK|MB_ICONSTOP);
return -1;
}
//将程序的运行路径修改到项目所在目录所在的目录
TCHAR szCurrentDir[MAX_PATH] = { 0 };
GetModuleFileName(NULL, szCurrentDir, sizeof(szCurrentDir));
LPTSTR lpInsertPos = _tcsrchr(szCurrentDir, _T('\\'));
_tcscpy(lpInsertPos + 1, _T("..\\demos\\uieditor\\"));
SetCurrentDirectory(szCurrentDir);
{
BOOL bLoaded=FALSE;
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
bLoaded = pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory); //SRenderFactory_GDI
SASSERT_FMT(bLoaded,_T("load interface [render] failed!"));
bLoaded=pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);//SImgDecoderFactory_GDIP
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("imgdecoder"));
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);//SImgDecoderFactory_GDIP
SApplication *theApp = new SApplication(pRenderFactory, hInstance);
//向app注册自定义类
theApp->RegisterWndFactory(TplSWindowFactory<SMyButton>());
theApp->RegisterWndFactory(TplSWindowFactory<SMoveWnd>());
theApp->RegisterWndFactory(TplSWindowFactory<SFreeMoveWindow>());
theApp->RegisterWndFactory(TplSWindowFactory<SToolbox>());
theApp->RegisterWndFactory(TplSWindowFactory<STurn3dView>());
// extened controls
theApp->RegisterWndFactory(TplSWindowFactory<SChromeTabCtrl>());//注册ChromeTabCtrl
theApp->RegisterWndFactory(TplSWindowFactory<SImageMaskWnd>());//注册SImageMaskWnd
theApp->RegisterWndFactory(TplSWindowFactory<SButtonEx>());
theApp->RegisterWndFactory(TplSWindowFactory<SWindowEx>());
theApp->RegisterWndFactory(TplSWindowFactory<SImRichEdit>());
theApp->RegisterWndFactory(TplSWindowFactory<SImagePlayer>());
theApp->RegisterWndFactory(TplSWindowFactory<SText>());
theApp->RegisterWndFactory(TplSWindowFactory<SImageEx>());
theApp->RegisterWndFactory(TplSWindowFactory<SSplitBar>());
theApp->RegisterWndFactory(TplSWindowFactory<SImageSwitcher>());
theApp->RegisterWndFactory(TplSWindowFactory<STabPage2>());//注册STabPage2
theApp->RegisterWndFactory(TplSWindowFactory<STabCtrl2>());//注册STabCtrl2
theApp->RegisterWndFactory(TplSWindowFactory<SAnimImg>());//注册SAnimImg
theApp->RegisterWndFactory(TplSWindowFactory<SGifPlayer>());//注册gif
theApp->RegisterWindowClass<SListBoxDrop>();
theApp->RegisterWindowClass<CDropWnd>();
theApp->RegisterWndFactory(TplSWindowFactory<SPropertyGrid>());//注册属性表控件
theApp->RegisterWndFactory(TplSWindowFactory<SScrollText>());
theApp->RegisterWndFactory(TplSWindowFactory<SRotateWindow>());
//extened skins
theApp->RegisterSkinFactory(TplSkinFactory<SColorMask>());
theApp->RegisterSkinFactory(TplSkinFactory<SSkinMutiFrameImg>());
theApp->RegisterSkinFactory(TplSkinFactory<SSkinVScrollbar>());
theApp->RegisterSkinFactory(TplSkinFactory<SSkinNewScrollbar>());
theApp->RegisterSkinFactory(TplSkinFactory<SSkinGif>());
theApp->RegisterSkinFactory(TplSkinFactory<SSkinAPNG>());
{
#ifdef _DEBUG
HMODULE hSysRes = LoadLibrary(_T("soui-sys-resourced.dll"));
#else
HMODULE hSysRes = LoadLibrary(_T("soui-sys-resource.dll"));
#endif
CAutoRefPtr<IResProvider> sysResProvider;
CreateResProvider(RES_PE, (IObjRef**)&sysResProvider);
sysResProvider->Init((WPARAM)hSysRes, 0);
theApp->LoadSystemNamedResource(sysResProvider);
FreeLibrary(hSysRes);
}
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)
//.........这里部分代码省略.........
示例3: CreateQrImg
void SQrCtrl::CreateQrImg( SStringT strContent )
{
CQR_Encode qrEncode;
int nLevel = 3;
int nVersion = 0;
bool bAutoExtent = true;
int nMaskingNo = -1;
SStringA strContentA = S_CT2A(strContent, CP_UTF8);
if (qrEncode.EncodeData(nLevel, nVersion, bAutoExtent, nMaskingNo, strContentA, strContentA.GetLength()))
{
if (m_pSkin == NULL)
{
int qrSize = qrEncode.m_nSymbleSize + (QR_MARGIN * 2);
CAutoRefPtr<IBitmap> bmp;
GETRENDERFACTORY->CreateBitmap(&bmp);
bmp->Init(qrSize, qrSize);
LPDWORD pBits = (LPDWORD)bmp->LockPixelBits();
memset(pBits, 0xFF, qrSize*qrSize * 4);
int nLineWid = qrSize;
LPDWORD pLine = pBits + QR_MARGIN*nLineWid;
for (int i = 0; i < qrEncode.m_nSymbleSize; i++)
{
LPDWORD pLineData = pLine + QR_MARGIN;
for (int j = 0; j < qrEncode.m_nSymbleSize; j++)
{
if (qrEncode.m_byModuleData[i][j])
{
pLineData[j] = RGBA(0, 0, 0, 255);
}
}
pLine += qrSize;
}
bmp->UnlockPixelBits(pBits);
SetImage(bmp);
}
else
{
int qrSize = qrEncode.m_nSymbleSize + 2;
CAutoRefPtr<IBitmap> bmp;
GETRENDERFACTORY->CreateBitmap(&bmp);
SIZE skinSize = m_pSkin->GetSkinSize();
CRect rcWind = GetWindowRect();
bmp->Init(rcWind.Width(), rcWind.Height());
CAutoRefPtr<IBitmap> qrbmp;
GETRENDERFACTORY->CreateBitmap(&qrbmp);
qrbmp->Init(qrSize, qrSize);
LPDWORD pBits = (LPDWORD)qrbmp->LockPixelBits();
memset(pBits, 0x00, qrSize*qrSize * 4);
int nLineWid = qrSize;
LPDWORD pLine = pBits + nLineWid;
for (int i = 0; i < qrEncode.m_nSymbleSize; i++)
{
LPDWORD pLineData = pLine + 1;
for (int j = 0; j < qrEncode.m_nSymbleSize; j++)
{
if (qrEncode.m_byModuleData[i][j])
{
pLineData[j] = RGBA(0xFF, 0xFF, 0xFF, 0xFF);
}
}
pLine += qrSize;
}
qrbmp->UnlockPixelBits(pBits);
MakeCacheApha(m_pSkin, bmp, qrbmp);
SetImage(bmp);
}
}
}
示例4: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComMgr * pComMgr = new SComMgr;
//将程序的运行路径修改到项目所在目录所在的目录
TCHAR szCurrentDir[MAX_PATH]={0};
GetModuleFileName( NULL, szCurrentDir, sizeof(szCurrentDir) );
LPTSTR lpInsertPos = _tcsrchr( szCurrentDir, _T('\\') );
_tcscpy(lpInsertPos+1,_T("\\..\\360"));
//SetCurrentDirectory(szCurrentDir);
{
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *theApp=new SApplication(pRenderFactory,hInstance);
CAutoRefPtr<ITranslatorMgr> trans;
pComMgr->CreateTranslator((IObjRef**)&trans);
if(trans)
{
theApp->SetTranslator(trans);
pugi::xml_document xmlLang;
if(xmlLang.load_file(L"Translator/lang_cn.xml"))
{
CAutoRefPtr<ITranslator> langCN;
trans->CreateTranslator(&langCN);
langCN->Load(&xmlLang.child(L"language"),1);//1=LD_XML
trans->InstallTranslator(langCN);
}
}
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)
CreateResProvider(RES_FILE,(IObjRef**)&pResProvider);
if(!pResProvider->Init((LPARAM)_T("uires"),0))
{
SASSERT(0);
return 1;
}
#else
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance,0);
#endif
theApp->AddResProvider(pResProvider);
TCHAR xx[MAX_PATH];
GetCurrentDirectory(MAX_PATH, xx);
//加载系统资源
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
theApp->Init(_T("XML_INIT"));
// BLOCK: Run application
{
CMainDlg dlgMain;
dlgMain.Create(GetActiveWindow(),0,0,0,0);
dlgMain.SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet=theApp->Run(dlgMain.m_hWnd);
}
delete theApp;
}
delete pComMgr;
OleUninitialize();
return nRet;
}
示例5: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int /*nCmdShow*/)
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComMgr *pComMgr = new SComMgr(_T("imgdecoder-gdip"));
{
BOOL bLoaded=FALSE;
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
bLoaded = pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
SASSERT_FMT(bLoaded,_T("load interface [render] failed!"));
bLoaded=pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("imgdecoder"));
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *theApp = new SApplication(pRenderFactory, hInstance);
theApp->RegisterWndFactory(TplSWindowFactory<SEdit2>());
theApp->RegisterWndFactory(TplSWindowFactory<SImgCanvas>());
theApp->RegisterWndFactory(TplSWindowFactory<SFolderTreeList>());
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)
//将程序的运行路径修改到项目所在目录所在的目录
SStringT strPath = theApp->GetAppDir();
strPath += _T("..\\SoTool\\uires");
SetCurrentDirectory(strPath);
CreateResProvider(RES_FILE, (IObjRef**)&pResProvider);
if (!pResProvider->Init((LPARAM)_T("uires"), 0))
{
SASSERT(0);
return 1;
}
#else
CreateResProvider(RES_PE, (IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance, 0);
#endif
theApp->AddResProvider(pResProvider);
// BLOCK: Run application
{
CMainDlg dlgMain;
dlgMain.Create(GetActiveWindow());
dlgMain.SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet = theApp->Run(dlgMain.m_hWnd);
}
delete theApp;
}
delete pComMgr;
OleUninitialize();
return nRet;
}
示例6: _tWinMain
ROBJ_IN_CPP
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
//必须要调用OleInitialize来初始化运行环境
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
//LoadLibrary(L"E:\\soui.taobao\\richedit\\Debug\\riched20.dll");
/* XML预编译前面加载效率比较
pugi::xml_document doc;
LARGE_INTEGER perf;
QueryPerformanceFrequency(&perf);
LARGE_INTEGER t1,t2;
QueryPerformanceCounter(&t1);
doc.load_file(L"e:\\play.xml",pugi::parse_default,pugi::encoding_utf8);
QueryPerformanceCounter(&t2);
doc.save_file(L"e:\\play1.xml");
doc.save_bin(L"e:\\paly.xml.bin");
pugi::xml_document doc2;
LARGE_INTEGER t21,t22;
QueryPerformanceCounter(&t21);
doc2.load_bin_file(L"e:\\paly.xml.bin");
QueryPerformanceCounter(&t22);
doc2.save_file(L"e:\\play2.xml");
LONGLONG SP1 = (t2.QuadPart-t1.QuadPart)*1000000/perf.QuadPart;
LONGLONG SP2 = (t22.QuadPart-t21.QuadPart)*1000000/perf.QuadPart;
SStringW str;
str.Format(L"!!!!!sp2=%d,sp1=%d\n",(int)SP2,(int)SP1);
MessageBoxW(GetActiveWindow(),str,L"span",MB_OK);
return 0;
*/
int nRet = 0;
//使用imgdecoder-png图片解码模块演示apng动画
SComMgr *pComMgr = new SComMgr(_T("imgdecoder-png"));
{
int nType=MessageBox(GetActiveWindow(),_T("选择渲染类型:\n[yes]: Skia\n[no]:GDI\n[cancel]:Quit"),_T("select a render"),MB_ICONQUESTION|MB_YESNOCANCEL);
if(nType == IDCANCEL)
{
nRet = -1;
goto exit;
}
//定义一组类SOUI系统中使用的类COM组件
//CAutoRefPtr是一个SOUI系统中使用的智能指针类
CAutoRefPtr<IImgDecoderFactory> pImgDecoderFactory; //图片解码器,由imagedecoder-wid.dll模块提供
CAutoRefPtr<IRenderFactory> pRenderFactory; //UI渲染模块,由render-gdi.dll或者render-skia.dll提供
CAutoRefPtr<ITranslatorMgr> trans; //多语言翻译模块,由translator.dll提供
CAutoRefPtr<IScriptFactory> pScriptLua; //lua脚本模块,由scriptmodule-lua.dll提供
CAutoRefPtr<ILog4zManager> pLogMgr; //log4z对象
BOOL bLoaded=FALSE;
//从各组件中显式创建上述组件对象
if(nType == IDYES)
bLoaded = pComMgr->CreateRender_Skia((IObjRef**)&pRenderFactory);
else
bLoaded = pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),nType==IDYES?_T("render_skia"):_T("render_gdi"));
bLoaded=pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("imgdecoder"));
bLoaded=pComMgr->CreateTranslator((IObjRef**)&trans);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("translator"));
if(pComMgr->CreateLog4z((IObjRef**)&pLogMgr))
if(pLogMgr){
pLogMgr->createLogger("soui");//support output soui trace infomation to log
pLogMgr->start();
}
//为渲染模块设置它需要引用的图片解码模块
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
//定义一个唯一的SApplication对象,SApplication管理整个应用程序的资源
SApplication *theApp=new SApplication(pRenderFactory,hInstance);
theApp->SetLogManager(pLogMgr);
LOGF("demo","test "<<100 << L"wchar");
SLOGFMTE("log output using ansi format,str=%s, tick=%u","test",GetTickCount());
SLOGFMTE(L"log output using unicode format,str=%s, tick=%u",L"中文",GetTickCount());
//控件注册要放到AddResProvider前: 2016年3月8日
//向SApplication系统中注册由外部扩展的控件及SkinObj类
SWkeLoader wkeLoader;
if(wkeLoader.Init(_T("wke.dll")))
//.........这里部分代码省略.........
示例7: InitSoUiFrame
int CMainFrameWork::InitSoUiFrame()
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComMgr * pComMgr = new SComMgr;
//将程序的运行路径修改到项目所在目录所在的目录
TCHAR szCurrentDir[MAX_PATH]={0};
GetModuleFileName( NULL, szCurrentDir, sizeof(szCurrentDir) );
LPTSTR lpInsertPos = _tcsrchr( szCurrentDir, _T('\\') );
_tcscpy(lpInsertPos+1,_T("\\..\\TestProject"));
SetCurrentDirectory(szCurrentDir);
{
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *theApp=new SApplication(pRenderFactory,g_hInstance);
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)
CreateResProvider(RES_FILE,(IObjRef**)&pResProvider);
if(!pResProvider->Init((LPARAM)_T("uires"),0))
{
SASSERT(0);
return 1;
}
#else
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance,0);
#endif
theApp->AddResProvider(pResProvider);
CAutoRefPtr<ITranslatorMgr> trans;
pComMgr->CreateTranslator((IObjRef**)&trans);
if(trans)
{
theApp->SetTranslator(trans);
pugi::xml_document xmlLang;
if(theApp->LoadXmlDocment(xmlLang,_T("lang_cn"),_T("translator")))
{
CAutoRefPtr<ITranslator> langCN;
trans->CreateTranslator(&langCN);
langCN->Load(&xmlLang.child(L"language"),1);//1=LD_XML
trans->InstallTranslator(langCN);
}
}
theApp->RegisterWndFactory(TplSWindowFactory<SIPAddressCtrl>());//注册IP控件
//加载系统资源
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
theApp->Init(_T("XML_INIT"));
// BLOCK: Run application
{
CMainDlg dlgMain;
dlgMain.Create(GetActiveWindow(),0,0,0,0);
dlgMain.SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet=theApp->Run(dlgMain.m_hWnd);
}
delete theApp;
}
delete pComMgr;
OleUninitialize();
}
示例8: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int /*nCmdShow*/)
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComMgr *pComMgr = new SComMgr;
//将程序的运行路径修改到项目所在目录所在的目录
TCHAR szCurrentDir[MAX_PATH] = { 0 };
GetModuleFileName(NULL, szCurrentDir, sizeof(szCurrentDir));
LPTSTR lpInsertPos = _tcsrchr(szCurrentDir, _T('\\'));
_tcscpy(lpInsertPos + 1, _T(".."));
SetCurrentDirectory(szCurrentDir);
{
BOOL bLoaded=FALSE;
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
bLoaded = pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
SASSERT_FMT(bLoaded,_T("load interface [render] failed!"));
bLoaded=pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("imgdecoder"));
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *theApp = new SApplication(pRenderFactory, hInstance);
//从DLL加载系统资源
HMODULE hModSysResource = LoadLibrary(SYS_NAMED_RESOURCE);
if (hModSysResource)
{
CAutoRefPtr<IResProvider> sysResProvider;
CreateResProvider(RES_PE, (IObjRef**)&sysResProvider);
sysResProvider->Init((WPARAM)hModSysResource, 0);
theApp->LoadSystemNamedResource(sysResProvider);
FreeLibrary(hModSysResource);
}else
{
SASSERT(0);
}
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)
CreateResProvider(RES_FILE, (IObjRef**)&pResProvider);
if (!pResProvider->Init((LPARAM)_T("uires"), 0))
{
SASSERT(0);
return 1;
}
#else
CreateResProvider(RES_PE, (IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance, 0);
#endif
theApp->AddResProvider(pResProvider);
theApp->Init(_T("XML_INIT"));
// BLOCK: Run application
{
CMainDlg dlgMain;
dlgMain.Create(GetActiveWindow());
dlgMain.SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet = theApp->Run(dlgMain.m_hWnd);
}
delete theApp;
}
delete pComMgr;
OleUninitialize();
return nRet;
}
示例9: InitInstance
BOOL CmfcdemoApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
HRESULT hRes = CoInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
{//这一个括号很重要,保证里面声明的局部对象在CoUninitialize()之前释放
SComLoader imgDecLoader;
SComLoader renderLoader;
CAutoRefPtr<IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<IRenderFactory> pRenderFactory;
imgDecLoader.CreateInstance(COM_IMGDECODER,(IObjRef**)&pImgDecoderFactory);
renderLoader.CreateInstance(COM_RENDER_GDI,(IObjRef**)&pRenderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *pSouiApp=new SApplication(pRenderFactory,theApp.m_hInstance);
//加载系统资源
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
pSouiApp->LoadSystemNamedResource(sysSesProvider);
}
CAutoRefPtr<IResProvider> pResProvider;
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)theApp.m_hInstance,0);
pSouiApp->AddResProvider(pResProvider); //从资源加载皮肤
//设置真窗口处理接口
CSouiRealWndHandler * pRealWndHandler = new CSouiRealWndHandler();
pSouiApp->SetRealWndHandler(pRealWndHandler);
pRealWndHandler->Release();
pSouiApp->Init(_T("uidef"),_T("xml")); //初始化SOUI全局资源
CmfcdemoDlg dlg;
m_pMainWnd = &dlg;
dlg.DoModal();
delete pSouiApp;
}
CoUninitialize();
return FALSE;
}
示例10: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
//必须要调用OleInitialize来初始化运行环境
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
// LoadLibrary(L"E:\\soui.taobao\\richedit\\Debug\\riched20.dll");
int nRet = 0;
//使用imgdecoder-png图片解码模块演示apng动画
SComMgr *pComMgr = new SComMgr(_T("imgdecoder-png"));
{
int nType=MessageBox(GetActiveWindow(),_T("选择渲染类型:\n[yes]: Skia\n[no]:GDI\n[cancel]:Quit"),_T("select a render"),MB_ICONQUESTION|MB_YESNOCANCEL);
if(nType == IDCANCEL)
{
nRet = -1;
goto exit;
}
//定义一组类SOUI系统中使用的类COM组件
//CAutoRefPtr是一个SOUI系统中使用的智能指针类
CAutoRefPtr<IImgDecoderFactory> pImgDecoderFactory; //图片解码器,由imagedecoder-wid.dll模块提供
CAutoRefPtr<IRenderFactory> pRenderFactory; //UI渲染模块,由render-gdi.dll或者render-skia.dll提供
CAutoRefPtr<ITranslatorMgr> trans; //多语言翻译模块,由translator.dll提供
CAutoRefPtr<IScriptFactory> pScriptLua; //lua脚本模块,由scriptmodule-lua.dll提供
BOOL bLoaded=FALSE;
//从各组件中显式创建上述组件对象
if(nType == IDYES)
bLoaded = pComMgr->CreateRender_Skia((IObjRef**)&pRenderFactory);
else
bLoaded = pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),nType==IDYES?_T("render_skia"):_T("render_gdi"));
bLoaded=pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("imgdecoder"));
bLoaded=pComMgr->CreateTranslator((IObjRef**)&trans);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("translator"));
//为渲染模块设置它需要引用的图片解码模块
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
//定义一个唯一的SApplication对象,SApplication管理整个应用程序的资源
SApplication *theApp=new SApplication(pRenderFactory,hInstance);
//将程序的运行路径修改到demo所在的目录
SStringT strResDir = theApp->GetAppDir();
strResDir += _T("\\..\\demo");
SetCurrentDirectory(strResDir);
//SOUI系统总是从appdir去查找资源
theApp->SetAppDir(strResDir);
//定义一人个资源提供对象,SOUI系统中实现了3种资源加载方式,分别是从文件加载,从EXE的资源加载及从ZIP压缩包加载
CAutoRefPtr<IResProvider> pResProvider;
#if (RES_TYPE == 0)//从文件加载
CreateResProvider(RES_FILE,(IObjRef**)&pResProvider);
if(!pResProvider->Init((LPARAM)_T("uires"),0))
{
SASSERT(0);
delete theApp;
nRet = 1;
goto exit;
}
#elif (RES_TYPE==1)//从EXE资源加载
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance,0);
#elif (RES_TYPE==2)//从ZIP包加载
bLoaded=pComMgr->CreateResProvider_ZIP((IObjRef**)&pResProvider);
SASSERT_FMT(bLoaded,_T("load interface [%s] failed!"),_T("resprovider_zip"));
ZIPRES_PARAM param;
param.ZipFile(pRenderFactory, _T("uires.zip"),"souizip");
bLoaded = pResProvider->Init((WPARAM)¶m,0);
SASSERT(bLoaded);
#endif
//将创建的IResProvider交给SApplication对象
theApp->AddResProvider(pResProvider);
//创建一个http服务器,用来从资源中加载flash
CMemFlash memFlash;
CHTTPServer flashSvr(&memFlash);
flashSvr.Start(CMemFlash::HomeDir(),"",82,0);
if(trans)
{//加载语言翻译包
theApp->SetTranslator(trans);
pugi::xml_document xmlLang;
if(theApp->LoadXmlDocment(xmlLang,_T("lang_cn"),_T("translator")))
{
CAutoRefPtr<ITranslator> langCN;
trans->CreateTranslator(&langCN);
langCN->Load(&xmlLang.child(L"language"),1);//1=LD_XML
trans->InstallTranslator(langCN);
}
}
#ifdef DLL_CORE
//.........这里部分代码省略.........
示例11: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
HRESULT hRes = OleInitialize(NULL);
SASSERT(SUCCEEDED(hRes));
int nRet = 0;
SComLoader imgDecLoader;
SComLoader renderLoader;
//将程序的运行路径修改到项目所在目录所在的目录
TCHAR szCurrentDir[MAX_PATH]={0};
GetModuleFileName( NULL, szCurrentDir, sizeof(szCurrentDir) );
LPTSTR lpInsertPos = _tcsrchr( szCurrentDir, _T('\\') );
_tcscpy(lpInsertPos+1,_T(".."));
SetCurrentDirectory(szCurrentDir);
{
CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory;
imgDecLoader.CreateInstance(COM_IMGDECODER,(IObjRef**)&pImgDecoderFactory);
renderLoader.CreateInstance(COM_RENDER_GDI,(IObjRef**)&pRenderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SApplication *theApp=new SApplication(pRenderFactory,hInstance);
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource)
{
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
CAutoRefPtr<IResProvider> pResProvider;
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
pResProvider->Init((WPARAM)hInstance,0);
theApp->AddResProvider(pResProvider);
theApp->RegisterWndFactory(TplSWindowFactory<SIECtrl>());
theApp->Init(_T("XML_INIT"));
// BLOCK: Run application
{
CMainDlg dlgMain;
dlgMain.Create(GetActiveWindow(),0,0,0,0);
dlgMain.SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet=theApp->Run(dlgMain.m_hWnd);
}
delete theApp;
}
OleUninitialize();
return nRet;
}
示例12: _tWinMain
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpstrCmdLine*/, int /*nCmdShow*/)
{
HRESULT hRes = CoInitialize(NULL);
SOUI::CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory=NULL;
SComMgr * pComMgr = new SComMgr;
///GDI渲染器
pComMgr->CreateRender_GDI((IObjRef**)&pRenderFactory);
///图片解码器
SOUI::CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory;
pComMgr->CreateImgDecoder((IObjRef**)&pImgDecoderFactory);
pRenderFactory->SetImgDecoderFactory(pImgDecoderFactory);
SOUI::SApplication *theApp=new SApplication(pRenderFactory,hInstance);
theApp->RegisterWindowClass<SVideoPlayer>();
CAutoRefPtr<IResProvider> pResProvider;
CreateResProvider(RES_PE,(IObjRef**)&pResProvider);
if(pResProvider)
{
HMODULE hSysResource=LoadLibrary(_T("kkplayerdemoUI.dll"));
BOOL ret=pResProvider->Init((WPARAM)hSysResource,0);
theApp->AddResProvider(pResProvider);
}
//加载系统资源
HMODULE hSysResource=LoadLibrary(SYS_NAMED_RESOURCE);
if(hSysResource){
CAutoRefPtr<IResProvider> sysSesProvider;
CreateResProvider(RES_PE,(IObjRef**)&sysSesProvider);
sysSesProvider->Init((WPARAM)hSysResource,0);
theApp->LoadSystemNamedResource(sysSesProvider);
}
CAutoRefPtr<ITranslatorMgr> trans;
pComMgr->CreateTranslator((IObjRef**)&trans);
if(trans)
{
theApp->SetTranslator(trans);
pugi::xml_document xmlLang;
if(theApp->LoadXmlDocment(xmlLang,_T("lang_cn"),_T("translator"))){
CAutoRefPtr<ITranslator> langCN;
trans->CreateTranslator(&langCN);
langCN->Load(&xmlLang.child(L"language"),1);//1=LD_XML
trans->InstallTranslator(langCN);
}
}
int nRet=0;
SOUI::CMainDlg dlgMain;
dlgMain.Create(NULL,WS_POPUP|WS_CLIPCHILDREN| WS_CLIPSIBLINGS,0,0,0,0,0);
dlgMain.GetNative()->SendMessage(WM_INITDIALOG);
dlgMain.CenterWindow(dlgMain.m_hWnd);
dlgMain.ShowWindow(SW_SHOWNORMAL);
nRet = theApp->Run(dlgMain.m_hWnd);/**/
}