Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2009, 09:00   #11
emilregis
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

и что интересно IAgentPhoneSession является наследником IAgentSession, в котором есть свойства Address,id,kind...и эти свойства,например phoneSession.id, успешно определяются...а вот свойства IAgentPhoneSession не определяются

и ещё когда я пишу
Код:
FIAG.OpenPhoneSession('',PhoneSessionType_Handset,'');
phoneSession:=FIAG.PhoneSession;
//и дальше проверяю if (not phonesession.Opened) then  ShowMessage('блабла');
то он выводит сообщение блабла...Значит он считает что сессия закрыта,хотя к программе подсоединяется,это видно...

Последний раз редактировалось Stilet; 29.04.2009 в 09:41.
emilregis вне форума Ответить с цитированием
Старый 29.04.2009, 09:42   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а вот свойства IAgentPhoneSession не определяются
А они случайно не private? Мануал по этим классам есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 10:14   #13
emilregis
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

нет не private...
вот как они выглядят
Код:
....
interface
uses...
type
  AGENT_PHONE_STATE = TOleEnum;
const
  PhoneState_Idle = $00000000;
  PhoneState_Ringing = $00000001;
  PhoneState_Dialtone = $00000002;
  PhoneState_Conversation = $00000003;
  PhoneState_Disconnected = $00000004;
  PhoneState_OutOfOrder = $00000005;
Код:
IAgentSession = interface(IDispatch)
    ['{90ED16F1-8CB7-447A-B112-7E36663B7E06}']
    function Get_ID: WideString; safecall;
    function Get_Address: WideString; safecall;
    function Get_Kind: WideString; safecall;
    function Get_StartTime: TDateTime; safecall;
    function Get_Property_(const name: WideString): OleVariant; safecall;
    procedure Set_Property_(const name: WideString; var value: OleVariant); safecall;
    property ID: WideString read Get_ID;
    property Address: WideString read Get_Address;
    property Kind: WideString read Get_Kind;
    property StartTime: TDateTime read Get_StartTime;
  end;
Код:
IAgentPhoneSession = interface(IAgentSession)
    ['{B546FB27-CF27-4E02-9924-4724ADFC67F0}']
.................
    function Get_PhoneType: PHONE_SESSION_TYPE; safecall;
    function Get_PhoneState: AGENT_PHONE_STATE; safecall;
    function Get_Opened: WordBool; safecall;
    function Get_PhoneCalls: IPhoneCallCollection; safecall;
    procedure Close; safecall;
    procedure TakeCall(const request_id: WideString); safecall;
    procedure PlaceCall(const phone_number: WideString; const request_props: INewRequestProperties; 
                        playProgressTones: WordBool); safecall;
    function ListPrompts(const folder_or_mr_service: WideString): WideString; safecall;
    procedure PlayPrompt(const file_or_mr_item_url: WideString; 
                         const request_props: INewRequestProperties; const queue_id: WideString); safecall;
    procedure EditPrompt(const file_or_mr_item_url: WideString; 
                         const request_props: INewRequestProperties); safecall;
    procedure DeletePrompt(const file_or_mr_item_url: WideString); safecall;
    procedure RecordOnAnswerGreeting(const queue_id: WideString); safecall;
    procedure RemoveOnAnswerGreeting(const queue_id: WideString); safecall;
    procedure CreateCallBack(const phone_number: WideString; 
                             const request_props: INewRequestProperties; 
                             const campaing_props: ICallBackProperties; const queue_id: WideString); safecall;
    procedure MultiDial(const phone_numbers: WideString; 
                        const request_props: INewRequestProperties; playProgressTones: WordBool); safecall;
    function GetOnAnswerGreeting(const queue_id: WideString): WideString; safecall;
    property PhoneType: PHONE_SESSION_TYPE read Get_PhoneType;
    property PhoneState: AGENT_PHONE_STATE read Get_PhoneState;
    property Opened: WordBool read Get_Opened;
    property PhoneCalls: IPhoneCallCollection read Get_PhoneCalls;
  end;
emilregis вне форума Ответить с цитированием
Старый 29.04.2009, 10:16   #14
emilregis
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

вот ещё агент
Код:
 IAgent = interface(IDispatch)
    ['{8723DA6D-F263-4F6D-B9B9-5EBC89237343}']
    function Get_ID: WideString; safecall;
    function Get_DisplayName: WideString; safecall;
    function Get_LoginName: WideString; safecall;
    function Get_Property_(const name: WideString): OleVariant; safecall;
    procedure Set_Property_(const name: WideString; var value: OleVariant); safecall;
    function Get_Status: WideString; safecall;
    procedure Set_Status(const Status: WideString); safecall;
    function Get_Statuses: IAgentStatusCollection; safecall;
    procedure SetTemporaryStatus(const temporary_status: WideString; timeout: Integer; 
                                 const resulting_status: WideString); safecall;
    function Get_PhoneSession: IAgentPhoneSession; safecall;
    procedure OpenPhoneSession(const bstrPhoneNumber: WideString; sessionType: PHONE_SESSION_TYPE; 
                               const workstationName: WideString); safecall;
    function Get_PersonalQueue: IQueue; safecall;
    procedure AddToQueue(const Queue: IQueue); safecall;
    procedure RemoveFromQueue(const Queue: IQueue); safecall;
    function Get_Queues: IQueueCollection; safecall;
    function Get_Statistics: IStatisticsCollection; safecall;
    property ID: WideString read Get_ID;
    property DisplayName: WideString read Get_DisplayName;
    property LoginName: WideString read Get_LoginName;
    property Status: WideString read Get_Status write Set_Status;
    property Statuses: IAgentStatusCollection read Get_Statuses;
    property PhoneSession: IAgentPhoneSession read Get_PhoneSession;
    property PersonalQueue: IQueue read Get_PersonalQueue;
    property Queues: IQueueCollection read Get_Queues;
    property Statistics: IStatisticsCollection read Get_Statistics;
  end;
emilregis вне форума Ответить с цитированием
Старый 29.04.2009, 10:27   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Слушай, а ты ведь не там проверяешь на NIL..
Код:
while (true)  do
  begin
    phoneSession:=FIAG.PhoneSession as IAgentPhoneSession;

  if assigned(phoneSession)  begin
  if not phoneSession.Opened then
  begin
  ShowMessage('2');
    FIAG.OpenPhoneSession('',PhoneSessionType_Handset,'');
    ShowMessage('3');
  end;


 if assigned(phoneSession)  begin
    if (phoneSession.PhoneState<>PhoneState_Idle)  
    then
         writeNum(phoneSession);
    end;
end;
Цикл то у тя бесконечный...
И кста как ты выходить из него думаешь?
I'm learning to live...

Последний раз редактировалось Stilet; 29.04.2009 в 10:30.
Stilet вне форума Ответить с цитированием
Старый 29.04.2009, 10:44   #16
emilregis
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 10
По умолчанию

цикл бесконечный,это да..но можно сделать как то так while(phonesession.opened)....
но дело не в этом,проблема то в том,что свойство PhoneState не определяется,да и остальные свойтсва тоже

Последний раз редактировалось emilregis; 29.04.2009 в 10:56.
emilregis вне форума Ответить с цитированием
Старый 29.04.2009, 11:26   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну однозначно неверно интерфейс получил...
Тут только мануалы читать, да отладчиком проходиться в поисках неверного преобразования...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Call of duty 4 Соколов Дмитрий Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 03.04.2009 12:40
Oracle C++ Call lnterface eds C/C++ Базы данных 1 09.02.2009 13:51
Remote call в Delphi alexBlack Обсуждение статей 0 05.01.2009 16:27
Only assignment, call . . . RIO Общие вопросы .NET 2 03.05.2008 16:55