123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- // Renderings.cpp : 定义 DLL 的初始化例程。
- //
- #include "stdafx.h"
- #include "Renderings.h"
- #include "DlgRenderings.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- //
- //TODO: 如果此 DLL 相对于 MFC DLL 是动态链接的,
- // 则从此 DLL 导出的任何调入
- // MFC 的函数必须将 AFX_MANAGE_STATE 宏添加到
- // 该函数的最前面。
- //
- // 例如:
- //
- // extern "C" BOOL PASCAL EXPORT ExportedFunction()
- // {
- // AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // // 此处为普通函数体
- // }
- //
- // 此宏先于任何 MFC 调用
- // 出现在每个函数中十分重要。这意味着
- // 它必须作为函数中的第一个语句
- // 出现,甚至先于所有对象变量声明,
- // 这是因为它们的构造函数可能生成 MFC
- // DLL 调用。
- //
- // 有关其他详细信息,
- // 请参阅 MFC 技术说明 33 和 58。
- //
- // CRenderingsApp
- BEGIN_MESSAGE_MAP(CRenderingsApp, CWinApp)
- END_MESSAGE_MAP()
- // CRenderingsApp 构造
- CRenderingsApp::CRenderingsApp()
- {
- // TODO: 在此处添加构造代码,
- // 将所有重要的初始化放置在 InitInstance 中
- }
- // 唯一的一个 CRenderingsApp 对象
- CRenderingsApp theApp;
- // CRenderingsApp 初始化
- BOOL CRenderingsApp::InitInstance()
- {
- CWinApp::InitInstance();
- return TRUE;
- }
- // 返回FALSE,则hMemery由调用程序释放;
- extern "C" BOOL PASCAL EXPORT LoadRenderings( IN LPCTSTR lpRenderings, IN HGLOBAL hMemery, IN DWORD dwMemSize )
- {
- if ( lpRenderings == NULL || lpRenderings[0] == '\0')
- return FALSE;
- // PNG图片路径;
- g_strPathOfPNG = lpRenderings;
- if ( hMemery == NULL || dwMemSize == 0 )
- return FALSE;
- BYTE *pData = (BYTE*)GlobalLock(hMemery);
- if ( pData == NULL )
- {
- GlobalUnlock(hMemery);
- GlobalFree(hMemery);
- return FALSE;
- }
- CMemFile mf;
- mf.Attach(pData, dwMemSize);
- CArchive ar(&mf, CArchive::load);
- g_AryCustomerImage.Serialize(ar);
- ar.Close();
- mf.Detach();
- GlobalUnlock(hMemery);
- GlobalFree(hMemery);
- ULONG_PTR gdiplusToken;
- GdiplusStartupInput gdiplusStartupInput;
- GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
- AFX_MANAGE_STATE(AfxGetStaticModuleState());
- // 获取桌面分辨率;
- GetDesktopInfo();
- CDlgRenderings dlg;
- dlg.DoModal();
- Gdiplus::GdiplusShutdown(gdiplusToken);
- return TRUE;
- }
|