Larry,
Tapi.Tapi.1 might really not exist in your system. You could check it under HKEY_CLASSES_ROOT or use this piece of code :
? _IsClassRegistered('tapi.tapi.1')
function _IsClassRegistered
lparameters tcClass
#DEFINE HKEY_CLASSES_ROOT -2147483648
#DEFINE ERROR_SUCCESS 0
DECLARE Integer RegOpenKey IN Win32API ;
Integer nHKey, String @cSubKey, Integer @nResult
DECLARE Integer RegCloseKey IN Win32API Integer nHKey
local lnKey
lnKey = 0
llRetVal = ( RegOpenKey(HKEY_CLASSES_ROOT, tcClass, @lnKey) = ERROR_SUCCESS )
if llRetVal
RegCloseKey(lnKey)
endif
CLEAR DLLS
return llRetVal
For tapi3.dll (under system or system32 - ) CLSID is {21D6D48E-A88B-11D0-83DD-00AA003CCABD}. You can check with regedit under HKEY_CLASSES_ROOT for 'tapi.tapi'. If you find it, check its CurrVer node for the actual ProgId (and probably it immediately follows tapi.tapi node). Installed versions are OS dependant :
1.4 - Win95
2.0 - NT4.0 SP3
2.1 - NT4.0 SP4, Win98, redistribuatble for win95
2.2 - W2K
3.1 - W2k (not in doc but I assume was part of SPs)
From my uderstanding from docs only version 3 has COM support. IOW in only version 3 you'd be able to createobject(). In others it's more of a win32API programming (hope I interpreted what I read wrong).
Docs provide this newsgroup for TAPI programmers :
microsoft.public.win32.programmer.tapi
For your code apart from tapi.tapi.1 not found, it seems to be wrong but might be right. I don't know how much of code is cut :)
Cetin
>Cetin -
>
>How come even though I do a define class tapi as tapi prior to gobjTapi = createobject("TAPI.TAPI.1")
>
>I still get an error that Class Definition TAPI.TAPI.1 is not found ????
>
>What I put in is:
>
>LOCAL gobjTapi
>=tapi_setup()
>.
>..
>...
>
>
>Procedure TAPI_SETUP
>DEFINE CLASS TAPI AS TAPI
> gobjTapi = createobject("TAPI.TAPI.1")
>enddefine