This function causes the provider of the specified line device to display a dialog box—attached to hwndOwner of the application—to enable the user to configure parameters related to the line device.
At a Glance
Header file: | Tapi.h |
Windows CE versions: | 1.0 and later |
Syntax
LONG lineConfigDialogEdit (DWORD dwDeviceID, HWND hwndOwner, LPCTSTR lpszDeviceClass, LPVOID const lpDeviceConfigIn, DWORD dwSize, LPVARSTRING lpDeviceConfigOut);
Parameters
dwDeviceID
[in] Specifies the line device to be configured.
hwndOwner
[in] Handle to a window to which the dialog box is attached. Can be NULL to indicate that any window created during the function should have no owner window.
lpszDeviceClass
[in] Pointer to a null-terminated string that identifies a device class name. This device class enables the application to select a specific configuration data applicable to that device class. This parameter is optional and can be left NULL, in which case the highest level configuration is selected. If an empty string is specified, the function fails and returns LINEERR_INVALDEVICECLASS.
lpDeviceConfigIn
[in] Pointer to the opaque configuration data structure returned by lineGetDevConfig, or a previous invocation of lineConfigDialogEdit, in the variable portion of the VARSTRING structure.
dwSize
[in] Specifies the number of bytes in the structure pointed to by lpDeviceConfigIn. This value is returned in the dwStringSize member in the VARSTRING structure returned by lineGetDevConfig or a previous invocation of lineConfigDialogEdit.
lpDeviceConfigOut
[out] Pointer to the memory location of type VARSTRING, where the device configuration structure is returned. Upon successful completion of the request, this location is filled with the device configuration. The dwStringFormat member in the VARSTRING structure is set to STRINGFORMAT_BINARY. Prior to calling lineGetDevConfig, or a future call to lineConfigDialogEdit, the application should set the dwTotalSize member of this structure to indicate the amount of memory available to TAPI for returning data.
Return Values
Zero indicates success. A negative error number indicates that an error occurred. Possible error values are as follows:
LINEERR_BADDEVICEID | LINEERR_NOMEM |
LINEERR_INVALDEVICECLASS | LINEERR_OPERATIONFAILED |
LINEERR_INVALPARAM | LINEERR_OPERATIONUNAVAIL |
LINEERR_INVALPOINTER | LINEERR_RESOURCEUNAVAIL |
LINEERR_NODEVICE | LINEERR_STRUCTURETOOSMALL |
LINEERR_NODRIVER | LINEERR_UNINITIALIZED |
Remarks
If LINEERR_STRUCTURETOOSMALL is returned, the dwTotalSize member of the VARSTRING structure pointed to by lpDeviceConfigOut does not specify enough memory to contain the entire configuration structure. The dwNeededSize member has been set to the amount required. To the extent that user entries were reflected in data that could not be returned due to insufficient space, those edits are lost; an application should therefore allocate the maximum amount of memory needed by the device class to return its configuration structure.
The lineConfigDialogEdit function causes the service provider to display a modal dialog box, attached to hwndOwner of the application, to enable the user to configure parameters related to the line specified by dwDeviceID.
The lpszDeviceClass parameter enables the application to select a specific subscreen of configuration data applicable to the device class in which the user is interested; the permitted strings are the same as for lineGetID. For example, if the line supports the Communications API, passing "COMM" as lpszDeviceClass causes the provider to display the parameters related specifically to Communications, or at least, start at the corresponding point in a multilevel configuration dialog box chain, so the user does not have to search to find the parameters of interest.
The lpszDeviceClass parameter would be tapi/line or NULL to cause the provider to display the highest level configuration for the line.
With lineConfigDialogEdit, the parameters to edit are passed from the application, and the results are returned to the application, with no impact on active connections. The results of the editing are returned with this function, and the application does not need to call lineGetDevConfig. Thus, lineConfigDialogEdit permits an application to provide the ability for the user to set up parameters for future calls without having an impact on any active call. However, the output of this function can be passed to lineSetDevConfig to affect the current call or next call.
See Also
lineOpen, lineGetID, lineGetDevConfig, lineSetDevConfig, VARSTRING