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.
141 lines
3.8 KiB
141 lines
3.8 KiB
/*** funlist.h - Definitions for Function List Manager
|
|
*
|
|
* Microsoft Confidential
|
|
* Copyright (C) Microsoft Corporation 1994
|
|
* All Rights Reserved.
|
|
*
|
|
* Author:
|
|
* Benjamin W. Slivka
|
|
*
|
|
* History:
|
|
* 05-Apr-1994 bens Initial version
|
|
*
|
|
* Exported Functions:
|
|
*/
|
|
|
|
#ifndef INCLUDED_FUNLIST
|
|
#define INCLUDED_FUNLIST 1
|
|
|
|
#include "types.h"
|
|
#include "asrt.h"
|
|
#include "error.h"
|
|
|
|
|
|
typedef void * HFUNLIST; /* hfunlist - list of functions */
|
|
typedef void * HFUNCTION; /* hfun - FUNCTION handle */
|
|
|
|
|
|
/*** PFNFUNCTION - function pointer for function list
|
|
*
|
|
* This is just a generic function declaraion. The client that uses the
|
|
* function list will cast the function pointer to the correct type before
|
|
* actually calling the function.
|
|
*/
|
|
typedef void (*PFNFUNCTION)(void); /* pfnfun */
|
|
|
|
|
|
/*** FunAdd - Add a function to a function list
|
|
*
|
|
* Entry:
|
|
* hfunlist - Function list to check
|
|
* pszKey - Key value for function lookup
|
|
* pfnfun - Function pointer
|
|
* perr - ERROR structure
|
|
*
|
|
* Exit-Success:
|
|
* Returns hfun, function is added to list
|
|
*
|
|
* Exit-Failure:
|
|
* Returns NULL, cannot add function to list
|
|
* ERROR structure filled in with details of error.
|
|
*/
|
|
HFUNCTION FunAdd(HFUNLIST hfunlist,
|
|
char *pszKey,
|
|
PFNFUNCTION pfnfun,
|
|
PERROR perr);
|
|
|
|
|
|
/*** FunCreateList - Create a list of functions
|
|
*
|
|
* Entry:
|
|
* pfnfun - Function pointer for *default* function (NULL if not supplied)
|
|
* perr - ERROR structure
|
|
*
|
|
* Exit-Success:
|
|
* Returns HFUNLIST; list is created.
|
|
*
|
|
* Exit-Failure:
|
|
* Returns NULL, cannot create list; perror filled in with error.
|
|
*/
|
|
HFUNLIST FunCreateList(PERROR perr);
|
|
|
|
|
|
/*** FunDestroyList - Destroy a list of functions
|
|
*
|
|
* Entry:
|
|
* hfunlist - function list to destroy
|
|
* perr - ERROR structure
|
|
*
|
|
* Exit-Success:
|
|
* Returns TRUE; list was destroyed.
|
|
*
|
|
* Exit-Failure:
|
|
* Returns FALSE, cannot destroy list; perror filled in with error.
|
|
*/
|
|
BOOL FunDestroyList(HFUNLIST hfunlist, PERROR perr);
|
|
|
|
|
|
/*** FunFind - See if function exists
|
|
*
|
|
* Entry:
|
|
* hfunlist - Function list
|
|
* pszKey - Function key to look for (case-insensitive search)
|
|
* Pass NULL to find the default function.
|
|
* perr - ERROR structure
|
|
*
|
|
* Exit-Success:
|
|
* Returns hfun, if function exists. If key was not found, but a default
|
|
* function was supplied on the FunCreateList() call, then that default
|
|
* function is returned.
|
|
*
|
|
* Exit-Failure:
|
|
* Returns NULL, function does not exist (key not found and no default
|
|
* function was supplied on the FunCreateList() call).
|
|
* ERROR structure filled in with details of error.
|
|
*/
|
|
HFUNCTION FunFind(HFUNLIST hfunlist,
|
|
char *pszKey,
|
|
PERROR perr);
|
|
|
|
|
|
/*** FunRemove - Remove function from a function list
|
|
*
|
|
* Entry:
|
|
* hfun - function handle
|
|
*
|
|
* Exit-Success:
|
|
* Always works, since hfun is assumed to be valid.
|
|
*/
|
|
void FunRemove(HFUNCTION hfun);
|
|
|
|
|
|
/*** FunGetFunction - Get the function pointer for a particular key value
|
|
*
|
|
* Entry:
|
|
* hfunlist - Function list
|
|
* pszKey - Function key to look for (case-insensitive search)
|
|
* perr - ERROR structure
|
|
*
|
|
* Exit-Success:
|
|
* Returns hfun, if function exists. If key was not found, but a default
|
|
* function was supplied on the FunCreateList() call, then that default
|
|
* function is returned.
|
|
*
|
|
* Exit-Failure:
|
|
* Returns NULL, function does not exist (key not found and no default
|
|
* function was supplied on the FunCreateList() call).
|
|
* If an error occured, perr is filled in.
|
|
*/
|
|
PFNFUNCTION FunGetFunction(HFUNLIST hfunlist, char *pszKey);
|
|
|
|
#endif // INCLUDED_FUNLIST
|