summaryrefslogtreecommitdiff
path: root/plugins/WhoUsesMyFiles/wumf.c
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-07-24 12:45:18 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-07-24 12:45:18 +0000
commit0cda0baab21d4d4bf40c9459f6f5a7e49aa92492 (patch)
treec1244d2f42e6d1728a81a18bd0fbd091904bf20c /plugins/WhoUsesMyFiles/wumf.c
parent171e81205e357e0d54283a63997ed58ff97d54a9 (diff)
VersionInfo, W7UI, WhoUsesMyFiles, YAPP, ZeroNotification: changed folder structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@1161 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/WhoUsesMyFiles/wumf.c')
-rw-r--r--plugins/WhoUsesMyFiles/wumf.c330
1 files changed, 0 insertions, 330 deletions
diff --git a/plugins/WhoUsesMyFiles/wumf.c b/plugins/WhoUsesMyFiles/wumf.c
deleted file mode 100644
index 03aa576d38..0000000000
--- a/plugins/WhoUsesMyFiles/wumf.c
+++ /dev/null
@@ -1,330 +0,0 @@
-#define MAX_CHARS 4096
-#define WS_WINDOW_STYLE WS_OVERLAPPED
-#define NAME "WUMF"
-#define WM_MYCMD 0x0401
-
-#include "wumf.h"
-static PWumf list = NULL;
-static PWumf lst = NULL;
-
-extern WUMF_OPTIONS WumfOptions;
-extern HANDLE hInst;
-extern HWND hDlg;
-extern char ModuleName[];
-
-HANDLE hLog = INVALID_HANDLE_VALUE;
-BOOL wumf();
-
-static int DlgResizer(HWND hwndDlg,LPARAM lParam,UTILRESIZECONTROL *urc) {
- switch(urc->wId) {
- case IDC_CONNLIST:
- return RD_ANCHORX_WIDTH|RD_ANCHORY_HEIGHT;
- case IDOK:
- return RD_ANCHORX_RIGHT|RD_ANCHORY_BOTTOM;
- }
- return RD_ANCHORX_LEFT|RD_ANCHORY_TOP;
-}
-
-
-
-void AddToList(HWND hList, PWumf w)
-{
- LVITEM lvi = { 0 };
- lvi.iItem=ListView_GetItemCount(hList)+1;
- lvi.mask= LVIF_PARAM|LVIF_TEXT;
- lvi.pszText = w->szID;
- lvi.cchTextMax = (int)_tcslen(w->szID);
- lvi.lParam = (LPARAM)w;
- ListView_InsertItem(hList,&lvi);
-}
-
-void ShowList(PWumf l, HWND hList)
-{
- PWumf w;
- w = l;
- while(w)
- {
- AddToList(hList,w);
- w = w->next;
- }
-}
-
-VOID OnGetDispInfo(NMLVDISPINFO *plvdi)
-{
- PWumf w;
- w = (PWumf)(plvdi->item.lParam);
- switch (plvdi->item.iSubItem)
- {
- case 0:
- plvdi->item.pszText = w->szID;
- break;
- case 1:
- plvdi->item.pszText = w->szUser;
- break;
- case 2:
- plvdi->item.pszText = w->szPath;
- break;
- case 3:
- plvdi->item.pszText = w->szPerm;
- break;
- default:
- break;
- }
-}
-
-
-int CALLBACK ConnDlgProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
-{
- UTILRESIZEDIALOG urd={0};
- LV_COLUMN lvc = { 0 };
- char col0[] = "ID";
- char col1[] = "User";
- char col2[] = "File";
- char col3[] = "Access";
-// char buff[256];
- HWND hList;
- switch( Msg )
- {
- case WM_INITDIALOG:
- hList = GetDlgItem(hWnd, IDC_CONNLIST);
-// ListView_DeleteAllItems(hList);
- ListView_SetExtendedListViewStyle(hList, LVS_EX_FULLROWSELECT);
- lvc.mask = LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
- lvc.fmt = LVCFMT_LEFT;
- lvc.cx = 40;
- lvc.pszText = col0;
- lvc.cchTextMax = sizeof(col0);
- ListView_InsertColumn(hList, 0, &lvc);
- lvc.cx = 50;
- lvc.pszText = col1;
- lvc.cchTextMax = sizeof(col1);
- ListView_InsertColumn(hList, 1, &lvc);
- lvc.cx = 250;
- lvc.pszText = col2;
- lvc.cchTextMax = sizeof(col2);
- ListView_InsertColumn(hList, 2, &lvc);
- lvc.cx = 50;
- lvc.pszText = col3;
- lvc.cchTextMax = sizeof(col3);
- ListView_InsertColumn(hList, 3, &lvc);
- KillTimer(NULL, 777);
- lst = cpy_list(&list);
- if (IsUserAnAdmin()) {
- SetTimer(NULL, 777, TIME,(TIMERPROC) TimerProc);
- } else {
- MessageBox(NULL, "Plugin WhoUsesMyFiles requires admin privileges in order to work.", "Miranda IM", MB_OK);
- }
- ShowList(lst, hList);
- Utils_RestoreWindowPosition(hWnd, NULL, ModuleName,"conn");
- break;
- case WM_CLOSE:
- PostMessage( hWnd, WM_COMMAND, IDCANCEL, 0l );
- break;
- case WM_COMMAND:
- switch( LOWORD(wParam) )
- {
- case IDOK:
- case IDCANCEL:
- PostMessage( hWnd, WM_DESTROY, 0, 0l );
- break;
- }
- break;
- case WM_SIZE:
- urd.cbSize=sizeof(urd);
- urd.hwndDlg=hWnd;
- urd.hInstance=hInst;
- urd.lpTemplate=MAKEINTRESOURCE(IDD_CONNLIST);
- urd.lParam=(LPARAM)NULL;
- urd.pfnResizer=DlgResizer;
- ResizeDialog(0,(LPARAM)&urd);
- Utils_SaveWindowPosition(hWnd, NULL, ModuleName,"conn");
- return TRUE;
- case WM_MOVE:
- Utils_SaveWindowPosition(hWnd, NULL, ModuleName,"conn");
- break;
- case WM_NOTIFY:
- switch (((LPNMHDR) lParam)->code)
- {
- case LVN_GETDISPINFO:
- OnGetDispInfo((NMLVDISPINFO *) lParam);
- break;
- }
- break;
- case WM_DESTROY:
- del_all(&lst);
- PostQuitMessage(0);
- break;
- default:
- return FALSE;
- }
- return TRUE;
-}
-
-void LogWumf(PWumf w)
-{
- char str[256];
- LPTSTR lpstr;
- char lpDateStr[20];
- char lpTimeStr[20];
- SYSTEMTIME time;
- DWORD bytes;
-
- if(!WumfOptions.LogFolders && (w->dwAttr & FILE_ATTRIBUTE_DIRECTORY)) return;
-
- if(hLog == INVALID_HANDLE_VALUE || hLog == NULL)
- {
- hLog = CreateFile(WumfOptions.LogFile,
- GENERIC_WRITE,
- FILE_SHARE_READ,
- (LPSECURITY_ATTRIBUTES) NULL,
- OPEN_ALWAYS,
- FILE_ATTRIBUTE_NORMAL,
- (HANDLE) NULL);
- if(hLog == INVALID_HANDLE_VALUE)
- {
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
- (LPTSTR) &lpstr,
- 0,
- NULL);
- wsprintf(str, "Can't open log file %s\nError:%s", WumfOptions.LogFile, lpstr);
- LocalFree(lpstr);
- MessageBox( NULL, str, "Error opening file", MB_OK | MB_ICONSTOP);
- WumfOptions.LogToFile = FALSE;
- }
- }
- GetLocalTime(&time);
- GetDateFormat(LOCALE_USER_DEFAULT,DATE_SHORTDATE, &time,NULL, lpDateStr, 20);
- GetTimeFormat(LOCALE_USER_DEFAULT,TIME_FORCE24HOURFORMAT|TIME_NOTIMEMARKER, &time,NULL, lpTimeStr, 20);
- wsprintf(str ,"%s %s %20s\t%s\r\n\0",lpDateStr, lpTimeStr, w->szUser, w->szPath);
- SetFilePointer (hLog, 0, NULL, FILE_END);
- WriteFile(hLog, str, (DWORD)_tcslen(str), &bytes, NULL);
-}
-
-/*
-BOOL wumf()
-{
- FILE_INFO_3 *buf, *cur;
- SESSION_INFO_0 *sinfo;
- DWORD read, total, resumeh, rc, i, sess = 0L;
- wchar_t server[20];
- char user[512], path[512], comp[512];
- char* UNC = NULL;
- PWumf w = NULL;
-
- mbstowcs( server, "\\\\.", 8);
- resumeh = 0;
-
- mark_all(&list, TRUE);
- do
- {
- buf = NULL;
- rc = NetFileEnum( (LPWSTR)server,
- NULL,
- NULL, 3,
- (BYTE **) &buf, 2048, &read, &total, &resumeh );
- if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS )
- break;
- for ( i = 0, cur = buf; i < read; ++ i, ++ cur)
- {
- w = fnd_cell(&list, cur->fi3_id);
- if(!w)
- {
- wcstombs(user, (wchar_t *) cur->fi3_username, 512);
- wcstombs(path, (wchar_t *) cur->fi3_pathname, 512);
-
- w = new_wumf(cur->fi3_id, user, path, comp, UNC, sess, cur->fi3_permissions,GetFileAttributes(path));
- w->mark = FALSE;
- if(!add_cell(&list, w)){
- msg("Error memory allocation");
- return FALSE;
- };
-
- if(WumfOptions.PopupsEnabled) ShowWumfPopUp(w);
- if(WumfOptions.LogToFile) LogWumf(w);
- }
- else
- w->mark = FALSE;
- }
- if(buf != NULL) NetApiBufferFree( buf );
- } while(rc == ERROR_MORE_DATA);
- return del_marked(&list);
-};*/
-
-BOOL wumf()
-{
- LPSESSION_INFO_1 s_info = NULL;
- DWORD ent_read = 0, ent_total = 0, res_handle = 0, i = 0;
- NET_API_STATUS res = NERR_Success;
- if( (res = NetSessionEnum(NULL, NULL, NULL, 1, (LPBYTE *)&s_info, MAX_PREFERRED_LENGTH, &ent_read, &ent_total, &res_handle)) == NERR_Success ||
- res == ERROR_MORE_DATA)
- {
- mark_all(&list, TRUE);
- for(i = 0; i < ent_read; i++)
- {
- process_session(s_info[ i ]);
- }
- NetApiBufferFree(s_info);
- } else {
- printError(res);
- }
- return del_marked(&list);
-};
-
-void process_session(SESSION_INFO_1 s_info)
-{
- LPFILE_INFO_3 f_info = NULL;
- DWORD ent_read = 0, ent_total = 0, res_handle = 0, i = 0;
- NET_API_STATUS res = NERR_Success;
- if( (res = NetFileEnum(NULL, NULL, s_info.sesi1_username, 3, (LPBYTE *)&f_info, MAX_PREFERRED_LENGTH, &ent_read, &ent_total, &res_handle)) == NERR_Success ||
- res == ERROR_MORE_DATA)
- {
- for(i = 0; i < ent_read; i++)
- {
- process_file(s_info, f_info[ i ]);
- }
- NetApiBufferFree(f_info);
- } else {
- printError(res);
- }
-}
-
-void process_file(SESSION_INFO_1 s_info, FILE_INFO_3 f_info)
-{
- PWumf w = fnd_cell(&list, f_info.fi3_id);
- if(!w)
- {
- w = new_wumf(f_info.fi3_id, f_info.fi3_username, f_info.fi3_pathname, s_info.sesi1_cname, NULL, 0, f_info.fi3_permissions, GetFileAttributes(f_info.fi3_pathname));
- w->mark = FALSE;
- if(!add_cell(&list, w)){
- msg("Error memory allocation");
- };
- if(WumfOptions.PopupsEnabled) ShowWumfPopUp(w);
- if(WumfOptions.LogToFile) LogWumf(w);
- } else {
- w->mark = FALSE;
- }
-}
-
-void printError(DWORD res)
-{
- LPVOID lpMsgBuf;
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS, NULL, res, 0, (LPTSTR) &lpMsgBuf, 0, NULL );
- OutputDebugString(lpMsgBuf);
- msg(lpMsgBuf);
- LocalFree( lpMsgBuf );
-}
-
-VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
-{
- if(!wumf())
- KillTimer(NULL, 777);
-};
-
-void FreeAll()
-{
- del_all(&list);
-};