Code:
BOOL CALLBACK MainDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
HWND hwndObj;
HMENU hwndMenu;
LVCOLUMN lvc;
NM_LISTVIEW* lvMsg;
int columnNr;
switch(msg)
{
case WM_INITDIALOG:
mainWinHandle = hwnd;
listviewHandle = GetDlgItem(hwnd,IDCLISTV);
hwndObj = GetDlgItem(hwnd,IDBADD);
SetFocus (hwndObj);
hwndMenu = GetMenu(hwnd);
if (prefs.onTop)
{
SetWindowPos(hwnd,HWND_TOPMOST,1,1,1,1,SWP_NOMOVE|SWP_NOSIZE );
CheckMenuItem(hwndMenu,IDMONTOP,MF_BYCOMMAND|MF_CHECKED);
}
else
{
SetWindowPos(hwnd,HWND_NOTOPMOST,1,1,1,1,SWP_NOMOVE|SWP_NOSIZE );
CheckMenuItem(hwndMenu,IDMONTOP,MF_BYCOMMAND|MF_UNCHECKED);
}
char dllFile [FILENAMESIZE];
strcpy(dllFile,mainDir);
strcat(dllFile,"test.dll");
lib = NULL;
if(FileExists(dllFile))
lib = LoadLibrary(dllFile);
if(lib != NULL)
{
_dllFunc = (DLLFUNC) GetProcAddress(lib,TEXT_DLLFUNC);
}
if(lib == NULL || _dllFunc == NULL )
{
MessageBox(hwnd, "test.dll is missing or invallid", dllFile,MB_OK | MB_ICONEXCLAMATION);
exit(-1);
}
strcpy(dllFile,mainDir);
strcat(dllFile,"test2.dll");
lib2 = NULL;
if(FileExists(dllFile))
lib2 = LoadLibrary(dllFile);
if (lib2 == NULL)
{
MessageBox(hwnd, "test2.dll is missing", dllFile,MB_OK | MB_ICONEXCLAMATION);
}
else
{
_dll2Func1 = (DLL2FUNC1) GetProcAddress(lib2, TEXT_DLL2FUNC1);
_dll2Func2 = (DLL2FUNC2) GetProcAddress(lib2, TEXT_DLL2FUNC2);
_dll2Func3 = (DLL2FUNC3) GetProcAddress(lib2, TEXT_DLL2FUNC3);
if(_dll2Func1 == NULL || _dll2Func2 == NULL || _dll2Func3 == NULL)
{
MessageBox(hwnd, "dll2 error", "WARNING",MB_OK | MB_ICONEXCLAMATION);
lib2 = NULL;
}
}
SendDlgItemMessage(hwnd, IDCLISTB,LB_SETHORIZONTALEXTENT,(WPARAM) 700,0);
PlaceControlsMainDlg (hwnd);
hwndObj = GetDlgItem(hwnd,IDCLISTV);
SendMessage(hwndObj, LVM_SETEXTENDEDLISTVIEWSTYLE,(WPARAM) (DWORD)LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT ,LVS_EX_HEADERDRAGDROP | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT );
ZeroMemory(&lvc,sizeof(lvc));
lvc.mask=LVCF_TEXT | LVCF_WIDTH ;
lvc.cx=100;
lvc.pszText="C1";
SendMessage(hwndObj,LVM_INSERTCOLUMN,1,(LPARAM)&lvc);
lvc.cx=70;
lvc.pszText="C2";
SendMessage(hwndObj,LVM_INSERTCOLUMN,2,(LPARAM)&lvc);
lvc.cx=50;
lvc.pszText="C3";
SendMessage(hwndObj,LVM_INSERTCOLUMN,3,(LPARAM)&lvc);
lvc.cx=50;
lvc.pszText="C4";
SendMessage(hwndObj,LVM_INSERTCOLUMN,4,(LPARAM)&lvc);
lvc.cx=65;
lvc.pszText="C5";
SendMessage(hwndObj,LVM_INSERTCOLUMN,5,(LPARAM)&lvc);
lvc.cx=80;
lvc.pszText="C6";
SendMessage(hwndObj,LVM_INSERTCOLUMN,6,(LPARAM)&lvc);
lvc.cx=70;
lvc.pszText="C7";
SendMessage(hwndObj,LVM_INSERTCOLUMN,7,(LPARAM)&lvc);
lvc.cx=70;
lvc.pszText="C8";
SendMessage(hwndObj,LVM_INSERTCOLUMN,8,(LPARAM)&lvc);
WriteInitFile();
return true;
break;
case WM_CLOSE:
PostQuitMessage(WM_QUIT);
return true;
break;
case WM_DROPFILES:
ProcessDragAndDrop ( (HDROP*) wParam, hwnd);
DragFinish((HDROP) wParam);
return true;
break;
case WM_SIZE:
PlaceControlsMainDlg (hwnd);
return true;
break;
case WM_MOVE:
PlaceControlsMainDlg (hwnd);
return true;
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDBADD:
AddItemToListBox(hwnd);
return true;
break;
case IDBDELETE:
DeleteItemFromListB();
return true;
break;
case IDBEXIT:
PostQuitMessage(WM_QUIT);
return true;
break;
case IDBCLEARLIST:
SendDlgItemMessage(hwnd, IDCLISTB,LB_RESETCONTENT,0,0);
return true;
break;
case IDCLISTB:
return true;
break;
case IDMEXIT:
PostQuitMessage(WM_QUIT);
return true;
break;
case IDMPREF:
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDDPREF), hwnd, PrefDlgProc);
return true;
break;
case IDMONTOP:
hwndMenu = GetMenu(hwnd);
prefs.onTop = !prefs.onTop;
if (prefs.onTop)
{
SetWindowPos(hwnd,HWND_TOPMOST,1,1,1,1,SWP_NOMOVE|SWP_NOSIZE );
CheckMenuItem(hwndMenu,IDMONTOP,MF_BYCOMMAND|MF_CHECKED);
}
else
{
SetWindowPos(hwnd,HWND_NOTOPMOST,1,1,1,1,SWP_NOMOVE|SWP_NOSIZE );
CheckMenuItem(hwndMenu,IDMONTOP,MF_BYCOMMAND|MF_UNCHECKED);
}
WriteInitFile();
return true;
break;
case IDMABOUT:
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDDABOUT), hwnd, AboutDlgProc);
return true;
break;
default:
return false;
}
break;
default:
return false;
}
return false;
}