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.
280 lines
9.8 KiB
280 lines
9.8 KiB
//
|
|
// PerlEz.h
|
|
//
|
|
// (c) 1998-2000 ActiveState Tool Corp. All rights reserved.
|
|
//
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
DECLARE_HANDLE(PERLEZHANDLE);
|
|
|
|
enum
|
|
{
|
|
plezNoError = 0, // success
|
|
plezMoreSpace, // more space need to return result
|
|
plezError, // returned error string in buffer
|
|
plezErrorMoreSpace, // more space need to return error message
|
|
plezErrorBadFormat, // format string is invalid
|
|
plezException, // function call caused an exception
|
|
plezInvalidHandle, // hHandle was invalid
|
|
plezCallbackAlreadySet, // second call to PerlEzSetMagicFunction fails
|
|
plezInvalidParams, // invalid parameter was passed to a routine
|
|
plezOutOfMemory, // cannot allocate more memory
|
|
};
|
|
|
|
|
|
PERLEZHANDLE APIENTRY PerlEzCreate(LPCSTR lpFileName, LPCSTR lpOptions);
|
|
// Description:
|
|
// Creates a Perl interpreter. The return value is required parameter
|
|
// for all subsequent ‘PerlEz’ calls. Multiple interpreters can be created,
|
|
// but only one will be executing at a time.
|
|
// Call PerlEzDelete to release this handle.
|
|
//
|
|
// Parameters:
|
|
// lpFileName a pointer to a ASCIIZ string that is the name of a file; can be NULL
|
|
// lpOptions a pointer to a ASCIIZ string that are the command line options that
|
|
// will be provided before the script; can be NULL.
|
|
// This parameter is used for setting @INC or debugging.
|
|
//
|
|
// Returns:
|
|
// A non zero handle to a Perl interpreter if successful; zero otherwise.
|
|
|
|
|
|
PERLEZHANDLE APIENTRY PerlEzCreateOpt(LPCSTR lpFileName, LPCSTR lpOptions, LPCSTR lpScriptOpts);
|
|
// Description:
|
|
// Creates a Perl interpreter. The return value is required parameter
|
|
// for all subsequent ‘PerlEz’ calls. Multiple interpreters can be created,
|
|
// but only one will be executing at a time.
|
|
// Call PerlEzDelete to release this handle.
|
|
//
|
|
// Parameters:
|
|
// lpFileName a pointer to a ASCIIZ string that is the name of a file; can not be NULL
|
|
// lpOptions a pointer to a ASCIIZ string that are the command line options that
|
|
// will be provided before the script; can be NULL.
|
|
// This parameter is used for setting @INC or debugging.
|
|
// lpScriptOpts a pointer to a ASCIIZ string that are the command line options to be
|
|
// passed to the script.
|
|
//
|
|
// Returns:
|
|
// A non zero handle to a Perl interpreter if successful; zero otherwise.
|
|
|
|
|
|
BOOL APIENTRY PerlEzDelete(PERLEZHANDLE hHandle);
|
|
// Description:
|
|
// Deletes a previously created Perl interpreter.
|
|
// Releases all resources allocated by PerlEzCreate.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
//
|
|
// Returns:
|
|
// True if no error false otherwise.
|
|
|
|
|
|
int APIENTRY PerlEzEvalString(PERLEZHANDLE hHandle, LPCSTR lpString, LPSTR lpBuffer, DWORD dwBufSize);
|
|
// Description:
|
|
// Evaluates the string a returns the result in lpBuffer.
|
|
// If there is an error $! is returned in lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpString a pointer to the ASCIIZ string to evaluate
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
|
|
|
|
int APIENTRY PerlEzCall1(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPSTR lpBuffer, DWORD dwBufSize, LPCSTR lpFormat, LPVOID lpVoid);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// lpVoid a pointer to a parameter will be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
int APIENTRY PerlEzCall2(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPSTR lpBuffer, DWORD dwBufSize,
|
|
LPCSTR lpFormat, LPVOID lpVoid1, LPVOID lpVoid2);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// lpVoid1...2 pointers to parameters that will be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
int APIENTRY PerlEzCall4(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPSTR lpBuffer, DWORD dwBufSize,
|
|
LPCSTR lpFormat, LPVOID lpVoid1, LPVOID lpVoid2, LPVOID lpVoid3, LPVOID lpVoid4);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// lpVoid1...4 pointers to parameters that will be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
int APIENTRY PerlEzCall8(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPSTR lpBuffer, DWORD dwBufSize,
|
|
LPCSTR lpFormat, LPVOID lpVoid1, LPVOID lpVoid2, LPVOID lpVoid3, LPVOID lpVoid4,
|
|
LPVOID lpVoid5, LPVOID lpVoid6, LPVOID lpVoid7, LPVOID lpVoid8);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// lpVoid1...8 pointers to parameters that will be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
int APIENTRY PerlEzCall(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPSTR lpBuffer, DWORD dwBufSize, LPCSTR lpFormat, ...);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// ... parameters to be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
int APIENTRY PerlEzCallContext(PERLEZHANDLE hHandle, LPCSTR lpFunction, LPVOID lpContextInfo,
|
|
LPSTR lpBuffer, DWORD dwBufSize, LPCSTR lpFormat, ...);
|
|
// Description:
|
|
// Calls the function lpFunction and returns the result in the buffer lpBuffer.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpFunction a pointer name of the function to call
|
|
// lpContextInfo context info for magic fetch and store functions
|
|
// lpBuffer a pointer to the buffer where the result will be placed
|
|
// dwBufSize the size in bytes of the space where lpBuffer points
|
|
// lpFormat a pointer to the parameter specifier; can be NULL.
|
|
// ... parameters to be interpreted based on lpFormat
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
// plezErrorBadFormat
|
|
|
|
|
|
typedef LPCSTR (*LPFETCHVALUEFUNCTION)(LPVOID, LPCSTR);
|
|
typedef LPCSTR (*LPSTOREVALUEFUNCTION)(LPVOID, LPCSTR,LPCSTR);
|
|
|
|
int APIENTRY PerlEzSetMagicScalarFunctions(PERLEZHANDLE hHandle, LPFETCHVALUEFUNCTION lpfFetch, LPSTOREVALUEFUNCTION lpfStore);
|
|
// Description:
|
|
// Sets the call back function pointers for magic scalar variables.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// lpfFetch a pointer to the call back function for fetching a string
|
|
// if lpfFetch is NULL, then the scalar is write only
|
|
// lpfStore a pointer to the call back function for storinging a string
|
|
// if lpfStore is NULL, then the scalar is read only
|
|
//
|
|
// if lpfFetch and lpfStore are both NULL, then it is an error
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezCallbackAlreadySet
|
|
// plezInvalidParams
|
|
|
|
|
|
int APIENTRY PerlEzSetMagicScalarName(PERLEZHANDLE hHandle, LPCSTR pVariableName);
|
|
// Description:
|
|
// Creates the variable if it does not exists and sets it to be tied to
|
|
// the call back function pointer for magic variables.
|
|
//
|
|
// Parameters:
|
|
// hHandle a handle returned by the call to PerlEzCreate
|
|
// pVariableName a pointer to the name of the variable
|
|
//
|
|
// Returns:
|
|
// A zero if no error; otherwise error code.
|
|
//
|
|
// Possible Error returns
|
|
// plezException
|
|
// plezInvalidHandle
|
|
// plezErrorMoreSpace
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|