Taha (طه)
2006-09-17 03:03:24 UTC
_____________________________________________________________________________
unit TAPI3Lib_TLB
_____________________________________________________________________________
ITMediaPlayback = interface(IDispatch)
['{627E8AE6-AE4C-4A69-BB63-2AD625404B77}']
procedure Set_PlayList(pPlayListVariant: OleVariant); safecall;
function Get_PlayList: OleVariant; safecall;
property PlayList: OleVariant read Get_PlayList write Set_PlayList;
end;
_____________________________________________________________________________
_____________________________________________________________________________
var
BasicCallControl2: ITBasicCallControl2;
CallInfo2: ITCallInfo2;
FilePlaybackTerminal: ITTerminal;
strCLSID: PWideChar;
MediaPlayback: ITMediaPlayback;
V:OleVariant;
MediaControl: ITMediaControl;
Index:Integer;
---------------------------------------------------------------------------------------------------------------------------------------
hr:=StringFromCLSID(CLSID_FilePlaybackTerminal, strCLSID);
FilePlaybackTerminal:=BasicCallControl2.RequestTerminal(WideString(WideCharToString(strCLSID)),
TAPIMEDIATYPE_AUDIO, TD_CAPTURE);
if not Assigned(FilePlaybackTerminal) then ShowMessage('');
// Get the ITMediaPlayback interface pointer from the terminal
hr:=FilePlaybackTerminal.QueryInterface(IID_ITMediaPlayback,
MediaPlayback);
try
V:= VarArrayCreate([0, 0], varOleStr);
for Index := VarArrayLowBound(V, 1) to VarArrayHighBound(V, 1)
do
V[Index] := 'c:\MyFile.Wav';
except
ShowMessage('');
end;
---------------------------------------------------------------------------------------------------------------------------------
MediaPlayback.PlayList:=V; // Run Time Error >> "Variant or safe
array index out of bounds"
---------------------------------------------------------------------------------------------------------------------------------
unit TAPI3Lib_TLB
_____________________________________________________________________________
ITMediaPlayback = interface(IDispatch)
['{627E8AE6-AE4C-4A69-BB63-2AD625404B77}']
procedure Set_PlayList(pPlayListVariant: OleVariant); safecall;
function Get_PlayList: OleVariant; safecall;
property PlayList: OleVariant read Get_PlayList write Set_PlayList;
end;
_____________________________________________________________________________
_____________________________________________________________________________
var
BasicCallControl2: ITBasicCallControl2;
CallInfo2: ITCallInfo2;
FilePlaybackTerminal: ITTerminal;
strCLSID: PWideChar;
MediaPlayback: ITMediaPlayback;
V:OleVariant;
MediaControl: ITMediaControl;
Index:Integer;
---------------------------------------------------------------------------------------------------------------------------------------
hr:=StringFromCLSID(CLSID_FilePlaybackTerminal, strCLSID);
FilePlaybackTerminal:=BasicCallControl2.RequestTerminal(WideString(WideCharToString(strCLSID)),
TAPIMEDIATYPE_AUDIO, TD_CAPTURE);
if not Assigned(FilePlaybackTerminal) then ShowMessage('');
// Get the ITMediaPlayback interface pointer from the terminal
hr:=FilePlaybackTerminal.QueryInterface(IID_ITMediaPlayback,
MediaPlayback);
try
V:= VarArrayCreate([0, 0], varOleStr);
for Index := VarArrayLowBound(V, 1) to VarArrayHighBound(V, 1)
do
V[Index] := 'c:\MyFile.Wav';
except
ShowMessage('');
end;
---------------------------------------------------------------------------------------------------------------------------------
MediaPlayback.PlayList:=V; // Run Time Error >> "Variant or safe
array index out of bounds"
---------------------------------------------------------------------------------------------------------------------------------