extern "C" __declspec(dllexport) int Unload(void) { freeAllWatches(); return 0; }
INT_PTR CALLBACK WatchDlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: { // setup the list... LVCOLUMN sLC; sLC.fmt = LVCFMT_LEFT; ListView_SetExtendedListViewStyle(GetDlgItem(hwnd, IDC_VARS), 32|LVS_EX_SUBITEMIMAGES); //LVS_EX_FULLROWSELECT sLC.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH; sLC.pszText = Translate("Contact"); sLC.cx = 80; ListView_InsertColumn(GetDlgItem(hwnd, IDC_VARS),0,&sLC); sLC.pszText = Translate("Module"); sLC.cx = 80; ListView_InsertColumn(GetDlgItem(hwnd, IDC_VARS),1,&sLC); sLC.pszText = Translate("Setting"); sLC.cx = 80; ListView_InsertColumn(GetDlgItem(hwnd, IDC_VARS),2,&sLC); sLC.pszText = Translate("Type"); sLC.cx = 60; ListView_InsertColumn(GetDlgItem(hwnd, IDC_VARS),3,&sLC); sLC.pszText = Translate("Data"); sLC.cx = 300; ListView_InsertColumn(GetDlgItem(hwnd, IDC_VARS),4,&sLC); PopulateWatchedWindow(GetDlgItem(hwnd, IDC_VARS)); TranslateMenu(GetMenu(hwnd)); TranslateMenu(GetSubMenu(GetMenu(hwnd),0)); TranslateDialogDefault(hwnd); // do the icon SendMessage(hwnd,WM_SETICON,ICON_BIG,(LPARAM)LoadIcon(hInst,MAKEINTRESOURCE(ICO_REGEDIT))); } return TRUE; // for the resize case WM_GETMINMAXINFO: { MINMAXINFO *mmi=(MINMAXINFO*)lParam; mmi->ptMinTrackSize.x=200; mmi->ptMinTrackSize.y=90; return 0; } case WM_SIZE: { UTILRESIZEDIALOG urd; ZeroMemory(&urd,sizeof(urd)); urd.cbSize=sizeof(urd); urd.hInstance=hInst; urd.hwndDlg=hwnd; urd.lParam=0; urd.lpTemplate=MAKEINTRESOURCE(IDD_WATCH_DIAG); urd.pfnResizer=WatchDialogResize; CallService(MS_UTILS_RESIZEDIALOG,0,(LPARAM)&urd); break; } case WM_COMMAND: switch(LOWORD(wParam)) { case MENU_REMALL_WATCHES: freeAllWatches(); ListView_DeleteAllItems(GetDlgItem(hwnd, IDC_VARS)); break; case MENU_EXIT: case IDCANCEL: hwnd2watchedVarsWindow = 0; DestroyWindow(hwnd); break; case MENU_REFRESH: PopulateWatchedWindow(GetDlgItem(hwnd, IDC_VARS)); } break; case WM_NOTIFY: switch(LOWORD(wParam)) { case IDC_VARS: switch(((NMHDR*)lParam)->code) { case NM_DBLCLK: { LVHITTESTINFO hti; LVITEM lvi; hti.pt=((NMLISTVIEW*)lParam)->ptAction; if (ListView_SubItemHitTest(GetDlgItem(hwnd,IDC_VARS),&hti) >-1) { if (hti.flags&LVHT_ONITEM) { lvi.mask = LVIF_PARAM; lvi.iItem = hti.iItem; lvi.iSubItem = 0; if (ListView_GetItem(GetDlgItem(hwnd,IDC_VARS),&lvi)) { ItemInfo ii; ii.hContact = (MCONTACT)lvi.lParam; ListView_GetItemText(GetDlgItem(hwnd,IDC_VARS),hti.iItem,1,ii.module,128); ListView_GetItemText(GetDlgItem(hwnd,IDC_VARS),hti.iItem,2,ii.setting,128); ii.type = FW_SETTINGNAME; SendMessage(hwnd2mainWindow,WM_FINDITEM,(WPARAM)&ii,0); } } } } break; } break; } break; } return 0; }