다음을 통해 공유


lineInitialize 함수(tapi.h)

lineInitialize 함수는 사용되지 않습니다. API 버전 1.3 및 1.4를 사용하는 애플리케이션과의 이전 버전과의 호환성을 위해 Tapi.dll 및 Tapi32.dll 계속 내보냅니다.

API 버전 2.0 이상을 사용하는 애플리케이션은 lineInitializeEx 를 대신 사용해야 합니다.

TAPI 버전 1.4 이하의 경우: lineInitialize 함수는 줄 추상화의 후속 사용을 위해 애플리케이션의 Tapi.dll 사용을 초기화합니다. 함수는 애플리케이션의 지정된 알림 메커니즘을 등록하고 애플리케이션에서 사용할 수 있는 줄 디바이스 수를 반환합니다. 선 디바이스는 TAPI의 줄 접두사 함수에 대한 구현을 제공하는 모든 디바이스입니다.

구문

LONG lineInitialize(
  LPHLINEAPP   lphLineApp,
  HINSTANCE    hInstance,
  LINECALLBACK lpfnCallback,
  LPCSTR       lpszAppName,
  LPDWORD      lpdwNumDevs
);

매개 변수

lphLineApp

TAPI에 대한 애플리케이션의 사용 핸들로 채워진 위치에 대한 포인터입니다.

hInstance

클라이언트 애플리케이션 또는 DLL의 인스턴스 핸들입니다.

lpfnCallback

회선 디바이스, 주소 또는 호출에서 상태 및 이벤트를 확인하기 위해 호출되는 콜백 함수의 주소입니다. 자세한 내용은 lineCallbackFunc를 참조하세요.

lpszAppName

표시 가능한 문자만 포함하는 null로 끝나는 텍스트 문자열에 대한 포인터입니다. 이 매개 변수가 NULL이 아니면 애플리케이션에 대한 애플리케이션 제공 이름을 포함합니다. 이 이름은 LINECALLINFO 구조에 제공되어 사용자에게 친숙한 방식으로 애플리케이션이 시작되었거나 원래 호출을 수락하거나 응답했음을 나타냅니다. 이 정보는 호출 로깅 목적에 유용할 수 있습니다. lpszAppNameNULL인 경우 애플리케이션의 파일 이름이 대신 사용됩니다.

lpdwNumDevs

DWORD 크기의 위치에 대한 포인터입니다. 이 요청이 성공적으로 완료되면 이 위치는 애플리케이션에서 사용할 수 있는 라인 디바이스의 수로 채워집니다.

반환 값

요청이 성공하면 0을 반환하고 오류가 발생하면 음수 오류 번호를 반환합니다. 가능한 반환 값은 다음과 같습니다.

LINEERR_INVALAPPNAME, LINEERR_OPERATIONFAILED, LINEERR_INIFILECORRUPT, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_REINIT, LINEERR_NODRIVER, LINEERR_NODEVICE, LINEERR_NOMEM, LINEERR_NOMULTIPLEINSTANCE.

설명

LINEERR_REINIT 반환되고 TAPI 다시 초기화가 요청된 경우(예: 전화 통신 서비스 공급자를 추가하거나 제거한 결과) lineInitialize 요청은 마지막 애플리케이션이 API 사용을 종료할 때까지( lineShutdown 사용) 이 오류로 거부됩니다. 이때 새 구성이 적용되고 애플리케이션이 다시 한 번 lineInitialize를 호출할 수 있습니다. LINEERR_INVALPARAM 오류 값이 반환되면 지정된 hInstance 매개 변수가 잘못되었습니다.

애플리케이션은 0에서 dwNumDevs 에서 1을 뺀 줄 디바이스 식별자를 사용하여 개별 라인 디바이스를 참조할 수 있습니다. 애플리케이션은 먼저 lineGetDevCaps 및 lineGetAddressCaps 를 사용하여 디바이스 기능을 쿼리하지 않고도 이러한 줄 디바이스가 기본 전화 통신 하위 집합에 지정된 것 이상의 기능을 사용할 수 있다고 가정해서는 안 됩니다.

애플리케이션은 나중에 선을 열지 않고 lineInitialize 를 호출해서는 안 됩니다(적어도 모니터링을 위해). 애플리케이션이 모니터링하지 않고 디바이스를 사용하지 않는 경우 불필요한 경우 Tapi.dll 할당된 메모리 리소스를 해제할 수 있도록 lineShutdown 을 호출해야 하며, 필요하지 않은 동안 Tapi.dll 자체를 메모리에서 언로드할 수 있습니다.

LineShutdown을 수행하는 또 다른 이유는 사용자가 디바이스 구성을 변경(줄 또는 휴대폰을 추가 또는 제거)하는 경우 TAPI가 당시 열려 있는 줄 또는 전화 핸들이 열려 있는 애플리케이션에 알릴 방법이 없기 때문입니다. 재구성이 수행되어 LINEDEVSTATE_REINIT 메시지가 전송된 후에는 모든 애플리케이션이 lineShutdown을 수행할 때까지 어떤 애플리케이션도 디바이스를 열 수 없습니다. 서비스 공급자가 제대로 초기화되지 않으면 이 함수가 실패하고 서비스 공급자가 나타내는 오류를 반환합니다.

모든 TAPI 플랫폼에서 lineInitialize 는 LINEINITIALIZEEXOPTION_USEHIDDENWINDOW 옵션을 사용하는 lineInitializeEx 와 동일합니다.

요구 사항

   
대상 플랫폼 Windows
헤더 tapi.h
라이브러리 Tapi32.lib
DLL Tapi32.dll

추가 정보

LINECALLINFO

lineCallbackFunc

lineGetAddressCaps

lineGetDevCaps

lineInitializeEx

lineShutdown