--- mstools/samples/sdktools/netwatch/netwatch.c 2018/08/09 18:24:28 1.1 +++ mstools/samples/sdktools/netwatch/netwatch.c 2018/08/09 18:27:27 1.1.1.2 @@ -15,6 +15,15 @@ #include "netwatch.h" #include "rcids.h" +// Typedef for the ShellAbout function +typedef void (WINAPI *LPFNSHELLABOUT)(HWND, LPTSTR, LPTSTR, HICON); + +#ifdef DOSHAREMANAGE +// ShareManage source on \\kernel\razzle2\src\netui\shell\share +// Typedef for the ShellAbout function +typedef VOID (WINAPI *LPFNSHAREMANAGE)(HWND, TCHAR *); +#endif + WNDPROC lpfnOldLBProc; // for subclassing ListBox extern HFONT hfontLB; // for the dialog box values (bitmap.c) @@ -158,6 +167,51 @@ WndProc(HWND hwnd, UINT message, WPARAM case WM_COMMAND: switch(LOWORD(wParam)) { +#ifdef DOSHAREMANAGE + case IDM_SHAREMANAGE: + { + HMODULE hMod; + LPFNSHAREMANAGE lpfn; + + if(hMod = LoadLibrary(TEXT("ntlanman"))) + { + if(lpfn = (LPFNSHAREMANAGE)GetProcAddress(hMod, "ShareManage")) + { + (*lpfn)(hwnd, szServerName); + } + + FreeLibrary(hMod); + } + else + { + MessageBeep(MB_ICONEXCLAMATION); + } + } + break; +#endif + + case IDM_ABOUT: + { + HMODULE hMod; + LPFNSHELLABOUT lpfn; + + if(hMod = LoadLibrary(TEXT("SHELL32"))) + { + if(lpfn = (LPFNSHELLABOUT)GetProcAddress(hMod, + "ShellAboutW")) + { + (*lpfn)(hwnd, szAppName, NULL, + LoadIcon(ghInst, MAKEINTRESOURCE(IDD_ICONON))); + } + FreeLibrary(hMod); + } + else + { + MessageBeep(MB_ICONEXCLAMATION); + } + } + break; + case IDM_DELETERESOURCE: HandleWM_VKEY(hwnd, VK_DELETE); break;