IPchkMgr.cpp
资源名称:warftpd.zip [点击查看]
上传用户:surprise9
上传日期:2007-01-04
资源大小:426k
文件大小:4k
源码类别:
Ftp客户端
开发平台:
Visual C++
- // IPchkMgr.cpp : Defines the initialization routines for the DLL.
- //
- #include "stdafx.h"
- #include <afxdllx.h>
- #include "WarClient.h"
- #include "resource.h"
- #include "IPextDlg.h"
- #include "IPShitlistUserTab.h"
- #include "UserDialog.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- static AFX_EXTENSION_MODULE IPchkMgrDLL = { NULL, NULL };
- BOOL GetUserOptionTab(CUserDialog *pUserDlg, CWnd *pFatherWnd, CWarUserDlgTemplate **Ptr);
- extern "C" int APIENTRY
- DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
- {
- if (dwReason == DLL_PROCESS_ATTACH)
- {
- TRACE0("IPCHKMGR.DLL Initializing!n");
- // Extension DLL one-time initialization
- AfxInitExtensionModule(IPchkMgrDLL, hInstance);
- // Insert this DLL into the resource chain
- new CDynLinkLibrary(IPchkMgrDLL);
- }
- else if (dwReason == DLL_PROCESS_DETACH)
- {
- TRACE0("IPCHKMGR.DLL Terminating!n");
- }
- return 1; // ok
- }
- // Daemon properties tab
- // Add the dialog to the tab... Event is the server Option number
- CIPextDlg *pDaemonTab;
- int QueryForDaemonPropertyPage(int Event, WPARAM wParam, LPARAM lParam)
- {
- CRemoteInterface *pRemote = (CRemoteInterface *)wParam;
- CPropertySheet *pSheet = (CPropertySheet *) lParam;
- pDaemonTab = new CIPextDlg;
- if (pSheet)
- {
- pDaemonTab->COptions::Create((LPVOID)pRemote, NULL, "IPchkExt", Event);
- pDaemonTab->LoadAll();
- pSheet->AddPage(pDaemonTab);
- }
- return 0; // ignored
- }
- int SaveDaemonPropertyPage(int Event, WPARAM wParam, LPARAM lParam)
- {
- if (pDaemonTab)
- pDaemonTab->SaveAll();
- return 0; // ignored
- }
- int ReleaseDaemonPropertyPage(int Event, WPARAM wParam, LPARAM lParam)
- {
- if (pDaemonTab)
- {
- delete pDaemonTab;
- pDaemonTab = NULL;
- }
- return 0; // ignored
- }
- //////////////////////////////////////////////////////////////////////////////////
- // User dialog options tab. This is a 'normal' dialog, assigned to a 'tab number'.
- // Some of the option tabs are handled by CUserDialog itself, others
- // by plugins. The dialog must be derived from CWarUserDlgTemplate.
- //
- // The entry point will increment a tab counter and add information about
- // the dialog to the CUserDialog::m_DlgPlugins linked list.
- // The dialog object must be created and initialized by the
- // function GetUserOptionTab(CUserDialog *, CWnd *).
- // It will be deleted after use by the CUserDialog itself.
- //
- // One dll can add 0 - n option tabs by it's own choise. But if more than
- // one tab is used, it must have several GetUserOptionTab() functions,
- // with different names. The pointer to the function is initialized by
- // QueryUserDlgTabs() so this will not cause any problems. The name of
- // GetUserOptionTab is not looked up by the framework.
- // The only export function in the user option tab subsystem is
- // QueryUserDlgTabs()
- int QueryUserDlgTabs(int Event, WPARAM wParam, LPARAM lParam)
- {
- int *pTabNum = (int *)wParam; // First free tab number
- CUserDialog *pUserDlg = (CUserDialog *)lParam;
- CString cBuf;
- CDllTab *pDLLtab = new CDllTab;
- pDLLtab->m_Num = *pTabNum;
- pDLLtab->m_GetDlg = GetUserOptionTab;
- pUserDlg->m_DlgPlugins.AddLast((LPVOID)pDLLtab);
- *pTabNum = *pTabNum + 1; // Increment tab number
- // Create the tab entry in the user dialog
- TC_ITEM tI;
- tI.mask = TCIF_TEXT | TCIF_PARAM;
- tI.pszText = (LPSTR)LoadString(IDS_IPSEC_TABNAME, cBuf);
- tI.cchTextMax = cBuf.GetLength();
- tI.lParam = pDLLtab->m_Num;
- pUserDlg->m_Tab1.InsertItem(pDLLtab->m_Num, &tI);
- return 0; // Always return 0
- }
- // Our own function to create and initialize an option tab
- BOOL GetUserOptionTab(CUserDialog *pUserDlg, CWnd *pFatherWnd, CWarUserDlgTemplate **Ptr)
- {
- CIPShitlistUserTab *pTab = new CIPShitlistUserTab;
- // This is _requiered_!
- pTab->m_pUserDlg = pUserDlg;
- // Create the dialog
- if (pTab->Create(CIPShitlistUserTab::IDD, pFatherWnd))
- {
- // Set the pointer to point at the dialog. This pointer is
- // used by the framework to access the dialog.
- *Ptr = pTab;
- return TRUE;
- }
- return FALSE;
- }