// MYMAPS.CPP - Implementation file for your Internet Server // mymaps Extension #include "stdafx.h" #include "mymaps.h" /////////////////////////////////////////////////////////////////////// // The one and only CWinApp object // NOTE: You may remove this object if you alter your project to no // longer use MFC in a DLL. CWinApp theApp; /////////////////////////////////////////////////////////////////////// // command-parsing map BEGIN_PARSE_MAP(CMymapsExtension, CHttpServer) // TODO: insert your ON_PARSE_COMMAND() and // ON_PARSE_COMMAND_PARAMS() here to hook up your commands. // For example: ON_PARSE_COMMAND(GetMap, CMymapsExtension, ITS_PSTR) ON_PARSE_COMMAND_PARAMS("State") ON_PARSE_COMMAND(Default, CMymapsExtension, ITS_EMPTY) DEFAULT_PARSE_COMMAND(Default, CMymapsExtension) END_PARSE_MAP(CMymapsExtension) /////////////////////////////////////////////////////////////////////// // The one and only CMymapsExtension object CMymapsExtension theExtension; /////////////////////////////////////////////////////////////////////// // CMymapsExtension implementation CMymapsExtension::CMymapsExtension() { } CMymapsExtension::~CMymapsExtension() { } BOOL CMymapsExtension::GetExtensionVersion(HSE_VERSION_INFO* pVer) { // Call default implementation for initialization CHttpServer::GetExtensionVersion(pVer); // Load description string TCHAR sz[HSE_MAX_EXT_DLL_NAME_LEN+1]; ISAPIVERIFY(::LoadString(AfxGetResourceHandle(), IDS_SERVER, sz, HSE_MAX_EXT_DLL_NAME_LEN)); _tcscpy(pVer->lpszExtensionDesc, sz); return TRUE; } // BOOL CMymapsExtension::TerminateExtension(DWORD dwFlags) // { // // extension is being terminated // //TODO: Clean up any per-instance resources // return TRUE; // } /////////////////////////////////////////////////////////////////////// // CMymapsExtension command handlers void CMymapsExtension::Default(CHttpServerContext* pCtxt) { StartContent(pCtxt); WriteTitle(pCtxt); *pCtxt << _T("This default message was produced by the Internet"); *pCtxt << _T(" Server DLL Wizard. Edit your CMymapsExtension::Default()"); *pCtxt << _T(" implementation to change it.\r\n"); EndContent(pCtxt); } void CMymapsExtension::GetMap(CHttpServerContext* pCtxt, LPCTSTR pstrState) { StartContent(pCtxt); WriteTitle(pCtxt); *pCtxt << "Visualize a weather map for the state of "; *pCtxt << pstrState; EndContent(pCtxt); } // Do not edit the following lines, which are needed by ClassWizard. #if 0 BEGIN_MESSAGE_MAP(CMymapsExtension, CHttpServer) //{{AFX_MSG_MAP(CMymapsExtension) //}}AFX_MSG_MAP END_MESSAGE_MAP() #endif // 0 /////////////////////////////////////////////////////////////////////// // If your extension will not use MFC, you'll need this code to make // sure the extension objects can find the resource handle for the // module. If you convert your extension to not be dependent on MFC, // remove the comments arounn the following AfxGetResourceHandle() // and DllMain() functions, as well as the g_hInstance global. /**** static HINSTANCE g_hInstance; HINSTANCE AFXISAPI AfxGetResourceHandle() { return g_hInstance; } BOOL WINAPI DllMain(HINSTANCE hInst, ULONG ulReason, LPVOID lpReserved) { if (ulReason == DLL_PROCESS_ATTACH) { g_hInstance = hInst; } return TRUE; } ****/ LPCTSTR CMymapsExtension::GetTitle() const { // TODO: Add your specialized code here and/or call the base class return "Your custom weather map"; // for browser's title window }