home *** CD-ROM | disk | FTP | other *** search
- FORMDUMP - Form Decoder and Dumper, an Internet Information Server extension
-
- NOTE: FORMDUMP has been revised from its first release
-
- This sample is a Microsoft Internet Server extension, similar to CGI
- extensions common to many internet servers. FORMDUMP illustrates how
- to write a DLL that can be used to obtain form data from a web
- browser, and also how to build a reply to the form.
-
- This version of FORMDUMP incorporates two new features useful in
- exploring how forms are submitted. The original version of FORMDUMP
- is structured into two major parts: organizing inbound data
- into a memory structure, and using that data to build a HTML page.
- This version adds a dump of the server variables as well as the
- security context in which the DLL thread runs in.
-
- HttpExtensionProc does the following:
-
- 1. Sends the header of the HTML response
- 2. Parses inbound form fields and send them back as HTML
- 3. Determines the security context in which the thread is running,
- and return the domain and user as HTML
- 4. Uses GetServerVariable to retrieve all server variables, and
- send them back as HTML
- 5. Sends the footer of the HTML resoponse
- 6. Returns control to IIS
-
- This version also adds an HtmlPrintf() function in html.h.
-
- To build this sample, you must have the Internet SDK installed,
- and the environment of your compiler properly set. A Visual C++
- 4.0 makefile is included.
-
- The following files are included in the sample:
-
- FORMDUMP.CPP - The main source file and entry point for the DLL.
-
- KEYS.CPP - A set of reusable form data decoding functions. They
- implement an interface that you can use in your own
- extension.
-
- HTML.CPP - A set of wrappers for common HTML features. These
- wrappers can also be reused.
-
- KEYS.H - The header file for the external interface
- implemented in KEYS.CPP.
-
- HTML.H - The header file for all functions available in HTML.CPP.
-
- FORMDUMP.DEF - The definition file (one is required for all Win32 DLLs).
-
- FORMDUMP.MAK - A Visual C++ 4.0 make file.
-
- MAKEFILE - A generic make file
-
-
- NOTE: The source files all have .CPP extensions, though they really don't
- rely on any C++ specific features. However, you can use C++ features,
- and if you use any of these .CPP files, you do not need extern "C".
-
- To Build the DLL
- ----------------
-
- Simply run NMAKE in the directory containing FORMDUMP.CPP, KEYS.CPP, HTML.CPP,
- and so on. You must have the multi-threaded C Runtime libraries installed,
- and your environment must point to:
-
- PATH=C:\MSTOOLS\BIN;C:\COMPILER\BIN
- INCLUDE=C:\MSTOOLS\INCLUDE;C:\INETSDK\INCLUDE
- LIB=C:\MSTOOLS\LIB
- WWWROOT=C:\INETSRV\WWWROOT
- WWWSCRIPTS=C:\INETSRV\SCRIPTS
-
- Where C:\MSTOOLS points to the Win32 SDK, C:\INETSDK points to the Internet
- SDK, and C:\COMPILER points to your C++ compiler.
-
- When setting WWWROOT and WWWSCRIPTS to your Internet Information Server
- locations, use a local or mapped drive. If you want to use UNC names, be
- careful with using a $ in the name, because NMAKE will treat it as a macro.
- If you must have a $ in the environment variable, preceed it with two
- carets (^^$) because both the command prompt and NMAKE will convert the
- caret symbol. Here is an example of how to map to \\myserver\c$:
-
- SET WWWROOT=\\myserver\C^^$\inetsrv\wwwroot
-
- Another issue is the type of C Runtimes that are linked with the ISAPI
- extension. Make sure the DLL version of the C Runtimes is installed on your
- server, in the SYSTEM32 directory. For Visual C++, the DLLs are MSVCRT40.DLL
- and MSVCR40D.DLL. If these DLLs are not available, you will see error 500
- when trying to access the DLL from a Web browser.
-