lineConfigDialogEdit
The lineConfigDialogEdit
function causes the provider of the specified line device to display a dialog
(attached to hwndOwner of the application) to allow the user to
configure parameters related to the line device.
LONG lineConfigDialogEdit(
|
DWORD dwDeviceID, |
|
|
HWND hwndOwner, |
|
|
LPCSTR lpszDeviceClass, |
|
|
LPVOID
const lpDeviceConfigIn, |
|
|
DWORD dwSize, |
|
|
LPVARSTRING lpDeviceConfigOut |
|
|
); |
|
Parameters
dwDeviceID
The line
device to be configured.
hwndOwner
A handle to a
window to which the dialog is to be attached. Can be NULL to indicate that any
window created during the function should have no owner window.
lpszDeviceClass
A pointer to
a NULL-terminated string that identifies a device class name. This device class
allows the application to select a specific subscreen of configuration
information applicable to that device class. This parameter is optional and can
be left NULL or empty, in which case the highest level configuration is
selected.
lpDeviceConfigIn
A pointer to
the opaque configuration data structure that was returned by lineGetDevConfig (or a previous invocation
of lineConfigDialogEdit) in the variable portion of the VARSTRING structure.
dwSize
The number of
bytes in the structure pointed to by lpDeviceConfigIn. This value will
have been returned in the dwStringSize field in the VARSTRING
structure returned by lineGetDevConfig or a previous invocation of lineConfigDialogEdit.
lpDeviceConfigOut
A 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 field in the
VARSTRING structure will be set to STRINGFORMAT_BINARY. Prior to calling
lineGetDevConfig (or a future invocation of lineConfigDialogEdit),
the application should set the dwTotalSize field of this structure to
indicate the amount of memory available to TAPI for returning information.
Return Values
Returns zero
if the request is successful or a negative error number if an error has
occurred. Possible return values are:
LINEERR_BADDEVICEID,
LINEERR_OPERATIONFAILED, LINEERR_INVALDEVICECLASS, LINEERR_RESOURCEUNAVAIL,
LINEERR_INVALPARAM, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALPOINTER,
LINEERR_UNINITIALIZED, LINEERR_NODRIVER, LINEERR_OPERATIONUNAVAIL, LINEERR_NOMEM,
LINEERR_NODEVICE.
Remarks
If
LINEERR_STRUCTURETOOSMALL is returned, the dwTotalSize field of the VARSTRING structure pointed to by lpDeviceConfigOut
does not specify enough memory to contain the entire configuration structure.
The dwNeededSize field has been set to the amount required. To the
extent that user entries were reflected in information that could not be
returned due to insufficient space, those edits are lost; applications should
therefore allocate the maximum amount of space that may be needed by the device
class to return its configuration structure (for more information, see
documentation for the device class).
The lineConfigDialogEdit
function causes the service provider to display a modal dialog (attached to hwndOwner
of the application) to allow the user to configure parameters related to the
line specified by dwDeviceID.
The lpszDeviceClass
parameter allows the application to select a specific subscreen of
configuration information 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 Comm API, passing "COMM" as lpszDeviceClass
causes the provider to display the parameters related specifically to Comm (or,
at least, start at the corresponding point in a multilevel configuration dialog
chain, so the user doesn't have to "dig" 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.
The
difference between this function and lineConfigDialog is the source of the
parameters to edit and the result of the editing. In lineConfigDialog,
the parameters edited are those currently in use on the device (or set for use
on the next call), and any changes made have (to the maximum extent possible)
an immediate impact on any active connection; also, the application must use lineGetDevConfig
to fetch the result of parameter changes from lineConfigDialog. With lineConfigDialogEdit,
the parameters to edit are passed in 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. Note, however,
the output of this function can be passed to lineSetDevConfig to affect
the current call or next call.
Although this
is a new function which older applications would not be expected to call, for
backward compatibility, they should not be prevented from doing so; the
function will work the same way for all applications.
See Also