Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

158 lines
5.3 KiB

/* htspmui.h -- data structures for user interface for security protocol modules. */
/* Jeff Hostetler, Spyglass, Inc., 1994. */
/* THIS HEADER FILE IS VISIBLE TO CLIENT AND INDIVIDUAL SPM'S. */
/* Up-call interface provided to Security Protocol Modules. */
/* Copyright (C) 1994, Spyglass, Inc. All rights reserved. */
#ifndef HTSPMUI_H
#define HTSPMUI_H
/*********************************************************************/
/** Services Offered by Client. **/
/*********************************************************************/
enum _UI_ServiceId
{
UI_SERVICE_CLIENT_ABILITIES = 0x1001UL, /* get client mode bits */
UI_SERVICE_MALLOC = 0x1003UL, /* allocate some memory */
UI_SERVICE_CALLOC = 0x1004UL, /* allocate some memory and zero it */
UI_SERVICE_FREE = 0x1005UL, /* free some memory */
UI_SERVICE_ERROR_MESSAGE = 0x1006UL, /* an error message dialog with OK button */
UI_SERVICE_DEBUG_MESSAGE = 0x1008UL, /* a debug message */
UI_SERVICE_REGISTER_PROTOCOL = 0x1009UL, /* (header) or (header,value) that spm processes */
UI_SERVICE_WINDOW_HANDLE = 0x100aUL, /* request WindowHandle to display */
UI_SERVICE_SET_URL = 0x100cUL /* let client update the url in the given request */
};
typedef enum _UI_ServiceId UI_ServiceId;
/*********************************************************************/
/** Status Codes Returned by Client. **/
/*********************************************************************/
enum _UI_StatusCode
{
UI_SC_STATUS_OK = 0x2000UL, /* also means YES */
UI_SC_STATUS_CANCEL = 0x2001UL, /* also means NO */
UI_SC_ERROR = 0x2100UL,
UI_SC_ERROR_UNKNOWN_SERVICE = 0x2101UL,
UI_SC_ERROR_UNIMPLEMENTED_SERVICE = 0x2102UL,
UI_SC_ERROR_BAD_PARAMETER = 0x2103UL,
UI_SC_ERROR_NO_MEMORY = 0x2104UL
};
typedef enum _UI_StatusCode UI_StatusCode;
#define UI_IsAnyError(e) (((unsigned long)(e) && 0x2100UL) == 0x2100UL)
/*********************************************************************/
/** Data Structures for getting Client Abilities. **/
/*********************************************************************/
typedef struct _UI_CA UI_CA;
struct _UI_CA
{
unsigned long abilities; /* bitmask. see UI_CA_ below */
};
#define UI_CA_ENVELOPING (0x00000001UL) /* does client support wrapping/unwrapping */
#define UI_CA_SHTTP_URL (0x00000002UL) /* does client support 'shttp://...' url's */
/*********************************************************************/
/** Data Structures for Set URL. **/
/*********************************************************************/
typedef struct _UI_SetUrl UI_SetUrl;
struct _UI_SetUrl
{
unsigned char * szUrl; /* new url */
HTHeader * hRequest; /* out-going request to update */
};
/*********************************************************************/
/** Data Structures for Specifying Protocol Identifiers. **/
/*********************************************************************/
typedef struct _UI_ProtocolId UI_ProtocolId;
struct _UI_ProtocolId
{
struct _HTSPM * htspm;
/* contents of string buffers will be copied by the client. */
unsigned char * szIdentHeader; /* 200/401/402 header to branch on (provided by SPM) */
unsigned char * szIdentValue; /* 200/401/402 value on header to branch on (provided by SPM) */
unsigned char * szIdentSubValue; /* 200/401/402 sub-value on header to branch on (provided by SPM) */
};
/* for example:
*
* SHTTP-foo (NULL) (NULL)
* WWW-Authenticate Basic (NULL)
* Extension Security Basic
*
*/
/*********************************************************************/
/** Prototype for Client Service Interface (up-call). **/
/*********************************************************************/
typedef UI_StatusCode (_cdecl * F_UserInterface)(void * pvOpaqueOS,
UI_ServiceId sid,
void * pvOpaqueInput,
void ** ppvOpaqueOutput);
/***************************************************************************
* Service (UI_SERVICE_) Input Output
* Return value
*------------------------- ----------------------------- ------------------
*
* CLIENT_ABILITIES UI_CA * ca
* UI_SC_STATUS_OK
* UI_SC_ERROR_BAD_PARAMETER
*
* MALLOC unsigned long *pSize void * p
* UI_SC_STATUS_OK
* UI_SC_ERROR_BAD_PARAMETER
* UI_SC_ERROR_NO_MEMORY
*
* CALLOC unsigned long *pSize void * p
* UI_SC_STATUS_OK
* UI_SC_ERROR_BAD_PARAMETER
* UI_SC_ERROR_NO_MEMORY
*
* FREE void * p NONE
* UI_SC_STATUS_OK
*
* ERROR_MESSAGE unsigned char * szMsg NONE
* UI_SC_STATUS_OK
*
* DEBUG_MESSAGE unsigned char * szMsg NONE
* UI_SC_STATUS_OK
*
* REGISTER_PROTOCOL UI_ProtocolId * pPI NONE
* UI_SC_STATUS_OK
* UI_SC_ERROR_BAD_PARAMETER
*
* WINDOW_HANDLE unsigned long * bGet UI_WindowHandle *
* UI_SC_STATUS_OK
*
* SET_URL UI_SetUrl * su NONE
* UI_SC_STATUS_OK
*
*********************************************************************/
#endif /* HTSPMUI_H */