GetAppcConfig
GetAppcConfig 함수는 특정 로컬 LU가 연결할 수 있는 원격 시스템을 검색하기 위한 비동기 진입점을 제공합니다.
구문
HANDLE WINAPI GetAppcConfig(
HANDLE hWnd,
LPSTR pLocalLu,
LPSTR pMode,
LPINT pNumRemLu,
INT iMaxRemLu,
PSTR pRemLu,
LPINT pAsyncRetCode
);
매개 변수
hWnd
제공된 매개 변수입니다. 호출이 완료될 때 비동기 완료 메시지를 받을 창의 핸들을 포함합니다. null이 아닌 경우 완료 메시지가 이 창 핸들에 게시됩니다. 이 경우 pAsyncRetCode (마지막 매개 변수)는 null이어야 합니다. 비동기 메시지 완성은 Windows 애플리케이션에서 이 함수를 사용하는 데 권장되는 방법입니다.
pLocalLu
제공된 매개 변수입니다. 정보가 반환되는 로컬 LU 이름을 포함하는 버퍼의 주소를 지정합니다. 이 로컬 LU 이름은 다음과 같이 지정해야 합니다.
비패드
Null 종료됨
ASCII 문자열
최대 길이 8바이트(종결자 제외)
사용자의 기본 로컬 LU를 사용하도록 요청하려면 버퍼에 8개의 공백과 null이 있어야 합니다.
Pmode
제공된 매개 변수입니다. 정보가 반환되는 모드 이름을 포함하는 버퍼의 주소를 지정합니다. Microsoft Host Integration Server에서 이 매개 변수는 사용되지 않지만 이전 버전의 SNA Server와의 호환성을 위해 다음과 같이 모드 이름을 지정해야 합니다.비패드
Null 종료됨
ASCII 문자열
최대 길이 8바이트(종결자 제외)
pNumRemLu
제공된 매개 변수입니다. 함수가 완료될 때 pRemLu 로 지정된 버퍼가 모든 원격 RU를 수용할 수 있을 만큼 큰 경우 반환된 원격 RU 수를 포함하는 정수 변수의 주소를 지정합니다.iMaxRemLu
제공된 매개 변수입니다. pRemLu로 표시된 버퍼에서 보유할 수 있는 원격 LU 이름의 수를 지정합니다.pRemLu
제공된 매개 변수입니다. 함수가 완료된 후 원격 LU 이름을 보유할 버퍼의 주소를 지정합니다. 정보는 문자열 배열로 반환됩니다. 각 원격 LU 이름은 다음과 같이 버퍼에 저장됩니다.비패드
Null 종료됨
ASCII 문자열
최대 길이 8바이트(종결자 제외)
문자열은 버퍼에서 9바이트마다 시작되므로(pRemLu + (i-1)*9)는 ith문자열의 시작을 제공합니다. 버퍼가 너무 작아서 모든 이름을 보유할 수 없는 경우 iMaxRemLu 문자열만 반환됩니다.
pAsyncRetCode
제공된 매개 변수입니다. 제공된 주소가 null이 아닌 경우 이 함수의 반환 코드를 저장하는 데 사용되는 정수 변수의 주소를 지정합니다. 반환 코드는 비동기 완료 메시지에서 반환된 코드와 동일합니다. 호출이 완료되는 동안 이 변수의 값은 APPC_CFG_PENDING. 이 비동기 호출이 완료되면 이 변수의 값에는 APPC_CFG_PENDING 이외의 일부 반환 코드가 포함됩니다.이 변수는 창 핸들에 대한 비동기 메시지 완성이 사용되지 않는 경우 완료를 위해 폴링하는 데 사용됩니다.
pAsyncRetCode를 사용하는 경우 hWnd는 null이어야 합니다.
반환 값
즉시 반환 값의 의미는 비동기 요청이 수락되었는지 여부에 따라 달라집니다. 수용을 테스트하려면 식을 평가합니다.
(<반환된 핸들> & APPC_CFG_SUCCESS)
식이 FALSE이면 요청이 거부되었습니다. 반환 값은 다음 목록의 동기 반환 코드 중 하나입니다. 식이 TRUE이면 요청이 수락되었으며 다음 사례 중 하나가 적용됩니다.
hWnd가 null이 아닌 경우 완료 메시지가 다음 형식으로 도착합니다.
메시지 매개 변수 Description hWnd 대상 창의 핸들입니다. 이 값은 초기 호출 시 hWnd 에 전달된 값과 동일합니다. uMsg RegisterWindowMessage 호출에서 반환된 번호와 일치하며 WinAppcCfg는 식별 문자열로 사용됩니다. 이 문자열은 #define WIN_APPC_CFG_COMPLETION_MSG 사용할 수 있습니다. wParam 초기 호출에서 반환된 HANDLE과 일치 합니다 . 상관 관계로 사용됩니다. lParam 다음 목록의 비동기 반환 코드 중 하나를 포함합니다. pAsyncRetCode가 null이 아닌 경우 지정된 정수 변수가 APPC_CFG_PENDING 설정됩니다. 이 함수가 비동기적으로 완료되면 해당 값이 아래에 나열된 비동기 반환 코드 중 하나로 변경됩니다.
동기 반환 코드
APPC_CFG_ERROR_NO_APPC_INIT
GetAppcConfig를 호출하기 전에 WinAPPCStartup을 호출하여 Windows APPC 라이브러리를 초기화해야 하며 이 작업은 수행되지 않았습니다.
APPC_CFG_ERROR_INVALID_HWND
hWnd에 전달된 핸들은 null이 아니지만 유효한 창 핸들이 아닙니다.
APPC_CFG_ERROR_BAD_POINTER
hWnd 매개 변수는 null로, pAsyncRetCode가 가리키는 정수 변수를 설정하여 완료 신호를 받았지만 pAsyncRetCode가 유효한 포인터가 아님을 나타냅니다.
APPC_CFG_ERROR_UNCLEAR_COMPLETION_MODE
hWnd 및 pAsyncCompletion은 모두 null이 아니므로 GetAppcConfig에서 완료 신호를 보낼 방법을 결정할 수 없습니다.
APPC_CFG_ERROR_TOO_MANY_REQUESTS
GetAppcConfig 호출이 이미 너무 많이 처리되고 있습니다(현재 16개의 요청이 미해결 상태임). 지연 후 호출을 다시 시도합니다. Microsoft Windows 버전 3의 경우 x 시스템, 이 기간 동안 양보해야 합니다.
APPC_CFG_ERROR_GENERAL_FAILURE
시스템 특성으로 인해 예기치 않은 오류가 발생했습니다.
비동기 반환 코드
APPC_CFG_SUCCESS_NO_DEFAULT_REMOTE
구성 정보가 검색되었으며 기본 원격 LU가 정의되지 않았거나 지정된 로컬 LU에서 액세스할 수 없습니다.
APPC_CFG_SUCCESS_DEFAULT_REMOTE
구성 정보가 검색되었으며 지정된 로컬 LU에서 액세스할 수 있는 기본 원격 LU가 있습니다.
APPC_CFG_ERROR_NO_DEFAULT_LOCAL_LU
기본 로컬 LU와 파트너 관계를 맺고 있는 원격 RU를 검색하려고 했지만 기본 로컬 LU가 구성되지 않았습니다.
APPC_CFG_ERROR_BAD_LOCAL_LU
지정된 로컬 LU가 구성되지 않았거나 호출 동사에 대해 유효하지 않습니다.
APPC_CFG_ERROR_GENERAL_FAILURE
시스템 특성으로 인해 예기치 않은 오류가 발생했습니다.
설명
GetAppcConfig를 사용하기 전에 WinAPPCStartup을 호출해야 합니다.
오류 코드가 성공 또는 실패를 나타내는지 여부는 성공 여부를 테스트하기 위해 (RetCode&APPC_CFG_SUCCESS ) 또는 실패를 테스트하기 위해 (RetCode&APPC_CFG_FAILURE )를 평가하여 결정할 수 있습니다.
다음 코드 조각은 콘솔 애플리케이션이 완료를 테스트하는 방법을 보여줍니다.
while (*pAsyncRetCode == APPC_CFG_PENDING)
{
sleep(250);
}