Files
Slnkdwf/WincmdViewer/WincmdViewer.cpp
Jos Groot Lipman 424dea8e60 Visual Studio 2015
Makefile e.a. flink opgeschoond
_CRT_SECURE_DEPRECATE verwijderd en aantal functies de _s variant gebruikt
WTL van 9.0 naar 9.1
DWF Toolkit makefiles voor VS12.0 en vooral 14.0 ook committen

svn path=/Slnkdwf/trunk/; revision=28366
2016-03-05 21:59:38 +00:00

118 lines
2.8 KiB
C++

#include "stdafx.h"
#include "ListPlug.h"
HINSTANCE g_hInstance;
//CAtlWinModule _Module;
CAppModule _Module;
CAtlMap<HWND, CMainFrame *> myList; // Onthouden om te kunnen terugvinden bij meerdere listers open
int __stdcall ListNotificationReceived(HWND ListWin,int Message,WPARAM wParam,LPARAM lParam)
{
return 0;
}
int __stdcall ListSendCommand(HWND ListWin,int Command,int Parameter)
{
ATLTRACE("ListSendCommand");
CMainFrame *m_Frame;
switch (Command)
{
case lc_newparams:
{
if ((Parameter & lcp_fittowindow) == lcp_fittowindow)
{
// if (myList.Lookup(ListWin, m_Frame))
// m_Frame->Zoom(1.0);
}
}
}
return LISTPLUGIN_OK;
}
void __stdcall ListCloseWindow(HWND ListWin)
{
CMainFrame *m_Frame;
if (myList.Lookup(ListWin, m_Frame))
{
m_Frame->DestroyWindow();
delete m_Frame;
}
}
HWND __stdcall ListLoad(HWND ParentWin, char* FileToLoad, int ShowFlags)
{
CMainFrame *m_Frame = new CMainFrame; // Wordt in ListCloseWindow vrijgegeven
CRect rc;
GetClientRect(ParentWin, &rc);
HWND m_hWndClient = m_Frame->Create(ParentWin, rc, NULL, WS_CHILD | WS_VISIBLE
| WS_CLIPSIBLINGS | WS_CLIPCHILDREN );
m_Frame->SetDWF(CString(FileToLoad));
// Onthouden om mettertijd weer te kunnen vrijgeven
myList[m_hWndClient] = m_Frame;
return m_hWndClient;
}
void __stdcall ListGetDetectString(char* DetectString,int maxlen)
{
strcpy_s(DetectString, maxlen, "EXT=\"DWF\"|EXT=\"W2D\"|([0]=\"(\"&[1]=\"W\"&[2]=\"2\"&[3]=\"D\")");
}
// Note: op termijn moeten we hier natuurlijk bij voorkeur de ingebakken bitmap gebruiken
// Verder moeten nog we de bitmap zo veel mogelijk 'croppen'
HBITMAP __stdcall ListGetPreviewBitmap(char* FileToLoad,int width,int height,
char* contentbuf,int contentbuflen)
{
CWhip2DCImpl iWhip2DC;
HDC pDC = ::GetDC(0);
HDC myDC = CreateCompatibleDC(pDC);
HBITMAP TmpBmp = CreateCompatibleBitmap ( pDC, width, height );
HGDIOBJ TmpObj=SelectObject(myDC,TmpBmp);
CRect rc(0,0,width,height);
PaintToDC(myDC, CString (FileToLoad), 0, iWhip2DC, rc.Size()); // Altijd pagina 0
// Deze moet blijven DeleteObject(TmpBmp);
DeleteDC(myDC);
ReleaseDC( NULL, pDC ); //Do not forget!
return TmpBmp;
}
// Detect Memory Leaks
#ifdef _DEBUG
#include "memleakdetect.h"
//CMemLeakDetect memLeakDetect;
#endif
BOOL APIENTRY DllMain( HINSTANCE hinst,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch ( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH:
{
_Module.Init(NULL, hinst);
g_hInstance = hinst;
char ModuleName[_MAX_PATH];
GetModuleFileName(hinst, ModuleName, sizeof(ModuleName));
DisableThreadLibraryCalls(hinst);
break;
}
case DLL_PROCESS_DETACH:
_Module.Term();
break;
}
return TRUE;
}