Leaked source code of windows server 2003
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.

4343 lines
77 KiB

  1. /*++ BUILD Version: 0000 // Increment this if a change has global effects
  2. Copyright (c) 1995-1997 Microsoft Corporation
  3. Module Name:
  4. line.h
  5. Abstract:
  6. Header file for tapi server line functions
  7. Author:
  8. Dan Knudson (DanKn) 01-Apr-1995
  9. Revision History:
  10. --*/
  11. #define MAXLEN_NAME 96
  12. #define MAXLEN_RULE 128
  13. #define ANY_RT_HCALL 1
  14. #define ANY_RT_HLINE 2
  15. #define DEVICE_ID 3
  16. #if DBG
  17. #define LINEPROLOG(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) \
  18. LineProlog(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14)
  19. #define LINEEPILOGSYNC(a1,a2,a3,a4,a5) LineEpilogSync(a1,a2,a3,a4,a5)
  20. #define LINEEPILOGASYNC(a1,a2,a3,a4,a5,a6,a7) \
  21. LineEpilogAsync(a1,a2,a3,a4,a5,a6,a7)
  22. #else
  23. #define LINEPROLOG(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14) \
  24. LineProlog(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)
  25. #define LINEEPILOGSYNC(a1,a2,a3,a4,a5) LineEpilogSync(a1,a2,a3,a4)
  26. #define LINEEPILOGASYNC(a1,a2,a3,a4,a5,a6,a7) \
  27. LineEpilogAsync(a1,a2,a3,a4,a5,a6)
  28. #endif
  29. #define AllAddressTypes \
  30. (LINEADDRESSTYPE_PHONENUMBER | \
  31. LINEADDRESSTYPE_SDP | \
  32. LINEADDRESSTYPE_EMAILNAME | \
  33. LINEADDRESSTYPE_DOMAINNAME | \
  34. LINEADDRESSTYPE_IPADDRESS)
  35. #define AllAddressStates1_0 \
  36. (LINEADDRESSSTATE_OTHER | \
  37. LINEADDRESSSTATE_DEVSPECIFIC | \
  38. LINEADDRESSSTATE_INUSEZERO | \
  39. LINEADDRESSSTATE_INUSEONE | \
  40. LINEADDRESSSTATE_INUSEMANY | \
  41. LINEADDRESSSTATE_NUMCALLS | \
  42. LINEADDRESSSTATE_FORWARD | \
  43. LINEADDRESSSTATE_TERMINALS)
  44. #define AllAddressStates1_4 \
  45. (AllAddressStates1_0 | \
  46. LINEADDRESSSTATE_CAPSCHANGE)
  47. //#define AllAddressStates2_0 \
  48. // (AllAddressStates1_4 | \
  49. // LINEADDRESSSTATE_AGENT | \
  50. // LINEADDRESSSTATE_AGENTSTATE | \
  51. // LINEADDRESSSTATE_AGENTACTIVITY)
  52. #define AllAgentStates \
  53. (LINEAGENTSTATE_LOGGEDOFF | \
  54. LINEAGENTSTATE_NOTREADY | \
  55. LINEAGENTSTATE_READY | \
  56. LINEAGENTSTATE_BUSYACD | \
  57. LINEAGENTSTATE_BUSYINCOMING | \
  58. LINEAGENTSTATE_BUSYOUTBOUND | \
  59. LINEAGENTSTATE_BUSYOTHER | \
  60. LINEAGENTSTATE_WORKINGAFTERCALL | \
  61. LINEAGENTSTATE_UNKNOWN | \
  62. LINEAGENTSTATE_UNAVAIL | \
  63. 0xffff0000)
  64. #define AllAgentStatus \
  65. (LINEAGENTSTATUS_GROUP | \
  66. LINEAGENTSTATUS_STATE | \
  67. LINEAGENTSTATUS_NEXTSTATE | \
  68. LINEAGENTSTATUS_ACTIVITY | \
  69. LINEAGENTSTATUS_ACTIVITYLIST | \
  70. LINEAGENTSTATUS_GROUPLIST | \
  71. LINEAGENTSTATUS_CAPSCHANGE | \
  72. LINEAGENTSTATUS_VALIDSTATES | \
  73. LINEAGENTSTATUS_VALIDNEXTSTATES)
  74. #define AllAgentSessionStates \
  75. (LINEAGENTSESSIONSTATE_NOTREADY | \
  76. LINEAGENTSESSIONSTATE_READY | \
  77. LINEAGENTSESSIONSTATE_BUSYONCALL | \
  78. LINEAGENTSESSIONSTATE_BUSYWRAPUP | \
  79. LINEAGENTSESSIONSTATE_ENDED | \
  80. LINEAGENTSESSIONSTATE_RELEASED)
  81. #define AllAgentSessionStatus \
  82. (LINEAGENTSESSIONSTATUS_NEWSESSION | \
  83. LINEAGENTSESSIONSTATUS_STATE | \
  84. LINEAGENTSESSIONSTATUS_UPDATEINFO)
  85. #define AllAgentStatusEx \
  86. (LINEAGENTSTATUSEX_NEWAGENT | \
  87. LINEAGENTSTATUSEX_STATE | \
  88. LINEAGENTSTATUSEX_UPDATEINFO)
  89. #define AllAgentStatesEx \
  90. (LINEAGENTSTATEEX_NOTREADY | \
  91. LINEAGENTSTATEEX_READY | \
  92. LINEAGENTSTATEEX_BUSYACD | \
  93. LINEAGENTSTATEEX_BUSYINCOMING | \
  94. LINEAGENTSTATEEX_BUSYOUTGOING | \
  95. LINEAGENTSTATEEX_UNKNOWN | \
  96. LINEAGENTSTATEEX_RELEASED)
  97. #define AllBearerModes1_0 \
  98. (LINEBEARERMODE_VOICE | \
  99. LINEBEARERMODE_SPEECH | \
  100. LINEBEARERMODE_MULTIUSE | \
  101. LINEBEARERMODE_DATA | \
  102. LINEBEARERMODE_ALTSPEECHDATA | \
  103. LINEBEARERMODE_NONCALLSIGNALING)
  104. #define AllBearerModes1_4 \
  105. (AllBearerModes1_0 | \
  106. LINEBEARERMODE_PASSTHROUGH)
  107. #define AllBearerModes2_0 \
  108. (AllBearerModes1_4 | \
  109. LINEBEARERMODE_RESTRICTEDDATA)
  110. #define AllCallComplModes \
  111. (LINECALLCOMPLMODE_CAMPON | \
  112. LINECALLCOMPLMODE_CALLBACK | \
  113. LINECALLCOMPLMODE_INTRUDE | \
  114. LINECALLCOMPLMODE_MESSAGE)
  115. #define AllCallParamFlags1_0 \
  116. (LINECALLPARAMFLAGS_SECURE | \
  117. LINECALLPARAMFLAGS_IDLE | \
  118. LINECALLPARAMFLAGS_BLOCKID | \
  119. LINECALLPARAMFLAGS_ORIGOFFHOOK | \
  120. LINECALLPARAMFLAGS_DESTOFFHOOK)
  121. #define AllCallParamFlags2_0 \
  122. (LINECALLPARAMFLAGS_SECURE | \
  123. LINECALLPARAMFLAGS_IDLE | \
  124. LINECALLPARAMFLAGS_BLOCKID | \
  125. LINECALLPARAMFLAGS_ORIGOFFHOOK | \
  126. LINECALLPARAMFLAGS_DESTOFFHOOK | \
  127. LINECALLPARAMFLAGS_NOHOLDCONFERENCE | \
  128. LINECALLPARAMFLAGS_PREDICTIVEDIAL | \
  129. LINECALLPARAMFLAGS_ONESTEPTRANSFER)
  130. #define AllCallSelects \
  131. (LINECALLSELECT_LINE | \
  132. LINECALLSELECT_ADDRESS | \
  133. LINECALLSELECT_CALL)
  134. #define AllForwardModes1_0 \
  135. (LINEFORWARDMODE_UNCOND | \
  136. LINEFORWARDMODE_UNCONDINTERNAL | \
  137. LINEFORWARDMODE_UNCONDEXTERNAL | \
  138. LINEFORWARDMODE_UNCONDSPECIFIC | \
  139. LINEFORWARDMODE_BUSY | \
  140. LINEFORWARDMODE_BUSYINTERNAL | \
  141. LINEFORWARDMODE_BUSYEXTERNAL | \
  142. LINEFORWARDMODE_BUSYSPECIFIC | \
  143. LINEFORWARDMODE_NOANSW | \
  144. LINEFORWARDMODE_NOANSWINTERNAL | \
  145. LINEFORWARDMODE_NOANSWEXTERNAL | \
  146. LINEFORWARDMODE_NOANSWSPECIFIC | \
  147. LINEFORWARDMODE_BUSYNA | \
  148. LINEFORWARDMODE_BUSYNAINTERNAL | \
  149. LINEFORWARDMODE_BUSYNAEXTERNAL | \
  150. LINEFORWARDMODE_BUSYNASPECIFIC)
  151. #define AllForwardModes1_4 \
  152. (AllForwardModes1_0 | \
  153. LINEFORWARDMODE_UNKNOWN | \
  154. LINEFORWARDMODE_UNAVAIL)
  155. #define AllGroupStatus \
  156. (LINEGROUPSTATUS_NEWGROUP | \
  157. LINEGROUPSTATUS_GROUPREMOVED)
  158. #define AllLineStates1_0 \
  159. (LINEDEVSTATE_OTHER | \
  160. LINEDEVSTATE_RINGING | \
  161. LINEDEVSTATE_CONNECTED | \
  162. LINEDEVSTATE_DISCONNECTED | \
  163. LINEDEVSTATE_MSGWAITON | \
  164. LINEDEVSTATE_MSGWAITOFF | \
  165. LINEDEVSTATE_INSERVICE | \
  166. LINEDEVSTATE_OUTOFSERVICE | \
  167. LINEDEVSTATE_MAINTENANCE | \
  168. LINEDEVSTATE_OPEN | \
  169. LINEDEVSTATE_CLOSE | \
  170. LINEDEVSTATE_NUMCALLS | \
  171. LINEDEVSTATE_NUMCOMPLETIONS | \
  172. LINEDEVSTATE_TERMINALS | \
  173. LINEDEVSTATE_ROAMMODE | \
  174. LINEDEVSTATE_BATTERY | \
  175. LINEDEVSTATE_SIGNAL | \
  176. LINEDEVSTATE_DEVSPECIFIC | \
  177. LINEDEVSTATE_REINIT | \
  178. LINEDEVSTATE_LOCK)
  179. #define AllLineStates1_4 \
  180. (AllLineStates1_0 | \
  181. LINEDEVSTATE_CAPSCHANGE | \
  182. LINEDEVSTATE_CONFIGCHANGE | \
  183. LINEDEVSTATE_TRANSLATECHANGE | \
  184. LINEDEVSTATE_COMPLCANCEL | \
  185. LINEDEVSTATE_REMOVED)
  186. #define AllMediaModes1_0 \
  187. (LINEMEDIAMODE_UNKNOWN | \
  188. LINEMEDIAMODE_INTERACTIVEVOICE | \
  189. LINEMEDIAMODE_AUTOMATEDVOICE | \
  190. LINEMEDIAMODE_DIGITALDATA | \
  191. LINEMEDIAMODE_G3FAX | \
  192. LINEMEDIAMODE_G4FAX | \
  193. LINEMEDIAMODE_DATAMODEM | \
  194. LINEMEDIAMODE_TELETEX | \
  195. LINEMEDIAMODE_VIDEOTEX | \
  196. LINEMEDIAMODE_TELEX | \
  197. LINEMEDIAMODE_MIXED | \
  198. LINEMEDIAMODE_TDD | \
  199. LINEMEDIAMODE_ADSI)
  200. #define AllMediaModes1_4 \
  201. (AllMediaModes1_0 | \
  202. LINEMEDIAMODE_VOICEVIEW)
  203. #define AllMediaModes2_1 \
  204. (AllMediaModes1_4 | \
  205. LINEMEDIAMODE_VIDEO)
  206. #define AllProxyStatus \
  207. (LINEPROXYSTATUS_OPEN | \
  208. LINEPROXYSTATUS_CLOSE)
  209. #define AllRequiredACDProxyRequests3_0 \
  210. ((1<<LINEPROXYREQUEST_GETAGENTCAPS) | \
  211. (1<<LINEPROXYREQUEST_CREATEAGENT) | \
  212. (1<<LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD) | \
  213. (1<<LINEPROXYREQUEST_GETAGENTINFO) | \
  214. (1<<LINEPROXYREQUEST_CREATEAGENTSESSION) | \
  215. (1<<LINEPROXYREQUEST_GETAGENTSESSIONLIST) | \
  216. (1<<LINEPROXYREQUEST_SETAGENTSESSIONSTATE) | \
  217. (1<<LINEPROXYREQUEST_GETAGENTSESSIONINFO) | \
  218. (1<<LINEPROXYREQUEST_GETQUEUELIST) | \
  219. (1<<LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD) | \
  220. (1<<LINEPROXYREQUEST_GETQUEUEINFO) | \
  221. (1<<LINEPROXYREQUEST_GETGROUPLIST) | \
  222. (1<<LINEPROXYREQUEST_SETAGENTSTATEEX))
  223. #define AllQueueStatus \
  224. (LINEQUEUESTATUS_UPDATEINFO | \
  225. LINEQUEUESTATUS_NEWQUEUE | \
  226. LINEQUEUESTATUS_QUEUEREMOVED)
  227. #define AllTerminalModes \
  228. (LINETERMMODE_BUTTONS | \
  229. LINETERMMODE_LAMPS | \
  230. LINETERMMODE_DISPLAY | \
  231. LINETERMMODE_RINGER | \
  232. LINETERMMODE_HOOKSWITCH | \
  233. LINETERMMODE_MEDIATOLINE | \
  234. LINETERMMODE_MEDIAFROMLINE | \
  235. LINETERMMODE_MEDIABIDIRECT)
  236. LONG
  237. PASCAL
  238. LineProlog(
  239. PTCLIENT ptClient,
  240. DWORD dwArgType,
  241. DWORD dwArg,
  242. LPVOID phdXxx,
  243. DWORD dwPrivilege,
  244. HANDLE *phMutex,
  245. BOOL *pbCloseMutex,
  246. DWORD dwTSPIFuncIndex,
  247. TSPIPROC *ppfnTSPI_lineXxx,
  248. PASYNCREQUESTINFO *ppAsyncRequestInfo,
  249. DWORD dwRemoteRequestID,
  250. DWORD *pObjectToDereference,
  251. LPVOID *pContext
  252. #if DBG
  253. ,char *pszFuncName
  254. #endif
  255. );
  256. void
  257. PASCAL
  258. LineEpilogSync(
  259. LONG *plResult,
  260. HANDLE hMutex,
  261. BOOL bCloseMutex,
  262. DWORD ObjectToDereference
  263. #if DBG
  264. ,char *pszFuncName
  265. #endif
  266. );
  267. PTLINEAPP
  268. PASCAL
  269. IsValidLineApp(
  270. HLINEAPP hLineApp,
  271. PTCLIENT ptClient
  272. );
  273. typedef struct _LINEACCEPT_PARAMS
  274. {
  275. union
  276. {
  277. OUT LONG lResult;
  278. };
  279. DWORD dwUnused;
  280. union
  281. {
  282. IN DWORD dwRemoteRequestID;
  283. };
  284. union
  285. {
  286. IN HCALL hCall;
  287. };
  288. union
  289. {
  290. IN DWORD dwUserUserInfoOffset; // valid offset or
  291. };
  292. union
  293. {
  294. IN DWORD dwSize;
  295. };
  296. } LINEACCEPT_PARAMS, *PLINEACCEPT_PARAMS;
  297. typedef struct _LINEADDTOCONFERENCE_PARAMS
  298. {
  299. union
  300. {
  301. OUT LONG lResult;
  302. };
  303. DWORD dwUnused;
  304. union
  305. {
  306. IN DWORD dwRemoteRequestID;
  307. };
  308. union
  309. {
  310. IN HCALL hConfCall;
  311. };
  312. union
  313. {
  314. IN HCALL hConsultCall;
  315. };
  316. } LINEADDTOCONFERENCE_PARAMS, *PLINEADDTOCONFERENCE_PARAMS;
  317. typedef struct _LINEAGENTSPECIFIC_PARAMS
  318. {
  319. union
  320. {
  321. OUT LONG lResult;
  322. };
  323. DWORD dwUnused;
  324. union
  325. {
  326. IN DWORD dwRemoteRequestID;
  327. };
  328. // IN DWORD hfnPostProcessProc;
  329. IN DWORD hfnPostProcessProc;
  330. union
  331. {
  332. IN HLINE hLine;
  333. };
  334. union
  335. {
  336. IN DWORD dwAddressID;
  337. };
  338. union
  339. {
  340. IN DWORD dwAgentExtensionIDIndex;
  341. };
  342. // IN ULONG_PTR lpParams; // pointer to client buffer
  343. IN DWORD hpParams;
  344. union
  345. {
  346. IN DWORD dwParamsOffset; // valid offset or
  347. };
  348. union
  349. {
  350. IN DWORD dwParamsSize;
  351. };
  352. } LINEAGENTSPECIFIC_PARAMS, *PLINEAGENTSPECIFIC_PARAMS;
  353. typedef struct _LINEANSWER_PARAMS
  354. {
  355. union
  356. {
  357. OUT LONG lResult;
  358. };
  359. DWORD dwUnused;
  360. union
  361. {
  362. IN DWORD dwRemoteRequestID;
  363. };
  364. union
  365. {
  366. IN HCALL hCall;
  367. };
  368. union
  369. {
  370. IN DWORD dwUserUserInfoOffset; // valid offset or
  371. };
  372. union
  373. {
  374. IN DWORD dwUserUserInfoSize;
  375. };
  376. } LINEANSWER_PARAMS, *PLINEANSWER_PARAMS;
  377. typedef struct _LINEBLINDTRANSFER_PARAMS
  378. {
  379. union
  380. {
  381. OUT LONG lResult;
  382. };
  383. DWORD dwUnused;
  384. union
  385. {
  386. IN DWORD dwRemoteRequestID;
  387. };
  388. union
  389. {
  390. IN HCALL hCall;
  391. };
  392. union
  393. {
  394. IN DWORD dwDestAddressOffset; // always valid offset
  395. };
  396. union
  397. {
  398. IN DWORD dwCountryCode;
  399. };
  400. } LINEBLINDTRANSFER_PARAMS, *PLINEBLINDTRANSFER_PARAMS;
  401. typedef struct _LINECLOSE_PARAMS
  402. {
  403. union
  404. {
  405. OUT LONG lResult;
  406. };
  407. DWORD dwUnused;
  408. union
  409. {
  410. IN HLINE hLine;
  411. };
  412. OUT DWORD dwCallbackInstance;
  413. } LINECLOSE_PARAMS, *PLINECLOSE_PARAMS;
  414. typedef struct _LINECLOSEMSPINSTANCE_PARAMS
  415. {
  416. union
  417. {
  418. OUT LONG lResult;
  419. };
  420. DWORD dwUnused;
  421. union
  422. {
  423. IN HLINE hLine;
  424. };
  425. } LINECLOSEMSPINSTANCE_PARAMS, *PLINECLOSEMSPINSTANCE_PARAMS;
  426. typedef struct _LINECOMPLETECALL_PARAMS
  427. {
  428. union
  429. {
  430. OUT LONG lResult;
  431. };
  432. DWORD dwUnused;
  433. union
  434. {
  435. IN DWORD dwRemoteRequestID;
  436. };
  437. IN DWORD hfnPostProcessProc;
  438. union
  439. {
  440. IN HCALL hCall;
  441. };
  442. IN DWORD hpdwCompletionID;
  443. union
  444. {
  445. IN DWORD dwCompletionMode;
  446. };
  447. union
  448. {
  449. IN DWORD dwMessageID;
  450. };
  451. } LINECOMPLETECALL_PARAMS, *PLINECOMPLETECALL_PARAMS;
  452. typedef struct _LINECOMPLETETRANSFER_PARAMS
  453. {
  454. union
  455. {
  456. OUT LONG lResult;
  457. };
  458. DWORD dwUnused;
  459. union
  460. {
  461. IN DWORD dwRemoteRequestID;
  462. };
  463. IN DWORD hfnPostProcessProc;
  464. union
  465. {
  466. IN HCALL hCall;
  467. };
  468. union
  469. {
  470. IN HCALL hConsultCall;
  471. };
  472. IN DWORD hpConfCallHandle; // pointer to client buffer
  473. union
  474. {
  475. IN DWORD dwTransferMode;
  476. };
  477. } LINECOMPLETETRANSFER_PARAMS, *PLINECOMPLETETRANSFER_PARAMS;
  478. typedef struct _LINECONDITIONALMEDIADETECTION_PARAMS
  479. {
  480. union
  481. {
  482. OUT LONG lResult;
  483. };
  484. DWORD dwUnused;
  485. union
  486. {
  487. IN HLINE hLine;
  488. };
  489. union
  490. {
  491. IN DWORD dwMediaModes;
  492. };
  493. union
  494. {
  495. IN DWORD dwCallParamsOffset;
  496. };
  497. union
  498. {
  499. IN DWORD dwAsciiCallParamsCodePage;
  500. };
  501. } LINECONDITIONALMEDIADETECTION_PARAMS, *PLINECONDITIONALMEDIADETECTION_PARAMS;
  502. typedef struct _LINECONFIGPROVIDER_PARAMS
  503. {
  504. union
  505. {
  506. OUT LONG lResult;
  507. };
  508. DWORD dwUnused;
  509. union
  510. {
  511. IN DWORD dwwndOwner;
  512. };
  513. union
  514. {
  515. IN DWORD dwPermanentProviderID;
  516. };
  517. } LINECONFIGPROVIDER_PARAMS, *PLINECONFIGPROVIDER_PARAMS;
  518. typedef struct _LINECREATEAGENT_PARAMS
  519. {
  520. union
  521. {
  522. OUT LONG lResult;
  523. };
  524. DWORD dwUnused;
  525. union
  526. {
  527. IN DWORD dwRemoteRequestID;
  528. };
  529. // IN DWORD hfnPostProcessProc;
  530. IN DWORD hfnPostProcessProc;
  531. union
  532. {
  533. IN HLINE hLine;
  534. };
  535. union
  536. {
  537. IN DWORD dwAgentIDOffset; // valid offset or
  538. };
  539. // TAPI_NO_DATA
  540. union
  541. {
  542. IN DWORD dwAgentPINOffset; // valid offset or
  543. // TAPI_NO_DATA
  544. };
  545. // IN ULONG_PTR lphAgent; // pointer to client buffer
  546. IN DWORD hpAgent; // pointer to client buffer
  547. } LINECREATEAGENT_PARAMS, * PLINECREATEAGENT_PARAMS;
  548. typedef struct _LINECREATEAGENTSESSION_PARAMS
  549. {
  550. union
  551. {
  552. OUT LONG lResult;
  553. };
  554. DWORD dwUnused;
  555. union
  556. {
  557. IN DWORD dwRemoteRequestID;
  558. };
  559. // IN DWORD hfnPostProcessProc;
  560. IN DWORD hfnPostProcessProc;
  561. union
  562. {
  563. IN HLINE hLine;
  564. };
  565. union
  566. {
  567. IN HAGENT hAgent;
  568. };
  569. union
  570. {
  571. IN DWORD dwAgentPINOffset; // valid offset or
  572. // TAPI_NO_DATA
  573. };
  574. union
  575. {
  576. IN DWORD dwWorkingAddressID;
  577. };
  578. union
  579. {
  580. IN DWORD dwGroupIDOffset;
  581. };
  582. union
  583. {
  584. IN DWORD dwGroupIDSize;
  585. };
  586. IN DWORD hpAgentSessionHandle; // pointer to client buffer
  587. } LINECREATEAGENTSESSION_PARAMS, *PLINECREATEAGENTSESSION_PARAMS;
  588. typedef struct _LINECREATEMSPINSTANCE_PARAMS
  589. {
  590. union
  591. {
  592. OUT LONG lResult;
  593. };
  594. DWORD dwUnused;
  595. union
  596. {
  597. IN HLINE hLine;
  598. };
  599. union
  600. {
  601. IN DWORD dwAddressID;
  602. };
  603. } LINECREATEMSPINSTANCE_PARAMS, *PLINECREATEMSPINSTANCE_PARAMS;
  604. typedef struct _LINEDEALLOCATECALL_PARAMS
  605. {
  606. union
  607. {
  608. OUT LONG lResult;
  609. };
  610. DWORD dwUnused;
  611. union
  612. {
  613. IN HCALL hCall;
  614. };
  615. } LINEDEALLOCATECALL_PARAMS, *PLINEDEALLOCATECALL_PARAMS;
  616. typedef struct _LINEDEVSPECIFIC_PARAMS
  617. {
  618. union
  619. {
  620. OUT LONG lResult;
  621. };
  622. DWORD dwUnused;
  623. union
  624. {
  625. IN DWORD dwRemoteRequestID;
  626. };
  627. // IN DWORD hfnPostProcessProc;
  628. IN DWORD hfnPostProcessProc;
  629. union
  630. {
  631. IN HLINE hLine;
  632. };
  633. union
  634. {
  635. IN DWORD dwAddressID;
  636. };
  637. union
  638. {
  639. IN HCALL hCall;
  640. };
  641. IN DWORD hpParams; // pointer to client buffer
  642. union
  643. {
  644. IN DWORD dwParamsOffset; // valid offset or
  645. };
  646. union
  647. {
  648. IN DWORD dwParamsSize;
  649. };
  650. } LINEDEVSPECIFIC_PARAMS, *PLINEDEVSPECIFIC_PARAMS;
  651. typedef struct _LINEDEVSPECIFICEX_PARAMS
  652. {
  653. union
  654. {
  655. OUT LONG lResult;
  656. };
  657. DWORD dwUnused;
  658. union
  659. {
  660. IN DWORD dwRemoteRequestID;
  661. };
  662. // IN DWORD hfnPostProcessProc;
  663. IN DWORD hfnPostProcessProc;
  664. union
  665. {
  666. IN DWORD dwProviderID;
  667. };
  668. union
  669. {
  670. IN DWORD dwDeviceID;
  671. };
  672. union
  673. {
  674. IN DWORD dwAddressID;
  675. };
  676. union
  677. {
  678. IN HCALL hCall;
  679. };
  680. union
  681. {
  682. IN HCALLHUB hCallHub;
  683. };
  684. union
  685. {
  686. IN DWORD dwSelect;
  687. };
  688. IN DWORD hpParams; // pointer to client buffer
  689. union
  690. {
  691. IN DWORD dwParamsOffset; // valid offset or
  692. // TAPI_NO_DATA
  693. };
  694. union
  695. {
  696. IN DWORD dwParamsSize;
  697. };
  698. } LINEDEVSPECIFICEX_PARAMS, *PLINEDEVSPECIFICEX_PARAMS;
  699. typedef struct _LINEDEVSPECIFICFEATURE_PARAMS
  700. {
  701. union
  702. {
  703. OUT LONG lResult;
  704. };
  705. DWORD dwUnused;
  706. union
  707. {
  708. IN DWORD dwRemoteRequestID;
  709. };
  710. // IN DWORD hfnPostProcessProc;
  711. IN DWORD hfnPostProcessProc;
  712. union
  713. {
  714. IN DWORD hLine;
  715. };
  716. union
  717. {
  718. IN DWORD dwFeature;
  719. };
  720. IN DWORD hpParams; // pointer to client buffer
  721. union
  722. {
  723. IN DWORD dwParamsOffset; // valid offset or
  724. // TAPI_NO_DATA
  725. };
  726. union
  727. {
  728. IN DWORD dwParamsSize;
  729. };
  730. } LINEDEVSPECIFICFEATURE_PARAMS, *PLINEDEVSPECIFICFEATURE_PARAMS;
  731. typedef struct _LINEDIAL_PARAMS
  732. {
  733. union
  734. {
  735. OUT LONG lResult;
  736. };
  737. DWORD dwUnused;
  738. union
  739. {
  740. IN DWORD dwRemoteRequestID;
  741. };
  742. union
  743. {
  744. IN HCALL hCall;
  745. };
  746. union
  747. {
  748. IN DWORD dwDestAddressOffset; // always valid offset
  749. };
  750. union
  751. {
  752. IN DWORD dwCountryCode;
  753. };
  754. } LINEDIAL_PARAMS, *PLINEDIAL_PARAMS;
  755. typedef struct _LINEDROP_PARAMS
  756. {
  757. union
  758. {
  759. OUT LONG lResult;
  760. };
  761. DWORD dwUnused;
  762. union
  763. {
  764. IN DWORD dwRemoteRequestID;
  765. };
  766. union
  767. {
  768. IN HCALL hCall;
  769. };
  770. union
  771. {
  772. IN DWORD dwUserUserInfoOffset; // valid offset or
  773. };
  774. union
  775. {
  776. IN DWORD dwSize;
  777. };
  778. } LINEDROP_PARAMS, *PLINEDROP_PARAMS;
  779. typedef struct _LINEFORWARD_PARAMS
  780. {
  781. union
  782. {
  783. OUT LONG lResult;
  784. };
  785. DWORD dwUnused;
  786. union
  787. {
  788. IN DWORD dwRemoteRequestID;
  789. };
  790. IN DWORD hfnPostProcessProc;
  791. union
  792. {
  793. IN DWORD hLine;
  794. };
  795. union
  796. {
  797. IN DWORD bAllAddresses;
  798. };
  799. union
  800. {
  801. IN DWORD dwAddressID;
  802. };
  803. union
  804. {
  805. IN DWORD dwForwardListOffset; // always valid offset
  806. };
  807. union
  808. {
  809. IN DWORD dwNumRingsNoAnswer;
  810. };
  811. IN DWORD hpConsultCall; // pointer to client buffer
  812. union
  813. {
  814. IN DWORD dwCallParamsOffset; // valid offset or
  815. // TAPI_NO_DATA
  816. };
  817. union
  818. {
  819. IN DWORD dwAsciiCallParamsCodePage;
  820. };
  821. } LINEFORWARD_PARAMS, *PLINEFORWARD_PARAMS;
  822. typedef struct _LINEGATHERDIGITS_PARAMS
  823. {
  824. union
  825. {
  826. OUT LONG lResult;
  827. };
  828. DWORD dwUnused;
  829. IN DWORD hfnPostProcessProc;
  830. union
  831. {
  832. IN HCALL hCall;
  833. };
  834. #if NEWTAPI32
  835. union
  836. {
  837. IN DWORD dwEndToEndID;
  838. };
  839. #endif
  840. union
  841. {
  842. IN DWORD dwDigitModes;
  843. };
  844. // IN ULONG_PTR lpsDigits; // pointer to client buffer
  845. IN DWORD hpsDigits; // pointer to client buffer
  846. union
  847. {
  848. IN DWORD dwNumDigits;
  849. };
  850. union
  851. {
  852. IN DWORD dwTerminationDigitsOffset; // valid offset or
  853. // TAPI_NO_DATA
  854. };
  855. union
  856. {
  857. IN DWORD dwFirstDigitTimeout;
  858. };
  859. union
  860. {
  861. IN DWORD dwInterDigitTimeout;
  862. };
  863. } LINEGATHERDIGITS_PARAMS, *PLINEGATHERDIGITS_PARAMS;
  864. typedef struct _LINEGENERATEDIGITS_PARAMS
  865. {
  866. union
  867. {
  868. OUT LONG lResult;
  869. };
  870. DWORD dwUnused;
  871. union
  872. {
  873. IN DWORD hCall;
  874. };
  875. union
  876. {
  877. IN DWORD dwDigitMode;
  878. };
  879. union
  880. {
  881. IN DWORD dwDigitsOffset; // always valid offset
  882. };
  883. union
  884. {
  885. IN DWORD dwDuration;
  886. };
  887. union
  888. {
  889. IN DWORD dwEndToEndID; // Used for remotesp only
  890. };
  891. } LINEGENERATEDIGITS_PARAMS, *PLINEGENERATEDIGITS_PARAMS;
  892. typedef struct _LINEGENERATETONE_PARAMS
  893. {
  894. union
  895. {
  896. OUT LONG lResult;
  897. };
  898. DWORD dwUnused;
  899. union
  900. {
  901. IN HCALL hCall;
  902. };
  903. union
  904. {
  905. IN DWORD dwToneMode;
  906. };
  907. union
  908. {
  909. IN DWORD dwDuration;
  910. };
  911. union
  912. {
  913. IN DWORD dwNumTones;
  914. };
  915. union
  916. {
  917. IN DWORD dwTonesOffset; // valid offset or
  918. };
  919. IN DWORD _Unused_; // placeholdr for following
  920. // Size arg on clnt side
  921. union
  922. {
  923. IN DWORD dwEndToEndID; // Used for remotesp only
  924. };
  925. } LINEGENERATETONE_PARAMS, *PLINEGENERATETONE_PARAMS;
  926. typedef struct _LINEGETADDRESSCAPS_PARAMS
  927. {
  928. union
  929. {
  930. OUT LONG lResult;
  931. };
  932. DWORD dwUnused;
  933. union
  934. {
  935. IN HLINEAPP hLineApp;
  936. };
  937. union
  938. {
  939. IN DWORD dwDeviceID;
  940. };
  941. union
  942. {
  943. IN DWORD dwAddressID;
  944. };
  945. union
  946. {
  947. IN DWORD dwAPIVersion;
  948. };
  949. union
  950. {
  951. IN DWORD dwExtVersion;
  952. };
  953. union
  954. {
  955. IN DWORD dwAddressCapsTotalSize; // size of client buffer
  956. OUT DWORD dwAddressCapsOffset; // valid offset on success
  957. };
  958. } LINEGETADDRESSCAPS_PARAMS, *PLINEGETADDRESSCAPS_PARAMS;
  959. typedef struct _LINEGETADDRESSID_PARAMS
  960. {
  961. union
  962. {
  963. OUT LONG lResult;
  964. };
  965. DWORD dwUnused;
  966. union
  967. {
  968. IN HLINE hLine;
  969. };
  970. union
  971. {
  972. OUT DWORD dwAddressID;
  973. };
  974. union
  975. {
  976. IN DWORD dwAddressMode;
  977. };
  978. union
  979. {
  980. IN DWORD dwAddressOffset; // always valid offset
  981. };
  982. union
  983. {
  984. IN DWORD dwSize;
  985. };
  986. } LINEGETADDRESSID_PARAMS, *PLINEGETADDRESSID_PARAMS;
  987. typedef struct _LINEGETADDRESSSTATUS_PARAMS
  988. {
  989. union
  990. {
  991. OUT LONG lResult;
  992. };
  993. DWORD dwUnused;
  994. union
  995. {
  996. IN HLINE hLine;
  997. };
  998. union
  999. {
  1000. OUT DWORD dwAddressID;
  1001. };
  1002. union
  1003. {
  1004. IN DWORD dwAddressStatusTotalSize; // size of client buffer
  1005. OUT DWORD dwAddressStatusOffset; // valid offset on success
  1006. };
  1007. } LINEGETADDRESSSTATUS_PARAMS, *PLINEGETADDRESSSTATUS_PARAMS;
  1008. typedef struct _LINEGETAGENTACTIVITYLIST_PARAMS
  1009. {
  1010. union
  1011. {
  1012. OUT LONG lResult;
  1013. };
  1014. DWORD dwUnused;
  1015. union
  1016. {
  1017. IN DWORD dwRemoteRequestID;
  1018. };
  1019. IN DWORD hfnPostProcessProc;
  1020. union
  1021. {
  1022. IN HLINE hLine;
  1023. };
  1024. union
  1025. {
  1026. IN DWORD dwAddressID;
  1027. };
  1028. // IN ULONG_PTR lpAgentActivityList; // pointer to client buffer
  1029. IN DWORD hpAgentActivityList; // pointer to client buffer
  1030. union
  1031. {
  1032. IN DWORD dwActivityListTotalSize;
  1033. };
  1034. } LINEGETAGENTACTIVITYLIST_PARAMS, *PLINEGETAGENTACTIVITYLIST_PARAMS;
  1035. typedef struct _LINEGETAGENTCAPS_PARAMS
  1036. {
  1037. union
  1038. {
  1039. OUT LONG lResult;
  1040. };
  1041. DWORD dwUnused;
  1042. union
  1043. {
  1044. IN DWORD dwRemoteRequestID;
  1045. };
  1046. IN DWORD hfnPostProcessProc;
  1047. union
  1048. {
  1049. IN HLINEAPP hLineApp;
  1050. };
  1051. union
  1052. {
  1053. IN DWORD dwDeviceID;
  1054. };
  1055. union
  1056. {
  1057. IN DWORD dwAddressID;
  1058. };
  1059. union
  1060. {
  1061. IN DWORD dwAppAPIVersion;
  1062. };
  1063. // IN ULONG_PTR lpAgentCaps; // pointer to client buffer
  1064. IN DWORD hpAgentCaps; // pointer to client buffer
  1065. union
  1066. {
  1067. IN DWORD dwAgentCapsTotalSize;
  1068. };
  1069. } LINEGETAGENTCAPS_PARAMS, *PLINEGETAGENTCAPS_PARAMS;
  1070. typedef struct _LINEGETAGENTGROUPLIST_PARAMS
  1071. {
  1072. union
  1073. {
  1074. OUT LONG lResult;
  1075. };
  1076. DWORD dwUnused;
  1077. union
  1078. {
  1079. IN DWORD dwRemoteRequestID;
  1080. };
  1081. IN DWORD hfnPostProcessProc;
  1082. union
  1083. {
  1084. IN HLINE hLine;
  1085. };
  1086. union
  1087. {
  1088. IN DWORD dwAddressID;
  1089. };
  1090. // IN ULONG_PTR lpAgentGroupList; // pointer to client buffer
  1091. IN DWORD hpAgentGroupList; // pointer to client buffer
  1092. union
  1093. {
  1094. IN DWORD dwAgentGroupListTotalSize;
  1095. };
  1096. } LINEGETAGENTGROUPLIST_PARAMS, *PLINEGETAGENTGROUPLIST_PARAMS;
  1097. typedef struct _LINEGETAGENTINFO_PARAMS
  1098. {
  1099. union
  1100. {
  1101. OUT LONG lResult;
  1102. };
  1103. DWORD dwUnused;
  1104. union
  1105. {
  1106. IN DWORD dwRemoteRequestID;
  1107. };
  1108. IN DWORD hfnPostProcessProc;
  1109. union
  1110. {
  1111. IN HLINE hLine;
  1112. };
  1113. union
  1114. {
  1115. IN HAGENT hAgent;
  1116. };
  1117. // IN ULONG_PTR lpAgentInfo; // pointer to client buffer
  1118. IN DWORD hpAgentInfo; // pointer to client buffer
  1119. union
  1120. {
  1121. IN DWORD dwAgentInfoTotalSize;
  1122. };
  1123. } LINEGETAGENTINFO_PARAMS, *PLINEGETAGENTINFO_PARAMS;
  1124. typedef struct _LINEGETAGENTSESSIONINFO_PARAMS
  1125. {
  1126. union
  1127. {
  1128. OUT LONG lResult;
  1129. };
  1130. DWORD dwUnused;
  1131. union
  1132. {
  1133. IN DWORD dwRemoteRequestID;
  1134. };
  1135. IN DWORD hfnPostProcessProc;
  1136. union
  1137. {
  1138. IN HLINE hLine;
  1139. };
  1140. union
  1141. {
  1142. IN HAGENTSESSION hAgentSession;
  1143. };
  1144. // IN ULONG_PTR lpAgentSessionInfo; // pointer to client buffer
  1145. IN DWORD hpAgentSessionInfo; // pointer to client buffer
  1146. union
  1147. {
  1148. IN DWORD dwAgentSessionInfoTotalSize;
  1149. };
  1150. } LINEGETAGENTSESSIONINFO_PARAMS, *PLINEGETAGENTSESSIONINFO_PARAMS;
  1151. typedef struct _LINEGETAGENTSESSIONLIST_PARAMS
  1152. {
  1153. union
  1154. {
  1155. OUT LONG lResult;
  1156. };
  1157. DWORD dwUnused;
  1158. union
  1159. {
  1160. IN DWORD dwRemoteRequestID;
  1161. };
  1162. IN DWORD hfnPostProcessProc;
  1163. union
  1164. {
  1165. IN HLINE hLine;
  1166. };
  1167. union
  1168. {
  1169. IN HAGENT hAgent;
  1170. };
  1171. // IN ULONG_PTR lpSessionList; // pointer to client buffer
  1172. IN DWORD hpSessionList; // pointer to client buffer
  1173. union
  1174. {
  1175. IN DWORD dwSessionListTotalSize;
  1176. };
  1177. } LINEGETAGENTSESSIONLIST_PARAMS, *PLINEGETAGENTSESSIONLIST_PARAMS;
  1178. typedef struct _LINEGETAGENTSTATUS_PARAMS
  1179. {
  1180. union
  1181. {
  1182. OUT LONG lResult;
  1183. };
  1184. DWORD dwUnused;
  1185. union
  1186. {
  1187. IN DWORD dwRemoteRequestID;
  1188. };
  1189. IN DWORD hfnPostProcessProc;
  1190. union
  1191. {
  1192. IN HLINE hLine;
  1193. };
  1194. union
  1195. {
  1196. IN DWORD dwAddressID;
  1197. };
  1198. // IN ULONG_PTR lpAgentStatus; // pointer to client buffer
  1199. IN DWORD hpAgentStatus; // pointer to client buffer
  1200. union
  1201. {
  1202. IN DWORD dwAgentStatusTotalSize;
  1203. };
  1204. } LINEGETAGENTSTATUS_PARAMS, *PLINEGETAGENTSTATUS_PARAMS;
  1205. typedef struct _LINEGETAPPPRIORITY_PARAMS
  1206. {
  1207. union
  1208. {
  1209. OUT LONG lResult;
  1210. };
  1211. DWORD dwUnused;
  1212. union
  1213. {
  1214. IN DWORD dwAppNameOffset; // always valid offset
  1215. };
  1216. union
  1217. {
  1218. IN DWORD dwMediaMode;
  1219. };
  1220. union
  1221. {
  1222. IN DWORD dwExtensionIDOffset; // valid offset or
  1223. };
  1224. //IN ULONG_PTR _Unused_; // padding for Size type on
  1225. IN DWORD _Unused_; // padding for Size type on
  1226. // client side
  1227. union
  1228. {
  1229. IN DWORD dwRequestMode;
  1230. };
  1231. union
  1232. {
  1233. IN DWORD dwExtensionNameTotalSize; // size of client buf or
  1234. // TAPI_NO_DATA
  1235. OUT DWORD dwExtensionNameOffset; // valid offset or
  1236. // TAPI_NO_DATA on succes
  1237. };
  1238. union
  1239. {
  1240. OUT DWORD dwPriority;
  1241. };
  1242. } LINEGETAPPPRIORITY_PARAMS, *PLINEGETAPPPRIORITY_PARAMS;
  1243. typedef struct _LINEGETCALLADDRESSID_PARAMS
  1244. {
  1245. union
  1246. {
  1247. OUT LONG lResult;
  1248. };
  1249. DWORD dwUnused;
  1250. union
  1251. {
  1252. IN HCALL hCall;
  1253. };
  1254. union
  1255. {
  1256. OUT DWORD dwAddressID;
  1257. };
  1258. } LINEGETCALLADDRESSID_PARAMS, *PLINEGETCALLADDRESSID_PARAMS;
  1259. typedef struct _LINEGETCALLHUBTRACKING_PARAMS
  1260. {
  1261. union
  1262. {
  1263. OUT LONG lResult;
  1264. };
  1265. DWORD dwUnused;
  1266. union
  1267. {
  1268. IN HLINE hLine;
  1269. };
  1270. union
  1271. {
  1272. IN DWORD dwTrackingInfoTotalSize; // size of client buffer
  1273. OUT DWORD dwTrackingInfoOffset; // valid offset on success
  1274. };
  1275. } LINEGETCALLHUBTRACKING_PARAMS, *PLINEGETCALLHUBTRACKING_PARAMS;
  1276. typedef struct _LINEGETCALLIDS_PARAMS
  1277. {
  1278. union
  1279. {
  1280. OUT LONG lResult;
  1281. };
  1282. DWORD dwUnused;
  1283. union
  1284. {
  1285. IN HCALL hCall;
  1286. };
  1287. union
  1288. {
  1289. OUT DWORD dwAddressID;
  1290. };
  1291. union
  1292. {
  1293. OUT DWORD dwCallID;
  1294. };
  1295. union
  1296. {
  1297. OUT DWORD dwRelatedCallID;
  1298. };
  1299. } LINEGETCALLIDS_PARAMS, *PLINEGETCALLIDS_PARAMS;
  1300. typedef struct _LINEGETCALLINFO_PARAMS
  1301. {
  1302. union
  1303. {
  1304. OUT LONG lResult;
  1305. };
  1306. DWORD dwUnused;
  1307. union
  1308. {
  1309. IN HCALL hCall;
  1310. };
  1311. union
  1312. {
  1313. IN DWORD dwCallInfoTotalSize; // size of client buffer
  1314. OUT DWORD dwCallInfoOffset; // valid offset on success
  1315. };
  1316. } LINEGETCALLINFO_PARAMS, *PLINEGETCALLINFO_PARAMS;
  1317. typedef struct _LINEGETCALLSTATUS_PARAMS
  1318. {
  1319. union
  1320. {
  1321. OUT LONG lResult;
  1322. };
  1323. DWORD dwUnused;
  1324. union
  1325. {
  1326. IN HCALL hCall;
  1327. };
  1328. union
  1329. {
  1330. IN DWORD dwCallStatusTotalSize; // size of client buffer
  1331. OUT DWORD dwCallStatusOffset; // valid offset on success
  1332. };
  1333. } LINEGETCALLSTATUS_PARAMS, *PLINEGETCALLSTATUS_PARAMS;
  1334. typedef struct _LINEGETCONFRELATEDCALLS_PARAMS
  1335. {
  1336. union
  1337. {
  1338. OUT LONG lResult;
  1339. };
  1340. DWORD dwUnused;
  1341. union
  1342. {
  1343. IN HCALL hCall;
  1344. };
  1345. union
  1346. {
  1347. IN DWORD dwCallListTotalSize; // size of client buffer
  1348. OUT DWORD dwCallListOffset; // valid offset on success
  1349. };
  1350. } LINEGETCONFRELATEDCALLS_PARAMS, *PLINEGETCONFRELATEDCALLS_PARAMS;
  1351. typedef struct _LINEGETCOUNTRY_PARAMS
  1352. {
  1353. union
  1354. {
  1355. OUT LONG lResult;
  1356. };
  1357. DWORD dwUnused;
  1358. union
  1359. {
  1360. IN DWORD dwCountryID;
  1361. };
  1362. union
  1363. {
  1364. IN DWORD dwAPIVersion;
  1365. };
  1366. union
  1367. {
  1368. IN DWORD dwDestCountryID;
  1369. };
  1370. union
  1371. {
  1372. IN DWORD dwCountryListTotalSize; // size of client buffer
  1373. OUT DWORD dwCountryListOffset; // valid offset on success
  1374. };
  1375. } LINEGETCOUNTRY_PARAMS, *PLINEGETCOUNTRY_PARAMS;
  1376. typedef struct _LINEGETCOUNTRYGROUP_PARAMS
  1377. {
  1378. union
  1379. {
  1380. OUT LONG lResult;
  1381. };
  1382. DWORD dwUnused;
  1383. union
  1384. {
  1385. IN DWORD dwCountryIdOffset;
  1386. };
  1387. union
  1388. {
  1389. IN OUT DWORD dwCountryIdSize;
  1390. };
  1391. union
  1392. {
  1393. OUT DWORD dwCountryGroupOffset;
  1394. };
  1395. union
  1396. {
  1397. IN OUT DWORD dwCountryGroupSize;
  1398. };
  1399. } LINEGETCOUNTRYGROUP_PARAMS, *PLINEGETCOUNTRYGROUP_PARAMS;
  1400. typedef struct _LINEGETDEVCAPS_PARAMS
  1401. {
  1402. union
  1403. {
  1404. OUT LONG lResult;
  1405. };
  1406. DWORD dwUnused;
  1407. union
  1408. {
  1409. IN HLINEAPP hLineApp;
  1410. };
  1411. union
  1412. {
  1413. IN DWORD dwDeviceID;
  1414. };
  1415. union
  1416. {
  1417. IN DWORD dwAPIVersion;
  1418. };
  1419. union
  1420. {
  1421. IN DWORD dwExtVersion;
  1422. };
  1423. union
  1424. {
  1425. IN DWORD dwDevCapsTotalSize; // size of client buffer
  1426. OUT DWORD dwDevCapsOffset; // valid offset on success
  1427. };
  1428. } LINEGETDEVCAPS_PARAMS, *PLINEGETDEVCAPS_PARAMS;
  1429. typedef struct _LINEGETDEVCONFIG_PARAMS
  1430. {
  1431. union
  1432. {
  1433. OUT LONG lResult;
  1434. };
  1435. DWORD dwUnused;
  1436. union
  1437. {
  1438. IN DWORD dwDeviceID;
  1439. };
  1440. union
  1441. {
  1442. IN DWORD dwDeviceConfigTotalSize; // size of client buffer
  1443. OUT DWORD dwDeviceConfigOffset; // valid offset on success
  1444. };
  1445. union
  1446. {
  1447. IN DWORD dwDeviceClassOffset; // always valid offset
  1448. };
  1449. } LINEGETDEVCONFIG_PARAMS, *PLINEGETDEVCONFIG_PARAMS;
  1450. typedef struct _LINEGETGROUPLIST_PARAMS
  1451. {
  1452. union
  1453. {
  1454. OUT LONG lResult;
  1455. };
  1456. DWORD dwUnused;
  1457. union
  1458. {
  1459. IN DWORD dwRemoteRequestID;
  1460. };
  1461. IN DWORD hfnPostProcessProc;
  1462. union
  1463. {
  1464. IN HLINE hLine;
  1465. };
  1466. // IN ULONG_PTR lpGroupList; // pointer to client buffer
  1467. IN DWORD hpGroupList; // pointer to client buffer
  1468. union
  1469. {
  1470. IN DWORD dwGroupListTotalSize;
  1471. };
  1472. } LINEGETGROUPLIST_PARAMS, *PLINEGETGROUPLIST_PARAMS;
  1473. typedef struct _LINEGETHUBRELATEDCALLS_PARAMS
  1474. {
  1475. union
  1476. {
  1477. OUT LONG lResult;
  1478. };
  1479. DWORD dwUnused;
  1480. union
  1481. {
  1482. IN HCALLHUB hCallHub;
  1483. };
  1484. union
  1485. {
  1486. IN HCALL hCall;
  1487. };
  1488. union
  1489. {
  1490. IN DWORD dwCallListTotalSize; // size of client buffer
  1491. OUT DWORD dwCallListOffset; // valid offset on success
  1492. };
  1493. } LINEGETHUBRELATEDCALLS_PARAMS, *PLINEGETHUBRELATEDCALLS_PARAMS;
  1494. typedef struct _LINEGETICON_PARAMS
  1495. {
  1496. OUT LONG lResult;
  1497. DWORD dwUnused;
  1498. IN DWORD dwDeviceID;
  1499. IN DWORD dwDeviceClassOffset; // valid offset or
  1500. OUT HICON hIcon;
  1501. } LINEGETICON_PARAMS, *PLINEGETICON_PARAMS;
  1502. typedef struct _LINEGETID_PARAMS
  1503. {
  1504. union
  1505. {
  1506. OUT LONG lResult;
  1507. };
  1508. DWORD dwUnused;
  1509. union
  1510. {
  1511. IN HLINE hLine;
  1512. };
  1513. union
  1514. {
  1515. IN DWORD dwAddressID;
  1516. };
  1517. union
  1518. {
  1519. IN DWORD hCall;
  1520. };
  1521. union
  1522. {
  1523. IN DWORD dwSelect;
  1524. };
  1525. union
  1526. {
  1527. IN DWORD dwDeviceIDTotalSize; // size of client buffer
  1528. OUT DWORD dwDeviceIDOffset; // valid offset on success
  1529. };
  1530. union
  1531. {
  1532. IN DWORD dwDeviceClassOffset; // always valid offset
  1533. };
  1534. } LINEGETID_PARAMS, *PLINEGETID_PARAMS;
  1535. typedef struct _LINEGETLINEDEVSTATUS_PARAMS
  1536. {
  1537. union
  1538. {
  1539. OUT LONG lResult;
  1540. };
  1541. DWORD dwUnused;
  1542. union
  1543. {
  1544. IN HLINE hLine;
  1545. };
  1546. union
  1547. {
  1548. IN DWORD dwLineDevStatusTotalSize; // size of client buffer
  1549. OUT DWORD dwLineDevStatusOffset; // valid offset on success
  1550. };
  1551. union
  1552. {
  1553. OUT DWORD dwAPIVersion;
  1554. };
  1555. } LINEGETLINEDEVSTATUS_PARAMS, *PLINEGETLINEDEVSTATUS_PARAMS;
  1556. typedef struct _LINEGETPROXYSTATUS_PARAMS
  1557. {
  1558. union
  1559. {
  1560. OUT LONG lResult;
  1561. };
  1562. DWORD dwUnused;
  1563. union
  1564. {
  1565. IN HLINEAPP hLineApp;
  1566. };
  1567. union
  1568. {
  1569. IN DWORD dwDeviceID;
  1570. };
  1571. union
  1572. {
  1573. IN DWORD dwAppAPIVersion;
  1574. };
  1575. union
  1576. {
  1577. IN DWORD dwProxyStatusTotalSize; // size of client buffer
  1578. OUT DWORD dwProxyStatusOffset; // valid offset on success
  1579. };
  1580. union
  1581. {
  1582. OUT DWORD dwAPIVersion;
  1583. };
  1584. } LINEGETPROXYSTATUS_PARAMS, *PLINEGETPROXYSTATUS_PARAMS;
  1585. typedef struct _LINEGETNEWCALLS_PARAMS
  1586. {
  1587. union
  1588. {
  1589. OUT LONG lResult;
  1590. };
  1591. DWORD dwUnused;
  1592. union
  1593. {
  1594. IN HLINE hLine;
  1595. };
  1596. union
  1597. {
  1598. IN DWORD dwAddressID;
  1599. };
  1600. union
  1601. {
  1602. IN DWORD dwSelect;
  1603. };
  1604. union
  1605. {
  1606. IN DWORD dwCallListTotalSize; // size of client buffer
  1607. OUT DWORD dwCallListOffset; // valid offset on success
  1608. };
  1609. } LINEGETNEWCALLS_PARAMS, *PLINEGETNEWCALLS_PARAMS;
  1610. typedef struct _LINEGETNUMADDRESSIDS_PARAMS
  1611. {
  1612. union
  1613. {
  1614. OUT LONG lResult;
  1615. };
  1616. DWORD dwUnused;
  1617. union
  1618. {
  1619. IN HLINE hLine;
  1620. };
  1621. union
  1622. {
  1623. OUT DWORD dwNumAddresses;
  1624. };
  1625. } LINEGETNUMADDRESSIDS_PARAMS, *PLINEGETNUMADDRESSIDS_PARAMS;
  1626. typedef struct _LINEGETNUMRINGS_PARAMS
  1627. {
  1628. union
  1629. {
  1630. OUT LONG lResult;
  1631. };
  1632. DWORD dwUnused;
  1633. union
  1634. {
  1635. IN HLINE hLine;
  1636. };
  1637. union
  1638. {
  1639. IN DWORD dwAddressID;
  1640. };
  1641. union
  1642. {
  1643. OUT DWORD dwNumRings;
  1644. };
  1645. } LINEGETNUMRINGS_PARAMS, *PLINEGETNUMRINGS_PARAMS;
  1646. typedef struct _LINEGETPROVIDERLIST_PARAMS
  1647. {
  1648. union
  1649. {
  1650. OUT LONG lResult;
  1651. };
  1652. DWORD dwUnused;
  1653. union
  1654. {
  1655. IN DWORD dwAPIVersion;
  1656. };
  1657. union
  1658. {
  1659. IN DWORD dwProviderListTotalSize; // size of client buf
  1660. OUT DWORD dwProviderListOffset; // valid offset on success
  1661. };
  1662. } LINEGETPROVIDERLIST_PARAMS, *PLINEGETPROVIDERLIST_PARAMS;
  1663. typedef struct _LINEGETQUEUEINFO_PARAMS
  1664. {
  1665. union
  1666. {
  1667. OUT LONG lResult;
  1668. };
  1669. DWORD dwUnused;
  1670. union
  1671. {
  1672. IN DWORD dwRemoteRequestID;
  1673. };
  1674. IN DWORD hfnPostProcessProc;
  1675. union
  1676. {
  1677. IN HLINE hLine;
  1678. };
  1679. union
  1680. {
  1681. IN DWORD dwQueueID;
  1682. };
  1683. // IN ULONG_PTR lpQueueInfo; // pointer to client buffer
  1684. IN DWORD phQueueInfo; // pointer to client buffer
  1685. union
  1686. {
  1687. IN DWORD dwQueueInfoTotalSize;
  1688. };
  1689. } LINEGETQUEUEINFO_PARAMS, *PLINEGETQUEUEINFO_PARAMS;
  1690. typedef struct _LINEGETQUEUELIST_PARAMS
  1691. {
  1692. union
  1693. {
  1694. OUT LONG lResult;
  1695. };
  1696. DWORD dwUnused;
  1697. union
  1698. {
  1699. IN DWORD dwRemoteRequestID;
  1700. };
  1701. IN DWORD hfnPostProcessProc;
  1702. union
  1703. {
  1704. IN HLINE hLine;
  1705. };
  1706. union
  1707. {
  1708. IN DWORD dwGroupIDOffset;
  1709. };
  1710. union
  1711. {
  1712. IN DWORD dwGroupIDSize;
  1713. };
  1714. //IN ULONG_PTR lpQueueList; // pointer to client buffer
  1715. IN DWORD hpQueueList; // pointer to client buffer
  1716. union
  1717. {
  1718. IN DWORD dwQueueListTotalSize;
  1719. };
  1720. } LINEGETQUEUELIST_PARAMS, *PLINEGETQUEUELIST_PARAMS;
  1721. typedef struct _LINEGETREQUEST_PARAMS
  1722. {
  1723. union
  1724. {
  1725. OUT LONG lResult;
  1726. };
  1727. DWORD dwUnused;
  1728. union
  1729. {
  1730. IN HLINEAPP hLineApp;
  1731. };
  1732. union
  1733. {
  1734. IN DWORD dwRequestMode;
  1735. };
  1736. union
  1737. {
  1738. OUT DWORD dwRequestBufferOffset; // valid offset on success
  1739. };
  1740. union
  1741. {
  1742. IN OUT DWORD dwSize;
  1743. };
  1744. } LINEGETREQUEST_PARAMS, *PLINEGETREQUEST_PARAMS;
  1745. typedef struct _LINEGETSTATUSMESSAGES_PARAMS
  1746. {
  1747. union
  1748. {
  1749. OUT LONG lResult;
  1750. };
  1751. DWORD dwUnused;
  1752. union
  1753. {
  1754. IN HLINE hLine;
  1755. };
  1756. union
  1757. {
  1758. OUT DWORD dwLineStates;
  1759. };
  1760. union
  1761. {
  1762. OUT DWORD dwAddressStates;
  1763. };
  1764. } LINEGETSTATUSMESSAGES_PARAMS, *PLINEGETSTATUSMESSAGES_PARAMS;
  1765. typedef struct _LINEHANDOFF_PARAMS
  1766. {
  1767. union
  1768. {
  1769. OUT LONG lResult;
  1770. };
  1771. DWORD dwUnused;
  1772. union
  1773. {
  1774. IN HCALL hCall;
  1775. };
  1776. union
  1777. {
  1778. IN DWORD dwFileNameOffset; // valid offset or
  1779. };
  1780. union
  1781. {
  1782. IN DWORD dwMediaMode;
  1783. };
  1784. } LINEHANDOFF_PARAMS, *PLINEHANDOFF_PARAMS;
  1785. typedef struct _LINEHOLD_PARAMS
  1786. {
  1787. union
  1788. {
  1789. OUT LONG lResult;
  1790. };
  1791. DWORD dwUnused;
  1792. union
  1793. {
  1794. IN DWORD dwRemoteRequestID;
  1795. };
  1796. union
  1797. {
  1798. IN HCALL hCall;
  1799. };
  1800. } LINEHOLD_PARAMS, *PLINEHOLD_PARAMS;
  1801. typedef struct _LINEINITIALIZE_PARAMS
  1802. {
  1803. union
  1804. {
  1805. OUT LONG lResult;
  1806. };
  1807. DWORD dwUnused;
  1808. union
  1809. {
  1810. OUT HLINEAPP hLineApp;
  1811. };
  1812. union
  1813. {
  1814. IN DWORD hInstance;
  1815. };
  1816. union
  1817. {
  1818. IN DWORD InitContext;
  1819. };
  1820. union
  1821. {
  1822. IN DWORD dwFriendlyNameOffset; // always valid offset
  1823. };
  1824. union
  1825. {
  1826. OUT DWORD dwNumDevs;
  1827. };
  1828. union
  1829. {
  1830. IN DWORD dwModuleNameOffset; // always valid offset
  1831. };
  1832. union
  1833. {
  1834. IN DWORD dwAPIVersion;
  1835. };
  1836. } LINEINITIALIZE_PARAMS, *PLINEINITIALIZE_PARAMS;
  1837. typedef struct _LINEMAKECALL_PARAMS
  1838. {
  1839. union
  1840. {
  1841. OUT LONG lResult;
  1842. };
  1843. DWORD dwUnused;
  1844. union
  1845. {
  1846. IN DWORD dwRemoteRequestID;
  1847. };
  1848. IN DWORD hfnPostProcessProc;
  1849. union
  1850. {
  1851. IN HLINE hLine;
  1852. };
  1853. IN DWORD hpCall;
  1854. union
  1855. {
  1856. IN DWORD dwDestAddressOffset; // valid offset or
  1857. };
  1858. union
  1859. {
  1860. IN DWORD dwCountryCode;
  1861. };
  1862. union
  1863. {
  1864. IN DWORD dwCallParamsOffset; // valid offset or
  1865. };
  1866. union
  1867. {
  1868. IN DWORD dwAsciiCallParamsCodePage;
  1869. };
  1870. } LINEMAKECALL_PARAMS, *PLINEMAKECALL_PARAMS;
  1871. typedef struct _LINEMONITORDIGITS_PARAMS
  1872. {
  1873. union
  1874. {
  1875. OUT LONG lResult;
  1876. };
  1877. DWORD dwUnused;
  1878. union
  1879. {
  1880. IN HCALL hCall;
  1881. };
  1882. union
  1883. {
  1884. IN DWORD dwDigitModes;
  1885. };
  1886. } LINEMONITORDIGITS_PARAMS, *PLINEMONITORDIGITS_PARAMS;
  1887. typedef struct _LINEMONITORMEDIA_PARAMS
  1888. {
  1889. union
  1890. {
  1891. OUT LONG lResult;
  1892. };
  1893. DWORD dwUnused;
  1894. union
  1895. {
  1896. IN HCALL hCall;
  1897. };
  1898. union
  1899. {
  1900. IN DWORD dwMediaModes;
  1901. };
  1902. } LINEMONITORMEDIA_PARAMS, *PLINEMONITORMEDIA_PARAMS;
  1903. typedef struct _LINEMONITORTONES_PARAMS
  1904. {
  1905. union
  1906. {
  1907. OUT LONG lResult;
  1908. };
  1909. DWORD dwUnused;
  1910. union
  1911. {
  1912. IN HCALL hCall;
  1913. };
  1914. union
  1915. {
  1916. IN DWORD dwTonesOffset; // valid offset or
  1917. };
  1918. union
  1919. {
  1920. IN DWORD dwNumEntries; // really dwNumEntries *
  1921. };
  1922. union
  1923. {
  1924. IN DWORD dwToneListID; // Used for remotesp only
  1925. };
  1926. } LINEMONITORTONES_PARAMS, *PLINEMONITORTONES_PARAMS;
  1927. typedef struct _LINENEGOTIATEAPIVERSION_PARAMS
  1928. {
  1929. union
  1930. {
  1931. OUT LONG lResult;
  1932. };
  1933. DWORD dwUnused;
  1934. union
  1935. {
  1936. IN HLINEAPP hLineApp;
  1937. };
  1938. union
  1939. {
  1940. IN DWORD dwDeviceID;
  1941. };
  1942. union
  1943. {
  1944. IN DWORD dwAPILowVersion;
  1945. };
  1946. union
  1947. {
  1948. IN DWORD dwAPIHighVersion;
  1949. };
  1950. union
  1951. {
  1952. OUT DWORD dwAPIVersion;
  1953. };
  1954. union
  1955. {
  1956. OUT DWORD dwExtensionIDOffset; // valid offset on success
  1957. };
  1958. union
  1959. {
  1960. IN OUT DWORD dwSize;
  1961. };
  1962. } LINENEGOTIATEAPIVERSION_PARAMS, *PLINENEGOTIATEAPIVERSION_PARAMS;
  1963. typedef struct _NEGOTIATEAPIVERSIONFORALLDEVICES_PARAMS
  1964. {
  1965. union
  1966. {
  1967. OUT LONG lResult;
  1968. };
  1969. DWORD dwUnused;
  1970. union
  1971. {
  1972. IN HLINEAPP hLineApp;
  1973. };
  1974. union
  1975. {
  1976. IN DWORD dwNumLineDevices;
  1977. };
  1978. union
  1979. {
  1980. IN DWORD dwNumPhoneDevices;
  1981. };
  1982. union
  1983. {
  1984. IN DWORD dwAPIHighVersion;
  1985. };
  1986. union
  1987. {
  1988. OUT DWORD dwLineAPIVersionListOffset; // valid offset on success
  1989. };
  1990. union
  1991. {
  1992. IN OUT DWORD dwLineAPIVersionListSize;
  1993. };
  1994. union
  1995. {
  1996. OUT DWORD dwLineExtensionIDListOffset;// valid offset on success
  1997. };
  1998. union
  1999. {
  2000. IN OUT DWORD dwLineExtensionIDListSize;
  2001. };
  2002. union
  2003. {
  2004. OUT DWORD dwPhoneAPIVersionListOffset;// valid offset on success
  2005. };
  2006. union
  2007. {
  2008. IN OUT DWORD dwPhoneAPIVersionListSize;
  2009. };
  2010. union
  2011. {
  2012. OUT DWORD dwPhoneExtensionIDListOffset;// valid offset on success
  2013. };
  2014. union
  2015. {
  2016. IN OUT DWORD dwPhoneExtensionIDListSize;
  2017. };
  2018. } NEGOTIATEAPIVERSIONFORALLDEVICES_PARAMS,
  2019. *PNEGOTIATEAPIVERSIONFORALLDEVICES_PARAMS;
  2020. typedef struct _LINENEGOTIATEEXTVERSION_PARAMS
  2021. {
  2022. union
  2023. {
  2024. OUT LONG lResult;
  2025. };
  2026. DWORD dwUnused;
  2027. union
  2028. {
  2029. IN HLINEAPP hLineApp;
  2030. };
  2031. union
  2032. {
  2033. IN DWORD dwDeviceID;
  2034. };
  2035. union
  2036. {
  2037. IN DWORD dwAPIVersion;
  2038. };
  2039. union
  2040. {
  2041. IN DWORD dwExtLowVersion;
  2042. };
  2043. union
  2044. {
  2045. IN DWORD dwExtHighVersion;
  2046. };
  2047. union
  2048. {
  2049. OUT DWORD dwExtVersion;
  2050. };
  2051. } LINENEGOTIATEEXTVERSION_PARAMS, *PLINENEGOTIATEEXTVERSION_PARAMS;
  2052. typedef struct _LINEOPEN_PARAMS
  2053. {
  2054. union
  2055. {
  2056. OUT LONG lResult;
  2057. };
  2058. DWORD dwUnused;
  2059. union
  2060. {
  2061. IN HLINEAPP hLineApp;
  2062. };
  2063. union
  2064. {
  2065. IN DWORD dwDeviceID;
  2066. };
  2067. union
  2068. {
  2069. OUT DWORD hLine;
  2070. };
  2071. union
  2072. {
  2073. IN DWORD dwAPIVersion;
  2074. };
  2075. union
  2076. {
  2077. IN DWORD dwExtVersion;
  2078. };
  2079. IN DWORD OpenContext;
  2080. union
  2081. {
  2082. IN DWORD dwPrivileges;
  2083. };
  2084. union
  2085. {
  2086. IN DWORD dwMediaModes;
  2087. };
  2088. union
  2089. {
  2090. IN DWORD dwCallParamsOffset; // valid offset or
  2091. };
  2092. union
  2093. {
  2094. IN DWORD dwAsciiCallParamsCodePage;
  2095. };
  2096. union
  2097. {
  2098. IN DWORD dwCallParamsReturnTotalSize;// size of client buffer
  2099. OUT DWORD dwCallParamsReturnOffset; // valid offset on success
  2100. };
  2101. //
  2102. // The following is a "remote line handle". When the client is
  2103. // remotesp.tsp running on a remote machine, this will be some
  2104. // non-NULL value, and tapisrv should use this handle in status/etc
  2105. // indications to the client rather than the std hLine. If the
  2106. // client is not remote.tsp then this value will be NULL.
  2107. //
  2108. union
  2109. {
  2110. IN HLINE hRemoteLine;
  2111. };
  2112. } LINEOPEN_PARAMS, *PLINEOPEN_PARAMS;
  2113. typedef struct _LINEPARK_PARAMS
  2114. {
  2115. union
  2116. {
  2117. OUT LONG lResult;
  2118. };
  2119. DWORD dwUnused;
  2120. union
  2121. {
  2122. IN DWORD dwRemoteRequestID;
  2123. };
  2124. IN DWORD hfnPostProcessProc;
  2125. union
  2126. {
  2127. IN HCALL hCall;
  2128. };
  2129. union
  2130. {
  2131. IN DWORD dwParkMode;
  2132. };
  2133. union
  2134. {
  2135. IN DWORD dwDirAddressOffset; // valid offset or
  2136. };
  2137. // TAPI_NO_DATA
  2138. // IN ULONG_PTR lpNonDirAddress; // pointer to client buffer
  2139. IN DWORD hpNonDirAddress; // pointer to client buffer
  2140. union
  2141. {
  2142. IN DWORD dwNonDirAddressTotalSize; // size of client buffer
  2143. // for sync func would be
  2144. // dwXxxOffset
  2145. };
  2146. } LINEPARK_PARAMS, *PLINEPARK_PARAMS;
  2147. typedef struct _LINEPICKUP_PARAMS
  2148. {
  2149. union
  2150. {
  2151. OUT LONG lResult;
  2152. };
  2153. DWORD dwUnused;
  2154. union
  2155. {
  2156. IN DWORD dwRemoteRequestID;
  2157. };
  2158. IN DWORD hfnPostProcessProc;
  2159. union
  2160. {
  2161. IN HLINE hLine;
  2162. };
  2163. union
  2164. {
  2165. IN DWORD dwAddressID;
  2166. };
  2167. // IN ULONG_PTR lphCall; // pointer to client buffer
  2168. IN DWORD hpCall; // pointer to client buffer
  2169. union
  2170. {
  2171. IN DWORD dwDestAddressOffset; // valid offset or
  2172. };
  2173. union
  2174. {
  2175. IN DWORD dwGroupIDOffset; // always valid offset
  2176. };
  2177. } LINEPICKUP_PARAMS, *PLINEPICKUP_PARAMS;
  2178. typedef struct _LINEPREPAREADDTOCONFERENCE_PARAMS
  2179. {
  2180. union
  2181. {
  2182. OUT LONG lResult;
  2183. };
  2184. DWORD dwUnused;
  2185. union
  2186. {
  2187. IN DWORD dwRemoteRequestID;
  2188. };
  2189. IN DWORD hfnPostProcessProc;
  2190. union
  2191. {
  2192. IN HCALL hConfCall;
  2193. };
  2194. // IN ULONG_PTR lphConsultCall; // pointer to client buffer
  2195. IN DWORD hpConsultCall; // pointer to client buffer
  2196. union
  2197. {
  2198. IN DWORD dwCallParamsOffset; // valid offset or
  2199. };
  2200. union
  2201. {
  2202. IN DWORD dwAsciiCallParamsCodePage;
  2203. };
  2204. } LINEPREPAREADDTOCONFERENCE_PARAMS, *PLINEPREPAREADDTOCONFERENCE_PARAMS;
  2205. typedef struct _LINEPROXYMESSAGE_PARAMS
  2206. {
  2207. union
  2208. {
  2209. OUT LONG lResult;
  2210. };
  2211. DWORD dwUnused;
  2212. union
  2213. {
  2214. IN HLINE hLine;
  2215. };
  2216. union
  2217. {
  2218. IN HCALL hCall;
  2219. };
  2220. union
  2221. {
  2222. IN DWORD dwMsg;
  2223. };
  2224. union
  2225. {
  2226. IN DWORD dwParam1;
  2227. };
  2228. union
  2229. {
  2230. IN DWORD dwParam2;
  2231. };
  2232. union
  2233. {
  2234. IN DWORD dwParam3;
  2235. };
  2236. } LINEPROXYMESSAGE_PARAMS, *PLINEPROXYMESSAGE_PARAMS;
  2237. typedef struct _LINEPROXYRESPONSE_PARAMS
  2238. {
  2239. union
  2240. {
  2241. OUT LONG lResult;
  2242. };
  2243. DWORD dwUnused;
  2244. union
  2245. {
  2246. IN HLINE hLine;
  2247. };
  2248. union
  2249. {
  2250. IN DWORD dwInstance;
  2251. };
  2252. union
  2253. {
  2254. IN DWORD dwProxyResponseOffset; // valid offset or
  2255. };
  2256. union
  2257. {
  2258. IN DWORD dwResult;
  2259. };
  2260. } LINEPROXYRESPONSE_PARAMS, *PLINEPROXYRESPONSE_PARAMS;
  2261. typedef struct _LINEREDIRECT_PARAMS
  2262. {
  2263. union
  2264. {
  2265. OUT LONG lResult;
  2266. };
  2267. DWORD dwUnused;
  2268. union
  2269. {
  2270. IN DWORD dwRemoteRequestID;
  2271. };
  2272. union
  2273. {
  2274. IN HCALL hCall;
  2275. };
  2276. union
  2277. {
  2278. IN DWORD dwDestAddressOffset; // always valid offset
  2279. };
  2280. union
  2281. {
  2282. IN DWORD dwCountryCode;
  2283. };
  2284. } LINEREDIRECT_PARAMS, *PLINEREDIRECT_PARAMS;
  2285. typedef struct _LINEREGISTERREQUESTRECIPIENT_PARAMS
  2286. {
  2287. union
  2288. {
  2289. OUT LONG lResult;
  2290. };
  2291. DWORD dwUnused;
  2292. union
  2293. {
  2294. IN HLINEAPP hLineApp;
  2295. };
  2296. union
  2297. {
  2298. IN DWORD dwRegistrationInstance;
  2299. };
  2300. union
  2301. {
  2302. IN DWORD dwRequestMode;
  2303. };
  2304. union
  2305. {
  2306. IN DWORD bEnable;
  2307. };
  2308. } LINEREGISTERREQUESTRECIPIENT_PARAMS, *PLINEREGISTERREQUESTRECIPIENT_PARAMS;
  2309. typedef struct _LINERELEASEUSERUSERINFO_PARAMS
  2310. {
  2311. union
  2312. {
  2313. OUT LONG lResult;
  2314. };
  2315. DWORD dwUnused;
  2316. union
  2317. {
  2318. IN HCALL hCall;
  2319. };
  2320. } LINERELEASEUSERUSERINFO_PARAMS, *PLINERELEASEUSERUSERINFO_PARAMS;
  2321. typedef struct _LINEREMOVEFROMCONFERENCE_PARAMS
  2322. {
  2323. union
  2324. {
  2325. OUT LONG lResult;
  2326. };
  2327. DWORD dwUnused;
  2328. union
  2329. {
  2330. IN DWORD dwRemoteRequestID;
  2331. };
  2332. union
  2333. {
  2334. IN HCALL hCall;
  2335. };
  2336. } LINEREMOVEFROMCONFERENCE_PARAMS, *PLINEREMOVEFROMCONFERENCE_PARAMS;
  2337. typedef struct _LINESECURECALL_PARAMS
  2338. {
  2339. union
  2340. {
  2341. OUT LONG lResult;
  2342. };
  2343. DWORD dwUnused;
  2344. union
  2345. {
  2346. IN DWORD dwRemoteRequestID;
  2347. };
  2348. union
  2349. {
  2350. IN HCALL hCall;
  2351. };
  2352. } LINESECURECALL_PARAMS, *PLINESECURECALL_PARAMS;
  2353. typedef struct _LINESELECTEXTVERSION_PARAMS
  2354. {
  2355. union
  2356. {
  2357. OUT LONG lResult;
  2358. };
  2359. DWORD dwUnused;
  2360. union
  2361. {
  2362. IN HLINE hLine;
  2363. };
  2364. union
  2365. {
  2366. IN DWORD dwExtVersion;
  2367. };
  2368. } LINESELECTEXTVERSION_PARAMS, *PLINESELECTEXTVERSION_PARAMS;
  2369. typedef struct _LINESENDUSERUSERINFO_PARAMS
  2370. {
  2371. union
  2372. {
  2373. OUT LONG lResult;
  2374. };
  2375. DWORD dwUnused;
  2376. union
  2377. {
  2378. IN DWORD dwRemoteRequestID;
  2379. };
  2380. union
  2381. {
  2382. IN HCALL hCall;
  2383. };
  2384. union
  2385. {
  2386. IN DWORD dwUserUserInfoOffset; // valid offset or
  2387. };
  2388. union
  2389. {
  2390. IN DWORD dwSize;
  2391. };
  2392. } LINESENDUSERUSERINFO_PARAMS, *PLINESENDUSERUSERINFO_PARAMS;
  2393. typedef struct _LINESETAGENTACTIVITY_PARAMS
  2394. {
  2395. union
  2396. {
  2397. OUT LONG lResult;
  2398. };
  2399. DWORD dwUnused;
  2400. union
  2401. {
  2402. IN DWORD dwRemoteRequestID;
  2403. };
  2404. union
  2405. {
  2406. IN HLINE hLine;
  2407. };
  2408. union
  2409. {
  2410. IN DWORD dwAddressID;
  2411. };
  2412. union
  2413. {
  2414. IN DWORD dwActivityID;
  2415. };
  2416. } LINESETAGENTACTIVITY_PARAMS, *PLINESETAGENTACTIVITY_PARAMS;
  2417. typedef struct _LINESETAGENTGROUP_PARAMS
  2418. {
  2419. union
  2420. {
  2421. OUT LONG lResult;
  2422. };
  2423. DWORD dwUnused;
  2424. union
  2425. {
  2426. IN DWORD dwRemoteRequestID;
  2427. };
  2428. union
  2429. {
  2430. IN HLINE hLine;
  2431. };
  2432. union
  2433. {
  2434. IN DWORD dwAddressID;
  2435. };
  2436. union
  2437. {
  2438. IN DWORD dwAgentGroupListOffset;
  2439. };
  2440. } LINESETAGENTGROUP_PARAMS, *PLINESETAGENTGROUP_PARAMS;
  2441. typedef struct _LINESETAGENTMEASUREMENTPERIOD_PARAMS
  2442. {
  2443. union
  2444. {
  2445. OUT LONG lResult;
  2446. };
  2447. DWORD dwUnused;
  2448. union
  2449. {
  2450. IN DWORD dwRemoteRequestID;
  2451. };
  2452. union
  2453. {
  2454. IN HLINE hLine;
  2455. };
  2456. union
  2457. {
  2458. IN HAGENT hAgent;
  2459. };
  2460. union
  2461. {
  2462. IN DWORD dwMeasurementPeriod;
  2463. };
  2464. } LINESETAGENTMEASUREMENTPERIOD_PARAMS, *PLINESETAGENTMEASUREMENTPERIOD_PARAMS;
  2465. typedef struct _LINESETAGENTSESSIONSTATE_PARAMS
  2466. {
  2467. union
  2468. {
  2469. OUT LONG lResult;
  2470. };
  2471. DWORD dwUnused;
  2472. union
  2473. {
  2474. IN DWORD dwRemoteRequestID;
  2475. };
  2476. union
  2477. {
  2478. IN HLINE hLine;
  2479. };
  2480. union
  2481. {
  2482. IN HAGENTSESSION hAgentSession;
  2483. };
  2484. union
  2485. {
  2486. IN DWORD dwAgentState;
  2487. };
  2488. union
  2489. {
  2490. IN DWORD dwNextAgentState;
  2491. };
  2492. } LINESETAGENTSESSIONSTATE_PARAMS, *PLINESETAGENTSESSIONSTATE_PARAMS;
  2493. typedef struct _LINESETAGENTSTATE_PARAMS
  2494. {
  2495. union
  2496. {
  2497. OUT LONG lResult;
  2498. };
  2499. DWORD dwUnused;
  2500. union
  2501. {
  2502. IN DWORD dwRemoteRequestID;
  2503. };
  2504. union
  2505. {
  2506. IN HLINE hLine;
  2507. };
  2508. union
  2509. {
  2510. IN DWORD dwAddressID;
  2511. };
  2512. union
  2513. {
  2514. IN DWORD dwAgentState;
  2515. };
  2516. union
  2517. {
  2518. IN DWORD dwNextAgentState;
  2519. };
  2520. } LINESETAGENTSTATE_PARAMS, *PLINESETAGENTSTATE_PARAMS;
  2521. typedef struct _LINESETAGENTSTATEEX_PARAMS
  2522. {
  2523. union
  2524. {
  2525. OUT LONG lResult;
  2526. };
  2527. DWORD dwUnused;
  2528. union
  2529. {
  2530. IN DWORD dwRemoteRequestID;
  2531. };
  2532. union
  2533. {
  2534. IN HLINE hLine;
  2535. };
  2536. union
  2537. {
  2538. IN HAGENT hAgent;
  2539. };
  2540. union
  2541. {
  2542. IN DWORD dwAgentState;
  2543. };
  2544. union
  2545. {
  2546. IN DWORD dwNextAgentState;
  2547. };
  2548. } LINESETAGENTSTATEEX_PARAMS, *PLINESETAGENTSTATEEX_PARAMS;
  2549. typedef struct _LINESETAPPPRIORITY_PARAMS
  2550. {
  2551. union
  2552. {
  2553. OUT LONG lResult;
  2554. };
  2555. DWORD dwUnused;
  2556. union
  2557. {
  2558. IN DWORD dwAppNameOffset; // always valid offset
  2559. };
  2560. union
  2561. {
  2562. IN DWORD dwMediaMode;
  2563. };
  2564. union
  2565. {
  2566. IN DWORD dwExtensionIDOffset; // valid offset or
  2567. };
  2568. // IN ULONG_PTR _Unused_; // padding for Size type on
  2569. IN DWORD _Unused_; // padding for Size type on
  2570. // client side
  2571. union
  2572. {
  2573. IN DWORD dwRequestMode;
  2574. };
  2575. union
  2576. {
  2577. IN DWORD dwExtensionNameOffset; // valid offset or
  2578. };
  2579. union
  2580. {
  2581. IN DWORD dwPriority;
  2582. };
  2583. } LINESETAPPPRIORITY_PARAMS, *PLINESETAPPPRIORITY_PARAMS;
  2584. typedef struct _LINESETAPPSPECIFIC_PARAMS
  2585. {
  2586. union
  2587. {
  2588. OUT LONG lResult;
  2589. };
  2590. DWORD dwUnused;
  2591. union
  2592. {
  2593. IN HCALL hCall;
  2594. };
  2595. union
  2596. {
  2597. IN DWORD dwAppSpecific;
  2598. };
  2599. } LINESETAPPSPECIFIC_PARAMS, *PLINESETAPPSPECIFIC_PARAMS;
  2600. typedef struct _LINESETCALLDATA_PARAMS
  2601. {
  2602. union
  2603. {
  2604. OUT LONG lResult;
  2605. };
  2606. DWORD dwUnused;
  2607. union
  2608. {
  2609. IN DWORD dwRemoteRequestID;
  2610. };
  2611. union
  2612. {
  2613. IN HCALL hCall;
  2614. };
  2615. union
  2616. {
  2617. IN DWORD dwCallDataOffset; // valid offset or
  2618. };
  2619. union
  2620. {
  2621. IN DWORD dwCallDataSize;
  2622. };
  2623. } LINESETCALLDATA_PARAMS, *PLINESETCALLDATA_PARAMS;
  2624. typedef struct _LINESETCALLHUBTRACKING_PARAMS
  2625. {
  2626. union
  2627. {
  2628. OUT LONG lResult;
  2629. };
  2630. DWORD dwUnused;
  2631. union
  2632. {
  2633. IN HLINE hLine;
  2634. };
  2635. union
  2636. {
  2637. IN DWORD dwTrackingInfoOffset; // always valid offset
  2638. };
  2639. } LINESETCALLHUBTRACKING_PARAMS, *PLINESETCALLHUBTRACKING_PARAMS;
  2640. typedef struct _LINESETCALLPARAMS_PARAMS
  2641. {
  2642. union
  2643. {
  2644. OUT LONG lResult;
  2645. };
  2646. DWORD dwUnused;
  2647. union
  2648. {
  2649. IN DWORD dwRemoteRequestID;
  2650. };
  2651. union
  2652. {
  2653. IN HCALL hCall;
  2654. };
  2655. union
  2656. {
  2657. IN DWORD dwBearerMode;
  2658. };
  2659. union
  2660. {
  2661. IN DWORD dwMinRate;
  2662. };
  2663. union
  2664. {
  2665. IN DWORD dwMaxRate;
  2666. };
  2667. union
  2668. {
  2669. IN DWORD dwDialParamsOffset; // valid offset or
  2670. };
  2671. // IN ULONG_PTR _Unused_; // placeholdr for following
  2672. IN DWORD _Unused_; // placeholdr for following
  2673. // Size arg on clnt side
  2674. } LINESETCALLPARAMS_PARAMS, *PLINESETCALLPARAMS_PARAMS;
  2675. typedef struct _LINESETCALLPRIVILEGE_PARAMS
  2676. {
  2677. union
  2678. {
  2679. OUT LONG lResult;
  2680. };
  2681. DWORD dwUnused;
  2682. union
  2683. {
  2684. IN HCALL hCall;
  2685. };
  2686. union
  2687. {
  2688. IN DWORD dwPrivilege;
  2689. };
  2690. } LINESETCALLPRIVILEGE_PARAMS, *PLINESETCALLPRIVILEGE_PARAMS;
  2691. typedef struct _LINESETCALLQUALITYOFSERVICE_PARAMS
  2692. {
  2693. union
  2694. {
  2695. OUT LONG lResult;
  2696. };
  2697. DWORD dwUnused;
  2698. union
  2699. {
  2700. IN DWORD dwRemoteRequestID;
  2701. };
  2702. union
  2703. {
  2704. IN HCALL hCall;
  2705. };
  2706. union
  2707. {
  2708. IN DWORD dwSendingFlowspecOffset; // always valid offset
  2709. };
  2710. union
  2711. {
  2712. IN DWORD dwSendingFlowspecSize;
  2713. };
  2714. union
  2715. {
  2716. IN DWORD dwReceivingFlowspecOffset; // always valid offset
  2717. };
  2718. union
  2719. {
  2720. IN DWORD dwReceivingFlowspecSize;
  2721. };
  2722. } LINESETCALLQUALITYOFSERVICE_PARAMS, *PLINESETCALLQUALITYOFSERVICE_PARAMS;
  2723. typedef struct _LINESETCALLTREATMENT_PARAMS
  2724. {
  2725. union
  2726. {
  2727. OUT LONG lResult;
  2728. };
  2729. DWORD dwUnused;
  2730. union
  2731. {
  2732. IN DWORD dwRemoteRequestID;
  2733. };
  2734. union
  2735. {
  2736. IN HCALL hCall;
  2737. };
  2738. union
  2739. {
  2740. IN DWORD dwTreatment;
  2741. };
  2742. } LINESETCALLTREATMENT_PARAMS, *PLINESETCALLTREATMENT_PARAMS;
  2743. typedef struct _LINESETDEFAULTMEDIADETECTION_PARAMS
  2744. {
  2745. union
  2746. {
  2747. OUT LONG lResult;
  2748. };
  2749. DWORD dwUnused;
  2750. union
  2751. {
  2752. IN HLINE hLine;
  2753. };
  2754. union
  2755. {
  2756. IN DWORD dwMediaModes;
  2757. };
  2758. } LINESETDEFAULTMEDIADETECTION_PARAMS, *PLINESETDEFAULTMEDIADETECTION_PARAMS;
  2759. typedef struct _LINESETDEVCONFIG_PARAMS
  2760. {
  2761. union
  2762. {
  2763. OUT LONG lResult;
  2764. };
  2765. DWORD dwUnused;
  2766. union
  2767. {
  2768. IN DWORD dwDeviceID;
  2769. };
  2770. union
  2771. {
  2772. IN DWORD dwDeviceConfigOffset; // always valid offset
  2773. };
  2774. union
  2775. {
  2776. IN DWORD dwSize;
  2777. };
  2778. union
  2779. {
  2780. IN DWORD dwDeviceClassOffset; // always valid offset
  2781. };
  2782. } LINESETDEVCONFIG_PARAMS, *PLINESETDEVCONFIG_PARAMS;
  2783. typedef struct _LINESETLINEDEVSTATUS_PARAMS
  2784. {
  2785. union
  2786. {
  2787. OUT LONG lResult;
  2788. };
  2789. DWORD dwUnused;
  2790. union
  2791. {
  2792. IN DWORD dwRemoteRequestID;
  2793. };
  2794. union
  2795. {
  2796. IN HLINE hLine;
  2797. };
  2798. union
  2799. {
  2800. IN DWORD dwStatusToChange;
  2801. };
  2802. union
  2803. {
  2804. IN DWORD fStatus;
  2805. };
  2806. } LINESETLINEDEVSTATUS_PARAMS, *PLINESETLINEDEVSTATUS_PARAMS;
  2807. typedef struct _LINESETMEDIACONTROL_PARAMS
  2808. {
  2809. union
  2810. {
  2811. OUT LONG lResult;
  2812. };
  2813. DWORD dwUnused;
  2814. union
  2815. {
  2816. IN HLINE hLine;
  2817. };
  2818. union
  2819. {
  2820. IN DWORD dwAddressID;
  2821. };
  2822. union
  2823. {
  2824. IN HCALL hCall;
  2825. };
  2826. union
  2827. {
  2828. IN DWORD dwSelect;
  2829. };
  2830. union
  2831. {
  2832. IN DWORD dwDigitListOffset; // valid offset or
  2833. };
  2834. union
  2835. {
  2836. IN DWORD dwDigitListNumEntries; // actually dwNumEntries *
  2837. };
  2838. union
  2839. {
  2840. IN DWORD dwMediaListOffset; // valid offset or
  2841. };
  2842. union
  2843. {
  2844. IN DWORD dwMediaListNumEntries; // actually dwNumEntries *
  2845. };
  2846. union
  2847. {
  2848. IN DWORD dwToneListOffset; // valid offset or
  2849. };
  2850. union
  2851. {
  2852. IN DWORD dwToneListNumEntries; // actually dwNumEntries *
  2853. };
  2854. union
  2855. {
  2856. IN DWORD dwCallStateListOffset; // valid offset or
  2857. };
  2858. union
  2859. {
  2860. IN DWORD dwCallStateListNumEntries; // actually dwNumEntries *
  2861. };
  2862. } LINESETMEDIACONTROL_PARAMS, *PLINESETMEDIACONTROL_PARAMS;
  2863. typedef struct _LINESETMEDIAMODE_PARAMS
  2864. {
  2865. union
  2866. {
  2867. OUT LONG lResult;
  2868. };
  2869. DWORD dwUnused;
  2870. union
  2871. {
  2872. IN HCALL hCall;
  2873. };
  2874. union
  2875. {
  2876. IN DWORD dwMediaModes;
  2877. };
  2878. } LINESETMEDIAMODE_PARAMS, *PLINESETMEDIAMODE_PARAMS;
  2879. typedef struct _LINESETNUMRINGS_PARAMS
  2880. {
  2881. union
  2882. {
  2883. OUT LONG lResult;
  2884. };
  2885. DWORD dwUnused;
  2886. union
  2887. {
  2888. IN HLINE hLine;
  2889. };
  2890. union
  2891. {
  2892. IN DWORD dwAddressID;
  2893. };
  2894. union
  2895. {
  2896. IN DWORD dwNumRings;
  2897. };
  2898. } LINESETNUMRINGS_PARAMS, *PLINESETNUMRINGS_PARAMS;
  2899. typedef struct _LINESETQUEUEMEASUREMENTPERIOD_PARAMS
  2900. {
  2901. union
  2902. {
  2903. OUT LONG lResult;
  2904. };
  2905. DWORD dwUnused;
  2906. union
  2907. {
  2908. IN DWORD dwRemoteRequestID;
  2909. };
  2910. union
  2911. {
  2912. IN HLINE hLine;
  2913. };
  2914. union
  2915. {
  2916. IN DWORD dwQueueID;
  2917. };
  2918. union
  2919. {
  2920. IN DWORD dwMeasurementPeriod;
  2921. };
  2922. } LINESETQUEUEMEASUREMENTPERIOD_PARAMS, *PLINESETQUEUEMEASUREMENTPERIOD_PARAMS;
  2923. typedef struct _LINESETSTATUSMESSAGES_PARAMS
  2924. {
  2925. union
  2926. {
  2927. OUT LONG lResult;
  2928. };
  2929. DWORD dwUnused;
  2930. union
  2931. {
  2932. IN HLINE hLine;
  2933. };
  2934. union
  2935. {
  2936. IN DWORD dwLineStates;
  2937. };
  2938. union
  2939. {
  2940. IN DWORD dwAddressStates;
  2941. };
  2942. } LINESETSTATUSMESSAGES_PARAMS, *PLINESETSTATUSMESSAGES_PARAMS;
  2943. typedef struct _LINESETTERMINAL_PARAMS
  2944. {
  2945. union
  2946. {
  2947. OUT LONG lResult;
  2948. };
  2949. DWORD dwUnused;
  2950. union
  2951. {
  2952. IN DWORD dwRemoteRequestID;
  2953. };
  2954. union
  2955. {
  2956. IN HLINE hLine;
  2957. };
  2958. union
  2959. {
  2960. IN DWORD dwAddressID;
  2961. };
  2962. union
  2963. {
  2964. IN HCALL hCall;
  2965. };
  2966. union
  2967. {
  2968. IN DWORD dwSelect;
  2969. };
  2970. union
  2971. {
  2972. IN DWORD dwTerminalModes;
  2973. };
  2974. union
  2975. {
  2976. IN DWORD dwTerminalID;
  2977. };
  2978. union
  2979. {
  2980. IN DWORD bEnable;
  2981. };
  2982. } LINESETTERMINAL_PARAMS, *PLINESETTERMINAL_PARAMS;
  2983. typedef struct _LINESETUPCONFERENCE_PARAMS
  2984. {
  2985. union
  2986. {
  2987. OUT LONG lResult;
  2988. };
  2989. DWORD dwUnused;
  2990. union
  2991. {
  2992. IN DWORD dwRemoteRequestID;
  2993. };
  2994. IN DWORD hfnPostProcessProc;
  2995. union
  2996. {
  2997. IN HCALL hCall;
  2998. };
  2999. union
  3000. {
  3001. IN HLINE hLine;
  3002. };
  3003. // IN ULONG_PTR lphConfCall; // pointer to client buffer
  3004. IN DWORD hpConfCall; // pointer to client buffer
  3005. // IN ULONG_PTR lphConsultCall; // pointer to client buffer
  3006. IN DWORD hpConsultCall; // pointer to client buffer
  3007. union
  3008. {
  3009. IN DWORD dwNumParties;
  3010. };
  3011. union
  3012. {
  3013. IN DWORD dwCallParamsOffset; // valid offset or
  3014. };
  3015. union
  3016. {
  3017. IN DWORD dwAsciiCallParamsCodePage;
  3018. };
  3019. } LINESETUPCONFERENCE_PARAMS, *PLINESETUPCONFERENCE_PARAMS;
  3020. typedef struct _LINESETUPTRANSFER_PARAMS
  3021. {
  3022. union
  3023. {
  3024. OUT LONG lResult;
  3025. };
  3026. DWORD dwUnused;
  3027. union
  3028. {
  3029. IN DWORD dwRemoteRequestID;
  3030. };
  3031. IN DWORD hfnPostProcessProc;
  3032. union
  3033. {
  3034. IN HCALL hCall;
  3035. };
  3036. // IN ULONG_PTR lphConsultCall; // pointer to client buffer
  3037. IN DWORD hpConsultCall; // pointer to client buffer
  3038. union
  3039. {
  3040. IN DWORD dwCallParamsOffset; // valid offset or
  3041. };
  3042. union
  3043. {
  3044. IN DWORD dwAsciiCallParamsCodePage;
  3045. };
  3046. } LINESETUPTRANSFER_PARAMS, *PLINESETUPTRANSFER_PARAMS;
  3047. typedef struct _LINESHUTDOWN_PARAMS
  3048. {
  3049. union
  3050. {
  3051. OUT LONG lResult;
  3052. };
  3053. DWORD dwUnused;
  3054. union
  3055. {
  3056. IN HLINEAPP hLineApp;
  3057. };
  3058. } LINESHUTDOWN_PARAMS, *PLINESHUTDOWN_PARAMS;
  3059. typedef struct _LINESWAPHOLD_PARAMS
  3060. {
  3061. union
  3062. {
  3063. OUT LONG lResult;
  3064. };
  3065. DWORD dwUnused;
  3066. union
  3067. {
  3068. IN DWORD dwRemoteRequestID;
  3069. };
  3070. union
  3071. {
  3072. IN HCALL hActiveCall;
  3073. };
  3074. union
  3075. {
  3076. IN HCALL hHeldCall;
  3077. };
  3078. } LINESWAPHOLD_PARAMS, *PLINESWAPHOLD_PARAMS;
  3079. typedef struct _LINEUNCOMPLETECALL_PARAMS
  3080. {
  3081. union
  3082. {
  3083. OUT LONG lResult;
  3084. };
  3085. DWORD dwUnused;
  3086. union
  3087. {
  3088. IN DWORD dwRemoteRequestID;
  3089. };
  3090. union
  3091. {
  3092. IN HLINE hLine;
  3093. };
  3094. union
  3095. {
  3096. IN DWORD dwCompletionID;
  3097. };
  3098. } LINEUNCOMPLETECALL_PARAMS, *PLINEUNCOMPLETECALL_PARAMS;
  3099. typedef struct _LINEUNHOLD_PARAMS
  3100. {
  3101. union
  3102. {
  3103. OUT LONG lResult;
  3104. };
  3105. DWORD dwUnused;
  3106. union
  3107. {
  3108. IN DWORD dwRemoteRequestID;
  3109. };
  3110. union
  3111. {
  3112. IN HCALL hCall;
  3113. };
  3114. } LINEUNHOLD_PARAMS, *PLINEUNHOLD_PARAMS;
  3115. typedef struct _LINEUNPARK_PARAMS
  3116. {
  3117. union
  3118. {
  3119. OUT LONG lResult;
  3120. };
  3121. DWORD dwUnused;
  3122. union
  3123. {
  3124. IN DWORD dwRemoteRequestID;
  3125. };
  3126. IN DWORD hfnPostProcessProc;
  3127. union
  3128. {
  3129. IN HLINE hLine;
  3130. };
  3131. union
  3132. {
  3133. IN DWORD dwAddressID;
  3134. };
  3135. IN DWORD hpCall; // pointer to client buffer
  3136. union
  3137. {
  3138. IN DWORD dwDestAddressOffset; // always valid offset
  3139. };
  3140. } LINEUNPARK_PARAMS, *PLINEUNPARK_PARAMS;
  3141. typedef struct _LINEMSPIDENTIFY_PARAMS
  3142. {
  3143. union
  3144. {
  3145. OUT LONG lResult;
  3146. };
  3147. DWORD dwUnused;
  3148. union
  3149. {
  3150. IN DWORD dwDeviceID;
  3151. };
  3152. union
  3153. {
  3154. OUT DWORD dwCLSIDOffset;
  3155. };
  3156. union
  3157. {
  3158. IN OUT DWORD dwCLSIDSize;
  3159. };
  3160. } LINEMSPIDENTIFY_PARAMS, *PLINEMSPIDENTIFY_PARAMS;
  3161. typedef struct _LINERECEIVEMSPDATA_PARAMS
  3162. {
  3163. union
  3164. {
  3165. OUT LONG lResult;
  3166. };
  3167. DWORD dwUnused;
  3168. union
  3169. {
  3170. IN HLINE hLine;
  3171. };
  3172. union
  3173. {
  3174. IN HCALL hCall;
  3175. };
  3176. union
  3177. {
  3178. IN DWORD dwBufferOffset;
  3179. };
  3180. union
  3181. {
  3182. IN DWORD dwBufferSize;
  3183. };
  3184. } LINERECEIVEMSPDATA_PARAMS, *PLINERECEIVEMSPDATA_PARAMS;
  3185. typedef struct _R_LOCATIONS_PARAMS
  3186. {
  3187. union
  3188. {
  3189. OUT LONG lResult;
  3190. };
  3191. DWORD dwUnused;
  3192. union
  3193. {
  3194. IN HLINEAPP dwhLineApp;
  3195. };
  3196. union
  3197. {
  3198. IN DWORD dwDeviceID;
  3199. };
  3200. union
  3201. {
  3202. IN DWORD dwAPIVersion;
  3203. };
  3204. union
  3205. {
  3206. IN DWORD dwParmsToCheckFlags;
  3207. };
  3208. union
  3209. {
  3210. IN DWORD dwLocationsTotalSize; // size of client buffer
  3211. OUT DWORD dwLocationsOffset; // valid offset on success
  3212. };
  3213. } R_LOCATIONS_PARAMS, *PR_LOCATIONS_PARAMS;
  3214. typedef struct _W_LOCATIONS_PARAMS
  3215. {
  3216. union
  3217. {
  3218. OUT LONG lResult;
  3219. };
  3220. DWORD dwUnused;
  3221. union
  3222. {
  3223. IN DWORD nNumLocations;
  3224. };
  3225. union
  3226. {
  3227. IN DWORD dwChangedFlags;
  3228. };
  3229. union
  3230. {
  3231. IN DWORD dwCurrentLocationID;
  3232. };
  3233. union
  3234. {
  3235. IN DWORD dwLocationListOffset;
  3236. };
  3237. } W_LOCATIONS_PARAMS, *PW_LOCATIONS_PARAMS;
  3238. typedef struct _ALLOCNEWID_PARAMS
  3239. {
  3240. union
  3241. {
  3242. OUT LONG lResult;
  3243. };
  3244. DWORD dwUnused;
  3245. union
  3246. {
  3247. IN DWORD hKeyToUse;
  3248. OUT DWORD dwNewID;
  3249. };
  3250. } ALLOCNEWID_PARAMS, *P_ALLOCNEWID_PARAMS;
  3251. typedef struct _PERFORMANCE_PARAMS
  3252. {
  3253. union
  3254. {
  3255. OUT LONG lResult;
  3256. };
  3257. DWORD dwUnused;
  3258. union
  3259. {
  3260. IN DWORD dwCookie;
  3261. };
  3262. union
  3263. {
  3264. IN DWORD dwPerformanceTotalSize; // size of client buffer
  3265. OUT DWORD dwLocationsOffset; // valid offset on success
  3266. };
  3267. } PERFORMANCE_PARAMS, *PPERFORMANCE_PARAMS;