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
118 lines
2.8 KiB
C++
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;
|
|
}
|