C++/VB - Contradictory info in MSDN for lineOpen (dwAddressMode, dwPrivileges)

Asked By fdecker
17-Nov-09 12:33 PM
I am experimenting with devices that have multiple addresses to have
applications be able to ignore messages if they are not on the address
I want on a given line.  However the MSDN is less than clear in how
anyone would implement this:

1.	MSDN says in the lineOpen documentation that we must open the line
with dwAddresMode =3D LINEADDRESSMODE_ADDRESSID and specify the
dwAddressID in the LINECALLPARAMS structure. It even says that if you
don=92t specify a valid address or the LINECALLPARAMS structure is
invalid, you will get an error in lineOpen, yet in the LINECALLPARAMS
help it  says the dwAddressMode member cannot be
LINEADDRESSMODE_ADDRESSID for the lineOpen function call and if that
is not set, the dwAddressID is ignored!

2.	Further, MSDN states that setting the lineOpen dwPrvileges to
LINEOPENOPTION_SINGLEADDRESS only affects the ownership of calls that
are created by a TSP with the LINE_NEWCALL message/ What about calls
that aren=92t indicated with LINE_NEWCALL?  If an inbound call arrives
and is in the offering state, does the TSP consider this a call
created by TAPI and issue the LINE_NEWCALL?  Likewise, if I dial an
outbound call, is LINE_NEWCALL fired?  The help seems to imply that
LINE_NEWCALL is basically for when you start an application or maybe a
TSP on a device that could already have calls and these existing calls
can be reported to you.

100 points to anyone who truly understands this and can explain it ;)

Fred
TAPIaroundTheWorld
(1)
DwAddressID
(1)
Report
(1)
DwAddressMode
(1)
LineMakeCall
(1)
DwAddresMode
(1)
DwPrivileges
(1)
DwPrvileges
(1)
  Andreas Marschall [exMVP TAPI] replied to fdecker
18-Nov-09 01:36 AM
Fred,
on TSPI level call handles can only be generated in two ways:
1st by TAPISRV, e.g. via TSPI_lineMakeCall(), TSPI_linePickup(),
TSPI_lineUnpark();
2nd by TSP via LINE_NEWCALL.
In the 1st case TAPISRV provides the TSP with HTAPICALL htCall and expects
the TSP to fill in LPHDRVCALL lphdCall;
in the latter case TSP provides HDRVCALL hdCall and expects TAPISRV to fill
in LPHTAPICALL lphtCall.
So *all* calls that are not created via a TAPI / TSPI functions are created
via LINE_NEWCALL.
And there is no LINE_NEWCALL for calls that are generated via TAPI / TSPI
functions.



An inbound call is never generated by TAPISRV but always by the TSP via
LINE_NEWCALL.



How dod you dial?
- Via TSPI_lineMakeCall(): no LINE_NEWCALL
- Manually at the physical phone: LINE_NEWCALL



LINE_NEWCALL is a TSPI message and is not presented to TAPI apps.
TAPI2 app get a LINE_APPNEWCALL message instead.
The TSP should report pre-existing calls (existing before TSPI_lineOpen()
took place) via LINE_NEWCALL (if it can detect them).
LINE_NEWCALL is mandatory for every call to generated by the TSP.
Without LINE_NEWCALL there can be no calls (except the ones created by
TAPISRV via TSPI_lineMakeCall() etc.).
Each LINE_NEWCALL should be immediately followed by the initital
LINE_CALLSTATE message for this call.

--
Best Regards
Andreas Marschall
Microsoft MVP for TAPI / Windows SDK / Visual C++ 2003-2008
TAPI / TSP Developer and Tester
My TAPI and TSPI FAQ:
http://www.I-B-A-M.de/Andreas_Marschall's_TAPI_and_TSPI_FAQ.htm
My Toto® Tools (a collection of free, mostly TAPI related tools):
http://www.i-b-a-m.de/Andreas_Marschall's_Toto_Tools.htm
TAPI development around the world (Frappr! map):
http://www.frappr.com/TAPIaroundTheWorld
* Please post all messages and replies to the newsgroup so all may
* benefit from the discussion.  Private mail is usually not replied to.
* This posting is provided "AS IS" with no warranties, and confers no
rights.
  fdecker replied to Andreas Marschall [exMVP TAPI]
22-Nov-09 03:07 PM
Hi Andreas,

How about the MSDN help?  Did you see where I see the help for
lineOpen says to limit messages to a single address you must set
dwAddresMode = LINEADDRESSMODE_ADDRESSID, yet in the LINECALLPARAMS
help is specifically says you cannot do that?  I think the call params
section must be wrong, but wondering how it got like that.  I updated
the new comments you can put into MSDN and sent the TAPI guys a note.
Hopefully they can fix it or tell me why I am wrong in my
interpretation.

Fred
Create New Account
help
avoid disk system formating? Best Regards, Michael Win32 TAPI Discussions DwUUISendUserUserInfoSize (1) Visual Studio (1) TAPIaroundTheWorld (1) DwUUICallInfoSize (1) DwUUIMakeCallSize (1) LpszUIDLLName (1) Adobe (1) LineGetNumAddressIDs (1) Michael, please provide the de / Andreas_Marschall's_Toto_Tools.htm TAPI development around the world (Frappr! map): http: / / www.frappr.com / TAPIaroundTheWorld * Please post all messages and replies to the newsgroup so all may * benefit from the it is exposing no device at all. Do you get the same result if you report at least one device? - - Best Regards Andreas Marschall Microsoft MVP for TAPI / Windows SDK / Visual de / Andreas_Marschall's_Toto_Tools.htm TAPI development around the world (Frappr! map): http: / / www.frappr.com / TAPIaroundTheWorld * Please post all messages and replies to the newsgroup so all may * benefit from the lphdLine = 0x1a26f50 TSPI_lineGetNumAddressIDs hdLine = 0x1a26f50, lpdwAddressIDs = 0x26861f4 TSPI_lineGetNumAddressIDs rc = 0x0, lpdwAddressIDs = 0x0 TSPI_lineGetID hdLine = 0x1a26f50, dwAddressID = 0x0, hdCall = 0x0, dwSelect = 0x1 (LINE), lpDeviceID = 0x268625c, lpszDeviceClass = 0x2686418 Lock(-1) 0x1a26f5c [Total = 0 de / Andreas_Marschall's_Toto_Tools.htm TAPI development around the world (Frappr! map): http: / / www.frappr.com / TAPIaroundTheWorld * Please post all messages and replies to the newsgroup so all may * benefit from the de / Andreas_Marschall's_Toto_Tools.htm TAPI development around the world (Frappr! map): http: / / www.frappr.com / TAPIaroundTheWorld * Please post all messages and replies to the newsgroup so all may * benefit from the
mailbox" Mailbox = "user" Const PR_FREEBUSY_ENTRYIDS = &H36E41102 Const PR_PARENT_ENTRYID = &H0E090102 Const PR_RECALCULATE_FREEBUSY = &H10F2000B Const PR_FREEBUSY_DATA = &H686C0102 report = "<table border = ""1"" width = ""100%""> " & vbcrlf report = report & " <tr> " & vbcrlf report = report & "<td align = ""center"" bgcolor = ""#000080""> <b> <font color = ""#FFFFFF""> Mailbox-Name< / font> < / b> < / td> " & vbcrlf report = report & "<td align = ""center"" bgcolor = ""#000080""> <b> <font color = ""#FFFFFF""> Auto Process Meetings< / font> < / b> < / td vbcrlf report = report & "<td align = ""center"" bgcolor = ""#000080""> <b> <font color = ""#FFFFFF""> Auto Decline conflicts< / font> < / b
In Crystal report show blank page C++ / VB Dear Sir / Madam I am using crystal report, In report show blank page in starting. In my report have 4 groups and 3 sub report. In first group grouping according to AID and we select in section expert option select and select same option same as for other two group. But when we print the report 1) Group Name and description and blank page display. 2nd, 3rd and 4th group data how I suppress the blank section after 1st group. Here I am show the my report view Report - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - First page - -- -- -- -- - Group Name ABC Description : AA - -- -- -- -- -- -- -- -- - Its a blank section. - -- -- -- -- -- -- -- -- - Second Page - -- -- -- -- -- -- Function Sub
choose report / sub-report from a parameter field C++ / VB Hi. My software only allows me to print one report. It only calls rep.rpt. I need to have a parameter field that asks everytime if I want to print a sub-report. If Yes, it prints, if not it doesn't print. Because One report goes to QA and the other to maintenance. But the maintenance report is not needed to printed all the time. is't just ocasionally. My idea was to have a specified report and have a sub-report inserted or linked. And if the answer to the parameter field yes, the linked or