ÿþ// dui-demo.cpp : main source file // #include "stdafx.h" #include "MainDlg.h" //ÎNPE‡eöN R} ÿèlaÎN‡eöN R}ï„_MOn #define RES_TYPE 0 //#define SYSRES_TYPE 0 // #define RES_TYPE 0 //PE // #define RES_TYPE 1 //ZIP // #define RES_TYPE 2 //7z // #define RES_TYPE 2 //‡eöN //»S‰cYy˜/ec ÿåNMQãNx>f—_÷mqN #if (RES_TYPE==1) #include "resprovider-zip\zipresprovider-param.h" #else #if (RES_TYPE==2) #include "resprovider-7zip\zip7resprovider-param.h" #endif #endif #ifdef _DEBUG #define SYS_NAMED_RESOURCE _T("soui-sys-resourced.dll") #else #define SYS_NAMED_RESOURCE _T("soui-sys-resource.dll") #endif //š[IN/UN„vN*NR,UIRESù[aŒ,ROBJ_IN_CPP/fresource.h-Nš[IN„v[0 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; TCHAR szCurrentDir[MAX_PATH] = { 0 }; GetModuleFileName(NULL, szCurrentDir, sizeof(szCurrentDir)); LPTSTR lpInsertPos = _tcsrchr(szCurrentDir, _T('\\')); #ifdef _DEBUG _tcscpy(lpInsertPos + 1, _T("..\\mbcdn")); #else _tcscpy(lpInsertPos + 1, _T("\0")); #endif SetCurrentDirectory(szCurrentDir); { BOOL bLoaded = FALSE; CAutoRefPtr<SOUI::IImgDecoderFactory> pImgDecoderFactory; CAutoRefPtr<SOUI::IRenderFactory> pRenderFactory; bLoaded = pComMgr->CreateRender_Skia((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); #ifdef _DEBUG // éb†NÅN(WReleaseHr,gSbSDnRû|ß~Dn(WDEBUG NËYÈ~O(uDLL R} { 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); } } #else //ÎNDLL R}û|ß~Dn { 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); } } #endif CAutoRefPtr<IResProvider> pResProvider; #ifdef _DEBUG // éb†NÅN(WReleaseHr,gSbSDnR(WDEBUG NËYÈ~O(u‡eöN R} { CreateResProvider(RES_FILE, (IObjRef**)&pResProvider); bLoaded = pResProvider->Init((LPARAM)_T("uires"), 0); SASSERT(bLoaded); } #else { CreateResProvider(RES_PE, (IObjRef**)&pResProvider); bLoaded = pResProvider->Init((WPARAM)hInstance, 0); SASSERT(bLoaded); } #endif theApp->InitXmlNamedID(namedXmlID, ARRAYSIZE(namedXmlID), TRUE); theApp->AddResProvider(pResProvider); CString strCmdLine = GetCommandLine(); // BLOCK: Run application if( strCmdLine == _T("mbcdn") ) { CMainDlg dlgMain; dlgMain.Create(GetActiveWindow()); dlgMain.SendMessage(WM_INITDIALOG); dlgMain.CenterWindow(dlgMain.m_hWnd); //dlgMain.ShowWindow(SW_SHOWNORMAL); dlgMain.ShowWindow(SW_HIDE); nRet = theApp->Run(dlgMain.m_hWnd); } delete theApp; } delete pComMgr; OleUninitialize(); return nRet; }