home *** CD-ROM | disk | FTP | other *** search
- #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*/
-