다음을 통해 공유


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
hWndpAsyncCompletion은 모두 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);  
}