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 구조에 제공되어 사용자에게 친숙한 방식으로 애플리케이션이 시작되었거나 원래 호출을 수락하거나 응답했음을 나타냅니다. 이 정보는 호출 로깅 목적에 유용할 수 있습니다. lpszAppName이 NULL인 경우 애플리케이션의 파일 이름이 대신 사용됩니다.
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 |