This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/Borland/BCC55/Include/appccfg.h

175 lines
13 KiB
C

#pragma option push -b -a8 -pc -A- /*P_O_Push*/
/*****************************************************************************/
/* */
/* Header: appccfg.h */
/* */
/* (C) COPYRIGHT Data Connection Ltd 1993 */
/* (C) COPYRIGHT Microsoft Corp. 1993 */
/* */
/* Header for appccfg.c */
/* */
/*****************************************************************************/
/* ---- 14/05/93 CD Initial coding */
/*****************************************************************************/
/*****************************************************************************/
/* */
/* HANDLE WINAPI GetAppcConfig( HANDLE hWnd, LPSTR pLocalLu, LPSTR pMode, */
/* LPINT pNumRemLu, INT iMaxRemLu, LPSTR pRemLu,*/
/* LPINT pAsyncRetCode) */
/* */
/* Parameters */
/* ---------- */
/* */
/* IN hWnd Handle of window to which completion is to be posted. */
/* If NULL no completion message will be posted but */
/* pAsyncRetCode must be valid. If hWnd is non-NULL it */
/* must be valid & pAsyncRetCode must be NULL. */
/* */
/* IN pLocalLU Pointer to max 8 byte ASCII local LU name (should be 8 */
/* ASCII blanks to request info on Remote LUs partnered */
/* to the default Local LU for this user. If none is */
/* configured then APPC_CFG_ERROR_NO_DEFAULT_LOCAL will */
/* be returned in the LPARAM). */
/* */
/* IN pMode Pointer to max 8 byte ASCII mode name (usually */
/* "QPCSUPP" for a 5250 emulator) */
/* */
/* IN/OUT pNumRemLu Pointer to int to receive the number of Remote LUs */
/* available. (If more than MaxRemLu then only the first */
/* MaxRemLu of them will have been copied) */
/* */
/* IN iMaxRemLu Int giving the max number of Remote LU names the */
/* buffer can hold. (size of buffer in bytes / 9) */
/* */
/* IN/OUT pRemLu Pointer to buffer to receive Remote LUs */
/* The data will be returned as an array of max 8 byte */
/* ASCII strings each followed by a terminating NULL */
/* */
/* IN/OUT pAsyncRetCode */
/* Optional pointer to int to take the RetCode on */
/* completion of the async part of the call. Only */
/* required if hWnd is NULL. If the request is not */
/* accepted the value in AsyncRetCode is undefined. */
/* It the request was accepted then until the request is */
/* completed AsyncRetCode will contain the value */
/* APPC_CFG_PENDING. Final values are as in the LPARAM of */
/* the completion message. If hWnd != NULL, pAsyncRetCode */
/* must be NULL. */
/* */
/* */
/* Returns */
/* ------- */
/* */
/* On Call */
/* ------- */
/* HANDLE This VerbId will be returned in the WPARAM of any completion */
/* message. (VerbId & APPC_CFG_SUCCESS) evaluates to TRUE if the */
/* request was accepted. */
/* */
/* If the above expression evaluates to FALSE then VerbId will */
/* have one of the following values: */
/* */
/* APPC_CFG_ERROR_NO_APPC_INIT */
/* APPC_CFG_ERROR_INVALID_HWND */
/* APPC_CFG_ERROR_BAD_POINTER */
/* APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE */
/* APPC_CFG_ERROR_TOO_MANY_REQUESTS */
/* APPC_CFG_ERROR_GENERAL_FAILURE */
/* */
/* */
/* */
/* On Receipt of completion message */
/* -------------------------------- */
/* MSG Equal to return from RegisterWindowMessage with */
/* WIN_APPC_CFG_COMPLETION_MSG passed as message name. */
/* */
/* WPARAM VerbId returned on the initiating call. */
/* */
/* LPARAM Retcode which will be one of the following: */
/* */
/* APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE */
/* APPC_CFG_SUCCESS_DEFAULT_REMOTE */
/* */
/* APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU */
/* APPC_CFG_ERROR_BAD_LOCAL_LU */
/* APPC_CFG_ERROR_GENERAL_FAILURE */
/* */
/* (Retcode & APPC_CFG_ERROR) evaluates to TRUE for an error retcode */
/* (Retcode & APPC_CFG_SUCCESS) evaluates to TRUE for a success retcode */
/* */
/* */
/* */
/* Comments */
/* -------- */
/* This call attempts to get all the remote systems (partner LUs) which can */
/* be accessed by the logged on user with the given local LU and mode name. */
/* The final retcode also indicates if there is a default remote system */
/* configured. */
/* */
/* Completion will either be signified by the posting of a completion */
/* message or by the change of *pAsyncRetCode to a value other than */
/* APPC_CFG_PENDING. The latter mechanism is intended for use by console */
/* apps with no windows or on non-Windows platforms. Completion can then */
/* be tested by code similar to the below: */
/* */
/* while (*pAsyncRetCode == APPC_CFG_PENDING) */
/* { */
/* sleep(250); */
/* } */
/* */
/* Note that one of hWnd & pAsyncRetCode must be NULL and the other valid. */
/* If this isn't the case APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE will be */
/* returned. */
/* */
/* All strings are null terminated and are NOT space padded */
/* */
/* If the buffer is too short, the reported number of remote LU's available */
/* MAY be GREATER than the actual number. (This will only be the case where */
/* a particular Local Lu is configured at multiple nodes, and has the */
/* remote on multiple nodes.) When the call is made again which a buffer */
/* large enough to take all the remote LU, the reported number will be */
/* correct. */
/* */
/* ALL MEMORY TO WHICH POINTERS ARE PASSED MUST REMAIN VALID TILL A */
/* COMPLETION MESSAGE IS RECEIVED */
/* */
/* WinAPPCStartup MUST be called first */
/* */
/*****************************************************************************/
/*****************************************************************************/
/* Entry point prototype */
/*****************************************************************************/
extern HANDLE WINAPI GetAppcConfig( HANDLE hWnd, LPSTR pLocalLu, LPSTR pMode,
LPINT pNumRemLu, INT iMaxRemLu, LPSTR pRemLu,
LPINT pAsyncRetCode);
/*****************************************************************************/
/* Completion Message Name */
/*****************************************************************************/
#define WIN_APPC_CFG_COMPLETION_MSG "WinAppcCfg"
/*****************************************************************************/
/* Test values */
/*****************************************************************************/
#define APPC_CFG_SUCCESS 0x1000
#define APPC_CFG_ERROR 0x2000
#define APPC_CFG_PENDING 0xFFFF
/*****************************************************************************/
/* Retcodes */
/*****************************************************************************/
#define APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE (APPC_CFG_SUCCESS + 1)
#define APPC_CFG_SUCCESS_DEFAULT_REMOTE (APPC_CFG_SUCCESS + 2)
#define APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU (APPC_CFG_ERROR + 1)
#define APPC_CFG_ERROR_BAD_LOCAL_LU (APPC_CFG_ERROR + 2)
#define APPC_CFG_ERROR_GENERAL_FAILURE (APPC_CFG_ERROR + 3)
#define APPC_CFG_ERROR_INVALID_HWND (APPC_CFG_ERROR + 4)
#define APPC_CFG_ERROR_BAD_POINTER (APPC_CFG_ERROR + 5)
#define APPC_CFG_ERROR_TOO_MANY_REQUESTS (APPC_CFG_ERROR + 6)
#define APPC_CFG_ERROR_NO_APPC_INIT (APPC_CFG_ERROR + 7)
#define APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE (APPC_CFG_ERROR + 8)
#pragma option pop /*P_O_Pop*/