Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

10841 lines
250 KiB

  1. #if DBG
  2. #define InternalDebugOut(_x_) DbgPrtEXPLIB _x_
  3. #else
  4. #define InternalDebugOut(_x_)
  5. #endif
  6. #define STRICT
  7. #include <windows.h>
  8. #include <windowsx.h>
  9. //#include "stdlib.h"
  10. #include "tapi.h"
  11. HINSTANCE ghTapi32 = NULL;
  12. DWORD gdwDebugLevel = 0;
  13. typedef LONG (WINAPI *TAPIPROC)();
  14. #undef lineBlindTransfer
  15. #undef lineConfigDialog
  16. #undef lineConfigDialogEdit
  17. #undef lineDial
  18. #undef lineForward
  19. #undef lineGatherDigits
  20. #undef lineGenerateDigits
  21. #undef lineGetAddressCaps
  22. #undef lineGetAddressID
  23. #undef lineGetAddressStatus
  24. #undef lineGetCallInfo
  25. #undef lineGetDevCaps
  26. #undef lineGetDevConfig
  27. #undef lineGetIcon
  28. #undef lineGetID
  29. #undef lineGetLineDevStatus
  30. #undef lineGetRequest
  31. #undef lineGetTranslateCaps
  32. #undef lineHandoff
  33. #undef lineMakeCall
  34. #undef lineOpen
  35. #undef linePark
  36. #undef linePickup
  37. #undef linePrepareAddToConference
  38. #undef lineRedirect
  39. #undef lineSetDevConfig
  40. #undef lineSetTollList
  41. #undef lineSetupConference
  42. #undef lineSetupTransfer
  43. #undef lineTranslateAddress
  44. #undef lineUnpark
  45. #undef phoneConfigDialog
  46. #undef phoneGetButtonInfo
  47. #undef phoneGetDevCaps
  48. #undef phoneGetIcon
  49. #undef phoneGetID
  50. #undef phoneGetStatus
  51. #undef phoneSetButtonInfo
  52. #undef tapiGetLocationInfo
  53. #undef tapiRequestMakeCall
  54. #undef tapiRequestMediaCall
  55. #undef lineAddProvider
  56. #undef lineGetAppPriority
  57. #undef lineGetCountry
  58. #undef lineGetProviderList
  59. #undef lineSetAppPriority
  60. #undef lineTranslateDialog
  61. //**************************************************************************
  62. //**************************************************************************
  63. //**************************************************************************
  64. #if DBG
  65. VOID
  66. DbgPrtEXPLIB(
  67. IN DWORD dwDbgLevel,
  68. IN PUCHAR lpszFormat,
  69. IN ...
  70. )
  71. /*++
  72. Routine Description:
  73. Formats the incoming debug message & calls DbgPrint
  74. Arguments:
  75. DbgLevel - level of message verboseness
  76. DbgMessage - printf-style format string, followed by appropriate
  77. list of arguments
  78. Return Value:
  79. --*/
  80. {
  81. static BOOLEAN fBeenThereDoneThat = FALSE;
  82. if ( !fBeenThereDoneThat )
  83. {
  84. HKEY hKey;
  85. gdwDebugLevel=0;
  86. if (RegOpenKeyEx(
  87. HKEY_LOCAL_MACHINE,
  88. "Software\\Microsoft\\Windows\\CurrentVersion\\Telephony",
  89. 0,
  90. KEY_ALL_ACCESS,
  91. &hKey
  92. ) == ERROR_SUCCESS)
  93. {
  94. DWORD dwDataSize = sizeof(DWORD), dwDataType;
  95. RegQueryValueEx(
  96. hKey,
  97. "Tapi32libDebugLevel",
  98. 0,
  99. &dwDataType,
  100. (LPBYTE)&gdwDebugLevel,
  101. &dwDataSize
  102. );
  103. RegCloseKey (hKey);
  104. }
  105. }
  106. if (dwDbgLevel <= gdwDebugLevel)
  107. {
  108. char buf[1280] = "TAPI32.LIB: ";
  109. va_list ap;
  110. va_start(ap, lpszFormat);
  111. wvsprintf (&buf[12],
  112. lpszFormat,
  113. ap
  114. );
  115. lstrcat (buf, "\n");
  116. OutputDebugStringA (buf);
  117. va_end(ap);
  118. }
  119. }
  120. #endif
  121. //**************************************************************************
  122. //**************************************************************************
  123. //**************************************************************************
  124. LONG PASCAL GetTheFunctionPtr( LPSTR lpszFunction, TAPIPROC *ppfn )
  125. {
  126. InternalDebugOut((4, "Looking for: [%s]", lpszFunction));
  127. if ( !ghTapi32 )
  128. {
  129. ghTapi32 = LoadLibrary("TAPI32.DLL");
  130. //
  131. // If this failed, we won't try again
  132. //
  133. if ( 0 == ghTapi32 )
  134. {
  135. InternalDebugOut((1, "Can't LoadLibrary(""TAPI32.DLL"") !"));
  136. ghTapi32 = (HINSTANCE)-1;
  137. }
  138. }
  139. if ( ghTapi32 != (HINSTANCE)-1 )
  140. {
  141. *ppfn = (TAPIPROC) GetProcAddress( ghTapi32, lpszFunction );
  142. }
  143. else
  144. {
  145. return LINEERR_OPERATIONUNAVAIL;
  146. }
  147. if ( NULL == *ppfn )
  148. {
  149. InternalDebugOut((1, "Can't find function: [%s]", lpszFunction));
  150. return LINEERR_OPERATIONUNAVAIL;
  151. }
  152. return 0;
  153. }
  154. //**************************************************************************
  155. //**************************************************************************
  156. //**************************************************************************
  157. LONG
  158. WINAPI
  159. lineAccept(
  160. HCALL hCall,
  161. LPCSTR lpsUserUserInfo,
  162. DWORD dwSize
  163. )
  164. {
  165. static TAPIPROC lpfn = NULL;
  166. LONG lResult;
  167. if ( lpfn == NULL )
  168. {
  169. //
  170. // Did we have a problem?
  171. //
  172. if ( 0 != (lResult = GetTheFunctionPtr( "lineAccept", &lpfn )) )
  173. {
  174. lpfn = (TAPIPROC)-1;
  175. return lResult;
  176. }
  177. }
  178. //
  179. // Have we determined that this is a lost cause?
  180. //
  181. if ( (TAPIPROC)-1 == lpfn )
  182. {
  183. return LINEERR_OPERATIONUNAVAIL;
  184. }
  185. return (*lpfn)(
  186. hCall,
  187. lpsUserUserInfo,
  188. dwSize
  189. );
  190. }
  191. //**************************************************************************
  192. //**************************************************************************
  193. //**************************************************************************
  194. LONG
  195. WINAPI
  196. lineAddProvider(
  197. LPCSTR lpszProviderFilename,
  198. HWND hwndOwner,
  199. LPDWORD lpdwPermanentProviderID
  200. )
  201. {
  202. static TAPIPROC lpfn = NULL;
  203. LONG lResult;
  204. if ( lpfn == NULL )
  205. {
  206. //
  207. // Did we have a problem?
  208. //
  209. if ( 0 != (lResult = GetTheFunctionPtr( "lineAddProvider", &lpfn )) )
  210. {
  211. lpfn = (TAPIPROC)-1;
  212. return lResult;
  213. }
  214. }
  215. //
  216. // Have we determined that this is a lost cause?
  217. //
  218. if ( (TAPIPROC)-1 == lpfn )
  219. {
  220. return LINEERR_OPERATIONUNAVAIL;
  221. }
  222. return (*lpfn)(
  223. lpszProviderFilename,
  224. hwndOwner,
  225. lpdwPermanentProviderID
  226. );
  227. }
  228. //**************************************************************************
  229. //**************************************************************************
  230. //**************************************************************************
  231. LONG
  232. WINAPI
  233. lineAddProviderA(
  234. LPCSTR lpszProviderFilename,
  235. HWND hwndOwner,
  236. LPDWORD lpdwPermanentProviderID
  237. )
  238. {
  239. static TAPIPROC lpfn = NULL;
  240. LONG lResult;
  241. if ( lpfn == NULL )
  242. {
  243. //
  244. // Did we have a problem?
  245. //
  246. if ( 0 != (lResult = GetTheFunctionPtr( "lineAddProviderA", &lpfn )) )
  247. {
  248. lpfn = (TAPIPROC)-1;
  249. return lResult;
  250. }
  251. }
  252. //
  253. // Have we determined that this is a lost cause?
  254. //
  255. if ( (TAPIPROC)-1 == lpfn )
  256. {
  257. return LINEERR_OPERATIONUNAVAIL;
  258. }
  259. return (*lpfn)(
  260. lpszProviderFilename,
  261. hwndOwner,
  262. lpdwPermanentProviderID
  263. );
  264. }
  265. //**************************************************************************
  266. //**************************************************************************
  267. //**************************************************************************
  268. LONG
  269. WINAPI
  270. lineAddProviderW(
  271. LPCWSTR lpszProviderFilename,
  272. HWND hwndOwner,
  273. LPDWORD lpdwPermanentProviderID
  274. )
  275. {
  276. static TAPIPROC lpfn = NULL;
  277. LONG lResult;
  278. if ( lpfn == NULL )
  279. {
  280. //
  281. // Did we have a problem?
  282. //
  283. if ( 0 != (lResult = GetTheFunctionPtr( "lineAddProviderW", &lpfn )) )
  284. {
  285. lpfn = (TAPIPROC)-1;
  286. return lResult;
  287. }
  288. }
  289. //
  290. // Have we determined that this is a lost cause?
  291. //
  292. if ( (TAPIPROC)-1 == lpfn )
  293. {
  294. return LINEERR_OPERATIONUNAVAIL;
  295. }
  296. return (*lpfn)(
  297. lpszProviderFilename,
  298. hwndOwner,
  299. lpdwPermanentProviderID
  300. );
  301. }
  302. //**************************************************************************
  303. //**************************************************************************
  304. //**************************************************************************
  305. LONG
  306. WINAPI
  307. lineAddToConference(
  308. HCALL hConfCall,
  309. HCALL hConsultCall
  310. )
  311. {
  312. static TAPIPROC lpfn = NULL;
  313. LONG lResult;
  314. if ( lpfn == NULL )
  315. {
  316. //
  317. // Did we have a problem?
  318. //
  319. if ( 0 != (lResult = GetTheFunctionPtr( "lineAddToConference", &lpfn )) )
  320. {
  321. lpfn = (TAPIPROC)-1;
  322. return lResult;
  323. }
  324. }
  325. //
  326. // Have we determined that this is a lost cause?
  327. //
  328. if ( (TAPIPROC)-1 == lpfn )
  329. {
  330. return LINEERR_OPERATIONUNAVAIL;
  331. }
  332. return (*lpfn)(
  333. hConfCall,
  334. hConsultCall
  335. );
  336. }
  337. //**************************************************************************
  338. //**************************************************************************
  339. //**************************************************************************
  340. LONG
  341. WINAPI
  342. lineAgentSpecific(
  343. HLINE hLine,
  344. DWORD dwAddressID,
  345. DWORD dwAgentExtensionIDIndex,
  346. LPVOID lpParams,
  347. DWORD dwSize
  348. )
  349. {
  350. static TAPIPROC lpfn = NULL;
  351. LONG lResult;
  352. if ( lpfn == NULL )
  353. {
  354. //
  355. // Did we have a problem?
  356. //
  357. if ( 0 != (lResult = GetTheFunctionPtr( "lineAgentSpecific", &lpfn )) )
  358. {
  359. lpfn = (TAPIPROC)-1;
  360. return lResult;
  361. }
  362. }
  363. //
  364. // Have we determined that this is a lost cause?
  365. //
  366. if ( (TAPIPROC)-1 == lpfn )
  367. {
  368. return LINEERR_OPERATIONUNAVAIL;
  369. }
  370. return (*lpfn)(
  371. hLine,
  372. dwAddressID,
  373. dwAgentExtensionIDIndex,
  374. lpParams,
  375. dwSize
  376. );
  377. }
  378. //**************************************************************************
  379. //**************************************************************************
  380. //**************************************************************************
  381. LONG
  382. WINAPI
  383. lineAnswer(
  384. HCALL hCall,
  385. LPCSTR lpsUserUserInfo,
  386. DWORD dwSize
  387. )
  388. {
  389. static TAPIPROC lpfn = NULL;
  390. LONG lResult;
  391. if ( lpfn == NULL )
  392. {
  393. //
  394. // Did we have a problem?
  395. //
  396. if ( 0 != (lResult = GetTheFunctionPtr( "lineAnswer", &lpfn )) )
  397. {
  398. lpfn = (TAPIPROC)-1;
  399. return lResult;
  400. }
  401. }
  402. //
  403. // Have we determined that this is a lost cause?
  404. //
  405. if ( (TAPIPROC)-1 == lpfn )
  406. {
  407. return LINEERR_OPERATIONUNAVAIL;
  408. }
  409. return (*lpfn)(
  410. hCall,
  411. lpsUserUserInfo,
  412. dwSize
  413. );
  414. }
  415. //**************************************************************************
  416. //**************************************************************************
  417. //**************************************************************************
  418. LONG
  419. WINAPI
  420. lineBlindTransfer(
  421. HCALL hCall,
  422. LPCSTR lpszDestAddress,
  423. DWORD dwCountryCode
  424. )
  425. {
  426. static TAPIPROC lpfn = NULL;
  427. LONG lResult;
  428. if ( lpfn == NULL )
  429. {
  430. //
  431. // Did we have a problem?
  432. //
  433. if ( 0 != (lResult = GetTheFunctionPtr( "lineBlindTransfer", &lpfn )) )
  434. {
  435. lpfn = (TAPIPROC)-1;
  436. return lResult;
  437. }
  438. }
  439. //
  440. // Have we determined that this is a lost cause?
  441. //
  442. if ( (TAPIPROC)-1 == lpfn )
  443. {
  444. return LINEERR_OPERATIONUNAVAIL;
  445. }
  446. return (*lpfn)(
  447. hCall,
  448. lpszDestAddress,
  449. dwCountryCode
  450. );
  451. }
  452. //**************************************************************************
  453. //**************************************************************************
  454. //**************************************************************************
  455. LONG
  456. WINAPI
  457. lineBlindTransferA(
  458. HCALL hCall,
  459. LPCSTR lpszDestAddress,
  460. DWORD dwCountryCode
  461. )
  462. {
  463. static TAPIPROC lpfn = NULL;
  464. LONG lResult;
  465. if ( lpfn == NULL )
  466. {
  467. //
  468. // Did we have a problem?
  469. //
  470. if ( 0 != (lResult = GetTheFunctionPtr( "lineBlindTransferA", &lpfn )) )
  471. {
  472. lpfn = (TAPIPROC)-1;
  473. return lResult;
  474. }
  475. }
  476. //
  477. // Have we determined that this is a lost cause?
  478. //
  479. if ( (TAPIPROC)-1 == lpfn )
  480. {
  481. return LINEERR_OPERATIONUNAVAIL;
  482. }
  483. return (*lpfn)(
  484. hCall,
  485. lpszDestAddress,
  486. dwCountryCode
  487. );
  488. }
  489. //**************************************************************************
  490. //**************************************************************************
  491. //**************************************************************************
  492. LONG
  493. WINAPI
  494. lineBlindTransferW(
  495. HCALL hCall,
  496. LPCWSTR lpszDestAddressW,
  497. DWORD dwCountryCode
  498. )
  499. {
  500. static TAPIPROC lpfn = NULL;
  501. LONG lResult;
  502. if ( lpfn == NULL )
  503. {
  504. //
  505. // Did we have a problem?
  506. //
  507. if ( 0 != (lResult = GetTheFunctionPtr( "lineBlindTransferW", &lpfn )) )
  508. {
  509. lpfn = (TAPIPROC)-1;
  510. return lResult;
  511. }
  512. }
  513. //
  514. // Have we determined that this is a lost cause?
  515. //
  516. if ( (TAPIPROC)-1 == lpfn )
  517. {
  518. return LINEERR_OPERATIONUNAVAIL;
  519. }
  520. return (*lpfn)(
  521. hCall,
  522. lpszDestAddressW,
  523. dwCountryCode
  524. );
  525. }
  526. //**************************************************************************
  527. //**************************************************************************
  528. //**************************************************************************
  529. LONG
  530. WINAPI
  531. lineClose(
  532. HLINE hLine
  533. )
  534. {
  535. static TAPIPROC lpfn = NULL;
  536. LONG lResult;
  537. if ( lpfn == NULL )
  538. {
  539. //
  540. // Did we have a problem?
  541. //
  542. if ( 0 != (lResult = GetTheFunctionPtr( "lineClose", &lpfn )) )
  543. {
  544. lpfn = (TAPIPROC)-1;
  545. return lResult;
  546. }
  547. }
  548. //
  549. // Have we determined that this is a lost cause?
  550. //
  551. if ( (TAPIPROC)-1 == lpfn )
  552. {
  553. return LINEERR_OPERATIONUNAVAIL;
  554. }
  555. return (*lpfn)(
  556. hLine
  557. );
  558. }
  559. //**************************************************************************
  560. //**************************************************************************
  561. //**************************************************************************
  562. LONG
  563. WINAPI
  564. lineCompleteCall(
  565. HCALL hCall,
  566. LPDWORD lpdwCompletionID,
  567. DWORD dwCompletionMode,
  568. DWORD dwMessageID
  569. )
  570. {
  571. static TAPIPROC lpfn = NULL;
  572. LONG lResult;
  573. if ( lpfn == NULL )
  574. {
  575. //
  576. // Did we have a problem?
  577. //
  578. if ( 0 != (lResult = GetTheFunctionPtr( "lineCompleteCall", &lpfn )) )
  579. {
  580. lpfn = (TAPIPROC)-1;
  581. return lResult;
  582. }
  583. }
  584. //
  585. // Have we determined that this is a lost cause?
  586. //
  587. if ( (TAPIPROC)-1 == lpfn )
  588. {
  589. return LINEERR_OPERATIONUNAVAIL;
  590. }
  591. return (*lpfn)(
  592. hCall,
  593. lpdwCompletionID,
  594. dwCompletionMode,
  595. dwMessageID
  596. );
  597. }
  598. //**************************************************************************
  599. //**************************************************************************
  600. //**************************************************************************
  601. LONG
  602. WINAPI
  603. lineCompleteTransfer(
  604. HCALL hCall,
  605. HCALL hConsultCall,
  606. LPHCALL lphConfCall,
  607. DWORD dwTransferMode
  608. )
  609. {
  610. static TAPIPROC lpfn = NULL;
  611. LONG lResult;
  612. if ( lpfn == NULL )
  613. {
  614. //
  615. // Did we have a problem?
  616. //
  617. if ( 0 != (lResult = GetTheFunctionPtr( "lineCompleteTransfer", &lpfn )) )
  618. {
  619. lpfn = (TAPIPROC)-1;
  620. return lResult;
  621. }
  622. }
  623. //
  624. // Have we determined that this is a lost cause?
  625. //
  626. if ( (TAPIPROC)-1 == lpfn )
  627. {
  628. return LINEERR_OPERATIONUNAVAIL;
  629. }
  630. return (*lpfn)(
  631. hCall,
  632. hConsultCall,
  633. lphConfCall,
  634. dwTransferMode
  635. );
  636. }
  637. //**************************************************************************
  638. //**************************************************************************
  639. //**************************************************************************
  640. LONG
  641. WINAPI
  642. lineConfigDialog(
  643. DWORD dwDeviceID,
  644. HWND hwndOwner,
  645. LPCSTR lpszDeviceClass
  646. )
  647. {
  648. static TAPIPROC lpfn = NULL;
  649. LONG lResult;
  650. if ( lpfn == NULL )
  651. {
  652. //
  653. // Did we have a problem?
  654. //
  655. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialog", &lpfn )) )
  656. {
  657. lpfn = (TAPIPROC)-1;
  658. return lResult;
  659. }
  660. }
  661. //
  662. // Have we determined that this is a lost cause?
  663. //
  664. if ( (TAPIPROC)-1 == lpfn )
  665. {
  666. return LINEERR_OPERATIONUNAVAIL;
  667. }
  668. return (*lpfn)(
  669. dwDeviceID,
  670. hwndOwner,
  671. lpszDeviceClass
  672. );
  673. }
  674. //**************************************************************************
  675. //**************************************************************************
  676. //**************************************************************************
  677. LONG
  678. WINAPI
  679. lineConfigDialogA(
  680. DWORD dwDeviceID,
  681. HWND hwndOwner,
  682. LPCSTR lpszDeviceClass
  683. )
  684. {
  685. static TAPIPROC lpfn = NULL;
  686. LONG lResult;
  687. if ( lpfn == NULL )
  688. {
  689. //
  690. // Did we have a problem?
  691. //
  692. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialogA", &lpfn )) )
  693. {
  694. lpfn = (TAPIPROC)-1;
  695. return lResult;
  696. }
  697. }
  698. //
  699. // Have we determined that this is a lost cause?
  700. //
  701. if ( (TAPIPROC)-1 == lpfn )
  702. {
  703. return LINEERR_OPERATIONUNAVAIL;
  704. }
  705. return (*lpfn)(
  706. dwDeviceID,
  707. hwndOwner,
  708. lpszDeviceClass
  709. );
  710. }
  711. //**************************************************************************
  712. //**************************************************************************
  713. //**************************************************************************
  714. LONG
  715. WINAPI
  716. lineConfigDialogW(
  717. DWORD dwDeviceID,
  718. HWND hwndOwner,
  719. LPCWSTR lpszDeviceClass
  720. )
  721. {
  722. static TAPIPROC lpfn = NULL;
  723. LONG lResult;
  724. if ( lpfn == NULL )
  725. {
  726. //
  727. // Did we have a problem?
  728. //
  729. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialogW", &lpfn )) )
  730. {
  731. lpfn = (TAPIPROC)-1;
  732. return lResult;
  733. }
  734. }
  735. //
  736. // Have we determined that this is a lost cause?
  737. //
  738. if ( (TAPIPROC)-1 == lpfn )
  739. {
  740. return LINEERR_OPERATIONUNAVAIL;
  741. }
  742. return (*lpfn)(
  743. dwDeviceID,
  744. hwndOwner,
  745. lpszDeviceClass
  746. );
  747. }
  748. //**************************************************************************
  749. //**************************************************************************
  750. //**************************************************************************
  751. LONG
  752. WINAPI
  753. lineConfigDialogEdit(
  754. DWORD dwDeviceID,
  755. HWND hwndOwner,
  756. LPCSTR lpszDeviceClass,
  757. LPVOID const lpDeviceConfigIn,
  758. DWORD dwSize,
  759. LPVARSTRING lpDeviceConfigOut
  760. )
  761. {
  762. static TAPIPROC lpfn = NULL;
  763. LONG lResult;
  764. if ( lpfn == NULL )
  765. {
  766. //
  767. // Did we have a problem?
  768. //
  769. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialogEdit", &lpfn )) )
  770. {
  771. lpfn = (TAPIPROC)-1;
  772. return lResult;
  773. }
  774. }
  775. //
  776. // Have we determined that this is a lost cause?
  777. //
  778. if ( (TAPIPROC)-1 == lpfn )
  779. {
  780. return LINEERR_OPERATIONUNAVAIL;
  781. }
  782. return (*lpfn)(
  783. dwDeviceID,
  784. hwndOwner,
  785. lpszDeviceClass,
  786. lpDeviceConfigIn,
  787. dwSize,
  788. lpDeviceConfigOut
  789. );
  790. }
  791. //**************************************************************************
  792. //**************************************************************************
  793. //**************************************************************************
  794. LONG
  795. WINAPI
  796. lineConfigDialogEditA(
  797. DWORD dwDeviceID,
  798. HWND hwndOwner,
  799. LPCSTR lpszDeviceClass,
  800. LPVOID const lpDeviceConfigIn,
  801. DWORD dwSize,
  802. LPVARSTRING lpDeviceConfigOut
  803. )
  804. {
  805. static TAPIPROC lpfn = NULL;
  806. LONG lResult;
  807. if ( lpfn == NULL )
  808. {
  809. //
  810. // Did we have a problem?
  811. //
  812. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialogEditA", &lpfn )) )
  813. {
  814. lpfn = (TAPIPROC)-1;
  815. return lResult;
  816. }
  817. }
  818. //
  819. // Have we determined that this is a lost cause?
  820. //
  821. if ( (TAPIPROC)-1 == lpfn )
  822. {
  823. return LINEERR_OPERATIONUNAVAIL;
  824. }
  825. return (*lpfn)(
  826. dwDeviceID,
  827. hwndOwner,
  828. lpszDeviceClass,
  829. lpDeviceConfigIn,
  830. dwSize,
  831. lpDeviceConfigOut
  832. );
  833. }
  834. //**************************************************************************
  835. //**************************************************************************
  836. //**************************************************************************
  837. LONG
  838. WINAPI
  839. lineConfigDialogEditW(
  840. DWORD dwDeviceID,
  841. HWND hwndOwner,
  842. LPCWSTR lpszDeviceClass,
  843. LPVOID const lpDeviceConfigIn,
  844. DWORD dwSize,
  845. LPVARSTRING lpDeviceConfigOut
  846. )
  847. {
  848. static TAPIPROC lpfn = NULL;
  849. LONG lResult;
  850. if ( lpfn == NULL )
  851. {
  852. //
  853. // Did we have a problem?
  854. //
  855. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigDialogEditW", &lpfn )) )
  856. {
  857. lpfn = (TAPIPROC)-1;
  858. return lResult;
  859. }
  860. }
  861. //
  862. // Have we determined that this is a lost cause?
  863. //
  864. if ( (TAPIPROC)-1 == lpfn )
  865. {
  866. return LINEERR_OPERATIONUNAVAIL;
  867. }
  868. return (*lpfn)(
  869. dwDeviceID,
  870. hwndOwner,
  871. lpszDeviceClass,
  872. lpDeviceConfigIn,
  873. dwSize,
  874. lpDeviceConfigOut
  875. );
  876. }
  877. //**************************************************************************
  878. //**************************************************************************
  879. //**************************************************************************
  880. LONG
  881. WINAPI
  882. lineConfigProvider(
  883. HWND hwndOwner,
  884. DWORD dwPermanentProviderID
  885. )
  886. {
  887. static TAPIPROC lpfn = NULL;
  888. LONG lResult;
  889. if ( lpfn == NULL )
  890. {
  891. //
  892. // Did we have a problem?
  893. //
  894. if ( 0 != (lResult = GetTheFunctionPtr( "lineConfigProvider", &lpfn )) )
  895. {
  896. lpfn = (TAPIPROC)-1;
  897. return lResult;
  898. }
  899. }
  900. //
  901. // Have we determined that this is a lost cause?
  902. //
  903. if ( (TAPIPROC)-1 == lpfn )
  904. {
  905. return LINEERR_OPERATIONUNAVAIL;
  906. }
  907. return (*lpfn)(
  908. hwndOwner,
  909. dwPermanentProviderID
  910. );
  911. }
  912. //**************************************************************************
  913. //**************************************************************************
  914. //**************************************************************************
  915. LONG
  916. WINAPI
  917. lineCreateAgentA( // TAPI v2.2
  918. HLINE hLine,
  919. LPSTR lpszAgentID,
  920. LPSTR lpszAgentPIN,
  921. LPHAGENT lphAgent
  922. )
  923. {
  924. static TAPIPROC lpfn = NULL;
  925. LONG lResult;
  926. if ( lpfn == NULL )
  927. {
  928. //
  929. // Did we have a problem?
  930. //
  931. if ( 0 != (lResult = GetTheFunctionPtr( "lineCreateAgentA", &lpfn )) )
  932. {
  933. lpfn = (TAPIPROC)-1;
  934. return lResult;
  935. }
  936. }
  937. //
  938. // Have we determined that this is a lost cause?
  939. //
  940. if ( (TAPIPROC)-1 == lpfn )
  941. {
  942. return LINEERR_OPERATIONUNAVAIL;
  943. }
  944. return (*lpfn)(
  945. hLine,
  946. lpszAgentID,
  947. lpszAgentPIN,
  948. lphAgent
  949. );
  950. }
  951. //**************************************************************************
  952. //**************************************************************************
  953. //**************************************************************************
  954. LONG
  955. WINAPI
  956. lineCreateAgentW( // TAPI v2.2
  957. HLINE hLine,
  958. LPWSTR lpszAgentID,
  959. LPWSTR lpszAgentPIN,
  960. LPHAGENT lphAgent
  961. )
  962. {
  963. static TAPIPROC lpfn = NULL;
  964. LONG lResult;
  965. if ( lpfn == NULL )
  966. {
  967. //
  968. // Did we have a problem?
  969. //
  970. if ( 0 != (lResult = GetTheFunctionPtr( "lineCreateAgentW", &lpfn )) )
  971. {
  972. lpfn = (TAPIPROC)-1;
  973. return lResult;
  974. }
  975. }
  976. //
  977. // Have we determined that this is a lost cause?
  978. //
  979. if ( (TAPIPROC)-1 == lpfn )
  980. {
  981. return LINEERR_OPERATIONUNAVAIL;
  982. }
  983. return (*lpfn)(
  984. hLine,
  985. lpszAgentID,
  986. lpszAgentPIN,
  987. lphAgent
  988. );
  989. }
  990. //**************************************************************************
  991. //**************************************************************************
  992. //**************************************************************************
  993. LONG
  994. WINAPI
  995. lineCreateAgentSessionA( // TAPI v2.2
  996. HLINE hLine,
  997. HAGENT hAgent,
  998. LPSTR lpszAgentPIN,
  999. DWORD dwWorkingAddressID,
  1000. LPGUID lpGroupID,
  1001. LPHAGENTSESSION lphAgentSession
  1002. )
  1003. {
  1004. static TAPIPROC lpfn = NULL;
  1005. LONG lResult;
  1006. if ( lpfn == NULL )
  1007. {
  1008. //
  1009. // Did we have a problem?
  1010. //
  1011. if ( 0 != (lResult = GetTheFunctionPtr( "lineCreateAgentSessionA", &lpfn )) )
  1012. {
  1013. lpfn = (TAPIPROC)-1;
  1014. return lResult;
  1015. }
  1016. }
  1017. //
  1018. // Have we determined that this is a lost cause?
  1019. //
  1020. if ( (TAPIPROC)-1 == lpfn )
  1021. {
  1022. return LINEERR_OPERATIONUNAVAIL;
  1023. }
  1024. return (*lpfn)(
  1025. hLine,
  1026. hAgent,
  1027. lpszAgentPIN,
  1028. dwWorkingAddressID,
  1029. lpGroupID,
  1030. lphAgentSession
  1031. );
  1032. }
  1033. //**************************************************************************
  1034. //**************************************************************************
  1035. //**************************************************************************
  1036. LONG
  1037. WINAPI
  1038. lineCreateAgentSessionW( // TAPI v2.2
  1039. HLINE hLine,
  1040. HAGENT hAgent,
  1041. LPWSTR lpszAgentPIN,
  1042. DWORD dwWorkingAddressID,
  1043. LPGUID lpGroupID,
  1044. LPHAGENTSESSION lphAgentSession
  1045. )
  1046. {
  1047. static TAPIPROC lpfn = NULL;
  1048. LONG lResult;
  1049. if ( lpfn == NULL )
  1050. {
  1051. //
  1052. // Did we have a problem?
  1053. //
  1054. if ( 0 != (lResult = GetTheFunctionPtr( "lineCreateAgentSessionW", &lpfn )) )
  1055. {
  1056. lpfn = (TAPIPROC)-1;
  1057. return lResult;
  1058. }
  1059. }
  1060. //
  1061. // Have we determined that this is a lost cause?
  1062. //
  1063. if ( (TAPIPROC)-1 == lpfn )
  1064. {
  1065. return LINEERR_OPERATIONUNAVAIL;
  1066. }
  1067. return (*lpfn)(
  1068. hLine,
  1069. hAgent,
  1070. lpszAgentPIN,
  1071. dwWorkingAddressID,
  1072. lpGroupID,
  1073. lphAgentSession
  1074. );
  1075. }
  1076. //**************************************************************************
  1077. //**************************************************************************
  1078. //**************************************************************************
  1079. LONG
  1080. WINAPI
  1081. lineDeallocateCall(
  1082. HCALL hCall
  1083. )
  1084. {
  1085. static TAPIPROC lpfn = NULL;
  1086. LONG lResult;
  1087. if ( lpfn == NULL )
  1088. {
  1089. //
  1090. // Did we have a problem?
  1091. //
  1092. if ( 0 != (lResult = GetTheFunctionPtr( "lineDeallocateCall", &lpfn )) )
  1093. {
  1094. lpfn = (TAPIPROC)-1;
  1095. return lResult;
  1096. }
  1097. }
  1098. //
  1099. // Have we determined that this is a lost cause?
  1100. //
  1101. if ( (TAPIPROC)-1 == lpfn )
  1102. {
  1103. return LINEERR_OPERATIONUNAVAIL;
  1104. }
  1105. return (*lpfn)(
  1106. hCall
  1107. );
  1108. }
  1109. //**************************************************************************
  1110. //**************************************************************************
  1111. //**************************************************************************
  1112. LONG
  1113. WINAPI
  1114. lineDevSpecific(
  1115. HLINE hLine,
  1116. DWORD dwAddressID,
  1117. HCALL hCall,
  1118. LPVOID lpParams,
  1119. DWORD dwSize
  1120. )
  1121. {
  1122. static TAPIPROC lpfn = NULL;
  1123. LONG lResult;
  1124. if ( lpfn == NULL )
  1125. {
  1126. //
  1127. // Did we have a problem?
  1128. //
  1129. if ( 0 != (lResult = GetTheFunctionPtr( "lineDevSpecific", &lpfn )) )
  1130. {
  1131. lpfn = (TAPIPROC)-1;
  1132. return lResult;
  1133. }
  1134. }
  1135. //
  1136. // Have we determined that this is a lost cause?
  1137. //
  1138. if ( (TAPIPROC)-1 == lpfn )
  1139. {
  1140. return LINEERR_OPERATIONUNAVAIL;
  1141. }
  1142. return (*lpfn)(
  1143. hLine,
  1144. dwAddressID,
  1145. hCall,
  1146. lpParams,
  1147. dwSize
  1148. );
  1149. }
  1150. //**************************************************************************
  1151. //**************************************************************************
  1152. //**************************************************************************
  1153. LONG
  1154. WINAPI
  1155. lineDevSpecificFeature(
  1156. HLINE hLine,
  1157. DWORD dwFeature,
  1158. LPVOID lpParams,
  1159. DWORD dwSize
  1160. )
  1161. {
  1162. static TAPIPROC lpfn = NULL;
  1163. LONG lResult;
  1164. if ( lpfn == NULL )
  1165. {
  1166. //
  1167. // Did we have a problem?
  1168. //
  1169. if ( 0 != (lResult = GetTheFunctionPtr( "lineDevSpecificFeature", &lpfn )) )
  1170. {
  1171. lpfn = (TAPIPROC)-1;
  1172. return lResult;
  1173. }
  1174. }
  1175. //
  1176. // Have we determined that this is a lost cause?
  1177. //
  1178. if ( (TAPIPROC)-1 == lpfn )
  1179. {
  1180. return LINEERR_OPERATIONUNAVAIL;
  1181. }
  1182. return (*lpfn)(
  1183. hLine,
  1184. dwFeature,
  1185. lpParams,
  1186. dwSize
  1187. );
  1188. }
  1189. //**************************************************************************
  1190. //**************************************************************************
  1191. //**************************************************************************
  1192. LONG
  1193. WINAPI
  1194. lineDial(
  1195. HCALL hCall,
  1196. LPCSTR lpszDestAddress,
  1197. DWORD dwCountryCode
  1198. )
  1199. {
  1200. static TAPIPROC lpfn = NULL;
  1201. LONG lResult;
  1202. if ( lpfn == NULL )
  1203. {
  1204. //
  1205. // Did we have a problem?
  1206. //
  1207. if ( 0 != (lResult = GetTheFunctionPtr( "lineDial", &lpfn )) )
  1208. {
  1209. lpfn = (TAPIPROC)-1;
  1210. return lResult;
  1211. }
  1212. }
  1213. //
  1214. // Have we determined that this is a lost cause?
  1215. //
  1216. if ( (TAPIPROC)-1 == lpfn )
  1217. {
  1218. return LINEERR_OPERATIONUNAVAIL;
  1219. }
  1220. return (*lpfn)(
  1221. hCall,
  1222. lpszDestAddress,
  1223. dwCountryCode
  1224. );
  1225. }
  1226. //**************************************************************************
  1227. //**************************************************************************
  1228. //**************************************************************************
  1229. LONG
  1230. WINAPI
  1231. lineDialA(
  1232. HCALL hCall,
  1233. LPCSTR lpszDestAddress,
  1234. DWORD dwCountryCode
  1235. )
  1236. {
  1237. static TAPIPROC lpfn = NULL;
  1238. LONG lResult;
  1239. if ( lpfn == NULL )
  1240. {
  1241. //
  1242. // Did we have a problem?
  1243. //
  1244. if ( 0 != (lResult = GetTheFunctionPtr( "lineDialA", &lpfn )) )
  1245. {
  1246. lpfn = (TAPIPROC)-1;
  1247. return lResult;
  1248. }
  1249. }
  1250. //
  1251. // Have we determined that this is a lost cause?
  1252. //
  1253. if ( (TAPIPROC)-1 == lpfn )
  1254. {
  1255. return LINEERR_OPERATIONUNAVAIL;
  1256. }
  1257. return (*lpfn)(
  1258. hCall,
  1259. lpszDestAddress,
  1260. dwCountryCode
  1261. );
  1262. }
  1263. //**************************************************************************
  1264. //**************************************************************************
  1265. //**************************************************************************
  1266. LONG
  1267. WINAPI
  1268. lineDialW(
  1269. HCALL hCall,
  1270. LPCWSTR lpszDestAddress,
  1271. DWORD dwCountryCode
  1272. )
  1273. {
  1274. static TAPIPROC lpfn = NULL;
  1275. LONG lResult;
  1276. if ( lpfn == NULL )
  1277. {
  1278. //
  1279. // Did we have a problem?
  1280. //
  1281. if ( 0 != (lResult = GetTheFunctionPtr( "lineDialW", &lpfn )) )
  1282. {
  1283. lpfn = (TAPIPROC)-1;
  1284. return lResult;
  1285. }
  1286. }
  1287. //
  1288. // Have we determined that this is a lost cause?
  1289. //
  1290. if ( (TAPIPROC)-1 == lpfn )
  1291. {
  1292. return LINEERR_OPERATIONUNAVAIL;
  1293. }
  1294. return (*lpfn)(
  1295. hCall,
  1296. lpszDestAddress,
  1297. dwCountryCode
  1298. );
  1299. }
  1300. //**************************************************************************
  1301. //**************************************************************************
  1302. //**************************************************************************
  1303. LONG
  1304. WINAPI
  1305. lineDrop(
  1306. HCALL hCall,
  1307. LPCSTR lpsUserUserInfo,
  1308. DWORD dwSize
  1309. )
  1310. {
  1311. static TAPIPROC lpfn = NULL;
  1312. LONG lResult;
  1313. if ( lpfn == NULL )
  1314. {
  1315. //
  1316. // Did we have a problem?
  1317. //
  1318. if ( 0 != (lResult = GetTheFunctionPtr( "lineDrop", &lpfn )) )
  1319. {
  1320. lpfn = (TAPIPROC)-1;
  1321. return lResult;
  1322. }
  1323. }
  1324. //
  1325. // Have we determined that this is a lost cause?
  1326. //
  1327. if ( (TAPIPROC)-1 == lpfn )
  1328. {
  1329. return LINEERR_OPERATIONUNAVAIL;
  1330. }
  1331. return (*lpfn)(
  1332. hCall,
  1333. lpsUserUserInfo,
  1334. dwSize
  1335. );
  1336. }
  1337. //**************************************************************************
  1338. //**************************************************************************
  1339. //**************************************************************************
  1340. LONG
  1341. WINAPI
  1342. lineForward(
  1343. HLINE hLine,
  1344. DWORD bAllAddresses,
  1345. DWORD dwAddressID,
  1346. LPLINEFORWARDLIST const lpForwardList,
  1347. DWORD dwNumRingsNoAnswer,
  1348. LPHCALL lphConsultCall,
  1349. LPLINECALLPARAMS const lpCallParams
  1350. )
  1351. {
  1352. static TAPIPROC lpfn = NULL;
  1353. LONG lResult;
  1354. if ( lpfn == NULL )
  1355. {
  1356. //
  1357. // Did we have a problem?
  1358. //
  1359. if ( 0 != (lResult = GetTheFunctionPtr( "lineForward", &lpfn )) )
  1360. {
  1361. lpfn = (TAPIPROC)-1;
  1362. return lResult;
  1363. }
  1364. }
  1365. //
  1366. // Have we determined that this is a lost cause?
  1367. //
  1368. if ( (TAPIPROC)-1 == lpfn )
  1369. {
  1370. return LINEERR_OPERATIONUNAVAIL;
  1371. }
  1372. return (*lpfn)(
  1373. hLine,
  1374. bAllAddresses,
  1375. dwAddressID,
  1376. lpForwardList,
  1377. dwNumRingsNoAnswer,
  1378. lphConsultCall,
  1379. lpCallParams
  1380. );
  1381. }
  1382. //**************************************************************************
  1383. //**************************************************************************
  1384. //**************************************************************************
  1385. LONG
  1386. WINAPI
  1387. lineForwardA(
  1388. HLINE hLine,
  1389. DWORD bAllAddresses,
  1390. DWORD dwAddressID,
  1391. LPLINEFORWARDLIST const lpForwardList,
  1392. DWORD dwNumRingsNoAnswer,
  1393. LPHCALL lphConsultCall,
  1394. LPLINECALLPARAMS const lpCallParams
  1395. )
  1396. {
  1397. static TAPIPROC lpfn = NULL;
  1398. LONG lResult;
  1399. if ( lpfn == NULL )
  1400. {
  1401. //
  1402. // Did we have a problem?
  1403. //
  1404. if ( 0 != (lResult = GetTheFunctionPtr( "lineForwardA", &lpfn )) )
  1405. {
  1406. lpfn = (TAPIPROC)-1;
  1407. return lResult;
  1408. }
  1409. }
  1410. //
  1411. // Have we determined that this is a lost cause?
  1412. //
  1413. if ( (TAPIPROC)-1 == lpfn )
  1414. {
  1415. return LINEERR_OPERATIONUNAVAIL;
  1416. }
  1417. return (*lpfn)(
  1418. hLine,
  1419. bAllAddresses,
  1420. dwAddressID,
  1421. lpForwardList,
  1422. dwNumRingsNoAnswer,
  1423. lphConsultCall,
  1424. lpCallParams
  1425. );
  1426. }
  1427. //**************************************************************************
  1428. //**************************************************************************
  1429. //**************************************************************************
  1430. LONG
  1431. WINAPI
  1432. lineForwardW(
  1433. HLINE hLine,
  1434. DWORD bAllAddresses,
  1435. DWORD dwAddressID,
  1436. LPLINEFORWARDLIST const lpForwardList,
  1437. DWORD dwNumRingsNoAnswer,
  1438. LPHCALL lphConsultCall,
  1439. LPLINECALLPARAMS const lpCallParams
  1440. )
  1441. {
  1442. static TAPIPROC lpfn = NULL;
  1443. LONG lResult;
  1444. if ( lpfn == NULL )
  1445. {
  1446. //
  1447. // Did we have a problem?
  1448. //
  1449. if ( 0 != (lResult = GetTheFunctionPtr( "lineForwardW", &lpfn )) )
  1450. {
  1451. lpfn = (TAPIPROC)-1;
  1452. return lResult;
  1453. }
  1454. }
  1455. //
  1456. // Have we determined that this is a lost cause?
  1457. //
  1458. if ( (TAPIPROC)-1 == lpfn )
  1459. {
  1460. return LINEERR_OPERATIONUNAVAIL;
  1461. }
  1462. return (*lpfn)(
  1463. hLine,
  1464. bAllAddresses,
  1465. dwAddressID,
  1466. lpForwardList,
  1467. dwNumRingsNoAnswer,
  1468. lphConsultCall,
  1469. lpCallParams
  1470. );
  1471. }
  1472. //**************************************************************************
  1473. //**************************************************************************
  1474. //**************************************************************************
  1475. LONG
  1476. WINAPI
  1477. lineGatherDigits(
  1478. HCALL hCall,
  1479. DWORD dwDigitModes,
  1480. LPSTR lpsDigits,
  1481. DWORD dwNumDigits,
  1482. LPCSTR lpszTerminationDigits,
  1483. DWORD dwFirstDigitTimeout,
  1484. DWORD dwInterDigitTimeout
  1485. )
  1486. {
  1487. static TAPIPROC lpfn = NULL;
  1488. LONG lResult;
  1489. if ( lpfn == NULL )
  1490. {
  1491. //
  1492. // Did we have a problem?
  1493. //
  1494. if ( 0 != (lResult = GetTheFunctionPtr( "lineGatherDigits", &lpfn )) )
  1495. {
  1496. lpfn = (TAPIPROC)-1;
  1497. return lResult;
  1498. }
  1499. }
  1500. //
  1501. // Have we determined that this is a lost cause?
  1502. //
  1503. if ( (TAPIPROC)-1 == lpfn )
  1504. {
  1505. return LINEERR_OPERATIONUNAVAIL;
  1506. }
  1507. return (*lpfn)(
  1508. hCall,
  1509. dwDigitModes,
  1510. lpsDigits,
  1511. dwNumDigits,
  1512. lpszTerminationDigits,
  1513. dwFirstDigitTimeout,
  1514. dwInterDigitTimeout
  1515. );
  1516. }
  1517. //**************************************************************************
  1518. //**************************************************************************
  1519. //**************************************************************************
  1520. LONG
  1521. WINAPI
  1522. lineGatherDigitsA(
  1523. HCALL hCall,
  1524. DWORD dwDigitModes,
  1525. LPSTR lpsDigits,
  1526. DWORD dwNumDigits,
  1527. LPCSTR lpszTerminationDigits,
  1528. DWORD dwFirstDigitTimeout,
  1529. DWORD dwInterDigitTimeout
  1530. )
  1531. {
  1532. static TAPIPROC lpfn = NULL;
  1533. LONG lResult;
  1534. if ( lpfn == NULL )
  1535. {
  1536. //
  1537. // Did we have a problem?
  1538. //
  1539. if ( 0 != (lResult = GetTheFunctionPtr( "lineGatherDigitsA", &lpfn )) )
  1540. {
  1541. lpfn = (TAPIPROC)-1;
  1542. return lResult;
  1543. }
  1544. }
  1545. //
  1546. // Have we determined that this is a lost cause?
  1547. //
  1548. if ( (TAPIPROC)-1 == lpfn )
  1549. {
  1550. return LINEERR_OPERATIONUNAVAIL;
  1551. }
  1552. return (*lpfn)(
  1553. hCall,
  1554. dwDigitModes,
  1555. lpsDigits,
  1556. dwNumDigits,
  1557. lpszTerminationDigits,
  1558. dwFirstDigitTimeout,
  1559. dwInterDigitTimeout
  1560. );
  1561. }
  1562. //**************************************************************************
  1563. //**************************************************************************
  1564. //**************************************************************************
  1565. LONG
  1566. WINAPI
  1567. lineGatherDigitsW(
  1568. HCALL hCall,
  1569. DWORD dwDigitModes,
  1570. LPWSTR lpsDigits,
  1571. DWORD dwNumDigits,
  1572. LPCWSTR lpszTerminationDigits,
  1573. DWORD dwFirstDigitTimeout,
  1574. DWORD dwInterDigitTimeout
  1575. )
  1576. {
  1577. static TAPIPROC lpfn = NULL;
  1578. LONG lResult;
  1579. if ( lpfn == NULL )
  1580. {
  1581. //
  1582. // Did we have a problem?
  1583. //
  1584. if ( 0 != (lResult = GetTheFunctionPtr( "lineGatherDigitsW", &lpfn )) )
  1585. {
  1586. lpfn = (TAPIPROC)-1;
  1587. return lResult;
  1588. }
  1589. }
  1590. //
  1591. // Have we determined that this is a lost cause?
  1592. //
  1593. if ( (TAPIPROC)-1 == lpfn )
  1594. {
  1595. return LINEERR_OPERATIONUNAVAIL;
  1596. }
  1597. return (*lpfn)(
  1598. hCall,
  1599. dwDigitModes,
  1600. lpsDigits,
  1601. dwNumDigits,
  1602. lpszTerminationDigits,
  1603. dwFirstDigitTimeout,
  1604. dwInterDigitTimeout
  1605. );
  1606. }
  1607. //**************************************************************************
  1608. //**************************************************************************
  1609. //**************************************************************************
  1610. LONG
  1611. WINAPI
  1612. lineGenerateDigits(
  1613. HCALL hCall,
  1614. DWORD dwDigitMode,
  1615. LPCSTR lpszDigits,
  1616. DWORD dwDuration
  1617. )
  1618. {
  1619. static TAPIPROC lpfn = NULL;
  1620. LONG lResult;
  1621. if ( lpfn == NULL )
  1622. {
  1623. //
  1624. // Did we have a problem?
  1625. //
  1626. if ( 0 != (lResult = GetTheFunctionPtr( "lineGenerateDigits", &lpfn )) )
  1627. {
  1628. lpfn = (TAPIPROC)-1;
  1629. return lResult;
  1630. }
  1631. }
  1632. //
  1633. // Have we determined that this is a lost cause?
  1634. //
  1635. if ( (TAPIPROC)-1 == lpfn )
  1636. {
  1637. return LINEERR_OPERATIONUNAVAIL;
  1638. }
  1639. return (*lpfn)(
  1640. hCall,
  1641. dwDigitMode,
  1642. lpszDigits,
  1643. dwDuration
  1644. );
  1645. }
  1646. //**************************************************************************
  1647. //**************************************************************************
  1648. //**************************************************************************
  1649. LONG
  1650. WINAPI
  1651. lineGenerateDigitsA(
  1652. HCALL hCall,
  1653. DWORD dwDigitMode,
  1654. LPCSTR lpszDigits,
  1655. DWORD dwDuration
  1656. )
  1657. {
  1658. static TAPIPROC lpfn = NULL;
  1659. LONG lResult;
  1660. if ( lpfn == NULL )
  1661. {
  1662. //
  1663. // Did we have a problem?
  1664. //
  1665. if ( 0 != (lResult = GetTheFunctionPtr( "lineGenerateDigitsA", &lpfn )) )
  1666. {
  1667. lpfn = (TAPIPROC)-1;
  1668. return lResult;
  1669. }
  1670. }
  1671. //
  1672. // Have we determined that this is a lost cause?
  1673. //
  1674. if ( (TAPIPROC)-1 == lpfn )
  1675. {
  1676. return LINEERR_OPERATIONUNAVAIL;
  1677. }
  1678. return (*lpfn)(
  1679. hCall,
  1680. dwDigitMode,
  1681. lpszDigits,
  1682. dwDuration
  1683. );
  1684. }
  1685. //**************************************************************************
  1686. //**************************************************************************
  1687. //**************************************************************************
  1688. LONG
  1689. WINAPI
  1690. lineGenerateDigitsW(
  1691. HCALL hCall,
  1692. DWORD dwDigitMode,
  1693. LPCWSTR lpszDigits,
  1694. DWORD dwDuration
  1695. )
  1696. {
  1697. static TAPIPROC lpfn = NULL;
  1698. LONG lResult;
  1699. if ( lpfn == NULL )
  1700. {
  1701. //
  1702. // Did we have a problem?
  1703. //
  1704. if ( 0 != (lResult = GetTheFunctionPtr( "lineGenerateDigitsW", &lpfn )) )
  1705. {
  1706. lpfn = (TAPIPROC)-1;
  1707. return lResult;
  1708. }
  1709. }
  1710. //
  1711. // Have we determined that this is a lost cause?
  1712. //
  1713. if ( (TAPIPROC)-1 == lpfn )
  1714. {
  1715. return LINEERR_OPERATIONUNAVAIL;
  1716. }
  1717. return (*lpfn)(
  1718. hCall,
  1719. dwDigitMode,
  1720. lpszDigits,
  1721. dwDuration
  1722. );
  1723. }
  1724. //**************************************************************************
  1725. //**************************************************************************
  1726. //**************************************************************************
  1727. LONG
  1728. WINAPI
  1729. lineGenerateTone(
  1730. HCALL hCall,
  1731. DWORD dwToneMode,
  1732. DWORD dwDuration,
  1733. DWORD dwNumTones,
  1734. LPLINEGENERATETONE const lpTones
  1735. )
  1736. {
  1737. static TAPIPROC lpfn = NULL;
  1738. LONG lResult;
  1739. if ( lpfn == NULL )
  1740. {
  1741. //
  1742. // Did we have a problem?
  1743. //
  1744. if ( 0 != (lResult = GetTheFunctionPtr( "lineGenerateTone", &lpfn )) )
  1745. {
  1746. lpfn = (TAPIPROC)-1;
  1747. return lResult;
  1748. }
  1749. }
  1750. //
  1751. // Have we determined that this is a lost cause?
  1752. //
  1753. if ( (TAPIPROC)-1 == lpfn )
  1754. {
  1755. return LINEERR_OPERATIONUNAVAIL;
  1756. }
  1757. return (*lpfn)(
  1758. hCall,
  1759. dwToneMode,
  1760. dwDuration,
  1761. dwNumTones,
  1762. lpTones
  1763. );
  1764. }
  1765. //**************************************************************************
  1766. //**************************************************************************
  1767. //**************************************************************************
  1768. LONG
  1769. WINAPI
  1770. lineGetAddressCaps(
  1771. HLINEAPP hLineApp,
  1772. DWORD dwDeviceID,
  1773. DWORD dwAddressID,
  1774. DWORD dwAPIVersion,
  1775. DWORD dwExtVersion,
  1776. LPLINEADDRESSCAPS lpAddressCaps
  1777. )
  1778. {
  1779. static TAPIPROC lpfn = NULL;
  1780. LONG lResult;
  1781. if ( lpfn == NULL )
  1782. {
  1783. //
  1784. // Did we have a problem?
  1785. //
  1786. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressCaps", &lpfn )) )
  1787. {
  1788. lpfn = (TAPIPROC)-1;
  1789. return lResult;
  1790. }
  1791. }
  1792. //
  1793. // Have we determined that this is a lost cause?
  1794. //
  1795. if ( (TAPIPROC)-1 == lpfn )
  1796. {
  1797. return LINEERR_OPERATIONUNAVAIL;
  1798. }
  1799. return (*lpfn)(
  1800. hLineApp,
  1801. dwDeviceID,
  1802. dwAddressID,
  1803. dwAPIVersion,
  1804. dwExtVersion,
  1805. lpAddressCaps
  1806. );
  1807. }
  1808. //**************************************************************************
  1809. //**************************************************************************
  1810. //**************************************************************************
  1811. LONG
  1812. WINAPI
  1813. lineGetAddressCapsA(
  1814. HLINEAPP hLineApp,
  1815. DWORD dwDeviceID,
  1816. DWORD dwAddressID,
  1817. DWORD dwAPIVersion,
  1818. DWORD dwExtVersion,
  1819. LPLINEADDRESSCAPS lpAddressCaps
  1820. )
  1821. {
  1822. static TAPIPROC lpfn = NULL;
  1823. LONG lResult;
  1824. if ( lpfn == NULL )
  1825. {
  1826. //
  1827. // Did we have a problem?
  1828. //
  1829. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressCapsA", &lpfn )) )
  1830. {
  1831. lpfn = (TAPIPROC)-1;
  1832. return lResult;
  1833. }
  1834. }
  1835. //
  1836. // Have we determined that this is a lost cause?
  1837. //
  1838. if ( (TAPIPROC)-1 == lpfn )
  1839. {
  1840. return LINEERR_OPERATIONUNAVAIL;
  1841. }
  1842. return (*lpfn)(
  1843. hLineApp,
  1844. dwDeviceID,
  1845. dwAddressID,
  1846. dwAPIVersion,
  1847. dwExtVersion,
  1848. lpAddressCaps
  1849. );
  1850. }
  1851. //**************************************************************************
  1852. //**************************************************************************
  1853. //**************************************************************************
  1854. LONG
  1855. WINAPI
  1856. lineGetAddressCapsW(
  1857. HLINEAPP hLineApp,
  1858. DWORD dwDeviceID,
  1859. DWORD dwAddressID,
  1860. DWORD dwAPIVersion,
  1861. DWORD dwExtVersion,
  1862. LPLINEADDRESSCAPS lpAddressCaps
  1863. )
  1864. {
  1865. static TAPIPROC lpfn = NULL;
  1866. LONG lResult;
  1867. if ( lpfn == NULL )
  1868. {
  1869. //
  1870. // Did we have a problem?
  1871. //
  1872. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressCapsW", &lpfn )) )
  1873. {
  1874. lpfn = (TAPIPROC)-1;
  1875. return lResult;
  1876. }
  1877. }
  1878. //
  1879. // Have we determined that this is a lost cause?
  1880. //
  1881. if ( (TAPIPROC)-1 == lpfn )
  1882. {
  1883. return LINEERR_OPERATIONUNAVAIL;
  1884. }
  1885. return (*lpfn)(
  1886. hLineApp,
  1887. dwDeviceID,
  1888. dwAddressID,
  1889. dwAPIVersion,
  1890. dwExtVersion,
  1891. lpAddressCaps
  1892. );
  1893. }
  1894. //**************************************************************************
  1895. //**************************************************************************
  1896. //**************************************************************************
  1897. LONG
  1898. WINAPI
  1899. lineGetAddressID(
  1900. HLINE hLine,
  1901. LPDWORD lpdwAddressID,
  1902. DWORD dwAddressMode,
  1903. LPCSTR lpsAddress,
  1904. DWORD dwSize
  1905. )
  1906. {
  1907. static TAPIPROC lpfn = NULL;
  1908. LONG lResult;
  1909. if ( lpfn == NULL )
  1910. {
  1911. //
  1912. // Did we have a problem?
  1913. //
  1914. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressID", &lpfn )) )
  1915. {
  1916. lpfn = (TAPIPROC)-1;
  1917. return lResult;
  1918. }
  1919. }
  1920. //
  1921. // Have we determined that this is a lost cause?
  1922. //
  1923. if ( (TAPIPROC)-1 == lpfn )
  1924. {
  1925. return LINEERR_OPERATIONUNAVAIL;
  1926. }
  1927. return (*lpfn)(
  1928. hLine,
  1929. lpdwAddressID,
  1930. dwAddressMode,
  1931. lpsAddress,
  1932. dwSize
  1933. );
  1934. }
  1935. //**************************************************************************
  1936. //**************************************************************************
  1937. //**************************************************************************
  1938. LONG
  1939. WINAPI
  1940. lineGetAddressIDA(
  1941. HLINE hLine,
  1942. LPDWORD lpdwAddressID,
  1943. DWORD dwAddressMode,
  1944. LPCSTR lpsAddress,
  1945. DWORD dwSize
  1946. )
  1947. {
  1948. static TAPIPROC lpfn = NULL;
  1949. LONG lResult;
  1950. if ( lpfn == NULL )
  1951. {
  1952. //
  1953. // Did we have a problem?
  1954. //
  1955. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressIDA", &lpfn )) )
  1956. {
  1957. lpfn = (TAPIPROC)-1;
  1958. return lResult;
  1959. }
  1960. }
  1961. //
  1962. // Have we determined that this is a lost cause?
  1963. //
  1964. if ( (TAPIPROC)-1 == lpfn )
  1965. {
  1966. return LINEERR_OPERATIONUNAVAIL;
  1967. }
  1968. return (*lpfn)(
  1969. hLine,
  1970. lpdwAddressID,
  1971. dwAddressMode,
  1972. lpsAddress,
  1973. dwSize
  1974. );
  1975. }
  1976. //**************************************************************************
  1977. //**************************************************************************
  1978. //**************************************************************************
  1979. LONG
  1980. WINAPI
  1981. lineGetAddressIDW(
  1982. HLINE hLine,
  1983. LPDWORD lpdwAddressID,
  1984. DWORD dwAddressMode,
  1985. LPCWSTR lpsAddress,
  1986. DWORD dwSize
  1987. )
  1988. {
  1989. static TAPIPROC lpfn = NULL;
  1990. LONG lResult;
  1991. if ( lpfn == NULL )
  1992. {
  1993. //
  1994. // Did we have a problem?
  1995. //
  1996. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressIDW", &lpfn )) )
  1997. {
  1998. lpfn = (TAPIPROC)-1;
  1999. return lResult;
  2000. }
  2001. }
  2002. //
  2003. // Have we determined that this is a lost cause?
  2004. //
  2005. if ( (TAPIPROC)-1 == lpfn )
  2006. {
  2007. return LINEERR_OPERATIONUNAVAIL;
  2008. }
  2009. return (*lpfn)(
  2010. hLine,
  2011. lpdwAddressID,
  2012. dwAddressMode,
  2013. lpsAddress,
  2014. dwSize
  2015. );
  2016. }
  2017. //**************************************************************************
  2018. //**************************************************************************
  2019. //**************************************************************************
  2020. LONG
  2021. WINAPI
  2022. lineGetAddressStatus(
  2023. HLINE hLine,
  2024. DWORD dwAddressID,
  2025. LPLINEADDRESSSTATUS lpAddressStatus
  2026. )
  2027. {
  2028. static TAPIPROC lpfn = NULL;
  2029. LONG lResult;
  2030. if ( lpfn == NULL )
  2031. {
  2032. //
  2033. // Did we have a problem?
  2034. //
  2035. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressStatus", &lpfn )) )
  2036. {
  2037. lpfn = (TAPIPROC)-1;
  2038. return lResult;
  2039. }
  2040. }
  2041. //
  2042. // Have we determined that this is a lost cause?
  2043. //
  2044. if ( (TAPIPROC)-1 == lpfn )
  2045. {
  2046. return LINEERR_OPERATIONUNAVAIL;
  2047. }
  2048. return (*lpfn)(
  2049. hLine,
  2050. dwAddressID,
  2051. lpAddressStatus
  2052. );
  2053. }
  2054. //**************************************************************************
  2055. //**************************************************************************
  2056. //**************************************************************************
  2057. LONG
  2058. WINAPI
  2059. lineGetAddressStatusA(
  2060. HLINE hLine,
  2061. DWORD dwAddressID,
  2062. LPLINEADDRESSSTATUS lpAddressStatus
  2063. )
  2064. {
  2065. static TAPIPROC lpfn = NULL;
  2066. LONG lResult;
  2067. if ( lpfn == NULL )
  2068. {
  2069. //
  2070. // Did we have a problem?
  2071. //
  2072. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressStatusA", &lpfn )) )
  2073. {
  2074. lpfn = (TAPIPROC)-1;
  2075. return lResult;
  2076. }
  2077. }
  2078. //
  2079. // Have we determined that this is a lost cause?
  2080. //
  2081. if ( (TAPIPROC)-1 == lpfn )
  2082. {
  2083. return LINEERR_OPERATIONUNAVAIL;
  2084. }
  2085. return (*lpfn)(
  2086. hLine,
  2087. dwAddressID,
  2088. lpAddressStatus
  2089. );
  2090. }
  2091. //**************************************************************************
  2092. //**************************************************************************
  2093. //**************************************************************************
  2094. LONG
  2095. WINAPI
  2096. lineGetAddressStatusW(
  2097. HLINE hLine,
  2098. DWORD dwAddressID,
  2099. LPLINEADDRESSSTATUS lpAddressStatus
  2100. )
  2101. {
  2102. static TAPIPROC lpfn = NULL;
  2103. LONG lResult;
  2104. if ( lpfn == NULL )
  2105. {
  2106. //
  2107. // Did we have a problem?
  2108. //
  2109. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAddressStatusW", &lpfn )) )
  2110. {
  2111. lpfn = (TAPIPROC)-1;
  2112. return lResult;
  2113. }
  2114. }
  2115. //
  2116. // Have we determined that this is a lost cause?
  2117. //
  2118. if ( (TAPIPROC)-1 == lpfn )
  2119. {
  2120. return LINEERR_OPERATIONUNAVAIL;
  2121. }
  2122. return (*lpfn)(
  2123. hLine,
  2124. dwAddressID,
  2125. lpAddressStatus
  2126. );
  2127. }
  2128. //**************************************************************************
  2129. //**************************************************************************
  2130. //**************************************************************************
  2131. LONG
  2132. WINAPI
  2133. lineGetAgentActivityListA(
  2134. HLINE hLine,
  2135. DWORD dwAddressID,
  2136. LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2137. )
  2138. {
  2139. static TAPIPROC lpfn = NULL;
  2140. LONG lResult;
  2141. if ( lpfn == NULL )
  2142. {
  2143. //
  2144. // Did we have a problem?
  2145. //
  2146. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentActivityListA", &lpfn )) )
  2147. {
  2148. lpfn = (TAPIPROC)-1;
  2149. return lResult;
  2150. }
  2151. }
  2152. //
  2153. // Have we determined that this is a lost cause?
  2154. //
  2155. if ( (TAPIPROC)-1 == lpfn )
  2156. {
  2157. return LINEERR_OPERATIONUNAVAIL;
  2158. }
  2159. return (*lpfn)(
  2160. hLine,
  2161. dwAddressID,
  2162. lpAgentActivityList
  2163. );
  2164. }
  2165. //**************************************************************************
  2166. //**************************************************************************
  2167. //**************************************************************************
  2168. LONG
  2169. WINAPI
  2170. lineGetAgentActivityListW(
  2171. HLINE hLine,
  2172. DWORD dwAddressID,
  2173. LPLINEAGENTACTIVITYLIST lpAgentActivityList
  2174. )
  2175. {
  2176. static TAPIPROC lpfn = NULL;
  2177. LONG lResult;
  2178. if ( lpfn == NULL )
  2179. {
  2180. //
  2181. // Did we have a problem?
  2182. //
  2183. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentActivityListW", &lpfn )) )
  2184. {
  2185. lpfn = (TAPIPROC)-1;
  2186. return lResult;
  2187. }
  2188. }
  2189. //
  2190. // Have we determined that this is a lost cause?
  2191. //
  2192. if ( (TAPIPROC)-1 == lpfn )
  2193. {
  2194. return LINEERR_OPERATIONUNAVAIL;
  2195. }
  2196. return (*lpfn)(
  2197. hLine,
  2198. dwAddressID,
  2199. lpAgentActivityList
  2200. );
  2201. }
  2202. //**************************************************************************
  2203. //**************************************************************************
  2204. //**************************************************************************
  2205. LONG
  2206. WINAPI
  2207. lineGetAgentCapsA(
  2208. HLINEAPP hLineApp,
  2209. DWORD dwDeviceID,
  2210. DWORD dwAddressID,
  2211. DWORD dwAppAPIVersion,
  2212. LPLINEAGENTCAPS lpAgentCaps
  2213. )
  2214. {
  2215. static TAPIPROC lpfn = NULL;
  2216. LONG lResult;
  2217. if ( lpfn == NULL )
  2218. {
  2219. //
  2220. // Did we have a problem?
  2221. //
  2222. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentCapsA", &lpfn )) )
  2223. {
  2224. lpfn = (TAPIPROC)-1;
  2225. return lResult;
  2226. }
  2227. }
  2228. //
  2229. // Have we determined that this is a lost cause?
  2230. //
  2231. if ( (TAPIPROC)-1 == lpfn )
  2232. {
  2233. return LINEERR_OPERATIONUNAVAIL;
  2234. }
  2235. return (*lpfn)(
  2236. hLineApp,
  2237. dwDeviceID,
  2238. dwAddressID,
  2239. dwAppAPIVersion,
  2240. lpAgentCaps
  2241. );
  2242. }
  2243. //**************************************************************************
  2244. //**************************************************************************
  2245. //**************************************************************************
  2246. LONG
  2247. WINAPI
  2248. lineGetAgentCapsW(
  2249. HLINEAPP hLineApp,
  2250. DWORD dwDeviceID,
  2251. DWORD dwAddressID,
  2252. DWORD dwAppAPIVersion,
  2253. LPLINEAGENTCAPS lpAgentCaps
  2254. )
  2255. {
  2256. static TAPIPROC lpfn = NULL;
  2257. LONG lResult;
  2258. if ( lpfn == NULL )
  2259. {
  2260. //
  2261. // Did we have a problem?
  2262. //
  2263. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentCapsW", &lpfn )) )
  2264. {
  2265. lpfn = (TAPIPROC)-1;
  2266. return lResult;
  2267. }
  2268. }
  2269. //
  2270. // Have we determined that this is a lost cause?
  2271. //
  2272. if ( (TAPIPROC)-1 == lpfn )
  2273. {
  2274. return LINEERR_OPERATIONUNAVAIL;
  2275. }
  2276. return (*lpfn)(
  2277. hLineApp,
  2278. dwDeviceID,
  2279. dwAddressID,
  2280. dwAppAPIVersion,
  2281. lpAgentCaps
  2282. );
  2283. }
  2284. //**************************************************************************
  2285. //**************************************************************************
  2286. //**************************************************************************
  2287. LONG
  2288. WINAPI
  2289. lineGetAgentGroupListA(
  2290. HLINE hLine,
  2291. DWORD dwAddressID,
  2292. LPLINEAGENTGROUPLIST lpAgentGroupList
  2293. )
  2294. {
  2295. static TAPIPROC lpfn = NULL;
  2296. LONG lResult;
  2297. if ( lpfn == NULL )
  2298. {
  2299. //
  2300. // Did we have a problem?
  2301. //
  2302. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentGroupListA", &lpfn )) )
  2303. {
  2304. lpfn = (TAPIPROC)-1;
  2305. return lResult;
  2306. }
  2307. }
  2308. //
  2309. // Have we determined that this is a lost cause?
  2310. //
  2311. if ( (TAPIPROC)-1 == lpfn )
  2312. {
  2313. return LINEERR_OPERATIONUNAVAIL;
  2314. }
  2315. return (*lpfn)(
  2316. hLine,
  2317. dwAddressID,
  2318. lpAgentGroupList
  2319. );
  2320. }
  2321. //**************************************************************************
  2322. //**************************************************************************
  2323. //**************************************************************************
  2324. LONG
  2325. WINAPI
  2326. lineGetAgentGroupListW(
  2327. HLINE hLine,
  2328. DWORD dwAddressID,
  2329. LPLINEAGENTGROUPLIST lpAgentGroupList
  2330. )
  2331. {
  2332. static TAPIPROC lpfn = NULL;
  2333. LONG lResult;
  2334. if ( lpfn == NULL )
  2335. {
  2336. //
  2337. // Did we have a problem?
  2338. //
  2339. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentGroupListW", &lpfn )) )
  2340. {
  2341. lpfn = (TAPIPROC)-1;
  2342. return lResult;
  2343. }
  2344. }
  2345. //
  2346. // Have we determined that this is a lost cause?
  2347. //
  2348. if ( (TAPIPROC)-1 == lpfn )
  2349. {
  2350. return LINEERR_OPERATIONUNAVAIL;
  2351. }
  2352. return (*lpfn)(
  2353. hLine,
  2354. dwAddressID,
  2355. lpAgentGroupList
  2356. );
  2357. }
  2358. //**************************************************************************
  2359. //**************************************************************************
  2360. //**************************************************************************
  2361. LONG
  2362. WINAPI
  2363. lineGetAgentInfo( // TAPI v2.2
  2364. HLINE hLine,
  2365. HAGENT hAgent,
  2366. LPLINEAGENTINFO lpAgentInfo
  2367. )
  2368. {
  2369. static TAPIPROC lpfn = NULL;
  2370. LONG lResult;
  2371. if ( lpfn == NULL )
  2372. {
  2373. //
  2374. // Did we have a problem?
  2375. //
  2376. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentInfo", &lpfn )) )
  2377. {
  2378. lpfn = (TAPIPROC)-1;
  2379. return lResult;
  2380. }
  2381. }
  2382. //
  2383. // Have we determined that this is a lost cause?
  2384. //
  2385. if ( (TAPIPROC)-1 == lpfn )
  2386. {
  2387. return LINEERR_OPERATIONUNAVAIL;
  2388. }
  2389. return (*lpfn)(
  2390. hLine,
  2391. hAgent,
  2392. lpAgentInfo
  2393. );
  2394. }
  2395. //**************************************************************************
  2396. //**************************************************************************
  2397. //**************************************************************************
  2398. LONG
  2399. WINAPI
  2400. lineGetAgentSessionInfo( // TAPI v2.2
  2401. HLINE hLine,
  2402. HAGENTSESSION hAgentSession,
  2403. LPLINEAGENTSESSIONINFO lpAgentSessionInfo
  2404. )
  2405. {
  2406. static TAPIPROC lpfn = NULL;
  2407. LONG lResult;
  2408. if ( lpfn == NULL )
  2409. {
  2410. //
  2411. // Did we have a problem?
  2412. //
  2413. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentSessionInfo", &lpfn )) )
  2414. {
  2415. lpfn = (TAPIPROC)-1;
  2416. return lResult;
  2417. }
  2418. }
  2419. //
  2420. // Have we determined that this is a lost cause?
  2421. //
  2422. if ( (TAPIPROC)-1 == lpfn )
  2423. {
  2424. return LINEERR_OPERATIONUNAVAIL;
  2425. }
  2426. return (*lpfn)(
  2427. hLine,
  2428. hAgentSession,
  2429. lpAgentSessionInfo
  2430. );
  2431. }
  2432. //**************************************************************************
  2433. //**************************************************************************
  2434. //**************************************************************************
  2435. LONG
  2436. WINAPI
  2437. lineGetAgentSessionList( // TAPI v2.2
  2438. HLINE hLine,
  2439. HAGENT hAgent,
  2440. LPLINEAGENTSESSIONLIST lpAgentSessionList
  2441. )
  2442. {
  2443. static TAPIPROC lpfn = NULL;
  2444. LONG lResult;
  2445. if ( lpfn == NULL )
  2446. {
  2447. //
  2448. // Did we have a problem?
  2449. //
  2450. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentSessionList", &lpfn )) )
  2451. {
  2452. lpfn = (TAPIPROC)-1;
  2453. return lResult;
  2454. }
  2455. }
  2456. //
  2457. // Have we determined that this is a lost cause?
  2458. //
  2459. if ( (TAPIPROC)-1 == lpfn )
  2460. {
  2461. return LINEERR_OPERATIONUNAVAIL;
  2462. }
  2463. return (*lpfn)(
  2464. hLine,
  2465. hAgent,
  2466. lpAgentSessionList
  2467. );
  2468. }
  2469. //**************************************************************************
  2470. //**************************************************************************
  2471. //**************************************************************************
  2472. LONG
  2473. WINAPI
  2474. lineGetAgentStatusA(
  2475. HLINE hLine,
  2476. DWORD dwAddressID,
  2477. LPLINEAGENTSTATUS lpAgentStatus
  2478. )
  2479. {
  2480. static TAPIPROC lpfn = NULL;
  2481. LONG lResult;
  2482. if ( lpfn == NULL )
  2483. {
  2484. //
  2485. // Did we have a problem?
  2486. //
  2487. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentStatusA", &lpfn )) )
  2488. {
  2489. lpfn = (TAPIPROC)-1;
  2490. return lResult;
  2491. }
  2492. }
  2493. //
  2494. // Have we determined that this is a lost cause?
  2495. //
  2496. if ( (TAPIPROC)-1 == lpfn )
  2497. {
  2498. return LINEERR_OPERATIONUNAVAIL;
  2499. }
  2500. return (*lpfn)(
  2501. hLine,
  2502. dwAddressID,
  2503. lpAgentStatus
  2504. );
  2505. }
  2506. //**************************************************************************
  2507. //**************************************************************************
  2508. //**************************************************************************
  2509. LONG
  2510. WINAPI
  2511. lineGetAgentStatusW(
  2512. HLINE hLine,
  2513. DWORD dwAddressID,
  2514. LPLINEAGENTSTATUS lpAgentStatus
  2515. )
  2516. {
  2517. static TAPIPROC lpfn = NULL;
  2518. LONG lResult;
  2519. if ( lpfn == NULL )
  2520. {
  2521. //
  2522. // Did we have a problem?
  2523. //
  2524. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAgentStatusW", &lpfn )) )
  2525. {
  2526. lpfn = (TAPIPROC)-1;
  2527. return lResult;
  2528. }
  2529. }
  2530. //
  2531. // Have we determined that this is a lost cause?
  2532. //
  2533. if ( (TAPIPROC)-1 == lpfn )
  2534. {
  2535. return LINEERR_OPERATIONUNAVAIL;
  2536. }
  2537. return (*lpfn)(
  2538. hLine,
  2539. dwAddressID,
  2540. lpAgentStatus
  2541. );
  2542. }
  2543. //**************************************************************************
  2544. //**************************************************************************
  2545. //**************************************************************************
  2546. LONG
  2547. WINAPI
  2548. lineGetAppPriority(
  2549. LPCSTR lpszAppFilename,
  2550. DWORD dwMediaMode,
  2551. LPLINEEXTENSIONID lpExtensionID,
  2552. DWORD dwRequestMode,
  2553. LPVARSTRING lpExtensionName,
  2554. LPDWORD lpdwPriority
  2555. )
  2556. {
  2557. static TAPIPROC lpfn = NULL;
  2558. LONG lResult;
  2559. if ( lpfn == NULL )
  2560. {
  2561. //
  2562. // Did we have a problem?
  2563. //
  2564. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAppPriority", &lpfn )) )
  2565. {
  2566. lpfn = (TAPIPROC)-1;
  2567. return lResult;
  2568. }
  2569. }
  2570. //
  2571. // Have we determined that this is a lost cause?
  2572. //
  2573. if ( (TAPIPROC)-1 == lpfn )
  2574. {
  2575. return LINEERR_OPERATIONUNAVAIL;
  2576. }
  2577. return (*lpfn)(
  2578. lpszAppFilename,
  2579. dwMediaMode,
  2580. lpExtensionID,
  2581. dwRequestMode,
  2582. lpExtensionName,
  2583. lpdwPriority
  2584. );
  2585. }
  2586. //**************************************************************************
  2587. //**************************************************************************
  2588. //**************************************************************************
  2589. LONG
  2590. WINAPI
  2591. lineGetAppPriorityA(
  2592. LPCSTR lpszAppFilename,
  2593. DWORD dwMediaMode,
  2594. LPLINEEXTENSIONID lpExtensionID,
  2595. DWORD dwRequestMode,
  2596. LPVARSTRING lpExtensionName,
  2597. LPDWORD lpdwPriority
  2598. )
  2599. {
  2600. static TAPIPROC lpfn = NULL;
  2601. LONG lResult;
  2602. if ( lpfn == NULL )
  2603. {
  2604. //
  2605. // Did we have a problem?
  2606. //
  2607. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAppPriorityA", &lpfn )) )
  2608. {
  2609. lpfn = (TAPIPROC)-1;
  2610. return lResult;
  2611. }
  2612. }
  2613. //
  2614. // Have we determined that this is a lost cause?
  2615. //
  2616. if ( (TAPIPROC)-1 == lpfn )
  2617. {
  2618. return LINEERR_OPERATIONUNAVAIL;
  2619. }
  2620. return (*lpfn)(
  2621. lpszAppFilename,
  2622. dwMediaMode,
  2623. lpExtensionID,
  2624. dwRequestMode,
  2625. lpExtensionName,
  2626. lpdwPriority
  2627. );
  2628. }
  2629. //**************************************************************************
  2630. //**************************************************************************
  2631. //**************************************************************************
  2632. LONG
  2633. WINAPI
  2634. lineGetAppPriorityW(
  2635. LPCWSTR lpszAppFilename,
  2636. DWORD dwMediaMode,
  2637. LPLINEEXTENSIONID lpExtensionID,
  2638. DWORD dwRequestMode,
  2639. LPVARSTRING lpExtensionName,
  2640. LPDWORD lpdwPriority
  2641. )
  2642. {
  2643. static TAPIPROC lpfn = NULL;
  2644. LONG lResult;
  2645. if ( lpfn == NULL )
  2646. {
  2647. //
  2648. // Did we have a problem?
  2649. //
  2650. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetAppPriorityW", &lpfn )) )
  2651. {
  2652. lpfn = (TAPIPROC)-1;
  2653. return lResult;
  2654. }
  2655. }
  2656. //
  2657. // Have we determined that this is a lost cause?
  2658. //
  2659. if ( (TAPIPROC)-1 == lpfn )
  2660. {
  2661. return LINEERR_OPERATIONUNAVAIL;
  2662. }
  2663. return (*lpfn)(
  2664. lpszAppFilename,
  2665. dwMediaMode,
  2666. lpExtensionID,
  2667. dwRequestMode,
  2668. lpExtensionName,
  2669. lpdwPriority
  2670. );
  2671. }
  2672. //**************************************************************************
  2673. //**************************************************************************
  2674. //**************************************************************************
  2675. LONG
  2676. WINAPI
  2677. lineGetCallInfo(
  2678. HCALL hCall,
  2679. LPLINECALLINFO lpCallInfo
  2680. )
  2681. {
  2682. static TAPIPROC lpfn = NULL;
  2683. LONG lResult;
  2684. if ( lpfn == NULL )
  2685. {
  2686. //
  2687. // Did we have a problem?
  2688. //
  2689. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCallInfo", &lpfn )) )
  2690. {
  2691. lpfn = (TAPIPROC)-1;
  2692. return lResult;
  2693. }
  2694. }
  2695. //
  2696. // Have we determined that this is a lost cause?
  2697. //
  2698. if ( (TAPIPROC)-1 == lpfn )
  2699. {
  2700. return LINEERR_OPERATIONUNAVAIL;
  2701. }
  2702. return (*lpfn)(
  2703. hCall,
  2704. lpCallInfo
  2705. );
  2706. }
  2707. //**************************************************************************
  2708. //**************************************************************************
  2709. //**************************************************************************
  2710. LONG
  2711. WINAPI
  2712. lineGetCallInfoA(
  2713. HCALL hCall,
  2714. LPLINECALLINFO lpCallInfo
  2715. )
  2716. {
  2717. static TAPIPROC lpfn = NULL;
  2718. LONG lResult;
  2719. if ( lpfn == NULL )
  2720. {
  2721. //
  2722. // Did we have a problem?
  2723. //
  2724. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCallInfoA", &lpfn )) )
  2725. {
  2726. lpfn = (TAPIPROC)-1;
  2727. return lResult;
  2728. }
  2729. }
  2730. //
  2731. // Have we determined that this is a lost cause?
  2732. //
  2733. if ( (TAPIPROC)-1 == lpfn )
  2734. {
  2735. return LINEERR_OPERATIONUNAVAIL;
  2736. }
  2737. return (*lpfn)(
  2738. hCall,
  2739. lpCallInfo
  2740. );
  2741. }
  2742. //**************************************************************************
  2743. //**************************************************************************
  2744. //**************************************************************************
  2745. LONG
  2746. WINAPI
  2747. lineGetCallInfoW(
  2748. HCALL hCall,
  2749. LPLINECALLINFO lpCallInfo
  2750. )
  2751. {
  2752. static TAPIPROC lpfn = NULL;
  2753. LONG lResult;
  2754. if ( lpfn == NULL )
  2755. {
  2756. //
  2757. // Did we have a problem?
  2758. //
  2759. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCallInfoW", &lpfn )) )
  2760. {
  2761. lpfn = (TAPIPROC)-1;
  2762. return lResult;
  2763. }
  2764. }
  2765. //
  2766. // Have we determined that this is a lost cause?
  2767. //
  2768. if ( (TAPIPROC)-1 == lpfn )
  2769. {
  2770. return LINEERR_OPERATIONUNAVAIL;
  2771. }
  2772. return (*lpfn)(
  2773. hCall,
  2774. lpCallInfo
  2775. );
  2776. }
  2777. //**************************************************************************
  2778. //**************************************************************************
  2779. //**************************************************************************
  2780. LONG
  2781. WINAPI
  2782. lineGetCallStatus(
  2783. HCALL hCall,
  2784. LPLINECALLSTATUS lpCallStatus
  2785. )
  2786. {
  2787. static TAPIPROC lpfn = NULL;
  2788. LONG lResult;
  2789. if ( lpfn == NULL )
  2790. {
  2791. //
  2792. // Did we have a problem?
  2793. //
  2794. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCallStatus", &lpfn )) )
  2795. {
  2796. lpfn = (TAPIPROC)-1;
  2797. return lResult;
  2798. }
  2799. }
  2800. //
  2801. // Have we determined that this is a lost cause?
  2802. //
  2803. if ( (TAPIPROC)-1 == lpfn )
  2804. {
  2805. return LINEERR_OPERATIONUNAVAIL;
  2806. }
  2807. return (*lpfn)(
  2808. hCall,
  2809. lpCallStatus
  2810. );
  2811. }
  2812. //**************************************************************************
  2813. //**************************************************************************
  2814. //**************************************************************************
  2815. LONG
  2816. WINAPI
  2817. lineGetConfRelatedCalls(
  2818. HCALL hCall,
  2819. LPLINECALLLIST lpCallList
  2820. )
  2821. {
  2822. static TAPIPROC lpfn = NULL;
  2823. LONG lResult;
  2824. if ( lpfn == NULL )
  2825. {
  2826. //
  2827. // Did we have a problem?
  2828. //
  2829. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetConfRelatedCalls", &lpfn )) )
  2830. {
  2831. lpfn = (TAPIPROC)-1;
  2832. return lResult;
  2833. }
  2834. }
  2835. //
  2836. // Have we determined that this is a lost cause?
  2837. //
  2838. if ( (TAPIPROC)-1 == lpfn )
  2839. {
  2840. return LINEERR_OPERATIONUNAVAIL;
  2841. }
  2842. return (*lpfn)(
  2843. hCall,
  2844. lpCallList
  2845. );
  2846. }
  2847. //**************************************************************************
  2848. //**************************************************************************
  2849. //**************************************************************************
  2850. LONG
  2851. WINAPI
  2852. lineGetCountry(
  2853. DWORD dwCountryID,
  2854. DWORD dwAPIVersion,
  2855. LPLINECOUNTRYLIST lpLineCountryList
  2856. )
  2857. {
  2858. static TAPIPROC lpfn = NULL;
  2859. LONG lResult;
  2860. if ( lpfn == NULL )
  2861. {
  2862. //
  2863. // Did we have a problem?
  2864. //
  2865. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCountry", &lpfn )) )
  2866. {
  2867. lpfn = (TAPIPROC)-1;
  2868. return lResult;
  2869. }
  2870. }
  2871. //
  2872. // Have we determined that this is a lost cause?
  2873. //
  2874. if ( (TAPIPROC)-1 == lpfn )
  2875. {
  2876. return LINEERR_OPERATIONUNAVAIL;
  2877. }
  2878. return (*lpfn)(
  2879. dwCountryID,
  2880. dwAPIVersion,
  2881. lpLineCountryList
  2882. );
  2883. }
  2884. //**************************************************************************
  2885. //**************************************************************************
  2886. //**************************************************************************
  2887. LONG
  2888. WINAPI
  2889. lineGetCountryA(
  2890. DWORD dwCountryID,
  2891. DWORD dwAPIVersion,
  2892. LPLINECOUNTRYLIST lpLineCountryList
  2893. )
  2894. {
  2895. static TAPIPROC lpfn = NULL;
  2896. LONG lResult;
  2897. if ( lpfn == NULL )
  2898. {
  2899. //
  2900. // Did we have a problem?
  2901. //
  2902. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCountryA", &lpfn )) )
  2903. {
  2904. lpfn = (TAPIPROC)-1;
  2905. return lResult;
  2906. }
  2907. }
  2908. //
  2909. // Have we determined that this is a lost cause?
  2910. //
  2911. if ( (TAPIPROC)-1 == lpfn )
  2912. {
  2913. return LINEERR_OPERATIONUNAVAIL;
  2914. }
  2915. return (*lpfn)(
  2916. dwCountryID,
  2917. dwAPIVersion,
  2918. lpLineCountryList
  2919. );
  2920. }
  2921. //**************************************************************************
  2922. //**************************************************************************
  2923. //**************************************************************************
  2924. LONG
  2925. WINAPI
  2926. lineGetCountryW(
  2927. DWORD dwCountryID,
  2928. DWORD dwAPIVersion,
  2929. LPLINECOUNTRYLIST lpLineCountryList
  2930. )
  2931. {
  2932. static TAPIPROC lpfn = NULL;
  2933. LONG lResult;
  2934. if ( lpfn == NULL )
  2935. {
  2936. //
  2937. // Did we have a problem?
  2938. //
  2939. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetCountryW", &lpfn )) )
  2940. {
  2941. lpfn = (TAPIPROC)-1;
  2942. return lResult;
  2943. }
  2944. }
  2945. //
  2946. // Have we determined that this is a lost cause?
  2947. //
  2948. if ( (TAPIPROC)-1 == lpfn )
  2949. {
  2950. return LINEERR_OPERATIONUNAVAIL;
  2951. }
  2952. return (*lpfn)(
  2953. dwCountryID,
  2954. dwAPIVersion,
  2955. lpLineCountryList
  2956. );
  2957. }
  2958. //**************************************************************************
  2959. //**************************************************************************
  2960. //**************************************************************************
  2961. LONG
  2962. WINAPI
  2963. lineGetDevCaps(
  2964. HLINEAPP hLineApp,
  2965. DWORD dwDeviceID,
  2966. DWORD dwAPIVersion,
  2967. DWORD dwExtVersion,
  2968. LPLINEDEVCAPS lpLineDevCaps
  2969. )
  2970. {
  2971. static TAPIPROC lpfn = NULL;
  2972. LONG lResult;
  2973. if ( lpfn == NULL )
  2974. {
  2975. //
  2976. // Did we have a problem?
  2977. //
  2978. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevCaps", &lpfn )) )
  2979. {
  2980. lpfn = (TAPIPROC)-1;
  2981. return lResult;
  2982. }
  2983. }
  2984. //
  2985. // Have we determined that this is a lost cause?
  2986. //
  2987. if ( (TAPIPROC)-1 == lpfn )
  2988. {
  2989. return LINEERR_OPERATIONUNAVAIL;
  2990. }
  2991. return (*lpfn)(
  2992. hLineApp,
  2993. dwDeviceID,
  2994. dwAPIVersion,
  2995. dwExtVersion,
  2996. lpLineDevCaps
  2997. );
  2998. }
  2999. //**************************************************************************
  3000. //**************************************************************************
  3001. //**************************************************************************
  3002. LONG
  3003. WINAPI
  3004. lineGetDevCapsA(
  3005. HLINEAPP hLineApp,
  3006. DWORD dwDeviceID,
  3007. DWORD dwAPIVersion,
  3008. DWORD dwExtVersion,
  3009. LPLINEDEVCAPS lpLineDevCaps
  3010. )
  3011. {
  3012. static TAPIPROC lpfn = NULL;
  3013. LONG lResult;
  3014. if ( lpfn == NULL )
  3015. {
  3016. //
  3017. // Did we have a problem?
  3018. //
  3019. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevCapsA", &lpfn )) )
  3020. {
  3021. lpfn = (TAPIPROC)-1;
  3022. return lResult;
  3023. }
  3024. }
  3025. //
  3026. // Have we determined that this is a lost cause?
  3027. //
  3028. if ( (TAPIPROC)-1 == lpfn )
  3029. {
  3030. return LINEERR_OPERATIONUNAVAIL;
  3031. }
  3032. return (*lpfn)(
  3033. hLineApp,
  3034. dwDeviceID,
  3035. dwAPIVersion,
  3036. dwExtVersion,
  3037. lpLineDevCaps
  3038. );
  3039. }
  3040. //**************************************************************************
  3041. //**************************************************************************
  3042. //**************************************************************************
  3043. LONG
  3044. WINAPI
  3045. lineGetDevCapsW(
  3046. HLINEAPP hLineApp,
  3047. DWORD dwDeviceID,
  3048. DWORD dwAPIVersion,
  3049. DWORD dwExtVersion,
  3050. LPLINEDEVCAPS lpLineDevCaps
  3051. )
  3052. {
  3053. static TAPIPROC lpfn = NULL;
  3054. LONG lResult;
  3055. if ( lpfn == NULL )
  3056. {
  3057. //
  3058. // Did we have a problem?
  3059. //
  3060. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevCapsW", &lpfn )) )
  3061. {
  3062. lpfn = (TAPIPROC)-1;
  3063. return lResult;
  3064. }
  3065. }
  3066. //
  3067. // Have we determined that this is a lost cause?
  3068. //
  3069. if ( (TAPIPROC)-1 == lpfn )
  3070. {
  3071. return LINEERR_OPERATIONUNAVAIL;
  3072. }
  3073. return (*lpfn)(
  3074. hLineApp,
  3075. dwDeviceID,
  3076. dwAPIVersion,
  3077. dwExtVersion,
  3078. lpLineDevCaps
  3079. );
  3080. }
  3081. //**************************************************************************
  3082. //**************************************************************************
  3083. //**************************************************************************
  3084. LONG
  3085. WINAPI
  3086. lineGetDevConfig(
  3087. DWORD dwDeviceID,
  3088. LPVARSTRING lpDeviceConfig,
  3089. LPCSTR lpszDeviceClass
  3090. )
  3091. {
  3092. static TAPIPROC lpfn = NULL;
  3093. LONG lResult;
  3094. if ( lpfn == NULL )
  3095. {
  3096. //
  3097. // Did we have a problem?
  3098. //
  3099. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevConfig", &lpfn )) )
  3100. {
  3101. lpfn = (TAPIPROC)-1;
  3102. return lResult;
  3103. }
  3104. }
  3105. //
  3106. // Have we determined that this is a lost cause?
  3107. //
  3108. if ( (TAPIPROC)-1 == lpfn )
  3109. {
  3110. return LINEERR_OPERATIONUNAVAIL;
  3111. }
  3112. return (*lpfn)(
  3113. dwDeviceID,
  3114. lpDeviceConfig,
  3115. lpszDeviceClass
  3116. );
  3117. }
  3118. //**************************************************************************
  3119. //**************************************************************************
  3120. //**************************************************************************
  3121. LONG
  3122. WINAPI
  3123. lineGetDevConfigA(
  3124. DWORD dwDeviceID,
  3125. LPVARSTRING lpDeviceConfig,
  3126. LPCSTR lpszDeviceClass
  3127. )
  3128. {
  3129. static TAPIPROC lpfn = NULL;
  3130. LONG lResult;
  3131. if ( lpfn == NULL )
  3132. {
  3133. //
  3134. // Did we have a problem?
  3135. //
  3136. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevConfigA", &lpfn )) )
  3137. {
  3138. lpfn = (TAPIPROC)-1;
  3139. return lResult;
  3140. }
  3141. }
  3142. //
  3143. // Have we determined that this is a lost cause?
  3144. //
  3145. if ( (TAPIPROC)-1 == lpfn )
  3146. {
  3147. return LINEERR_OPERATIONUNAVAIL;
  3148. }
  3149. return (*lpfn)(
  3150. dwDeviceID,
  3151. lpDeviceConfig,
  3152. lpszDeviceClass
  3153. );
  3154. }
  3155. //**************************************************************************
  3156. //**************************************************************************
  3157. //**************************************************************************
  3158. LONG
  3159. WINAPI
  3160. lineGetDevConfigW(
  3161. DWORD dwDeviceID,
  3162. LPVARSTRING lpDeviceConfig,
  3163. LPCWSTR lpszDeviceClass
  3164. )
  3165. {
  3166. static TAPIPROC lpfn = NULL;
  3167. LONG lResult;
  3168. if ( lpfn == NULL )
  3169. {
  3170. //
  3171. // Did we have a problem?
  3172. //
  3173. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetDevConfigW", &lpfn )) )
  3174. {
  3175. lpfn = (TAPIPROC)-1;
  3176. return lResult;
  3177. }
  3178. }
  3179. //
  3180. // Have we determined that this is a lost cause?
  3181. //
  3182. if ( (TAPIPROC)-1 == lpfn )
  3183. {
  3184. return LINEERR_OPERATIONUNAVAIL;
  3185. }
  3186. return (*lpfn)(
  3187. dwDeviceID,
  3188. lpDeviceConfig,
  3189. lpszDeviceClass
  3190. );
  3191. }
  3192. //**************************************************************************
  3193. //**************************************************************************
  3194. //**************************************************************************
  3195. LONG
  3196. WINAPI
  3197. lineGetNewCalls(
  3198. HLINE hLine,
  3199. DWORD dwAddressID,
  3200. DWORD dwSelect,
  3201. LPLINECALLLIST lpCallList
  3202. )
  3203. {
  3204. static TAPIPROC lpfn = NULL;
  3205. LONG lResult;
  3206. if ( lpfn == NULL )
  3207. {
  3208. //
  3209. // Did we have a problem?
  3210. //
  3211. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetNewCalls", &lpfn )) )
  3212. {
  3213. lpfn = (TAPIPROC)-1;
  3214. return lResult;
  3215. }
  3216. }
  3217. //
  3218. // Have we determined that this is a lost cause?
  3219. //
  3220. if ( (TAPIPROC)-1 == lpfn )
  3221. {
  3222. return LINEERR_OPERATIONUNAVAIL;
  3223. }
  3224. return (*lpfn)(
  3225. hLine,
  3226. dwAddressID,
  3227. dwSelect,
  3228. lpCallList
  3229. );
  3230. }
  3231. //**************************************************************************
  3232. //**************************************************************************
  3233. //**************************************************************************
  3234. LONG
  3235. WINAPI
  3236. lineGetGroupListA( // TAPI v2.2
  3237. HLINE hLine,
  3238. LPLINEAGENTGROUPLIST lpGroupList
  3239. )
  3240. {
  3241. static TAPIPROC lpfn = NULL;
  3242. LONG lResult;
  3243. if ( lpfn == NULL )
  3244. {
  3245. //
  3246. // Did we have a problem?
  3247. //
  3248. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetGroupListA", &lpfn )) )
  3249. {
  3250. lpfn = (TAPIPROC)-1;
  3251. return lResult;
  3252. }
  3253. }
  3254. //
  3255. // Have we determined that this is a lost cause?
  3256. //
  3257. if ( (TAPIPROC)-1 == lpfn )
  3258. {
  3259. return LINEERR_OPERATIONUNAVAIL;
  3260. }
  3261. return (*lpfn)(
  3262. hLine,
  3263. lpGroupList
  3264. );
  3265. }
  3266. //**************************************************************************
  3267. //**************************************************************************
  3268. //**************************************************************************
  3269. LONG
  3270. WINAPI
  3271. lineGetGroupListW( // TAPI v2.2
  3272. HLINE hLine,
  3273. LPLINEAGENTGROUPLIST lpGroupList
  3274. )
  3275. {
  3276. static TAPIPROC lpfn = NULL;
  3277. LONG lResult;
  3278. if ( lpfn == NULL )
  3279. {
  3280. //
  3281. // Did we have a problem?
  3282. //
  3283. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetGroupListW", &lpfn )) )
  3284. {
  3285. lpfn = (TAPIPROC)-1;
  3286. return lResult;
  3287. }
  3288. }
  3289. //
  3290. // Have we determined that this is a lost cause?
  3291. //
  3292. if ( (TAPIPROC)-1 == lpfn )
  3293. {
  3294. return LINEERR_OPERATIONUNAVAIL;
  3295. }
  3296. return (*lpfn)(
  3297. hLine,
  3298. lpGroupList
  3299. );
  3300. }
  3301. //**************************************************************************
  3302. //**************************************************************************
  3303. //**************************************************************************
  3304. LONG
  3305. WINAPI
  3306. lineGetIcon(
  3307. DWORD dwDeviceID,
  3308. LPCSTR lpszDeviceClass,
  3309. LPHICON lphIcon
  3310. )
  3311. {
  3312. static TAPIPROC lpfn = NULL;
  3313. LONG lResult;
  3314. if ( lpfn == NULL )
  3315. {
  3316. //
  3317. // Did we have a problem?
  3318. //
  3319. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetIcon", &lpfn )) )
  3320. {
  3321. lpfn = (TAPIPROC)-1;
  3322. return lResult;
  3323. }
  3324. }
  3325. //
  3326. // Have we determined that this is a lost cause?
  3327. //
  3328. if ( (TAPIPROC)-1 == lpfn )
  3329. {
  3330. return LINEERR_OPERATIONUNAVAIL;
  3331. }
  3332. return (*lpfn)(
  3333. dwDeviceID,
  3334. lpszDeviceClass,
  3335. lphIcon
  3336. );
  3337. }
  3338. //**************************************************************************
  3339. //**************************************************************************
  3340. //**************************************************************************
  3341. LONG
  3342. WINAPI
  3343. lineGetIconA(
  3344. DWORD dwDeviceID,
  3345. LPCSTR lpszDeviceClass,
  3346. LPHICON lphIcon
  3347. )
  3348. {
  3349. static TAPIPROC lpfn = NULL;
  3350. LONG lResult;
  3351. if ( lpfn == NULL )
  3352. {
  3353. //
  3354. // Did we have a problem?
  3355. //
  3356. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetIconA", &lpfn )) )
  3357. {
  3358. lpfn = (TAPIPROC)-1;
  3359. return lResult;
  3360. }
  3361. }
  3362. //
  3363. // Have we determined that this is a lost cause?
  3364. //
  3365. if ( (TAPIPROC)-1 == lpfn )
  3366. {
  3367. return LINEERR_OPERATIONUNAVAIL;
  3368. }
  3369. return (*lpfn)(
  3370. dwDeviceID,
  3371. lpszDeviceClass,
  3372. lphIcon
  3373. );
  3374. }
  3375. //**************************************************************************
  3376. //**************************************************************************
  3377. //**************************************************************************
  3378. LONG
  3379. WINAPI
  3380. lineGetIconW(
  3381. DWORD dwDeviceID,
  3382. LPCWSTR lpszDeviceClass,
  3383. LPHICON lphIcon
  3384. )
  3385. {
  3386. static TAPIPROC lpfn = NULL;
  3387. LONG lResult;
  3388. if ( lpfn == NULL )
  3389. {
  3390. //
  3391. // Did we have a problem?
  3392. //
  3393. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetIconW", &lpfn )) )
  3394. {
  3395. lpfn = (TAPIPROC)-1;
  3396. return lResult;
  3397. }
  3398. }
  3399. //
  3400. // Have we determined that this is a lost cause?
  3401. //
  3402. if ( (TAPIPROC)-1 == lpfn )
  3403. {
  3404. return LINEERR_OPERATIONUNAVAIL;
  3405. }
  3406. return (*lpfn)(
  3407. dwDeviceID,
  3408. lpszDeviceClass,
  3409. lphIcon
  3410. );
  3411. }
  3412. //**************************************************************************
  3413. //**************************************************************************
  3414. //**************************************************************************
  3415. LONG
  3416. WINAPI
  3417. lineGetID(
  3418. HLINE hLine,
  3419. DWORD dwAddressID,
  3420. HCALL hCall,
  3421. DWORD dwSelect,
  3422. LPVARSTRING lpDeviceID,
  3423. LPCSTR lpszDeviceClass
  3424. )
  3425. {
  3426. static TAPIPROC lpfn = NULL;
  3427. LONG lResult;
  3428. if ( lpfn == NULL )
  3429. {
  3430. //
  3431. // Did we have a problem?
  3432. //
  3433. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetID", &lpfn )) )
  3434. {
  3435. lpfn = (TAPIPROC)-1;
  3436. return lResult;
  3437. }
  3438. }
  3439. //
  3440. // Have we determined that this is a lost cause?
  3441. //
  3442. if ( (TAPIPROC)-1 == lpfn )
  3443. {
  3444. return LINEERR_OPERATIONUNAVAIL;
  3445. }
  3446. return (*lpfn)(
  3447. hLine,
  3448. dwAddressID,
  3449. hCall,
  3450. dwSelect,
  3451. lpDeviceID,
  3452. lpszDeviceClass
  3453. );
  3454. }
  3455. //**************************************************************************
  3456. //**************************************************************************
  3457. //**************************************************************************
  3458. LONG
  3459. WINAPI
  3460. lineGetIDA(
  3461. HLINE hLine,
  3462. DWORD dwAddressID,
  3463. HCALL hCall,
  3464. DWORD dwSelect,
  3465. LPVARSTRING lpDeviceID,
  3466. LPCSTR lpszDeviceClass
  3467. )
  3468. {
  3469. static TAPIPROC lpfn = NULL;
  3470. LONG lResult;
  3471. if ( lpfn == NULL )
  3472. {
  3473. //
  3474. // Did we have a problem?
  3475. //
  3476. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetIDA", &lpfn )) )
  3477. {
  3478. lpfn = (TAPIPROC)-1;
  3479. return lResult;
  3480. }
  3481. }
  3482. //
  3483. // Have we determined that this is a lost cause?
  3484. //
  3485. if ( (TAPIPROC)-1 == lpfn )
  3486. {
  3487. return LINEERR_OPERATIONUNAVAIL;
  3488. }
  3489. return (*lpfn)(
  3490. hLine,
  3491. dwAddressID,
  3492. hCall,
  3493. dwSelect,
  3494. lpDeviceID,
  3495. lpszDeviceClass
  3496. );
  3497. }
  3498. //**************************************************************************
  3499. //**************************************************************************
  3500. //**************************************************************************
  3501. LONG
  3502. WINAPI
  3503. lineGetIDW(
  3504. HLINE hLine,
  3505. DWORD dwAddressID,
  3506. HCALL hCall,
  3507. DWORD dwSelect,
  3508. LPVARSTRING lpDeviceID,
  3509. LPCWSTR lpszDeviceClass
  3510. )
  3511. {
  3512. static TAPIPROC lpfn = NULL;
  3513. LONG lResult;
  3514. if ( lpfn == NULL )
  3515. {
  3516. //
  3517. // Did we have a problem?
  3518. //
  3519. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetIDW", &lpfn )) )
  3520. {
  3521. lpfn = (TAPIPROC)-1;
  3522. return lResult;
  3523. }
  3524. }
  3525. //
  3526. // Have we determined that this is a lost cause?
  3527. //
  3528. if ( (TAPIPROC)-1 == lpfn )
  3529. {
  3530. return LINEERR_OPERATIONUNAVAIL;
  3531. }
  3532. return (*lpfn)(
  3533. hLine,
  3534. dwAddressID,
  3535. hCall,
  3536. dwSelect,
  3537. lpDeviceID,
  3538. lpszDeviceClass
  3539. );
  3540. }
  3541. //**************************************************************************
  3542. //**************************************************************************
  3543. //**************************************************************************
  3544. LONG
  3545. WINAPI
  3546. lineGetLineDevStatus(
  3547. HLINE hLine,
  3548. LPLINEDEVSTATUS lpLineDevStatus
  3549. )
  3550. {
  3551. static TAPIPROC lpfn = NULL;
  3552. LONG lResult;
  3553. if ( lpfn == NULL )
  3554. {
  3555. //
  3556. // Did we have a problem?
  3557. //
  3558. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetLineDevStatus", &lpfn )) )
  3559. {
  3560. lpfn = (TAPIPROC)-1;
  3561. return lResult;
  3562. }
  3563. }
  3564. //
  3565. // Have we determined that this is a lost cause?
  3566. //
  3567. if ( (TAPIPROC)-1 == lpfn )
  3568. {
  3569. return LINEERR_OPERATIONUNAVAIL;
  3570. }
  3571. return (*lpfn)(
  3572. hLine,
  3573. lpLineDevStatus
  3574. );
  3575. }
  3576. //**************************************************************************
  3577. //**************************************************************************
  3578. //**************************************************************************
  3579. LONG
  3580. WINAPI
  3581. lineGetLineDevStatusA(
  3582. HLINE hLine,
  3583. LPLINEDEVSTATUS lpLineDevStatus
  3584. )
  3585. {
  3586. static TAPIPROC lpfn = NULL;
  3587. LONG lResult;
  3588. if ( lpfn == NULL )
  3589. {
  3590. //
  3591. // Did we have a problem?
  3592. //
  3593. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetLineDevStatusA", &lpfn )) )
  3594. {
  3595. lpfn = (TAPIPROC)-1;
  3596. return lResult;
  3597. }
  3598. }
  3599. //
  3600. // Have we determined that this is a lost cause?
  3601. //
  3602. if ( (TAPIPROC)-1 == lpfn )
  3603. {
  3604. return LINEERR_OPERATIONUNAVAIL;
  3605. }
  3606. return (*lpfn)(
  3607. hLine,
  3608. lpLineDevStatus
  3609. );
  3610. }
  3611. //**************************************************************************
  3612. //**************************************************************************
  3613. //**************************************************************************
  3614. LONG
  3615. WINAPI
  3616. lineGetLineDevStatusW(
  3617. HLINE hLine,
  3618. LPLINEDEVSTATUS lpLineDevStatus
  3619. )
  3620. {
  3621. static TAPIPROC lpfn = NULL;
  3622. LONG lResult;
  3623. if ( lpfn == NULL )
  3624. {
  3625. //
  3626. // Did we have a problem?
  3627. //
  3628. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetLineDevStatusW", &lpfn )) )
  3629. {
  3630. lpfn = (TAPIPROC)-1;
  3631. return lResult;
  3632. }
  3633. }
  3634. //
  3635. // Have we determined that this is a lost cause?
  3636. //
  3637. if ( (TAPIPROC)-1 == lpfn )
  3638. {
  3639. return LINEERR_OPERATIONUNAVAIL;
  3640. }
  3641. return (*lpfn)(
  3642. hLine,
  3643. lpLineDevStatus
  3644. );
  3645. }
  3646. //**************************************************************************
  3647. //**************************************************************************
  3648. //**************************************************************************
  3649. LONG
  3650. WINAPI
  3651. lineGetMessage(
  3652. HLINEAPP hLineApp,
  3653. LPLINEMESSAGE lpMessage,
  3654. DWORD dwTimeout
  3655. )
  3656. {
  3657. static TAPIPROC lpfn = NULL;
  3658. LONG lResult;
  3659. if ( lpfn == NULL )
  3660. {
  3661. //
  3662. // Did we have a problem?
  3663. //
  3664. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetMessage", &lpfn )) )
  3665. {
  3666. lpfn = (TAPIPROC)-1;
  3667. return lResult;
  3668. }
  3669. }
  3670. //
  3671. // Have we determined that this is a lost cause?
  3672. //
  3673. if ( (TAPIPROC)-1 == lpfn )
  3674. {
  3675. return LINEERR_OPERATIONUNAVAIL;
  3676. }
  3677. return (*lpfn)(
  3678. hLineApp,
  3679. lpMessage,
  3680. dwTimeout
  3681. );
  3682. }
  3683. //**************************************************************************
  3684. //**************************************************************************
  3685. //**************************************************************************
  3686. LONG
  3687. WINAPI
  3688. lineGetNumRings(
  3689. HLINE hLine,
  3690. DWORD dwAddressID,
  3691. LPDWORD lpdwNumRings
  3692. )
  3693. {
  3694. static TAPIPROC lpfn = NULL;
  3695. LONG lResult;
  3696. if ( lpfn == NULL )
  3697. {
  3698. //
  3699. // Did we have a problem?
  3700. //
  3701. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetNumRings", &lpfn )) )
  3702. {
  3703. lpfn = (TAPIPROC)-1;
  3704. return lResult;
  3705. }
  3706. }
  3707. //
  3708. // Have we determined that this is a lost cause?
  3709. //
  3710. if ( (TAPIPROC)-1 == lpfn )
  3711. {
  3712. return LINEERR_OPERATIONUNAVAIL;
  3713. }
  3714. return (*lpfn)(
  3715. hLine,
  3716. dwAddressID,
  3717. lpdwNumRings
  3718. );
  3719. }
  3720. //**************************************************************************
  3721. //**************************************************************************
  3722. //**************************************************************************
  3723. LONG
  3724. WINAPI
  3725. lineGetProviderList(
  3726. DWORD dwAPIVersion,
  3727. LPLINEPROVIDERLIST lpProviderList
  3728. )
  3729. {
  3730. static TAPIPROC lpfn = NULL;
  3731. LONG lResult;
  3732. if ( lpfn == NULL )
  3733. {
  3734. //
  3735. // Did we have a problem?
  3736. //
  3737. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetProviderList", &lpfn )) )
  3738. {
  3739. lpfn = (TAPIPROC)-1;
  3740. return lResult;
  3741. }
  3742. }
  3743. //
  3744. // Have we determined that this is a lost cause?
  3745. //
  3746. if ( (TAPIPROC)-1 == lpfn )
  3747. {
  3748. return LINEERR_OPERATIONUNAVAIL;
  3749. }
  3750. return (*lpfn)(
  3751. dwAPIVersion,
  3752. lpProviderList
  3753. );
  3754. }
  3755. //**************************************************************************
  3756. //**************************************************************************
  3757. //**************************************************************************
  3758. LONG
  3759. WINAPI
  3760. lineGetProviderListA(
  3761. DWORD dwAPIVersion,
  3762. LPLINEPROVIDERLIST lpProviderList
  3763. )
  3764. {
  3765. static TAPIPROC lpfn = NULL;
  3766. LONG lResult;
  3767. if ( lpfn == NULL )
  3768. {
  3769. //
  3770. // Did we have a problem?
  3771. //
  3772. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetProviderListA", &lpfn )) )
  3773. {
  3774. lpfn = (TAPIPROC)-1;
  3775. return lResult;
  3776. }
  3777. }
  3778. //
  3779. // Have we determined that this is a lost cause?
  3780. //
  3781. if ( (TAPIPROC)-1 == lpfn )
  3782. {
  3783. return LINEERR_OPERATIONUNAVAIL;
  3784. }
  3785. return (*lpfn)(
  3786. dwAPIVersion,
  3787. lpProviderList
  3788. );
  3789. }
  3790. //**************************************************************************
  3791. //**************************************************************************
  3792. //**************************************************************************
  3793. LONG
  3794. WINAPI
  3795. lineGetProviderListW(
  3796. DWORD dwAPIVersion,
  3797. LPLINEPROVIDERLIST lpProviderList
  3798. )
  3799. {
  3800. static TAPIPROC lpfn = NULL;
  3801. LONG lResult;
  3802. if ( lpfn == NULL )
  3803. {
  3804. //
  3805. // Did we have a problem?
  3806. //
  3807. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetProviderListW", &lpfn )) )
  3808. {
  3809. lpfn = (TAPIPROC)-1;
  3810. return lResult;
  3811. }
  3812. }
  3813. //
  3814. // Have we determined that this is a lost cause?
  3815. //
  3816. if ( (TAPIPROC)-1 == lpfn )
  3817. {
  3818. return LINEERR_OPERATIONUNAVAIL;
  3819. }
  3820. return (*lpfn)(
  3821. dwAPIVersion,
  3822. lpProviderList
  3823. );
  3824. }
  3825. //**************************************************************************
  3826. //**************************************************************************
  3827. //**************************************************************************
  3828. LONG
  3829. WINAPI
  3830. lineGetProxyStatus( // TAPI v2.2
  3831. HLINEAPP hLineApp,
  3832. DWORD dwDeviceID,
  3833. DWORD dwAppAPIVersion,
  3834. LPLINEPROXYREQUESTLIST lpLineProxyReqestList
  3835. )
  3836. {
  3837. static TAPIPROC lpfn = NULL;
  3838. LONG lResult;
  3839. if ( lpfn == NULL )
  3840. {
  3841. //
  3842. // Did we have a problem?
  3843. //
  3844. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetProxyStatus", &lpfn )) )
  3845. {
  3846. lpfn = (TAPIPROC)-1;
  3847. return lResult;
  3848. }
  3849. }
  3850. //
  3851. // Have we determined that this is a lost cause?
  3852. //
  3853. if ( (TAPIPROC)-1 == lpfn )
  3854. {
  3855. return LINEERR_OPERATIONUNAVAIL;
  3856. }
  3857. return (*lpfn)(
  3858. hLineApp,
  3859. dwDeviceID,
  3860. dwAppAPIVersion,
  3861. lpLineProxyReqestList
  3862. );
  3863. }
  3864. //**************************************************************************
  3865. //**************************************************************************
  3866. //**************************************************************************
  3867. LONG
  3868. WINAPI
  3869. lineGetQueueInfo( // TAPI v2.2
  3870. HLINE hLine,
  3871. DWORD dwQueueID,
  3872. LPLINEQUEUEINFO lpLineQueueInfo
  3873. )
  3874. {
  3875. static TAPIPROC lpfn = NULL;
  3876. LONG lResult;
  3877. if ( lpfn == NULL )
  3878. {
  3879. //
  3880. // Did we have a problem?
  3881. //
  3882. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetQueueInfo", &lpfn )) )
  3883. {
  3884. lpfn = (TAPIPROC)-1;
  3885. return lResult;
  3886. }
  3887. }
  3888. //
  3889. // Have we determined that this is a lost cause?
  3890. //
  3891. if ( (TAPIPROC)-1 == lpfn )
  3892. {
  3893. return LINEERR_OPERATIONUNAVAIL;
  3894. }
  3895. return (*lpfn)(
  3896. hLine,
  3897. dwQueueID,
  3898. lpLineQueueInfo
  3899. );
  3900. }
  3901. //**************************************************************************
  3902. //**************************************************************************
  3903. //**************************************************************************
  3904. LONG
  3905. WINAPI
  3906. lineGetQueueListA( // TAPI v2.2
  3907. HLINE hLine,
  3908. LPGUID lpGroupID,
  3909. LPLINEQUEUELIST lpQueueList
  3910. )
  3911. {
  3912. static TAPIPROC lpfn = NULL;
  3913. LONG lResult;
  3914. if ( lpfn == NULL )
  3915. {
  3916. //
  3917. // Did we have a problem?
  3918. //
  3919. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetQueueListA", &lpfn )) )
  3920. {
  3921. lpfn = (TAPIPROC)-1;
  3922. return lResult;
  3923. }
  3924. }
  3925. //
  3926. // Have we determined that this is a lost cause?
  3927. //
  3928. if ( (TAPIPROC)-1 == lpfn )
  3929. {
  3930. return LINEERR_OPERATIONUNAVAIL;
  3931. }
  3932. return (*lpfn)(
  3933. hLine,
  3934. lpGroupID,
  3935. lpQueueList
  3936. );
  3937. }
  3938. //**************************************************************************
  3939. //**************************************************************************
  3940. //**************************************************************************
  3941. LONG
  3942. WINAPI
  3943. lineGetQueueListW( // TAPI v2.2
  3944. HLINE hLine,
  3945. LPGUID lpGroupID,
  3946. LPLINEQUEUELIST lpQueueList
  3947. )
  3948. {
  3949. static TAPIPROC lpfn = NULL;
  3950. LONG lResult;
  3951. if ( lpfn == NULL )
  3952. {
  3953. //
  3954. // Did we have a problem?
  3955. //
  3956. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetQueueListW", &lpfn )) )
  3957. {
  3958. lpfn = (TAPIPROC)-1;
  3959. return lResult;
  3960. }
  3961. }
  3962. //
  3963. // Have we determined that this is a lost cause?
  3964. //
  3965. if ( (TAPIPROC)-1 == lpfn )
  3966. {
  3967. return LINEERR_OPERATIONUNAVAIL;
  3968. }
  3969. return (*lpfn)(
  3970. hLine,
  3971. lpGroupID,
  3972. lpQueueList
  3973. );
  3974. }
  3975. //**************************************************************************
  3976. //**************************************************************************
  3977. //**************************************************************************
  3978. LONG
  3979. WINAPI
  3980. lineGetRequest(
  3981. HLINEAPP hLineApp,
  3982. DWORD dwRequestMode,
  3983. LPVOID lpRequestBuffer
  3984. )
  3985. {
  3986. static TAPIPROC lpfn = NULL;
  3987. LONG lResult;
  3988. if ( lpfn == NULL )
  3989. {
  3990. //
  3991. // Did we have a problem?
  3992. //
  3993. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetRequest", &lpfn )) )
  3994. {
  3995. lpfn = (TAPIPROC)-1;
  3996. return lResult;
  3997. }
  3998. }
  3999. //
  4000. // Have we determined that this is a lost cause?
  4001. //
  4002. if ( (TAPIPROC)-1 == lpfn )
  4003. {
  4004. return LINEERR_OPERATIONUNAVAIL;
  4005. }
  4006. return (*lpfn)(
  4007. hLineApp,
  4008. dwRequestMode,
  4009. lpRequestBuffer
  4010. );
  4011. }
  4012. //**************************************************************************
  4013. //**************************************************************************
  4014. //**************************************************************************
  4015. LONG
  4016. WINAPI
  4017. lineGetRequestA(
  4018. HLINEAPP hLineApp,
  4019. DWORD dwRequestMode,
  4020. LPVOID lpRequestBuffer
  4021. )
  4022. {
  4023. static TAPIPROC lpfn = NULL;
  4024. LONG lResult;
  4025. if ( lpfn == NULL )
  4026. {
  4027. //
  4028. // Did we have a problem?
  4029. //
  4030. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetRequestA", &lpfn )) )
  4031. {
  4032. lpfn = (TAPIPROC)-1;
  4033. return lResult;
  4034. }
  4035. }
  4036. //
  4037. // Have we determined that this is a lost cause?
  4038. //
  4039. if ( (TAPIPROC)-1 == lpfn )
  4040. {
  4041. return LINEERR_OPERATIONUNAVAIL;
  4042. }
  4043. return (*lpfn)(
  4044. hLineApp,
  4045. dwRequestMode,
  4046. lpRequestBuffer
  4047. );
  4048. }
  4049. //**************************************************************************
  4050. //**************************************************************************
  4051. //**************************************************************************
  4052. LONG
  4053. WINAPI
  4054. lineGetRequestW(
  4055. HLINEAPP hLineApp,
  4056. DWORD dwRequestMode,
  4057. LPVOID lpRequestBuffer
  4058. )
  4059. {
  4060. static TAPIPROC lpfn = NULL;
  4061. LONG lResult;
  4062. if ( lpfn == NULL )
  4063. {
  4064. //
  4065. // Did we have a problem?
  4066. //
  4067. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetRequestW", &lpfn )) )
  4068. {
  4069. lpfn = (TAPIPROC)-1;
  4070. return lResult;
  4071. }
  4072. }
  4073. //
  4074. // Have we determined that this is a lost cause?
  4075. //
  4076. if ( (TAPIPROC)-1 == lpfn )
  4077. {
  4078. return LINEERR_OPERATIONUNAVAIL;
  4079. }
  4080. return (*lpfn)(
  4081. hLineApp,
  4082. dwRequestMode,
  4083. lpRequestBuffer
  4084. );
  4085. }
  4086. //**************************************************************************
  4087. //**************************************************************************
  4088. //**************************************************************************
  4089. LONG
  4090. WINAPI
  4091. lineGetStatusMessages(
  4092. HLINE hLine,
  4093. LPDWORD lpdwLineStates,
  4094. LPDWORD lpdwAddressStates
  4095. )
  4096. {
  4097. static TAPIPROC lpfn = NULL;
  4098. LONG lResult;
  4099. if ( lpfn == NULL )
  4100. {
  4101. //
  4102. // Did we have a problem?
  4103. //
  4104. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetStatusMessages", &lpfn )) )
  4105. {
  4106. lpfn = (TAPIPROC)-1;
  4107. return lResult;
  4108. }
  4109. }
  4110. //
  4111. // Have we determined that this is a lost cause?
  4112. //
  4113. if ( (TAPIPROC)-1 == lpfn )
  4114. {
  4115. return LINEERR_OPERATIONUNAVAIL;
  4116. }
  4117. return (*lpfn)(
  4118. hLine,
  4119. lpdwLineStates,
  4120. lpdwAddressStates
  4121. );
  4122. }
  4123. //**************************************************************************
  4124. //**************************************************************************
  4125. //**************************************************************************
  4126. LONG
  4127. WINAPI
  4128. lineGetTranslateCaps(
  4129. HLINEAPP hLineApp,
  4130. DWORD dwAPIVersion,
  4131. LPLINETRANSLATECAPS lpTranslateCaps
  4132. )
  4133. {
  4134. static TAPIPROC lpfn = NULL;
  4135. LONG lResult;
  4136. if ( lpfn == NULL )
  4137. {
  4138. //
  4139. // Did we have a problem?
  4140. //
  4141. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetTranslateCaps", &lpfn )) )
  4142. {
  4143. lpfn = (TAPIPROC)-1;
  4144. return lResult;
  4145. }
  4146. }
  4147. //
  4148. // Have we determined that this is a lost cause?
  4149. //
  4150. if ( (TAPIPROC)-1 == lpfn )
  4151. {
  4152. return LINEERR_OPERATIONUNAVAIL;
  4153. }
  4154. return (*lpfn)(
  4155. hLineApp,
  4156. dwAPIVersion,
  4157. lpTranslateCaps
  4158. );
  4159. }
  4160. //**************************************************************************
  4161. //**************************************************************************
  4162. //**************************************************************************
  4163. LONG
  4164. WINAPI
  4165. lineGetTranslateCapsA(
  4166. HLINEAPP hLineApp,
  4167. DWORD dwAPIVersion,
  4168. LPLINETRANSLATECAPS lpTranslateCaps
  4169. )
  4170. {
  4171. static TAPIPROC lpfn = NULL;
  4172. LONG lResult;
  4173. if ( lpfn == NULL )
  4174. {
  4175. //
  4176. // Did we have a problem?
  4177. //
  4178. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetTranslateCapsA", &lpfn )) )
  4179. {
  4180. lpfn = (TAPIPROC)-1;
  4181. return lResult;
  4182. }
  4183. }
  4184. //
  4185. // Have we determined that this is a lost cause?
  4186. //
  4187. if ( (TAPIPROC)-1 == lpfn )
  4188. {
  4189. return LINEERR_OPERATIONUNAVAIL;
  4190. }
  4191. return (*lpfn)(
  4192. hLineApp,
  4193. dwAPIVersion,
  4194. lpTranslateCaps
  4195. );
  4196. }
  4197. //**************************************************************************
  4198. //**************************************************************************
  4199. //**************************************************************************
  4200. LONG
  4201. WINAPI
  4202. lineGetTranslateCapsW(
  4203. HLINEAPP hLineApp,
  4204. DWORD dwAPIVersion,
  4205. LPLINETRANSLATECAPS lpTranslateCaps
  4206. )
  4207. {
  4208. static TAPIPROC lpfn = NULL;
  4209. LONG lResult;
  4210. if ( lpfn == NULL )
  4211. {
  4212. //
  4213. // Did we have a problem?
  4214. //
  4215. if ( 0 != (lResult = GetTheFunctionPtr( "lineGetTranslateCapsW", &lpfn )) )
  4216. {
  4217. lpfn = (TAPIPROC)-1;
  4218. return lResult;
  4219. }
  4220. }
  4221. //
  4222. // Have we determined that this is a lost cause?
  4223. //
  4224. if ( (TAPIPROC)-1 == lpfn )
  4225. {
  4226. return LINEERR_OPERATIONUNAVAIL;
  4227. }
  4228. return (*lpfn)(
  4229. hLineApp,
  4230. dwAPIVersion,
  4231. lpTranslateCaps
  4232. );
  4233. }
  4234. //**************************************************************************
  4235. //**************************************************************************
  4236. //**************************************************************************
  4237. LONG
  4238. WINAPI
  4239. lineHandoff(
  4240. HCALL hCall,
  4241. LPCSTR lpszFileName,
  4242. DWORD dwMediaMode
  4243. )
  4244. {
  4245. static TAPIPROC lpfn = NULL;
  4246. LONG lResult;
  4247. if ( lpfn == NULL )
  4248. {
  4249. //
  4250. // Did we have a problem?
  4251. //
  4252. if ( 0 != (lResult = GetTheFunctionPtr( "lineHandoff", &lpfn )) )
  4253. {
  4254. lpfn = (TAPIPROC)-1;
  4255. return lResult;
  4256. }
  4257. }
  4258. //
  4259. // Have we determined that this is a lost cause?
  4260. //
  4261. if ( (TAPIPROC)-1 == lpfn )
  4262. {
  4263. return LINEERR_OPERATIONUNAVAIL;
  4264. }
  4265. return (*lpfn)(
  4266. hCall,
  4267. lpszFileName,
  4268. dwMediaMode
  4269. );
  4270. }
  4271. //**************************************************************************
  4272. //**************************************************************************
  4273. //**************************************************************************
  4274. LONG
  4275. WINAPI
  4276. lineHandoffA(
  4277. HCALL hCall,
  4278. LPCSTR lpszFileName,
  4279. DWORD dwMediaMode
  4280. )
  4281. {
  4282. static TAPIPROC lpfn = NULL;
  4283. LONG lResult;
  4284. if ( lpfn == NULL )
  4285. {
  4286. //
  4287. // Did we have a problem?
  4288. //
  4289. if ( 0 != (lResult = GetTheFunctionPtr( "lineHandoffA", &lpfn )) )
  4290. {
  4291. lpfn = (TAPIPROC)-1;
  4292. return lResult;
  4293. }
  4294. }
  4295. //
  4296. // Have we determined that this is a lost cause?
  4297. //
  4298. if ( (TAPIPROC)-1 == lpfn )
  4299. {
  4300. return LINEERR_OPERATIONUNAVAIL;
  4301. }
  4302. return (*lpfn)(
  4303. hCall,
  4304. lpszFileName,
  4305. dwMediaMode
  4306. );
  4307. }
  4308. //**************************************************************************
  4309. //**************************************************************************
  4310. //**************************************************************************
  4311. LONG
  4312. WINAPI
  4313. lineHandoffW(
  4314. HCALL hCall,
  4315. LPCWSTR lpszFileName,
  4316. DWORD dwMediaMode
  4317. )
  4318. {
  4319. static TAPIPROC lpfn = NULL;
  4320. LONG lResult;
  4321. if ( lpfn == NULL )
  4322. {
  4323. //
  4324. // Did we have a problem?
  4325. //
  4326. if ( 0 != (lResult = GetTheFunctionPtr( "lineHandoffW", &lpfn )) )
  4327. {
  4328. lpfn = (TAPIPROC)-1;
  4329. return lResult;
  4330. }
  4331. }
  4332. //
  4333. // Have we determined that this is a lost cause?
  4334. //
  4335. if ( (TAPIPROC)-1 == lpfn )
  4336. {
  4337. return LINEERR_OPERATIONUNAVAIL;
  4338. }
  4339. return (*lpfn)(
  4340. hCall,
  4341. lpszFileName,
  4342. dwMediaMode
  4343. );
  4344. }
  4345. //**************************************************************************
  4346. //**************************************************************************
  4347. //**************************************************************************
  4348. LONG
  4349. WINAPI
  4350. lineHold(
  4351. HCALL hCall
  4352. )
  4353. {
  4354. static TAPIPROC lpfn = NULL;
  4355. LONG lResult;
  4356. if ( lpfn == NULL )
  4357. {
  4358. //
  4359. // Did we have a problem?
  4360. //
  4361. if ( 0 != (lResult = GetTheFunctionPtr( "lineHold", &lpfn )) )
  4362. {
  4363. lpfn = (TAPIPROC)-1;
  4364. return lResult;
  4365. }
  4366. }
  4367. //
  4368. // Have we determined that this is a lost cause?
  4369. //
  4370. if ( (TAPIPROC)-1 == lpfn )
  4371. {
  4372. return LINEERR_OPERATIONUNAVAIL;
  4373. }
  4374. return (*lpfn)(
  4375. hCall
  4376. );
  4377. }
  4378. //**************************************************************************
  4379. //**************************************************************************
  4380. //**************************************************************************
  4381. LONG
  4382. WINAPI
  4383. lineInitialize(
  4384. LPHLINEAPP lphLineApp,
  4385. HINSTANCE hInstance,
  4386. LINECALLBACK lpfnCallback,
  4387. LPCSTR lpszAppName,
  4388. LPDWORD lpdwNumDevs
  4389. )
  4390. {
  4391. static TAPIPROC lpfn = NULL;
  4392. LONG lResult;
  4393. if ( lpfn == NULL )
  4394. {
  4395. //
  4396. // Did we have a problem?
  4397. //
  4398. if ( 0 != (lResult = GetTheFunctionPtr( "lineInitialize", &lpfn )) )
  4399. {
  4400. lpfn = (TAPIPROC)-1;
  4401. return lResult;
  4402. }
  4403. }
  4404. //
  4405. // Have we determined that this is a lost cause?
  4406. //
  4407. if ( (TAPIPROC)-1 == lpfn )
  4408. {
  4409. return LINEERR_OPERATIONUNAVAIL;
  4410. }
  4411. return (*lpfn)(
  4412. lphLineApp,
  4413. hInstance,
  4414. lpfnCallback,
  4415. lpszAppName,
  4416. lpdwNumDevs
  4417. );
  4418. }
  4419. //**************************************************************************
  4420. //**************************************************************************
  4421. //**************************************************************************
  4422. LONG
  4423. WINAPI
  4424. lineInitializeExA(
  4425. LPHLINEAPP lphLineApp,
  4426. HINSTANCE hInstance,
  4427. LINECALLBACK lpfnCallback,
  4428. LPCSTR lpszFriendlyAppName,
  4429. LPDWORD lpdwNumDevs,
  4430. LPDWORD lpdwAPIVersion,
  4431. LPLINEINITIALIZEEXPARAMS lpLineInitializeExParams
  4432. )
  4433. {
  4434. static TAPIPROC lpfn = NULL;
  4435. LONG lResult;
  4436. if ( lpfn == NULL )
  4437. {
  4438. //
  4439. // Did we have a problem?
  4440. //
  4441. if ( 0 != (lResult = GetTheFunctionPtr( "lineInitializeExA", &lpfn )) )
  4442. {
  4443. lpfn = (TAPIPROC)-1;
  4444. return lResult;
  4445. }
  4446. }
  4447. //
  4448. // Have we determined that this is a lost cause?
  4449. //
  4450. if ( (TAPIPROC)-1 == lpfn )
  4451. {
  4452. return LINEERR_OPERATIONUNAVAIL;
  4453. }
  4454. return (*lpfn)(
  4455. lphLineApp,
  4456. hInstance,
  4457. lpfnCallback,
  4458. lpszFriendlyAppName,
  4459. lpdwNumDevs,
  4460. lpdwAPIVersion,
  4461. lpLineInitializeExParams
  4462. );
  4463. }
  4464. //**************************************************************************
  4465. //**************************************************************************
  4466. //**************************************************************************
  4467. LONG
  4468. WINAPI
  4469. lineInitializeExW(
  4470. LPHLINEAPP lphLineApp,
  4471. HINSTANCE hInstance,
  4472. LINECALLBACK lpfnCallback,
  4473. LPCWSTR lpszFriendlyAppName,
  4474. LPDWORD lpdwNumDevs,
  4475. LPDWORD lpdwAPIVersion,
  4476. LPLINEINITIALIZEEXPARAMS lpLineInitializeExParams
  4477. )
  4478. {
  4479. static TAPIPROC lpfn = NULL;
  4480. LONG lResult;
  4481. if ( lpfn == NULL )
  4482. {
  4483. //
  4484. // Did we have a problem?
  4485. //
  4486. if ( 0 != (lResult = GetTheFunctionPtr( "lineInitializeExW", &lpfn )) )
  4487. {
  4488. lpfn = (TAPIPROC)-1;
  4489. return lResult;
  4490. }
  4491. }
  4492. //
  4493. // Have we determined that this is a lost cause?
  4494. //
  4495. if ( (TAPIPROC)-1 == lpfn )
  4496. {
  4497. return LINEERR_OPERATIONUNAVAIL;
  4498. }
  4499. return (*lpfn)(
  4500. lphLineApp,
  4501. hInstance,
  4502. lpfnCallback,
  4503. lpszFriendlyAppName,
  4504. lpdwNumDevs,
  4505. lpdwAPIVersion,
  4506. lpLineInitializeExParams
  4507. );
  4508. }
  4509. //**************************************************************************
  4510. //**************************************************************************
  4511. //**************************************************************************
  4512. LONG
  4513. WINAPI
  4514. lineMakeCall(
  4515. HLINE hLine,
  4516. LPHCALL lphCall,
  4517. LPCSTR lpszDestAddress,
  4518. DWORD dwCountryCode,
  4519. LPLINECALLPARAMS const lpCallParams
  4520. )
  4521. {
  4522. static TAPIPROC lpfn = NULL;
  4523. LONG lResult;
  4524. if ( lpfn == NULL )
  4525. {
  4526. //
  4527. // Did we have a problem?
  4528. //
  4529. if ( 0 != (lResult = GetTheFunctionPtr( "lineMakeCall", &lpfn )) )
  4530. {
  4531. lpfn = (TAPIPROC)-1;
  4532. return lResult;
  4533. }
  4534. }
  4535. //
  4536. // Have we determined that this is a lost cause?
  4537. //
  4538. if ( (TAPIPROC)-1 == lpfn )
  4539. {
  4540. return LINEERR_OPERATIONUNAVAIL;
  4541. }
  4542. return (*lpfn)(
  4543. hLine,
  4544. lphCall,
  4545. lpszDestAddress,
  4546. dwCountryCode,
  4547. lpCallParams
  4548. );
  4549. }
  4550. //**************************************************************************
  4551. //**************************************************************************
  4552. //**************************************************************************
  4553. LONG
  4554. WINAPI
  4555. lineMakeCallA(
  4556. HLINE hLine,
  4557. LPHCALL lphCall,
  4558. LPCSTR lpszDestAddress,
  4559. DWORD dwCountryCode,
  4560. LPLINECALLPARAMS const lpCallParams
  4561. )
  4562. {
  4563. static TAPIPROC lpfn = NULL;
  4564. LONG lResult;
  4565. if ( lpfn == NULL )
  4566. {
  4567. //
  4568. // Did we have a problem?
  4569. //
  4570. if ( 0 != (lResult = GetTheFunctionPtr( "lineMakeCallA", &lpfn )) )
  4571. {
  4572. lpfn = (TAPIPROC)-1;
  4573. return lResult;
  4574. }
  4575. }
  4576. //
  4577. // Have we determined that this is a lost cause?
  4578. //
  4579. if ( (TAPIPROC)-1 == lpfn )
  4580. {
  4581. return LINEERR_OPERATIONUNAVAIL;
  4582. }
  4583. return (*lpfn)(
  4584. hLine,
  4585. lphCall,
  4586. lpszDestAddress,
  4587. dwCountryCode,
  4588. lpCallParams
  4589. );
  4590. }
  4591. //**************************************************************************
  4592. //**************************************************************************
  4593. //**************************************************************************
  4594. LONG
  4595. WINAPI
  4596. lineMakeCallW(
  4597. HLINE hLine,
  4598. LPHCALL lphCall,
  4599. LPCWSTR lpszDestAddress,
  4600. DWORD dwCountryCode,
  4601. LPLINECALLPARAMS const lpCallParams
  4602. )
  4603. {
  4604. static TAPIPROC lpfn = NULL;
  4605. LONG lResult;
  4606. if ( lpfn == NULL )
  4607. {
  4608. //
  4609. // Did we have a problem?
  4610. //
  4611. if ( 0 != (lResult = GetTheFunctionPtr( "lineMakeCallW", &lpfn )) )
  4612. {
  4613. lpfn = (TAPIPROC)-1;
  4614. return lResult;
  4615. }
  4616. }
  4617. //
  4618. // Have we determined that this is a lost cause?
  4619. //
  4620. if ( (TAPIPROC)-1 == lpfn )
  4621. {
  4622. return LINEERR_OPERATIONUNAVAIL;
  4623. }
  4624. return (*lpfn)(
  4625. hLine,
  4626. lphCall,
  4627. lpszDestAddress,
  4628. dwCountryCode,
  4629. lpCallParams
  4630. );
  4631. }
  4632. //**************************************************************************
  4633. //**************************************************************************
  4634. //**************************************************************************
  4635. LONG
  4636. WINAPI
  4637. lineMonitorDigits(
  4638. HCALL hCall,
  4639. DWORD dwDigitModes
  4640. )
  4641. {
  4642. static TAPIPROC lpfn = NULL;
  4643. LONG lResult;
  4644. if ( lpfn == NULL )
  4645. {
  4646. //
  4647. // Did we have a problem?
  4648. //
  4649. if ( 0 != (lResult = GetTheFunctionPtr( "lineMonitorDigits", &lpfn )) )
  4650. {
  4651. lpfn = (TAPIPROC)-1;
  4652. return lResult;
  4653. }
  4654. }
  4655. //
  4656. // Have we determined that this is a lost cause?
  4657. //
  4658. if ( (TAPIPROC)-1 == lpfn )
  4659. {
  4660. return LINEERR_OPERATIONUNAVAIL;
  4661. }
  4662. return (*lpfn)(
  4663. hCall,
  4664. dwDigitModes
  4665. );
  4666. }
  4667. //**************************************************************************
  4668. //**************************************************************************
  4669. //**************************************************************************
  4670. LONG
  4671. WINAPI
  4672. lineMonitorMedia(
  4673. HCALL hCall,
  4674. DWORD dwMediaModes
  4675. )
  4676. {
  4677. static TAPIPROC lpfn = NULL;
  4678. LONG lResult;
  4679. if ( lpfn == NULL )
  4680. {
  4681. //
  4682. // Did we have a problem?
  4683. //
  4684. if ( 0 != (lResult = GetTheFunctionPtr( "lineMonitorMedia", &lpfn )) )
  4685. {
  4686. lpfn = (TAPIPROC)-1;
  4687. return lResult;
  4688. }
  4689. }
  4690. //
  4691. // Have we determined that this is a lost cause?
  4692. //
  4693. if ( (TAPIPROC)-1 == lpfn )
  4694. {
  4695. return LINEERR_OPERATIONUNAVAIL;
  4696. }
  4697. return (*lpfn)(
  4698. hCall,
  4699. dwMediaModes
  4700. );
  4701. }
  4702. //**************************************************************************
  4703. //**************************************************************************
  4704. //**************************************************************************
  4705. LONG
  4706. WINAPI
  4707. lineMonitorTones(
  4708. HCALL hCall,
  4709. LPLINEMONITORTONE const lpToneList,
  4710. DWORD dwNumEntries
  4711. )
  4712. {
  4713. static TAPIPROC lpfn = NULL;
  4714. LONG lResult;
  4715. if ( lpfn == NULL )
  4716. {
  4717. //
  4718. // Did we have a problem?
  4719. //
  4720. if ( 0 != (lResult = GetTheFunctionPtr( "lineMonitorTones", &lpfn )) )
  4721. {
  4722. lpfn = (TAPIPROC)-1;
  4723. return lResult;
  4724. }
  4725. }
  4726. //
  4727. // Have we determined that this is a lost cause?
  4728. //
  4729. if ( (TAPIPROC)-1 == lpfn )
  4730. {
  4731. return LINEERR_OPERATIONUNAVAIL;
  4732. }
  4733. return (*lpfn)(
  4734. hCall,
  4735. lpToneList,
  4736. dwNumEntries
  4737. );
  4738. }
  4739. //**************************************************************************
  4740. //**************************************************************************
  4741. //**************************************************************************
  4742. LONG
  4743. WINAPI
  4744. lineNegotiateAPIVersion(
  4745. HLINEAPP hLineApp,
  4746. DWORD dwDeviceID,
  4747. DWORD dwAPILowVersion,
  4748. DWORD dwAPIHighVersion,
  4749. LPDWORD lpdwAPIVersion,
  4750. LPLINEEXTENSIONID lpExtensionID
  4751. )
  4752. {
  4753. static TAPIPROC lpfn = NULL;
  4754. LONG lResult;
  4755. if ( lpfn == NULL )
  4756. {
  4757. //
  4758. // Did we have a problem?
  4759. //
  4760. if ( 0 != (lResult = GetTheFunctionPtr( "lineNegotiateAPIVersion", &lpfn )) )
  4761. {
  4762. lpfn = (TAPIPROC)-1;
  4763. return lResult;
  4764. }
  4765. }
  4766. //
  4767. // Have we determined that this is a lost cause?
  4768. //
  4769. if ( (TAPIPROC)-1 == lpfn )
  4770. {
  4771. return LINEERR_OPERATIONUNAVAIL;
  4772. }
  4773. return (*lpfn)(
  4774. hLineApp,
  4775. dwDeviceID,
  4776. dwAPILowVersion,
  4777. dwAPIHighVersion,
  4778. lpdwAPIVersion,
  4779. lpExtensionID
  4780. );
  4781. }
  4782. //**************************************************************************
  4783. //**************************************************************************
  4784. //**************************************************************************
  4785. LONG
  4786. WINAPI
  4787. lineNegotiateExtVersion(
  4788. HLINEAPP hLineApp,
  4789. DWORD dwDeviceID,
  4790. DWORD dwAPIVersion,
  4791. DWORD dwExtLowVersion,
  4792. DWORD dwExtHighVersion,
  4793. LPDWORD lpdwExtVersion
  4794. )
  4795. {
  4796. static TAPIPROC lpfn = NULL;
  4797. LONG lResult;
  4798. if ( lpfn == NULL )
  4799. {
  4800. //
  4801. // Did we have a problem?
  4802. //
  4803. if ( 0 != (lResult = GetTheFunctionPtr( "lineNegotiateExtVersion", &lpfn )) )
  4804. {
  4805. lpfn = (TAPIPROC)-1;
  4806. return lResult;
  4807. }
  4808. }
  4809. //
  4810. // Have we determined that this is a lost cause?
  4811. //
  4812. if ( (TAPIPROC)-1 == lpfn )
  4813. {
  4814. return LINEERR_OPERATIONUNAVAIL;
  4815. }
  4816. return (*lpfn)(
  4817. hLineApp,
  4818. dwDeviceID,
  4819. dwAPIVersion,
  4820. dwExtLowVersion,
  4821. dwExtHighVersion,
  4822. lpdwExtVersion
  4823. );
  4824. }
  4825. //**************************************************************************
  4826. //**************************************************************************
  4827. //**************************************************************************
  4828. LONG
  4829. WINAPI
  4830. lineOpen(
  4831. HLINEAPP hLineApp,
  4832. DWORD dwDeviceID,
  4833. LPHLINE lphLine,
  4834. DWORD dwAPIVersion,
  4835. DWORD dwExtVersion,
  4836. DWORD_PTR dwCallbackInstance,
  4837. DWORD dwPrivileges,
  4838. DWORD dwMediaModes,
  4839. LPLINECALLPARAMS const lpCallParams
  4840. )
  4841. {
  4842. static TAPIPROC lpfn = NULL;
  4843. LONG lResult;
  4844. if ( lpfn == NULL )
  4845. {
  4846. //
  4847. // Did we have a problem?
  4848. //
  4849. if ( 0 != (lResult = GetTheFunctionPtr( "lineOpen", &lpfn )) )
  4850. {
  4851. lpfn = (TAPIPROC)-1;
  4852. return lResult;
  4853. }
  4854. }
  4855. //
  4856. // Have we determined that this is a lost cause?
  4857. //
  4858. if ( (TAPIPROC)-1 == lpfn )
  4859. {
  4860. return LINEERR_OPERATIONUNAVAIL;
  4861. }
  4862. return (*lpfn)(
  4863. hLineApp,
  4864. dwDeviceID,
  4865. lphLine,
  4866. dwAPIVersion,
  4867. dwExtVersion,
  4868. dwCallbackInstance,
  4869. dwPrivileges,
  4870. dwMediaModes,
  4871. lpCallParams
  4872. );
  4873. }
  4874. //**************************************************************************
  4875. //**************************************************************************
  4876. //**************************************************************************
  4877. LONG
  4878. WINAPI
  4879. lineOpenA(
  4880. HLINEAPP hLineApp,
  4881. DWORD dwDeviceID,
  4882. LPHLINE lphLine,
  4883. DWORD dwAPIVersion,
  4884. DWORD dwExtVersion,
  4885. DWORD_PTR dwCallbackInstance,
  4886. DWORD dwPrivileges,
  4887. DWORD dwMediaModes,
  4888. LPLINECALLPARAMS const lpCallParams
  4889. )
  4890. {
  4891. static TAPIPROC lpfn = NULL;
  4892. LONG lResult;
  4893. if ( lpfn == NULL )
  4894. {
  4895. //
  4896. // Did we have a problem?
  4897. //
  4898. if ( 0 != (lResult = GetTheFunctionPtr( "lineOpenA", &lpfn )) )
  4899. {
  4900. lpfn = (TAPIPROC)-1;
  4901. return lResult;
  4902. }
  4903. }
  4904. //
  4905. // Have we determined that this is a lost cause?
  4906. //
  4907. if ( (TAPIPROC)-1 == lpfn )
  4908. {
  4909. return LINEERR_OPERATIONUNAVAIL;
  4910. }
  4911. return (*lpfn)(
  4912. hLineApp,
  4913. dwDeviceID,
  4914. lphLine,
  4915. dwAPIVersion,
  4916. dwExtVersion,
  4917. dwCallbackInstance,
  4918. dwPrivileges,
  4919. dwMediaModes,
  4920. lpCallParams
  4921. );
  4922. }
  4923. //**************************************************************************
  4924. //**************************************************************************
  4925. //**************************************************************************
  4926. LONG
  4927. WINAPI
  4928. lineOpenW(
  4929. HLINEAPP hLineApp,
  4930. DWORD dwDeviceID,
  4931. LPHLINE lphLine,
  4932. DWORD dwAPIVersion,
  4933. DWORD dwExtVersion,
  4934. DWORD_PTR dwCallbackInstance,
  4935. DWORD dwPrivileges,
  4936. DWORD dwMediaModes,
  4937. LPLINECALLPARAMS const lpCallParams
  4938. )
  4939. {
  4940. static TAPIPROC lpfn = NULL;
  4941. LONG lResult;
  4942. if ( lpfn == NULL )
  4943. {
  4944. //
  4945. // Did we have a problem?
  4946. //
  4947. if ( 0 != (lResult = GetTheFunctionPtr( "lineOpenW", &lpfn )) )
  4948. {
  4949. lpfn = (TAPIPROC)-1;
  4950. return lResult;
  4951. }
  4952. }
  4953. //
  4954. // Have we determined that this is a lost cause?
  4955. //
  4956. if ( (TAPIPROC)-1 == lpfn )
  4957. {
  4958. return LINEERR_OPERATIONUNAVAIL;
  4959. }
  4960. return (*lpfn)(
  4961. hLineApp,
  4962. dwDeviceID,
  4963. lphLine,
  4964. dwAPIVersion,
  4965. dwExtVersion,
  4966. dwCallbackInstance,
  4967. dwPrivileges,
  4968. dwMediaModes,
  4969. lpCallParams
  4970. );
  4971. }
  4972. //**************************************************************************
  4973. //**************************************************************************
  4974. //**************************************************************************
  4975. LONG
  4976. WINAPI
  4977. linePark(
  4978. HCALL hCall,
  4979. DWORD dwParkMode,
  4980. LPCSTR lpszDirAddress,
  4981. LPVARSTRING lpNonDirAddress
  4982. )
  4983. {
  4984. static TAPIPROC lpfn = NULL;
  4985. LONG lResult;
  4986. if ( lpfn == NULL )
  4987. {
  4988. //
  4989. // Did we have a problem?
  4990. //
  4991. if ( 0 != (lResult = GetTheFunctionPtr( "linePark", &lpfn )) )
  4992. {
  4993. lpfn = (TAPIPROC)-1;
  4994. return lResult;
  4995. }
  4996. }
  4997. //
  4998. // Have we determined that this is a lost cause?
  4999. //
  5000. if ( (TAPIPROC)-1 == lpfn )
  5001. {
  5002. return LINEERR_OPERATIONUNAVAIL;
  5003. }
  5004. return (*lpfn)(
  5005. hCall,
  5006. dwParkMode,
  5007. lpszDirAddress,
  5008. lpNonDirAddress
  5009. );
  5010. }
  5011. //**************************************************************************
  5012. //**************************************************************************
  5013. //**************************************************************************
  5014. LONG
  5015. WINAPI
  5016. lineParkA(
  5017. HCALL hCall,
  5018. DWORD dwParkMode,
  5019. LPCSTR lpszDirAddress,
  5020. LPVARSTRING lpNonDirAddress
  5021. )
  5022. {
  5023. static TAPIPROC lpfn = NULL;
  5024. LONG lResult;
  5025. if ( lpfn == NULL )
  5026. {
  5027. //
  5028. // Did we have a problem?
  5029. //
  5030. if ( 0 != (lResult = GetTheFunctionPtr( "lineParkA", &lpfn )) )
  5031. {
  5032. lpfn = (TAPIPROC)-1;
  5033. return lResult;
  5034. }
  5035. }
  5036. //
  5037. // Have we determined that this is a lost cause?
  5038. //
  5039. if ( (TAPIPROC)-1 == lpfn )
  5040. {
  5041. return LINEERR_OPERATIONUNAVAIL;
  5042. }
  5043. return (*lpfn)(
  5044. hCall,
  5045. dwParkMode,
  5046. lpszDirAddress,
  5047. lpNonDirAddress
  5048. );
  5049. }
  5050. //**************************************************************************
  5051. //**************************************************************************
  5052. //**************************************************************************
  5053. LONG
  5054. WINAPI
  5055. lineParkW(
  5056. HCALL hCall,
  5057. DWORD dwParkMode,
  5058. LPCWSTR lpszDirAddress,
  5059. LPVARSTRING lpNonDirAddress
  5060. )
  5061. {
  5062. static TAPIPROC lpfn = NULL;
  5063. LONG lResult;
  5064. if ( lpfn == NULL )
  5065. {
  5066. //
  5067. // Did we have a problem?
  5068. //
  5069. if ( 0 != (lResult = GetTheFunctionPtr( "lineParkW", &lpfn )) )
  5070. {
  5071. lpfn = (TAPIPROC)-1;
  5072. return lResult;
  5073. }
  5074. }
  5075. //
  5076. // Have we determined that this is a lost cause?
  5077. //
  5078. if ( (TAPIPROC)-1 == lpfn )
  5079. {
  5080. return LINEERR_OPERATIONUNAVAIL;
  5081. }
  5082. return (*lpfn)(
  5083. hCall,
  5084. dwParkMode,
  5085. lpszDirAddress,
  5086. lpNonDirAddress
  5087. );
  5088. }
  5089. //**************************************************************************
  5090. //**************************************************************************
  5091. //**************************************************************************
  5092. LONG
  5093. WINAPI
  5094. linePickup(
  5095. HLINE hLine,
  5096. DWORD dwAddressID,
  5097. LPHCALL lphCall,
  5098. LPCSTR lpszDestAddress,
  5099. LPCSTR lpszGroupID
  5100. )
  5101. {
  5102. static TAPIPROC lpfn = NULL;
  5103. LONG lResult;
  5104. if ( lpfn == NULL )
  5105. {
  5106. //
  5107. // Did we have a problem?
  5108. //
  5109. if ( 0 != (lResult = GetTheFunctionPtr( "linePickup", &lpfn )) )
  5110. {
  5111. lpfn = (TAPIPROC)-1;
  5112. return lResult;
  5113. }
  5114. }
  5115. //
  5116. // Have we determined that this is a lost cause?
  5117. //
  5118. if ( (TAPIPROC)-1 == lpfn )
  5119. {
  5120. return LINEERR_OPERATIONUNAVAIL;
  5121. }
  5122. return (*lpfn)(
  5123. hLine,
  5124. dwAddressID,
  5125. lphCall,
  5126. lpszDestAddress,
  5127. lpszGroupID
  5128. );
  5129. }
  5130. //**************************************************************************
  5131. //**************************************************************************
  5132. //**************************************************************************
  5133. LONG
  5134. WINAPI
  5135. linePickupA(
  5136. HLINE hLine,
  5137. DWORD dwAddressID,
  5138. LPHCALL lphCall,
  5139. LPCSTR lpszDestAddress,
  5140. LPCSTR lpszGroupID
  5141. )
  5142. {
  5143. static TAPIPROC lpfn = NULL;
  5144. LONG lResult;
  5145. if ( lpfn == NULL )
  5146. {
  5147. //
  5148. // Did we have a problem?
  5149. //
  5150. if ( 0 != (lResult = GetTheFunctionPtr( "linePickupA", &lpfn )) )
  5151. {
  5152. lpfn = (TAPIPROC)-1;
  5153. return lResult;
  5154. }
  5155. }
  5156. //
  5157. // Have we determined that this is a lost cause?
  5158. //
  5159. if ( (TAPIPROC)-1 == lpfn )
  5160. {
  5161. return LINEERR_OPERATIONUNAVAIL;
  5162. }
  5163. return (*lpfn)(
  5164. hLine,
  5165. dwAddressID,
  5166. lphCall,
  5167. lpszDestAddress,
  5168. lpszGroupID
  5169. );
  5170. }
  5171. //**************************************************************************
  5172. //**************************************************************************
  5173. //**************************************************************************
  5174. LONG
  5175. WINAPI
  5176. linePickupW(
  5177. HLINE hLine,
  5178. DWORD dwAddressID,
  5179. LPHCALL lphCall,
  5180. LPCWSTR lpszDestAddress,
  5181. LPCWSTR lpszGroupID
  5182. )
  5183. {
  5184. static TAPIPROC lpfn = NULL;
  5185. LONG lResult;
  5186. if ( lpfn == NULL )
  5187. {
  5188. //
  5189. // Did we have a problem?
  5190. //
  5191. if ( 0 != (lResult = GetTheFunctionPtr( "linePickupW", &lpfn )) )
  5192. {
  5193. lpfn = (TAPIPROC)-1;
  5194. return lResult;
  5195. }
  5196. }
  5197. //
  5198. // Have we determined that this is a lost cause?
  5199. //
  5200. if ( (TAPIPROC)-1 == lpfn )
  5201. {
  5202. return LINEERR_OPERATIONUNAVAIL;
  5203. }
  5204. return (*lpfn)(
  5205. hLine,
  5206. dwAddressID,
  5207. lphCall,
  5208. lpszDestAddress,
  5209. lpszGroupID
  5210. );
  5211. }
  5212. //**************************************************************************
  5213. //**************************************************************************
  5214. //**************************************************************************
  5215. LONG
  5216. WINAPI
  5217. linePrepareAddToConference(
  5218. HCALL hConfCall,
  5219. LPHCALL lphConsultCall,
  5220. LPLINECALLPARAMS const lpCallParams
  5221. )
  5222. {
  5223. static TAPIPROC lpfn = NULL;
  5224. LONG lResult;
  5225. if ( lpfn == NULL )
  5226. {
  5227. //
  5228. // Did we have a problem?
  5229. //
  5230. if ( 0 != (lResult = GetTheFunctionPtr( "linePrepareAddToConference", &lpfn )) )
  5231. {
  5232. lpfn = (TAPIPROC)-1;
  5233. return lResult;
  5234. }
  5235. }
  5236. //
  5237. // Have we determined that this is a lost cause?
  5238. //
  5239. if ( (TAPIPROC)-1 == lpfn )
  5240. {
  5241. return LINEERR_OPERATIONUNAVAIL;
  5242. }
  5243. return (*lpfn)(
  5244. hConfCall,
  5245. lphConsultCall,
  5246. lpCallParams
  5247. );
  5248. }
  5249. //**************************************************************************
  5250. //**************************************************************************
  5251. //**************************************************************************
  5252. LONG
  5253. WINAPI
  5254. linePrepareAddToConferenceA(
  5255. HCALL hConfCall,
  5256. LPHCALL lphConsultCall,
  5257. LPLINECALLPARAMS const lpCallParams
  5258. )
  5259. {
  5260. static TAPIPROC lpfn = NULL;
  5261. LONG lResult;
  5262. if ( lpfn == NULL )
  5263. {
  5264. //
  5265. // Did we have a problem?
  5266. //
  5267. if ( 0 != (lResult = GetTheFunctionPtr( "linePrepareAddToConferenceA", &lpfn )) )
  5268. {
  5269. lpfn = (TAPIPROC)-1;
  5270. return lResult;
  5271. }
  5272. }
  5273. //
  5274. // Have we determined that this is a lost cause?
  5275. //
  5276. if ( (TAPIPROC)-1 == lpfn )
  5277. {
  5278. return LINEERR_OPERATIONUNAVAIL;
  5279. }
  5280. return (*lpfn)(
  5281. hConfCall,
  5282. lphConsultCall,
  5283. lpCallParams
  5284. );
  5285. }
  5286. //**************************************************************************
  5287. //**************************************************************************
  5288. //**************************************************************************
  5289. LONG
  5290. WINAPI
  5291. linePrepareAddToConferenceW(
  5292. HCALL hConfCall,
  5293. LPHCALL lphConsultCall,
  5294. LPLINECALLPARAMS const lpCallParams
  5295. )
  5296. {
  5297. static TAPIPROC lpfn = NULL;
  5298. LONG lResult;
  5299. if ( lpfn == NULL )
  5300. {
  5301. //
  5302. // Did we have a problem?
  5303. //
  5304. if ( 0 != (lResult = GetTheFunctionPtr( "linePrepareAddToConferenceW", &lpfn )) )
  5305. {
  5306. lpfn = (TAPIPROC)-1;
  5307. return lResult;
  5308. }
  5309. }
  5310. //
  5311. // Have we determined that this is a lost cause?
  5312. //
  5313. if ( (TAPIPROC)-1 == lpfn )
  5314. {
  5315. return LINEERR_OPERATIONUNAVAIL;
  5316. }
  5317. return (*lpfn)(
  5318. hConfCall,
  5319. lphConsultCall,
  5320. lpCallParams
  5321. );
  5322. }
  5323. //**************************************************************************
  5324. //**************************************************************************
  5325. //**************************************************************************
  5326. LONG
  5327. WINAPI
  5328. lineProxyMessage(
  5329. HLINE hLine,
  5330. HCALL hCall,
  5331. DWORD dwMsg,
  5332. DWORD dwParam1,
  5333. DWORD dwParam2,
  5334. DWORD dwParam3
  5335. )
  5336. {
  5337. static TAPIPROC lpfn = NULL;
  5338. LONG lResult;
  5339. if ( lpfn == NULL )
  5340. {
  5341. //
  5342. // Did we have a problem?
  5343. //
  5344. if ( 0 != (lResult = GetTheFunctionPtr( "lineProxyMessage", &lpfn )) )
  5345. {
  5346. lpfn = (TAPIPROC)-1;
  5347. return lResult;
  5348. }
  5349. }
  5350. //
  5351. // Have we determined that this is a lost cause?
  5352. //
  5353. if ( (TAPIPROC)-1 == lpfn )
  5354. {
  5355. return LINEERR_OPERATIONUNAVAIL;
  5356. }
  5357. return (*lpfn)(
  5358. hLine,
  5359. hCall,
  5360. dwMsg,
  5361. dwParam1,
  5362. dwParam2,
  5363. dwParam3
  5364. );
  5365. }
  5366. //**************************************************************************
  5367. //**************************************************************************
  5368. //**************************************************************************
  5369. LONG
  5370. WINAPI
  5371. lineProxyResponse(
  5372. HLINE hLine,
  5373. LPLINEPROXYREQUEST lpProxyRequest,
  5374. DWORD dwResult
  5375. )
  5376. {
  5377. static TAPIPROC lpfn = NULL;
  5378. LONG lResult;
  5379. if ( lpfn == NULL )
  5380. {
  5381. //
  5382. // Did we have a problem?
  5383. //
  5384. if ( 0 != (lResult = GetTheFunctionPtr( "lineProxyResponse", &lpfn )) )
  5385. {
  5386. lpfn = (TAPIPROC)-1;
  5387. return lResult;
  5388. }
  5389. }
  5390. //
  5391. // Have we determined that this is a lost cause?
  5392. //
  5393. if ( (TAPIPROC)-1 == lpfn )
  5394. {
  5395. return LINEERR_OPERATIONUNAVAIL;
  5396. }
  5397. return (*lpfn)(
  5398. hLine,
  5399. lpProxyRequest,
  5400. dwResult
  5401. );
  5402. }
  5403. //**************************************************************************
  5404. //**************************************************************************
  5405. //**************************************************************************
  5406. LONG
  5407. WINAPI
  5408. lineRedirect(
  5409. HCALL hCall,
  5410. LPCSTR lpszDestAddress,
  5411. DWORD dwCountryCode
  5412. )
  5413. {
  5414. static TAPIPROC lpfn = NULL;
  5415. LONG lResult;
  5416. if ( lpfn == NULL )
  5417. {
  5418. //
  5419. // Did we have a problem?
  5420. //
  5421. if ( 0 != (lResult = GetTheFunctionPtr( "lineRedirect", &lpfn )) )
  5422. {
  5423. lpfn = (TAPIPROC)-1;
  5424. return lResult;
  5425. }
  5426. }
  5427. //
  5428. // Have we determined that this is a lost cause?
  5429. //
  5430. if ( (TAPIPROC)-1 == lpfn )
  5431. {
  5432. return LINEERR_OPERATIONUNAVAIL;
  5433. }
  5434. return (*lpfn)(
  5435. hCall,
  5436. lpszDestAddress,
  5437. dwCountryCode
  5438. );
  5439. }
  5440. //**************************************************************************
  5441. //**************************************************************************
  5442. //**************************************************************************
  5443. LONG
  5444. WINAPI
  5445. lineRedirectA(
  5446. HCALL hCall,
  5447. LPCSTR lpszDestAddress,
  5448. DWORD dwCountryCode
  5449. )
  5450. {
  5451. static TAPIPROC lpfn = NULL;
  5452. LONG lResult;
  5453. if ( lpfn == NULL )
  5454. {
  5455. //
  5456. // Did we have a problem?
  5457. //
  5458. if ( 0 != (lResult = GetTheFunctionPtr( "lineRedirectA", &lpfn )) )
  5459. {
  5460. lpfn = (TAPIPROC)-1;
  5461. return lResult;
  5462. }
  5463. }
  5464. //
  5465. // Have we determined that this is a lost cause?
  5466. //
  5467. if ( (TAPIPROC)-1 == lpfn )
  5468. {
  5469. return LINEERR_OPERATIONUNAVAIL;
  5470. }
  5471. return (*lpfn)(
  5472. hCall,
  5473. lpszDestAddress,
  5474. dwCountryCode
  5475. );
  5476. }
  5477. //**************************************************************************
  5478. //**************************************************************************
  5479. //**************************************************************************
  5480. LONG
  5481. WINAPI
  5482. lineRedirectW(
  5483. HCALL hCall,
  5484. LPCWSTR lpszDestAddress,
  5485. DWORD dwCountryCode
  5486. )
  5487. {
  5488. static TAPIPROC lpfn = NULL;
  5489. LONG lResult;
  5490. if ( lpfn == NULL )
  5491. {
  5492. //
  5493. // Did we have a problem?
  5494. //
  5495. if ( 0 != (lResult = GetTheFunctionPtr( "lineRedirectW", &lpfn )) )
  5496. {
  5497. lpfn = (TAPIPROC)-1;
  5498. return lResult;
  5499. }
  5500. }
  5501. //
  5502. // Have we determined that this is a lost cause?
  5503. //
  5504. if ( (TAPIPROC)-1 == lpfn )
  5505. {
  5506. return LINEERR_OPERATIONUNAVAIL;
  5507. }
  5508. return (*lpfn)(
  5509. hCall,
  5510. lpszDestAddress,
  5511. dwCountryCode
  5512. );
  5513. }
  5514. //**************************************************************************
  5515. //**************************************************************************
  5516. //**************************************************************************
  5517. LONG
  5518. WINAPI
  5519. lineRegisterRequestRecipient(
  5520. HLINEAPP hLineApp,
  5521. DWORD dwRegistrationInstance,
  5522. DWORD dwRequestMode,
  5523. DWORD bEnable
  5524. )
  5525. {
  5526. static TAPIPROC lpfn = NULL;
  5527. LONG lResult;
  5528. if ( lpfn == NULL )
  5529. {
  5530. //
  5531. // Did we have a problem?
  5532. //
  5533. if ( 0 != (lResult = GetTheFunctionPtr( "lineRegisterRequestRecipient", &lpfn )) )
  5534. {
  5535. lpfn = (TAPIPROC)-1;
  5536. return lResult;
  5537. }
  5538. }
  5539. //
  5540. // Have we determined that this is a lost cause?
  5541. //
  5542. if ( (TAPIPROC)-1 == lpfn )
  5543. {
  5544. return LINEERR_OPERATIONUNAVAIL;
  5545. }
  5546. return (*lpfn)(
  5547. hLineApp,
  5548. dwRegistrationInstance,
  5549. dwRequestMode,
  5550. bEnable
  5551. );
  5552. }
  5553. //**************************************************************************
  5554. //**************************************************************************
  5555. //**************************************************************************
  5556. LONG
  5557. WINAPI
  5558. lineReleaseUserUserInfo(
  5559. HCALL hCall
  5560. )
  5561. {
  5562. static TAPIPROC lpfn = NULL;
  5563. LONG lResult;
  5564. if ( lpfn == NULL )
  5565. {
  5566. //
  5567. // Did we have a problem?
  5568. //
  5569. if ( 0 != (lResult = GetTheFunctionPtr( "lineReleaseUserUserInfo", &lpfn )) )
  5570. {
  5571. lpfn = (TAPIPROC)-1;
  5572. return lResult;
  5573. }
  5574. }
  5575. //
  5576. // Have we determined that this is a lost cause?
  5577. //
  5578. if ( (TAPIPROC)-1 == lpfn )
  5579. {
  5580. return LINEERR_OPERATIONUNAVAIL;
  5581. }
  5582. return (*lpfn)(
  5583. hCall
  5584. );
  5585. }
  5586. //**************************************************************************
  5587. //**************************************************************************
  5588. //**************************************************************************
  5589. LONG
  5590. WINAPI
  5591. lineRemoveFromConference(
  5592. HCALL hCall
  5593. )
  5594. {
  5595. static TAPIPROC lpfn = NULL;
  5596. LONG lResult;
  5597. if ( lpfn == NULL )
  5598. {
  5599. //
  5600. // Did we have a problem?
  5601. //
  5602. if ( 0 != (lResult = GetTheFunctionPtr( "lineRemoveFromConference", &lpfn )) )
  5603. {
  5604. lpfn = (TAPIPROC)-1;
  5605. return lResult;
  5606. }
  5607. }
  5608. //
  5609. // Have we determined that this is a lost cause?
  5610. //
  5611. if ( (TAPIPROC)-1 == lpfn )
  5612. {
  5613. return LINEERR_OPERATIONUNAVAIL;
  5614. }
  5615. return (*lpfn)(
  5616. hCall
  5617. );
  5618. }
  5619. //**************************************************************************
  5620. //**************************************************************************
  5621. //**************************************************************************
  5622. LONG
  5623. WINAPI
  5624. lineRemoveProvider(
  5625. DWORD dwPermanentProviderID,
  5626. HWND hwndOwner
  5627. )
  5628. {
  5629. static TAPIPROC lpfn = NULL;
  5630. LONG lResult;
  5631. if ( lpfn == NULL )
  5632. {
  5633. //
  5634. // Did we have a problem?
  5635. //
  5636. if ( 0 != (lResult = GetTheFunctionPtr( "lineRemoveProvider", &lpfn )) )
  5637. {
  5638. lpfn = (TAPIPROC)-1;
  5639. return lResult;
  5640. }
  5641. }
  5642. //
  5643. // Have we determined that this is a lost cause?
  5644. //
  5645. if ( (TAPIPROC)-1 == lpfn )
  5646. {
  5647. return LINEERR_OPERATIONUNAVAIL;
  5648. }
  5649. return (*lpfn)(
  5650. dwPermanentProviderID,
  5651. hwndOwner
  5652. );
  5653. }
  5654. //**************************************************************************
  5655. //**************************************************************************
  5656. //**************************************************************************
  5657. LONG
  5658. WINAPI
  5659. lineSecureCall(
  5660. HCALL hCall
  5661. )
  5662. {
  5663. static TAPIPROC lpfn = NULL;
  5664. LONG lResult;
  5665. if ( lpfn == NULL )
  5666. {
  5667. //
  5668. // Did we have a problem?
  5669. //
  5670. if ( 0 != (lResult = GetTheFunctionPtr( "lineSecureCall", &lpfn )) )
  5671. {
  5672. lpfn = (TAPIPROC)-1;
  5673. return lResult;
  5674. }
  5675. }
  5676. //
  5677. // Have we determined that this is a lost cause?
  5678. //
  5679. if ( (TAPIPROC)-1 == lpfn )
  5680. {
  5681. return LINEERR_OPERATIONUNAVAIL;
  5682. }
  5683. return (*lpfn)(
  5684. hCall
  5685. );
  5686. }
  5687. //**************************************************************************
  5688. //**************************************************************************
  5689. //**************************************************************************
  5690. LONG
  5691. WINAPI
  5692. lineSendUserUserInfo(
  5693. HCALL hCall,
  5694. LPCSTR lpsUserUserInfo,
  5695. DWORD dwSize
  5696. )
  5697. {
  5698. static TAPIPROC lpfn = NULL;
  5699. LONG lResult;
  5700. if ( lpfn == NULL )
  5701. {
  5702. //
  5703. // Did we have a problem?
  5704. //
  5705. if ( 0 != (lResult = GetTheFunctionPtr( "lineSendUserUserInfo", &lpfn )) )
  5706. {
  5707. lpfn = (TAPIPROC)-1;
  5708. return lResult;
  5709. }
  5710. }
  5711. //
  5712. // Have we determined that this is a lost cause?
  5713. //
  5714. if ( (TAPIPROC)-1 == lpfn )
  5715. {
  5716. return LINEERR_OPERATIONUNAVAIL;
  5717. }
  5718. return (*lpfn)(
  5719. hCall,
  5720. lpsUserUserInfo,
  5721. dwSize
  5722. );
  5723. }
  5724. //**************************************************************************
  5725. //**************************************************************************
  5726. //**************************************************************************
  5727. LONG
  5728. WINAPI
  5729. lineSetAgentActivity(
  5730. HLINE hLine,
  5731. DWORD dwAddressID,
  5732. DWORD dwActivityID
  5733. )
  5734. {
  5735. static TAPIPROC lpfn = NULL;
  5736. LONG lResult;
  5737. if ( lpfn == NULL )
  5738. {
  5739. //
  5740. // Did we have a problem?
  5741. //
  5742. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentActivity", &lpfn )) )
  5743. {
  5744. lpfn = (TAPIPROC)-1;
  5745. return lResult;
  5746. }
  5747. }
  5748. //
  5749. // Have we determined that this is a lost cause?
  5750. //
  5751. if ( (TAPIPROC)-1 == lpfn )
  5752. {
  5753. return LINEERR_OPERATIONUNAVAIL;
  5754. }
  5755. return (*lpfn)(
  5756. hLine,
  5757. dwAddressID,
  5758. dwActivityID
  5759. );
  5760. }
  5761. //**************************************************************************
  5762. //**************************************************************************
  5763. //**************************************************************************
  5764. LONG
  5765. WINAPI
  5766. lineSetAgentGroup(
  5767. HLINE hLine,
  5768. DWORD dwAddressID,
  5769. LPLINEAGENTGROUPLIST lpAgentGroupList
  5770. )
  5771. {
  5772. static TAPIPROC lpfn = NULL;
  5773. LONG lResult;
  5774. if ( lpfn == NULL )
  5775. {
  5776. //
  5777. // Did we have a problem?
  5778. //
  5779. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentGroup", &lpfn )) )
  5780. {
  5781. lpfn = (TAPIPROC)-1;
  5782. return lResult;
  5783. }
  5784. }
  5785. //
  5786. // Have we determined that this is a lost cause?
  5787. //
  5788. if ( (TAPIPROC)-1 == lpfn )
  5789. {
  5790. return LINEERR_OPERATIONUNAVAIL;
  5791. }
  5792. return (*lpfn)(
  5793. hLine,
  5794. dwAddressID,
  5795. lpAgentGroupList
  5796. );
  5797. }
  5798. //**************************************************************************
  5799. //**************************************************************************
  5800. //**************************************************************************
  5801. LONG
  5802. WINAPI
  5803. lineSetAgentMeasurementPeriod( // TAPI v2.2
  5804. HLINE hLine,
  5805. HAGENT hAgent,
  5806. DWORD dwMeasurementPeriod
  5807. )
  5808. {
  5809. static TAPIPROC lpfn = NULL;
  5810. LONG lResult;
  5811. if ( lpfn == NULL )
  5812. {
  5813. //
  5814. // Did we have a problem?
  5815. //
  5816. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentMeasurementPeriod", &lpfn )) )
  5817. {
  5818. lpfn = (TAPIPROC)-1;
  5819. return lResult;
  5820. }
  5821. }
  5822. //
  5823. // Have we determined that this is a lost cause?
  5824. //
  5825. if ( (TAPIPROC)-1 == lpfn )
  5826. {
  5827. return LINEERR_OPERATIONUNAVAIL;
  5828. }
  5829. return (*lpfn)(
  5830. hLine,
  5831. hAgent,
  5832. dwMeasurementPeriod
  5833. );
  5834. }
  5835. //**************************************************************************
  5836. //**************************************************************************
  5837. //**************************************************************************
  5838. LONG
  5839. WINAPI
  5840. lineSetAgentSessionState( // TAPI v2.2
  5841. HLINE hLine,
  5842. HAGENTSESSION hAgentSession,
  5843. DWORD dwSessionState,
  5844. DWORD dwNextSessionState
  5845. )
  5846. {
  5847. static TAPIPROC lpfn = NULL;
  5848. LONG lResult;
  5849. if ( lpfn == NULL )
  5850. {
  5851. //
  5852. // Did we have a problem?
  5853. //
  5854. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentSessionState", &lpfn )) )
  5855. {
  5856. lpfn = (TAPIPROC)-1;
  5857. return lResult;
  5858. }
  5859. }
  5860. //
  5861. // Have we determined that this is a lost cause?
  5862. //
  5863. if ( (TAPIPROC)-1 == lpfn )
  5864. {
  5865. return LINEERR_OPERATIONUNAVAIL;
  5866. }
  5867. return (*lpfn)(
  5868. hLine,
  5869. hAgentSession,
  5870. dwSessionState,
  5871. dwNextSessionState
  5872. );
  5873. }
  5874. //**************************************************************************
  5875. //**************************************************************************
  5876. //**************************************************************************
  5877. LONG
  5878. WINAPI
  5879. lineSetAgentState(
  5880. HLINE hLine,
  5881. DWORD dwAddressID,
  5882. DWORD dwAgentState,
  5883. DWORD dwNextAgentState
  5884. )
  5885. {
  5886. static TAPIPROC lpfn = NULL;
  5887. LONG lResult;
  5888. if ( lpfn == NULL )
  5889. {
  5890. //
  5891. // Did we have a problem?
  5892. //
  5893. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentState", &lpfn )) )
  5894. {
  5895. lpfn = (TAPIPROC)-1;
  5896. return lResult;
  5897. }
  5898. }
  5899. //
  5900. // Have we determined that this is a lost cause?
  5901. //
  5902. if ( (TAPIPROC)-1 == lpfn )
  5903. {
  5904. return LINEERR_OPERATIONUNAVAIL;
  5905. }
  5906. return (*lpfn)(
  5907. hLine,
  5908. dwAddressID,
  5909. dwAgentState,
  5910. dwNextAgentState
  5911. );
  5912. }
  5913. //**************************************************************************
  5914. //**************************************************************************
  5915. //**************************************************************************
  5916. LONG
  5917. WINAPI
  5918. lineSetAgentStateEx( // TAPI v2.2
  5919. HLINE hLine,
  5920. HAGENT hAgent,
  5921. DWORD dwSessionState,
  5922. DWORD dwNextSessionState
  5923. )
  5924. {
  5925. static TAPIPROC lpfn = NULL;
  5926. LONG lResult;
  5927. if ( lpfn == NULL )
  5928. {
  5929. //
  5930. // Did we have a problem?
  5931. //
  5932. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAgentStateEx", &lpfn )) )
  5933. {
  5934. lpfn = (TAPIPROC)-1;
  5935. return lResult;
  5936. }
  5937. }
  5938. //
  5939. // Have we determined that this is a lost cause?
  5940. //
  5941. if ( (TAPIPROC)-1 == lpfn )
  5942. {
  5943. return LINEERR_OPERATIONUNAVAIL;
  5944. }
  5945. return (*lpfn)(
  5946. hLine,
  5947. hAgent,
  5948. dwSessionState,
  5949. dwNextSessionState
  5950. );
  5951. }
  5952. //**************************************************************************
  5953. //**************************************************************************
  5954. //**************************************************************************
  5955. LONG
  5956. WINAPI
  5957. lineSetAppPriority(
  5958. LPCSTR lpszAppFilename,
  5959. DWORD dwMediaMode,
  5960. LPLINEEXTENSIONID lpExtensionID,
  5961. DWORD dwRequestMode,
  5962. LPCSTR lpszExtensionName,
  5963. DWORD dwPriority
  5964. )
  5965. {
  5966. static TAPIPROC lpfn = NULL;
  5967. LONG lResult;
  5968. if ( lpfn == NULL )
  5969. {
  5970. //
  5971. // Did we have a problem?
  5972. //
  5973. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAppPriority", &lpfn )) )
  5974. {
  5975. lpfn = (TAPIPROC)-1;
  5976. return lResult;
  5977. }
  5978. }
  5979. //
  5980. // Have we determined that this is a lost cause?
  5981. //
  5982. if ( (TAPIPROC)-1 == lpfn )
  5983. {
  5984. return LINEERR_OPERATIONUNAVAIL;
  5985. }
  5986. return (*lpfn)(
  5987. lpszAppFilename,
  5988. dwMediaMode,
  5989. lpExtensionID,
  5990. dwRequestMode,
  5991. lpszExtensionName,
  5992. dwPriority
  5993. );
  5994. }
  5995. //**************************************************************************
  5996. //**************************************************************************
  5997. //**************************************************************************
  5998. LONG
  5999. WINAPI
  6000. lineSetAppPriorityA(
  6001. LPCSTR lpszAppFilename,
  6002. DWORD dwMediaMode,
  6003. LPLINEEXTENSIONID lpExtensionID,
  6004. DWORD dwRequestMode,
  6005. LPCSTR lpszExtensionName,
  6006. DWORD dwPriority
  6007. )
  6008. {
  6009. static TAPIPROC lpfn = NULL;
  6010. LONG lResult;
  6011. if ( lpfn == NULL )
  6012. {
  6013. //
  6014. // Did we have a problem?
  6015. //
  6016. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAppPriorityA", &lpfn )) )
  6017. {
  6018. lpfn = (TAPIPROC)-1;
  6019. return lResult;
  6020. }
  6021. }
  6022. //
  6023. // Have we determined that this is a lost cause?
  6024. //
  6025. if ( (TAPIPROC)-1 == lpfn )
  6026. {
  6027. return LINEERR_OPERATIONUNAVAIL;
  6028. }
  6029. return (*lpfn)(
  6030. lpszAppFilename,
  6031. dwMediaMode,
  6032. lpExtensionID,
  6033. dwRequestMode,
  6034. lpszExtensionName,
  6035. dwPriority
  6036. );
  6037. }
  6038. //**************************************************************************
  6039. //**************************************************************************
  6040. //**************************************************************************
  6041. LONG
  6042. WINAPI
  6043. lineSetAppPriorityW(
  6044. LPCWSTR lpszAppFilename,
  6045. DWORD dwMediaMode,
  6046. LPLINEEXTENSIONID lpExtensionID,
  6047. DWORD dwRequestMode,
  6048. LPCWSTR lpszExtensionName,
  6049. DWORD dwPriority
  6050. )
  6051. {
  6052. static TAPIPROC lpfn = NULL;
  6053. LONG lResult;
  6054. if ( lpfn == NULL )
  6055. {
  6056. //
  6057. // Did we have a problem?
  6058. //
  6059. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAppPriorityW", &lpfn )) )
  6060. {
  6061. lpfn = (TAPIPROC)-1;
  6062. return lResult;
  6063. }
  6064. }
  6065. //
  6066. // Have we determined that this is a lost cause?
  6067. //
  6068. if ( (TAPIPROC)-1 == lpfn )
  6069. {
  6070. return LINEERR_OPERATIONUNAVAIL;
  6071. }
  6072. return (*lpfn)(
  6073. lpszAppFilename,
  6074. dwMediaMode,
  6075. lpExtensionID,
  6076. dwRequestMode,
  6077. lpszExtensionName,
  6078. dwPriority
  6079. );
  6080. }
  6081. //**************************************************************************
  6082. //**************************************************************************
  6083. //**************************************************************************
  6084. LONG
  6085. WINAPI
  6086. lineSetAppSpecific(
  6087. HCALL hCall,
  6088. DWORD dwAppSpecific
  6089. )
  6090. {
  6091. static TAPIPROC lpfn = NULL;
  6092. LONG lResult;
  6093. if ( lpfn == NULL )
  6094. {
  6095. //
  6096. // Did we have a problem?
  6097. //
  6098. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetAppSpecific", &lpfn )) )
  6099. {
  6100. lpfn = (TAPIPROC)-1;
  6101. return lResult;
  6102. }
  6103. }
  6104. //
  6105. // Have we determined that this is a lost cause?
  6106. //
  6107. if ( (TAPIPROC)-1 == lpfn )
  6108. {
  6109. return LINEERR_OPERATIONUNAVAIL;
  6110. }
  6111. return (*lpfn)(
  6112. hCall,
  6113. dwAppSpecific
  6114. );
  6115. }
  6116. //**************************************************************************
  6117. //**************************************************************************
  6118. //**************************************************************************
  6119. LONG
  6120. WINAPI
  6121. lineSetCallData(
  6122. HCALL hCall,
  6123. LPVOID lpCallData,
  6124. DWORD dwSize
  6125. )
  6126. {
  6127. static TAPIPROC lpfn = NULL;
  6128. LONG lResult;
  6129. if ( lpfn == NULL )
  6130. {
  6131. //
  6132. // Did we have a problem?
  6133. //
  6134. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCallData", &lpfn )) )
  6135. {
  6136. lpfn = (TAPIPROC)-1;
  6137. return lResult;
  6138. }
  6139. }
  6140. //
  6141. // Have we determined that this is a lost cause?
  6142. //
  6143. if ( (TAPIPROC)-1 == lpfn )
  6144. {
  6145. return LINEERR_OPERATIONUNAVAIL;
  6146. }
  6147. return (*lpfn)(
  6148. hCall,
  6149. lpCallData,
  6150. dwSize
  6151. );
  6152. }
  6153. //**************************************************************************
  6154. //**************************************************************************
  6155. //**************************************************************************
  6156. LONG
  6157. WINAPI
  6158. lineSetCallParams(
  6159. HCALL hCall,
  6160. DWORD dwBearerMode,
  6161. DWORD dwMinRate,
  6162. DWORD dwMaxRate,
  6163. LPLINEDIALPARAMS const lpDialParams
  6164. )
  6165. {
  6166. static TAPIPROC lpfn = NULL;
  6167. LONG lResult;
  6168. if ( lpfn == NULL )
  6169. {
  6170. //
  6171. // Did we have a problem?
  6172. //
  6173. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCallParams", &lpfn )) )
  6174. {
  6175. lpfn = (TAPIPROC)-1;
  6176. return lResult;
  6177. }
  6178. }
  6179. //
  6180. // Have we determined that this is a lost cause?
  6181. //
  6182. if ( (TAPIPROC)-1 == lpfn )
  6183. {
  6184. return LINEERR_OPERATIONUNAVAIL;
  6185. }
  6186. return (*lpfn)(
  6187. hCall,
  6188. dwBearerMode,
  6189. dwMinRate,
  6190. dwMaxRate,
  6191. lpDialParams
  6192. );
  6193. }
  6194. //**************************************************************************
  6195. //**************************************************************************
  6196. //**************************************************************************
  6197. LONG
  6198. WINAPI
  6199. lineSetCallPrivilege(
  6200. HCALL hCall,
  6201. DWORD dwCallPrivilege
  6202. )
  6203. {
  6204. static TAPIPROC lpfn = NULL;
  6205. LONG lResult;
  6206. if ( lpfn == NULL )
  6207. {
  6208. //
  6209. // Did we have a problem?
  6210. //
  6211. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCallPrivilege", &lpfn )) )
  6212. {
  6213. lpfn = (TAPIPROC)-1;
  6214. return lResult;
  6215. }
  6216. }
  6217. //
  6218. // Have we determined that this is a lost cause?
  6219. //
  6220. if ( (TAPIPROC)-1 == lpfn )
  6221. {
  6222. return LINEERR_OPERATIONUNAVAIL;
  6223. }
  6224. return (*lpfn)(
  6225. hCall,
  6226. dwCallPrivilege
  6227. );
  6228. }
  6229. //**************************************************************************
  6230. //**************************************************************************
  6231. //**************************************************************************
  6232. LONG
  6233. WINAPI
  6234. lineSetCallQualityOfService(
  6235. HCALL hCall,
  6236. LPVOID lpSendingFlowspec,
  6237. DWORD dwSendingFlowspecSize,
  6238. LPVOID lpReceivingFlowspec,
  6239. DWORD dwReceivingFlowspecSize
  6240. )
  6241. {
  6242. static TAPIPROC lpfn = NULL;
  6243. LONG lResult;
  6244. if ( lpfn == NULL )
  6245. {
  6246. //
  6247. // Did we have a problem?
  6248. //
  6249. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCallQualityOfService", &lpfn )) )
  6250. {
  6251. lpfn = (TAPIPROC)-1;
  6252. return lResult;
  6253. }
  6254. }
  6255. //
  6256. // Have we determined that this is a lost cause?
  6257. //
  6258. if ( (TAPIPROC)-1 == lpfn )
  6259. {
  6260. return LINEERR_OPERATIONUNAVAIL;
  6261. }
  6262. return (*lpfn)(
  6263. hCall,
  6264. lpSendingFlowspec,
  6265. dwSendingFlowspecSize,
  6266. lpReceivingFlowspec,
  6267. dwReceivingFlowspecSize
  6268. );
  6269. }
  6270. //**************************************************************************
  6271. //**************************************************************************
  6272. //**************************************************************************
  6273. LONG
  6274. WINAPI
  6275. lineSetCallTreatment(
  6276. HCALL hCall,
  6277. DWORD dwTreatment
  6278. )
  6279. {
  6280. static TAPIPROC lpfn = NULL;
  6281. LONG lResult;
  6282. if ( lpfn == NULL )
  6283. {
  6284. //
  6285. // Did we have a problem?
  6286. //
  6287. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCallTreatment", &lpfn )) )
  6288. {
  6289. lpfn = (TAPIPROC)-1;
  6290. return lResult;
  6291. }
  6292. }
  6293. //
  6294. // Have we determined that this is a lost cause?
  6295. //
  6296. if ( (TAPIPROC)-1 == lpfn )
  6297. {
  6298. return LINEERR_OPERATIONUNAVAIL;
  6299. }
  6300. return (*lpfn)(
  6301. hCall,
  6302. dwTreatment
  6303. );
  6304. }
  6305. //**************************************************************************
  6306. //**************************************************************************
  6307. //**************************************************************************
  6308. LONG
  6309. WINAPI
  6310. lineSetCurrentLocation(
  6311. HLINEAPP hLineApp,
  6312. DWORD dwLocation
  6313. )
  6314. {
  6315. static TAPIPROC lpfn = NULL;
  6316. LONG lResult;
  6317. if ( lpfn == NULL )
  6318. {
  6319. //
  6320. // Did we have a problem?
  6321. //
  6322. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetCurrentLocation", &lpfn )) )
  6323. {
  6324. lpfn = (TAPIPROC)-1;
  6325. return lResult;
  6326. }
  6327. }
  6328. //
  6329. // Have we determined that this is a lost cause?
  6330. //
  6331. if ( (TAPIPROC)-1 == lpfn )
  6332. {
  6333. return LINEERR_OPERATIONUNAVAIL;
  6334. }
  6335. return (*lpfn)(
  6336. hLineApp,
  6337. dwLocation
  6338. );
  6339. }
  6340. //**************************************************************************
  6341. //**************************************************************************
  6342. //**************************************************************************
  6343. LONG
  6344. WINAPI
  6345. lineSetDevConfig(
  6346. DWORD dwDeviceID,
  6347. LPVOID const lpDeviceConfig,
  6348. DWORD dwSize,
  6349. LPCSTR lpszDeviceClass
  6350. )
  6351. {
  6352. static TAPIPROC lpfn = NULL;
  6353. LONG lResult;
  6354. if ( lpfn == NULL )
  6355. {
  6356. //
  6357. // Did we have a problem?
  6358. //
  6359. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetDevConfig", &lpfn )) )
  6360. {
  6361. lpfn = (TAPIPROC)-1;
  6362. return lResult;
  6363. }
  6364. }
  6365. //
  6366. // Have we determined that this is a lost cause?
  6367. //
  6368. if ( (TAPIPROC)-1 == lpfn )
  6369. {
  6370. return LINEERR_OPERATIONUNAVAIL;
  6371. }
  6372. return (*lpfn)(
  6373. dwDeviceID,
  6374. lpDeviceConfig,
  6375. dwSize,
  6376. lpszDeviceClass
  6377. );
  6378. }
  6379. //**************************************************************************
  6380. //**************************************************************************
  6381. //**************************************************************************
  6382. LONG
  6383. WINAPI
  6384. lineSetDevConfigA(
  6385. DWORD dwDeviceID,
  6386. LPVOID const lpDeviceConfig,
  6387. DWORD dwSize,
  6388. LPCSTR lpszDeviceClass
  6389. )
  6390. {
  6391. static TAPIPROC lpfn = NULL;
  6392. LONG lResult;
  6393. if ( lpfn == NULL )
  6394. {
  6395. //
  6396. // Did we have a problem?
  6397. //
  6398. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetDevConfigA", &lpfn )) )
  6399. {
  6400. lpfn = (TAPIPROC)-1;
  6401. return lResult;
  6402. }
  6403. }
  6404. //
  6405. // Have we determined that this is a lost cause?
  6406. //
  6407. if ( (TAPIPROC)-1 == lpfn )
  6408. {
  6409. return LINEERR_OPERATIONUNAVAIL;
  6410. }
  6411. return (*lpfn)(
  6412. dwDeviceID,
  6413. lpDeviceConfig,
  6414. dwSize,
  6415. lpszDeviceClass
  6416. );
  6417. }
  6418. //**************************************************************************
  6419. //**************************************************************************
  6420. //**************************************************************************
  6421. LONG
  6422. WINAPI
  6423. lineSetDevConfigW(
  6424. DWORD dwDeviceID,
  6425. LPVOID const lpDeviceConfig,
  6426. DWORD dwSize,
  6427. LPCWSTR lpszDeviceClass
  6428. )
  6429. {
  6430. static TAPIPROC lpfn = NULL;
  6431. LONG lResult;
  6432. if ( lpfn == NULL )
  6433. {
  6434. //
  6435. // Did we have a problem?
  6436. //
  6437. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetDevConfigW", &lpfn )) )
  6438. {
  6439. lpfn = (TAPIPROC)-1;
  6440. return lResult;
  6441. }
  6442. }
  6443. //
  6444. // Have we determined that this is a lost cause?
  6445. //
  6446. if ( (TAPIPROC)-1 == lpfn )
  6447. {
  6448. return LINEERR_OPERATIONUNAVAIL;
  6449. }
  6450. return (*lpfn)(
  6451. dwDeviceID,
  6452. lpDeviceConfig,
  6453. dwSize,
  6454. lpszDeviceClass
  6455. );
  6456. }
  6457. //**************************************************************************
  6458. //**************************************************************************
  6459. //**************************************************************************
  6460. LONG
  6461. WINAPI
  6462. lineSetLineDevStatus(
  6463. HLINE hLine,
  6464. DWORD dwStatusToChange,
  6465. DWORD fStatus
  6466. )
  6467. {
  6468. static TAPIPROC lpfn = NULL;
  6469. LONG lResult;
  6470. if ( lpfn == NULL )
  6471. {
  6472. //
  6473. // Did we have a problem?
  6474. //
  6475. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetLineDevStatus", &lpfn )) )
  6476. {
  6477. lpfn = (TAPIPROC)-1;
  6478. return lResult;
  6479. }
  6480. }
  6481. //
  6482. // Have we determined that this is a lost cause?
  6483. //
  6484. if ( (TAPIPROC)-1 == lpfn )
  6485. {
  6486. return LINEERR_OPERATIONUNAVAIL;
  6487. }
  6488. return (*lpfn)(
  6489. hLine,
  6490. dwStatusToChange,
  6491. fStatus
  6492. );
  6493. }
  6494. //**************************************************************************
  6495. //**************************************************************************
  6496. //**************************************************************************
  6497. LONG
  6498. WINAPI
  6499. lineSetMediaControl(
  6500. HLINE hLine,
  6501. DWORD dwAddressID,
  6502. HCALL hCall,
  6503. DWORD dwSelect,
  6504. LPLINEMEDIACONTROLDIGIT const lpDigitList,
  6505. DWORD dwDigitNumEntries,
  6506. LPLINEMEDIACONTROLMEDIA const lpMediaList,
  6507. DWORD dwMediaNumEntries,
  6508. LPLINEMEDIACONTROLTONE const lpToneList,
  6509. DWORD dwToneNumEntries,
  6510. LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  6511. DWORD dwCallStateNumEntries
  6512. )
  6513. {
  6514. static TAPIPROC lpfn = NULL;
  6515. LONG lResult;
  6516. if ( lpfn == NULL )
  6517. {
  6518. //
  6519. // Did we have a problem?
  6520. //
  6521. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetMediaControl", &lpfn )) )
  6522. {
  6523. lpfn = (TAPIPROC)-1;
  6524. return lResult;
  6525. }
  6526. }
  6527. //
  6528. // Have we determined that this is a lost cause?
  6529. //
  6530. if ( (TAPIPROC)-1 == lpfn )
  6531. {
  6532. return LINEERR_OPERATIONUNAVAIL;
  6533. }
  6534. return (*lpfn)(
  6535. hLine,
  6536. dwAddressID,
  6537. hCall,
  6538. dwSelect,
  6539. lpDigitList,
  6540. dwDigitNumEntries,
  6541. lpMediaList,
  6542. dwMediaNumEntries,
  6543. lpToneList,
  6544. dwToneNumEntries,
  6545. lpCallStateList,
  6546. dwCallStateNumEntries
  6547. );
  6548. }
  6549. //**************************************************************************
  6550. //**************************************************************************
  6551. //**************************************************************************
  6552. LONG
  6553. WINAPI
  6554. lineSetMediaMode(
  6555. HCALL hCall,
  6556. DWORD dwMediaModes
  6557. )
  6558. {
  6559. static TAPIPROC lpfn = NULL;
  6560. LONG lResult;
  6561. if ( lpfn == NULL )
  6562. {
  6563. //
  6564. // Did we have a problem?
  6565. //
  6566. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetMediaMode", &lpfn )) )
  6567. {
  6568. lpfn = (TAPIPROC)-1;
  6569. return lResult;
  6570. }
  6571. }
  6572. //
  6573. // Have we determined that this is a lost cause?
  6574. //
  6575. if ( (TAPIPROC)-1 == lpfn )
  6576. {
  6577. return LINEERR_OPERATIONUNAVAIL;
  6578. }
  6579. return (*lpfn)(
  6580. hCall,
  6581. dwMediaModes
  6582. );
  6583. }
  6584. //**************************************************************************
  6585. //**************************************************************************
  6586. //**************************************************************************
  6587. LONG
  6588. WINAPI
  6589. lineSetNumRings(
  6590. HLINE hLine,
  6591. DWORD dwAddressID,
  6592. DWORD dwNumRings
  6593. )
  6594. {
  6595. static TAPIPROC lpfn = NULL;
  6596. LONG lResult;
  6597. if ( lpfn == NULL )
  6598. {
  6599. //
  6600. // Did we have a problem?
  6601. //
  6602. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetNumRings", &lpfn )) )
  6603. {
  6604. lpfn = (TAPIPROC)-1;
  6605. return lResult;
  6606. }
  6607. }
  6608. //
  6609. // Have we determined that this is a lost cause?
  6610. //
  6611. if ( (TAPIPROC)-1 == lpfn )
  6612. {
  6613. return LINEERR_OPERATIONUNAVAIL;
  6614. }
  6615. return (*lpfn)(
  6616. hLine,
  6617. dwAddressID,
  6618. dwNumRings
  6619. );
  6620. }
  6621. //**************************************************************************
  6622. //**************************************************************************
  6623. //**************************************************************************
  6624. LONG
  6625. WINAPI
  6626. lineSetQueueMeasurementPeriod( // TAPI v2.2
  6627. HLINE hLine,
  6628. DWORD dwQueueID,
  6629. DWORD dwMeasurementPeriod
  6630. )
  6631. {
  6632. static TAPIPROC lpfn = NULL;
  6633. LONG lResult;
  6634. if ( lpfn == NULL )
  6635. {
  6636. //
  6637. // Did we have a problem?
  6638. //
  6639. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetQueueMeasurementPeriod", &lpfn )) )
  6640. {
  6641. lpfn = (TAPIPROC)-1;
  6642. return lResult;
  6643. }
  6644. }
  6645. //
  6646. // Have we determined that this is a lost cause?
  6647. //
  6648. if ( (TAPIPROC)-1 == lpfn )
  6649. {
  6650. return LINEERR_OPERATIONUNAVAIL;
  6651. }
  6652. return (*lpfn)(
  6653. hLine,
  6654. dwQueueID,
  6655. dwMeasurementPeriod
  6656. );
  6657. }
  6658. //**************************************************************************
  6659. //**************************************************************************
  6660. //**************************************************************************
  6661. LONG
  6662. WINAPI
  6663. lineSetStatusMessages(
  6664. HLINE hLine,
  6665. DWORD dwLineStates,
  6666. DWORD dwAddressStates
  6667. )
  6668. {
  6669. static TAPIPROC lpfn = NULL;
  6670. LONG lResult;
  6671. if ( lpfn == NULL )
  6672. {
  6673. //
  6674. // Did we have a problem?
  6675. //
  6676. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetStatusMessages", &lpfn )) )
  6677. {
  6678. lpfn = (TAPIPROC)-1;
  6679. return lResult;
  6680. }
  6681. }
  6682. //
  6683. // Have we determined that this is a lost cause?
  6684. //
  6685. if ( (TAPIPROC)-1 == lpfn )
  6686. {
  6687. return LINEERR_OPERATIONUNAVAIL;
  6688. }
  6689. return (*lpfn)(
  6690. hLine,
  6691. dwLineStates,
  6692. dwAddressStates
  6693. );
  6694. }
  6695. //**************************************************************************
  6696. //**************************************************************************
  6697. //**************************************************************************
  6698. LONG
  6699. WINAPI
  6700. lineSetTerminal(
  6701. HLINE hLine,
  6702. DWORD dwAddressID,
  6703. HCALL hCall,
  6704. DWORD dwSelect,
  6705. DWORD dwTerminalModes,
  6706. DWORD dwTerminalID,
  6707. DWORD bEnable
  6708. )
  6709. {
  6710. static TAPIPROC lpfn = NULL;
  6711. LONG lResult;
  6712. if ( lpfn == NULL )
  6713. {
  6714. //
  6715. // Did we have a problem?
  6716. //
  6717. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetTerminal", &lpfn )) )
  6718. {
  6719. lpfn = (TAPIPROC)-1;
  6720. return lResult;
  6721. }
  6722. }
  6723. //
  6724. // Have we determined that this is a lost cause?
  6725. //
  6726. if ( (TAPIPROC)-1 == lpfn )
  6727. {
  6728. return LINEERR_OPERATIONUNAVAIL;
  6729. }
  6730. return (*lpfn)(
  6731. hLine,
  6732. dwAddressID,
  6733. hCall,
  6734. dwSelect,
  6735. dwTerminalModes,
  6736. dwTerminalID,
  6737. bEnable
  6738. );
  6739. }
  6740. //**************************************************************************
  6741. //**************************************************************************
  6742. //**************************************************************************
  6743. LONG
  6744. WINAPI
  6745. lineSetTollList(
  6746. HLINEAPP hLineApp,
  6747. DWORD dwDeviceID,
  6748. LPCSTR lpszAddressIn,
  6749. DWORD dwTollListOption
  6750. )
  6751. {
  6752. static TAPIPROC lpfn = NULL;
  6753. LONG lResult;
  6754. if ( lpfn == NULL )
  6755. {
  6756. //
  6757. // Did we have a problem?
  6758. //
  6759. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetTollList", &lpfn )) )
  6760. {
  6761. lpfn = (TAPIPROC)-1;
  6762. return lResult;
  6763. }
  6764. }
  6765. //
  6766. // Have we determined that this is a lost cause?
  6767. //
  6768. if ( (TAPIPROC)-1 == lpfn )
  6769. {
  6770. return LINEERR_OPERATIONUNAVAIL;
  6771. }
  6772. return (*lpfn)(
  6773. hLineApp,
  6774. dwDeviceID,
  6775. lpszAddressIn,
  6776. dwTollListOption
  6777. );
  6778. }
  6779. //**************************************************************************
  6780. //**************************************************************************
  6781. //**************************************************************************
  6782. LONG
  6783. WINAPI
  6784. lineSetTollListA(
  6785. HLINEAPP hLineApp,
  6786. DWORD dwDeviceID,
  6787. LPCSTR lpszAddressIn,
  6788. DWORD dwTollListOption
  6789. )
  6790. {
  6791. static TAPIPROC lpfn = NULL;
  6792. LONG lResult;
  6793. if ( lpfn == NULL )
  6794. {
  6795. //
  6796. // Did we have a problem?
  6797. //
  6798. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetTollListA", &lpfn )) )
  6799. {
  6800. lpfn = (TAPIPROC)-1;
  6801. return lResult;
  6802. }
  6803. }
  6804. //
  6805. // Have we determined that this is a lost cause?
  6806. //
  6807. if ( (TAPIPROC)-1 == lpfn )
  6808. {
  6809. return LINEERR_OPERATIONUNAVAIL;
  6810. }
  6811. return (*lpfn)(
  6812. hLineApp,
  6813. dwDeviceID,
  6814. lpszAddressIn,
  6815. dwTollListOption
  6816. );
  6817. }
  6818. //**************************************************************************
  6819. //**************************************************************************
  6820. //**************************************************************************
  6821. LONG
  6822. WINAPI
  6823. lineSetTollListW(
  6824. HLINEAPP hLineApp,
  6825. DWORD dwDeviceID,
  6826. LPCWSTR lpszAddressInW,
  6827. DWORD dwTollListOption
  6828. )
  6829. {
  6830. static TAPIPROC lpfn = NULL;
  6831. LONG lResult;
  6832. if ( lpfn == NULL )
  6833. {
  6834. //
  6835. // Did we have a problem?
  6836. //
  6837. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetTollListW", &lpfn )) )
  6838. {
  6839. lpfn = (TAPIPROC)-1;
  6840. return lResult;
  6841. }
  6842. }
  6843. //
  6844. // Have we determined that this is a lost cause?
  6845. //
  6846. if ( (TAPIPROC)-1 == lpfn )
  6847. {
  6848. return LINEERR_OPERATIONUNAVAIL;
  6849. }
  6850. return (*lpfn)(
  6851. hLineApp,
  6852. dwDeviceID,
  6853. lpszAddressInW,
  6854. dwTollListOption
  6855. );
  6856. }
  6857. //**************************************************************************
  6858. //**************************************************************************
  6859. //**************************************************************************
  6860. LONG
  6861. WINAPI
  6862. lineSetupConference(
  6863. HCALL hCall,
  6864. HLINE hLine,
  6865. LPHCALL lphConfCall,
  6866. LPHCALL lphConsultCall,
  6867. DWORD dwNumParties,
  6868. LPLINECALLPARAMS const lpCallParams
  6869. )
  6870. {
  6871. static TAPIPROC lpfn = NULL;
  6872. LONG lResult;
  6873. if ( lpfn == NULL )
  6874. {
  6875. //
  6876. // Did we have a problem?
  6877. //
  6878. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupConference", &lpfn )) )
  6879. {
  6880. lpfn = (TAPIPROC)-1;
  6881. return lResult;
  6882. }
  6883. }
  6884. //
  6885. // Have we determined that this is a lost cause?
  6886. //
  6887. if ( (TAPIPROC)-1 == lpfn )
  6888. {
  6889. return LINEERR_OPERATIONUNAVAIL;
  6890. }
  6891. return (*lpfn)(
  6892. hCall,
  6893. hLine,
  6894. lphConfCall,
  6895. lphConsultCall,
  6896. dwNumParties,
  6897. lpCallParams
  6898. );
  6899. }
  6900. //**************************************************************************
  6901. //**************************************************************************
  6902. //**************************************************************************
  6903. LONG
  6904. WINAPI
  6905. lineSetupConferenceA(
  6906. HCALL hCall,
  6907. HLINE hLine,
  6908. LPHCALL lphConfCall,
  6909. LPHCALL lphConsultCall,
  6910. DWORD dwNumParties,
  6911. LPLINECALLPARAMS const lpCallParams
  6912. )
  6913. {
  6914. static TAPIPROC lpfn = NULL;
  6915. LONG lResult;
  6916. if ( lpfn == NULL )
  6917. {
  6918. //
  6919. // Did we have a problem?
  6920. //
  6921. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupConferenceA", &lpfn )) )
  6922. {
  6923. lpfn = (TAPIPROC)-1;
  6924. return lResult;
  6925. }
  6926. }
  6927. //
  6928. // Have we determined that this is a lost cause?
  6929. //
  6930. if ( (TAPIPROC)-1 == lpfn )
  6931. {
  6932. return LINEERR_OPERATIONUNAVAIL;
  6933. }
  6934. return (*lpfn)(
  6935. hCall,
  6936. hLine,
  6937. lphConfCall,
  6938. lphConsultCall,
  6939. dwNumParties,
  6940. lpCallParams
  6941. );
  6942. }
  6943. //**************************************************************************
  6944. //**************************************************************************
  6945. //**************************************************************************
  6946. LONG
  6947. WINAPI
  6948. lineSetupConferenceW(
  6949. HCALL hCall,
  6950. HLINE hLine,
  6951. LPHCALL lphConfCall,
  6952. LPHCALL lphConsultCall,
  6953. DWORD dwNumParties,
  6954. LPLINECALLPARAMS const lpCallParams
  6955. )
  6956. {
  6957. static TAPIPROC lpfn = NULL;
  6958. LONG lResult;
  6959. if ( lpfn == NULL )
  6960. {
  6961. //
  6962. // Did we have a problem?
  6963. //
  6964. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupConferenceW", &lpfn )) )
  6965. {
  6966. lpfn = (TAPIPROC)-1;
  6967. return lResult;
  6968. }
  6969. }
  6970. //
  6971. // Have we determined that this is a lost cause?
  6972. //
  6973. if ( (TAPIPROC)-1 == lpfn )
  6974. {
  6975. return LINEERR_OPERATIONUNAVAIL;
  6976. }
  6977. return (*lpfn)(
  6978. hCall,
  6979. hLine,
  6980. lphConfCall,
  6981. lphConsultCall,
  6982. dwNumParties,
  6983. lpCallParams
  6984. );
  6985. }
  6986. //**************************************************************************
  6987. //**************************************************************************
  6988. //**************************************************************************
  6989. LONG
  6990. WINAPI
  6991. lineSetupTransfer(
  6992. HCALL hCall,
  6993. LPHCALL lphConsultCall,
  6994. LPLINECALLPARAMS const lpCallParams
  6995. )
  6996. {
  6997. static TAPIPROC lpfn = NULL;
  6998. LONG lResult;
  6999. if ( lpfn == NULL )
  7000. {
  7001. //
  7002. // Did we have a problem?
  7003. //
  7004. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupTransfer", &lpfn )) )
  7005. {
  7006. lpfn = (TAPIPROC)-1;
  7007. return lResult;
  7008. }
  7009. }
  7010. //
  7011. // Have we determined that this is a lost cause?
  7012. //
  7013. if ( (TAPIPROC)-1 == lpfn )
  7014. {
  7015. return LINEERR_OPERATIONUNAVAIL;
  7016. }
  7017. return (*lpfn)(
  7018. hCall,
  7019. lphConsultCall,
  7020. lpCallParams
  7021. );
  7022. }
  7023. //**************************************************************************
  7024. //**************************************************************************
  7025. //**************************************************************************
  7026. LONG
  7027. WINAPI
  7028. lineSetupTransferA(
  7029. HCALL hCall,
  7030. LPHCALL lphConsultCall,
  7031. LPLINECALLPARAMS const lpCallParams
  7032. )
  7033. {
  7034. static TAPIPROC lpfn = NULL;
  7035. LONG lResult;
  7036. if ( lpfn == NULL )
  7037. {
  7038. //
  7039. // Did we have a problem?
  7040. //
  7041. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupTransferA", &lpfn )) )
  7042. {
  7043. lpfn = (TAPIPROC)-1;
  7044. return lResult;
  7045. }
  7046. }
  7047. //
  7048. // Have we determined that this is a lost cause?
  7049. //
  7050. if ( (TAPIPROC)-1 == lpfn )
  7051. {
  7052. return LINEERR_OPERATIONUNAVAIL;
  7053. }
  7054. return (*lpfn)(
  7055. hCall,
  7056. lphConsultCall,
  7057. lpCallParams
  7058. );
  7059. }
  7060. //**************************************************************************
  7061. //**************************************************************************
  7062. //**************************************************************************
  7063. LONG
  7064. WINAPI
  7065. lineSetupTransferW(
  7066. HCALL hCall,
  7067. LPHCALL lphConsultCall,
  7068. LPLINECALLPARAMS const lpCallParams
  7069. )
  7070. {
  7071. static TAPIPROC lpfn = NULL;
  7072. LONG lResult;
  7073. if ( lpfn == NULL )
  7074. {
  7075. //
  7076. // Did we have a problem?
  7077. //
  7078. if ( 0 != (lResult = GetTheFunctionPtr( "lineSetupTransferW", &lpfn )) )
  7079. {
  7080. lpfn = (TAPIPROC)-1;
  7081. return lResult;
  7082. }
  7083. }
  7084. //
  7085. // Have we determined that this is a lost cause?
  7086. //
  7087. if ( (TAPIPROC)-1 == lpfn )
  7088. {
  7089. return LINEERR_OPERATIONUNAVAIL;
  7090. }
  7091. return (*lpfn)(
  7092. hCall,
  7093. lphConsultCall,
  7094. lpCallParams
  7095. );
  7096. }
  7097. //**************************************************************************
  7098. //**************************************************************************
  7099. //**************************************************************************
  7100. LONG
  7101. WINAPI
  7102. lineShutdown(
  7103. HLINEAPP hLineApp
  7104. )
  7105. {
  7106. static TAPIPROC lpfn = NULL;
  7107. LONG lResult;
  7108. if ( lpfn == NULL )
  7109. {
  7110. //
  7111. // Did we have a problem?
  7112. //
  7113. if ( 0 != (lResult = GetTheFunctionPtr( "lineShutdown", &lpfn )) )
  7114. {
  7115. lpfn = (TAPIPROC)-1;
  7116. return lResult;
  7117. }
  7118. }
  7119. //
  7120. // Have we determined that this is a lost cause?
  7121. //
  7122. if ( (TAPIPROC)-1 == lpfn )
  7123. {
  7124. return LINEERR_OPERATIONUNAVAIL;
  7125. }
  7126. return (*lpfn)(
  7127. hLineApp
  7128. );
  7129. }
  7130. //**************************************************************************
  7131. //**************************************************************************
  7132. //**************************************************************************
  7133. LONG
  7134. WINAPI
  7135. lineSwapHold(
  7136. HCALL hActiveCall,
  7137. HCALL hHeldCall
  7138. )
  7139. {
  7140. static TAPIPROC lpfn = NULL;
  7141. LONG lResult;
  7142. if ( lpfn == NULL )
  7143. {
  7144. //
  7145. // Did we have a problem?
  7146. //
  7147. if ( 0 != (lResult = GetTheFunctionPtr( "lineSwapHold", &lpfn )) )
  7148. {
  7149. lpfn = (TAPIPROC)-1;
  7150. return lResult;
  7151. }
  7152. }
  7153. //
  7154. // Have we determined that this is a lost cause?
  7155. //
  7156. if ( (TAPIPROC)-1 == lpfn )
  7157. {
  7158. return LINEERR_OPERATIONUNAVAIL;
  7159. }
  7160. return (*lpfn)(
  7161. hActiveCall,
  7162. hHeldCall
  7163. );
  7164. }
  7165. //**************************************************************************
  7166. //**************************************************************************
  7167. //**************************************************************************
  7168. LONG
  7169. WINAPI
  7170. lineTranslateAddress(
  7171. HLINEAPP hLineApp,
  7172. DWORD dwDeviceID,
  7173. DWORD dwAPIVersion,
  7174. LPCSTR lpszAddressIn,
  7175. DWORD dwCard,
  7176. DWORD dwTranslateOptions,
  7177. LPLINETRANSLATEOUTPUT lpTranslateOutput
  7178. )
  7179. {
  7180. static TAPIPROC lpfn = NULL;
  7181. LONG lResult;
  7182. if ( lpfn == NULL )
  7183. {
  7184. //
  7185. // Did we have a problem?
  7186. //
  7187. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateAddress", &lpfn )) )
  7188. {
  7189. lpfn = (TAPIPROC)-1;
  7190. return lResult;
  7191. }
  7192. }
  7193. //
  7194. // Have we determined that this is a lost cause?
  7195. //
  7196. if ( (TAPIPROC)-1 == lpfn )
  7197. {
  7198. return LINEERR_OPERATIONUNAVAIL;
  7199. }
  7200. return (*lpfn)(
  7201. hLineApp,
  7202. dwDeviceID,
  7203. dwAPIVersion,
  7204. lpszAddressIn,
  7205. dwCard,
  7206. dwTranslateOptions,
  7207. lpTranslateOutput
  7208. );
  7209. }
  7210. //**************************************************************************
  7211. //**************************************************************************
  7212. //**************************************************************************
  7213. LONG
  7214. WINAPI
  7215. lineTranslateAddressA(
  7216. HLINEAPP hLineApp,
  7217. DWORD dwDeviceID,
  7218. DWORD dwAPIVersion,
  7219. LPCSTR lpszAddressIn,
  7220. DWORD dwCard,
  7221. DWORD dwTranslateOptions,
  7222. LPLINETRANSLATEOUTPUT lpTranslateOutput
  7223. )
  7224. {
  7225. static TAPIPROC lpfn = NULL;
  7226. LONG lResult;
  7227. if ( lpfn == NULL )
  7228. {
  7229. //
  7230. // Did we have a problem?
  7231. //
  7232. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateAddressA", &lpfn )) )
  7233. {
  7234. lpfn = (TAPIPROC)-1;
  7235. return lResult;
  7236. }
  7237. }
  7238. //
  7239. // Have we determined that this is a lost cause?
  7240. //
  7241. if ( (TAPIPROC)-1 == lpfn )
  7242. {
  7243. return LINEERR_OPERATIONUNAVAIL;
  7244. }
  7245. return (*lpfn)(
  7246. hLineApp,
  7247. dwDeviceID,
  7248. dwAPIVersion,
  7249. lpszAddressIn,
  7250. dwCard,
  7251. dwTranslateOptions,
  7252. lpTranslateOutput
  7253. );
  7254. }
  7255. //**************************************************************************
  7256. //**************************************************************************
  7257. //**************************************************************************
  7258. LONG
  7259. WINAPI
  7260. lineTranslateAddressW(
  7261. HLINEAPP hLineApp,
  7262. DWORD dwDeviceID,
  7263. DWORD dwAPIVersion,
  7264. LPCWSTR lpszAddressIn,
  7265. DWORD dwCard,
  7266. DWORD dwTranslateOptions,
  7267. LPLINETRANSLATEOUTPUT lpTranslateOutput
  7268. )
  7269. {
  7270. static TAPIPROC lpfn = NULL;
  7271. LONG lResult;
  7272. if ( lpfn == NULL )
  7273. {
  7274. //
  7275. // Did we have a problem?
  7276. //
  7277. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateAddressW", &lpfn )) )
  7278. {
  7279. lpfn = (TAPIPROC)-1;
  7280. return lResult;
  7281. }
  7282. }
  7283. //
  7284. // Have we determined that this is a lost cause?
  7285. //
  7286. if ( (TAPIPROC)-1 == lpfn )
  7287. {
  7288. return LINEERR_OPERATIONUNAVAIL;
  7289. }
  7290. return (*lpfn)(
  7291. hLineApp,
  7292. dwDeviceID,
  7293. dwAPIVersion,
  7294. lpszAddressIn,
  7295. dwCard,
  7296. dwTranslateOptions,
  7297. lpTranslateOutput
  7298. );
  7299. }
  7300. //**************************************************************************
  7301. //**************************************************************************
  7302. //**************************************************************************
  7303. LONG
  7304. WINAPI
  7305. lineTranslateDialog(
  7306. HLINEAPP hLineApp,
  7307. DWORD dwDeviceID,
  7308. DWORD dwAPIVersion,
  7309. HWND hwndOwner,
  7310. LPCSTR lpszAddressIn
  7311. )
  7312. {
  7313. static TAPIPROC lpfn = NULL;
  7314. LONG lResult;
  7315. if ( lpfn == NULL )
  7316. {
  7317. //
  7318. // Did we have a problem?
  7319. //
  7320. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateDialog", &lpfn )) )
  7321. {
  7322. lpfn = (TAPIPROC)-1;
  7323. return lResult;
  7324. }
  7325. }
  7326. //
  7327. // Have we determined that this is a lost cause?
  7328. //
  7329. if ( (TAPIPROC)-1 == lpfn )
  7330. {
  7331. return LINEERR_OPERATIONUNAVAIL;
  7332. }
  7333. return (*lpfn)(
  7334. hLineApp,
  7335. dwDeviceID,
  7336. dwAPIVersion,
  7337. hwndOwner,
  7338. lpszAddressIn
  7339. );
  7340. }
  7341. //**************************************************************************
  7342. //**************************************************************************
  7343. //**************************************************************************
  7344. LONG
  7345. WINAPI
  7346. lineTranslateDialogA(
  7347. HLINEAPP hLineApp,
  7348. DWORD dwDeviceID,
  7349. DWORD dwAPIVersion,
  7350. HWND hwndOwner,
  7351. LPCSTR lpszAddressIn
  7352. )
  7353. {
  7354. static TAPIPROC lpfn = NULL;
  7355. LONG lResult;
  7356. if ( lpfn == NULL )
  7357. {
  7358. //
  7359. // Did we have a problem?
  7360. //
  7361. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateDialogA", &lpfn )) )
  7362. {
  7363. lpfn = (TAPIPROC)-1;
  7364. return lResult;
  7365. }
  7366. }
  7367. //
  7368. // Have we determined that this is a lost cause?
  7369. //
  7370. if ( (TAPIPROC)-1 == lpfn )
  7371. {
  7372. return LINEERR_OPERATIONUNAVAIL;
  7373. }
  7374. return (*lpfn)(
  7375. hLineApp,
  7376. dwDeviceID,
  7377. dwAPIVersion,
  7378. hwndOwner,
  7379. lpszAddressIn
  7380. );
  7381. }
  7382. //**************************************************************************
  7383. //**************************************************************************
  7384. //**************************************************************************
  7385. LONG
  7386. WINAPI
  7387. lineTranslateDialogW(
  7388. HLINEAPP hLineApp,
  7389. DWORD dwDeviceID,
  7390. DWORD dwAPIVersion,
  7391. HWND hwndOwner,
  7392. LPCWSTR lpszAddressIn
  7393. )
  7394. {
  7395. static TAPIPROC lpfn = NULL;
  7396. LONG lResult;
  7397. if ( lpfn == NULL )
  7398. {
  7399. //
  7400. // Did we have a problem?
  7401. //
  7402. if ( 0 != (lResult = GetTheFunctionPtr( "lineTranslateDialogW", &lpfn )) )
  7403. {
  7404. lpfn = (TAPIPROC)-1;
  7405. return lResult;
  7406. }
  7407. }
  7408. //
  7409. // Have we determined that this is a lost cause?
  7410. //
  7411. if ( (TAPIPROC)-1 == lpfn )
  7412. {
  7413. return LINEERR_OPERATIONUNAVAIL;
  7414. }
  7415. return (*lpfn)(
  7416. hLineApp,
  7417. dwDeviceID,
  7418. dwAPIVersion,
  7419. hwndOwner,
  7420. lpszAddressIn
  7421. );
  7422. }
  7423. //**************************************************************************
  7424. //**************************************************************************
  7425. //**************************************************************************
  7426. LONG
  7427. WINAPI
  7428. lineUncompleteCall(
  7429. HLINE hLine,
  7430. DWORD dwCompletionID
  7431. )
  7432. {
  7433. static TAPIPROC lpfn = NULL;
  7434. LONG lResult;
  7435. if ( lpfn == NULL )
  7436. {
  7437. //
  7438. // Did we have a problem?
  7439. //
  7440. if ( 0 != (lResult = GetTheFunctionPtr( "lineUncompleteCall", &lpfn )) )
  7441. {
  7442. lpfn = (TAPIPROC)-1;
  7443. return lResult;
  7444. }
  7445. }
  7446. //
  7447. // Have we determined that this is a lost cause?
  7448. //
  7449. if ( (TAPIPROC)-1 == lpfn )
  7450. {
  7451. return LINEERR_OPERATIONUNAVAIL;
  7452. }
  7453. return (*lpfn)(
  7454. hLine,
  7455. dwCompletionID
  7456. );
  7457. }
  7458. //**************************************************************************
  7459. //**************************************************************************
  7460. //**************************************************************************
  7461. LONG
  7462. WINAPI
  7463. lineUnhold(
  7464. HCALL hCall
  7465. )
  7466. {
  7467. static TAPIPROC lpfn = NULL;
  7468. LONG lResult;
  7469. if ( lpfn == NULL )
  7470. {
  7471. //
  7472. // Did we have a problem?
  7473. //
  7474. if ( 0 != (lResult = GetTheFunctionPtr( "lineUnhold", &lpfn )) )
  7475. {
  7476. lpfn = (TAPIPROC)-1;
  7477. return lResult;
  7478. }
  7479. }
  7480. //
  7481. // Have we determined that this is a lost cause?
  7482. //
  7483. if ( (TAPIPROC)-1 == lpfn )
  7484. {
  7485. return LINEERR_OPERATIONUNAVAIL;
  7486. }
  7487. return (*lpfn)(
  7488. hCall
  7489. );
  7490. }
  7491. //**************************************************************************
  7492. //**************************************************************************
  7493. //**************************************************************************
  7494. LONG
  7495. WINAPI
  7496. lineUnpark(
  7497. HLINE hLine,
  7498. DWORD dwAddressID,
  7499. LPHCALL lphCall,
  7500. LPCSTR lpszDestAddress
  7501. )
  7502. {
  7503. static TAPIPROC lpfn = NULL;
  7504. LONG lResult;
  7505. if ( lpfn == NULL )
  7506. {
  7507. //
  7508. // Did we have a problem?
  7509. //
  7510. if ( 0 != (lResult = GetTheFunctionPtr( "lineUnpark", &lpfn )) )
  7511. {
  7512. lpfn = (TAPIPROC)-1;
  7513. return lResult;
  7514. }
  7515. }
  7516. //
  7517. // Have we determined that this is a lost cause?
  7518. //
  7519. if ( (TAPIPROC)-1 == lpfn )
  7520. {
  7521. return LINEERR_OPERATIONUNAVAIL;
  7522. }
  7523. return (*lpfn)(
  7524. hLine,
  7525. dwAddressID,
  7526. lphCall,
  7527. lpszDestAddress
  7528. );
  7529. }
  7530. //**************************************************************************
  7531. //**************************************************************************
  7532. //**************************************************************************
  7533. LONG
  7534. WINAPI
  7535. lineUnparkA(
  7536. HLINE hLine,
  7537. DWORD dwAddressID,
  7538. LPHCALL lphCall,
  7539. LPCSTR lpszDestAddress
  7540. )
  7541. {
  7542. static TAPIPROC lpfn = NULL;
  7543. LONG lResult;
  7544. if ( lpfn == NULL )
  7545. {
  7546. //
  7547. // Did we have a problem?
  7548. //
  7549. if ( 0 != (lResult = GetTheFunctionPtr( "lineUnparkA", &lpfn )) )
  7550. {
  7551. lpfn = (TAPIPROC)-1;
  7552. return lResult;
  7553. }
  7554. }
  7555. //
  7556. // Have we determined that this is a lost cause?
  7557. //
  7558. if ( (TAPIPROC)-1 == lpfn )
  7559. {
  7560. return LINEERR_OPERATIONUNAVAIL;
  7561. }
  7562. return (*lpfn)(
  7563. hLine,
  7564. dwAddressID,
  7565. lphCall,
  7566. lpszDestAddress
  7567. );
  7568. }
  7569. //**************************************************************************
  7570. //**************************************************************************
  7571. //**************************************************************************
  7572. LONG
  7573. WINAPI
  7574. lineUnparkW(
  7575. HLINE hLine,
  7576. DWORD dwAddressID,
  7577. LPHCALL lphCall,
  7578. LPCWSTR lpszDestAddress
  7579. )
  7580. {
  7581. static TAPIPROC lpfn = NULL;
  7582. LONG lResult;
  7583. if ( lpfn == NULL )
  7584. {
  7585. //
  7586. // Did we have a problem?
  7587. //
  7588. if ( 0 != (lResult = GetTheFunctionPtr( "lineUnparkW", &lpfn )) )
  7589. {
  7590. lpfn = (TAPIPROC)-1;
  7591. return lResult;
  7592. }
  7593. }
  7594. //
  7595. // Have we determined that this is a lost cause?
  7596. //
  7597. if ( (TAPIPROC)-1 == lpfn )
  7598. {
  7599. return LINEERR_OPERATIONUNAVAIL;
  7600. }
  7601. return (*lpfn)(
  7602. hLine,
  7603. dwAddressID,
  7604. lphCall,
  7605. lpszDestAddress
  7606. );
  7607. }
  7608. //**************************************************************************
  7609. //**************************************************************************
  7610. //**************************************************************************
  7611. LONG
  7612. WINAPI
  7613. phoneClose(
  7614. HPHONE hPhone
  7615. )
  7616. {
  7617. static TAPIPROC lpfn = NULL;
  7618. LONG lResult;
  7619. if ( lpfn == NULL )
  7620. {
  7621. //
  7622. // Did we have a problem?
  7623. //
  7624. if ( 0 != (lResult = GetTheFunctionPtr( "phoneClose", &lpfn )) )
  7625. {
  7626. lpfn = (TAPIPROC)-1;
  7627. return lResult;
  7628. }
  7629. }
  7630. //
  7631. // Have we determined that this is a lost cause?
  7632. //
  7633. if ( (TAPIPROC)-1 == lpfn )
  7634. {
  7635. return PHONEERR_OPERATIONUNAVAIL;
  7636. }
  7637. return (*lpfn)(
  7638. hPhone
  7639. );
  7640. }
  7641. //**************************************************************************
  7642. //**************************************************************************
  7643. //**************************************************************************
  7644. LONG
  7645. WINAPI
  7646. phoneConfigDialog(
  7647. DWORD dwDeviceID,
  7648. HWND hwndOwner,
  7649. LPCSTR lpszDeviceClass
  7650. )
  7651. {
  7652. static TAPIPROC lpfn = NULL;
  7653. LONG lResult;
  7654. if ( lpfn == NULL )
  7655. {
  7656. //
  7657. // Did we have a problem?
  7658. //
  7659. if ( 0 != (lResult = GetTheFunctionPtr( "phoneConfigDialog", &lpfn )) )
  7660. {
  7661. lpfn = (TAPIPROC)-1;
  7662. return lResult;
  7663. }
  7664. }
  7665. //
  7666. // Have we determined that this is a lost cause?
  7667. //
  7668. if ( (TAPIPROC)-1 == lpfn )
  7669. {
  7670. return PHONEERR_OPERATIONUNAVAIL;
  7671. }
  7672. return (*lpfn)(
  7673. dwDeviceID,
  7674. hwndOwner,
  7675. lpszDeviceClass
  7676. );
  7677. }
  7678. //**************************************************************************
  7679. //**************************************************************************
  7680. //**************************************************************************
  7681. LONG
  7682. WINAPI
  7683. phoneConfigDialogA(
  7684. DWORD dwDeviceID,
  7685. HWND hwndOwner,
  7686. LPCSTR lpszDeviceClass
  7687. )
  7688. {
  7689. static TAPIPROC lpfn = NULL;
  7690. LONG lResult;
  7691. if ( lpfn == NULL )
  7692. {
  7693. //
  7694. // Did we have a problem?
  7695. //
  7696. if ( 0 != (lResult = GetTheFunctionPtr( "phoneConfigDialogA", &lpfn )) )
  7697. {
  7698. lpfn = (TAPIPROC)-1;
  7699. return lResult;
  7700. }
  7701. }
  7702. //
  7703. // Have we determined that this is a lost cause?
  7704. //
  7705. if ( (TAPIPROC)-1 == lpfn )
  7706. {
  7707. return PHONEERR_OPERATIONUNAVAIL;
  7708. }
  7709. return (*lpfn)(
  7710. dwDeviceID,
  7711. hwndOwner,
  7712. lpszDeviceClass
  7713. );
  7714. }
  7715. //**************************************************************************
  7716. //**************************************************************************
  7717. //**************************************************************************
  7718. LONG
  7719. WINAPI
  7720. phoneConfigDialogW(
  7721. DWORD dwDeviceID,
  7722. HWND hwndOwner,
  7723. LPCWSTR lpszDeviceClass
  7724. )
  7725. {
  7726. static TAPIPROC lpfn = NULL;
  7727. LONG lResult;
  7728. if ( lpfn == NULL )
  7729. {
  7730. //
  7731. // Did we have a problem?
  7732. //
  7733. if ( 0 != (lResult = GetTheFunctionPtr( "phoneConfigDialogW", &lpfn )) )
  7734. {
  7735. lpfn = (TAPIPROC)-1;
  7736. return lResult;
  7737. }
  7738. }
  7739. //
  7740. // Have we determined that this is a lost cause?
  7741. //
  7742. if ( (TAPIPROC)-1 == lpfn )
  7743. {
  7744. return PHONEERR_OPERATIONUNAVAIL;
  7745. }
  7746. return (*lpfn)(
  7747. dwDeviceID,
  7748. hwndOwner,
  7749. lpszDeviceClass
  7750. );
  7751. }
  7752. //**************************************************************************
  7753. //**************************************************************************
  7754. //**************************************************************************
  7755. LONG
  7756. WINAPI
  7757. phoneDevSpecific(
  7758. HPHONE hPhone,
  7759. LPVOID lpParams,
  7760. DWORD dwSize
  7761. )
  7762. {
  7763. static TAPIPROC lpfn = NULL;
  7764. LONG lResult;
  7765. if ( lpfn == NULL )
  7766. {
  7767. //
  7768. // Did we have a problem?
  7769. //
  7770. if ( 0 != (lResult = GetTheFunctionPtr( "phoneDevSpecific", &lpfn )) )
  7771. {
  7772. lpfn = (TAPIPROC)-1;
  7773. return lResult;
  7774. }
  7775. }
  7776. //
  7777. // Have we determined that this is a lost cause?
  7778. //
  7779. if ( (TAPIPROC)-1 == lpfn )
  7780. {
  7781. return PHONEERR_OPERATIONUNAVAIL;
  7782. }
  7783. return (*lpfn)(
  7784. hPhone,
  7785. lpParams,
  7786. dwSize
  7787. );
  7788. }
  7789. //**************************************************************************
  7790. //**************************************************************************
  7791. //**************************************************************************
  7792. LONG
  7793. WINAPI
  7794. phoneGetButtonInfo(
  7795. HPHONE hPhone,
  7796. DWORD dwButtonLampID,
  7797. LPPHONEBUTTONINFO lpButtonInfo
  7798. )
  7799. {
  7800. static TAPIPROC lpfn = NULL;
  7801. LONG lResult;
  7802. if ( lpfn == NULL )
  7803. {
  7804. //
  7805. // Did we have a problem?
  7806. //
  7807. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetButtonInfo", &lpfn )) )
  7808. {
  7809. lpfn = (TAPIPROC)-1;
  7810. return lResult;
  7811. }
  7812. }
  7813. //
  7814. // Have we determined that this is a lost cause?
  7815. //
  7816. if ( (TAPIPROC)-1 == lpfn )
  7817. {
  7818. return PHONEERR_OPERATIONUNAVAIL;
  7819. }
  7820. return (*lpfn)(
  7821. hPhone,
  7822. dwButtonLampID,
  7823. lpButtonInfo
  7824. );
  7825. }
  7826. //**************************************************************************
  7827. //**************************************************************************
  7828. //**************************************************************************
  7829. LONG
  7830. WINAPI
  7831. phoneGetButtonInfoA(
  7832. HPHONE hPhone,
  7833. DWORD dwButtonLampID,
  7834. LPPHONEBUTTONINFO lpButtonInfo
  7835. )
  7836. {
  7837. static TAPIPROC lpfn = NULL;
  7838. LONG lResult;
  7839. if ( lpfn == NULL )
  7840. {
  7841. //
  7842. // Did we have a problem?
  7843. //
  7844. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetButtonInfoA", &lpfn )) )
  7845. {
  7846. lpfn = (TAPIPROC)-1;
  7847. return lResult;
  7848. }
  7849. }
  7850. //
  7851. // Have we determined that this is a lost cause?
  7852. //
  7853. if ( (TAPIPROC)-1 == lpfn )
  7854. {
  7855. return PHONEERR_OPERATIONUNAVAIL;
  7856. }
  7857. return (*lpfn)(
  7858. hPhone,
  7859. dwButtonLampID,
  7860. lpButtonInfo
  7861. );
  7862. }
  7863. //**************************************************************************
  7864. //**************************************************************************
  7865. //**************************************************************************
  7866. LONG
  7867. WINAPI
  7868. phoneGetButtonInfoW(
  7869. HPHONE hPhone,
  7870. DWORD dwButtonLampID,
  7871. LPPHONEBUTTONINFO lpButtonInfo
  7872. )
  7873. {
  7874. static TAPIPROC lpfn = NULL;
  7875. LONG lResult;
  7876. if ( lpfn == NULL )
  7877. {
  7878. //
  7879. // Did we have a problem?
  7880. //
  7881. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetButtonInfoW", &lpfn )) )
  7882. {
  7883. lpfn = (TAPIPROC)-1;
  7884. return lResult;
  7885. }
  7886. }
  7887. //
  7888. // Have we determined that this is a lost cause?
  7889. //
  7890. if ( (TAPIPROC)-1 == lpfn )
  7891. {
  7892. return PHONEERR_OPERATIONUNAVAIL;
  7893. }
  7894. return (*lpfn)(
  7895. hPhone,
  7896. dwButtonLampID,
  7897. lpButtonInfo
  7898. );
  7899. }
  7900. //**************************************************************************
  7901. //**************************************************************************
  7902. //**************************************************************************
  7903. LONG
  7904. WINAPI
  7905. phoneGetData(
  7906. HPHONE hPhone,
  7907. DWORD dwDataID,
  7908. LPVOID lpData,
  7909. DWORD dwSize
  7910. )
  7911. {
  7912. static TAPIPROC lpfn = NULL;
  7913. LONG lResult;
  7914. if ( lpfn == NULL )
  7915. {
  7916. //
  7917. // Did we have a problem?
  7918. //
  7919. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetData", &lpfn )) )
  7920. {
  7921. lpfn = (TAPIPROC)-1;
  7922. return lResult;
  7923. }
  7924. }
  7925. //
  7926. // Have we determined that this is a lost cause?
  7927. //
  7928. if ( (TAPIPROC)-1 == lpfn )
  7929. {
  7930. return PHONEERR_OPERATIONUNAVAIL;
  7931. }
  7932. return (*lpfn)(
  7933. hPhone,
  7934. dwDataID,
  7935. lpData,
  7936. dwSize
  7937. );
  7938. }
  7939. //**************************************************************************
  7940. //**************************************************************************
  7941. //**************************************************************************
  7942. LONG
  7943. WINAPI
  7944. phoneGetDevCaps(
  7945. HPHONEAPP hPhoneApp,
  7946. DWORD dwDeviceID,
  7947. DWORD dwAPIVersion,
  7948. DWORD dwExtVersion,
  7949. LPPHONECAPS lpPhoneCaps
  7950. )
  7951. {
  7952. static TAPIPROC lpfn = NULL;
  7953. LONG lResult;
  7954. if ( lpfn == NULL )
  7955. {
  7956. //
  7957. // Did we have a problem?
  7958. //
  7959. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetDevCaps", &lpfn )) )
  7960. {
  7961. lpfn = (TAPIPROC)-1;
  7962. return lResult;
  7963. }
  7964. }
  7965. //
  7966. // Have we determined that this is a lost cause?
  7967. //
  7968. if ( (TAPIPROC)-1 == lpfn )
  7969. {
  7970. return PHONEERR_OPERATIONUNAVAIL;
  7971. }
  7972. return (*lpfn)(
  7973. hPhoneApp,
  7974. dwDeviceID,
  7975. dwAPIVersion,
  7976. dwExtVersion,
  7977. lpPhoneCaps
  7978. );
  7979. }
  7980. //**************************************************************************
  7981. //**************************************************************************
  7982. //**************************************************************************
  7983. LONG
  7984. WINAPI
  7985. phoneGetDevCapsA(
  7986. HPHONEAPP hPhoneApp,
  7987. DWORD dwDeviceID,
  7988. DWORD dwAPIVersion,
  7989. DWORD dwExtVersion,
  7990. LPPHONECAPS lpPhoneCaps
  7991. )
  7992. {
  7993. static TAPIPROC lpfn = NULL;
  7994. LONG lResult;
  7995. if ( lpfn == NULL )
  7996. {
  7997. //
  7998. // Did we have a problem?
  7999. //
  8000. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetDevCapsA", &lpfn )) )
  8001. {
  8002. lpfn = (TAPIPROC)-1;
  8003. return lResult;
  8004. }
  8005. }
  8006. //
  8007. // Have we determined that this is a lost cause?
  8008. //
  8009. if ( (TAPIPROC)-1 == lpfn )
  8010. {
  8011. return PHONEERR_OPERATIONUNAVAIL;
  8012. }
  8013. return (*lpfn)(
  8014. hPhoneApp,
  8015. dwDeviceID,
  8016. dwAPIVersion,
  8017. dwExtVersion,
  8018. lpPhoneCaps
  8019. );
  8020. }
  8021. //**************************************************************************
  8022. //**************************************************************************
  8023. //**************************************************************************
  8024. LONG
  8025. WINAPI
  8026. phoneGetDevCapsW(
  8027. HPHONEAPP hPhoneApp,
  8028. DWORD dwDeviceID,
  8029. DWORD dwAPIVersion,
  8030. DWORD dwExtVersion,
  8031. LPPHONECAPS lpPhoneCaps
  8032. )
  8033. {
  8034. static TAPIPROC lpfn = NULL;
  8035. LONG lResult;
  8036. if ( lpfn == NULL )
  8037. {
  8038. //
  8039. // Did we have a problem?
  8040. //
  8041. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetDevCapsW", &lpfn )) )
  8042. {
  8043. lpfn = (TAPIPROC)-1;
  8044. return lResult;
  8045. }
  8046. }
  8047. //
  8048. // Have we determined that this is a lost cause?
  8049. //
  8050. if ( (TAPIPROC)-1 == lpfn )
  8051. {
  8052. return PHONEERR_OPERATIONUNAVAIL;
  8053. }
  8054. return (*lpfn)(
  8055. hPhoneApp,
  8056. dwDeviceID,
  8057. dwAPIVersion,
  8058. dwExtVersion,
  8059. lpPhoneCaps
  8060. );
  8061. }
  8062. //**************************************************************************
  8063. //**************************************************************************
  8064. //**************************************************************************
  8065. LONG
  8066. WINAPI
  8067. phoneGetDisplay(
  8068. HPHONE hPhone,
  8069. LPVARSTRING lpDisplay
  8070. )
  8071. {
  8072. static TAPIPROC lpfn = NULL;
  8073. LONG lResult;
  8074. if ( lpfn == NULL )
  8075. {
  8076. //
  8077. // Did we have a problem?
  8078. //
  8079. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetDisplay", &lpfn )) )
  8080. {
  8081. lpfn = (TAPIPROC)-1;
  8082. return lResult;
  8083. }
  8084. }
  8085. //
  8086. // Have we determined that this is a lost cause?
  8087. //
  8088. if ( (TAPIPROC)-1 == lpfn )
  8089. {
  8090. return PHONEERR_OPERATIONUNAVAIL;
  8091. }
  8092. return (*lpfn)(
  8093. hPhone,
  8094. lpDisplay
  8095. );
  8096. }
  8097. //**************************************************************************
  8098. //**************************************************************************
  8099. //**************************************************************************
  8100. LONG
  8101. WINAPI
  8102. phoneGetGain(
  8103. HPHONE hPhone,
  8104. DWORD dwHookSwitchDev,
  8105. LPDWORD lpdwGain
  8106. )
  8107. {
  8108. static TAPIPROC lpfn = NULL;
  8109. LONG lResult;
  8110. if ( lpfn == NULL )
  8111. {
  8112. //
  8113. // Did we have a problem?
  8114. //
  8115. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetGain", &lpfn )) )
  8116. {
  8117. lpfn = (TAPIPROC)-1;
  8118. return lResult;
  8119. }
  8120. }
  8121. //
  8122. // Have we determined that this is a lost cause?
  8123. //
  8124. if ( (TAPIPROC)-1 == lpfn )
  8125. {
  8126. return PHONEERR_OPERATIONUNAVAIL;
  8127. }
  8128. return (*lpfn)(
  8129. hPhone,
  8130. dwHookSwitchDev,
  8131. lpdwGain
  8132. );
  8133. }
  8134. //**************************************************************************
  8135. //**************************************************************************
  8136. //**************************************************************************
  8137. LONG
  8138. WINAPI
  8139. phoneGetHookSwitch(
  8140. HPHONE hPhone,
  8141. LPDWORD lpdwHookSwitchDevs
  8142. )
  8143. {
  8144. static TAPIPROC lpfn = NULL;
  8145. LONG lResult;
  8146. if ( lpfn == NULL )
  8147. {
  8148. //
  8149. // Did we have a problem?
  8150. //
  8151. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetHookSwitch", &lpfn )) )
  8152. {
  8153. lpfn = (TAPIPROC)-1;
  8154. return lResult;
  8155. }
  8156. }
  8157. //
  8158. // Have we determined that this is a lost cause?
  8159. //
  8160. if ( (TAPIPROC)-1 == lpfn )
  8161. {
  8162. return PHONEERR_OPERATIONUNAVAIL;
  8163. }
  8164. return (*lpfn)(
  8165. hPhone,
  8166. lpdwHookSwitchDevs
  8167. );
  8168. }
  8169. //**************************************************************************
  8170. //**************************************************************************
  8171. //**************************************************************************
  8172. LONG
  8173. WINAPI
  8174. phoneGetIcon(
  8175. DWORD dwDeviceID,
  8176. LPCSTR lpszDeviceClass,
  8177. LPHICON lphIcon
  8178. )
  8179. {
  8180. static TAPIPROC lpfn = NULL;
  8181. LONG lResult;
  8182. if ( lpfn == NULL )
  8183. {
  8184. //
  8185. // Did we have a problem?
  8186. //
  8187. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetIcon", &lpfn )) )
  8188. {
  8189. lpfn = (TAPIPROC)-1;
  8190. return lResult;
  8191. }
  8192. }
  8193. //
  8194. // Have we determined that this is a lost cause?
  8195. //
  8196. if ( (TAPIPROC)-1 == lpfn )
  8197. {
  8198. return PHONEERR_OPERATIONUNAVAIL;
  8199. }
  8200. return (*lpfn)(
  8201. dwDeviceID,
  8202. lpszDeviceClass,
  8203. lphIcon
  8204. );
  8205. }
  8206. //**************************************************************************
  8207. //**************************************************************************
  8208. //**************************************************************************
  8209. LONG
  8210. WINAPI
  8211. phoneGetIconA(
  8212. DWORD dwDeviceID,
  8213. LPCSTR lpszDeviceClass,
  8214. LPHICON lphIcon
  8215. )
  8216. {
  8217. static TAPIPROC lpfn = NULL;
  8218. LONG lResult;
  8219. if ( lpfn == NULL )
  8220. {
  8221. //
  8222. // Did we have a problem?
  8223. //
  8224. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetIconA", &lpfn )) )
  8225. {
  8226. lpfn = (TAPIPROC)-1;
  8227. return lResult;
  8228. }
  8229. }
  8230. //
  8231. // Have we determined that this is a lost cause?
  8232. //
  8233. if ( (TAPIPROC)-1 == lpfn )
  8234. {
  8235. return PHONEERR_OPERATIONUNAVAIL;
  8236. }
  8237. return (*lpfn)(
  8238. dwDeviceID,
  8239. lpszDeviceClass,
  8240. lphIcon
  8241. );
  8242. }
  8243. //**************************************************************************
  8244. //**************************************************************************
  8245. //**************************************************************************
  8246. LONG
  8247. WINAPI
  8248. phoneGetIconW(
  8249. DWORD dwDeviceID,
  8250. LPCWSTR lpszDeviceClass,
  8251. LPHICON lphIcon
  8252. )
  8253. {
  8254. static TAPIPROC lpfn = NULL;
  8255. LONG lResult;
  8256. if ( lpfn == NULL )
  8257. {
  8258. //
  8259. // Did we have a problem?
  8260. //
  8261. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetIconW", &lpfn )) )
  8262. {
  8263. lpfn = (TAPIPROC)-1;
  8264. return lResult;
  8265. }
  8266. }
  8267. //
  8268. // Have we determined that this is a lost cause?
  8269. //
  8270. if ( (TAPIPROC)-1 == lpfn )
  8271. {
  8272. return PHONEERR_OPERATIONUNAVAIL;
  8273. }
  8274. return (*lpfn)(
  8275. dwDeviceID,
  8276. lpszDeviceClass,
  8277. lphIcon
  8278. );
  8279. }
  8280. //**************************************************************************
  8281. //**************************************************************************
  8282. //**************************************************************************
  8283. LONG
  8284. WINAPI
  8285. phoneGetID(
  8286. HPHONE hPhone,
  8287. LPVARSTRING lpDeviceID,
  8288. LPCSTR lpszDeviceClass
  8289. )
  8290. {
  8291. static TAPIPROC lpfn = NULL;
  8292. LONG lResult;
  8293. if ( lpfn == NULL )
  8294. {
  8295. //
  8296. // Did we have a problem?
  8297. //
  8298. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetID", &lpfn )) )
  8299. {
  8300. lpfn = (TAPIPROC)-1;
  8301. return lResult;
  8302. }
  8303. }
  8304. //
  8305. // Have we determined that this is a lost cause?
  8306. //
  8307. if ( (TAPIPROC)-1 == lpfn )
  8308. {
  8309. return PHONEERR_OPERATIONUNAVAIL;
  8310. }
  8311. return (*lpfn)(
  8312. hPhone,
  8313. lpDeviceID,
  8314. lpszDeviceClass
  8315. );
  8316. }
  8317. //**************************************************************************
  8318. //**************************************************************************
  8319. //**************************************************************************
  8320. LONG
  8321. WINAPI
  8322. phoneGetIDA(
  8323. HPHONE hPhone,
  8324. LPVARSTRING lpDeviceID,
  8325. LPCSTR lpszDeviceClass
  8326. )
  8327. {
  8328. static TAPIPROC lpfn = NULL;
  8329. LONG lResult;
  8330. if ( lpfn == NULL )
  8331. {
  8332. //
  8333. // Did we have a problem?
  8334. //
  8335. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetIDA", &lpfn )) )
  8336. {
  8337. lpfn = (TAPIPROC)-1;
  8338. return lResult;
  8339. }
  8340. }
  8341. //
  8342. // Have we determined that this is a lost cause?
  8343. //
  8344. if ( (TAPIPROC)-1 == lpfn )
  8345. {
  8346. return PHONEERR_OPERATIONUNAVAIL;
  8347. }
  8348. return (*lpfn)(
  8349. hPhone,
  8350. lpDeviceID,
  8351. lpszDeviceClass
  8352. );
  8353. }
  8354. //**************************************************************************
  8355. //**************************************************************************
  8356. //**************************************************************************
  8357. LONG
  8358. WINAPI
  8359. phoneGetIDW(
  8360. HPHONE hPhone,
  8361. LPVARSTRING lpDeviceID,
  8362. LPCWSTR lpszDeviceClass
  8363. )
  8364. {
  8365. static TAPIPROC lpfn = NULL;
  8366. LONG lResult;
  8367. if ( lpfn == NULL )
  8368. {
  8369. //
  8370. // Did we have a problem?
  8371. //
  8372. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetIDW", &lpfn )) )
  8373. {
  8374. lpfn = (TAPIPROC)-1;
  8375. return lResult;
  8376. }
  8377. }
  8378. //
  8379. // Have we determined that this is a lost cause?
  8380. //
  8381. if ( (TAPIPROC)-1 == lpfn )
  8382. {
  8383. return PHONEERR_OPERATIONUNAVAIL;
  8384. }
  8385. return (*lpfn)(
  8386. hPhone,
  8387. lpDeviceID,
  8388. lpszDeviceClass
  8389. );
  8390. }
  8391. //**************************************************************************
  8392. //**************************************************************************
  8393. //**************************************************************************
  8394. LONG
  8395. WINAPI
  8396. phoneGetLamp(
  8397. HPHONE hPhone,
  8398. DWORD dwButtonLampID,
  8399. LPDWORD lpdwLampMode
  8400. )
  8401. {
  8402. static TAPIPROC lpfn = NULL;
  8403. LONG lResult;
  8404. if ( lpfn == NULL )
  8405. {
  8406. //
  8407. // Did we have a problem?
  8408. //
  8409. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetLamp", &lpfn )) )
  8410. {
  8411. lpfn = (TAPIPROC)-1;
  8412. return lResult;
  8413. }
  8414. }
  8415. //
  8416. // Have we determined that this is a lost cause?
  8417. //
  8418. if ( (TAPIPROC)-1 == lpfn )
  8419. {
  8420. return PHONEERR_OPERATIONUNAVAIL;
  8421. }
  8422. return (*lpfn)(
  8423. hPhone,
  8424. dwButtonLampID,
  8425. lpdwLampMode
  8426. );
  8427. }
  8428. //**************************************************************************
  8429. //**************************************************************************
  8430. //**************************************************************************
  8431. LONG
  8432. WINAPI
  8433. phoneGetMessage(
  8434. HPHONEAPP hPhoneApp,
  8435. LPPHONEMESSAGE lpMessage,
  8436. DWORD dwTimeout
  8437. )
  8438. {
  8439. static TAPIPROC lpfn = NULL;
  8440. LONG lResult;
  8441. if ( lpfn == NULL )
  8442. {
  8443. //
  8444. // Did we have a problem?
  8445. //
  8446. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetMessage", &lpfn )) )
  8447. {
  8448. lpfn = (TAPIPROC)-1;
  8449. return lResult;
  8450. }
  8451. }
  8452. //
  8453. // Have we determined that this is a lost cause?
  8454. //
  8455. if ( (TAPIPROC)-1 == lpfn )
  8456. {
  8457. return PHONEERR_OPERATIONUNAVAIL;
  8458. }
  8459. return (*lpfn)(
  8460. hPhoneApp,
  8461. lpMessage,
  8462. dwTimeout
  8463. );
  8464. }
  8465. //**************************************************************************
  8466. //**************************************************************************
  8467. //**************************************************************************
  8468. LONG
  8469. WINAPI
  8470. phoneGetRing(
  8471. HPHONE hPhone,
  8472. LPDWORD lpdwRingMode,
  8473. LPDWORD lpdwVolume
  8474. )
  8475. {
  8476. static TAPIPROC lpfn = NULL;
  8477. LONG lResult;
  8478. if ( lpfn == NULL )
  8479. {
  8480. //
  8481. // Did we have a problem?
  8482. //
  8483. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetRing", &lpfn )) )
  8484. {
  8485. lpfn = (TAPIPROC)-1;
  8486. return lResult;
  8487. }
  8488. }
  8489. //
  8490. // Have we determined that this is a lost cause?
  8491. //
  8492. if ( (TAPIPROC)-1 == lpfn )
  8493. {
  8494. return PHONEERR_OPERATIONUNAVAIL;
  8495. }
  8496. return (*lpfn)(
  8497. hPhone,
  8498. lpdwRingMode,
  8499. lpdwVolume
  8500. );
  8501. }
  8502. //**************************************************************************
  8503. //**************************************************************************
  8504. //**************************************************************************
  8505. LONG
  8506. WINAPI
  8507. phoneGetStatus(
  8508. HPHONE hPhone,
  8509. LPPHONESTATUS lpPhoneStatus
  8510. )
  8511. {
  8512. static TAPIPROC lpfn = NULL;
  8513. LONG lResult;
  8514. if ( lpfn == NULL )
  8515. {
  8516. //
  8517. // Did we have a problem?
  8518. //
  8519. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetStatus", &lpfn )) )
  8520. {
  8521. lpfn = (TAPIPROC)-1;
  8522. return lResult;
  8523. }
  8524. }
  8525. //
  8526. // Have we determined that this is a lost cause?
  8527. //
  8528. if ( (TAPIPROC)-1 == lpfn )
  8529. {
  8530. return PHONEERR_OPERATIONUNAVAIL;
  8531. }
  8532. return (*lpfn)(
  8533. hPhone,
  8534. lpPhoneStatus
  8535. );
  8536. }
  8537. //**************************************************************************
  8538. //**************************************************************************
  8539. //**************************************************************************
  8540. LONG
  8541. WINAPI
  8542. phoneGetStatusA(
  8543. HPHONE hPhone,
  8544. LPPHONESTATUS lpPhoneStatus
  8545. )
  8546. {
  8547. static TAPIPROC lpfn = NULL;
  8548. LONG lResult;
  8549. if ( lpfn == NULL )
  8550. {
  8551. //
  8552. // Did we have a problem?
  8553. //
  8554. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetStatusA", &lpfn )) )
  8555. {
  8556. lpfn = (TAPIPROC)-1;
  8557. return lResult;
  8558. }
  8559. }
  8560. //
  8561. // Have we determined that this is a lost cause?
  8562. //
  8563. if ( (TAPIPROC)-1 == lpfn )
  8564. {
  8565. return PHONEERR_OPERATIONUNAVAIL;
  8566. }
  8567. return (*lpfn)(
  8568. hPhone,
  8569. lpPhoneStatus
  8570. );
  8571. }
  8572. //**************************************************************************
  8573. //**************************************************************************
  8574. //**************************************************************************
  8575. LONG
  8576. WINAPI
  8577. phoneGetStatusW(
  8578. HPHONE hPhone,
  8579. LPPHONESTATUS lpPhoneStatus
  8580. )
  8581. {
  8582. static TAPIPROC lpfn = NULL;
  8583. LONG lResult;
  8584. if ( lpfn == NULL )
  8585. {
  8586. //
  8587. // Did we have a problem?
  8588. //
  8589. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetStatusW", &lpfn )) )
  8590. {
  8591. lpfn = (TAPIPROC)-1;
  8592. return lResult;
  8593. }
  8594. }
  8595. //
  8596. // Have we determined that this is a lost cause?
  8597. //
  8598. if ( (TAPIPROC)-1 == lpfn )
  8599. {
  8600. return PHONEERR_OPERATIONUNAVAIL;
  8601. }
  8602. return (*lpfn)(
  8603. hPhone,
  8604. lpPhoneStatus
  8605. );
  8606. }
  8607. //**************************************************************************
  8608. //**************************************************************************
  8609. //**************************************************************************
  8610. LONG
  8611. WINAPI
  8612. phoneGetStatusMessages(
  8613. HPHONE hPhone,
  8614. LPDWORD lpdwPhoneStates,
  8615. LPDWORD lpdwButtonModes,
  8616. LPDWORD lpdwButtonStates
  8617. )
  8618. {
  8619. static TAPIPROC lpfn = NULL;
  8620. LONG lResult;
  8621. if ( lpfn == NULL )
  8622. {
  8623. //
  8624. // Did we have a problem?
  8625. //
  8626. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetStatusMessages", &lpfn )) )
  8627. {
  8628. lpfn = (TAPIPROC)-1;
  8629. return lResult;
  8630. }
  8631. }
  8632. //
  8633. // Have we determined that this is a lost cause?
  8634. //
  8635. if ( (TAPIPROC)-1 == lpfn )
  8636. {
  8637. return PHONEERR_OPERATIONUNAVAIL;
  8638. }
  8639. return (*lpfn)(
  8640. hPhone,
  8641. lpdwPhoneStates,
  8642. lpdwButtonModes,
  8643. lpdwButtonStates
  8644. );
  8645. }
  8646. //**************************************************************************
  8647. //**************************************************************************
  8648. //**************************************************************************
  8649. LONG
  8650. WINAPI
  8651. phoneGetVolume(
  8652. HPHONE hPhone,
  8653. DWORD dwHookSwitchDev,
  8654. LPDWORD lpdwVolume
  8655. )
  8656. {
  8657. static TAPIPROC lpfn = NULL;
  8658. LONG lResult;
  8659. if ( lpfn == NULL )
  8660. {
  8661. //
  8662. // Did we have a problem?
  8663. //
  8664. if ( 0 != (lResult = GetTheFunctionPtr( "phoneGetVolume", &lpfn )) )
  8665. {
  8666. lpfn = (TAPIPROC)-1;
  8667. return lResult;
  8668. }
  8669. }
  8670. //
  8671. // Have we determined that this is a lost cause?
  8672. //
  8673. if ( (TAPIPROC)-1 == lpfn )
  8674. {
  8675. return PHONEERR_OPERATIONUNAVAIL;
  8676. }
  8677. return (*lpfn)(
  8678. hPhone,
  8679. dwHookSwitchDev,
  8680. lpdwVolume
  8681. );
  8682. }
  8683. //**************************************************************************
  8684. //**************************************************************************
  8685. //**************************************************************************
  8686. LONG
  8687. WINAPI
  8688. phoneInitialize(
  8689. LPHPHONEAPP lphPhoneApp,
  8690. HINSTANCE hInstance,
  8691. PHONECALLBACK lpfnCallback,
  8692. LPCSTR lpszAppName,
  8693. LPDWORD lpdwNumDevs
  8694. )
  8695. {
  8696. static TAPIPROC lpfn = NULL;
  8697. LONG lResult;
  8698. if ( lpfn == NULL )
  8699. {
  8700. //
  8701. // Did we have a problem?
  8702. //
  8703. if ( 0 != (lResult = GetTheFunctionPtr( "phoneInitialize", &lpfn )) )
  8704. {
  8705. lpfn = (TAPIPROC)-1;
  8706. return lResult;
  8707. }
  8708. }
  8709. //
  8710. // Have we determined that this is a lost cause?
  8711. //
  8712. if ( (TAPIPROC)-1 == lpfn )
  8713. {
  8714. return PHONEERR_OPERATIONUNAVAIL;
  8715. }
  8716. return (*lpfn)(
  8717. lphPhoneApp,
  8718. hInstance,
  8719. lpfnCallback,
  8720. lpszAppName,
  8721. lpdwNumDevs
  8722. );
  8723. }
  8724. //**************************************************************************
  8725. //**************************************************************************
  8726. //**************************************************************************
  8727. LONG
  8728. WINAPI
  8729. phoneInitializeExA(
  8730. LPHPHONEAPP lphPhoneApp,
  8731. HINSTANCE hInstance,
  8732. PHONECALLBACK lpfnCallback,
  8733. LPCSTR lpszFriendlyAppName,
  8734. LPDWORD lpdwNumDevs,
  8735. LPDWORD lpdwAPIVersion,
  8736. LPPHONEINITIALIZEEXPARAMS lpPhoneInitializeExParams
  8737. )
  8738. {
  8739. static TAPIPROC lpfn = NULL;
  8740. LONG lResult;
  8741. if ( lpfn == NULL )
  8742. {
  8743. //
  8744. // Did we have a problem?
  8745. //
  8746. if ( 0 != (lResult = GetTheFunctionPtr( "phoneInitializeExA", &lpfn )) )
  8747. {
  8748. lpfn = (TAPIPROC)-1;
  8749. return lResult;
  8750. }
  8751. }
  8752. //
  8753. // Have we determined that this is a lost cause?
  8754. //
  8755. if ( (TAPIPROC)-1 == lpfn )
  8756. {
  8757. return PHONEERR_OPERATIONUNAVAIL;
  8758. }
  8759. return (*lpfn)(
  8760. lphPhoneApp,
  8761. hInstance,
  8762. lpfnCallback,
  8763. lpszFriendlyAppName,
  8764. lpdwNumDevs,
  8765. lpdwAPIVersion,
  8766. lpPhoneInitializeExParams
  8767. );
  8768. }
  8769. //**************************************************************************
  8770. //**************************************************************************
  8771. //**************************************************************************
  8772. LONG
  8773. WINAPI
  8774. phoneInitializeExW(
  8775. LPHPHONEAPP lphPhoneApp,
  8776. HINSTANCE hInstance,
  8777. PHONECALLBACK lpfnCallback,
  8778. LPCWSTR lpszFriendlyAppName,
  8779. LPDWORD lpdwNumDevs,
  8780. LPDWORD lpdwAPIVersion,
  8781. LPPHONEINITIALIZEEXPARAMS lpPhoneInitializeExParams
  8782. )
  8783. {
  8784. static TAPIPROC lpfn = NULL;
  8785. LONG lResult;
  8786. if ( lpfn == NULL )
  8787. {
  8788. //
  8789. // Did we have a problem?
  8790. //
  8791. if ( 0 != (lResult = GetTheFunctionPtr( "phoneInitializeExW", &lpfn )) )
  8792. {
  8793. lpfn = (TAPIPROC)-1;
  8794. return lResult;
  8795. }
  8796. }
  8797. //
  8798. // Have we determined that this is a lost cause?
  8799. //
  8800. if ( (TAPIPROC)-1 == lpfn )
  8801. {
  8802. return PHONEERR_OPERATIONUNAVAIL;
  8803. }
  8804. return (*lpfn)(
  8805. lphPhoneApp,
  8806. hInstance,
  8807. lpfnCallback,
  8808. lpszFriendlyAppName,
  8809. lpdwNumDevs,
  8810. lpdwAPIVersion,
  8811. lpPhoneInitializeExParams
  8812. );
  8813. }
  8814. //**************************************************************************
  8815. //**************************************************************************
  8816. //**************************************************************************
  8817. LONG
  8818. WINAPI
  8819. phoneNegotiateAPIVersion(
  8820. HPHONEAPP hPhoneApp,
  8821. DWORD dwDeviceID,
  8822. DWORD dwAPILowVersion,
  8823. DWORD dwAPIHighVersion,
  8824. LPDWORD lpdwAPIVersion,
  8825. LPPHONEEXTENSIONID lpExtensionID
  8826. )
  8827. {
  8828. static TAPIPROC lpfn = NULL;
  8829. LONG lResult;
  8830. if ( lpfn == NULL )
  8831. {
  8832. //
  8833. // Did we have a problem?
  8834. //
  8835. if ( 0 != (lResult = GetTheFunctionPtr( "phoneNegotiateAPIVersion", &lpfn )) )
  8836. {
  8837. lpfn = (TAPIPROC)-1;
  8838. return lResult;
  8839. }
  8840. }
  8841. //
  8842. // Have we determined that this is a lost cause?
  8843. //
  8844. if ( (TAPIPROC)-1 == lpfn )
  8845. {
  8846. return PHONEERR_OPERATIONUNAVAIL;
  8847. }
  8848. return (*lpfn)(
  8849. hPhoneApp,
  8850. dwDeviceID,
  8851. dwAPILowVersion,
  8852. dwAPIHighVersion,
  8853. lpdwAPIVersion,
  8854. lpExtensionID
  8855. );
  8856. }
  8857. //**************************************************************************
  8858. //**************************************************************************
  8859. //**************************************************************************
  8860. LONG
  8861. WINAPI
  8862. phoneNegotiateExtVersion(
  8863. HPHONEAPP hPhoneApp,
  8864. DWORD dwDeviceID,
  8865. DWORD dwAPIVersion,
  8866. DWORD dwExtLowVersion,
  8867. DWORD dwExtHighVersion,
  8868. LPDWORD lpdwExtVersion
  8869. )
  8870. {
  8871. static TAPIPROC lpfn = NULL;
  8872. LONG lResult;
  8873. if ( lpfn == NULL )
  8874. {
  8875. //
  8876. // Did we have a problem?
  8877. //
  8878. if ( 0 != (lResult = GetTheFunctionPtr( "phoneNegotiateExtVersion", &lpfn )) )
  8879. {
  8880. lpfn = (TAPIPROC)-1;
  8881. return lResult;
  8882. }
  8883. }
  8884. //
  8885. // Have we determined that this is a lost cause?
  8886. //
  8887. if ( (TAPIPROC)-1 == lpfn )
  8888. {
  8889. return PHONEERR_OPERATIONUNAVAIL;
  8890. }
  8891. return (*lpfn)(
  8892. hPhoneApp,
  8893. dwDeviceID,
  8894. dwAPIVersion,
  8895. dwExtLowVersion,
  8896. dwExtHighVersion,
  8897. lpdwExtVersion
  8898. );
  8899. }
  8900. //**************************************************************************
  8901. //**************************************************************************
  8902. //**************************************************************************
  8903. LONG
  8904. WINAPI
  8905. phoneOpen(
  8906. HPHONEAPP hPhoneApp,
  8907. DWORD dwDeviceID,
  8908. LPHPHONE lphPhone,
  8909. DWORD dwAPIVersion,
  8910. DWORD dwExtVersion,
  8911. DWORD_PTR dwCallbackInstance,
  8912. DWORD dwPrivilege
  8913. )
  8914. {
  8915. static TAPIPROC lpfn = NULL;
  8916. LONG lResult;
  8917. if ( lpfn == NULL )
  8918. {
  8919. //
  8920. // Did we have a problem?
  8921. //
  8922. if ( 0 != (lResult = GetTheFunctionPtr( "phoneOpen", &lpfn )) )
  8923. {
  8924. lpfn = (TAPIPROC)-1;
  8925. return lResult;
  8926. }
  8927. }
  8928. //
  8929. // Have we determined that this is a lost cause?
  8930. //
  8931. if ( (TAPIPROC)-1 == lpfn )
  8932. {
  8933. return PHONEERR_OPERATIONUNAVAIL;
  8934. }
  8935. return (*lpfn)(
  8936. hPhoneApp,
  8937. dwDeviceID,
  8938. lphPhone,
  8939. dwAPIVersion,
  8940. dwExtVersion,
  8941. dwCallbackInstance,
  8942. dwPrivilege
  8943. );
  8944. }
  8945. //**************************************************************************
  8946. //**************************************************************************
  8947. //**************************************************************************
  8948. LONG
  8949. WINAPI
  8950. phoneSetButtonInfo(
  8951. HPHONE hPhone,
  8952. DWORD dwButtonLampID,
  8953. LPPHONEBUTTONINFO const lpButtonInfo
  8954. )
  8955. {
  8956. static TAPIPROC lpfn = NULL;
  8957. LONG lResult;
  8958. if ( lpfn == NULL )
  8959. {
  8960. //
  8961. // Did we have a problem?
  8962. //
  8963. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetButtonInfo", &lpfn )) )
  8964. {
  8965. lpfn = (TAPIPROC)-1;
  8966. return lResult;
  8967. }
  8968. }
  8969. //
  8970. // Have we determined that this is a lost cause?
  8971. //
  8972. if ( (TAPIPROC)-1 == lpfn )
  8973. {
  8974. return PHONEERR_OPERATIONUNAVAIL;
  8975. }
  8976. return (*lpfn)(
  8977. hPhone,
  8978. dwButtonLampID,
  8979. lpButtonInfo
  8980. );
  8981. }
  8982. //**************************************************************************
  8983. //**************************************************************************
  8984. //**************************************************************************
  8985. LONG
  8986. WINAPI
  8987. phoneSetButtonInfoA(
  8988. HPHONE hPhone,
  8989. DWORD dwButtonLampID,
  8990. LPPHONEBUTTONINFO const lpButtonInfo
  8991. )
  8992. {
  8993. static TAPIPROC lpfn = NULL;
  8994. LONG lResult;
  8995. if ( lpfn == NULL )
  8996. {
  8997. //
  8998. // Did we have a problem?
  8999. //
  9000. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetButtonInfoA", &lpfn )) )
  9001. {
  9002. lpfn = (TAPIPROC)-1;
  9003. return lResult;
  9004. }
  9005. }
  9006. //
  9007. // Have we determined that this is a lost cause?
  9008. //
  9009. if ( (TAPIPROC)-1 == lpfn )
  9010. {
  9011. return PHONEERR_OPERATIONUNAVAIL;
  9012. }
  9013. return (*lpfn)(
  9014. hPhone,
  9015. dwButtonLampID,
  9016. lpButtonInfo
  9017. );
  9018. }
  9019. //**************************************************************************
  9020. //**************************************************************************
  9021. //**************************************************************************
  9022. LONG
  9023. WINAPI
  9024. phoneSetButtonInfoW(
  9025. HPHONE hPhone,
  9026. DWORD dwButtonLampID,
  9027. LPPHONEBUTTONINFO const lpButtonInfo
  9028. )
  9029. {
  9030. static TAPIPROC lpfn = NULL;
  9031. LONG lResult;
  9032. if ( lpfn == NULL )
  9033. {
  9034. //
  9035. // Did we have a problem?
  9036. //
  9037. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetButtonInfoW", &lpfn )) )
  9038. {
  9039. lpfn = (TAPIPROC)-1;
  9040. return lResult;
  9041. }
  9042. }
  9043. //
  9044. // Have we determined that this is a lost cause?
  9045. //
  9046. if ( (TAPIPROC)-1 == lpfn )
  9047. {
  9048. return PHONEERR_OPERATIONUNAVAIL;
  9049. }
  9050. return (*lpfn)(
  9051. hPhone,
  9052. dwButtonLampID,
  9053. lpButtonInfo
  9054. );
  9055. }
  9056. //**************************************************************************
  9057. //**************************************************************************
  9058. //**************************************************************************
  9059. LONG
  9060. WINAPI
  9061. phoneSetData(
  9062. HPHONE hPhone,
  9063. DWORD dwDataID,
  9064. LPVOID const lpData,
  9065. DWORD dwSize
  9066. )
  9067. {
  9068. static TAPIPROC lpfn = NULL;
  9069. LONG lResult;
  9070. if ( lpfn == NULL )
  9071. {
  9072. //
  9073. // Did we have a problem?
  9074. //
  9075. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetData", &lpfn )) )
  9076. {
  9077. lpfn = (TAPIPROC)-1;
  9078. return lResult;
  9079. }
  9080. }
  9081. //
  9082. // Have we determined that this is a lost cause?
  9083. //
  9084. if ( (TAPIPROC)-1 == lpfn )
  9085. {
  9086. return PHONEERR_OPERATIONUNAVAIL;
  9087. }
  9088. return (*lpfn)(
  9089. hPhone,
  9090. dwDataID,
  9091. lpData,
  9092. dwSize
  9093. );
  9094. }
  9095. //**************************************************************************
  9096. //**************************************************************************
  9097. //**************************************************************************
  9098. LONG
  9099. WINAPI
  9100. phoneSetDisplay(
  9101. HPHONE hPhone,
  9102. DWORD dwRow,
  9103. DWORD dwColumn,
  9104. LPCSTR lpsDisplay,
  9105. DWORD dwSize
  9106. )
  9107. {
  9108. static TAPIPROC lpfn = NULL;
  9109. LONG lResult;
  9110. if ( lpfn == NULL )
  9111. {
  9112. //
  9113. // Did we have a problem?
  9114. //
  9115. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetDisplay", &lpfn )) )
  9116. {
  9117. lpfn = (TAPIPROC)-1;
  9118. return lResult;
  9119. }
  9120. }
  9121. //
  9122. // Have we determined that this is a lost cause?
  9123. //
  9124. if ( (TAPIPROC)-1 == lpfn )
  9125. {
  9126. return PHONEERR_OPERATIONUNAVAIL;
  9127. }
  9128. return (*lpfn)(
  9129. hPhone,
  9130. dwRow,
  9131. dwColumn,
  9132. lpsDisplay,
  9133. dwSize
  9134. );
  9135. }
  9136. //**************************************************************************
  9137. //**************************************************************************
  9138. //**************************************************************************
  9139. LONG
  9140. WINAPI
  9141. phoneSetGain(
  9142. HPHONE hPhone,
  9143. DWORD dwHookSwitchDev,
  9144. DWORD dwGain
  9145. )
  9146. {
  9147. static TAPIPROC lpfn = NULL;
  9148. LONG lResult;
  9149. if ( lpfn == NULL )
  9150. {
  9151. //
  9152. // Did we have a problem?
  9153. //
  9154. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetGain", &lpfn )) )
  9155. {
  9156. lpfn = (TAPIPROC)-1;
  9157. return lResult;
  9158. }
  9159. }
  9160. //
  9161. // Have we determined that this is a lost cause?
  9162. //
  9163. if ( (TAPIPROC)-1 == lpfn )
  9164. {
  9165. return PHONEERR_OPERATIONUNAVAIL;
  9166. }
  9167. return (*lpfn)(
  9168. hPhone,
  9169. dwHookSwitchDev,
  9170. dwGain
  9171. );
  9172. }
  9173. //**************************************************************************
  9174. //**************************************************************************
  9175. //**************************************************************************
  9176. LONG
  9177. WINAPI
  9178. phoneSetHookSwitch(
  9179. HPHONE hPhone,
  9180. DWORD dwHookSwitchDevs,
  9181. DWORD dwHookSwitchMode
  9182. )
  9183. {
  9184. static TAPIPROC lpfn = NULL;
  9185. LONG lResult;
  9186. if ( lpfn == NULL )
  9187. {
  9188. //
  9189. // Did we have a problem?
  9190. //
  9191. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetHookSwitch", &lpfn )) )
  9192. {
  9193. lpfn = (TAPIPROC)-1;
  9194. return lResult;
  9195. }
  9196. }
  9197. //
  9198. // Have we determined that this is a lost cause?
  9199. //
  9200. if ( (TAPIPROC)-1 == lpfn )
  9201. {
  9202. return PHONEERR_OPERATIONUNAVAIL;
  9203. }
  9204. return (*lpfn)(
  9205. hPhone,
  9206. dwHookSwitchDevs,
  9207. dwHookSwitchMode
  9208. );
  9209. }
  9210. //**************************************************************************
  9211. //**************************************************************************
  9212. //**************************************************************************
  9213. LONG
  9214. WINAPI
  9215. phoneSetLamp(
  9216. HPHONE hPhone,
  9217. DWORD dwButtonLampID,
  9218. DWORD dwLampMode
  9219. )
  9220. {
  9221. static TAPIPROC lpfn = NULL;
  9222. LONG lResult;
  9223. if ( lpfn == NULL )
  9224. {
  9225. //
  9226. // Did we have a problem?
  9227. //
  9228. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetLamp", &lpfn )) )
  9229. {
  9230. lpfn = (TAPIPROC)-1;
  9231. return lResult;
  9232. }
  9233. }
  9234. //
  9235. // Have we determined that this is a lost cause?
  9236. //
  9237. if ( (TAPIPROC)-1 == lpfn )
  9238. {
  9239. return PHONEERR_OPERATIONUNAVAIL;
  9240. }
  9241. return (*lpfn)(
  9242. hPhone,
  9243. dwButtonLampID,
  9244. dwLampMode
  9245. );
  9246. }
  9247. //**************************************************************************
  9248. //**************************************************************************
  9249. //**************************************************************************
  9250. LONG
  9251. WINAPI
  9252. phoneSetRing(
  9253. HPHONE hPhone,
  9254. DWORD dwRingMode,
  9255. DWORD dwVolume
  9256. )
  9257. {
  9258. static TAPIPROC lpfn = NULL;
  9259. LONG lResult;
  9260. if ( lpfn == NULL )
  9261. {
  9262. //
  9263. // Did we have a problem?
  9264. //
  9265. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetRing", &lpfn )) )
  9266. {
  9267. lpfn = (TAPIPROC)-1;
  9268. return lResult;
  9269. }
  9270. }
  9271. //
  9272. // Have we determined that this is a lost cause?
  9273. //
  9274. if ( (TAPIPROC)-1 == lpfn )
  9275. {
  9276. return PHONEERR_OPERATIONUNAVAIL;
  9277. }
  9278. return (*lpfn)(
  9279. hPhone,
  9280. dwRingMode,
  9281. dwVolume
  9282. );
  9283. }
  9284. //**************************************************************************
  9285. //**************************************************************************
  9286. //**************************************************************************
  9287. LONG
  9288. WINAPI
  9289. phoneSetStatusMessages(
  9290. HPHONE hPhone,
  9291. DWORD dwPhoneStates,
  9292. DWORD dwButtonModes,
  9293. DWORD dwButtonStates
  9294. )
  9295. {
  9296. static TAPIPROC lpfn = NULL;
  9297. LONG lResult;
  9298. if ( lpfn == NULL )
  9299. {
  9300. //
  9301. // Did we have a problem?
  9302. //
  9303. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetStatusMessages", &lpfn )) )
  9304. {
  9305. lpfn = (TAPIPROC)-1;
  9306. return lResult;
  9307. }
  9308. }
  9309. //
  9310. // Have we determined that this is a lost cause?
  9311. //
  9312. if ( (TAPIPROC)-1 == lpfn )
  9313. {
  9314. return PHONEERR_OPERATIONUNAVAIL;
  9315. }
  9316. return (*lpfn)(
  9317. hPhone,
  9318. dwPhoneStates,
  9319. dwButtonModes,
  9320. dwButtonStates
  9321. );
  9322. }
  9323. //**************************************************************************
  9324. //**************************************************************************
  9325. //**************************************************************************
  9326. LONG
  9327. WINAPI
  9328. phoneSetVolume(
  9329. HPHONE hPhone,
  9330. DWORD dwHookSwitchDev,
  9331. DWORD dwVolume
  9332. )
  9333. {
  9334. static TAPIPROC lpfn = NULL;
  9335. LONG lResult;
  9336. if ( lpfn == NULL )
  9337. {
  9338. //
  9339. // Did we have a problem?
  9340. //
  9341. if ( 0 != (lResult = GetTheFunctionPtr( "phoneSetVolume", &lpfn )) )
  9342. {
  9343. lpfn = (TAPIPROC)-1;
  9344. return lResult;
  9345. }
  9346. }
  9347. //
  9348. // Have we determined that this is a lost cause?
  9349. //
  9350. if ( (TAPIPROC)-1 == lpfn )
  9351. {
  9352. return PHONEERR_OPERATIONUNAVAIL;
  9353. }
  9354. return (*lpfn)(
  9355. hPhone,
  9356. dwHookSwitchDev,
  9357. dwVolume
  9358. );
  9359. }
  9360. //**************************************************************************
  9361. //**************************************************************************
  9362. //**************************************************************************
  9363. LONG
  9364. WINAPI
  9365. phoneShutdown(
  9366. HPHONEAPP hPhoneApp
  9367. )
  9368. {
  9369. static TAPIPROC lpfn = NULL;
  9370. LONG lResult;
  9371. if ( lpfn == NULL )
  9372. {
  9373. //
  9374. // Did we have a problem?
  9375. //
  9376. if ( 0 != (lResult = GetTheFunctionPtr( "phoneShutdown", &lpfn )) )
  9377. {
  9378. lpfn = (TAPIPROC)-1;
  9379. return lResult;
  9380. }
  9381. }
  9382. //
  9383. // Have we determined that this is a lost cause?
  9384. //
  9385. if ( (TAPIPROC)-1 == lpfn )
  9386. {
  9387. return PHONEERR_OPERATIONUNAVAIL;
  9388. }
  9389. return (*lpfn)(
  9390. hPhoneApp
  9391. );
  9392. }
  9393. //**************************************************************************
  9394. //**************************************************************************
  9395. //**************************************************************************
  9396. LONG
  9397. WINAPI
  9398. tapiGetLocationInfo(
  9399. LPSTR lpszCountryCode,
  9400. LPSTR lpszCityCode
  9401. )
  9402. {
  9403. static TAPIPROC lpfn = NULL;
  9404. LONG lResult;
  9405. if ( lpfn == NULL )
  9406. {
  9407. //
  9408. // Did we have a problem?
  9409. //
  9410. if ( 0 != (lResult = GetTheFunctionPtr( "tapiGetLocationInfo", &lpfn )) )
  9411. {
  9412. lpfn = (TAPIPROC)-1;
  9413. return lResult;
  9414. }
  9415. }
  9416. //
  9417. // Have we determined that this is a lost cause?
  9418. //
  9419. if ( (TAPIPROC)-1 == lpfn )
  9420. {
  9421. return TAPIERR_REQUESTFAILED;
  9422. }
  9423. return (*lpfn)(
  9424. lpszCountryCode,
  9425. lpszCityCode
  9426. );
  9427. }
  9428. //**************************************************************************
  9429. //**************************************************************************
  9430. //**************************************************************************
  9431. LONG
  9432. WINAPI
  9433. tapiGetLocationInfoA(
  9434. LPSTR lpszCountryCode,
  9435. LPSTR lpszCityCode
  9436. )
  9437. {
  9438. static TAPIPROC lpfn = NULL;
  9439. LONG lResult;
  9440. if ( lpfn == NULL )
  9441. {
  9442. //
  9443. // Did we have a problem?
  9444. //
  9445. if ( 0 != (lResult = GetTheFunctionPtr( "tapiGetLocationInfoA", &lpfn )) )
  9446. {
  9447. lpfn = (TAPIPROC)-1;
  9448. return lResult;
  9449. }
  9450. }
  9451. //
  9452. // Have we determined that this is a lost cause?
  9453. //
  9454. if ( (TAPIPROC)-1 == lpfn )
  9455. {
  9456. return TAPIERR_REQUESTFAILED;
  9457. }
  9458. return (*lpfn)(
  9459. lpszCountryCode,
  9460. lpszCityCode
  9461. );
  9462. }
  9463. //**************************************************************************
  9464. //**************************************************************************
  9465. //**************************************************************************
  9466. LONG
  9467. WINAPI
  9468. tapiGetLocationInfoW(
  9469. LPWSTR lpszCountryCodeW,
  9470. LPWSTR lpszCityCodeW
  9471. )
  9472. {
  9473. static TAPIPROC lpfn = NULL;
  9474. LONG lResult;
  9475. if ( lpfn == NULL )
  9476. {
  9477. //
  9478. // Did we have a problem?
  9479. //
  9480. if ( 0 != (lResult = GetTheFunctionPtr( "tapiGetLocationInfoW", &lpfn )) )
  9481. {
  9482. lpfn = (TAPIPROC)-1;
  9483. return lResult;
  9484. }
  9485. }
  9486. //
  9487. // Have we determined that this is a lost cause?
  9488. //
  9489. if ( (TAPIPROC)-1 == lpfn )
  9490. {
  9491. return TAPIERR_REQUESTFAILED;
  9492. }
  9493. return (*lpfn)(
  9494. lpszCountryCodeW,
  9495. lpszCityCodeW
  9496. );
  9497. }
  9498. //**************************************************************************
  9499. //**************************************************************************
  9500. //**************************************************************************
  9501. LONG
  9502. WINAPI
  9503. tapiRequestDrop(
  9504. HWND hwnd,
  9505. WPARAM wRequestID
  9506. )
  9507. {
  9508. static TAPIPROC lpfn = NULL;
  9509. LONG lResult;
  9510. if ( lpfn == NULL )
  9511. {
  9512. //
  9513. // Did we have a problem?
  9514. //
  9515. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestDrop", &lpfn )) )
  9516. {
  9517. lpfn = (TAPIPROC)-1;
  9518. return lResult;
  9519. }
  9520. }
  9521. //
  9522. // Have we determined that this is a lost cause?
  9523. //
  9524. if ( (TAPIPROC)-1 == lpfn )
  9525. {
  9526. return TAPIERR_REQUESTFAILED;
  9527. }
  9528. return (*lpfn)(
  9529. hwnd,
  9530. wRequestID
  9531. );
  9532. }
  9533. //**************************************************************************
  9534. //**************************************************************************
  9535. //**************************************************************************
  9536. LONG
  9537. WINAPI
  9538. tapiRequestMakeCall(
  9539. LPCSTR lpszDestAddress,
  9540. LPCSTR lpszAppName,
  9541. LPCSTR lpszCalledParty,
  9542. LPCSTR lpszComment
  9543. )
  9544. {
  9545. static TAPIPROC lpfn = NULL;
  9546. LONG lResult;
  9547. if ( lpfn == NULL )
  9548. {
  9549. //
  9550. // Did we have a problem?
  9551. //
  9552. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMakeCall", &lpfn )) )
  9553. {
  9554. lpfn = (TAPIPROC)-1;
  9555. return lResult;
  9556. }
  9557. }
  9558. //
  9559. // Have we determined that this is a lost cause?
  9560. //
  9561. if ( (TAPIPROC)-1 == lpfn )
  9562. {
  9563. return TAPIERR_REQUESTFAILED;
  9564. }
  9565. return (*lpfn)(
  9566. lpszDestAddress,
  9567. lpszAppName,
  9568. lpszCalledParty,
  9569. lpszComment
  9570. );
  9571. }
  9572. //**************************************************************************
  9573. //**************************************************************************
  9574. //**************************************************************************
  9575. LONG
  9576. WINAPI
  9577. tapiRequestMakeCallA(
  9578. LPCSTR lpszDestAddress,
  9579. LPCSTR lpszAppName,
  9580. LPCSTR lpszCalledParty,
  9581. LPCSTR lpszComment
  9582. )
  9583. {
  9584. static TAPIPROC lpfn = NULL;
  9585. LONG lResult;
  9586. if ( lpfn == NULL )
  9587. {
  9588. //
  9589. // Did we have a problem?
  9590. //
  9591. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMakeCallA", &lpfn )) )
  9592. {
  9593. lpfn = (TAPIPROC)-1;
  9594. return lResult;
  9595. }
  9596. }
  9597. //
  9598. // Have we determined that this is a lost cause?
  9599. //
  9600. if ( (TAPIPROC)-1 == lpfn )
  9601. {
  9602. return TAPIERR_REQUESTFAILED;
  9603. }
  9604. return (*lpfn)(
  9605. lpszDestAddress,
  9606. lpszAppName,
  9607. lpszCalledParty,
  9608. lpszComment
  9609. );
  9610. }
  9611. //**************************************************************************
  9612. //**************************************************************************
  9613. //**************************************************************************
  9614. LONG
  9615. WINAPI
  9616. tapiRequestMakeCallW(
  9617. LPCWSTR lpszDestAddress,
  9618. LPCWSTR lpszAppName,
  9619. LPCWSTR lpszCalledParty,
  9620. LPCWSTR lpszComment
  9621. )
  9622. {
  9623. static TAPIPROC lpfn = NULL;
  9624. LONG lResult;
  9625. if ( lpfn == NULL )
  9626. {
  9627. //
  9628. // Did we have a problem?
  9629. //
  9630. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMakeCallW", &lpfn )) )
  9631. {
  9632. lpfn = (TAPIPROC)-1;
  9633. return lResult;
  9634. }
  9635. }
  9636. //
  9637. // Have we determined that this is a lost cause?
  9638. //
  9639. if ( (TAPIPROC)-1 == lpfn )
  9640. {
  9641. return TAPIERR_REQUESTFAILED;
  9642. }
  9643. return (*lpfn)(
  9644. lpszDestAddress,
  9645. lpszAppName,
  9646. lpszCalledParty,
  9647. lpszComment
  9648. );
  9649. }
  9650. //**************************************************************************
  9651. //**************************************************************************
  9652. //**************************************************************************
  9653. LONG
  9654. WINAPI
  9655. tapiRequestMediaCall(
  9656. HWND hwnd,
  9657. WPARAM wRequestID,
  9658. LPCSTR lpszDeviceClass,
  9659. LPCSTR lpDeviceID,
  9660. DWORD dwSize,
  9661. DWORD dwSecure,
  9662. LPCSTR lpszDestAddress,
  9663. LPCSTR lpszAppName,
  9664. LPCSTR lpszCalledParty,
  9665. LPCSTR lpszComment
  9666. )
  9667. {
  9668. static TAPIPROC lpfn = NULL;
  9669. LONG lResult;
  9670. if ( lpfn == NULL )
  9671. {
  9672. //
  9673. // Did we have a problem?
  9674. //
  9675. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMediaCall", &lpfn )) )
  9676. {
  9677. lpfn = (TAPIPROC)-1;
  9678. return lResult;
  9679. }
  9680. }
  9681. //
  9682. // Have we determined that this is a lost cause?
  9683. //
  9684. if ( (TAPIPROC)-1 == lpfn )
  9685. {
  9686. return TAPIERR_REQUESTFAILED;
  9687. }
  9688. return (*lpfn)(
  9689. hwnd,
  9690. wRequestID,
  9691. lpszDeviceClass,
  9692. lpDeviceID,
  9693. dwSize,
  9694. dwSecure,
  9695. lpszDestAddress,
  9696. lpszAppName,
  9697. lpszCalledParty,
  9698. lpszComment
  9699. );
  9700. }
  9701. //**************************************************************************
  9702. //**************************************************************************
  9703. //**************************************************************************
  9704. LONG
  9705. WINAPI
  9706. tapiRequestMediaCallA(
  9707. HWND hwnd,
  9708. WPARAM wRequestID,
  9709. LPCSTR lpszDeviceClass,
  9710. LPCSTR lpDeviceID,
  9711. DWORD dwSize,
  9712. DWORD dwSecure,
  9713. LPCSTR lpszDestAddress,
  9714. LPCSTR lpszAppName,
  9715. LPCSTR lpszCalledParty,
  9716. LPCSTR lpszComment
  9717. )
  9718. {
  9719. static TAPIPROC lpfn = NULL;
  9720. LONG lResult;
  9721. if ( lpfn == NULL )
  9722. {
  9723. //
  9724. // Did we have a problem?
  9725. //
  9726. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMediaCallA", &lpfn )) )
  9727. {
  9728. lpfn = (TAPIPROC)-1;
  9729. return lResult;
  9730. }
  9731. }
  9732. //
  9733. // Have we determined that this is a lost cause?
  9734. //
  9735. if ( (TAPIPROC)-1 == lpfn )
  9736. {
  9737. return TAPIERR_REQUESTFAILED;
  9738. }
  9739. return (*lpfn)(
  9740. hwnd,
  9741. wRequestID,
  9742. lpszDeviceClass,
  9743. lpDeviceID,
  9744. dwSize,
  9745. dwSecure,
  9746. lpszDestAddress,
  9747. lpszAppName,
  9748. lpszCalledParty,
  9749. lpszComment
  9750. );
  9751. }
  9752. //**************************************************************************
  9753. //**************************************************************************
  9754. //**************************************************************************
  9755. LONG
  9756. WINAPI
  9757. tapiRequestMediaCallW(
  9758. HWND hwnd,
  9759. WPARAM wRequestID,
  9760. LPCWSTR lpszDeviceClass,
  9761. LPCWSTR lpDeviceID,
  9762. DWORD dwSize,
  9763. DWORD dwSecure,
  9764. LPCWSTR lpszDestAddress,
  9765. LPCWSTR lpszAppName,
  9766. LPCWSTR lpszCalledParty,
  9767. LPCWSTR lpszComment
  9768. )
  9769. {
  9770. static TAPIPROC lpfn = NULL;
  9771. LONG lResult;
  9772. if ( lpfn == NULL )
  9773. {
  9774. //
  9775. // Did we have a problem?
  9776. //
  9777. if ( 0 != (lResult = GetTheFunctionPtr( "tapiRequestMediaCallW", &lpfn )) )
  9778. {
  9779. lpfn = (TAPIPROC)-1;
  9780. return lResult;
  9781. }
  9782. }
  9783. //
  9784. // Have we determined that this is a lost cause?
  9785. //
  9786. if ( (TAPIPROC)-1 == lpfn )
  9787. {
  9788. return TAPIERR_REQUESTFAILED;
  9789. }
  9790. return (*lpfn)(
  9791. hwnd,
  9792. wRequestID,
  9793. lpszDeviceClass,
  9794. lpDeviceID,
  9795. dwSize,
  9796. dwSecure,
  9797. lpszDestAddress,
  9798. lpszAppName,
  9799. lpszCalledParty,
  9800. lpszComment
  9801. );
  9802. }
  9803. //**************************************************************************
  9804. //**************************************************************************
  9805. //**************************************************************************