mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Adam
b4a8d373d8
|
4 years ago | |
---|---|---|
.. | ||
autowrap.c | 4 years ago | |
autowrap.h | 4 years ago | |
autowrap.pjt | 4 years ago | |
autowrap.rc | 4 years ago | |
makefile | 4 years ago | |
makefile.tpl | 4 years ago | |
readme.tpl | 4 years ago | |
readme.txt | 4 years ago | |
scan.c | 4 years ago | |
scan.h | 4 years ago | |
sources | 4 years ago | |
sources.tpl | 4 years ago | |
wapic.tpl | 4 years ago | |
wapidef.tpl | 4 years ago | |
wapih1.tpl | 4 years ago | |
wrapaxp.tpl | 4 years ago | |
wrapi386.tpl | 4 years ago | |
wrapmips.tpl | 4 years ago | |
wrapperh.tpl | 4 years ago | |
wrapppc.tpl | 4 years ago | |
wrapprc1.tpl | 4 years ago | |
wrapprc2.tpl | 4 years ago | |
wrapprc3.tpl | 4 years ago |
readme.txt
Auto Wrapper
------------
Given a DLL automagically provide a "Wrapper" for the entry points that it
exports. This means provide some means for another application to do something
before and after the API being "wrapped."
AutoWrap is designed to require no user interaction to create a DLL that will
allow the building of an "empty" wrapper DLL. Once this wrapper shell has been
produced code can be written to define user action to be taken in three places:
DLL load time
Prior to a wrapped API call
Following a wrapped API call
This is done through the user filling out the definition of three API that are
placed in WAPI.C. The first time that AutoWrap is run a template WAPI.C will
be produced that looks like this:
/*
** WAPI.C
**
** This file was created by AutoWrap
**
*/
#include "wrapper.h"
#include "wapi.h"
/*
** WrapperInit
**
** This is the DLL entry point. It will be called whenever this DLL is
** linked to. For more information on what can be done in this function
** see DllEntryPoint in the Win32 API documentation.
**
*/
BOOL WrapperInit( HINSTANCE hInst, DWORD dwReason, LPVOID lpReserved )
{
return TRUE ;
}
/*
** APIPrelude
**
** This routine is called each time that an API is going to be called.
**
** Returns: FALSE causes the API NOT to be called
** TRUE the API is called
**
*/
BOOL APIPrelude( PAPICALLDATA pData )
{
// TO DO: Place any work you wish done BEFORE an API call here.
return TRUE ;
}
/*
** APIPostlude
**
** This routine is called each time an API call returns.
**
** Returns: the value you wish returned from the API call
**
*/
RETVAL APIPostlude( PAPICALLDATA pData )
{
// TO DO: Place any work you wish done AFTER an API call here.
return pData->Ret ;
}
/* AUTOWRAP EOF */
User interface
--------------
Auto Wrapper is a command line utility. It is run from the directory that you
wish to be the root of your new wrapper DLL. THe command line is:
AUTOWRAP <-u> dll-name
-u Update - do not regenerate WAPI.C
Wrapper files are only created if they do not allready exist.
Project Files
-------------
Scan.c This is the DLL entrypoint scanning code.
Autowrap.c Main program, cmdline interface, parser/template expansion
*.tpl Templates.
A note on templates. The templates are stored as strings. There is a
string table in Autowrap.C that is created by including the
appropriate *.tpl files. These files are thus limited by C string
constraints. There is a string length limit. This is why some of the
templates are broken up into multiple files. This is also the
explanation as to why each line ends with \n\ and the fiels begin
and end with double quates.
The expansion formats for the templates are documented in the comments
for the ExpandTo and ExpandLineTo functions in Autowrap.c
The Template files:
makefile.tpl Produces makefile
readme.tpl Produces readme.txt
sources.tpl Produces Sources
wapic.tpl <outputname>.c
wapidef.tpl *\<outputname>.def
wapih1.tpl *\wapi.h
wrapperh.tpl wrapper.h
wrapaxp.tpl alpha\wrapem.s
wrapi386.tpl i386\wrapem.asm
wrapmips.tpl mips\wrapem.s
wrapppc.tpl ppc\wrapem.s
wrapprc1.tpl wrapper.c
wrapprc2.tpl "
wrapprc3.tpl "
Output Files
------------
Auto Wrapper produces the following files:
DO NOT MODIFY THESE FILES
*\WrapHelp.[Asm,S] Wrapper Internals
WrapFunc.C Wrapper Internals
Wrapper.H Wrapper Header File - prototypes, structures.
Wrapper.INC Wrapper Internal Assembly Include Header File
WAPI.MAC Generated assembly language wrapper file
*\WAPI.DEF Generated module definition file
<dll-name>.API Generated list of Wrapper IDs and API names
WAPI.H Generated Table mapping Wrapper IDs to API names
DO NOT MODIFY THE ABOVE FILES
Sources Sources file for Build
WAPI.C Your WrapperInit, APIProlog and APIEpilog implementation